Bagian ini akan menjelaskan tentang : - Modul Mysql Android
PERTEMUAN 1
Bagian ini akan menjelaskan tentang :
Konsep umum android Proses instalasi Eclipse Membuat Program Pertama .............................................................................................................................................
PENGENALAN ANDROID
Android adalah sistem operasi untuk telepon seluler yang berbasis Linux. Android
menyediakan platform yang bersifat open source bagi para pengembang untuk
menciptakan sebuah aplikasi.Awalnya, Google Inc. mengakuisi Android Inc. yang
mengembangkan software untuk ponsel yang berada di Palo Alto, California Amerika
Serikat. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance,
yaitu konsorsium dari 34 perusahaan hardware, software, dan telekomunikasi, termasuk
Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia.Sebuah Activity biasanya ditampilkan dalam satu screen sebagai bagian komponen
dari View (yang terdiri dari komponen UI, widget atau control), yang bertugas melakukan
interaksi dengan user untuk melakukan sebuah task tunggal (misalnya, melihat informasi,
mengedit data, atau memasukkan data).Sebuah aplikasi Android biasanya memiliki satu atau lebih Activity. Salah satu
Activity ditandai sebagai startup activity, yang pada gilirannya memulai activity
berikutnya, melalui sebuah intent. Untuk membuat suatu activity, kita melakukan extend
terhadap class android.app.Activity, dan melakukan override beberapa method, khususnya
method OnCreate().Kita bisa mengatur konten view dari activity secara bahasa pemrograman java atau juga
bisa melalui kode layout file XMLDaur hidup sebuah activity diatur melalui method call-back, yang di definisikan pada class
dasar Activity :Gambar 1.1 : Siklus Hidup Android Untuk lebih memahami siklus hidup android adalah dengan memulai aplikasi pertamayang berada pada bagian 1.
INSTALASI ECLIPSE, JDK, ANDROID DEVELOPMENT TOOLS
Sebelum membangun aplikasi android, diperlukan tiga buah file yang harus diinstal.
Ketiga buah file tersebut dapat diunduh di
1. Eclipse
2. ADT Plugin
3. SDK Manager
Ketiga file tersebut sudah include didalam satu folder. Saat mendownload silahkan
sesuaikan dengan tipe sistem operasi komputer. Kemudian install JDK (Java Development
Kit) minimal versi 7 dan install di komputer. Berikut ini adalah langkah-langkah instalasi :
1. Instal JDK. Silahkan Klik Next hingga proses instalasi selesai.
Gambar 1.2 : instalasi Java Development Kit Selanjutnya kita akan membuat Android Virtual Device. Masuk ke folder adt-2. bundle, kemudian klik SDK manager.exe. jika terdapat pemberitahuan error, abaikan saja.
Gambar 1.3 : Tampilan SDK Manager Pilih Tools lalu Manage AVDs3.
Gambar 1.4 : Proses Manajemen AVD4. Selanjutnya adalah proses konfigurasi emulator android, klik New
Gambar 1.5 : membuat Android Virtual Device Isi sesuai dengan gambar dibawah ini. Untuk Internal Storage ubah nilainya5. menjadi 500MiB. Kemudian Klik OK
Gambar 1.6 : konfigurasi AVD6. Setelah itu, klik start untuk menjalankan emulator yang telah dibuat. Android Device Virtual telah selesai dibuat.
Gambar 1.7 : menjalankan AVDPROGRAM PERTAMA
Pada pertemuan pertama. Kita akan membuat program awal sebagai pemanasan. Berikut
ini langkah-langkah pembuatan aplikasi android pertama.
Jalankan Eclipse, Kemudian Pilih File > New > Android Application Project
1.Gambar 1.7 : membuat project pertama 2. Kemudian isi seperti gambar 1.2.Gambar 1.8 : memberi nama project Buka file main.xml didalam package res > layout. Gambar 1.93.
Gambar 1.9 : hierarki package 4. Ganti kode di main.xml seperti dibawah ini.< LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
"http://schemas.android.com/tools"
xmlns:tools = android:id = "@+id/LinearLayout1" android:layout_width = "match_parent"
"match_parent"
android:layout_height = android:orientation = "vertical" tools:context = ".Main" > < TextView android:id = "@+id/txt1" android:layout_width = "match_parent""wrap_content" android:layout_height = android:gravity = "center|center_vertical" android:text = "@string/text1"
"?android:attr/textAppearanceLarge" android:textAppearance = />
< Button "@+id/btn1" android:id = android:layout_width = "match_parent" android:layout_height = "wrap_content" android:text = "@string/button1" />
</ LinearLayout > Tampilan pada Graphical Layout seperti dibawah ini
Gambar 1.10 : tampilan graphical layout 5. Kemudian ubah kode di activity main.java seperti dibawah ini.package com.example.projectpertama; import android.os.Bundle; import android.app.Activity; public class Main extends Activity implements OnClickListener {
TextView txt1; Button btn1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); txt1 = (TextView) findViewById(R.id.txt1); btn1 = (Button) findViewById(R.id.btn1); btn1.setOnClickListener(this); }
@Override public void onClick(View arg0) { // TODO Auto-generated method stub txt1.setText("Mantep kan");
} }
6. Jalankan aplikasi dengan cara klik kanan package > pilih Run As > Android Application Project, atau dengan shortcut CTRL + F11.
7. Aplikasi dapat didownload langsung ke perangkat android. File ProjectPertama.apk terletak di folder ProjectPertama/bin.
PERTEMUAN 2
Bagian ini akan menjelaskan tentang :
Menampilkan gambar
Membuat dialog interaktif dengan toast, list, dan alert
...............................................................................................................................................
MEMBUAT TOAST, LIST DIALOG, ALERT DIALOG
Pada pertemuan kedua kita akan membuat kotak dialog sebagai sarana interaktif antara
aplikasi dengan pengguna. Pada aplikasi ini kita akan mengimplementasikan 3 macam
dialog, antara lain : Toast List dialog Alert dialog
Untuk membuat aplikasi ini. Silahkan membuat project baru seperti pada gambar dibawah
ini.1. Membuat project dengan nama alertlist
Gambar 2.1 : membuat project alertlist2. Modifkasi layout di activitymain.mml menjadi seperti dibawah ini < RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
"http://schemas.android.com/tools"
xmlns:tools = android:layout_width = "fill_parent" android:layout_height = "fill_parent"".AlertListActivity" tools:context = > < TextView android:id = "@+id/seleksi"
"fill_parent" android:layout_width = android:layout_height = "wrap_content" android:layout_centerHorizontal = "true" "true" android:layout_centerVertical = android:text = "@string/hello_world" />
< Button "@+id/pesantoast" android:id = android:layout_width = "fill_parent" android:layout_height = "wrap_content"
"true" android:layout_alignParentRight = android:layout_alignParentTop = "true" android:text = "Tampilkan Toast" />
< Button android:id = "@+id/keluar" android:layout_width = "fill_parent"
"wrap_content" android:layout_height = android:layout_above = "@+id/seleksi" android:layout_marginBottom = "36dp"
"Keluar" android:text = />
< Button "@+id/tampillist" android:id = android:layout_width = "fill_parent" android:layout_height = "wrap_content" android:layout_alignParentLeft = "true"
"@+id/pesantoast" android:layout_below = android:layout_marginTop = "18dp" android:text = "Tampilkan List" />
</ RelativeLayout >
3. Modifikasi file AlertListActivity.java seperti dibawah ini
package com.example.alertlist; import android.os.Bundle; import android.app.Activity; public class AlertListActivity extends Activity implements OnClickListener { Button pesantoast;
Button keluar; Button tampillist; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_alert_list); pesantoast = (Button)findViewById(R.id.pesantoast); pesantoast.setOnClickListener(this); tampillist = (Button)findViewById(R.id.tampillist); tampillist.setOnClickListener(this); keluar = (Button)findViewById(R.id.keluar); keluar.setOnClickListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_alert_list, menu);
return true; } @Override public void onClick(View arg0) { if(arg0 == pesantoast){Toast.makeText(getBaseContext(), "Anda Memilih Toast", Toast.LENGTH_SHORT).show(); } else if (arg0 == keluar){
AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Apakah Anda ingin keluar ?").setCancelable(false) .setPositiveButton("Ya", new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface arg0, int arg1) { AlertListActivity.this.finish();
// TODO Auto-generated method stub } }).setNegativeButton("Tidak", new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface arg0, int arg1) { arg0.cancel();
// TODO Auto-generated method stub
} }).show(); } else if (arg0 == tampillist){ final CharSequence[] item = {"Jeruk", "Jambu", "Nangka", "Nanas"}; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Pilih Minuman"); builder.setItems(item, new
DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(getBaseContext(), item[arg1], Toast.LENGTH_SHORT).show(); // TODO Auto-generated method stub }
}).show(); } // TODO Auto-generated method stub }
} 4. Jalankan aplikasi dan lihat hasilnya.
Gambar 2.2 : list dialogGambar 2.3 : alert dialog
PERTEMUAN 3
Pada bagian ini, kita akan mempelajari : Intent untuk memanggil activity Penerapan intent pada aplikasi konversi berat badan
...............................................................................................................................................
MEMBUAT INTENT
Pada pertemuan ketiga kita akan belajar membuat intent sederhana. Inti dari sebuah
aplikasi ada 3, yaitu activity, service dan broadcast. Intent digunakan untuk memanggil
activity, memanggil service, atau melakukan broadcast.Pada bagian ini, kita akan memahami intent paling sederhana yaitu memanggil activity
lain.1. Buat project dengan nama IntentPertama
Gambar 3.1 : membuat project intentpertama2. Modifikasi activity_pertama.xml seperti dibawah ini "http://schemas.android.com/apk/res/android"
< LinearLayout xmlns:android = xmlns:tools = "http://schemas.android.com/tools" android:id = "@+id/LinearLayout1"
"match_parent" android:layout_width = android:layout_height = "match_parent" android:orientation = "vertical" tools:context = ".ActivityPertama" > < TextView android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "@string/hello_world" /> < Button android:id = "@+id/button1" android:layout_width = "wrap_content"
"wrap_content" android:layout_height = android:text = "Next" />
</ LinearLayout >
3. Modifikasi ActivityPertama.java seperti dibawah ini package com.example.intentpertama; import android.os.Bundle; import android.app.Activity; public class ActivityPertama extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pertama);
final Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View arg0) { Intent myintent = new Intent(button1.getContext(), ActivityKedua.class); startActivityForResult(myintent, 0); // TODO Auto-generated method stub
} }); } }
4. Buat activity kedua seperti gambar 3.2 dibawah ini.
Gambar 3.2 : membuat activity kedua5. Modifikasi activity_kedua.xml seperti dibawah ini
< RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
"http://schemas.android.com/tools"
xmlns:tools = android:layout_width = "match_parent" android:layout_height = "match_parent"".ActivityKedua" tools:context = > < Button
"@+id/back" android:id = android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_alignParentLeft = "true"
"true" android:layout_alignParentTop = android:text = "Kembali" />
</ RelativeLayout > 6.
Modifkasi ActivityKedua.java seperti dibawah ini package com.example.intentpertama; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.Button; public class ActivityKedua extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_kedua);
Button back = (Button)findViewById(R.id.back); back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(); setResult(RESULT_OK, intent); finish(); // TODO Auto-generated method stub }}); } }
7. Jalankan aplikasi seperti gambar 3.3
Gambar 3.3 : hasil aplikasi intent sederhanaLATIHAN 1 MEMBUAT KONVERSI BERAT BADAN
Aplikasi konversi berat badan ini menggunakan dua buah activity. Activity pertama berisi
inputan nama, username, dan button. Activity kedua berisi textfield dan button.1. Buat project baru dengan nama BeratBadan
Gambar 3.4 : membuat project beratbadan 2.Modifkasi activitymmain.mml seperti dibawah ini < LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
"http://schemas.android.com/tools"
xmlns:tools = android:id = "@+id/LinearLayout1" android:layout_width = "match_parent"
"match_parent"
android:layout_height = android:orientation = "vertical" tools:context = ".MainActivity" > < TextView android:id = "@+id/textView1" android:layout_width = "wrap_content""wrap_content" android:layout_height = android:text = "Username" />
< EditText android:id = "@+id/username" android:layout_width = "match_parent"
"wrap_content" android:layout_height = android:ems = "10" > < requestFocus /> </ EditText >
< TextView "@+id/textView2" android:id = android:layout_width = "wrap_content" android:layout_height = "wrap_content"
"Password" android:text = />
< EditText android:id = "@+id/password"
"match_parent" android:layout_width = android:layout_height = "wrap_content" android:ems = "10"
"textPassword"
android:inputType = />< Button android:id = "@+id/login"
"fill_parent" android:layout_width = android:layout_height = "wrap_content" android:text = "Login" />
</ LinearLayout > 3.
Modifkasi mainactivity.java seperti dibawah ini package com.example.latihan1; import android.os.Bundle; import android.app.Activity; public class MainActivity extends Activity implements android.view.View.OnClickListener { EditText username, password;
Button login; String user = "yuni", pass = "12345"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); username = (EditText)findViewById(R.id.username); password = (EditText)findViewById(R.id.password); login = (Button)findViewById(R.id.login); login.setOnClickListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; }
@Override public void onClick(View arg0) { try{ if(arg0.getId() == R.id.login){
Intent i = new Intent(getBaseContext(), Main2Activity.class); startActivityForResult(i, 0);
} } catch (Exception e){ Toast.makeText(getBaseContext(), "Anda Tidak Berhak
Masuk", Toast.LENGTH_LONG).show(); } } } 4.
Modifkasi activitymmain2.mml sperti dibawah ini "http://schemas.android.com/apk/res/android"
< LinearLayout xmlns:android = xmlns:tools = "http://schemas.android.com/tools" android:id = "@+id/LinearLayout1" android:layout_width = "match_parent"
"match_parent"
android:layout_height = android:orientation = "vertical" tools:context = ".Main2Activity" > < TextView android:id = "@+id/textView1""wrap_content" android:layout_width = android:layout_height = "wrap_content" android:text = "Masukkan Berat Badan" />
< EditText android:id = "@+id/berat" android:layout_width = "match_parent"
"wrap_content" android:layout_height = android:ems = "10" android:inputType = "number" > < requestFocus /> </ EditText >
< TextView android:id = "@+id/textView2" android:layout_width = "wrap_content"
"wrap_content" android:layout_height = android:text = "Masukkan Tinggi Badan" />
< EditText android:id = "@+id/tinggi" android:layout_width = "match_parent" android:layout_height = "wrap_content"
"10" android:ems = android:inputType = "number" />
< Button android:id = "@+id/hasil" android:layout_width = "fill_parent"
"wrap_content" android:layout_height = android:text = "Hasil" />
< TextView android:id = "@+id/output" android:layout_width = "wrap_content" android:layout_height =
"wrap_content" android:text = "Hasil" />
< Button android:id =
"@+id/back" android:layout_width = "fill_parent" android:layout_height = "wrap_content" android:text =
"Back" /> < Button android:id =
"@+id/exit" android:layout_width = "fill_parent" android:layout_height = "wrap_content" android:text = "Exit" />
</ LinearLayout >
5. Modifkasi Main2Activity.java seperti dibawah ini
package com.example.latihan1; import android.os.Bundle; import android.app.Activity; public class Main2Activity extends Activity implements OnClickListener {
Button hasil, back, exit; EditText berat, tinggi; TextView output; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main2);
berat = (EditText)findViewById(R.id.berat); tinggi = (EditText)findViewById(R.id.tinggi); output = (TextView)findViewById(R.id.output);hasil = (Button)findViewById(R.id.hasil);
back = (Button)findViewById(R.id.back);
exit = (Button)findViewById(R.id.exit);
hasil.setOnClickListener(this); back.setOnClickListener(this); exit.setOnClickListener(this);} @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main2, menu); return true; } @Override public void onClick(View v) { int angka = 110; //angka ideal int angka1 = Integer.parseInt(berat.getText().toString()); //merubah dari string edittext ke integer int angka2 = Integer.parseInt(tinggi.getText().toString()); int ideal = angka2 - angka1; //berat badan ideal int ideal2 = angka2 - angka; //berat badan yang disarankan try{ if(v.getId() == R.id.hasil){ //button hasil if(ideal == 110){ output.setText("Berat Badan Anda Ideal"); }else if (ideal > 110){ output.setText("Anda Kurus"); }else{ output.setText("Anda Gemuk, berat Anda
"+angka1+" Tinggi Anda "+angka2+" Seharusnya Berat badan anda "+ideal2); } }else if (v.getId() == R.id.exit){ AlertDialog.Builder builder = new
AlertDialog.Builder(this); builder.setMessage("Apakah Anda Ingin Keluar ?").setCancelable(false) .setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) {
Main2Activity.this.finish(); } }) .setNegativeButton("NO", new
DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }).setNeutralButton("Cancel", new
DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); }
}).show(); }else if (v.getId() == R.id.back){ Intent i = new Intent(getBaseContext(), MainActivity.class);
startActivityForResult(i, 0);
}else{Toast.makeText(getBaseContext(), "Masukkan Berat dan Tinggi Badan Anda", Toast.LENGTH_SHORT).show(); output.setText("Masukkan Angka Dulu"); }
}catch(Exception e){ Toast.makeText(getBaseContext(), "Hahaha", Toast.LENGTH_SHORT).show(); }
} }
6. Jalankan aplikasi seperti dibawah ini
Gambar 3.6 : hasil aplikasi konversi berat badan
PERTEMUAN 4
Pada bagian ini, kita akan mempelajari : Membuat aplikasi kalkulator sederhana Pengenalan Autocomplete
.............................................................................................................................................…
MEMBUAT APLIKASI KALKULATOR
1. Buat project dengan nama kalkulator
Gambar 4.1 : membuat aplikasi kalkulator 2. Modifikasi main.xml seperti pada gambar 4.2.Gambar 4.2 : tampilan main.xml pada activity 13. Modifikasi mainactivity.java seperti dibawah ini
package com.example.hitung_sederhana; import android.os.Bundle; import android.app.Activity; import android.content.Intent; public class MainActivity extends Activity implements OnClickListener { EditText a, b, c;
Button tambah, kurang, kali, bagi, next; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);
a = (EditText) findViewById(R.id.a); b = (EditText) findViewById(R.id.b); c = (EditText) findViewById(R.id.c); tambah = (Button) findViewById(R.id.tambah); kurang = (Button) findViewById(R.id.kurang);kali = (Button) findViewById(R.id.kali);
bagi = (Button) findViewById(R.id.bagi);
next = (Button)findViewById(R.id.next);
tambah.setOnClickListener(this); kurang.setOnClickListener(this); kali.setOnClickListener(this); bagi.setOnClickListener(this); next.setOnClickListener(this);} @Override public void onClick(View v) { int angka1 = Integer.parseInt(a.getText().toString()); int angka2 = Integer.parseInt(b.getText().toString()); int hasil = angka1 + angka2; int hasil2 = angka1 - angka2; int hasil3 = angka1 * angka2; float hasil4 = angka1 / angka2; try { if (v.getId() == R.id.tambah) { c.setText(Integer.toString(hasil)); } else if (v.getId() == R.id.kurang) { c.setText(Integer.toString(hasil2)); } else if (v.getId() == R.id.kali) { c.setText(Integer.toString(hasil3)); } else if (v.getId() == R.id.bagi){ c.setText(Float.toString(hasil4)); } else {
Intent i = new Intent(getBaseContext(), MainActivity2.class);
startActivityForResult(i, 0);
}} catch (Exception e) { Toast.makeText(getBaseContext(), "Salah", Toast.LENGTH_LONG).show();
c.setText("Tak Terhingga ~");
} // ketiga.settext(string.valueof(hasil)).tostring()); } }
4. Modifkasi main2.mml
< RelativeLayout "http://schemas.android.com/apk/res/android" xmlns:android = xmlns:tools = "http://schemas.android.com/tools" android:layout_width = "match_parent"
"match_parent"
android:layout_height = tools:context = ".MainActivity2" > < TextView"@+id/textView1" android:id = android:layout_width = "wrap_content" android:layout_height = "wrap_content"
"true" android:layout_centerHorizontal = android:layout_centerVertical = "true" android:text = "@string/hello_world" />
< Button android:id = "@+id/back" android:layout_width = "wrap_content"
"wrap_content" android:layout_height = android:layout_alignParentTop = "true" android:layout_alignRight = "@+id/textView1"
"40dp" android:layout_marginTop = android:text = "Back" />
</ RelativeLayout >
5. Modifkasi mainactivity2.mml seperti dibawah ini
package com.example.hitung_sederhana; import android.os.Bundle; import android.app.Activity; import android.content.Intent; public class MainActivity2 extends Activity implements OnClickListener { Button back;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_activity2);back = (Button)findViewById(R.id.back);
back.setOnClickListener(this);} @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main_activity2, menu); return true;
} @Override public void onClick(View v) { if (v.getId() == R.id.back){
Intent i = new Intent(getBaseContext(), MainActivity.class);
startActivityForResult(i, 0);
}else{ Toast.makeText(getBaseContext(), "Salah", Toast.LENGTH_LONG).show(); back.setText("Salah Le... ~"); }} }
MEMBUAT APLIKASI DENGAN AUTOCOMPLETE
1. Buat project dengan nama latihan2
Gambar 4.3 : membuat project latihan2 2.Modifkasi main.mml seperti dibawah ini < LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
"http://schemas.android.com/tools"
xmlns:tools = android:id = "@+id/LinearLayout1" android:layout_width = "match_parent"
"match_parent"
android:layout_height = android:orientation = "vertical" tools:context = ".MainActivity" > < TextView android:layout_width = "wrap_content" android:layout_height = "wrap_content""NAMA" android:text = />
< EditText "@+id/nama" android:id = android:layout_width = "match_parent" android:layout_height = "wrap_content"
"10" android:ems = > < requestFocus /> </ EditText >
< TextView android:id = "@+id/textView1"
"wrap_content" android:layout_width = android:layout_height = "wrap_content" android:text = "NIM" />
< EditText android:id = "@+id/nim" android:layout_width = "match_parent"
"wrap_content" android:layout_height = android:ems = "10" /> < TextView android:id = "@+id/seleksi" android:layout_width = "wrap_content" android:layout_height = "wrap_content"
"ASAL PROVINSI" android:text = />
< AutoCompleteTextView "@+id/provinsi" android:id = android:layout_width = "match_parent" android:layout_height = "wrap_content"
"10" android:ems = android:text = "Provinsi" />
< TextView "@+id/textView3" android:id = android:layout_width = "wrap_content" android:layout_height = "wrap_content"
"JENIS KELAMIN" android:text = />
< RadioGroup android:id = "@+id/jk"
"5px" android:padding = android:layout_width = "fill_parent" android:layout_height = "wrap_content" > < RadioButton
"@+id/pria" android:id = android:layout_width = "wrap_content" android:layout_height = "wrap_content"
"Pria" android:text = />
< RadioButton "@+id/wanita" android:id = android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "Wanita" />
</ RadioGroup > < TextView android:id = "@+id/textView4"
"wrap_content" android:layout_width = android:layout_height = "wrap_content" android:text = "ANDA SETUJU DENGAN SEGALA KETENTUAN DARI KAMI " />
< CheckBox android:id = "@+id/ya" android:layout_width = "wrap_content"
"wrap_content" android:layout_height = android:text = "Ya" />
< ImageButton android:id = "@+id/create" android:layout_width = "wrap_content"
"wrap_content" android:layout_height = android:src = "@android:drawable/ic_input_add" />
</ LinearLayout >
3. Modifkasi activity.java seperti dibawah ini
package com.example.latihan2; import android.R.string; import android.os.Bundle; import android.app.Activity; public class MainActivity extends Activity implements OnClickListener, TextWatcher, RadioGroup.OnCheckedChangeListener{
EditText nama, nim; TextView seleksi; AutoCompleteTextView provinsi; RadioGroup jk; CheckBox ya; String item[] = {"Jawa Tengah", "Jawa Timur", "Jawa Barat",
"Sumatera Selatan", "Sumatera Utara"}; ImageButton create; String user="yuni", pass="12345"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); seleksi = (TextView)findViewById(R.id.seleksi); provinsi = (AutoCompleteTextView)findViewById(R.id.provinsi); provinsi.addTextChangedListener(this); provinsi.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, item)); nama = (EditText)findViewById(R.id.nama); nim = (EditText)findViewById(R.id.nim); create = (ImageButton)findViewById(R.id.create); create.setOnClickListener(this); ya = (CheckBox)findViewById(R.id.ya); jk = (RadioGroup)findViewById(R.id.jk); jk.setOnCheckedChangeListener(this); }
@Override public void onClick(View arg0) { try{ if(arg0.getId() == R.id.create){
Intent i = new Intent(getBaseContext(), MainActivity2.class); startActivityForResult(i, 0); } } catch (Exception e){ Toast.makeText(getBaseContext(), "Anda Tidak Berhak
Masuk", Toast.LENGTH_LONG).show(); } } @Override public void afterTextChanged(Editable s) { } @Override public void beforeTextChanged(CharSequence s, int start, int count,int after) { }
@Override public void onTextChanged(CharSequence s, int start, int before, int count) { seleksi.setText(provinsi.getText());
} @Override public void onCheckedChanged(RadioGroup group, int checkedId) { }
}
4. Modifikasi main2.xml seperti gambar dibawah ini
Gambar 4.4 : tampilan activity kedua5. Modifkasi activity2.java seperti gambar dibawah ini
package com.example.latihan2; import android.os.Bundle; import android.app.Activity; public class MainActivity2 extends Activity implements OnClickListener {
Button exit, back; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main2);
back = (Button)findViewById(R.id.back);
exit = (Button)findViewById(R.id.exit);
back.setOnClickListener(this); exit.setOnClickListener(this); }@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main2, menu); return true;
} @Override public void onClick(View v) { try{ if(v.getId() == R.id.exit){ AlertDialog.Builder builder = new
AlertDialog.Builder(this); builder.setMessage("Apakah Anda Ingin Keluar ?").setCancelable(false) .setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) {
MainActivity2.this.finish(); } }) .setNegativeButton("NO", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); }
}).setNeutralButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss();
} }).show(); }else if (v.getId() == R.id.back){ Intent i = new Intent(getBaseContext(),
MainActivity.class);
startActivityForResult(i, 0);
} }catch(Exception e){Toast.makeText(getBaseContext(), "Hahaha", Toast.LENGTH_SHORT).show(); } }
}
6. Jalankan aplikasi
Gambar 4.5 : hasil tampilan aplikasi
PERTEMUAN 5
Pada bagian ini, kita akan mempelajari : Membuat aplikasi database sederhana dengan SQLite
................................................................................................................................................
PENGENALAN SQLite SQLite adalah database yang dibangun di Android. Hampir sama dengan SQL pada
dekstop, SQLite memiliki fiture relasional database namun membutuhkan sedikit memori.
SQLite terdapat pada semua perangkat Android. Anda culup mendefinisikan
perintah SQL untuk meng-create atau meng-update database, selanjutnya sistem ada
Android akan menangani hal-hal yang berhubungan dengn database. SQLite database
otomatis akan tersimpan didalam path data/data/nama_package/database/nama_database.
PEMBUATAN APLIKASI
1. Buat project baru dengan nama AndroidCrudExample. Lalu setelah itu modifikasi layout activity_main.xml sesuai dengan gambar berikut;
Gambar 5.1 layout activity_main.xml2. Kemudian buat activity baru dengan nama student_input_form.xml. Setelah selesai membuat activity baru jangan lupa untuk menginisialisasikannya pada file AndroidManifest.xml agar activity dapat kenal/dijalankan.
Gambar 5.2 student_input_form3. Setelah itu buat file DatabaseHandler.java
import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DatabaseHandler extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 1; protected static final String DATABASE_NAME = "StudentDatabase"; public DatabaseHandler(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION);
} @Override public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE students " + "( id INTEGER PRIMARY KEY AUTOINCREMENT, " + "firstname TEXT, " + "email TEXT ) "; db.execSQL(sql);
} @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "DROP TABLE IF EXISTS students"; db.execSQL(sql); onCreate(db);
} }
4. Kemudian itu buat lagi file ObjectStudent
.java public class ObjectStudent { int id ;
String firstname ; String email ;
public ObjectStudent(){
} }
5. S
etelah itu modifkasi fle MainActivity.java (bagi yang tidak memiliki
atau belum membuat fle MainActivity.java buat terlebih dahulu)
import java.util.List; import android.os.Bundle; import android.app.Activity; public class MainActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button buttonCreateLocation = (Button) findViewById(R.id.buttonCreateStudent); buttonCreateLocation.setOnClickListener(new
OnClickListenerCreateStudent()); countRecords(); readRecords();
} public void countRecords() { int recordCount = new TableControllerStudent(this).count(); TextView textViewRecordCount = (TextView) findViewById(R.id.textViewRecordCount); textViewRecordCount.setText(recordCount + " records found.");
} public void readRecords() { LinearLayout linearLayoutRecords = (LinearLayout) findViewById(R.id.linearLayoutRecords); linearLayoutRecords.removeAllViews(); List<ObjectStudent> students = new
TableControllerStudent(this).read(); if (students.size() > 0) { for (ObjectStudent obj : students) { int id = obj.id; String studentFirstname = obj.firstname; String studentEmail = obj.email; String textViewContents = studentFirstname + " - " + studentEmail; TextView textViewLocationItem = new TextView(this); textViewLocationItem.setPadding(0, 10, 0, 10); textViewLocationItem.setText(textViewContents); textViewLocationItem.setTag(Integer.toString(id)); textViewLocationItem.setOnLongClickListener(new
OnLongClickListenerStudentRecord()); linearLayoutRecords.addView(textViewLocationItem); }
} else { TextView locationItem = new TextView(this); locationItem.setPadding(8, 8, 8, 8); locationItem.setText("No records yet."); linearLayoutRecords.addView(locationItem);
} } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true;
} } 6.
Lalu kemudian buat fle TableControllerStudent.java
import java.util.ArrayList; import java.util.List; import android.database.sqlite.SQLiteDatabase; public class TableControllerStudent extends DatabaseHandler { public TableControllerStudent(Context context) { super(context);
} public boolean create(ObjectStudent objectStudent) { ContentValues values = new ContentValues(); values.put("firstname", objectStudent.firstname); values.put("email", objectStudent.email); SQLiteDatabase db = this.getWritableDatabase(); boolean createSuccessful = db.insert("students", null, values) > 0; db.close(); return createSuccessful;
} public List<ObjectStudent> read() { List<ObjectStudent> recordsList = new ArrayList<ObjectStudent>(); String sql = "SELECT * FROM students ORDER BY id DESC"; SQLiteDatabase db = this.getWritableDatabase(); Cursor cursor = db.rawQuery(sql, null); if (cursor.moveToFirst()) { do { int id =
Integer.parseInt(cursor.getString(cursor.getColumnIndex("id"))); String studentFirstname = cursor.getString(cursor.getColumnIndex("firstname")); String studentEmail = cursor.getString(cursor.getColumnIndex("email")); ObjectStudent objectStudent = new ObjectStudent(); objectStudent.id = id; objectStudent.firstname = studentFirstname; objectStudent.email = studentEmail; recordsList.add(objectStudent);
} while (cursor.moveToNext()); } cursor.close(); db.close(); return recordsList;
} public ObjectStudent readSingleRecord(int studentId) { ObjectStudent objectStudent = null; String sql = "SELECT * FROM students WHERE id = " + studentId; SQLiteDatabase db = this.getWritableDatabase(); Cursor cursor = db.rawQuery(sql, null); if (cursor.moveToFirst()) { int id =
Integer.parseInt(cursor.getString(cursor.getColumnIndex("id"))); String firstname = cursor.getString(cursor.getColumnIndex("firstname")); String email = cursor.getString(cursor.getColumnIndex("email")); objectStudent = new ObjectStudent(); objectStudent.id = id; objectStudent.firstname = firstname; objectStudent.email = email;
} cursor.close(); db.close(); return objectStudent;
} public boolean update(ObjectStudent objectStudent) { ContentValues values = new ContentValues(); values.put("firstname", objectStudent.firstname); values.put("email", objectStudent.email); String where = "id = ?"; String[] whereArgs = { Integer.toString(objectStudent.id) }; SQLiteDatabase db = this.getWritableDatabase(); boolean updateSuccessful = db.update("students", values, where, whereArgs) > 0; db.close(); return updateSuccessful;
} public boolean delete(String id) { SQLiteDatabase db = this.getWritableDatabase(); boolean deleteSuccessful = db.delete("students", "id = " + id, null) > 0; db.close(); return deleteSuccessful;
} public int count() { SQLiteDatabase db = this.getWritableDatabase(); String sql = "SELECT * FROM students"; int recordCount = db.rawQuery(sql, null).getCount(); db.close(); return recordCount;
} }
7. Buat file java dengan nama OnClickListenerCreateStudent
.java
import android.app.AlertDialog; import android.content.Context; public class OnClickListenerCreateStudent implements OnClickListener {
@Override public void onClick(View view) { final Context context = view.getContext(); LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View formElementsView = inflater.inflate(R.layout.student_input_form, null, false); final EditText editTextStudentFirstname = (EditText) formElementsView.findViewById(R.id.editTextStudentFirstname); final EditText editTextStudentEmail = (EditText) formElementsView.findViewById(R.id.editTextStudentEmail); new AlertDialog.Builder(context)
.setView(formElementsView) .setTitle("Create Student") .setPositiveButton("Add", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) {
String studentFirstname = editTextStudentFirstname.getText().toString(); String studentEmail = editTextStudentEmail.getText().toString(); ObjectStudent objectStudent = new
ObjectStudent(); objectStudent.firstname = studentFirstname; objectStudent.email = studentEmail; boolean createSuccessful = new
TableControllerStudent(context).create(objectStudent); if(createSuccessful){ Toast.makeText(context, "Student information was saved.", Toast.LENGTH_SHORT).show();
}else{ Toast.makeText(context, "Unable to save student information.", Toast.LENGTH_SHORT).show();
} ((MainActivity) context).countRecords();
((MainActivity) context).readRecords(); dialog.cancel(); }
}).show(); }
}