MODUL PRAKTIKUM
ANDROID STUDIO
Oleh :
Saifur Rohman Cholil, S.Kom., M.Kom.
Struktur project
Anda dapat mengatur jendela utama untuk memperluas ruang layar dengan menyembunyikan atau
memindahkan toolbar dan jendela fitur. Anda juga dapat menggunakan pintasan keyboard untuk
mengakses sebagian besar fitur IDE.
Anda dapat menelusuri kode sumber, database, tindakan, elemen antarmuka pengguna, dan sebagainya
kapan saja, dengan menekan tombol Shift dua kali, atau mengklik kaca pembesar di sudut kanan atas
jendela Android Studio. Tips ini sangat berguna jika, misalnya, Anda mencoba menemukan tindakan IDE
tertentu yang Anda lupa cara memicunya.
Jendela fitur
Sebagai ganti menggunakan perspektif preset, Android Studio mengikuti konteks Anda dan otomatis
menampilkan jendela fitur yang relevan saat Anda bekerja. Secara default, jendela fitur yang paling
umum digunakan disematkan ke panel jendela fitur di tepi jendela aplikasi.
Untuk memperluas atau menciutkan jendela fitur, klik nama fitur di panel jendela fitur. Anda juga
dapat menarik, menyematkan, melepaskan sematan, memasang, dan melepas jendela fitur.
Untuk kembali ke tata letak jendela fitur default saat ini, klik Window > Restore Default Layout
atau sesuaikan tata letak default dengan mengklik Window > Store Current Layout as Default.
Untuk menampilkan atau menyembunyikan seluruh panel jendela fitur, klik ikon jendela di sudut
kiri bawah jendela Android Studio.
Untuk menemukan jendela fitur tertentu, arahkan kursor ke atas ikon jendela dan pilih jendela fitur
dari menu.
Anda juga dapat menggunakan pintasan keyboard untuk membuka jendela fitur. Tabel 1 mencantumkan
pintasan untuk jendela yang paling umum.
Pelengkapan kode
Android Studio memiliki tiga jenis pelengkapan kode, yang dapat Anda akses menggunakan pintasan
keyboard.
Tabel 2. Pintasan keyboard untuk pelengkapan kode.
Jenis Deskripsi Windows dan Linux Mac
Basic Menampilkan saran dasar Control+Space Control+Space
Completion untuk variabel, jenis,
metode, ekspresi, dan
sebagainya. Jika
memanggil Basic
Completion dua kali
berturut-turut, Anda akan
melihat lebih banyak
hasil, termasuk anggota
pribadi dan anggota
statis yang tidak
diimpor.
Smart Menampilkan opsi yang Control+Shift+Space Control+Shift+Space
Completion relevan berdasarkan
konteks. Smart Completion
mengetahui jenis dan alur
data yang diharapkan.
Jika Anda memanggil Smart
Completion dua kali
berturut-turut, Anda akan
melihat lebih banyak
hasil, termasuk chain.
Statement Melengkapi pernyataan Control+Shift+Enter Shift+Command+Enter
Completion saat ini secara otomatis,
seperti menambahkan tanda
kurung, tanda kurung
siku, tanda kurung
kurawal, pemformatan,
dll. yang tidak lengkap.
Anda juga dapat melakukan perbaikan cepat dan menampilkan tindakan maksud dengan menekan
Alt+Enter.
Navigasi
Berikut ini beberapa tips untuk membantu Anda menjelajah di dalam Android Studio.
Beralih antar file yang baru saja diakses menggunakan tindakan Recent Files. Tekan Control+E
(Command+E pada Mac) untuk memunculkan tindakan Recent Files. Secara default, file yang
terakhir diakses akan dipilih. Anda juga dapat mengakses jendela fitur mana saja melalui kolom kiri
dalam tindakan ini.
Lihat struktur file saat ini menggunakan tindakan File Structure. Munculkan tindakan File Structure
dengan menekan Control+F12 (Command+F12 pada Mac). Dengan tindakan ini, Anda dapat
membuka bagian mana pun dari file saat ini dengan cepat.
Telusuri dan buka class tertentu dalam project menggunakan tindakan Navigate to Class. Munculkan
tindakan ini dengan menekan Control+N (Command+O pada Mac). Navigate to Class mendukung
ekspresi canggih, termasuk camel humps, jalur, baris navigasi ke, pencocokan nama tengah, dan
banyak lagi. Jika Anda memanggilnya dua kali berturut-turut, hasil dari class project akan
ditampilkan.
Buka file atau folder menggunakan tindakan Navigate to File. Munculkan tindakan Navigate to File
dengan menekan Control+Shift+N (Command+Shift+O pada Mac). Untuk menelusuri folder dan
bukan file, tambahkan / (garis miring) di akhir ekspresi Anda.
Buka metode atau kolom menurut nama menggunakan tindakan Navigate to Symbol. Munculkan
tindakan Navigate to Symbol dengan menekan Control+Shift+Alt+N (Command+Option+O pada
Mac).
Temukan semua bagian kode yang merujuk ke class, metode, kolom, parameter, atau pernyataan di
posisi kursor saat ini dengan menekan Alt+F7 (Option+F7 pada Mac).
Varian build
Sistem build dapat membantu Anda membuat beberapa versi berbeda untuk aplikasi yang sama dari satu
project. Hal ini berguna saat Anda menyediakan aplikasi dalam versi gratis dan berbayar, atau jika Anda
ingin mendistribusikan beberapa APK untuk berbagai konfigurasi perangkat di Google Play.
Dukungan multi-APK
Dukungan multi-APK memungkinkan Anda membuat beberapa APK sekaligus secara efisien berdasarkan
kepadatan layar atau ABI. Misalnya, Anda dapat membuat APK aplikasi terpisah untuk kepadatan layar
hdpi dan mdpi, dengan tetap menganggapnya sebagai varian tunggal serta mengizinkannya berbagi
setelan APK pengujian, javac, dx, dan ProGuard.
Penyusutan resource
Penyusutan resource di Android Studio otomatis menghapus resource yang tidak digunakan dari aplikasi
terpaket dan dependensi library Anda. Misalnya, jika aplikasi Anda menggunakan layanan Google Play
untuk mengakses fungsionalitas Google Drive, dan saat ini Anda tidak menggunakan Login dengan
Google, maka penyusutan resource dapat menghapus beragam aset yang dapat digambar untuk tombol
SignInButton.
Catatan: Penyusutan resource bekerja bersamaan dengan fitur penyusutan kode, seperti ProGuard.
Untuk informasi selengkapnya tentang menyusutkan kode dan resource, lihat Menyusutkan kode dan
resource.
Mengelola dependensi
Dependensi untuk project Anda ditentukan oleh nama dalam file build.gradle. Gradle menangani
penemuan dependensi dan menyediakannya di build Anda. Anda dapat mendeklarasikan dependensi
modul, dependensi biner jarak jauh, dan dependensi biner lokal di file build.gradle Anda. Android
Studio mengonfigurasi project untuk menggunakan Maven Central Repository secara default. (Konfigurasi
ini disertakan dalam file build tingkat atas untuk project.)
Profiler performa
Android Studio menyediakan profiler performa agar Anda dapat melacak penggunaan memori dan CPU
aplikasi, menemukan objek yang batal dialokasikan, menemukan kebocoran memori, mengoptimalkan
performa grafis, dan menganalisis permintaan jaringan dengan mudah. Saat aplikasi Anda berjalan di
perangkat atau emulator, buka tab Android Profiler.
Heap dump
Saat memprofilkan penggunaan memori di Android Studio, Anda dapat sekaligus memulai pembersihan
sampah memori dan membuang heap Java ke cuplikan heap dalam file format biner HPROF khusus
Android. Penampil HPROF akan menampilkan class, instance setiap class, dan struktur referensi untuk
membantu Anda melacak penggunaan memori serta menemukan kebocoran memori.
Memory Profiler
Anda dapat menggunakan Memory Profiler untuk melacak alokasi memori dan melihat di mana objek
dialokasikan saat Anda melakukan tindakan tertentu. Dengan mengetahui alokasi ini, Anda dapat
mengoptimalkan performa dan penggunaan memori aplikasi dengan menyesuaikan panggilan metode
yang terkait dengan tindakan tersebut.
Pemeriksaan kode
Setiap kali Anda mengompilasi program, Android Studio akan otomatis menjalankan Lint yang telah
dikonfigurasi dan pemeriksaan IDE lainnya untuk memudahkan Anda mengidentifikasi serta memperbaiki
masalah kualitas struktur kode Anda.
Fitur Lint memeriksa file sumber project Android Anda untuk menemukan potensi bug dan peluang
pengoptimalan guna mencapai ketepatan, keamanan, performa, kegunaan, aksesibilitas, serta
internasionalisasi.
Selain pemeriksaan Lint, Android Studio juga menjalankan pemeriksaan kode IntelliJ dan memvalidasi
anotasi untuk menyederhanakan alur kerja coding Anda.
Pesan log
Saat membuat dan menjalankan aplikasi dengan Android Studio, Anda dapat melihat output adb dan
pesan log perangkat di jendela Logcat.
Profiling performa
Jika Anda ingin memprofilkan performa CPU, memori, dan jaringan aplikasi, buka Android Profiler,
dengan mengklik View > Tool Windows > Android Profiler.
Bagian Android Studio :
1 Merupakan bagian dari susunan folder project Android Studio (Lebih jelasnya nanti kita akan bahasa
di bawah).
2 Merupakan bagian dari Palette yang berisi beberapa tools atau component yang bisa kita gunakan
untuk memberi tampilan pada aplikasi yang akan kita bangun.
3 Merupakan Component Tree yang memiliki fungsi menampilkan Layout dan susunan dari komponen
yang telah kita gunakan di Bagian 4.
4 Merupakan bagian bidang utama yang digunakan untuk meletakkan Component yang ingin kita
gunakan. Tampilannya seperti tampilan layar pada Mobile Android.
5 Merupakan bagian Properties, bagian ini akan menampilkan semua informasi dari Component yang
kita pilih seperti nama id, ukuran/Size, Font, background, color, dan lain sebagainya.
2. Jalankan program
3. Form Biodata
4. Form Biodata2
MainActivity.java
package com.example.biodata;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
et1.setText("");
et2.setText("");
et3.setText("");
}
});
}
}
PRAKTIKUM 2
MEMBUAT KALKULATOR SEDERHANA
package com.example.kalkulator;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et1=(EditText) findViewById(R.id.editText1);
et2=(EditText) findViewById(R.id.editText2);
tvHasil=(TextView) findViewById(R.id.textView4);
btnTambah=(Button) findViewById(R.id.buttonTambah);
btnKurang=(Button) findViewById(R.id.buttonKurang);
btnKali=(Button) findViewById(R.id.buttonKali);
btnBagi=(Button) findViewById(R.id.buttonBagi);
btnTambah.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
double bil1,bil2,hasil;
bil1=Double.valueOf(et1.getText().toString().trim());
bil2=Double.valueOf(et2.getText().toString().trim());
hasil=bil1+bil2;
String hasil1=String.valueOf(hasil);
tvHasil.setText(hasil1);
}
});
}
}
PRAKTIKUM 3
MENGHITUNG LUAS PERSEGI PANJANG
package com.example.hitungluas;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edPanjang=(EditText)findViewById(R.id.editTextPanjang);
edLebar=(EditText)findViewById(R.id.editTextLebar);
tvHasil=(TextView)findViewById(R.id.textViewLuas);
btHitung=(Button)findViewById(R.id.btnHitung);
btHitung.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
double panjang, lebar, hasil;
panjang=Double.valueOf(edPanjang.getText().toString().trim());
lebar=Double.valueOf(edLebar.getText().toString().trim());
hasil=panjang * lebar;
String hasil1=String.valueOf(hasil);
tvHasil.setText(hasil1);
}
});
}
}
PRAKTIKUM 4
MENGHITUNG LUAS SEGITIGA
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ealas=(EditText)findViewById(R.id.editTextAlas);
etinggi=(EditText)findViewById(R.id.editTextTinggi);
tvhasil=(TextView) findViewById(R.id.textViewHasil);
bthitung=(Button) findViewById(R.id.btnHitung);
bthitung.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
double bilangan1,bilangan2, hasil;
bilangan1=Double.valueOf(ealas.getText().toString().trim());
bilangan2=Double.valueOf(etinggi.getText().toString().trim());
tvhasil.setText(hasil1);
}
});
}
}
PRAKTIKUM 5
PROGRAM PENJUALAN
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etNama=(EditText) findViewById(R.id.etNamaBarang);
etHarga=(EditText) findViewById(R.id.etHargaBarang);
etJumlah=(EditText) findViewById(R.id.etJumlahBarang);
etByr=(EditText) findViewById(R.id.etBayar);
btTotal=(Button) findViewById(R.id.btnTotal);
btHasil=(Button) findViewById(R.id.btnHasil);
btClear=(Button) findViewById(R.id.btnClear);
tvTot=(TextView) findViewById(R.id.tvTotal);
tvKembali=(TextView) findViewById(R.id.tvKembalian);
btTotal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
double jmlbarang, hrgbarang, total;
jmlbarang=Double.valueOf(etJumlah.getText().toString().trim());
hrgbarang=Double.valueOf(etHarga.getText().toString().trim());
total=jmlbarang * hrgbarang;
String total1=String.valueOf(total);
tvTot.setText(total1);
}
});
btHasil.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
double bayar, totharga, hasil;
totharga=Double.valueOf(tvTot.getText().toString().trim());
bayar=Double.valueOf(etByr.getText().toString().trim());
hasil=bayar - totharga;
String hasil1=String.valueOf(hasil);
tvKembali.setText(hasil1);
}
});
btClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
etNama.setText("");
etHarga.setText("");
etJumlah.setText("");
etByr.setText("");
tvTot.setText("");
tvKembali.setText("");
}
});
}
}
PRAKTIKUM 6
PERNYATAAN KONDISI
package com.example.inputnilai;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edtNama=(EditText) findViewById(R.id.etNama);
edtNilai=(EditText) findViewById(R.id.etNilai);
btHasil=(Button) findViewById(R.id.btnHasil);
btCoba=(Button) findViewById(R.id.btnCoba);
tevHuruf=(TextView) findViewById(R.id.tvHuruf);
tevKeterangan=(TextView) findViewById(R.id.tvKeterangan);
btHasil.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int angka =0;
String angka1 = edtNilai.getText().toString();
angka=Integer.parseInt(angka1);
1. Buka android studio buat project baru pilih google maps activity berikan nama dan klik
tombol finish.
2. Buka google_maps_api.xml copy yang saya kasih tanda merah buka browser paste alamat
yang sudah dicopy (tanda merah) login menggunakan akun google Anda.
3.
4. Klik lanjutkan untuk buat project baru aktifkan API dengan cara klik Buat kunci API
5. Selanjutnya akan muncul tampilan di bawah ini dan copykan kunci API
Misalnya : AIzaSyB95voESbvQBhelA6xEzW09fNPm………
6. Buka google_maps_api.xml copy API ke : YOUR_KEY_HERE (REPLACE)
7. Selanjutnya cari titik longitude dan latitude Universitas Semarang dengan bantuan google maps dan
ubah koordinatnya. Untuk melihat titik longitude dan latitude dengan cara klik kanan tombol pin
(warna merah) pilih : ada apa disini?
Hasil
Google_maps_api.xml
<resources>
<!--
TODO: Before you run your application, you need a Google Maps API key.
To get one, follow this link, follow the directions and press "Create" at the end:
https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyTy
pe=CLIENT_SIDE_ANDROID&r=FC:54:E3:F2:DD:31:C4:3A:F1:1B:03:20:C6:2B:04:F7:38:61:EF:5A%3
Bcom.example.maps
You can also add your credentials to an existing key, using these values:
Package name:
FC:54:E3:F2:DD:31:C4:3A:F1:1B:03:20:C6:2B:04:F7:38:61:EF:5A
Once you have your key (it starts with "AIza"), replace the "google_maps_key"
string in this file.
-->
<string name="google_maps_key" templateMergeStrategy="preserve"
translatable="false">AIzaSyDCAAH-MIx7Il9gEm-vWVjWXr4QK3syFac</string>
</resources>
File MapsActivity.Java
package com.example.maps;
import androidx.fragment.app.FragmentActivity;
import android.os.Bundle;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be
used.
SupportMapFragment mapFragment = (SupportMapFragment)
getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
/**
* Manipulates the map once available.
* This callback is triggered when the map is ready to be used.
* This is where we can add markers or lines, add listeners or move the camera. In
this case,
* we just add a marker near Sydney, Australia.
* If Google Play services is not installed on the device, the user will be
prompted to install
* it inside the SupportMapFragment. This method will only be triggered once the
user has
* installed Google Play services and returned to the app.
*/
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker in Masjid Agung Jawa Tengah and move the camera
LatLng masjidagung = new LatLng(-6.984195, 110.445446);
mMap.addMarker(new MarkerOptions().position(masjidagung).title("Saya di Masjid
Agung Jateng"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(masjidagung));
2. Buat file java Class dengan nama : DataHelper.java (digunakan untuk membuat tabel biodata)
Aktif di app Android Klik kanan folder Java (com.example.aplikasibiodata) pilih New Java
Class. Atau seperti pada Gambar di bawah ini.
SQLiteOpenHelper
SqliteOpenHelper adalah sebuah subclass, yang digunakan untuk menentukan nama database dan versi
database yang sedang dipakai. Anda dapat menerapkan method di clas ini seperti : OnCreate
(SqliteDatabase), OnUpgrade (SqliteDatabase int int) dan OnOpen(SqliteDatabase).
3. File DataHelper akan menerapkan method atau fungsi dari SqliteOpenHelper, seperti : OnCreate().
yang dimana akan menjalankan database, jika sebelumnya database belum tersedia atau belum ada.
Salin baris intruksi (codingan ) dibawah ke file class Activity yang bernama DataHelper.java
Isikan kode di bawah ini.
DataHelper.java
package com.example.crud;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1,int arg2) {
//TODO Auto-generated method stub
}
}
4. Setelah itu kita akan membuat sebuah Activity Baru. 3 buah Activity yang dibuat yaitu 3 file java
dan 3 file layout.
Aktif di app Android Klik kanan folder Java (com.example.aplikasibiodata) pilih New
Activity Empty Activity. Atau seperti pada Gambar di bawah ini.
Pada bagian New Android Activity kalian isikan nama activity atau file java dan nama file layout. Sebagai
contoh saya akan membuat file class activity dengan nama:
BuatBiodata.java,
LihatBiodata.java,
UpdateBiodata.java
5. Selanjutnya klik folder res layout. Hapus activity_buat_biodata.xml, activity_lihat_biodata.xml,
activity_update_biodata.xml, activity_main.xml.
Klik kanan pada keempat activity tersebut di atas pilih Delete Oke Delete Anyway
6. Setelah terhapus keempat activity tersebut di atas, selanjutnya buat activity baru dengan nama
yang sama dengan cara : Klik Kanan pada folder layout pilih New Layout resource file
activity_buat_biodata.xml
Tampilan :
activity_update_biodata.xml.
Properti dari masing-masing object
Nama Object Text ID Hint
textView Nomor textView1
textView Nama textView2
textView Tanggal Lahir textView3
textView Jenis Kelamin textView4
textView Alamat textView5
editText editText1 Input nomor
editText editText2 Input nama
editText editText3 DD-MM-YYYY
editText editText4 L/P
editText editText5 Input alamat
button Update button1
button Kembali button2
Tampilan :
activity_main.xml.
Tampilan :
PRAKTIKUM 9
CODING APLIKASI CRUD
MainActivity.java
package com.example.crud;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn=(Button)findViewById(R.id.button2);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent inte = new Intent(MainActivity.this, BuatBiodata.class);
Log.d("11", "kudune ora error");
startActivity(inte);
}
});
ma = this;
dbcenter = new DataHelper(this);
RefreshList();
}
public void RefreshList() {
SQLiteDatabase db = dbcenter.getReadableDatabase();
cursor = db.rawQuery("SELECT * FROM biodata", null);
daftar = new String[cursor.getCount()];
cursor.moveToFirst();
for (int cc = 0; cc < cursor.getCount(); cc++) {
cursor.moveToPosition(cc);
daftar[cc] = cursor.getString(1).toString();
}
ListView01 = (ListView) findViewById(R.id.listView);
ListView01.setAdapter(new ArrayAdapter(this,
android.R.layout.simple_expandable_list_item_1, daftar));
ListView01.setSelected(true);
ListView01.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3)
{
final String selection = daftar[arg2];
final CharSequence[] dialogitem = {"Lihat Biodata", "Update Biodata",
"Hapus Biodata"};
AlertDialog.Builder builder = new
AlertDialog.Builder(MainActivity.this);
builder.setTitle("Pilihan");
builder.setItems(dialogitem, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
switch (item) {
case 0:
Intent i = new Intent(getApplicationContext(),
LihatBiodata.class);
i.putExtra("nama", selection);
startActivity(i);
break;
case 1:
Intent in = new Intent(getApplicationContext(),
UpdateBiodata.class);
in.putExtra("nama", selection);
startActivity(in);
break;
case 2:
SQLiteDatabase db = dbcenter.getWritableDatabase();
db.execSQL("delete from biodata where nama = '" +
selection + "'");
RefreshList();
break;
}
}
});
builder.create().show();
}});
((ArrayAdapter)ListView01.getAdapter()).notifyDataSetInvalidated();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
SQLiteDatabase
SQLiteDatabase adalah sebuah class dasar yang bekerja , untuk database sqlite di perangkat Android.
SqLiteDatabase akan menjalankan perintah SQL secara langsung dengan method exceSQL(). Dan juga
akan melakukan manajamen database secara umum lainya , method yang digunakan seperti : Insert(),
Update() dan Delete().
BuatBiodata.java
package com.example.crud;
import androidx.appcompat.app.AppCompatActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_buat_biodata);
dbHelper = new DataHelper(this);
text1=(EditText) findViewById(R.id.editText1);
text2=(EditText) findViewById(R.id.editText2);
text3=(EditText) findViewById(R.id.editText3);
text4=(EditText) findViewById(R.id.editText4);
text5=(EditText) findViewById(R.id.editText5);
bt1=(Button) findViewById(R.id.button1);
bt2=(Button) findViewById(R.id.button2);
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//TODO Auto-generated method stub
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.execSQL("insert into biodata(no,nama,tgl,jk,alamat) values('" +
text1.getText().toString()+"','"+
text2.getText().toString()+"','" +
text3.getText().toString()+"','"+
text4.getText().toString()+"','" +
text5.getText().toString()+"')");
Toast.makeText(getApplicationContext(),"Berhasil",
Toast.LENGTH_LONG).show();
MainActivity.ma.RefreshList();
finish();
}
});
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//TODO Auto-generated method stub
finish();
}
});
}
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu: this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
}
LihatBiodata.java
package com.example.crud;
import androidx.appcompat.app.AppCompatActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lihat_biodata);
dbHelper = new DataHelper(this);
text1 = (TextView) findViewById(R.id.textView1);
text2 = (TextView) findViewById(R.id.textView2);
text3 = (TextView) findViewById(R.id.textView3);
text4 = (TextView) findViewById(R.id.textView4);
text5 = (TextView) findViewById(R.id.textView5);
SQLiteDatabase db = dbHelper.getReadableDatabase();
cursor = db.rawQuery("SELECT * FROM biodata WHERE nama = '" +
getIntent().getStringExtra("nama") + "'",null);
cursor.moveToFirst();
if (cursor.getCount()>0)
{
cursor.moveToPosition(0);
text1.setText(cursor.getString(0).toString());
text2.setText(cursor.getString(1).toString());
text3.setText(cursor.getString(2).toString());
text4.setText(cursor.getString(3).toString());
text5.setText(cursor.getString(4).toString());
}
bt2 = (Button) findViewById(R.id.button1);
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//TODO Auto-generated method stub
finish();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu: this adds items to the action bar if it is present
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
}
UpdateBiodata.java
package com.example.crud;
import androidx.appcompat.app.AppCompatActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_update_biodata);
dbHelper = new DataHelper(this);
text1=(EditText) findViewById(R.id.editText1);
text2=(EditText) findViewById(R.id.editText2);
text3=(EditText) findViewById(R.id.editText3);
text4=(EditText) findViewById(R.id.editText4);
text5=(EditText) findViewById(R.id.editText5);
SQLiteDatabase db = dbHelper.getReadableDatabase();
cursor = db.rawQuery("SELECT * FROM biodata WHERE nama = '" +
getIntent().getStringExtra("nama") + "'", null);
cursor.moveToFirst();
if (cursor.getCount() > 0) {
cursor.moveToPosition(0);
text1.setText(cursor.getString(0).toString());
text2.setText(cursor.getString(1).toString());
text3.setText(cursor.getString(2).toString());
text4.setText(cursor.getString(3).toString());
text5.setText(cursor.getString(4).toString());
}
bt1 = (Button) findViewById(R.id.button1);
bt2 = (Button) findViewById(R.id.button2);
//daftarkan even onClick pada btnSimpan
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.execSQL("update biodata set nama='" +
text2.getText().toString() + "', tgl='" +
text3.getText().toString() + "', jk='" +
text4.getText().toString() + "', alamat='" +
text5.getText().toString() + "' where no='" +
text1.getText().toString() + "'");
Toast.makeText(getApplicationContext(), "Berhasil",
Toast.LENGTH_LONG).show();
MainActivity.ma.RefreshList();
finish();
}
});
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}
public boolean onCreateOptionMenu(Menu menu) {
//Inflate the menu: this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
}