0% found this document useful (0 votes)
11 views11 pages

Velor

CONTOH PEMROGRAMAN APLIKASI MOBILE NATIVE

Uploaded by

Novitha Monika
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views11 pages

Velor

CONTOH PEMROGRAMAN APLIKASI MOBILE NATIVE

Uploaded by

Novitha Monika
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

“PEMROGRAMAN APLIKASI MOBILE NATIVE”

OLEH:

NO. POKOK : 222375


NAMA : VELICIA PAYUNG TASIK
KELAS : 4TPMN-J

PROGRAM STUDI TEKNIK INFORMATIKA

UNIVERSITAS DIPA MAKASSAR

2024
MainActivity.java
package com.example.kelompok2;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageButton;
import android.widget.ListView;

import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

private ListView listView;


private DatabaseHelper databaseHelper;
private ArrayAdapter<String> adapter;
private ArrayList<String> dataList;
private ImageButton btnAdd;
private static final int REQUEST_CODE_EDIT = 1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

listView = findViewById(R.id.listView);
btnAdd = findViewById(R.id.btnAdd);
databaseHelper = new DatabaseHelper(this);
dataList = new ArrayList<>();
adapter = new ArrayAdapter<>(this, R.layout.activity_list_item, dataList);
listView.setAdapter(adapter);

// Set onClickListener untuk btnAdd


btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Mulai MainActivity
Intent intent = new Intent(MainActivity.this, DataActivity.class);
startActivity(intent);
}
});
// Set onClickListener untuk item listView
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
// Ambil teks dari item yang diklik
String itemClicked = adapter.getItem(position);

// Pisahkan string itemClicked untuk mengambil namaKampus dan


alamatKampus
String[] parts = itemClicked.split(" - ");
String namaKampus = parts[0];
String alamatKampus = parts[1];
// Lakukan aksi yang diinginkan, misalnya membuka aktivitas baru
Intent intent = new Intent(MainActivity.this, ActivityAksi.class);
intent.putExtra("namaKampus", namaKampus); // Gunakan "namaKampus"
sebagai kunci
intent.putExtra("alamatKampus", alamatKampus); // Gunakan
"alamatKampus" sebagai kunci
startActivityForResult(intent, REQUEST_CODE_EDIT);
}
});

// Muat data saat aktivitas dimulai


loadData();
}
private void loadData() {
dataList.clear(); // Bersihkan data sebelum memuat data baru
Cursor cursor = databaseHelper.getData();
if (cursor.moveToFirst()) {
do {
@SuppressLint("Range") String namaKampus =
cursor.getString(cursor.getColumnIndex(DatabaseHelper.COLUMN_NAMA));
@SuppressLint("Range") String alamatKampus =
cursor.getString(cursor.getColumnIndex(DatabaseHelper.COLUMN_ALAMAT));
dataList.add(namaKampus + " - " + alamatKampus);
} while (cursor.moveToNext());
}
adapter.notifyDataSetChanged(); // Beritahu adapter bahwa data telah berubah
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_EDIT && resultCode == RESULT_OK) {
// Muat ulang data jika ada perubahan
loadData();
}
}
}

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ic_launcher_foreground">

<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:elevation="0dp"
app:title="Data Kampus"
app:titleTextColor="@android:color/white"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_scrollFlags="scroll|enterAlways">
<!-- ImageButton untuk ikon "Add" -->
<ImageButton
android:id="@+id/btnAdd"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginRight="50dp"
android:background="@drawable/baseline_add_24"
android:layout_gravity="end"
android:layout_marginEnd="16dp" />

</com.google.android.material.appbar.MaterialToolbar>

</com.google.android.material.appbar.AppBarLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">

<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/footerLayout"/>

<!-- Footer Layout -->

<LinearLayout
android:id="@+id/footerLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:padding="16dp"
android:layout_alignParentBottom="true">
</LinearLayout>
</RelativeLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

ActivityAksi.java
package com.example.kelompok2;

import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

public class ActivityAksi extends AppCompatActivity {

private TextView textViewNamaKampus;


private EditText editTextNamaKampus;
private TextView textViewAlamatKampus;
private EditText editTextAlamatKampus;
private Button buttonSave;
private Button buttonDelete;
private DatabaseHelper databaseHelper;
private String namaKampus;
private String alamatKampus;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_aksi);

textViewNamaKampus = findViewById(R.id.textViewNamaKampus);
editTextNamaKampus = findViewById(R.id.editTextNamaKampus);
textViewAlamatKampus = findViewById(R.id.textViewAlamatKampus);
editTextAlamatKampus = findViewById(R.id.editTextAlamatKampus);
buttonSave = findViewById(R.id.buttonEdit);
buttonDelete = findViewById(R.id.buttonDelete);
databaseHelper = new DatabaseHelper(this);

// Ambil data dari Intent


namaKampus = getIntent().getStringExtra("namaKampus");
alamatKampus = getIntent().getStringExtra("alamatKampus");

// Tampilkan data di TextView


textViewNamaKampus.setText(namaKampus);
textViewAlamatKampus.setText(alamatKampus);

// Set onClickListener untuk textViewNamaKampus


textViewNamaKampus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editTextNamaKampus.setText(textViewNamaKampus.getText());
textViewNamaKampus.setVisibility(View.GONE);
editTextNamaKampus.setVisibility(View.VISIBLE);
editTextNamaKampus.requestFocus();
}
});

// Set onClickListener untuk textViewAlamatKampus


textViewAlamatKampus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editTextAlamatKampus.setText(textViewAlamatKampus.getText());
textViewAlamatKampus.setVisibility(View.GONE);
editTextAlamatKampus.setVisibility(View.VISIBLE);
editTextAlamatKampus.requestFocus();
}
});

// Set onClickListener untuk buttonSave


buttonSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String newNamaKampus = editTextNamaKampus.getText().toString();
String newAlamatKampus = editTextAlamatKampus.getText().toString();

boolean isUpdated = databaseHelper.updateData(namaKampus,


newNamaKampus, newAlamatKampus);
if (isUpdated) {
Toast.makeText(ActivityAksi.this, "Data berhasil diperbarui",
Toast.LENGTH_SHORT).show();
Intent resultIntent = new Intent();
resultIntent.putExtra("namaKampus", newNamaKampus);
resultIntent.putExtra("alamatKampus", newAlamatKampus);
setResult(RESULT_OK, resultIntent);
finish();
} else {
Toast.makeText(ActivityAksi.this, "Gagal memperbarui data",
Toast.LENGTH_SHORT).show();
}
}
});
// Set onClickListener untuk buttonDelete
buttonDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new AlertDialog.Builder(ActivityAksi.this)
.setTitle("Hapus Data")
.setMessage("Apakah Anda yakin ingin menghapus data ini?")
.setPositiveButton("Ya", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which) {
boolean isDeleted =
databaseHelper.deleteData(namaKampus);
if (isDeleted) {
Toast.makeText(ActivityAksi.this, "Data berhasil
dihapus", Toast.LENGTH_SHORT).show();
setResult(RESULT_OK);
finish(); // Tutup activity setelah
penghapusan
} else {
Toast.makeText(ActivityAksi.this, "Gagal
menghapus data", Toast.LENGTH_SHORT).show();
}
}
})
.setNegativeButton("Tidak", null)
.show();
}
});
}
}

activity_aksi.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:ignore="MissingClass">

<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:elevation="0dp"
app:title="Ubah atau Hapus Kampus"
app:titleTextColor="@android:color/white"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_scrollFlags="scroll|enterAlways">

</com.google.android.material.appbar.MaterialToolbar>

</com.google.android.material.appbar.AppBarLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/textViewNamaKampus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nama Kampus"
android:layout_marginTop="10dp"
android:textSize="18sp"
android:padding="8dp" />
<Button
android:id="@+id/buttonEdit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginLeft="155sp"
android:text="Ubah"
android:padding="8dp" />
</LinearLayout>

<EditText
android:id="@+id/editTextNamaKampus"
android:layout_width="220dp"
android:layout_height="wrap_content"
android:hint="Nama Kampus"
android:textSize="18sp"
android:padding="8dp"
android:layout_marginTop="-15dp"/>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/textViewAlamatKampus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Alamat Kampus"
android:textSize="18sp"
android:layout_marginTop="-10dp"
android:padding="8dp" />

<Button
android:id="@+id/buttonDelete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="150sp"
android:text="Hapus"
android:padding="8dp" />
</LinearLayout>
<EditText
android:id="@+id/editTextAlamatKampus"
android:layout_width="220dp"
android:layout_height="wrap_content"
android:hint="Alamat Kampus"
android:textSize="18sp"
android:padding="8dp"
android:layout_marginTop="-15dp"/>

</LinearLayout>

DataActivity.java
package com.example.kelompok2;

import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class DataActivity extends AppCompatActivity {

private EditText etNamaKampus, etAlamatKampus;


private Button btnSubmit;
private DatabaseHelper databaseHelper;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_data);

etNamaKampus = findViewById(R.id.etNamaKampus);
etAlamatKampus = findViewById(R.id.etAlamatKampus);
btnSubmit = findViewById(R.id.btnSubmit);
databaseHelper = new DatabaseHelper(this);

// Mendengarkan klik tombol


btnSubmit.setOnClickListener(v -> sendDataToDatabase());
}

private void sendDataToDatabase() {


String namaKampus = etNamaKampus.getText().toString();
String alamatKampus = etAlamatKampus.getText().toString();

// Memastikan tidak ada field yang kosong


if (namaKampus.isEmpty() || alamatKampus.isEmpty()) {
Toast.makeText(this, "Harap isi semua field!", Toast.LENGTH_SHORT).show();
return;
}

// Menyimpan data ke database


boolean isInserted = databaseHelper.addData(namaKampus, alamatKampus);

if (isInserted) {
Toast.makeText(this, "Data berhasil disimpan!",
Toast.LENGTH_SHORT).show();
// Navigasi ke DataActivity setelah data disimpan
Intent intent = new Intent(DataActivity.this, MainActivity.class);
startActivity(intent);
} else {
Toast.makeText(this, "Gagal menyimpan data!", Toast.LENGTH_SHORT).show();
}
}
}

activity_data.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:background="@drawable/ic_launcher_foreground"
android:layout_height="match_parent">

<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:ignore="MissingClass">

<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:elevation="0dp"
app:title="Tambah Kampus"
app:titleTextColor="@android:color/white"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_scrollFlags="scroll|enterAlways">
</com.google.android.material.appbar.MaterialToolbar>

</com.google.android.material.appbar.AppBarLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp"
app:layout_behavior="@string/appbar_scrolling_view_behavior">

<EditText
android:id="@+id/etNamaKampus"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Nama Kampus"
android:backgroundTint="@android:color/white"
android:textColor="@android:color/white" />

<EditText
android:id="@+id/etAlamatKampus"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Alamat Kampus"
android:backgroundTint="@android:color/white"
android:textColor="@android:color/white" />

<Button
android:id="@+id/btnSubmit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Submit" />

</LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

DatabaseHelper.java
package com.example.kelompok2;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {

private static final String DATABASE_NAME = "kampus.db";


private static final int DATABASE_VERSION = 1;
private static final String TABLE_NAME = "kampus";
private static final String COLUMN_ID = "id";
public static final String COLUMN_NAMA = "nama_kampus";
public static final String COLUMN_ALAMAT = "alamat_kampus";

public DatabaseHelper(Context context) {


super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "("
+ COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ COLUMN_NAMA + " TEXT,"
+ COLUMN_ALAMAT + " TEXT" + ")";
db.execSQL(CREATE_TABLE);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}

public boolean addData(String namaKampus, String alamatKampus) {


SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_NAMA, namaKampus);
values.put(COLUMN_ALAMAT, alamatKampus);

long result = db.insert(TABLE_NAME, null, values);


db.close();
return result != -1;
}
public Cursor getData() {
SQLiteDatabase db = this.getReadableDatabase();
return db.query(TABLE_NAME, null, null, null, null, null, null);
}
// Metode untuk memperbarui data
public boolean updateData(String oldNamaKampus, String newNamaKampus, String
newAlamatKampus) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_NAMA, newNamaKampus);
values.put(COLUMN_ALAMAT, newAlamatKampus);

int result = db.update(TABLE_NAME, values, COLUMN_NAMA + "=?", new String[]


{oldNamaKampus});
db.close();
return result > 0;
}
// Metode untuk menghapus data
public boolean deleteData(String namaKampus) {
SQLiteDatabase db = this.getWritableDatabase();
int result = db.delete(TABLE_NAME, COLUMN_NAMA + "=?", new String[]
{namaKampus});
db.close();
return result > 0;
}
}

activity_list_item.xml
<!-- list_item.xml -->
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"

android:textSize="16sp"

android:padding="10dp"/>

You might also like