BAB : MEMBUAT MENU LIST Sering sekali aplikasi yang dikembangkan memiliki kompleksitas yang cukup besar, dan terdiri dari beberapa form. Biasanya disediakan menu yang fungsinya sebagai navigasi bagi pengguna agar dapat masuk ke layanan tertentu dengan mudah. Salah satu cara yang dapat dilakukan adalah dengan memanfaatkan library ListView, sehingga pada halaman utama dapat disediakan sejumlah menu yang akan menuntun pengguna untuk menggunakan aplikasi. MINI CASE. MenuList Step a. Buatlah sebuah proyek baru bernama MenuList b. Buanglah class MenuList.java sebab kita tidak akan menggunakan kelas tersebut. Step Buatlah sebuah kelas baru yaitu: FormRegistrasi.java lalu ketikkan program berikut: 0 package www.aplysit.com; import android.app.listactivity; import android.content.intent; import android.os.bundle; import android.view.view; import android.widget.arrayadapter; import android.widget.listview; public class Menu extends ListActivity{ /** Called when the activity is first created. */ @Override public void oncreate(bundle icicle) { super.oncreate(icicle); // Menyusun menu
0 0 0 0 0 0 String[] menu = new String[]{"Menu Registrasi","Kompresi","Dekompresi","Perihal","Exit"; // Menampilkan menu di LisstMenu this.setlistadapter(new ArrayAdapter<String(this, android.r.layout.simple_list_item_, menu)); @Override /* method ini akan mengoveride method onlistitemclick yang ada pada class List Activity method ini akan dipanggil apabilai ada salah satu item dari list menu yang dipilih */ protected void onlistitemclick(listview l, View v, int position, long id) { super.onlistitemclick(l, v, position, id); // Menangkap nilai text yang dklik Object o = this.getlistadapter().getitem(position); String pilihan = o.tostring(); tampilkanpilihan(pilihan); /** * Tampilkan Activity sesuai dengan menu yang dipilih * */ protected void tampilkanpilihan(string pilihan) { try { //Intent digunakan sebagai pengenal activity Intent i = null; if (pilihan.equals("menu Registrasi")) { i = new Intent(this, FormRegistrasi.class); else if (pilihan.equals("kompresi")) { //to be defined else if (pilihan.equals("dekompresi")) { //to be defined else if (pilihan.equals("perihal")) { //to be defined else if (pilihan.equals("exit")) { finish(); startactivity(i); catch (Exception e) { e.printstacktrace();
Step Buatlah sebuah kelas baru yaitu: Menu.java lalu ketikkan program berikut: 0 0 0 package www.aplysit.com; import java.io.ioexception; import java.io.inputstream; import java.io.inputstreamreader; import java.net.httpurlconnection; import java.net.url; import java.net.urlconnection; import android.app.activity; import android.os.bundle; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.edittext; import android.widget.toast; public class FormRegistrasi extends Activity{ public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); //memanggil layout formregistrasi.xml setcontentview(r.layout.formregistrasi); // Button untuk menambah data Button tambah = (Button)findViewById(R.id.widget0); tambah.setonclicklistener(new OnClickListener() { @Override public void onclick(view v) { // TODO Auto-generated method stub tambah(); ); Button ulang = (Button)findViewById(R.id.widget); ulang.setonclicklistener(new OnClickListener() {
0 0 0 0 0 0 @Override public void onclick(view v) { // TODO Auto-generated method stub ulang(); ); Button batal = (Button)findViewById(R.id.widget); batal.setonclicklistener(new OnClickListener() { @Override public void onclick(view v) { // TODO Auto-generated method stub finish(); ); public void tambah(){ String url = ""; String nama = ((EditText)findViewById(R.id.widget)).getText(). tostring(); String nim = ((EditText)findViewById(R.id.widget)).getText(). tostring(); String kelas = ((EditText)findViewById(R.id.widget)).getText(). tostring(); try { //bagian ini bila Anda menggunakan server localhost //url = "http://...0/menulist/registrasi.php?&cat=insert&nama="+nama+"&nim="+nim+"&kelas="+ //bagian ini bila Anda menggunakan server AplysIT url = "http://www.aplysit.com/android/registrasi.php?cat=insert&nama="+nama+"&nim="+nim+"&kelas="+ String response = call(url); Toast.makeText(getBaseContext(),response,Toast.LENGTH_SHORT).show(); catch (Exception er) { Toast.makeText(getBaseContext(),er.toString(),Toast.LENGTH_SHORT).show(); private String call(string url) { // TODO Auto-generated method stub int BUFFER_SIZE = 000; InputStream in = null; try { in = OpenHttpConnection(url); catch (IOException e) { // TODO: handle exception
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 e.printstacktrace(); return ""; InputStreamReader isr = new InputStreamReader(in); int charread; String str=""; char[] inputbuffer = new char[buffer_size]; try { while((charread = isr.read(inputbuffer))0){ String readstring = String.copyValueOf(inputBuffer,0,charRead) str += readstring; inputbuffer = new char[buffer_size]; in.close(); catch (IOException e) { // TODO: handle exception e.printstacktrace(); return ""; return str; private InputStream OpenHttpConnection(String urlstring) throws IOException { // TODO Auto-generated method stub InputStream in =null; int response = -; URL url = new URL(urlString); URLConnection conn = url.openconnection(); if (!(conn instanceof HttpURLConnection)) throw new IOException("Not An HTTP connection"); try { HttpURLConnection httpconn = (HttpURLConnection) conn; httpconn.setallowuserinteraction(false); httpconn.setinstancefollowredirects(true); httpconn.setrequestmethod("get"); httpconn.connect(); response = httpconn.getresponsecode(); if (response == HttpURLConnection.HTTP_OK){ in = httpconn.getinputstream(); catch (Exception e) { // TODO: handle exception throw new IOException("Error connecting"); return in; public void ulang(){
0 EditText nama = (EditText)findViewById(R.id.widget); EditText nim = (EditText)findViewById(R.id.widget); EditText kelas = (EditText)findViewById(R.id.widget); nama.settext(""); nim.settext(""); kelas.settext(""); nama.requestfocus(); Baris - adalah alamat server AplysIT, sehingga Anda tidak perlu repot mempersiapkan server sendiri. Jika Anda tidak menggunakan server AplysIT, maka Anda harus menyiapkan server sendiri pada localhost, dan menggunakan baris - yang merupakan alamat server yang dituju, yaitu url+ =http://0.0.0./ Untuk penggunakan server local, Anda perlu mengganti alamat IP tersebut dengan IP komputer Anda karena kita Anda akan mencoba di localhost. Caranya sangat mudah, pada start menu, piih Run ketik cmd Enter lalu akan muncul jendela console berwaran hitam. Ketik ipconfig [enter] dan akan ditampilkan konfigurasi IP computer Anda, seperti gambar berikut: Step
Ubah kode program main.xml sehingga menjadi seperti berikut ini. 0 <?xml version=".0" encoding="utf-"? <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" </LinearLayout Step Buat sebuah file layout baru dengan nama formregistrasi.xml caranya klik kanan pada nama proyek New Android XML File seperti gambar berikut: Lalu ketikkan kode program berikut: <?xml version=".0" encoding="utf-"? <AbsoluteLayout android:id="@+id/widget0" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" <TextView android:id="@+id/widget0"
0 0 0 0 0 0 android:layout_width="wrap_content" android:text="nama" android:layout_x="px" android:layout_y="px" </TextView <TextView android:id="@+id/widget" android:layout_width="wrap_content" android:text="nim" android:layout_x="px" android:layout_y="px" </TextView <TextView android:id="@+id/widget" android:layout_width="wrap_content" android:text="kelas" android:layout_x="px" android:layout_y="00px" </TextView <EditText android:id="@+id/widget" android:layout_width="px" android:textsize="sp" android:layout_x="px" android:layout_y="px" </EditText <EditText android:id="@+id/widget" android:layout_width="px" android:textsize="sp" android:layout_x="px" android:layout_y="0px" </EditText <EditText android:id="@+id/widget" android:layout_width="px" android:textsize="sp" android:layout_x="px" android:layout_y="px" </EditText <Button android:id="@+id/widget0" android:layout_width="px"
0 0 0 00 0 0 0 0 android:text="tambah" android:layout_x="px" android:layout_y="px" </Button<RelativeLayout android:id="@+id/widget" android:layout_width="0px" android:layout_height="px" android:background="#ffffff" android:layout_x="0px" android:layout_y="0px" <TextView android:id="@+id/widget" android:layout_width="wrap_content" android:text="form REGISTRASI" android:textsize="0sp" android:textstyle="bold" android:textcolor="#000000" android:layout_centervertical="true" android:layout_centerhorizontal="true" </TextView </RelativeLayout <Button android:id="@+id/widget" android:layout_width="px" android:text="ulang" android:layout_x="0px" android:layout_y="px" </Button <Button android:id="@+id/widget" android:layout_width="px" android:text="batal" android:layout_x="0px" android:layout_y="px" </Button </AbsoluteLayout Pada tab Layout, maka hasilnya adalah seperti gambar berikut:
Step Buka file AndroidManifest.xml lalu modifikasi hingga menjadi seperti gambar berikut: 0 0 <?xml version=".0" encoding="utf-"? <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="www.dct.com" android:versioncode="" android:versionname=".0" <uses-permission android:name="android.permission.internet"</usespermission<uses-sdk android:minsdkversion="" / <application android:icon="@drawable/icon" android:label="@string/app_name" <activity android:name=".menu" android:label="@string/app_name" <intent-filter
0 <action android:name="android.intent.action.main" / <category android:name="android.intent.category.launcher" / </intent-filter </activity <activity android:name="formregistrasi" android:label="form Registrasi" </activity </application </manifest Pengaturan pada AndroidManifest.xml tersebut adalah untuk mengkonfigurasikan persmission agar perangkat dapat mengakses internet. Atau dengan cara lain dapat dilakukan lewat Tab Permission, klik tombol Add, lalu pilih Uses Permission, lalu isi name dengan android.permission.internet Sebagai tambahakn, perhatikan bahwa pada baris ada tulisan android:name=".menu" adalah untuk mengaktifasi class yang akan dibuka di list menu. Catatan: Untuk langkah - Anda tidak perlu mencobanya, sebab sudah tersedia alamat pada server Aplysit. Step Buat database di PostgresSQL dengan nama registrasi, lalu buat table tbl_registrasi dengan isi field sebagai berikut : Nama filed tipe data -------------------------------------------------- id_registrasi serial nama character varying nim character varying kelas character varying --------------------------------------------------
Step Buat file file di WAMP Registrasi, lalu buat file dengan nama registrasi.php dengan isi dari kode sumber berikut: Kode berikut jika Anda menggunakan PostgreSQL: 0 0 0 0 <?php $db_host $db_name $db_user $db_pass = "localhost"; = "registrasi"; = "postgres"; = "postgres"; extract($_request, EXTR_OVERWRITE); $conn = pg_connect("host=".$db_host. " dbname=".$db_name. " user=".$db_user. " password=". $db_pass) or die ("fail to connect"); if ($cat == "TAMPIL") { $sql = "SELECT * FROM tbl_registrasi"; $response = pg_query($conn,$sql); while ($hasil = pg_fetch_assoc($response)) { echo ($hasil["id"]." ".$hasil["nama"]." ".$hasil["nim"]." ".$hasil["k elas"]."#"); else if ($cat == "INSERT") { $response = pg_query($conn,"insert INTO tbl_registrasi(nama,nim,kelas) VALUES($nama,$nim,$kelas)"); $response = pg_query($conn,$sql); echo "Data berhasil ditambah bernilai \n nama: ".$nama. " nim: ".$nim. " kelas: ". $kelas; pg_close($conn);?
Kode berikut jika Anda menggunakan MySQL: 0 0 0 0 <?php $db_host $db_name $db_user $db_pass = "localhost"; = "registrasi"; = "mysql"; = "root"; //step : activate global variable extract($_request, EXTR_OVERWRITE); mysql_connect($db_host, $db_user, $db_pass) or die ("gagal koneksi"); mysql_select_db($db_name); if ($cat == "TAMPIL") { $sql = "SELECT * FROM tbl_registrasi"; $response = mysql_query($sql); while ($hasil = mysql_fetch_array($response)) { $id_registrasi = stripslashes($hasil[id_registrasi]); $nama = stripslashes($hasil[nama]); $nim = stripslashes($hasil[nim]); $kelas = stripslashes($hasil[kelas]); echo ($id_registras. " ".$nama. " ".$nim. " ".$kelas. "#"); else if ($cat == "INSERT") { $sql = "INSERT INTO tbl_registrasi(nama,nim,kelas) VALUES('$nama','$nim','$kelas')"; $response = mysql_query($sql); echo "Data berhasil ditambah bernilai \n nama: ".$nama. " nim: ".$nim. " kelas: ". $kelas;?
Step Jalankan proyek, klik kanan pada proyek Run As Android Application. (a) (b) Gambar (a): klik menu Registrasi. Gambar (b): isikan data seperti gambar lalu tekan tombol TAMBAH. Jika Anda ingin melihat hasilnya, maka silahkan ketikkan alamat berikut pada browser Anda: http://www.aplysit.com/android/registrasi.php?cat=tampil