Anda di halaman 1dari 47

MODUL PRAKTIKUM

ANDROID STUDIO

Oleh :
Saifur Rohman Cholil, S.Kom., M.Kom.

FAKULTAS TEKNOLOGI INFORMASI DAN KOMUNIKASI


UNIVERSITAS SEMARANG
2020
PRAKTIKUM 1
MENGENAL ANDROID STUDIO

Android Studio adalah Lingkungan Pengembangan Terpadu (Integrated Development Environment/IDE)


resmi untuk pengembangan aplikasi Android, yang didasarkan pada IntelliJ IDEA. Selain sebagai editor
kode dan fitur developer IntelliJ yang andal, Android Studio menawarkan banyak fitur yang
meningkatkan produktivitas Anda dalam membuat aplikasi Android, seperti:
 Sistem build berbasis Gradle yang fleksibel
 Emulator yang cepat dan kaya fitur
 Lingkungan terpadu tempat Anda dapat mengembangkan aplikasi untuk semua perangkat Android
 Instant Run untuk mengirim perubahan ke aplikasi Anda yang sedang berjalan tanpa membuat
APK baru
 Template kode dan integrasi GitHub untuk membantu Anda membuat fitur aplikasi umum dan
mengimpor kode sampel
 Framework dan fitur pengujian yang lengkap
 Fitur lint untuk merekam performa, kegunaan, kompatibilitas versi, dan masalah lainnya
 Dukungan C++ dan NDK
 Dukungan bawaan untuk Google Cloud Platform, yang memudahkan integrasi Google Cloud
Messaging dan App Engine
Halaman ini menyediakan pengantar fitur-fitur dasar Android Studio. Untuk ringkasan perubahan
terbaru, lihat catatan rilis Android Studio.

Struktur project

Gambar 1. File project dalam tampilan Android.


Setiap project di Android Studio berisi satu atau beberapa modul dengan file kode sumber dan file
resource. Jenis modul meliputi:
 Modul aplikasi Android
 Modul library
 Modul Google App Engine
Secara default, Android Studio menampilkan file project Anda dalam tampilan project Android, seperti
yang ditunjukkan pada gambar 1. Tampilan ini disusun menurut modul untuk memberikan akses cepat ke
file sumber utama project Anda.
Semua file build terlihat di tingkat teratas di bagian Gradle Script dan setiap modul aplikasi berisi folder
berikut:
 manifests: Berisi file AndroidManifest.xml.
 java: Berisi file kode sumber Java, termasuk kode pengujian JUnit.
 res: Berisi semua resource non-kode, seperti tata letak XML, string UI, dan gambar bitmap.
Struktur project Android pada disk berbeda dengan representasi tersatukan ini. Untuk melihat struktur
file project sebenarnya, pilih Project dari menu drop-down Project (pada gambar 1, ditampilkan sebagai
Android).
Anda juga dapat menyesuaikan tampilan file project untuk berfokus pada aspek spesifik dari
pengembangan aplikasi Anda. Misalnya, memilih tampilan Problems pada project Anda akan
menampilkan link ke file sumber yang berisi error coding dan sintaks yang dikenali, seperti tag penutup
elemen XML yang tidak ada dalam file tata letak.

Gambar 2. File project dalam tampilan Problems,


menunjukkan file tata letak yang memiliki masalah.
Antarmuka Pengguna
Jendela utama Android Studio terdiri dari beberapa area logis yang diidentifikasi dalam Gambar 3.

Gambar 3. Jendela utama Android Studio.


1. Toolbar memungkinkan Anda melakukan berbagai tindakan, termasuk menjalankan aplikasi dan
meluncurkan fitur Android.
2. Menu navigasi membantu Anda menjelajah project dan membuka file untuk diedit. Menu ini
memberikan tampilan struktur yang lebih ringkas yang terlihat di jendela Project.
3. Jendela editor adalah tempat Anda membuat dan memodifikasi kode. Tergantung jenis file yang
ada, editor ini dapat berubah. Misalnya, saat menampilkan file tata letak, editor akan menampilkan
Layout Editor.
4. Panel jendela fitur berada di sisi luar jendela IDE dan berisi tombol-tombol yang memungkinkan
Anda memperluas atau menciutkan setiap jendela fitur.
5. Jendela fitur memberi Anda akses ke tugas tertentu seperti pengelolaan project, penelusuran,
kontrol versi, dan banyak lagi. Anda dapat memperluas dan menciutkan jendela ini.
6. Status bar menampilkan status project Anda dan IDE itu sendiri, serta semua peringatan atau pesan.

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.

Tabel 1. Pintasan keyboard untuk beberapa jendela fitur yang bermanfaat.


Jendela fitur Windows dan Linux Mac
Project Alt+1 Command+1
Version Control Alt+9 Command+9
Run Shift+F10 Control+R
Debug Shift+F9 Control+D
Logcat Alt+6 Command+6
Return to Editor Esc Esc
Hide All Tool Windows Control+Shift+F12 Command+Shift+F12
Jika Anda ingin menyembunyikan semua toolbar, jendela fitur, dan tab editor, klik View > Enter
Distraction Free Mode. Langkah ini akan mengaktifkan Distraction Free Mode. Untuk keluar dari
Distraction Free Mode, klik View > Exit Distraction Free Mode.
Anda dapat menggunakan Speed Search untuk menelusuri dan memfilter di dalam sebagian besar jendela
fitur pada Android Studio. Untuk menggunakan Speed Search, pilih jendela fitur, lalu ketik kueri
penelusuran Anda.

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).

Gaya dan pemformatan


Saat Anda mengedit, Android Studio otomatis menerapkan pemformatan dan gaya seperti yang
ditentukan dalam setelan gaya kode Anda. Anda dapat menyesuaikan setelan gaya kode menurut bahasa
pemrograman, termasuk menentukan konvensi untuk tab dan indentasi, spasi, penggabungan, tanda
kurung kurawal, dan baris kosong. Untuk menyesuaikan setelan gaya kode Anda, klik File > Settings >
Editor > Code Style (Preferences > Editor > Code Style pada Mac.)
Meskipun IDE otomatis menerapkan pemformatan selagi Anda bekerja, Anda juga dapat memanggil
tindakan Reformat Code secara eksplisit dengan menekan Control+Alt+L (Opt+Command+L pada Mac),
atau otomatis mengindentasi semua baris dengan menekan Control+Alt+I (Control+Option+I pada Mac).
Gambar 4. Kode sebelum pemformatan.

Gambar 5. Kode setelah pemformatan.

Dasar-dasar kontrol versi


Android Studio mendukung berbagai sistem kontrol versi (VCS), termasuk Git, GitHub, CVS, Mercurial,
Subversion, dan Google Cloud Source Repositories.
Setelah mengimpor aplikasi Anda ke Android Studio, gunakan opsi menu VCS pada Android Studio untuk
mengaktifkan dukungan VCS bagi sistem kontrol versi yang diinginkan, membuat repositori, mengimpor
file baru ke kontrol versi, dan menjalankan operasi kontrol versi lainnya:
1. Dari menu VCS Android Studio, klik Enable Version Control Integration.
2. Dari menu drop-down, pilih sistem kontrol versi yang ingin dikaitkan dengan root project, lalu klik
OK.
Menu VCS sekarang menampilkan sejumlah opsi kontrol versi berdasarkan sistem yang Anda pilih.
Catatan: Anda juga dapat menggunakan opsi menu File > Settings > Version Control untuk menyiapkan
dan mengubah setelan kontrol versi.

Sistem build Gradle


Android Studio menggunakan Gradle sebagai dasar dari sistem build, dengan lebih banyak kemampuan
khusus Android yang disediakan oleh plugin Android untuk Gradle. Sistem build ini berjalan sebagai fitur
terintegrasi dari menu Android Studio, dan terpisah dari command line. Anda dapat menggunakan fitur-
fitur sistem build untuk:
 Menyesuaikan, mengonfigurasi, dan memperluas proses pembuatan build.
 Membuat banyak APK untuk aplikasi Anda, dengan berbagai fitur yang menggunakan project dan
modul yang sama.
 Menggunakan kembali kode dan resource di seluruh set sumber.
Berkat fleksibilitas Gradle, Anda dapat mencapai semua ini tanpa mengubah file sumber inti aplikasi
Anda. File build Android Studio diberi nama build.gradle. File tersebut adalah file teks biasa yang
menggunakan sintaks Groovy untuk mengonfigurasi build dengan elemen yang disediakan oleh plugin
Android untuk Gradle. Setiap project memiliki satu file build tingkat atas untuk seluruh project dan file
build tingkat modul terpisah untuk setiap modul. Saat Anda mengimpor project yang ada, Android Studio
akan otomatis menghasilkan file build yang diperlukan.
Untuk mempelajari sistem build dan cara mengonfigurasinya lebih lanjut, lihat Mengonfigurasi build.

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.)

Fitur profil dan debug


Android Studio membantu Anda menjalankan proses debug dan meningkatkan performa kode, termasuk
proses debug inline dan fitur analisis performa.

Proses debug inline


Gunakan proses debug inline untuk menyempurnakan panduan kode Anda dalam tampilan debugger
dengan verifikasi inline untuk referensi, ekspresi, dan nilai variabel. Informasi debug inline meliputi:
 Nilai variabel inline
 Objek perujuk yang merujuk ke objek terpilih
 Nilai yang dihasilkan metode
 Ekspresi operator dan lambda
 Nilai tooltip

Gambar 6. Nilai variabel inline.


Untuk mengaktifkan proses debug inline, di jendela Debug, klik Settings dan centang kotak Show
Values Inline.

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.

Akses file data


Fitur-fitur SDK Android, seperti Systrace dan logcat, menghasilkan data performa dan proses debug untuk
analisis aplikasi secara mendetail.
Untuk menampilkan file data yang dihasilkan, buka jendela fitur Captures. Pada daftar file yang
dihasilkan, klik dua kali file untuk melihat data. Klik kanan file .hprof apa pun untuk
mengonversikannya ke dalam format file standar Menyelidiki penggunaan RAM.

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.

Gambar 7. Hasil pemeriksaan Lint di Android Studio.

Selain pemeriksaan Lint, Android Studio juga menjalankan pemeriksaan kode IntelliJ dan memvalidasi
anotasi untuk menyederhanakan alur kerja coding Anda.

Anotasi di Android Studio


Android Studio mendukung anotasi variabel, parameter, dan nilai kembalian untuk membantu Anda
merekam bug, seperti pengecualian pointer null dan konflik jenis resource. Android SDK Manager
mengemas library Support-Annotations di Android Support Repository untuk digunakan dengan Android
Studio. Android Studio memvalidasi anotasi yang sudah dikonfigurasi selama pemeriksaan kode.

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.

Beberapa fungsi attributes and:


Text  tulisan text tampil di layar
ID  nama properti objek
Text color  memberikan warna pada text
Text size  memberikan ukuran font pada text
Grafity  Mengubah perataan teks
Hint  menampilkan text yang akan di input

Membat file APK :


1. Klik menu Build  Build Bundle(s) / APK(s)  Build APK(s)
2. Cari file yang sudah kita buat APK di : C:\Users\NOTEBOOK\AndroidStudioProjects\
Biodata3\app\build\outputs\apk\debug Nama file : app-debug.apk

Setting Xiaomi emulator di Android Studio :


1. Pastikan ada opsi pengembang
Setelan tambahan  Opsi pengembang
Setelan  Tentang Telepon  Ketuk beberapa kali tingkat patch keamanan android
2. Setting Debugging USB dan Instal Via USM :
pengembang
Debugging USB = ON
Install via USB = ON
3. Kalau belum ada opsi pengembang bisa ditampilkan dengna cara :
Setelan  tentang telepon  ketuk 3-5 kali Versi MIUI
Opsi pengembang akan tampil pada setelan tambahan.
 Buat aplikasi hello world dan aplikasi Biodata
1. Buka android studio  buat project baru  file  new project
Pilih  Empty Activity  next  beri nama project = latih1

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;

public class MainActivity extends AppCompatActivity {


EditText et1, et2,et3;
Button btn1;
@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);
et3=(EditText) findViewById(R.id.editText3);
btn1=(Button) findViewById(R.id.button1);

btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
et1.setText("");
et2.setText("");
et3.setText("");
}
});
}
}
PRAKTIKUM 2
MEMBUAT KALKULATOR SEDERHANA

 Buat Desain Seperti Gambar di bawah ini.

 Properti dari masing-masing object


Nama Object Text ID Keterangan
TextView Bilangan 1 textView1 Tulisan Bilangan 1
TextView Bilangan 2 textView2 Tulisan Bilangan 2
Number editText1 Tempat input Bil 1
Number editText2 Tempat input Bil 1
Button + buttonTambah Tombol +
Button - buttonKurang Tombol -
Button x buttonKali Tombol x
Button / buttonKurang Tombol /
TextView Hasil textView3 Tulisan Hasil
TextView 0 textView4 Tulisan 0 (hasil)
 File Main Activity.Java

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;

public class MainActivity extends AppCompatActivity {


EditText et1,et2;
Button btnTambah,btnKurang,btnKali,btnBagi,btnClear;
TextView tvHasil;

@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

 Buat Desain Seperti Gambar di bawah ini.

 Properti dari masing-masing object


Nama Object Text ID Keterangan
TextView Panjang textView1 Tulisan Panjang
TextView Lebar textView2 Tulisan Lebar
Number editTextPanjang Tempat input Panjang
Number editTextLebar Tempat input Lebar
Button Hitung btnHitung Tombol Hitung
TextView Hasil textView3 Tulisan Hasil
TextView 0 textViewHasil Tulisan 0 (hasil)
 File Main Activity.Java

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;

public class MainActivity extends AppCompatActivity {


EditText edPanjang, edLebar;
Button btHitung;
TextView tvHasil;

@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

 Buat Desain Seperti Gambar di bawah ini.

 File Main Activity.Java


package com.example.menghitungluassegitiga;

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;

public class MainActivity extends AppCompatActivity {


EditText ealas,
etinggi; Button
bthitung; TextView
tvhasil;

@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());

hasil = (bilangan1 / 2) * bilangan2;


String hasil1 = String.valueOf(hasil);

tvhasil.setText(hasil1);

}
});

}
}
PRAKTIKUM 5
PROGRAM PENJUALAN

 Buat Desain Seperti Gambar di bawah ini.

 Properti dari masing-masing object


Nama Object Text ID Hint
TextView Nama Barang textView1
TextView Harga Barang textView2
TextView Jumlah Barang textView3
PlainText etNamaBarang Input nama barang
Number etHargaBarang Input harga barang
Number etJumlahBarang Input jumlah barang
TextView 0 tvTotal Tulisan 0 (hasil)
TextView Bayar textView4
Number etBayar Input bayar
TextView Kembalian textView5
TextView 0 tvKembalian
Button Total btnTotal
Button Hasil btnHasil
Button Clear btnClear
 File Main Activity.Java
package com.example.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;

public class MainActivity extends AppCompatActivity {


EditText etNama, etHarga, etJumlah, etByr;
Button btTotal, btHasil, btClear;
TextView tvTot, tvKembali;

@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

 Buat Desain Seperti Gambar di bawah ini.

 File Main Activity.Java

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;

public class MainActivity extends AppCompatActivity {


EditText edtNama, edtNilai;
Button btHasil, btCoba;
TextView tevHuruf, tevKeterangan;

@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);

if ((angka >=80) && (angka<=100)) {


tevHuruf.setText("A");
tevKeterangan.setText("Lulus");
}
else if ((angka >=70) && (angka<80)) {
tevHuruf.setText("B");
tevKeterangan.setText("Lulus");
}
else if ((angka >=60) && (angka<70)) {
tevHuruf.setText("C");
tevKeterangan.setText("Lulus");
}
else if ((angka >=40) && (angka<60)) {
tevHuruf.setText("D");
tevKeterangan.setText("Tidak Lulus");
}
else {
tevHuruf.setText("E");
tevKeterangan.setText("Tidak Lulus");
}
}
});
btCoba.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edtNama.setText("");
edtNilai.setText("");
tevHuruf.setText("0");
tevKeterangan.setText("0");
}
});
}
}
PRAKTIKUM 7
CARA MEMBUAT GOOGLE MAPS

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

Memperbesar klik tanda merah


Menggunakan zoom pakai tombol CTRL + Drag

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

SHA-1 certificate fingerprint:


FC:54:E3:F2:DD:31:C4:3A:F1:1B:03:20:C6:2B:04:F7:38:61:EF:5A

Alternatively, follow the directions here:


https://developers.google.com/maps/documentation/android/start#get-key

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;

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

private GoogleMap mMap;

@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 USM and move the camera


LatLng usm = new LatLng(-6.982128, 110.452207);
mMap.addMarker(new MarkerOptions().position(usm).title("Saya berada di USM"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(usm));

// 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));

// Add a marker in Tugu Muda and move the camera


LatLng tugumuda = new LatLng(-6.983792, 110.409490);
mMap.addMarker(new MarkerOptions().position(tugumuda).title("Tugu Muda Semarang"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(tugumuda));
}
}
PRAKTIKUM 8
DESAIN APLIKASI CRUD

 Membuat Project Baru


1. Buat project baru Empty Activity dengan nama Aplikasi Biodata

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;

public class DataHelper extends SQLiteOpenHelper {


private static final String DATABASE_NAME = "biodatadiri.db";
private static final int DATABASE_VERSION = 1;
public DataHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
//TODO Auto-generade method stub
String sql = "create table biodata(no integer primary key,nama text null,tgl
text null,jk text null,alamat text null);";
Log.d("Data","onCreate: " + sql);
db.execSQL(sql);
sql = "INSERT INTO biodata (no,nama,tgl,jk,alamat) VALUES ('1001','Anto
Kurniawan','14-02-1996','L','Semarang');";
db.execSQL(sql);
}

@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

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 Simpan button1
button Kembali button2
Tampilan :
 activity_lihat_biodata.xml.

Properti dari masing-masing object


Nama Object Text ID Hint
textView Nomor textView11
textView Nama textView12
textView Tanggal Lahir textView13
textView Jenis Kelamin textView14
textView Alamat textView15
textView textView1
textView textView2
textView textView3
textView textView4
textView textView5
button Kembali button1

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.

Properti dari masing-masing object


Nama Object Text ID Hint
button Pilih button2
listView listView

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;

public class MainActivity extends AppCompatActivity {


String[] daftar;
ListView ListView01;
Menu menu;
protected Cursor cursor;
DataHelper dbcenter;
public static MainActivity ma;

@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;

public class BuatBiodata extends AppCompatActivity {


protected Cursor cursor;
DataHelper dbHelper;
Button bt1,bt2;
EditText text1,text2,text3,text4,text5;

@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;

public class LihatBiodata extends AppCompatActivity {


protected Cursor cursor;
DataHelper dbHelper;
Button bt2;
TextView text1,text2,text3,text4,text5;

@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;

public class UpdateBiodata extends AppCompatActivity {


protected Cursor cursor;
DataHelper dbHelper;
Button bt1,bt2;
EditText text1,text2,text3,text4,text5;

@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;
}
}

Menjalankan Project Aplikasi


Setelah selesai semua ,implementasi codenya ,sekarang kalian bisa mencoba menjalankan Aplikasinya di
Android Studio. Hasil tampilan awal biodata :
Jika user (pengguna ) menekan tombol Pilih, maka akan tampil seperti pada gambar dibawah :
Jika user (pengguna) menekan salah satu nama, maka akan muncul pilihan dalam bentuk Context Menu,
yang terdiri dari apakah user (pengguna) ingin melihat, mengupdate, atau menghapus biodata. Seperti
pada gambar dibawah:
Hasil Tampilan Mengupdate Biodata

Anda mungkin juga menyukai