Bagian ini akan menjelaskan tentang : - Modul Mysql Android

  

PERTEMUAN 1

Bagian ini akan menjelaskan tentang :

   Konsep umum androidProses instalasi EclipseMembuat 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 XML

Daur 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 pertama

  yang 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 AVDs

  3.

Gambar 1.4 : Proses Manajemen AVD

4. 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 nilainya

  5. menjadi 500MiB. Kemudian Klik OK

Gambar 1.6 : konfigurasi AVD

6. Setelah itu, klik start untuk menjalankan emulator yang telah dibuat. Android Device Virtual telah selesai dibuat.

Gambar 1.7 : menjalankan AVD

PROGRAM 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.9

  3.

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 alertlist

  2. 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 activityPenerapan 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 intentpertama

  2. 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 kedua

5. 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 sederhana

  LATIHAN 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 sederhanaPengenalan 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 1

3. 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 kedua

5. 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.xml

  2. 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_form

3. 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(); }

  }