PERTEMUAN KE 4 Representasi Data (ListView dan Spinner)

dokumen-dokumen yang mirip
Membuat list dengan RecylerView dan dependency injection ButterKniffe

Penggunaan Button di Android

public class MainActivity extends Activity implements AdapterView.OnItemClickListener{

UNIVERSITAS KOMPUTER INDONESIA

Praktikum IV Komponen UI (Radio Button, CheckBox dll)

Tutorial Aplikasi Android Sederhana dengan Action Button

UNIVERSITAS KOMPUTER INDONESIA

Membuat Interface Dinamis Menggunakan FrameLayout

PEMROGRAMAN MOBILE PRAKTIKUM 11 ( DATABASE II ) Disusun oleh : CYNTHIA STEFFI CLIFF SI 12 A

Praktikum 9 Pemprograman Android GUI 2 Layar

ANDROID FOR BEGINNER MODUL 2

PERTEMUAN KE 7 Broadcast Receiver dan Services

Pembuatan Aplikasi Android Sederhana dengan Eclipse

TUTORIAL PEMBUATAN APLIKASI SEDERHANA TOUCH AND GESTURE PADA ANDROID

Membuat preferensi atau pengaturan pada aplikasi android

Modul Pengembangan Aplikasi Android Berbasis Client- Server Aplikasi sederhana android Versi 1.0

Praktikum XI Animasi dan Multimedia

UNIVERSITAS KOMPUTER INDONESIA

Pertemuan 2. Pemrograman Mobile. 3 SKS Semester 7 S1 Sistem Informasi. Nizar Rabbi Radliya

PAPB-C. Yang harus dipersiapkan: 1. Eclipse 2. AVD/GenieMotion 3. JDK Membuat Android Application Project Baru

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

Cara membuat Aplikasi Android : CheckBox dengan Eclipse

Praktikum VI Activity dan Intent

PROGRAM STUDI D3 JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG Pemrograman Berorientasi Objek 3 (Mobile And Web Programming)

UNIVERSITAS KOMPUTER INDONESIA

UNIVERSITAS KOMPUTER INDONESIA

Memiih Penyimpanan Internal atau External

BAB 5 Android Event Handling Mahardeka Tri Ananta

Cara Membuat Background Dinamis di Android

Mulai minggu ke-2 sesi 2, mahasiswa akan melakukan praktikum PAM yang dibagi ke dalam dua bagian, yaitu:

Variabel dan tipe data

Praktikum IX Drag and Drop GUI dan Image Gallery

Android - Apa itu.this dan.class

MODUL 10 KOMPONEN GUI ANDROID

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

XAMARIN ANDROID : Bekerja

Membuat Tab Layout Menggunakan Android Material Design

Lecture Notes

Praktikum VI Activity dan Intent

Cara Membuat Layout Dynamic di Android

Cara Membuat Aplikasi Android Sederhana Menggunakan Eclipse

DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS!

Praktikum XI Animasi dan Multimedia

Membuat Spash Screen

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

MODUL 14 INTERKONEKSI CLIENT-SERVER ANDROID

MODUL 13 KOMPONEN GUI ANDROID

UNIVERSITAS KOMPUTER INDONESIA

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

Call Phone Permission pada Android

LAYOUT MENU UTAMA. <Button android:text="zakat Profesi" android:layout_width="wrap_content"

LISTING PROGRAM. TabHost tab = (TabHost) findviewbyid(r.id.tabhost); tab.setup();

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

Struktur & Pemakaian Teknologi Game Pembuatan Activity

DAFTAR PUSTAKA. Adisasmita, Rahardjo Manajemen Pemerintah Daerah. Yogyakarta: Penerbit Graha Ilmu.

main activity resource layout

Membuat Alert Dialog Pada Android

BAB 3 XML LAYOUT, BASIC WIDGET DAN SELECTION WIDGET

[Pelatihan Pemrograman Android]

Membuat project Android di Eclipse Struktur project pada eclipse Mengenal Tag Layout User Interface

Latihan 1 Menghitung Luas Persegi Panjang

PROGRAM STUDI D3 JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG Pemrograman Berorientasi Objek 3 (Mobile And Web Programming)

PRAKTIKUM IX:TUTORIAL PEMBUATAN

LAMPIRAN PROGRAM APLIKASI DESTINASI WISATA MEDAN BERBASIS ANDROID. 1. Lampiran Program menu splash screen.xml

Tutorial berikut akan mengajarkan rekan-rekan cara membuat kalkulator sederhana di android.

Membuat UI Cantik Dan Serasi Di Android Menggunakan Palette Library Material Design

BAB IV IMPLEMENTASI DAN PENGUJIAN

Aplikasi Mobile Informasi Pengenalan Profil Pahlawan Tingkat Dasar di Indonesia Menggunakan Java Berbasis Android

UNIVERSITAS KOMPUTER INDONESIA

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

BAB 3 Android User Interface

Custom Button pada Android Februari 2012 Tingkat: Oleh : Feri Djuandi Pemula Menengah Mahir Platform : Android 2.3, Eclipse

Listing Program. //mengeset nama tab dan mengisi content pada menu tab anda. tabhost.addtab(spec);

XAMARIN ANDROID : Membangun. Aplikasi Mobile Dengan GridView

Latihan 2 List Menu Bertingkat

DAFTAR PUSTAKA. Binanto, I., multimedia digital-dasar teori dan pengembangannya, yogyakarta.

Workshop Struktur dan Pemakaian Teknologi Game BAB 4. Menu

Praktikum 1 - Getting Started with Android

DAFTAR PUSTAKA.

LAPORAN PENCATATAN DATA ZAKAT (ANDROID)

Praktikum 3 Create a Simple Calculator Program

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

Ijin Akses Agar program kita dapat mengakses GPS, kita harus menambahkan permission pada AndroidManifest.xml sebagai berikut:

Program Database Sederhana di Android Desember 2011 Tingkat: Oleh : Feri Djuandi Pemula Menengah Mahir Platform : Android 2.

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

INTERFACING APLIKASI PENGHITUNGAN LUAS SEGITIGA DI ANDROID. Dibuat Oleh : Nama : Zunar Fitrianto NIM : Kelas : 13.5B.11

Modul Aplikasi Mobile. Pertemuan ke-2. Pengenalan environment android pada eclipse

LAMPIRAN A. Universitas Sumatera Utara

RSS Reader dengan Android Penulis : Agus Haryanto

Modul. Android Programming. Dyah Fajar Nur Rohmah

LAMPIRAN. 1. Konsultasi.java. package com.example.saksermu.dentalexsys;

MODUL PRAKTIKUM SISTEM MOBILE DAN APLIKASI. Disusun oleh: Helfy Susilawati, S.Pd, M.T

DAFTAR PUSTAKA. H, Nazruddin Safaat Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android. Bandung: Informatika.

Membuat Simple List Transaksi

PERTEMUAN KE 9 Camera dan Multimedia

Android Coding Standard

SQLite adalah produk public domain. Artinya tidak punya lisensi, anda boleh mengambil binary atau source codenya secara free / GRATIS.

DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS!

Gambar Tampilan aplikasi Database Android 2

DAFTAR PUSTAKA. 2. A. A. Huda, 24 Jam!! Pintar Pemrograman Android, Andi, Yogyakarta, 2012.

Transkripsi:

A. TUJUAN PERTEMUAN KE 4 Representasi Data (ListView dan Spinner) Mahasiswa diharapkan dapat memahami dan mengetahui tentang komponen widget, yaitu ListView yang digunakan pada aplikasi mobile. B. TEORI SINGKAT ListView adalah view group android yang digunakan untuk menampilkan item dengan tampilan secara vertical list. ListView memiliki properti wajib yaitu layout_height, layout_width, dan ID. ListView juga memiliki class ListActivity yang khusus menangani ListView. ListActivity ListActivity adalah class Activity yang di khususkan untuk ListView. Sama seperti class activity, ListActivity juga memiliki lifecycle. Yang membedakan dari kedua class ini tarletan pada penggunaan ListActivity yang lebih sepesifik untuk ListView ketimbang Activity yang memiliki lingkup global. ArrayAdapter Setiap ListView memiliki adapter, yang berfungsi sebagai array item dari ListView. ArrayAdapter adalah kumpulan item-item list yang nantinya akan digunakan oleh listview untuk ditampilkan. Custom Adapter Setiap item dapat di custom sesuai keinginan kita. Hal ini dilakukan untuk membuat listview menjadi lebih menarik dan interaktif. Di satu sisi kita juga ingin menampilkan informasi lebih banyak di setiap item listview. Perhatikan contoh dibawah ini :

Gambar diatas adalah halaman pemberitahuan yang ada pada aplikasi android. Halaman notifikasi tersebut merupakan listview yang adapter-nya di custom sedemikian rupa sehingga menampikan informasi yang di perlukan. Spinner serupa dengan ListView. C. PRAKTIK 1. Kita akan membuat tampilan seperti berikut. 2. Buat project baru. Kemudian buat sebuah activity dengan nama MainActivity. Kode untuk layout (file XML) adalah sebagai berikut. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.example.lucianugraheni.trylist.mainactivity" tools:showin="@layout/activity_main" android:orientation="vertical"> <TextView android:id="@+id/textview" android:textstyle="bold" android:text="selamat datang"/>

<ListView android:layout_height="match_parent" android:id="@+id/listview" android:layout_gravity="center_horizontal"> </ListView> <LinearLayout android:orientation="horizontal" android:layout_gravity="center_horizontal" android:weightsum="1"> <EditText android:layout_width="wrap_content" android:id="@+id/edittext" android:layout_weight="0.5" android:hint="tambahkan hewan"/> <Button android:layout_width="wrap_content" android:text="tambah" android:id="@+id/button" android:layout_gravity="right" android:textstyle="bold"/> </LinearLayout> </LinearLayout> 3. Dan tambahkan dalam file MainActivity.java sehingga menjadi sebagai berikut. import android.support.v7.app.actionbaractivity; import android.os.bundle; import android.view.keyevent; import android.view.view; import android.widget.adapterview; import android.widget.button; import android.widget.edittext; import android.widget.listview; import android.widget.textview; import java.util.arraylist; public class MainActivity extends ActionBarActivity { EditText edittext; Button addbutton; TextView textview; SimpleArrayAdapter adapter; ListView listview; ArrayList<String> arraylist; Runnable run; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main);... //deklarasi objek layout addbutton = (Button) findviewbyid(r.id.button); textview = (TextView) findviewbyid(r.id.textview);

edittext = (EditText) findviewbyid(r.id.edittext); listview = (ListView) findviewbyid(r.id.listview); String[] hewan = new String[]{"Singa", "Macan", "Buaya", "Serigala", "Badak"; arraylist = new ArrayList<String>(); for (int i = 0; i < hewan.length; ++i) { arraylist.add(hewan[i]); adapter = new SimpleArrayAdapter(this, android.r.layout.simple_list_item_1, arraylist); listview.setadapter(adapter); listview.setonitemclicklistener(new AdapterView.OnItemClickListener() { public void onitemclick(adapterview<?> parent, final View view, int position, long id) { final String item = (String) parent.getitematposition(position); textview.settext("yang dipilih: " + item); ); addbutton.setonclicklistener(new View.OnClickListener() { public void onclick(view arg0) { tambahdaftar(); ); private boolean tambahdaftar() { adapter.add(edittext.gettext().tostring()); arraylist.add(edittext.gettext().tostring()); edittext.settext(""); adapter.notifydatasetchanged(); listview.smoothscrolltoposition(adapter.getcount() - 1); return true; 4. Buat sebuah kelas java dengan nama SimpleArrayAdapter.java dengan kode sebagai berikut. import android.content.context; import android.widget.arrayadapter; import java.util.hashmap; import java.util.list; public class SimpleArrayAdapter extends ArrayAdapter<String> { //private static final String TAG = "SimpleArrayAdapter"; Context context; int textviewresourceid; HashMap<String, Integer> hashmap = new HashMap<String, Integer>(); public SimpleArrayAdapter(Context context, int textviewresourceid, List<String> objects) { super(context, textviewresourceid, objects); this.context = context;

this.textviewresourceid = textviewresourceid; for (int i = 0; i < objects.size(); ++i) { hashmap.put(objects.get(i), i); public long getitemid(int position) { String item = getitem(position); return hashmap.get(item); public boolean hasstableids() { return true; public void add(string object) { hashmap.put(object, hashmap.size()); this.notifydatasetchanged(); 5. Coba jalankan dan amati hasilnya. Jelaskan jalannya program. 6. Buat project baru. Tuliskan dalam file XML dengan layout berikut. <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.example.lucianugraheni.myapplication.mainactivity" tools:showin="@layout/activity_main"> <TextView android:layout_width="wrap_content" android:text="pilih Jurusan" android:id="@+id/text1"/> <Spinner android:layout_width="wrap_content" android:id="@+id/spinerjurusan" android:layout_below="@+id/text1"> </Spinner> </RelativeLayout> 7. Dan dalam file java nya, seperti berikut public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener{ Spinner spinner;

protected void oncreate(bundle savedinstancestate) {... spinner = (Spinner) findviewbyid(r.id.spinerjurusan); spinner.setonitemselectedlistener(this); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.jurusan, android.r.layout.simple_spinner_item); adapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item); spinner.setadapter(adapter); public void onitemselected(adapterview<?> parent, View view, int pos, long id) { String hasil = spinner.getselecteditem().tostring(); Toast.makeText(this, "Anda memilih "+hasil, Toast.LENGTH_LONG).show(); public void onnothingselected(adapterview<?> adapterview) {... 8. Pada resource string <resources>... <string-array name="jurusan"> <item>teknik Informatika</item> <item>sistem Informasi</item> <item>manajemen Informatika</item> <item>komputerisasi Akuntansi</item> <item>teknik Komputer</item> </string-array> </resources> 9. Jalankan dan amati hasilnya. 10. Buat project baru lagi. Kemudian Buat 3 buah file XML berikut. activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_height="match_parent" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" android:paddingbottom="@dimen/activity_vertical_margin" tools:context=".mainactivity"> <ExpandableListView android:layout_width="wrap_content" android:id="@+id/explist" android:indicatorleft="?android: attr/expandablelistpreferreditemindicatorleft" android:divider="#a4c739" android:dividerheight="0.5dp"> </ExpandableListView>

</RelativeLayout> parent_layout.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent"> <TextView android:layout_width="fill_parent" android:id="@+id/parent_txt" android:paddingleft="?android: attr/expandablelistpreferreditempaddingleft" android:paddingtop="10dp" android:paddingbottom="10dp"/> </LinearLayout> child_layout.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent"> <TextView android:layout_width="fill_parent" android:id="@+id/child_txt" android:paddingleft="?android: attr/expandablelistpreferreditempaddingleft" android:paddingtop="10dp" android:paddingbottom="10dp"/> </LinearLayout> 11. Ubah MainActivity.java sehingga menjadi sebagai berikut. import android.app.activity; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.widget.expandablelistview; import java.util.arraylist; import java.util.hashmap; import java.util.list; public class MainActivity extends Activity { HashMap<String, List<String>> Movies_category; List<String> Movies_list; ExpandableListView Exp_list; MoviesAdapter adapter; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate);

setcontentview(r.layout.activity_main); Exp_list = (ExpandableListView)findViewById(R.id.expList); Movies_category = DataProvider.getInfo(); Movies_list = new ArrayList<String> (Movies_category.keySet()); adapter = new MoviesAdapter(this,Movies_category, Movies_list); Exp_list.setAdapter(adapter);...koding yang sudah ada. 12. Kemudian buat 2 buah file java. MoviesAdapter.java dan DataProvider.java MoviesAdapter.java import android.content.context; import android.graphics.typeface; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.baseexpandablelistadapter; import android.widget.textview; import java.util.hashmap; import java.util.list; public class MoviesAdapter extends BaseExpandableListAdapter { private Context ctx; private HashMap<String, List<String>> Movies_Category; private List<String> Movies_List; public MoviesAdapter(Context ctx, HashMap<String, List<String>> Movies_Category, List<String> Movies_List){ this.ctx = ctx; this.movies_category = Movies_Category; this.movies_list = Movies_List; public int getgroupcount() { return Movies_List.size(); public int getchildrencount(int groupposition) { return Movies_Category.get(Movies_List. get(groupposition)).size(); public Object getgroup(int groupposition) { return Movies_List.get(groupPosition); public Object getchild(int parent, int child) { return Movies_Category.get(Movies_List. get(parent)).get(child);

public long getgroupid(int groupposition) { return groupposition; public long getchildid(int parent, int child) { return child; public boolean hasstableids() { return false; public View getgroupview(int parent, boolean isexpanded, View convertview, ViewGroup parentview) { String grouptitle = (String) getgroup(parent); if (convertview==null){ LayoutInflater inflater = (LayoutInflater) ctx.getsystemservice(context.layout_inflater_service); convertview = inflater.inflate(r.layout.parent_layout, parentview,false); TextView parenttextview = (TextView) convertview.findviewbyid(r.id.parent_txt); parenttextview.settypeface(null, Typeface.BOLD); parenttextview.settext(grouptitle); return convertview; public View getchildview(int parent, int child, boolean islastchild, View convertview, ViewGroup parentview) { String childtitle = (String) getchild(parent, child); if (convertview==null) { LayoutInflater inflater = (LayoutInflater) ctx.getsystemservice(context.layout_inflater_service); convertview = inflater.inflate(r.layout.child_layout, parentview, false); TextView childtextview = (TextView) convertview.findviewbyid(r.id.child_txt); childtextview.settext(childtitle); return convertview; public boolean ischildselectable(int groupposition, int childposition) { return false; DataProvider.java

import java.util.arraylist; import java.util.hashmap; import java.util.list; public class DataProvider { public static HashMap<String, List<String>> getinfo(){ HashMap<String, List<String>> MoviesDetails = new HashMap<String, List<String>>(); List<String> Action_Movies = new ArrayList<>(); Action_Movies.add("AA"); Action_Movies.add("BB"); Action_Movies.add("CC"); Action_Movies.add("DD"); Action_Movies.add("EE"); List<String> Romantic_Movies = new ArrayList<>(); Romantic_Movies.add("FF"); Romantic_Movies.add("GG"); Romantic_Movies.add("HH"); Romantic_Movies.add("II"); Romantic_Movies.add("JJ"); List<String> Horror_Movies = new ArrayList<>(); Horror_Movies.add("KK"); Horror_Movies.add("LL"); Horror_Movies.add("MM"); Horror_Movies.add("NN"); Horror_Movies.add("OO"); List<String> Comedy_Movies = new ArrayList<>(); Comedy_Movies.add("PP"); Comedy_Movies.add("QQ"); Comedy_Movies.add("RR"); Comedy_Movies.add("SS"); Comedy_Movies.add("TT"); MoviesDetails.put("Action Movies", Action_Movies); MoviesDetails.put("Romantics Movies", Romantic_Movies); MoviesDetails.put("Horror Movies", Horror_Movies); MoviesDetails.put("Comedy Movies", Comedy_Movies); return MoviesDetails; 13. Jalankan dan amati hasilnya. D. LATIHAN Latihan diberikan oleh dosen pengampu pada saat praktikum. Dikerjakan di laboratorium pada jam praktikum. E. TUGAS Tugas diberikan oleh dosen pengampu pada akhir praktikum. Dikerjakan di rumah dan dilampirkan pada laporan.