Android Coding Standard

Ukuran: px
Mulai penontonan dengan halaman:

Download "Android Coding Standard"

Transkripsi

1 Android Coding Standard Sebagian orang berkata bahwa code is art, kode adalah seni. Karena itu programmer yang baik adalah layaknya seorang seniman, mereka harus mempunyai sense of art tersendiri. Dan diharapkan bisa menghasilkan barisan kode yang rapi, enak dibaca, namun juga efektif dan efisien. Seiring dengan semakin matangnya platform Android, aturan-aturan standar dalam pemrograman Android pun semakin diketatkan. Kami di Poltekpos Android Developer selalu mendukung penulisan coding dengan standar yang sesuai, mengikuti konvensi-konvensi pemrograman yang ada. Tulisan ini diharapkan mampu membantu developer untuk menulis program Android dengan konvensi maupun aturan yang sesuai dengan standar internasional. Sekaligus mengasah skill Android craftsmanship dan memperkenalkan state of art pemrograman Android pada pembaca. [box type= bio ] oleh : POLTEKPOS ANDROID DEVELOPER [/box] Java Coding Standard Sebagian besar aplikasi Android dibuat menggunakan bahasa Java. Karena itu beberapa kode konvensi yang ada mengikuti aturan Code Conventions for the Java TM Programming Language, yang dibuat pada tahun Silahkan dibaca, beberapa hal yang perlu diperhatikan adalah sebagai berikut : Penulisan Nama Kelas, nama kelas/class hendaknya ditulis menggunakan huruf awal kapital. Seperti Person.java. Apabila nama kelas terdiri dari dua kata atau lebih, maka setiap kata harus diawali dengan huruf kapital, seperti PersonProfile.java, DatabaseMapsHelper.java dan sebagainya, Penulisan Nama Variabel, nama variabel ditulis dengan awalan huruf kecil, seperti color, apabila variabel terdiri dari dua kata atau lebih, maka kata kedua dan seterusnya diawali dengan huruf kapital. Contohnya : innercolor, maximumpostrate, dan sebagainya. Penulisan Nama Package, nama package untuk aplikasi Android yang dibuat oleh developer yang berasal dari Indonesia, hendaknya mengikuti aturan penamaan package untuk aplikasi Android buatan Indonesia. Dan hendaknya tidak menggunakan nama package default seperti, com.example.namaaplikasi, maupun com.app.namaaplikasi, dan sebagainya. Penulisan Nama Konstanta, nama konstanta hendaknya ditulis dengan memakai huruf kapital pada semua hurufnya, seperti COLOR. Apabila nama konstanta terdiri atas dua suku kata atau lebih, gunakan tanda _ (underscore) untuk memisahkan satu suku kata dari suku kata lainnya, dan setiap hurufnya ditulis dengan menggunakan huruf kapital. Contohnya seperti MAXIMUM_POST_RATE. Penulisan Nama Method, nama method diawali dengan lowercase letter atau huruf kecil pada kata pertama. Contohnya, post() Apabila method tersebut terdiri dari dua kata atau lebih, maka kata kedua dan seterusnya menggunakan huruf kapital pada awal kata, contohnya: getmaximumpostrate(), getcolor(), dan sebagainya. Gunakan Nama Variabel Yang Deskriptif, dalam banyak kasus, saya masih menemukan programmer yang menggunakan nama variabel maupun konstanta yang tidak deskriptif. Sehingga kadang orang lain menjadi bingung ketika membaca kode buatan mereka. Hal ini membuat persepsi bahwa programmer yang menuliskan kode tersebut terkesan asal-asalan

2 dalam membuat kodingannya. Di bawah ini merupakan contoh penggunaan nama variabel yang tidak deskriptif : //... private Button i; private EditText j; public void somemethod() { i = findviewbyid(r.id.some_button); i.setonclicklistener(this). //... Pada potongan kode di atas, penamaan variabel sangatlah tidak jelas dan tidak deskriptif. Hal ini bisa menyulitkan programmer lain maupun Anda sendiri, karena setiap saat Anda lupa, Anda harus melihat pada bagian deklarasi untuk mengetahui apa tipe dari variabel i, apa fungsi dari variable i tersebut dan banyak lagi. Ini adalah kode yang sudah diperbaiki : //... private Button tombolback; private EditText textusername; public void somemethod() { tombolback = (Button) findviewbyid(r.id.some_button); tombolback.setonclicklistener(this). //... Pada kode yang telah diperbaiki di atas, terlihat jelas apa tipe dari variabel tombolback dan juga fungsinya. tombolback adalah sebuah tombol yang berfungsi untuk mengembalikan user ke halaman sebelumnya (misalnya). Demikian pula dengan EditText yang sudah terdefinisikan dengan jelas bahwa itu adalah EditText dimana user bisa menginputkan username mereka. Jika Anda malas menulis, maka Anda bisa menyingkat beberapa kata dengan singkatan yang mudah dihafal. Contohnya dua variabel tersebut akan menjadi : tbback, btnback, edtusername, edtuser, dan sebagainya. Android Coding Standard Sekarang kita akan membahas Android secara khusus. Dalam konvensi maupun aturan penulisan kode Android, penulisan resource sangatlah penting dan perlu diperhatikan. Karena aplikasi Android mempunyai berbagai macam resource, seperti Button, Layout, Text, EditText, Label, dan sebagainya yang aktif digunakan dan dipanggil ke dalam aplikasi utama. SDK Android terbaru memberikan aturan yang lebih ketat terkait dengan aturan penamaan dan penggunaan resource ini, tidak jarang Eclipse akan memberikan warning apabila Anda tidak mengikuti aturan yang berlaku, namun percayalah. Aturan ini semata mata dibuat untuk memudahkan Anda untuk mengelola resource yang ada di aplikasi yang Anda buat. No Hard Coded String, di antara banyaknya aturan. Aturan inilah yang paling sering dilanggar. Hard coded String, atau String yang ditulis secara kasar merupakan bom

3 waktu yang akan menyulitkan Anda seiring dengan bertambah kompleksnya resource yang dipakai pada aplikasi. Hard coded String banyak dipakai pada saat kita memberi label pada sebuah tombol, memberi judul aplikasi, memberi hint pada EditText dan sebagainya. Di bawah ini adalah contoh resource tombol yang menggunakan hard coded String : <Button android:id="@+id/button_submit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="submit" /> Bayangkan ketika Anda mempunyai banyak resource tombol pada aplikasi, dan karena suatu sebab Anda diharuskan mengganti semua nama yang ada pada tombol-tombol tersebut. Bayangkan betapa repotnya mengganti nama satu persatu! Karena itu aturan standar menyarankan untuk menyimpan semua string/text reources pada file string.xml yang terdapat pada direktori res/values. Sehingga semua string/text pada aplikasi kalian tersimpan di satu tempat, dan kalian hanya perlu memanggilnya apabila dibutuhkan. Hal ini juga memudahkan apabila kalian ingin mengganti label pada tombol, hints, nama aplikasi, dan sebagainya. Berikut ini adalah contoh resource tombol yang sudah mengikuti aturan standar : <!-- Isi pada file resource string.xml --> <resources> <string name="tombol_submit_text">submit</string> </resources> <!-- string resource yang dipanggil oleh android:text --> <Button android:id="@+id/button_submit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/tombol_submit_text" /> Aturan Standar Penulisan ID Resources, seiring dengan banyaknya resource yang dipakai oleh aplikasi Android kalian. Kalian mungkin akan merasa bingung, tombol mana yang berfungsi untuk tombol submit, label mana yang dipakai untuk tombol Y, dan string mana yang dipakai sebagai header judul pada layout X dan sebagainya. Karena itu, aturan atau konvensi penamaan ID berikut ini akan membantu apabila dipatuhi. Yang pertama adalah bagaimana memberikan ID pada suatu resource di Android. Entah itu tombol, label, EditText, Layout, List, Spinner dan sebagainya. Pemberian ID pada suatu resource terjadi pada baris berikut pada resource yang bersangkutan : android:id="@+id/nama_id" Tentunya apabila kalian katakanlah memberikan ID secara sembarangan, seperti submit pada suatu resource, nantinya kalian akan merasakan hal seperti di atas. Yaitu bingung menentukan resource mana yang akan dipakai. Penulisan yang benar adalah menggunakan format [tipe resource]_[fungsi resource]. Sehingga ketika kalian mempunyai EditText yang berfungsi untuk menginputkan username, cara pemberian ID berikut ini adalah tidak disarankan :

4 <EditText android:layout_width="wrap_content" android:layout_height="wrap_content"> </EditText> Kenapa? Karena apabila kalian ingin memanggil EditText tersebut via ID, kalian harus memanggil melalui, R.id.username. Bayangkan jika kalian mempunyai label, button atau resource lainnya yang mempunyai ID sama yaitu, username. Cara berikut ini adalah yang disarankan, sehingga kalian bisa memastikan bahwa resource yang dipanggil adalah benar-benar resource EditText, bukan tombol, label, atau lainnya: <EditText android:layout_width="wrap_content" android:layout_height="wrap_content"> </EditText> Aturan Penulisan String Resources, seiring dengan besarnya aplikasi yang kalian buat. String atau text yang ada pada string.xml akan semakin banyak. Agar bisa memilih mana string yang akan dipanggil atau digunakan, gunakan aturan penamaan berikut [tipe resource yang akan menggunakan string ini]_[nama/fungsi resource tersebut]_text. Sebagai contohnya adalah kode berikut : <resources> <string name="title_activity_main">mainactivity</string> <string name="hint_barang_text">nama Barang</string> <string name="hint_harga_text">harga Barang</string> <string name="hint_merk_text">merk Barang</string> <string name="tombol_submit_text">submit</string> <string name="tombol_tambah_text">tambah Data</string> <string name="tombol_lihat_text">lihat Data</string> <string name="title_view_barang">data Barang</string> <string name="title_submit_barang">submit Barang</string> <string name="deskripsi_barang">deskripsi : </string> </resources> Jika kita lihat, tambahan _text pada akhir resource adalah opsional apabila kita sudah tahu bahwa resource yang akan dipanggil memang bertipe string, seperti title, deskripsi dan sebagainya. Namun apabila kalian akan menggunakan string untuk label suatu tombol, atau hint, maka penambahan _text disarankan. Dan jika dilihat lagi, aturan ini adalah fleksibel dan bisa dikembangkan sesuai dengan kebutuhan dan kreativitas kalian, selama penamaan tersebut deskriptif, mendefinisikan dengan jelas dan tidak ambigu. Selalu Sediakan Hint Pada EditText, hint atau petunjuk, merupakan hal yang penting untuk memberitahu pengguna apa yang harus mereka tuliskan pada EditText. Pendekatan lama biasa menggunakan Label dengan EditText dibawahnya, seperti di bawah ini. Namun pendekatan tersebut dirasa kurang efisien dari segi tempat dan completely outdated.

5 Android Label + EditText Dengan menggunakan android:hint penulisan akan menjadi lebih efisien dan tidak buangbuang waktu. Seperti contoh di bawah ini : EditText with Hint

6 Cara penambahan hint pada EditText adalah sebagai berikut, Android SDK terbaru juga akan secara otomatis memberikan warning apabila kalian tidak menambahkan hint pada EditText. <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" > </EditText> Selalu Definisikan Default InputType pada EditText, keyboard Android terdiri dari beberapa macam inputan, demikian juga text format pada Android. Karena itu, pendefinisian android:inputtype adalah sangat disarankan. InputType membuat keyboard secara otomatis menyesuaikan formatnya, sesuai dengan inputan yang diinginkan oleh aplikasi. Hal ini mencegah eror, sekaligus membatasi format text yang bisa diinputkan oleh user. Jangan sampai pada saat kalian membutuhkan inputan berupa angka dari user, namun ternyata user bisa memasukkan huruf pada EditText yang kalian buat. Contoh penerapan inputtype adalah seperti di bawah ini, ketika pengguna diminta untuk memasukkan harga, maka keyboard yang dipakai adalah keyboard numerik. Dan bukan keyboard qwerty yang memiliki huruf-huruf. <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputtype="number" > <requestfocus /> </EditText> Gunakan ContentDescription pada Image, atau resources lainnya yang sekiranya membutuhkan atribut tersebut. android:contentdescription berisi deskripsi singkat tentang sebuah gambar. ContentDescription bisa juga berisi penjelasan singkat konten dari sebuah View. Karena bertipe text/string, pastikan kalian tidak menuliskannya secara hard coded melainkan seperti biasa definisikan terlebih dahulu pada String resource. Kurang lebih ini yang bisa saya share, sebenarnya masih banyak lagi. Saya akan menambahkannya apabila sempat. Aturan-aturan maupun konvensi-konvensi yang ada di sini tidak mutlak harus diikuti, melainkan hal ini sebagai saran untuk meningkatkan standar kalian sebagai programmer. Sekaligus menghasilkan kode yang efisien, bagus, dan enak dibaca. Code is Art.

7 Mengenal Lebih Dekat dengan Android Studio Mengenal Lebih Dekat dengan Android Studio. Artikel ini lanjutan dari artikel Membuat Project Android di Android Studio. Bagi yang sudah terbiasa menggunakan eclipse mungkin mengalami kesulitan dalam menggunakan android studio. Dalam tutorial ini, kami akan berikan panduan migrasi dari IDE eclipse ke Android Studio. 1. Layout Sama seperti eclipse, layout di android dibedakan menjadi 2, yaitu design dan text, secara default pada saat dibuka layout xml di android studio menggunakan mode design, tapi Kamu bisa mengubah ke mode text, sehingga terlihat source code dari text XML nya. Di Android studio sudah memiliki Live Preview, jadi tidak perlu bolak-balik ke mode design hanya untuk melihat hasil kode XML nya.

8 2. Struktur Folder Struktur folder pada Android Studio seperti berikut. Terdapat folder.idea, app, gradle dan file file yang ada diroot folder. Folder app/ adalah folder utama pada aplikasi android, didalamnya akan seperti ini. Pada folder build sepertti gen/ di eclipse, isinya file-file hasil generate dari IDE, jadi tidak perlu diubah-ubah isi folder tersebut. Kemudian folder libs/ sama seperti di eclipse. Jika Kamu menggunakan library dalam bentuk.jar maka tempatkan difolder libs. Selanjutnya folder src/. src adalah folder dimana tersimpan source java dan layout dalam bentuk XML, secara default android studio akan mengenerate dua folder yaitu, androidtest dan main. Folder androidtest adalah folder khusus UnitTest, jika kamu belum paham, fokus saja pada folder main,karena source dan resource terletak difolder tersebut.

9 3. Gradle Yang baru di Android Studio adalah gradle, sebuah featured build automation. Selengkapnya dapat lihat di situs berikut ini File Gradle berisi library yang digunakan, versi aplikasi, signed key properties,lokasi repository dll. File yang akan sering kita ubah adalah file build.gradle yang berada dalam folder app/ berikut ini. Kita dapat lihat, file ini berisi pengaturan untuk versi sdk yang di compaile, build version yang digunakan, nama paket aplikasi, minsdk yang digunakan, versioncode, versionname dan dependencies yang digunakan.

10 Membuat Project Android di Android Studio Membuat Project Android di Android Studio. apa itu android Studio?, Android Studio adalah sebuah IDE untuk Android Development diperkenalkan google pada acara I/O Apa yang membedakan antara Android Studio dengan Eclipse?, Android Studio menggunakan Gradle untuk memanajemen project. Gradle Merupakan Build Automation Tool, untuk mengenal lebih lanjut melalui situs berikut ini gradle.org, ini yang membedakan gradle dari Ant atau Maven yang memakai XML. Dalam Tutorial ini saya akan membahas cara membuat project aplikasi android sederhana dan cara membuat Bluestack menjadi emulator di android studio. Membuat Project Android Sederhana di Android Studio Cara Menghubungkan Android Studio dengan Bluestack Membuat Project Android Sederhana di Android Studio 1. Download Android studio Untuk mendownload android studio versi terbaru, saya saran kan mendownload di link berikut ini Create Project Inilah tampilan awal Android Studio setelah diload.

11 Klik start a new Android Studio Project untuk membuat project android baru, Kemudian penamaan aplikasi dan package seperti gambar dibawah. pada bagian penentuan build target, jika di eclipse ada bagian dimana user menentukan build target sedangkan di android studio hanya menentukan minimum SDK. Selain itu di android studio membuat apps dapat juga di build untuk Android TV, wear dan glass. Pada saat pemilihan Add an activity to mobile, pilih blank activity. Setelah itu pada choose optional for your new file, klik Finish

12 3. Tampilan Awal Inilah tampilan awal setelah setting properties project tadi. Aplikasi android ini akan menampilkan Hello World.

13 Mengenal Activity pada Aplikasi Android Mengenal Activity pada Aplikasi Android. Activity merepresentasi satu layar dengan user interface. contoh, Sebuah aplikasi memiliki activity yang menunjukkan daftar baru, dan activity lainya seperti menulis dan membaca . Jika kita sudah mempelajari bahasa pemrograman c, c++, dan java pasti kita melihat program dimulai dengan function main(). Hal ini sangat mirip, pada aplikasi android, program dimulai dengan method callback oncreate(). Urutan method callback dari mulai activiy sampai berakhirnya activity dapat dilihat pada diagram activity lifecycle Activity Lifecycle (sumber gambar : developer.android.com)

14 Method callback mendefinisikan suatu event, Kita tidak perlu mengimplementasi semua method callback. Namun, Anda penting memahami masing-masing method Callback, sehingga aplikasi kita berprilaku sesuai harapan pengguna. Method oncreate() onstart() onresume() onpause() onstop() ondestroy() onrestart() Description Method ini pertama kali dipanggil ketika activity pertama dimulai. Method ini dipanggil ketika activity sudah terlihat pada user. Method ini dipanggil ketika activity mulai berinteraksi dengan user. Method ini Dipanggil ketika activity berhenti sementara tidak menerima inputan user dan tidak mengeksekusi kode apapun. Method ini dipanggil ketika activity sudah tidak terlihat pada user. Method ini dipanggil sebelum sebuah activity di matikan. Method ini dipanggil setelah activity berhenti dan ditampilkan ulang oleh user. Contoh Penggunaan Activity pada Aplikasi Android Pada tutorial ini, kita akan mempelajari siklus activity pada aplikasi android. Ikuti langkah berikut ini. 1. Buat project baru, pada tutorial ini saya menggunakan package com.teknorial.lifecycle. Jika Anda belum mengerti cara membuat project diandroid studio, saya anjurkan baca artikel ini Membuat Project Android di Android Studio 2. Modifikasi file MainActivity.java seperti dijelaskan dibawah ini. Berikut isi file MainActivity.java, dalam file ini terdapat method-method callback yang menjelaskan siklus hidup (LifeCycle). Method Log.d() digunakan untuk menghasilkan pesan Log. package com.teknorial.lifecycle; import android.app.activity; import android.os.bundle; import android.util.log; public class MainActivity extends Activity { String status = "Android: "; /**Method ini pertama kali dipanggil ketika activity pertama dimulai.*/ protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); Log.d(status, "The oncreate() event"); /**Method ini dipanggil ketika activity sudah terlihat pada user. */ protected void onstart(){ super.onstart(); Log.d( status,"the onstart() event"); /**Method ini dipanggil ketika activity mulai berinteraksi dengan user.*/ protected void onresume(){

15 super.onresume(); Log.d(status, "The onresume() event"); /**Method ini Dipanggil ketika activity berhenti sementara tidak menerima inputan user dan tidak mengeksekusi kode apapun.*/ protected void onpause(){ super.onpause(); Log.d(status,"The onpause() event "); /**Method ini dipanggil ketika activity sudah tidak terlihat pada user.*/ protected void onstop(){ super.onstop(); Log.d(status,"The onstop() event"); /**Method ini dipanggil sebelum sebuah activity dimatikan (di destroy).*/ protected void ondestroy(){ super.ondestroy(); Log.d(status,"The ondestroy() event"); Sekarang kita coba menjalankan Aplikasi untuk melihat siklus hidup atau lifecycle, dalam tutorial ini saya menggunakan emulator nexus bawaan dari android studio. Jika aplikasi kita sudah berjalan di emulator, Kita dapat melihat pesan log dari LogCat di android studio Mari kita Coba klik tombol home pada emulator maka LogCat akan menghasilkan pesan log seperti berikut: :39: /com.teknorial.lifecycle D/Android : The onpause() event :39: /com.teknorial.lifecycle D/Android : The onstop() event Jika kita kembali membuka aplikasi kita, maka LogCat akan menghasilkan pesan log seperti berikut: :43: /com.teknorial.lifecycle D/Android : The onstart() event

16 :43: /com.teknorial.lifecycle D/Android : The onresume() event Selanjutnya, Kita coba kembali tekan tombol back, maka LogCat akan menghasilkan pesan log seperti berikut: :44: /com.teknorial.lifecycle D/Android : The onpause() event :44: /com.teknorial.lifecycle D/Android : The onstop() event :44: /com.teknorial.lifecycle D/Android : The ondestroy() event

17 Mengenal Fragment Pada Aplikasi Android Mengenal Fragment Pada Aplikasi Android. Fragment merupakan bagian dari UI dalam activity. Kamu dapat menggabungkan beberapa fragment dalam activity untuk membuat multipane UI. Ada beberapa hal yang kamu perlu tahu tentang fragment yaitu, fragment memiliki siklus hidup (lifecycle) sendiri, dapat proses event sendiri, dan dapat ditambah atau dihapus ketika activity sedang jalan. Fragment diperkenalkan pada HoneyComb API 11 namun bisa digunakan pada perangkat android lama dengan menggunakan Support Library dari 1.6 sampai 2.0. Contoh fragment seperti di gambar berikut. Ketika salah satu item dari listview disentuh oleh user maka akan mencul informasi atau item dari detail view. Untuk lebih memahami, Saya akan berikan screenshot dalam aplikasi android yang sebenarnya. Contoh Kasus screenshot diatas adalah apps contact. Pada UI smartphone maka user pertama kali akan melihat listview dan ketika item dari listview disentuh maka berpindah ke detail view,

18 berbeda dengan UI pada tablet karena tablet memiliki ukuran lebih lebar maka listview, DetailView dan other data view akan muncul secara bersamaan. Jadi dapat kita ambil kesimpulan bahwa beberapa fragment dapat dikombinasi dalam satu activity dan optimal digunakan pada layar lebih besar seperti tablet. Siklus Hidup (LifeCycle) Pada Fragment Prerequisites: Mengenal Activity pada Aplikasi Android Class fragment memiliki kode yang terlihat hampir seperti Activity. Fragment berisi method callback mirip dengan Activity, seperti oncreate (), onstart (), onpause (), dan OnStop (). Siklus hidup dari fragment berhubungan dengan siklus hidup Activity, berikut tahapan siklus hidup fragment yang berkaitan dengan siklus hidup dari activity.

19 1. Berikut penjelasan tahapan di siklus hidup (LifeCycle) dari gambar diatas. Activity oncreate() dipanggil, dimana activity dapat mengatur tampilan dengan menggunakan method setcontentview(). 2. onattach() dipanggil setelah fragment dikaitkan dengan activity. Fragment mendapat refrensi ke objek activity yang dapat digunakan sebagai konteks. 3. onattachfragment dipanggil oleh activity untuk menotifikasi activity bahwa fragment telah di attach. 4. oncreate () dipanggil ketika saat dibuat fragment. Apa yang membedakan oncreate() di activity dan oncreate di fragment? Pada oncreate() di Activity, Kita bisa gunakan setcontentview() dan menghubungkan dengan tampilan (UI), tapi pada Oncreate() di fragment seharusnya kita tidak mengakses element UI dari fragment karena Activity Oncreate() mungkin belum selesai, namun, kita bisa membuat backgroud thread untuk membuat operasi lebih lama. 5. Method OnCreateView() dipanggil dalam fragment, disinilah kita dapat menautkan layout fragment dengan objeknya. 6. onactivitycreated() dipanggil setelah method activity oncreate() selesai. jadi disini kita dapat mengakses element UI melalui method ini. 7. onstart() dipanggil di dalam activity 8. onstart() dipanggil di dalam fragment 9. onresume() dipanggil di dalam activity 10. onresume() dipanggil di dalam fragment

20 Pada dalam kotak merah, ini merepresentasikan method yang dipanggil untuk setiap fragment. Untuk setiap fragment method 3,4,5 dipanggil dan akhiri dengan method 6. Sekarang kita lihat kasus dimana fragment akan dihancurkan (destroyed). 1. onpause() dipanggil di dalam fragment. 2. onpause() dipanggil di dalam activit 3. onsaveinstancestate () digunakan untuk menyimpan informasi fragment dalam objek Bundle. 4. onsaveinstancestate () digunakan untuk menyimpan informa si activity dalam objek Bundle. 5. onstop() dipanggil di dalam fragment. 6. onstop() dipanggil di dalam Activity. 7. ondestroyview () dipanggil setelah hirarki view fragment tidak lagi dapat diakses. 8. ondestroy () dipanggil setelah fragment tidak digunakan, masih ada objek java melekat pada activity. 9. ondestroy () dipanggil di dalam activity. 10. ondetach () fragment tidak terikat dengan activity, dan tidak memiliki hirarki view lagi. Contoh Penggunaan LifeCycle Fragment pada Aplikasi Android

21 Pada tutorial ini, kita akan mempelajari lifecycle fragment pada aplikasi android. Ikuti langkah berikut ini. 1. Buat project baru, pada tutorial ini saya menggunakan nama package com.teknorial.fragmentlifecycle. 2. Modifikasi file MainActivity.java seperti dijelaskan dibawah ini. package com.teknorial.fragmentlifecycle; import android.support.v7.app.actionbaractivity; import android.os.bundle; import android.view.menu; public class MainActivity extends ActionBarActivity { protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); public boolean oncreateoptionsmenu(menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getmenuinflater().inflate(r.menu.menu_main, menu); return true; 3. Buat Java class baru dengan nama fragmentkita.java pada direktori app/java/com.teknorial.fragmentlifecycle. dalam file ini terdapat method-method callback yang menjelaskan siklus hidup (LifeCycle). Method Log.d() digunakan untuk menghasilkan pesan Log. package com.teknorial.fragmentlifecycle; import android.app.activity; import android.os.bundle; import android.support.v4.app.fragment; import android.util.log; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup;

22 /** * Created by Teknorial on 15-Sep-15. */ public class FragmentKita extends Fragment { public void onattach (Activity activity){ Log.i("Fragment","onAttach"); super.onattach(activity); public void oncreate (Bundle savedinstancestate){ Log.i("Fragment","onCreate"); super.oncreate(savedinstancestate); public View oncreateview(layoutinflater inflater, ViewGroup container, Bundle savedinstancestate){ Log.i("Fragment", "oncreateview"); return inflater.inflate(r.layout.fragment_layout,container,false); public void onactivitycreated(bundle savedinstancestate){ Log.i("Fragment","onActivityCreated"); super.onactivitycreated(savedinstancestate); public void onstart() { Log.i("Fragment","onStart"); super.onstart(); public void onresume() { Log.i("Fragment","onResume"); super.onresume(); public void onpause() { Log.i("Fragment","onPause"); super.onpause(); public void onsaveinstancestate(bundle outstate){ Log.i("Fragment","onSaveInstanceState"); super.onsaveinstancestate(outstate); public void onstop() { Log.i("Fragment","onStop"); super.onstop();

23 public void ondestroyview() { Log.i("Fragment","onDestroyView"); super.ondestroyview(); public void ondestroy() { Log.i("Fragment","onDestroy"); super.ondestroy(); public void ondetach() { Log.i("Fragment","onDetach"); super.ondetach(); 4. Modifikasi file activity_main.xml seperti berikut. <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".mainactivity"> <TextView android:text="@string/hello_world" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <fragment android:layout_width="fill_parent" android:layout_height="fill_parent" android:name="com.teknorial.fragmentlifecycle.fragmentkita" tools:layout="@layout/fragment_layout"/> </RelativeLayout> 5. Buat file XML layout baru dengan nama fragment_layout.java pada direktori app/res/layout. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingtop="100dp" android:background="#52b3d9" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="121dp" android:background="#cf000f" android:text="ini adalah Fragment Kita :D" android:textsize="32sp" /> </LinearLayout>

24 Sekarang kita coba menjalankan Aplikasi untuk melihat siklus hidup atau lifecycle. Jika aplikasi kita sudah berjalan di emulator, Kita dapat melihat pesan log dari LogCat di android studio. Demikian Artikel Mengenal Fragment pada Aplikasi Android. Ikuti terus teknorial.com untuk mengetahui banyak hal tentang android. Jangan lupa untuk Like Fanspage Teknorial di Facebook dan Google Plus untuk mendapatkan update terbaru dari teknorial.com. Jika ada pertanyaan jangan ragu untuk bertanya dikotak komentar. Terima Kasih

25 Mengenal Processes, Thread dan Service di Android Mengenal Processes, Thread dan Service di Android. Ketika satu Komponen aplikasi dijalankan dan aplikasi tidak memiliki komponen lain yang berjalan, sistem Android akan memulai Linux process baru untuk aplikasi dengan single thread. Secara default, semua komponen dari aplikasi yang sama berjalan dalam proses dan thread yang sama (disebut main thread). Komponen pada Aplikasi Android Secara default, semua komponen dari aplikasi yang sama berjalan dalam proses yang sama dan sebagian besar aplikasi tidak harus mengubah ini. Namun, jika Anda perlu untuk mengontrol proses komponen tertentu, Anda dapat melakukannya di file manifest. Gunakan Atribut dari android:process <activity> <service> <receiver> dan <provider> untuk menentukan proses akan dijalankan. Komponen pada aplikasi berbeda dapat jalan dengan proses yang sama dengan menggunakan android:process jika Aplikasi tersebut saling berbagi linux user id yang sama. Aplikasi tersebut signed dengan certifacates yang sama. Proses yang mana seharusnya android kill? Android membandingkan pentingnya proses dengan yang lain dan memperhatikan user. Pada kasus low memory, proses yang tidak digunakan oleh user akan di kill duluan.

26 Process Importance levels 1. Proses dengan Lowest Importance akan dieliminasi duluan. 2. Foreground Process [Highest Importance], suatu proses dianggap Foreground Process jika salah satu kondisi berikut: Activity dengan onresume() yang sedang berjalan dan user berinteraksi. Service mengeksekusi method lifecycle, foreground service, atau user berinteraksi dengan dengan serivice yang terikat pada activity yang sedang berjalan. BroadcastReceiver mengeksekusi method onreceive(). 3. Visible Process [2nd Highest Importance], sebuah proses yang tidak memiliki komponen foreground, tapi masih dapat mempengaruhi apa yang user lihat di layar. Suatu proses dianggap 4. Visible Process jika salah satu dari kondisi berikut ini : Activity dengan dipanggil method onpause(). Service terikat dengan activity yang visible. 5. Service Process [3rd Highest Importance], suatu proses dianggap Service Process jika kondisi seperti berikut: User tidak langsung berinteraksi Memiliki service yang berjalan seperti memutar musik and tidak seperti 2 katagori di atas. 6. Background Process [2nd Lowest Importance] User tidak berinteraksi sama sekali. Jika activity baru dilihat oleh user maka proses tersebut akan di hancurkan terakhir. 7. Empty Process [Lowest Importance] Tidak ada komponen yang berjalan. proses ini akan tetap hidup untuk tujuan caching. Jadi Service Process memiliki peringkat yang lebih tinggi dari pada proses yang tidak memiliki service [gunakan threads untuk operasi suatu proses lebih lama]. Oleh karena itu,saat mendownload gambar dari worker threads menggunakan service lebih baik daripada mendownload tanpa service. Demikian artikel Mengenal Processes, Thread dan Service di Android. Ikuti terus teknorial.com untuk mengetahui banyak hal tentang pemrograman android. Jangan lupa untuk Like Fanspage Teknorial di Facebook dan Google Plus untuk mendapatkan update terbaru dari teknorial.com. Jika ada pertanyaan jangan ragu untuk bertanya dikotak komentar. Terima Kasih Referensi Processes and Threads

27 Belajar Android Studio Mengenal Layout Bagian 1 Sebelumnya kita sudah belajar membuat aplikasi sederhana pada Android. Sekarang kita melangkah ke aplikasi yang lebih menarik, yaitu aplikasi yang sudah menggunakan beberapa object view groups dan view. Pada Android layout memegang peranan penting terutama pada user interface. Dalam layout biasany didalamnya terdiri dari satu atau lebih objek view sehingga dapatlah disebut Layout adalah View Group. Ada beberapa layout yang berlaku di android. Linear Layout Linear Layout sesuai dengan namanya digunakan untuk menyusun view sacara linear vertical atau horizontal. Agar Lebih memahaminya mari kita buat satu project yang menggunakan linear layout, Kali ini projectnya kita buat dengan menggunakan Android Studio 1. Buka Android Studio lalu buat New Project.

28 Klik Next Klik Next sampai muncul jendela ini Setelah klik Finish maka secara otomatis project kita tercreate. 2. Edit layout activity_main.xml lalu ketukan kode berikut <LinearLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="${packagename.${activityclass"> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent"

29 android:layout_height="fill_parent" android:layout_weight="1"> <TextView android:text="merah" android:gravity="center_horizontal" android:background="#aa0000" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1"/> <TextView android:text="hijau" android:gravity="center_horizontal" android:background="#00aa00" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1"/> <TextView android:text="biru" android:gravity="center_horizontal" android:background="#0000aa" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1"/> <TextView android:text="kuning" android:gravity="center_horizontal" android:background="#aaaa00" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1"/> </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"> <TextView android:text="baris Satu" android:textsize="15pt" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"/> <EditText android:text="baris Dua" android:textsize="15pt" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"/> <Button android:text="baris Tiga" android:textsize="15pt" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"/> <TextView android:text="baris Empat" android:textsize="15pt" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"/>

30 </LinearLayout> </LinearLayout> Coba perhatikan kita ada tiga tag LinearLayout. 1. LinearLayout yang paling luar android:orientation diset vertical, yang berarti setiap view atau layout yang berada didalamnya akan disusn secara vertical. 2. LinearLayout yang kedua berada didalam LinearLayout yang diluar, android:orientation diset horizontal, yang berarti setiap view atau layout yang berada didalamnya akan disusun secara horizontal 3. Linear Layout yang ketiga juga berada didalam LinearLayout yang diluar, android:orientation diset vertical yang berarti setiap view atau layout yang berada didalamnya akan disusun secara vertical LinearLayout yang paling luar bisa disebut parent dari LinearLayout yang kedua dan ketiga. Disini kita juga mulai dikenalkan dengan beberapa tag baru yang masuk kedalam golongan view Tag TextView EditText Button Fungsi Untuk menampilkan Text dalam bentuk label Untuk Menampilkan Inputan Text Digunakan untuk menampilkan button atau tombol. Diatas juga terlihat properti-properti (Kalau kita biasa dengan HTML ini bisa disebut Atribut dan CSSnya) yang melekat pada masing-masing view. Property (Atribut) android:id android:text Property (CSS) android:textsize android:layout_width android:layout_height android:layout_weight android:gravity fungsi Menetapkan id dari suatu view Menetapkan isi text yang akan ditampilkan fungsi Menetapkan besar ukuran huruf Menetapkan lebar dari suatu view Menetapkan tinggi dari suatu view Menunjukkan berapa banyak ruang ekstra dalam LinearLayout akan dialokasikan ke tampilan yang terkait dengan LayoutParams. Menentukan tempat object/view pada suatu layout

31 Agar lebih memahami fungsi dari property-property diatas cobalah baca javadoc android pada situs developer.andorid.com dan coba rubah nilainya. 3. Buku File MainActivity.java, disini akan terlihat bahwa layout yang digunakan pada activity ini adalah activity_main.xml package net.agusharyanto.belajarlayout; import android.app.activity; import android.os.bundle; public class MainActivity extends Activity { protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); 4. Sekarang mari kita run projectnya Gimana mudah bukan, Nantikan lanjutan tentang belajar layout bagian 2

32 Belajar Android Studio Mengenal Layout bagian 2 - Relative Layout Pada seri belajar android studio sebelumnya kita sudah belajar tentang linear layout. nah sekarang kita akan coba belajar layout android lainnya yang juga sering kita gunakan yaitu Relative Layout. Mari kita mulai 1. Masih dengan project yang tadi buat pada directory res/layout buat layout baru dengan nama relative_layout.xml Klik Kanan folder layout lalu pilih New -> Layout Resource File akan muncul jendela new resource file Isi File name dengan relative_layout Isi Root element dengan RelativeLayout, Kemudian Klik OK

33 Sacara otomatis akan membuat file relative_layput.xml difolder layout, Edit file tersebut lalu ketikkan kode berikut <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textappearance="?android:attr/textappearancelarge" android:text="user Name" android:layout_alignparenttop="true" android:layout_alignparentleft="true" android:layout_alignparentstart="true" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignparenttop="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textappearance="?android:attr/textappearancelarge" android:text="password" android:layout_alignparentleft="true" android:layout_alignparentstart="true" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputtype="textpassword"

34 android:ems="10" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="login" android:layout_alignparentright="true" android:layout_alignparentend="true" /> </RelativeLayout> Pada file relative_layout.xml diatas terdapat 2 buah TextView untuk label, 2 buah EditText untuk input dan 1 buah CommadButton untuk tombol Login 2. Buka file MainActivity.java ganti activity_main.xml dengan relative_layout.xml package net.agusharyanto.belajarlayout; import android.support.v7.app.actionbaractivity; import android.os.bundle; import android.view.menu; import android.view.menuitem; public class MainActivity extends ActionBarActivity { protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.relative_layout); public boolean oncreateoptionsmenu(menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getmenuinflater().inflate(r.menu.menu_main, menu); return true; public boolean onoptionsitemselected(menuitem item) { int id = item.getitemid(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; return super.onoptionsitemselected(item);

35 Sekarang mari kita run projectnya Hati-hati dalam penyusnan view pada RelativeLayout ini, karena letak view dipengaruhi oleh view lainnya.

36 Belajar Android ListView dengan CheckBox Belajar Android kali ini akan membahas tentang ListView dengan CheckBox. Kenapa sih kita harus belajar ini. Dalam kehidupan manusia sering dihadapkan dengan pilihan adayang harus memilih satu pilihan diantara banyak pilihan dan ada yang boleh memilih lebih dari satu. Contohnya Untuk pemilihan ketua BEM kita hanya boleh pilih salah satu nama. Pada saat mengisis data diri untuk bahasa pemroraman yang dikuasai, disitu kita bisa memimilih lebih dari satu bahasa pemrograman. Nah ListView dengan CheckBox inilah yang bisa kita gunakan untuk memilih bahasa pemrograman yang disukai. Sekarang mari kita coba membuat peroject yang menampilkan listview bahasa permrograman 1. Buka Eclipse lalu buat project baru dengan nama LearnListViewCheckBox Klik Next terus sampai finish bisa diklik.

37 2. Edit activity_main.xml lalu ktikan kode berikut <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="${relativepackage.${activityclass" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:text="belajar ListView CheckBox" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_alignparentright="true" android:text="bahasa Pemrograman yang dikuasai" /> <ListView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignparentleft="true" > </ListView> </RelativeLayout> 3. buat layout baru dengan nama bahasa_row.xml lalu ketikan kode berikut <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="6dip" > <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:focusable="false" android:focusableintouchmode="false" android:text="checkbox" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content"

38 android:text="textview" /> </RelativeLayout> 4. Buat clas baru dengan nama Bahasa.java lalu ketikkan kode berikut package net.agusharyanto.learnlistviewcheckbox; public class Bahasa { String id = null; String name = null; boolean selected = false; public Bahasa(String id, String name, boolean selected) { super(); this.id = id; this.name = name; this.selected = selected; public String getid() { return id; public void setid(string id) { this.id = id; public String getname() { return name; public void setname(string name) { this.name = name; public boolean isselected() { return selected; public void setselected(boolean selected) { this.selected = selected; 5. Edit class MainActivity.java lalu ketikan kode berikut package net.agusharyanto.learnlistviewcheckbox; import java.util.arraylist; import android.app.activity; import android.content.context; import android.os.bundle; import android.util.log; import android.view.layoutinflater;

39 import android.view.view; import android.view.view.onclicklistener; import android.view.viewgroup; import android.widget.adapterview; import android.widget.adapterview.onitemclicklistener; import android.widget.arrayadapter; import android.widget.button; import android.widget.checkbox; import android.widget.listview; import android.widget.textview; import android.widget.toast; public class MainActivity extends Activity { MyCustomAdapter dataadapter = null; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); Button mybutton = (Button) findviewbyid(r.id.button1); mybutton.setonclicklistener(new OnClickListener() { public void onclick(view v) { dikuasai adalah"); dataadapter.bahasalist; bahasa.getname()); responsetext, StringBuffer responsetext = new StringBuffer(); responsetext.append("bahsasa Pemrograman Yang ArrayList<Bahasa> bahasalist = for (int i = 0; i < bahasalist.size(); i++) { Bahasa bahasa = bahasalist.get(i); if (bahasa.isselected()) { responsetext.append("\n" + Toast.makeText(getApplicationContext(), Toast.LENGTH_SHORT).show(); ); displaylistview(); private void displaylistview() { // Mendeklarasikan arraylist bahaslist dan menginisialiasai dengan 7 data ArrayList<Bahasa> bahasalist = new ArrayList<Bahasa>(); Bahasa bahasa = new Bahasa("1", "Java", true); bahasalist.add(bahasa); bahasa = new Bahasa("2", "C++", false); bahasalist.add(bahasa); bahasa = new Bahasa("3", "Java Script", false);

40 bahasalist.add(bahasa); bahasa = new Bahasa("4", "Erlang", false); bahasalist.add(bahasa); bahasa = new Bahasa("5", "Phyton", true); bahasalist.add(bahasa); bahasa = new Bahasa("6", "Perl", false); bahasalist.add(bahasa); bahasa = new Bahasa("7", "Pascal", false); bahasalist.add(bahasa); // Buata array adapter dari data bahasalist dataadapter = new MyCustomAdapter(this, R.layout.bahasa_row, bahasalist); ListView listview = (ListView) findviewbyid(r.id.listview1); // Assign adapter to ListView listview.setadapter(dataadapter); listview.setonitemclicklistener(new OnItemClickListener() { public void onitemclick(adapterview<?> parent, View view, int position, long id) { // When clicked, show a toast with the TextView text Bahasa bahasa = (Bahasa) parent.getitematposition(position); Toast.makeText(getApplicationContext(), "Clicked on Row: " + bahasa.getname(), Toast.LENGTH_SHORT).show(); ); private class MyCustomAdapter extends ArrayAdapter<Bahasa> { private ArrayList<Bahasa> bahasalist; public MyCustomAdapter(Context context, int textviewresourceid, ArrayList<Bahasa> bahasalist) { super(context, textviewresourceid, bahasalist); this.bahasalist = new ArrayList<Bahasa>(); this.bahasalist.addall(bahasalist); private class ViewHolder { TextView id; CheckBox name; parent) { public View getview(int position, View convertview, ViewGroup ViewHolder holder = null; Log.v("ConvertView", String.valueOf(position)); if (convertview == null) { LayoutInflater vi = (LayoutInflater) getsystemservice(context.layout_inflater_service); convertview = vi.inflate(r.layout.bahasa_row, null);

41 holder = new ViewHolder(); holder.id = (TextView) convertview.findviewbyid(r.id.code); holder.name = (CheckBox) convertview.findviewbyid(r.id.checkbox1); convertview.settag(holder); holder.name.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { CheckBox cb = (CheckBox) v; Bahasa bahasa = (Bahasa) cb.gettag(); Toast.makeText( getapplicationcontext(), "Clicked on Checkbox: " + cb.gettext() + " is " + cb.ischecked(), Toast.LENGTH_SHORT).show(); bahasa.setselected(cb.ischecked()); ); else { holder = (ViewHolder) convertview.gettag(); Bahasa bahasa = bahasalist.get(position); holder.id.settext(" (id:" + bahasa.getid() + ")"); holder.name.settext(bahasa.getname()); holder.name.setchecked(bahasa.isselected()); holder.name.settag(bahasa); return convertview; 6. Sekarang mari kita run projectnya. Jika semua sudah benar maka hasilnya akan seperti ini

42 Klik bahasa yang dikuasai lalu sentuh button Bahasa Pemrograman yang dikuasai maka akan muncul Toast yang mengiformasikan bahasa-bahasa yang dipilih

43 Tutorial Android Membuat Tab Swipe dan View Pager Materi kita kali ini adalah Tutorial Android Membuat Tab Swipe dan View Pager. Sekarang Aplikasi-aplikasi android yang ada di Market sudah semakin bagus, contohnya untuk aplikasi yang menggunakan Tab, kalau dulu untuk berpindah Tab kita harus mengklik Tabnya, sekarang kita punya cara lain yaitu dengan menswipe kekanan atau kekiri. Salah satu rahasianya ternyata aplikasi tersebutb memanfaatkan View Pager. Penasaran ingin buat aplikasi yang navigasi Tabnya bisa dengan Swipe. Mari kita mulai dan ikuti langkah-langkah berikut. 1. Buat Project dengan nama TSJadwalPelajaran 2. Edit activity_main.xml lalu ketikkan kode berikut <android.support.v4.view.viewpager xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.viewpager> 3. Buat Layout Baru dengan nama jadwalfragment_layout.xml lalu ketikkan kode berikut <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ListView android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView> </LinearLayout>

44 4. Buat layout baru dengan nama row_jadwal.xml lalu ketikkan kode berikut <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="75dp" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:text="textview" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparenttop="true" android:paddingleft="10dp" android:text="textview" /> </RelativeLayout> 5. Buat Class baru dengan nama Jadwal.java lalu ketikkan kode berikut package net.agusharyanto.tsjadwalpelajaran; public class Jadwal { public String hari=""; public String jam=""; public String pelajaran=""; public Jadwal (String pday, String ptime, String plesson){ this.hari = pday; this.jam = ptime; this.pelajaran = plesson; 6. Buat class baru dengan nama AdapterJadwal.java lalu ketikan kode berikut package net.agusharyanto.tsjadwalpelajaran; import java.util.arraylist; import android.app.activity; import android.content.context; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.arrayadapter; import android.widget.textview; public class AdapterJadwal extends ArrayAdapter<Jadwal> { private Activity activity; private ArrayList<Jadwal> ljadwal;

45 private static LayoutInflater inflater = null; public AdapterJadwal (Activity activity, int textviewresourceid,arraylist<jadwal> al_jadwal) { super(activity, textviewresourceid, al_jadwal); try { this.activity = activity; this.ljadwal = al_jadwal; inflater = (LayoutInflater) activity.getsystemservice(context.layout_inflater_service); catch (Exception e) { public int getcount() { return ljadwal.size(); public long getitemid(int position) { return position; public static class ViewHolder { public TextView jam; public TextView pelajaran; public View getview(int position, View convertview, ViewGroup parent) { View vi = convertview; final ViewHolder holder; try { if (convertview == null) { vi = inflater.inflate(r.layout.row_jadwal, null); holder = new ViewHolder(); holder.jam = (TextView) vi.findviewbyid(r.id.textviewrowjam); holder.pelajaran = (TextView) vi.findviewbyid(r.id.textviewrowpelajaran); vi.settag(holder); else { holder = (ViewHolder) vi.gettag(); holder.jam.settext(ljadwal.get(position).jam); holder.pelajaran.settext(ljadwal.get(position).pelajaran); catch (Exception e) { return vi;

46 7. Buat class baru dengan nama JadwalFragment.java lalu ketikan kode berikut package net.agusharyanto.tsjadwalpelajaran; import java.util.arraylist; import android.os.bundle; import android.support.v4.app.fragment; import android.util.log; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.listview; public class JadwalFragment extends Fragment { //TextView tvhari; ListView listviewjadwal ; ArrayList<Jadwal> jadwal_terpilih = new ArrayList<Jadwal>(); public View oncreateview(layoutinflater inflater, ViewGroup container, Bundle savedinstancestate) { // Retrieving the currently selected item number int position = getarguments().getint("position");//getarguments().getint("position"); String[] menus ={"Senin", "Selasa", "Rabu","Kamis","Jumat" ; // Creating view corresponding to the fragment View v = inflater.inflate(r.layout.jadwalfragment_layout, container, false); listviewjadwal = (ListView) v.findviewbyid(r.id.listviewjadwal); showjadwal(menus[position]); return v; { 0, public void showjadwal(string hari) { Log.d("TAGS","hari:"+hari); // tvhari.settext("hari " + hari); jadwal_terpilih.clear(); for (int i = 0; i < MainActivity.list_jadwal.size(); i++) Jadwal jadwal = MainActivity.list_jadwal.get(i); if (jadwal.hari.equals(hari)) { jadwal_terpilih.add(jadwal); Log.d("TAGS","hari:"+hari+"jadwal:"+jadwal_terpilih.size()); AdapterJadwal adapterjadwal = new AdapterJadwal(getActivity(), jadwal_terpilih); listviewjadwal.setadapter(adapterjadwal);

47 8. Buat class baru dengan nama TabsPagerAdapter.java package net.agusharyanto.tsjadwalpelajaran; import android.os.bundle; import android.support.v4.app.fragment; import android.support.v4.app.fragmentmanager; import android.support.v4.app.fragmentpageradapter; public class TabsPagerAdapter extends FragmentPagerAdapter { public TabsPagerAdapter(FragmentManager fm) { super(fm); public Fragment getitem(int index) { String[] hari ={"Senin", "Selasa", "Rabu","Kamis","Jumat" ; JadwalFragment rfragment = new JadwalFragment(); // Passing selected item information to fragment Bundle data = new Bundle(); data.putint("position", index); data.putstring("hari", hari[index]); rfragment.setarguments(data); return rfragment; public int getcount() { // get item count - equal to number of tabs return 5; 9. Edit Class MainActivity.java lalu ketikkan kode berikut package net.agusharyanto.tsjadwalpelajaran; import java.util.arraylist; import android.app.actionbar; import android.app.actionbar.tab; import android.app.fragmenttransaction; import android.os.bundle; import android.support.v4.app.fragmentactivity; import android.support.v4.view.viewpager; public class MainActivity extends FragmentActivity implements ActionBar.TabListener { private ViewPager viewpager; private TabsPagerAdapter madapter; private ActionBar actionbar; // Tab titles

48 public static String[] tabs = { "Senin", "Selasa", "Rabu","Kamis","Jumat" ; public static ArrayList <Jadwal> list_jadwal = new ArrayList<Jadwal>(); protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); // Initilization initdata(); viewpager = (ViewPager) findviewbyid(r.id.pager); actionbar = getactionbar(); madapter = new TabsPagerAdapter(getSupportFragmentManager()); viewpager.setadapter(madapter); // actionbar.sethomebuttonenabled(false); actionbar.setnavigationmode(actionbar.navigation_mode_tabs); // Adding Tabs for (String tab_name : tabs) { actionbar.addtab(actionbar.newtab().settext(tab_name).settablistener(this)); /** * on swiping the viewpager make respective tab selected * */ viewpager.setonpagechangelistener(new ViewPager.OnPageChangeListener() { public void onpageselected(int position) { // on changing the page // make respected tab selected actionbar.setselectednavigationitem(position); arg2) { ); public void onpagescrolled(int arg0, float arg1, int public void onpagescrollstatechanged(int arg0) { public void ontabreselected(tab tab, FragmentTransaction ft) { // viewpager.setcurrentitem(tab.getposition()); public void ontabselected(tab tab, FragmentTransaction ft) { // on tab selected // show respected fragment view viewpager.setcurrentitem(tab.getposition());

49 public void ontabunselected(tab tab, FragmentTransaction ft) { public void initdata() { list_jadwal.clear(); list_jadwal.add(new Jadwal("Senin","08:00-10:00","Matematika")); list_jadwal.add(new Jadwal("Senin","10:00-12:00","Agama Islam")); list_jadwal.add(new Jadwal("Senin","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Senin","13:00-15:00","Fisika")); list_jadwal.add(new Jadwal("Selasa","08:00-10:00","Bahasa Indonesia")); list_jadwal.add(new Jadwal("Selasa","10:00-12:00","Kimia")); list_jadwal.add(new Jadwal("Selasa","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Selasa","13:00-15:00","Biologi")); list_jadwal.add(new Jadwal("Rabu","08:00-10:00","Matematika")); list_jadwal.add(new Jadwal("Rabu","10:00-12:00","Seni Rupa")); list_jadwal.add(new Jadwal("Rabu","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Rabu","13:00-15:00","Bahasa Inggris")); list_jadwal.add(new Jadwal("Kamis","08:00-10:00","Fisika")); list_jadwal.add(new Jadwal("Kamis","10:00-12:00","Penjaskes")); list_jadwal.add(new Jadwal("Kamis","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Kamis","13:00-15:00","Geografi")); list_jadwal.add(new Jadwal("Jumat","08:00-10:00","Pemrograman Java")); list_jadwal.add(new Jadwal("Jumat","10:00-12:00","Pemrograman Android")); list_jadwal.add(new Jadwal("Jumat","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Jumat","13:00-15:00","Logika Algoritma")); 10. Sekarang mari kita Run Projectnya. Tampilan Awal Aplikasi.

50 Untuk berpindah Tab kita bisa menyentuh salah satu Tab. Atau melakukan gerakan swipe ke kiri Gimana, Mantapkan Tab Swipe denganview Pagernya Bisa buat tambahan senjata buat yang lagi skripsi atau lagi ada project biar aplikasinya tambah mantab

51 Belajar Android Membuat Tulisan Berjalan - Marquee Belajar Android lagi yuk, walaupun masih suasana lebaran teta[ harus semangat. Pada seri tutoial android kali ini kita akan belajar bagaiman cara menampilkan text bergerak di android. Kalau yang sering buat web pasti tahu yang namanya marquee. Marquee adalah tag yang digunakan untuk menmpilkan tulisan bergerak pada halaman web, biasanya digunakan untuk menampilkan informasi penting. Tentunya kita berfikir, bisa nggak yah kita buat tulisan bergerak diandroid. Yang paling mudah adalah cari digoogle siapa tahu ada yang pernah share. Sekarang mari kita buat aplikasinya 1. Buat project dengan nama LearnMarquee 2.Siapkan layout untuk aplikasi kta, untuk itu Edit activity_main.xml lalu ketikan kode berikut <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="${packagename.${activityclass" > <LinearLayout android:id="@+id/ticker_area" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#00ff00" android:orientation="horizontal" > </LinearLayout> <LinearLayout android:id="@+id/ticker_area2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_below="@+id/ticker_area"

52 android:background="#9cb1dd" android:orientation="horizontal" > </LinearLayout> </RelativeLayout> 3. Sekarang kita masuk ke otak dari aplikasi kita, Edit MainActivity.java lalu ketikan kode berikut package net.agusharyanto.learnmarquee; import android.app.activity; import android.content.context; import android.graphics.color; import android.os.bundle; import android.view.view; import android.view.animation.animation; import android.view.animation.translateanimation; import android.widget.linearlayout; import android.widget.textview; public class MainActivity extends Activity { protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); LinearLayout ticker_area1 = (LinearLayout) findviewbyid(r.id.ticker_area); LinearLayout ticker_area2 = (LinearLayout) findviewbyid(r.id.ticker_area2); setticker(ticker_area1, "Orang tua bahagia kalau anaknya lulus kuliah tepat waktu dengan nilai yang baik", this); setticker(ticker_area2, "Calon Mertua juga akan bangga punya menantu yang baik agamanya dan mapan kehidupannya", this); public void setticker(linearlayout parent_layout, String text, Context contx) { if (text!= "") { TextView view = new TextView(contx); view.settext(text); view view.settextcolor(color.black); view.settextsize(25.0f); Context context = view.getcontext(); // gets the context of the // measures the unconstrained size of the view // before it is drawn in the layout view.measure(view.measurespec.unspecified, View.MeasureSpec.UNSPECIFIED); // takes the unconstrained width of the view float width = view.getmeasuredwidth(); float height = view.getmeasuredheight(); // gets the screen width float screenwidth = ((Activity) context).getwindowmanager().getdefaultdisplay().getwidth();

53 view.setlayoutparams(new LinearLayout.LayoutParams((int) width, (int) height, 1f)); System.out.println("width and screenwidth are" + width + "/" + screenwidth + "///" + view.getmeasuredwidth()); // performs the calculation float toxdelta = width - (screenwidth - 0); // sets toxdelta to -300 if the text width is smaller that the // screen size if (toxdelta < 0) { toxdelta = 0 - screenwidth;// -300; else { toxdelta = 0 - screenwidth - toxdelta;// toxdelta; // Animation parameters Animation manimation = new TranslateAnimation(screenWidth, toxdelta, 0, 0); manimation.setduration(15000); manimation.setrepeatmode(animation.restart); manimation.setrepeatcount(animation.infinite); view.setanimation(manimation); parent_layout.addview(view); 4. Mari kita jalankan programnya Nah gampangkan buat marquee text di android

54 Belajar Android Studio dengan Membuat Aplikasi Android Sederhana Setelah tahapan instalasi selesai dilakukan, kita lanjut dengan membuat aplikasi sederhana dengan Android Studio. Dalam belajar sesuatu yang baru biasanya saya belajar dari hal yang mudah-mudah dulu. Ibarat belajar matematika kia tahu angka dulu baru belajar pertambahan, pengurangan, perkalian dan pembagian. Coba bayangkan bisakah kita memahami penambahan dalam matematika kalau tidak tahu angka. Begitu juga dalam pembuatan aplikasi bisakah kita buat aplikasi Android yang kompleks dan banyak fitur kalau membuat aplikasi yang sederhana saja tidak bisa. Aplikasi Android sederhana yang akan kita buat adalah aplikasi yang dapat membantu kita menghitung luas persegi panjang. Sekarang mari kita mulai 1. Buka Android Studio lalu pilih Start a new Android Studio Project. Akan tampil jendela Create New Project, isikan seperti di bawah ini. Klik Next lalau centang Phone and Tablet

55 Klik Next, lalu pilih Blank Activity Klik Next, dan isi Activity Name dan lainnya seperti dibawah ini. Setelah itu Klik Finish. Maka secara otomatis menampilkan project yang kita buat.

56 Disini langsung diperlihatkan layout tampilan activity_main.xml. Dan bisa kita langsung run. Jika kita punya Device Android silahkan connectkan ke komputer melalui usb port. Klik Tombol Run maka akan muncul pilihan aplikasi uang dirun dimana. Karena saya sudah menghubungkan Android Moto G saya ke komputer, maka Moto G saya akan muncul Jendela Choose Device. Agar lebih cepat runnya Kita pilih saja Choose Running Device. Jika tidak punya device maka bisa pilih Launch Emulator kemidan klik OK Maka hasil tampilannya adalah seperti ini.

57 Loh aplikasi persegi panjang kok isinya Hello World. Harusnya kan ada inputan panjang dan lebar. 2. Untuk menambahkan inputan panjang dan lebar maka kita harus mengedit file layoutnya dalam hal ini activity_main.xml untuk itu replace kode yang ada pada file tersebut dengan kode dibawah ini. RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".mainactivity" <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="panjang" android:layout_alignparenttop="true" android:layout_alignparentleft="true" android:layout_alignparentstart="true" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputtype="number" android:ems="10" android:layout_alignparentleft="true" android:layout_alignparentstart="true"

58 /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="lebar" android:layout_alignparentleft="true" android:layout_alignparentstart="true" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputtype="number" android:ems="10" android:layout_alignparentleft="true" android:layout_alignparentstart="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hitung Luas" android:layout_alignparentleft="true" android:layout_alignparentstart="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="luas" android:layout_alignparentleft="true" android:layout_alignparentstart="true" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputtype="number" android:ems="10" android:layout_alignparentleft="true" android:layout_alignparentstart="true" /> </RelativeLayout>

59 Nah salah satu android studio ini adalah kita bisa langsung lihat previewnya 3. Setelah layout selesai sekarang mari kita kerjakan otak dari aplikasi ini yaitu bagian javanya. Buka MainActivity.java lalu ketikan kode berikut. package net.agusharyanto.persegipanjang; import android.support.v7.app.actionbaractivity; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.view.view; import android.widget.button; import android.widget.edittext; public class MainActivity extends ActionBarActivity { private EditText edtpanjang; private EditText edtlebar; private EditText edtluas;

60 private Button btnhitungluas; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); initui(); initevent(); private void initui(){ edtpanjang = (EditText) findviewbyid(r.id.edittextpanjang); edtlebar = (EditText) findviewbyid(r.id.edittextlebar); edtluas = (EditText) findviewbyid(r.id.edittextluas); btnhitungluas = (Button) findviewbyid(r.id.buttonhitungluas); private void initevent(){ btnhitungluas.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { hitungluas(); ); private void hitungluas(){ int panjang = Integer.parseInt(edtPanjang.getText().toString()); int lebar = Integer.parseInt(edtLebar.getText().toString()); int luas = panjang*lebar; edtluas.settext(luas+""); public boolean oncreateoptionsmenu(menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getmenuinflater().inflate(r.menu.menu_main, menu); return true; public boolean onoptionsitemselected(menuitem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getitemid(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true;

61 return super.onoptionsitemselected(item); 4. Kalau dulu di eclipse untuk konfigurasi aplikasi ada difile AndroidManifest.xml, kalau di Android Studio konfigurasinya ada pada file build.gradle (module:app) apply plugin: 'com.android.application' android { compilesdkversion 21 buildtoolsversion "21.1.2" defaultconfig { applicationid "net.agusharyanto.persegipanjang" minsdkversion 15 targetsdkversion 21 versioncode 1 versionname "1.0" buildtypes { release { minifyenabled false proguardfiles getdefaultproguardfile('proguard-android.txt'), 'proguard-rules.pro' dependencies { compile filetree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' 6.Sekarang mari kita run aplikasi kita. Saya sarankan kita punya Handphone Android jadi kita bisa langsung Run ke HP. Karena kalau ke Run menggunakan Emulator itu lambat dan banyak makan Resource komputer kita Hasil dari aplikasi kita

62 Isikan nilai Panjang dan Lebar kemudian sentuh tombol Hitung Luas Mudahkan buat aplikasi android dengan android studio.

63 Belajar Android Navigation Drawer dan Sliding Menu Kalau beberapa waktu lalu para developer menggunakan Dashboard untuk Tampilan Menunya, sekarang mereka lebih memilih menggunakan Sliding Menu. Facebook, GMAIL menggunakan sliding menu kalau istilah didunia development android dikenal dengan nama Navigation Drawer, disebut Navigation Drawer karena cara kerjanya yang mirip Drawer (Laci). Navigation Drawer mempunyai kelebihan yaitu menunya hanya muncul jika kita inginkan, sehingga tidak memakan tempat di layar HP. Penasaran dengan Navigation Drawer, Mari kita buat project Jadwal Pelajaran yang Navigsinya menggunakan Navigation Drawer 1. Buat Project dengan nama NDJadwal Pelajaran 2. Pada directory drawable Tambahkan icon ic_drawable.png

64 3. Edit string.xml lalu ketikkan kode berikut <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">ndjadwalpelajaran</string> <string name="action_settings">settings</string> <string name="hello_world">hello world!</string> <string-array name="menus"> <item >Senin</item> <item >Selasa</item> <item >Rabu</item> <item >Kamis</item> <item >Jumat</item> <item >Tambah Jadwal</item> <item >About</item> </string-array> <string name="drawer_open">open Drawer</string> <string name="drawer_close">close Drawer</string> </resources> 4.edit activity_main.xml lalu ketikkan kode berikut <android.support.v4.widget.drawerlayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent" > <!-- The main content view --> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" />

65 <!-- The navigation drawer --> <ListView android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:background="#111" android:choicemode="singlechoice" android:dividerheight="0dp" /> </android.support.v4.widget.drawerlayout> 5. Buat Layout baru dengan nama drawer_list_item.xml <TextView xmlns:android=" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?android:attr/activatedbackgroundindicator" android:gravity="center_vertical" android:minheight="?android:attr/listpreferreditemheightsmall" android:paddingleft="16dp" android:paddingright="16dp" android:textappearance="?android:attr/textappearancelistitemsmall" android:textcolor="#fff" /> 6. Buat Layout baru dengan nama jadwalfragment_layout.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ListView android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView> </LinearLayout>

66 7. Buat Layout baru dengan nama row_jadwal.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="75dp" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:text="textview" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparenttop="true" android:paddingleft="10dp" android:text="textview" /> </RelativeLayout> 8. Buat Layout baru dengan nama fragement_tambah_jadwal.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerhorizontal="true" android:layout_centervertical="true" android:text="tambah Jadwal Disini" /> </RelativeLayout> 9. Buat Class baru dengan nama Jadwal.java package net.agusharyanto.ndjadwalpelajaran;

67 public class Jadwal { public String hari=""; public String jam=""; public String pelajaran=""; public Jadwal (String pday, String ptime, String plesson){ this.hari = pday; this.jam = ptime; this.pelajaran = plesson; 10. Buat Class Baru dengan nama AdapterJadwal.java lalu ketikkan kode berikut package net.agusharyanto.ndjadwalpelajaran; import java.util.arraylist; import android.app.activity; import android.content.context; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.arrayadapter; import android.widget.textview; public class AdapterJadwal extends ArrayAdapter<Jadwal> { private Activity activity; private ArrayList<Jadwal> ljadwal; private static LayoutInflater inflater = null; public AdapterJadwal (Activity activity, int textviewresourceid,arraylist<jadwal> al_jadwal) { super(activity, textviewresourceid, al_jadwal); try { this.activity = activity; this.ljadwal = al_jadwal; inflater = (LayoutInflater) activity.getsystemservice(context.layout_inflater_service); catch (Exception e) { public int getcount() { return ljadwal.size();

68 public long getitemid(int position) { return position; public static class ViewHolder { public TextView jam; public TextView pelajaran; public View getview(int position, View convertview, ViewGroup parent) { View vi = convertview; final ViewHolder holder; try { if (convertview == null) { vi = inflater.inflate(r.layout.row_jadwal, null); holder = new ViewHolder(); holder.jam = (TextView) vi.findviewbyid(r.id.textviewrowjam); holder.pelajaran = (TextView) vi.findviewbyid(r.id.textviewrowpelajaran); vi.settag(holder); else { holder = (ViewHolder) vi.gettag(); holder.jam.settext(ljadwal.get(position).jam); holder.pelajaran.settext(ljadwal.get(position).pelajaran); catch (Exception e) { return vi; 11. Buat Class baru dengan FragmentTambahJadwal.java lalu ketikkan kode berikut package net.agusharyanto.ndjadwalpelajaran; import android.app.fragment; import android.os.bundle; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; public class FragmentTambahJadwal extends Fragment {

69 public View oncreateview (LayoutInflater inflater, ViewGroup container, Bundle savedinstancestate) { View v = inflater.inflate(r.layout.fragment_tambah_jadwal, container, false); return v; 12. Edit class ListFragment.java lalu ketikkan kode berikut package net.agusharyanto.ndjadwalpelajaran; import java.util.arraylist; import android.app.fragment; import android.os.bundle; import android.util.log; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.listview; import android.widget.textview; public class ListFragment extends Fragment { ArrayList <Jadwal> list_jadwal = new ArrayList<Jadwal>(); TextView tvhari; ListView listviewjadwal ; public View oncreateview(layoutinflater inflater, ViewGroup container, Bundle savedinstancestate) { // Retrieving the currently selected item number int position = getarguments().getint("position"); String[] menus = getresources().getstringarray(r.array.menus); // Creating view corresponding to the fragment View v = inflater.inflate(r.layout.jadwalfragment_layout, container, false); listviewjadwal = (ListView) v.findviewbyid(r.id.listviewjadwal); // Updating the action bar title getactivity().getactionbar().settitle(menus[position]); initdata(); showjadwal(menus[position]); return v; public void showjadwal(string hari) {

70 Log.d("TAGS","hari:"+hari); // tvhari.settext("hari " + hari); ArrayList<Jadwal> jadwal_terpilih = new ArrayList<Jadwal>(); for (int i = 0; i < list_jadwal.size(); i++) { Jadwal jadwal = list_jadwal.get(i); if (jadwal.hari.equals(hari)) { jadwal_terpilih.add(jadwal); AdapterJadwal adapterjadwal = new AdapterJadwal(getActivity(), 0, jadwal_terpilih); listviewjadwal.setadapter(adapterjadwal); public void initdata() { list_jadwal.add(new Jadwal("Senin","08:00-10:00","Matematika")); list_jadwal.add(new Jadwal("Senin","10:00-12:00","Agama Islam")); list_jadwal.add(new Jadwal("Senin","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Senin","13:00-15:00","Fisika")); list_jadwal.add(new Jadwal("Selasa","08:00-10:00","Bahasa Indonesia")); list_jadwal.add(new Jadwal("Selasa","10:00-12:00","Kimia")); list_jadwal.add(new Jadwal("Selasa","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Selasa","13:00-15:00","Biologi")); list_jadwal.add(new Jadwal("Rabu","08:00-10:00","Matematika")); list_jadwal.add(new Jadwal("Rabu","10:00-12:00","Seni Rupa")); list_jadwal.add(new Jadwal("Rabu","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Rabu","13:00-15:00","Bahasa Inggris")); list_jadwal.add(new Jadwal("Kamis","08:00-10:00","Fisika")); list_jadwal.add(new Jadwal("Kamis","10:00-12:00","Penjaskes")); list_jadwal.add(new Jadwal("Kamis","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Kamis","13:00-15:00","Geografi")); list_jadwal.add(new Jadwal("Jumat","08:00-10:00","Pemrograman Java")); list_jadwal.add(new Jadwal("Jumat","10:00-12:00","Pemrograman Android")); list_jadwal.add(new Jadwal("Jumat","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Jumat","13:00-15:00","Logika Algoritma")); 13. Edit class MainActivity.java lalu ketikkan kode berikut package net.agusharyanto.ndjadwalpelajaran; import android.annotation.suppresslint; import android.app.activity;

71 import android.app.fragmentmanager; import android.app.fragmenttransaction; import android.os.bundle; import android.support.v4.app.actionbardrawertoggle; import android.support.v4.widget.drawerlayout; import android.view.menu; import android.view.menuitem; import android.view.view; import android.widget.adapterview; import android.widget.adapterview.onitemclicklistener; import android.widget.arrayadapter; import android.widget.listview; public class MainActivity extends Activity { // Within which the entire activity is enclosed private DrawerLayout mdrawerlayout; // ListView represents Navigation Drawer private ListView mdrawerlist; bar // ActionBarDrawerToggle indicates the presence of Navigation Drawer in the action private ActionBarDrawerToggle mdrawertoggle; // Title of the action bar private String mtitle = protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); mtitle = "Jadwal Pelajaran"; getactionbar().settitle(mtitle); // Getting reference to the DrawerLayout mdrawerlayout = (DrawerLayout) findviewbyid(r.id.drawer_layout); mdrawerlist = (ListView) findviewbyid(r.id.drawer_list); // Getting reference to the ActionBarDrawerToggle mdrawertoggle = new ActionBarDrawerToggle(this, mdrawerlayout, R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close) { /** Called when drawer is closed */ public void ondrawerclosed(view view) {

72 getactionbar().settitle(mtitle); invalidateoptionsmenu(); /** Called when a drawer is opened */ public void ondraweropened(view drawerview) { getactionbar().settitle("jadwal Pelajaran"); invalidateoptionsmenu(); ; // Setting DrawerToggle on DrawerLayout mdrawerlayout.setdrawerlistener(mdrawertoggle); // Creating an ArrayAdapter to add items to the listview mdrawerlist ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), R.layout.drawer_list_item, getresources().getstringarray(r.array.menus)); // Setting the adapter on mdrawerlist mdrawerlist.setadapter(adapter); // Enabling Home button getactionbar().sethomebuttonenabled(true); // Enabling Up navigation getactionbar().setdisplayhomeasupenabled(true); // Setting item click listener for the listview mdrawerlist mdrawerlist.setonitemclicklistener(new OnItemClickListener() { public void onitemclick(adapterview<?> parent, View view, int position, long id) { // Getting an array of rivers String[] menuitems = getresources().getstringarray(r.array.menus); FragmentTambahJadwal(); getfragmentmanager(); // Currently selected river mtitle = menuitems[position]; if (mtitle.equals("tambah Jadwal")){ FragmentTambahJadwal fragmentone = new FragmentManager fragmentmanager =

73 // Creating a fragment transaction FragmentTransaction ft = fragmentmanager.begintransaction(); // Adding a fragment to the fragment transaction ft.replace(r.id.content_frame, fragmentone); // Committing the transaction ft.commit(); else{ // Creating a fragment object ListFragment rfragment = new ListFragment(); // Passing selected item information to fragment Bundle data = new Bundle(); data.putint("position", position); //data.putstring("url", geturl(position)); rfragment.setarguments(data); // Getting reference to the FragmentManager FragmentManager fragmentmanager = getfragmentmanager(); // Creating a fragment transaction FragmentTransaction ft = fragmentmanager.begintransaction(); // Adding a fragment to the fragment transaction ft.replace(r.id.content_frame, rfragment); // Committing the transaction ft.commit(); // Closing the drawer mdrawerlayout.closedrawer(mdrawerlist); ); protected void onpostcreate(bundle savedinstancestate) { super.onpostcreate(savedinstancestate); mdrawertoggle.syncstate(); public boolean onoptionsitemselected(menuitem item) { if (mdrawertoggle.onoptionsitemselected(item)) { return true;

74 return super.onoptionsitemselected(item); /** Called whenever we call invalidateoptionsmenu() */ public boolean onprepareoptionsmenu(menu menu) { // If the drawer is open, hide action items related to the content view boolean draweropen = mdrawerlayout.isdraweropen(mdrawerlist); menu.finditem(r.id.action_settings).setvisible(!draweropen); return super.onprepareoptionsmenu(menu); public boolean oncreateoptionsmenu(menu menu) { getmenuinflater().inflate(r.menu.main, menu); return true;

75 14. Mari Kita Run Projectnya, Sentuh Icon Drawer, maka akan keluar menu pilih salah satu hari, akan menampilkan jadwal dihari tersebut. Wah ternyata Navigation Drawer ini memang mantap. Tambah lagi satu amunisi untuk buat aplikasi makin mantap

76 Belajar Android Membuat Spinner Navigation pada Action Bar Jumpa lagi dengan agus haryanto, kali ini kita masih membahas tentan salah action bar yaitu Spinner Navigation Masih melanjutkan project sebelumnya, sekarang kita akan mencoba bentuk navigasi menu yang lain yang sering disebut dengan nama Spinner Navigation. Sesuai dengan namanya Spinner Navigation adalah menu navigasi yanga di action bar yang bentiknya sepert spinner. sekarang mari kita ikuti langkah pembuatannya 1. Buka project Jadwal Pelajaran yang ada pada tutorial sebelumnya 2. Buat layout baru dengan nama row_spinnermenu_item.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="fill_parent" android:padding="5dp" > <ImageView android:layout_width="25dp" android:layout_height="25dp" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:layout_marginright="5dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centervertical="true" </RelativeLayout> 3. Buat class baru dengan nama SpinnerNavItem.java class ini berfungsi sebagai model dari isi spinner. package com.agusharyanto.jadwalpelajaran; public class SpinnerNavItem { private String title; private int icon;

77 public SpinnerNavItem(String title, int icon){ this.title = title; this.icon = icon; public String gettitle(){ return this.title; public int geticon(){ return this.icon; 4. Buat class baru dengan nama SpinnerMenuAdapter.java, karena isi dari Spinnernya ada icon gambar dan text maka kita harus buta adapternya sendiri. package com.agusharyanto.jadwalpelajaran; import java.util.arraylist; import android.app.activity; import android.content.context; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.baseadapter; import android.widget.imageview; import android.widget.textview; public class SpinnerMenuAdapter extends BaseAdapter { private ImageView imgicon; private TextView txttitle; private ArrayList<SpinnerNavItem> spinnernavitem; private Context context; public SpinnerMenuAdapter(Context context, ArrayList<SpinnerNavItem> spinnernavitem) { this.spinnernavitem = spinnernavitem; this.context = context; public int getcount() { return spinnernavitem.size(); public Object getitem(int index) {

78 return spinnernavitem.get(index); public long getitemid(int position) { return position; public View getview(int position, View convertview, ViewGroup parent) { if (convertview == null) { LayoutInflater minflater = (LayoutInflater) context.getsystemservice(activity.layout_inflater_service); convertview = minflater.inflate(r.layout.row_spinnermenu_item, null); imgicon = (ImageView) convertview.findviewbyid(r.id.imgicon); txttitle = (TextView) convertview.findviewbyid(r.id.txttitle); imgicon.setimageresource(spinnernavitem.get(position).geticon()); imgicon.setvisibility(view.gone); txttitle.settext(spinnernavitem.get(position).gettitle()); return convertview; public View getdropdownview(int position, View convertview, ViewGroup parent) { if (convertview == null) { LayoutInflater minflater = (LayoutInflater) context.getsystemservice(activity.layout_inflater_service); convertview = minflater.inflate(r.layout.row_spinnermenu_item, null); imgicon = (ImageView) convertview.findviewbyid(r.id.imgicon); txttitle = (TextView) convertview.findviewbyid(r.id.txttitle); imgicon.setimageresource(spinnernavitem.get(position).geticon()); txttitle.settext(spinnernavitem.get(position).gettitle()); return convertview; 5. Buat class baru dengan nama SpinnerMenuNavigationActivity.java disinilah inti koding pada Spinner Navigation package com.agusharyanto.jadwalpelajaran; import java.util.arraylist;

79 import android.app.actionbar; import android.app.activity; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.widget.listview; import android.widget.textview; import android.widget.toast; public class SpinnerNavigationActivity extends Activity implements ActionBar.OnNavigationListener{ // action bar private ActionBar actionbar; // Title navigation Spinner data private ArrayList<SpinnerNavItem> navspinner; // Navigation adapter private SpinnerMenuAdapter adapter; ArrayList <Jadwal> list_jadwal = new ArrayList<Jadwal>(); TextView tvhari; ListView listviewjadwal ; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); tvhari = (TextView) findviewbyid(r.id.textviewhari); listviewjadwal = (ListView) findviewbyid(r.id.listviewjadwal); initdata(); actionbar = getactionbar(); // Hide the action bar title actionbar.setdisplayshowtitleenabled(false); // Enabling Spinner dropdown navigation actionbar.setnavigationmode(actionbar.navigation_mode_list); // Spinner title navigation data navspinner = new ArrayList<SpinnerNavItem>(); navspinner.add(new SpinnerNavItem("Senin", R.drawable.ic_launcher)); navspinner.add(new SpinnerNavItem("Selasa", R.drawable.ic_launcher)); navspinner.add(new SpinnerNavItem("Rabu", R.drawable.ic_launcher)); navspinner.add(new SpinnerNavItem("Kamis", R.drawable.ic_launcher)); navspinner.add(new SpinnerNavItem("Jumat", R.drawable.ic_launcher)); // title drop down adapter adapter = new SpinnerMenuAdapter(getApplicationContext(), navspinner);

80 // assigning the spinner navigation actionbar.setlistnavigationcallbacks(adapter, this); public void initdata() { list_jadwal.add(new Jadwal("Senin","08:00-10:00","Matematika")); list_jadwal.add(new Jadwal("Senin","10:00-12:00","Agama Islam")); list_jadwal.add(new Jadwal("Senin","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Senin","13:00-15:00","Fisika")); list_jadwal.add(new Jadwal("Selasa","08:00-10:00","Bahasa Indonesia")); list_jadwal.add(new Jadwal("Selasa","10:00-12:00","Kimia")); list_jadwal.add(new Jadwal("Selasa","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Selasa","13:00-15:00","Biologi")); list_jadwal.add(new Jadwal("Rabu","08:00-10:00","Matematika")); list_jadwal.add(new Jadwal("Rabu","10:00-12:00","Seni Rupa")); list_jadwal.add(new Jadwal("Rabu","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Rabu","13:00-15:00","Bahasa Inggris")); list_jadwal.add(new Jadwal("Kamis","08:00-10:00","Fisika")); list_jadwal.add(new Jadwal("Kamis","10:00-12:00","Penjaskes")); list_jadwal.add(new Jadwal("Kamis","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Kamis","13:00-15:00","Geografi")); list_jadwal.add(new Jadwal("Jumat","08:00-10:00","Pemrograman Java")); list_jadwal.add(new Jadwal("Jumat","10:00-12:00","Pemrograman Android")); list_jadwal.add(new Jadwal("Jumat","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Jumat","13:00-15:00","Logika Algoritma")); public boolean oncreateoptionsmenu(menu menu) { return true; /** * On selecting action bar icons * */ public boolean onoptionsitemselected(menuitem item) { return true; /** * Actionbar navigation item select listener * */ public boolean onnavigationitemselected(int itemposition, long itemid) { // Action to be taken after selecting a spinner item

81 Toast.makeText(getBaseContext(), "menu:"+navspinner.get(itemposition).gettitle(), Toast.LENGTH_SHORT).show(); showjadwal(navspinner.get(itemposition).gettitle()); return false; public void showjadwal(string hari) { tvhari.settext("hari " + hari); ArrayList<Jadwal> jadwal_terpilih = new ArrayList<Jadwal>(); for (int i = 0; i < list_jadwal.size(); i++) { Jadwal jadwal = list_jadwal.get(i); if (jadwal.hari.equals(hari)) { jadwal_terpilih.add(jadwal); AdapterJadwal adapterjadwal = new AdapterJadwal(SpinnerNavigationActivity.this, 0, jadwal_terpilih); listviewjadwal.setadapter(adapterjadwal); 6. Rubah AndroidManifest.xml untuk Activity yang pertama kali di eksekusi dari MainActivity ke SpinnerNavigationActivity. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="com.agusharyanto.jadwalpelajaran" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="11" android:targetsdkversion="18" /> <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name="<strong>com.agusharyanto.jadwalpelajaran.spinnernavigationactivity</stro ng>" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" />

82 <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest> 7. Sekarang mari kita Run projectnya. Klik Spinner Navigation di pojok kiri atas Pilih Hari Jumat

83 Bagaimana, mudahkan buatnya, Action Bar di android memang mantap. Tambah lagi senjata kita untuk navigasi menu.

84 Belajar Android Action Bar Studi Kasus Aplikasi Jadwal Pelajaran Android Action Bar adalah Salah satu navigasi andalan yang dipakai oleh para developer adalah pemanfaatan action bar. Sebetulnya apa sih action bar itu kalau dari kata-katanya sih aratinya bar yang digunakan untuk mentrigger suatu aksi. Nah barnya ini bisa seperti menu bar, tool bar, sliding bar (navigation drawer), tab bar, apa lagi yah, coba cari di devleoper.android.com dan androidhive.info Untuk lebih jelasnya ini ada gambar bisa dilihat di Pada kesempatan kali ini kita akan coba gunakan action bar sebagai action buttons dan overflow menu untuk membuat aplikasi jadwal pelajaran Bagusnya sih kalau buat aplikasi kita buat dulu design user interfacenya. Kalau untu kebutuhan ini berarti di action barnya ada menu untuk menampilkan jadwal (Senin, Selasa, Rabu, Kamis, Jumat, Semua). Setelah klik Next samapi Finish maka project baru akan tergenerate.

85 2. Sekarang kita siapkan menu untuk aplikasi ini, masuk directory res/menu lalu edit main.xml <menu xmlns:android=" > <item android:orderincategory="100" android:showasaction="never" android:title="senin"/> <item android:orderincategory="100" android:showasaction="never" android:title="selasa"/> <item android:orderincategory="100" android:showasaction="never" android:title="rabu"/> <item android:orderincategory="100" android:showasaction="never" android:title="kamis"/> <item android:orderincategory="100" android:showasaction="never" android:title="jumat"/> </menu> 3. Sekarang kita urus layout user interfacenya, edit file res/layout activity_main.xml <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".mainactivity" > <TextView android:layout_width="wrap_content"

86 android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:text="" android:textappearance="?android:attr/textappearancemedium" /> <ListView android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView> </RelativeLayout> 4. Untuk layout baris pada list view pada directory res/layout buat file layout baru dengan nama row_jadwal.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="75dp" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:text="textview" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparenttop="true" android:paddingleft="10dp" android:text="textview" /> </RelativeLayout> 5. Buat class baru dengan nama Jadwal.java lalu ketikkan kode berkut package com.agusharyanto.jadwalpelajaran; public class Jadwal { public String hari=""; public String jam="";

87 public String pelajaran=""; public Jadwal (String pday, String ptime, String plesson){ this.hari = pday; this.jam = ptime; this.pelajaran = plesson; 6. Buat Class baru dengan nama AdapterJadwal.java lalu ketikan kode berikut package com.agusharyanto.jadwalpelajaran; import java.util.arraylist; import android.app.activity; import android.content.context; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.arrayadapter; import android.widget.textview; public class AdapterJadwal extends ArrayAdapter<Jadwal> { private Activity activity; private ArrayList<Jadwal> ljadwal; private static LayoutInflater inflater = null; public AdapterJadwal (Activity activity, int textviewresourceid,arraylist<jadwal> al_jadwal) { super(activity, textviewresourceid, al_jadwal); try { this.activity = activity; this.ljadwal = al_jadwal; inflater = (LayoutInflater) activity.getsystemservice(context.layout_inflater_service); catch (Exception e) { public int getcount() { return ljadwal.size(); public long getitemid(int position) { return position;

88 public static class ViewHolder { public TextView jam; public TextView pelajaran; public View getview(int position, View convertview, ViewGroup parent) { View vi = convertview; final ViewHolder holder; try { if (convertview == null) { vi = inflater.inflate(r.layout.row_jadwal, null); holder = new ViewHolder(); holder.jam = (TextView) vi.findviewbyid(r.id.textviewrowjam); holder.pelajaran = (TextView) vi.findviewbyid(r.id.textviewrowpelajaran); vi.settag(holder); else { holder = (ViewHolder) vi.gettag(); holder.jam.settext(ljadwal.get(position).jam); holder.pelajaran.settext(ljadwal.get(position).pelajaran); catch (Exception e) { return vi; 7. Edit MainActivity.java lalu ketikkan kode berikut package com.agusharyanto.jadwalpelajaran; import java.util.arraylist; import android.app.activity; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.widget.listview; import android.widget.textview; public class MainActivity extends Activity { ArrayList <Jadwal> list_jadwal = new ArrayList<Jadwal>(); TextView tvhari;

89 ListView listviewjadwal ; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); tvhari = (TextView) findviewbyid(r.id.textviewhari); listviewjadwal = (ListView) findviewbyid(r.id.listviewjadwal); initdata(); public void initdata() { list_jadwal.add(new Jadwal("Senin","08:00-10:00","Matematika")); list_jadwal.add(new Jadwal("Senin","10:00-12:00","Agama Islam")); list_jadwal.add(new Jadwal("Senin","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Senin","13:00-15:00","Fisika")); list_jadwal.add(new Jadwal("Selasa","08:00-10:00","Bahaa Indonesia")); list_jadwal.add(new Jadwal("Selasa","10:00-12:00","Kimia")); list_jadwal.add(new Jadwal("Selasa","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Selasa","13:00-15:00","Biologi")); list_jadwal.add(new Jadwal("Rabu","08:00-10:00","Matematika")); list_jadwal.add(new Jadwal("Rabu","10:00-12:00","Seni Rupa")); list_jadwal.add(new Jadwal("Rabu","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Rabu","13:00-15:00","Bahasa Inggris")); list_jadwal.add(new Jadwal("Kamis","08:00-10:00","Fisika")); list_jadwal.add(new Jadwal("Kamis","10:00-12:00","Penjaskes")); list_jadwal.add(new Jadwal("Kamis","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Kamis","13:00-15:00","Geografi")); list_jadwal.add(new Jadwal("Jumat","08:00-10:00","Pemrograman Java")); list_jadwal.add(new Jadwal("Jumat","10:00-12:00","Pemrograman Android")); list_jadwal.add(new Jadwal("Jumat","12:00-13:00","Istirahat")); list_jadwal.add(new Jadwal("Jumat","13:00-15:00","Logika Algoritma")); public boolean oncreateoptionsmenu(menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getmenuinflater().inflate(r.menu.main, menu); return super.oncreateoptionsmenu(menu); /** * On selecting action bar * */ public boolean onoptionsitemselected(menuitem item) { // Take appropriate action for each action item click switch (item.getitemid()) { case R.id.action_senin: showjadwal("senin");

90 return true; case R.id.action_selasa: // location found showjadwal("selasa"); return true; case R.id.action_rabu: showjadwal("rabu"); return true; case R.id.action_kamis: showjadwal("kamis"); return true; case R.id.action_jumat: showjadwal("jumat"); return true; default: return super.onoptionsitemselected(item); public void showjadwal(string hari) { tvhari.settext("hari " + hari); ArrayList<Jadwal> jadwal_terpilih = new ArrayList<Jadwal>(); for (int i = 0; i < list_jadwal.size(); i++) { Jadwal jadwal = list_jadwal.get(i); if (jadwal.hari.equals(hari)) { jadwal_terpilih.add(jadwal); AdapterJadwal adapterjadwal = new AdapterJadwal(MainActivity.this, 0, jadwal_terpilih); listviewjadwal.setadapter(adapterjadwal);

91 9. Saatnya Run Projectnya, klik pojok kanan untuk memunculkan menu Pilih Senin

92 Untuk saat ini pada saat aplikasi dijalankan tampilannya kosong. harusnya kita bisa langsung menampilkan jadwal hari ini. Nah silahkan mencoba menyelesiakannya Belajar Android Bermain dengan Radio Group dan Radio Button Dalam kehidupan sehari-hari kita banyak bergaul dengan namanya pilihan. Misalkan yang masih hangat yaitu kita harus memilih presiden. Atau kita pernah mengerjakan soal pilihan ganda dimana kita harus memilih salah satu jawaban. Kita juga pernag nonton kuis yang legendaris yaitu One tobe Milionare bahkan mungkin ada yang coba buat aplikasinya. Salah satu fungsi IT adalah penghematan, Nah kalau pilpres kemarin kita coblos pakai paku semoga dipemilu selanjutnya kita sudah pakai tablet. Bisa dibayangkan penghematan yang terjadi, serta kecepatan hasil. Pada Android kalau kita ingin membuat aplikasi yang ada pilihannya. Maka kita harus tahu komponen apa yang dipakai. Salah satu yang bisa kita pakai adalah RadioGroup dimana didalam radiogroup ini ada beberapa Radio Button. Pada kesempatan kali ini kita akan mencoba mengenalkan pemakaian Radio Group dan Radio Button pada Android 1. Buat Project baru dengan nama LearnRadioGroup dan packagebya dengan nama net.agusharyanto.learnradiogroup 2. Edit string.xml lalu ketikan kode berikut <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">learnradiogroup</string>

93 <string name="radio_merah">merah</string> <string name="radio_hijau">hijau</string> <string name="radio_biru">biru</string> <string name="radio_coklat">coklat</string> <string name="radio_ungu">ungu</string> <string name="jawab">cek Jawaban</string> <string name="pilihwarna">pilih Warna?</string> </resources> 3. Edit activity_main.xml lalu ketikan kode berikut <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="${packagename.${activityclass" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_alignparenttop="true" /> <RadioGroup android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" > <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content"

94 /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RadioGroup> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" /> </RelativeLayout> 4. Edit MainActivity.java lalu ketikan kode berikut package net.agusharyanto.learnradiogroup; import android.app.activity; import android.os.bundle; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.radiobutton; import android.widget.radiogroup; import android.widget.toast; public class MainActivity extends Activity { private RadioGroup radiogroupwarna; private RadioButton radiobuttonwarna; private Button btnjawab; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); radiogroupwarna = (RadioGroup) findviewbyid(r.id.radiogroupwarna); btnjawab = (Button) findviewbyid(r.id.buttonjawab); addlisteneronbuttonjawab();

95 public void addlisteneronbuttonjawab() { btnjawab.setonclicklistener(new OnClickListener() { public void onclick(view v) { // get selected radio button from radiogroup int selectedid = radiogroupwarna.getcheckedradiobuttonid(); // find the radiobutton by returned id radiobuttonwarna = (RadioButton) findviewbyid(selectedid); radiobuttonwarna.gettext(), Toast.makeText(getBaseContext(), "Anda Memilih Warna " + Toast.LENGTH_SHORT).show(); ); 5. Sekarang mari kita coba jalankan, pilih saah satu warna lalu sentuh tombol Cek jawaban Semoga bermanfaat

96 Belajar Android Membuat Button Lebih Menarik dan Berwarna Sudah fitrah manusia inginnya selalu melihat yang indah-indah dan cantik-cantik. Nah demikian juga pengguna aplikasi, para pengguna cenderung setia dengan aplikasi yang tampilannya (User Interface) Cantik dan Simple. Pada tutorial kali ini kita akan pelajari tentang styling Button yang tujuannya agar Button terlihat lebih cantik dan enak dilihat. Disini kita menambahkan efek warna gradient pada button Sekarang Mari Kita mulai. 1. Buat Project dengan nama LearnGardientButton dengan nama package net.agusharyanto.learngradientbutton 2. Pada folder drawable-hdpi lalu buat file xml baru dengan buttonmerah.xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android=" <item android:state_pressed="true" > <shape> <solid

97 android:color="#ef4444" /> <stroke android:width="1dp" android:color="#992f2f" /> <corners android:radius="3dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item> <shape> <gradient android:startcolor="#ef4444" android:endcolor="#992f2f" android:angle="270" /> <stroke android:width="1dp" android:color="#992f2f" /> <corners android:radius="3dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> </selector> 3. Pada folder drawable-hdpi lalu buat file xml baru dengan buttonbiru.xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android=" <item android:state_pressed="true" > <shape> <solid android:color="#449def" /> <stroke android:width="1dp" android:color="#2f6699" /> <corners android:radius="3dp" /> <padding android:left="10dp"

98 android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item> <shape> <gradient android:startcolor="#449def" android:endcolor="#2f6699" android:angle="270" /> <stroke android:width="1dp" android:color="#2f6699" /> <corners android:radius="4dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> </selector> 4. Pada folder drawable-hdpi lalu buat file xml baru dengan buttonungu.xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android=" <item android:state_pressed="true" > <shape> <solid android:color="#a276eb" /> <stroke android:width="1dp" android:color="#6a3ab2" /> <corners android:radius="3dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item> <shape> <gradient android:startcolor="#a276eb"

99 android:endcolor="#6a3ab2" android:angle="270" /> <stroke android:width="1dp" android:color="#6a3ab2" /> <corners android:radius="4dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> </selector> 5. Pada folder drawable-hdpi lalu buat file xml baru dengan buttonhijau.xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android=" <item android:state_pressed="true" > <shape> <solid android:color="#70c656" /> <stroke android:width="1dp" android:color="#53933f" /> <corners android:radius="3dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item> <shape> <gradient android:startcolor="#70c656" android:endcolor="#53933f" android:angle="270" /> <stroke android:width="1dp" android:color="#53933f" /> <corners android:radius="4dp" /> <padding android:left="10dp" android:top="10dp"

100 android:right="10dp" android:bottom="10dp" /> </shape> </item> </selector> 6. Pada folder drawable-hdpi lalu buat file xml baru dengan buttonoranye.xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android=" <item android:state_pressed="true" > <shape> <solid android:color="#f3ae1b" /> <stroke android:width="1dp" android:color="#bb6008" /> <corners android:radius="3dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item> <shape> <gradient android:startcolor="#f3ae1b" android:endcolor="#bb6008" android:angle="270" /> <stroke android:width="1dp" android:color="#bb6008" /> <corners android:radius="4dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> </selector> 7. Pada folder drawable-hdpi lalu buat file xml baru dengan buttonhitam.xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android=" <item android:state_pressed="true" > <shape>

101 <solid android:color="#343434" /> <stroke android:width="1dp" android:color="#171717" /> <corners android:radius="3dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item> <shape> <gradient android:startcolor="#343434" android:endcolor="#171717" android:angle="270" /> <stroke android:width="1dp" android:color="#171717" /> <corners android:radius="4dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> </selector> 8. pada folder values buat file xml baru dengan nama color.xml lalu ketikan kode berikut <?xml version="1.0" encoding="utf-8"?> <resources> <item name="blue" type="color">#ff33b5e5</item> <item name="purple" type="color">#ffaa66cc</item> <item name="green" type="color">#ff99cc00</item> <item name="orange" type="color">#ffffbb33</item> <item name="red" type="color">#ffff4444</item> <item name="black" type="color">#ff000000</item> </resources> 9. pada folder values Edit File string.xml lalu ketikan kode berikut <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">learngradientbutton</string> <string name="hello_world">hello world!</string> <string name="merah">merah</string> <string name="biru">biru</string> <string name="hijau">hijau</string> <string name="oranye">orannye</string> <string name="ungu">ungu</string>

102 <string name="hitam">hitam</string> <style name="buttontext"> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:textcolor">#ffffff</item> <item name="android:gravity">center</item> <item name="android:layout_margin">3dp</item> <item name="android:textsize">30dp</item> <item name="android:textstyle">bold</item> <item name="android:shadowcolor">#000000</item> <item name="android:shadowdx">1</item> <item name="android:shadowdy">1</item> <item name="android:shadowradius">2</item> </style> </resources> 10. Pada folder layout edit activity_main.xml lalu ketikan kode berikut <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="${packagename.${activityclass" > <ImageView android:layout_width="match_parent" android:layout_height="80dp" android:layout_alignparenttop="true" android:layout_centerhorizontal="true" /> <Button android:layout_alignparentleft="true" /> <Button android:layout_alignparentleft="true" /> <Button android:layout_alignparentright="true" /> <Button

103 android:layout_alignparentright="true" /> <Button android:layout_alignparentright="true" /> <Button android:layout_alignparentright="true" /> </RelativeLayout> 11. pada folder src edit MainActiviy.java lalu ketikan kode berikut package net.agusharyanto.learngradientbutton; import android.app.activity; import android.os.bundle; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.imageview; public class MainActivity extends Activity implements OnClickListener { Button btnmerah, btnbiru, btnungu, btnhijau, btnoranye, btnhitam; ImageView imageview; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); btnmerah = (Button) findviewbyid(r.id.buttonmerah); btnmerah.setonclicklistener(this); btnbiru = (Button) findviewbyid(r.id.buttonbiru); btnbiru.setonclicklistener(this); btnungu = (Button) findviewbyid(r.id.buttonungu); btnungu.setonclicklistener(this); btnhijau = (Button) findviewbyid(r.id.buttonhijau); btnhijau.setonclicklistener(this); btnoranye = (Button) findviewbyid(r.id.buttonoranye); btnoranye.setonclicklistener(this); btnhitam = (Button) findviewbyid(r.id.buttonhitam); btnhitam.setonclicklistener(this); imageview = (ImageView) findviewbyid(r.id.imageview1);

104 public void onclick(view v) { switch (v.getid()) { case R.id.buttonMerah: imageview.setbackgroundcolor(getresources().getcolor(r.color.red)); return; case R.id.buttonBiru: imageview.setbackgroundcolor(getresources().getcolor(r.color.blue)); return; case R.id.buttonUngu: ; imageview.setbackgroundcolor(getresources().getcolor(r.color.purple)) return; case R.id.buttonHijau: imageview.setbackgroundcolor(getresources().getcolor(r.color.green)); return; case R.id.buttonOranye: ; imageview.setbackgroundcolor(getresources().getcolor(r.color.orange)) return; case R.id.buttonHitam: imageview.setbackgroundcolor(getresources().getcolor(r.color.black)); return; 12. Mari Kita jalankan programya Sentuh salah satu button maka backgroun gamabar android akan berubah

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR MOBILE PROGRAMMING Oleh : CHALIFA CHAZAR MATERI 6 PENGGUNAAN ACTIVITY & INTENT Tujuan: Mahasiswa memahami siklus hidup suatu activity dan mampu menerapkan penggunaan intent dalam pembuatan suatu aplikasi

Lebih terperinci

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR MOBILE PROGRAMMING Oleh : CHALIFA CHAZAR MATERI 6 PENGGUNAAN ACTIVITY Tujuan: Mahasiswa memahami siklus hidup suatu activity dan mampu menerapkan penggunaan intent dalam pembuatan suatu aplikasi Android.

Lebih terperinci

Penggunaan Button di Android

Penggunaan Button di Android Penggunaan Button di Android Oleh: Almibi Akmal Hallo sobat JK, kali ini saya berbagi tutorial bagaimana menggunakan button di android. Button merupakan salah satu bagian penting dari android. Ada dua

Lebih terperinci

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR MOBILE PROGRAMMING Oleh : CHALIFA CHAZAR MATERI 3 MENULISKAN KODE Tujuan: Mahasiswa memahami dan mampu menggunakan komponen dan penulisan kode untuk pembuatan suatu aksi pada aplikasi Android. Pustaka:

Lebih terperinci

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

Modul Pengembangan Aplikasi Android Berbasis Client- Server Aplikasi sederhana android Versi 1.0 Modul Pengembangan Aplikasi Android Berbasis Client- Server Aplikasi sederhana android Versi 1.0 I Ketut Resika Arthana, M.Kom http://www.rey204.com resika.arthana@gmail.com Disajikan dalam mata kuliah

Lebih terperinci

Praktikum 1 - Getting Started with Android

Praktikum 1 - Getting Started with Android Praktikum 1 - Getting Started with Android Dosen : Tenia Wahyuningrum, S.Kom., MT Sebelum menjalankan aplikasi sederhana Hello World, kita perlu untuk menginstal programming environment. Hello World App

Lebih terperinci

Membuat Interface Dinamis Menggunakan FrameLayout

Membuat Interface Dinamis Menggunakan FrameLayout Membuat Interface Dinamis Menggunakan FrameLayout Oleh: Hasyemi Rafsanjani Asyari Pada tutorial kali ini kita akan belajar membuat aplikasi android dengan fragment. Seperti yang kita ketahui aplikasi android

Lebih terperinci

Cara Membuat Background Dinamis di Android

Cara Membuat Background Dinamis di Android Cara Membuat Background Dinamis di Android Oleh: Yudi Setiawan Sebenarnya judulnya agak aneh ya. Mengapa? karena, maksud dari tutorial ini ialah membuat background seperti aplikasi Instagram. Bagi Anda

Lebih terperinci

Tutorial Aplikasi Android Sederhana dengan Action Button

Tutorial Aplikasi Android Sederhana dengan Action Button Tutorial Aplikasi Android Sederhana dengan Action Button Deskripsi Aplikasi : Dapat menerima masukan dari pengguna berupa string. Lalu masukan tersebut dapat ditampilkan dengan menekan button. Terdapat

Lebih terperinci

Struktur & Pemakaian Teknologi Game Pembuatan Activity

Struktur & Pemakaian Teknologi Game Pembuatan Activity Struktur & Pemakaian Teknologi Game Pembuatan Activity Activity Suatu Activity mewakili satu layar tunggal sebagai UI. Masing-masing Activity berdiri sendiri. Suatu Aplikasi dapat terdiri dari beberapa

Lebih terperinci

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR MOBILE PROGRAMMING Oleh : CHALIFA CHAZAR MATERI 6 PENGGUNAAN INTENT Tujuan: Mahasiswa memahami siklus hidup suatu activity dan mampu menerapkan penggunaan intent dalam pembuatan suatu aplikasi Android.

Lebih terperinci

PERTEMUAN KE 4 Representasi Data (ListView dan Spinner)

PERTEMUAN KE 4 Representasi Data (ListView dan Spinner) 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

Lebih terperinci

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

Pertemuan 2. Pemrograman Mobile. 3 SKS Semester 7 S1 Sistem Informasi. Nizar Rabbi Radliya Pemrograman Mobile 3 SKS Semester 7 S1 Sistem Informasi Nizar Rabbi Radliya nizar.radliya@yahoo.com Pertemuan 2 Universitas Komputer Indonesia 2015 Activity Service Content Provider Resource Views Notification

Lebih terperinci

Membuat list dengan RecylerView dan dependency injection ButterKniffe

Membuat list dengan RecylerView dan dependency injection ButterKniffe Membuat list dengan RecylerView dan dependency injection ButterKniffe Oleh: Adriyadi Savana Buat kalian yang sudah pernah mengenal ListView mungkin pernah mendengar RecylerView, yap! RecyclerView adalah

Lebih terperinci

Praktikum IV Komponen UI (Radio Button, CheckBox dll)

Praktikum IV Komponen UI (Radio Button, CheckBox dll) Praktikum IV Komponen UI (Radio Button, CheckBox dll) Pokok Bahasan: Membuat aplikasi user interface android sederhana Mengenal komponen user interface di android Tujuan Belajar Setelah mempelajari modul

Lebih terperinci

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

Modul Aplikasi Mobile. Pertemuan ke-2. Pengenalan environment android pada eclipse Modul Aplikasi Mobile Pertemuan ke-2 Pengenalan environment android pada eclipse Konsep MVC pada Android Develop aplikasi Android seperti halnya pada platform yang lain, menggunakan bahasa pemogramman

Lebih terperinci

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

PAPB-C. Yang harus dipersiapkan: 1. Eclipse 2. AVD/GenieMotion 3. JDK Membuat Android Application Project Baru User Notification adalah pesan yang diterima oleh user yang tidak muncul dalam user interface utama tapi ada dalam bentuk icon dan dengan detail notifikasinya dalam notification area. Tujuan dari munculnya

Lebih terperinci

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR MOBILE PROGRAMMING Oleh : CHALIFA CHAZAR MATERI 5 LOOPING STATEMENT Tujuan: Mahasiswa memahami dan mampu memnggunakan struktur kondisi pengulangan untuk mendukung pembuatan suatu aplikasi Android. Pustaka:

Lebih terperinci

TUTORIAL PEMBUATAN APLIKASI SEDERHANA TOUCH AND GESTURE PADA ANDROID

TUTORIAL PEMBUATAN APLIKASI SEDERHANA TOUCH AND GESTURE PADA ANDROID TUTORIAL PEMBUATAN APLIKASI SEDERHANA TOUCH AND GESTURE PADA ANDROID Di dalam bahasan kali ini, terdapat tutorial pembuatan aplikasi sederhana touch and gesture pada android. Dalam touch and gesture ini

Lebih terperinci

[Pelatihan Pemrograman Android]

[Pelatihan Pemrograman Android] 2012 [Pelatihan Pemrograman Android] Safaruddin Hidayat Al Ikhsan, S.Kom, M.Kom Modul Untuk Peserta Pelatihan di Lab TBI, Departemen Teknik Mesin dan Biosistem, IPB 12/21/2012 Lisensi Dokumen: Copyright

Lebih terperinci

UNIVERSITAS KOMPUTER INDONESIA

UNIVERSITAS KOMPUTER INDONESIA UNIVERSITAS KOMPUTER INDONESIA BAB IX. PENGGUNAAN MENU DENGAN VIEW Dosen Pembina : Bella Hardiyana, S. Kom Julian Chandra, S. Kom Menu Menu berguna untuk menampilkan pilihan tambahan yang tidak langsung

Lebih terperinci

UNIVERSITAS KOMPUTER INDONESIA

UNIVERSITAS KOMPUTER INDONESIA UNIVERSITAS KOMPUTER INDONESIA BAB III. HELLO WORLD Dosen Pembina : Bella Hardiyana, S. Kom, M. Kom HelloWorld1 (1) Buatlah sebuah proyek baru dengan spesifikasi dibawah ini : @Override public boolean

Lebih terperinci

Membuat preferensi atau pengaturan pada aplikasi android

Membuat preferensi atau pengaturan pada aplikasi android Membuat preferensi atau pengaturan pada aplikasi android Oleh: Jefri Rendra Wiratmaja Sempat bertanya - tanya pada diri ini "Bagiamana sih membuat pengaturan pada aplikasi android layaknya pengaturan pada

Lebih terperinci

Cara Membuat Aplikasi Android Sederhana Menggunakan Eclipse

Cara Membuat Aplikasi Android Sederhana Menggunakan Eclipse Cara Membuat Aplikasi Android Sederhana Menggunakan Eclipse by webmaster - Sunday, December 13, 2015 http://xoxo.student.akademitelkom.ac.id/index.php/2015/12/13/cara-membuat-aplikasi-android-sederhanamenggunakan-eclipse/

Lebih terperinci

Variabel dan tipe data

Variabel dan tipe data Variabel dan tipe data Variabel dan tipe data adalah sebuah hal yang penting didalam pemrograman. Variabel berfungsi untuk menyimpan sebuah nilai secara sementara di memory komputer. Variabel dan tipe

Lebih terperinci

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR MOBILE PROGRAMMING Oleh : CHALIFA CHAZAR MATERI 7 INTENT BAGIAN 2 Tujuan: Mahasiswa memahami siklus hidup suatu activity dan mampu menerapkan penggunaan intent dalam pembuatan suatu aplikasi Android. Pustaka:

Lebih terperinci

Membuat Tab Layout Menggunakan Android Material Design

Membuat Tab Layout Menggunakan Android Material Design Membuat Tab Layout Menggunakan Android Material Design Fitria Arnita fitriaarnita23@gmail.com Abstrak Material Design adalah panduan komprehensif untuk desain visual, gerak, dan interaksi lintas platform

Lebih terperinci

Cara membuat Aplikasi Android : CheckBox dengan Eclipse

Cara membuat Aplikasi Android : CheckBox dengan Eclipse Cara membuat Aplikasi Android : CheckBox dengan Eclipse by webmaster - Monday, December 28, 2015 http://umarrokhimin.student.akademitelkom.ac.id/index.php/2015/12/28/cara-membuat-aplikasi-androidcheckbox-dengan-eclipse/

Lebih terperinci

Lecture Notes

Lecture Notes Lecture Notes 15.09.2014 LinearLayout 1. Hapus layout pada file xml 2. Drag drop LinearLayout (Vertical) 3. Drag drop button 3x 4. Lihat code di layout xml, jelaskan ttg id 5. Buat strings.xml dari folder

Lebih terperinci

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

Membuat project Android di Eclipse Struktur project pada eclipse Mengenal Tag Layout User Interface Membuat project Android di Eclipse Struktur project pada eclipse Mengenal Tag Layout User Interface TextView Absolute Layout Table Layout Jalankan Eclipse Pilih Menu File > New > Other Setelah muncul

Lebih terperinci

Praktikum 9 Pemprograman Android GUI 2 Layar

Praktikum 9 Pemprograman Android GUI 2 Layar Praktikum 9 Pemprograman Android GUI 2 Layar Dosen : Ir. Nanang Syahroni M.Kom Pokok Bahasan Konsep pemprograman Java OOP pada Android Deklarasi pemprograman Android Penggunaan Button, Textview, Textfield,

Lebih terperinci

Praktikum VI Activity dan Intent

Praktikum VI Activity dan Intent Praktikum VI Activity dan Intent Pokok bahasan: Membuat aplikasi yang melibatkan activity lebih dari satu Memahami konsep activity dan Intent Tujuan Belajar: Setelah mempelajari modul ini mahasiswa diharapkan

Lebih terperinci

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR MOBILE PROGRAMMING Oleh : CHALIFA CHAZAR MATERI 4 CONDITIONAL STATEMENT Tujuan: Mahasiswa memahami dan mampu memnggunakan struktur kondisi IF..THEN..ELSE.. untuk mendukung pembuatan suatu aplikasi Android.

Lebih terperinci

PRAKTIKUM 6 SPINNER. 1. Aktifkanlah project baru, File New Project Android Application Project. Modul 6 Spinner Page 1

PRAKTIKUM 6 SPINNER. 1. Aktifkanlah project baru, File New Project Android Application Project. Modul 6 Spinner Page 1 PRAKTIKUM 6 SPINNER Spinner adalah aplikasi sederhana untuk menyusun pilihan ketika akan memilih sebuah jawaban berupa option, dan menampilkan jawaban terpilih di textbox. Spinner merupakan view yang memiliki

Lebih terperinci

Menulis Aplikasi untuk Android Bagian I

Menulis Aplikasi untuk Android Bagian I Menulis Aplikasi untuk Android Bagian I Selamat berjumpa lagi di ruang E-Learning Trisma. Seperti penjelasan artikel sebelumnya Bermain dengan Android, dijelaskan sedikit mengenai struktur dasar dari Android

Lebih terperinci

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

Ijin Akses Agar program kita dapat mengakses GPS, kita harus menambahkan permission pada AndroidManifest.xml sebagai berikut: Pemrograman Android GPS MAP Part 1 [Pemrograman Android GPS MAP 01][Level: Menengah] Andi Taru Nugroho Nur Wismono S.Kom.,M.Cs. andi.taru@gmail.com Lisensi Dokumen: Copyright 2012 JavaClopedia.com Seluruh

Lebih terperinci

UNIVERSITAS KOMPUTER INDONESIA

UNIVERSITAS KOMPUTER INDONESIA UNIVERSITAS KOMPUTER INDONESIA BAB VII. USER INTERFACE (UI) PART 4 LIST VIEW Dosen Pembina : Bella Hardiyana, S. Kom Julian Chandra, S. Kom Tipe List View List view adalah view yang memperbolehkan untuk

Lebih terperinci

BAB 3 XML LAYOUT, BASIC WIDGET DAN SELECTION WIDGET

BAB 3 XML LAYOUT, BASIC WIDGET DAN SELECTION WIDGET BAB 3 XML LAYOUT, BASIC WIDGET DAN SELECTION WIDGET 3.1 Tujuan Pembelajaran 1. Memahami tentang pembuatan layout dengan XML pada Android 2. Memahami tentang apa sajakah fitur dari Basic Widget dan Selection

Lebih terperinci

UNIVERSITAS KOMPUTER INDONESIA

UNIVERSITAS KOMPUTER INDONESIA UNIVERSITAS KOMPUTER INDONESIA BAB VIII. MENAMPILKAN GAMBAR DENGAN VIEW Dosen Pembina : Bella Hardiyana, S. Kom Julian Chandra, S. Kom Gallery and ImageView Views Gallery adalah view yang digunakan untuk

Lebih terperinci

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

PROGRAM STUDI D3 JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG Pemrograman Berorientasi Objek 3 (Mobile And Web Programming) TK Jl Srijaya Negara Bukit Besar Palembang 30139, Telpon : +62711-353414 PROGRAM STUDI D3 JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG Pemrograman Berorientasi Objek 3 (Mobile And Web

Lebih terperinci

Location Based Services

Location Based Services Location Based Services Location Based Service (LBS) atau layanan berbasis lokasi adalah sebuah layanan informasi yang dapat diakses dengan perangkat bergerak melalui jaringan dan mampu menampilkan posisi

Lebih terperinci

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

Custom Button pada Android Februari 2012 Tingkat: Oleh : Feri Djuandi Pemula Menengah Mahir Platform : Android 2.3, Eclipse Custom Button pada Android Februari 2012 Tingkat: Oleh : Feri Djuandi Pemula Menengah Mahir Platform : Android 2.3, Eclipse Salah satu hal yang menyenangkan dalam membuat sebuah aplikasi Android adalah

Lebih terperinci

ANDROID FOR BEGINNER MODUL 2

ANDROID FOR BEGINNER MODUL 2 ANDROID FOR BEGINNER MODUL 2 [ANDROID WIDGET] SUDARYATNO yatnosudar@gmail.com @dodulz facebook : yatno.sudar 1 of 11 ANDROID WIDGET Widget adalah komponen view android yang digunakan untuk memudahkan end

Lebih terperinci

DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS!

DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS! DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS! PERTAMA ebook Bahasa Indondesia! Dilengkapi PEMBAHASAN Jelas dan mudah dipahami Sangat Cocok untuk PEMULA!!! Di JAMIN Bisa! Baca Coba Berhasil! L A B. A N D

Lebih terperinci

Latihan 1 Menghitung Luas Persegi Panjang

Latihan 1 Menghitung Luas Persegi Panjang Latihan 1 Menghitung Luas Persegi Panjang 1. Buat Project baru dengan cara klik menu File New Android Application Project. 2. Beri nama aplikasi yang akan kita buat pada kolom Application Name. Huruf awal

Lebih terperinci

Cara Membuat Layout Dynamic di Android

Cara Membuat Layout Dynamic di Android Cara Membuat Layout Dynamic di Android Oleh: Yudi Setiawan Dalam pemrograman Android, khususnya untuk aplikasi Native. Anda harus menguasai Java dan XML. Java sebagai algoritmanya dan XML sebagai UI-nya.

Lebih terperinci

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

PEMROGRAMAN MOBILE PRAKTIKUM 11 ( DATABASE II ) Disusun oleh : CYNTHIA STEFFI CLIFF SI 12 A PEMROGRAMAN MOBILE PRAKTIKUM 11 ( DATABASE II ) Disusun oleh : CYNTHIA STEFFI CLIFF 12.12.0037 SI 12 A http://cliffnewbie.wordpress.com/ SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM PURWOKERTO

Lebih terperinci

Membuat Alert Dialog Pada Android

Membuat Alert Dialog Pada Android Membuat Alert Dialog Pada Android Oleh: Wian Caniggia Eka Putra Hai Sobat.. Kali ini saya akan bagi tutorial android mobile. Kali ini saya akan menjelaskan tentang gimana cara membuat alert dialog pada

Lebih terperinci

Praktikum VI Activity dan Intent

Praktikum VI Activity dan Intent Praktikum VI Activity dan Intent Pokok bahasan: Membuat aplikasi yang melibatkan activity lebih dari satu Memahami konsep activity dan Intent Tujuan Belajar: Setelah mempelajari modul ini mahasiswa diharapkan

Lebih terperinci

Praktikum XI Animasi dan Multimedia

Praktikum XI Animasi dan Multimedia Praktikum XI Animasi dan Multimedia Pokok bahasan: Animasi dan multimedia Membuat aplikasi yang melibatkan komponen multimedia Tujuan Belajar: Setelah mempelajari modul ini mahasiswa diharapkan mengetahui:

Lebih terperinci

SIKLUS HIDUP ACTIVITY PADA ANDROID

SIKLUS HIDUP ACTIVITY PADA ANDROID SIKLUS HIDUP ACTIVITY PADA ANDROID Dwika Apriyani dwika.apriyani1304@gmail.com Abstrak Dalam mengembangkan aplikasi berbasis android, tidak lepas dari yang namanya Activity. Nah, activity ini memiliki

Lebih terperinci

BAB 5 Android Event Handling Mahardeka Tri Ananta

BAB 5 Android Event Handling Mahardeka Tri Ananta BAB 5 Android Event Handling Mahardeka Tri Ananta deka.kelas@gmail.com Konten Event pada Widget Event Handler Event Listener Event Event adalah suatu cara untuk mengumpulkan data tentang interaksi pengguna

Lebih terperinci

Modul. Android Programming. Dyah Fajar Nur Rohmah

Modul. Android Programming. Dyah Fajar Nur Rohmah Modul Android Programming Dyah Fajar Nur Rohmah 2011 DAFTAR ISI DAFTAR ISI... 2 CHAPTER 1 INTRODUCING... 3 Project Structure... 3 CHAPTER 2 ANDROID PROJECT... 5 CHAPTER 3 BUILDING APPLICATION... 7 Menambah

Lebih terperinci

Praktikum IX Drag and Drop GUI dan Image Gallery

Praktikum IX Drag and Drop GUI dan Image Gallery Praktikum IX Drag and Drop GUI dan Image Gallery Pokok bahasan: Drag and Drop GUI Fungsi shape Tujuan Belajar: Setelah mempelajari modul ini mahasiswa diharapkan mengetahui: Tampilan GUI yang lebih menarik

Lebih terperinci

Pembuatan Aplikasi Android Sederhana dengan Eclipse

Pembuatan Aplikasi Android Sederhana dengan Eclipse Pembuatan Aplikasi Android Sederhana dengan Eclipse by webmaster - Monday, December 14, 2015 http://suyatno.dosen.akademitelkom.ac.id/index.php/2015/12/14/pembuatan-aplikasi-android-sederhanadengan-eclipse/

Lebih terperinci

Class yang dipakai Untuk membuat tampilan map pada Android, kita bisa memanfaatkan MapView sebagai berikut:

Class yang dipakai Untuk membuat tampilan map pada Android, kita bisa memanfaatkan MapView sebagai berikut: Pemrograman Android GPS MAP Part 3 [Pemrograman Android GPS MAP 03][Level: Menengah] Andi Taru Nugroho Nur Wismono S.Kom.,M.Cs. andi.taru@gmail.com Lisensi Dokumen: Copyright 2012 JavaClopedia.com Seluruh

Lebih terperinci

Membuat Simple List Transaksi

Membuat Simple List Transaksi Membuat Simple List Transaksi Oleh: Wian Caniggia Eka Putra Hai sobat.. kali ini saya bikin tutorial android mobile yaitu Membuat Simple List Transaksi. Baik langsung saja.. Aplikasi ini mengimplementasikan

Lebih terperinci

Stuktur Folder Project Di Android Studio

Stuktur Folder Project Di Android Studio Stuktur Folder Project Di Android Studio Fitria Arnita fitria.arnita@raharja.info Abstrak Android Studio build system adalah toolkit yang digunakan untuk membangun, test, menjalankan, dan membuat paket

Lebih terperinci

public class MainActivity extends Activity implements AdapterView.OnItemClickListener{

public class MainActivity extends Activity implements AdapterView.OnItemClickListener{ SOURECE JAVA MAINACTIVITY package id.andang.bukhari; import android.app.activity; import android.content.intent; import android.os.bundle; import android.text.editable; import android.text.textwatcher;

Lebih terperinci

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

INTERFACING APLIKASI PENGHITUNGAN LUAS SEGITIGA DI ANDROID. Dibuat Oleh : Nama : Zunar Fitrianto NIM : Kelas : 13.5B.11 INTERFACING APLIKASI PENGHITUNGAN LUAS SEGITIGA DI ANDROID Dibuat Oleh : Nama : Zunar Fitrianto NIM : 13081343 Kelas : 13.5B.11 Akademi Manajement Informatika dan Komputer Bina Sarana Informatika 2010

Lebih terperinci

DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS!

DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS! DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS! PERTAMA ebook Bahasa Indondesia! Dilengkapi PEMBAHASAN Jelas dan mudah dipahami Sangat Cocok untuk PEMULA!!! Di JAMIN Bisa! Baca Coba Berhasil! L A B. A N D

Lebih terperinci

XAMARIN ANDROID : Bekerja

XAMARIN ANDROID : Bekerja XAMARIN ANDROID : Bekerja Dengan ListView Lisensi Dokumen: Copyright 2003 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan

Lebih terperinci

DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS!

DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS! DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS! PERTAMA ebook Bahasa Indondesia! Dilengkapi PEMBAHASAN Jelas dan mudah dipahami Sangat Cocok untuk PEMULA!!! Di JAMIN Bisa! Baca Coba Berhasil! L A B. A N D

Lebih terperinci

Workshop Struktur dan Pemakaian Teknologi Game BAB 4. Menu

Workshop Struktur dan Pemakaian Teknologi Game BAB 4. Menu BAB 4 Menu 69 4.1 Tujuan Pembelajaran 1. Memahami tentang Menu, baik Option maupun Context Menu dan bagaimana penggunaannya. 4.2 Dasar Teori Sebagaimana halnya aplikasi-aplikasi untuk desktop dan beberapa

Lebih terperinci

Membuat Aplikasi Sederhana Hello World untuk Android

Membuat Aplikasi Sederhana Hello World untuk Android Membuat Aplikasi Sederhana Hello World untuk Android by webmaster - Monday, December 21, 2015 http://ahmadarifudin.student.akademitelkom.ac.id/?p=50 Dalam membuat aplikasi android diperlukan Java SE Development

Lebih terperinci

Fundamental Android Application Development

Fundamental Android Application Development Fundamental Android Application Development Sidiq Permana (nouvrizky10) CIO of Nusantara Beta Studio Professional Android Application Trainner Google Developer Expert and Intel Android Software Innovator

Lebih terperinci

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

Membuat UI Cantik Dan Serasi Di Android Menggunakan Palette Library Material Design Membuat UI Cantik Dan Serasi Di Android Menggunakan Palette Library Material Design Fitria Arnita fitriaarnita23@gmail.com Abstrak Material Design adalah panduan komprehensif untuk desain visual, gerak,

Lebih terperinci

DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS!

DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS! DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS! PERTAMA ebook Bahasa Indondesia! Dilengkapi PEMBAHASAN Jelas dan mudah dipahami Sangat Cocok untuk PEMULA!!! Di JAMIN Bisa! Baca Coba Berhasil! L A B. A N D

Lebih terperinci

SOFTWARE DEVELOMENT KIT (SDK) & DASAR PENGEMBANGAN APLIKASI MOBILE

SOFTWARE DEVELOMENT KIT (SDK) & DASAR PENGEMBANGAN APLIKASI MOBILE SOFTWARE DEVELOMENT KIT (SDK) & DASAR PENGEMBANGAN APLIKASI MOBILE Farah Zakiyah Rahmanti, M.T Diperbarui 2016 Overview SDK (Software Development Kit) Creating Project di Eclipse Creating Project di Android

Lebih terperinci

User interface & XML Layout

User interface & XML Layout User interface & XML Layout Oleh : Farah Zakiyah Rahmanti, M.T Diperbarui 2017 Overview View Class UI Component XML Layout UI Hierarchy Layout Linear Layout Relative Layout Grid View List View View Class

Lebih terperinci

BAB IV IMPLEMENTASI DAN PENGUJIAN APLIKASI

BAB IV IMPLEMENTASI DAN PENGUJIAN APLIKASI BAB IV IMPLEMENTASI DAN PENGUJIAN APLIKASI 4.1 Implementasi Implementasi aplikasi dilakukan melalui beberapa tahap, mulai dari instalasi dan konfigurasi development kit, membuat layout untuk antar muka

Lebih terperinci

MODUL 10 KOMPONEN GUI ANDROID

MODUL 10 KOMPONEN GUI ANDROID MODUL 10 KOMPONEN GUI ANDROID A. Tujuan : 1. Memahami berbagai pembuatan komponen di android 2. Memahami passing parameter di android dalam 1 layar 3. Memahami passing parameter di android dalam 2 layar

Lebih terperinci

Membuat Spash Screen

Membuat Spash Screen Membuat Spash Screen Oleh: christiawan eko saputro Tutorial ini sangat simple,pasti udah tau kan Splash Screen, semacam kaya Loading gitu lah :) Buat Project File New SplashScreen dan Beri nama Activity

Lebih terperinci

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

PROGRAM STUDI D3 JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG Pemrograman Berorientasi Objek 3 (Mobile And Web Programming) Jl Srijaya Negara Bukit Besar Palembang 30139, Telpon : +62711-353414 TK PROGRAM STUDI D3 JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG Pemrograman Berorientasi Objek 3 (Mobile And Web

Lebih terperinci

UNIVERSITAS KOMPUTER INDONESIA

UNIVERSITAS KOMPUTER INDONESIA UNIVERSITAS KOMPUTER INDONESIA BAB V. USER INTERFACE (UI) PART 2 - BASIC VIEW Dosen Pembina : Bella Hardiyana, S. Kom Julian Chandra, S. Kom View View dalam pemrograman Android berfungsi sebagai komponen

Lebih terperinci

Latihan 2 List Menu Bertingkat

Latihan 2 List Menu Bertingkat Latihan 2 List Menu Bertingkat 1. Buat Project baru dengan cara klik menu File New Android Application Project. 2. Beri nama aplikasi yang akan kita buat pada kolom Application Name. Huruf awal harus capital.

Lebih terperinci

DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS!

DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS! DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS! PERTAMA ebook Bahasa Indondesia! Dilengkapi PEMBAHASAN Jelas dan mudah dipahami Sangat Cocok untuk PEMULA!!! Di JAMIN Bisa! Baca Coba Berhasil! L A B. A N D

Lebih terperinci

TUTORIAL APLIKASI ANDROID COOL HELLO WORLD

TUTORIAL APLIKASI ANDROID COOL HELLO WORLD TUTORIAL APLIKASI ANDROID COOL HELLO WORLD TUTORIAL ANDROID 1. Pendahuluan Tutorial aplikasi android CoolHelloWorld adalah suatu tutorial yang akan memberikan suatu petunjuk pembuatan aplikasi CoolHelloWorld.

Lebih terperinci

BAB 3 Android User Interface

BAB 3 Android User Interface BAB 3 Android User Interface Mahardeka Tri Ananta deka.kelas@gmail.com Konten User Interface View/Widget ViewGroup (Layout) Dealing with data (supplement) Google Material Design (supplement) User Interface

Lebih terperinci

UNIVERSITAS KOMPUTER INDONESIA

UNIVERSITAS KOMPUTER INDONESIA UNIVERSITAS KOMPUTER INDONESIA BAB VI. USER INTERFACE (UI) PART 3 PICKER VIEW Dosen Pembina : Bella Hardiyana, S. Kom Julian Chandra, S. Kom Picker View Pemilihan tanggal dan waktu merupakan salah satu

Lebih terperinci

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN BAB IV IMPLEMENTASI DAN PENGUJIAN Setelah melakukan analisa dan perancangan terhadap aplikasi informasi seluruh provider perdana di indonesia yang ada di kota Jakarta, pada bab ini akan dibahas mengenai

Lebih terperinci

Call Phone Permission pada Android

Call Phone Permission pada Android Call Phone Permission pada Android Oleh: Adnan w Anadrep Halo, berjumpa lagi dengan saya :) Kali ini saya akan memberikan tutorial di android mengenai penggunaan CALL_PHONE permission. Dalam tutorial ini,

Lebih terperinci

Struktur & Pemakaian Teknologi Game Struktur Project Android

Struktur & Pemakaian Teknologi Game Struktur Project Android Struktur & Pemakaian Teknologi Game Struktur Project Android File proguard.cfg akan digunakan pada saat anda melakukan build aplikasi pada release mode, dimana dilakukan proses shrinks, optimizes, dan

Lebih terperinci

Linear Layout, Relative Layout, Table Layout

Linear Layout, Relative Layout, Table Layout Linear Layout, Relative Layout, Table Layout Oleh: Luthfan Dalam pemprograman android, ada beberapa layout yang digunakan untuk menempatkan bermacam-macam view seperti button dan text. Untuk membuat layout

Lebih terperinci

Percobaan 9 Basic Widget

Percobaan 9 Basic Widget Percobaan 9 Basic Widget 9.1 Pokok Bahasan XML Layout Basic Widget 9.2 Tujuan Dengan praktikum ini mahasiswa diharapkan dapat: Memahami pembuatan user interfaces dengan menggunakan XML layout Memahami

Lebih terperinci

Google Sign In Android

Google Sign In Android Google Sign In Android Membuat aplikasi dengan Google Sign In Part 1 Date of Create : September 14, 2017 1 Disini saya akan coba membuat aplikasi dengan bantuan Google Sign in dimana datanya kita bisa

Lebih terperinci

Tutorial Membuat Aplikasi Web View Android pada Eclipse

Tutorial Membuat Aplikasi Web View Android pada Eclipse Tutorial Membuat Aplikasi Web View Android pada Eclipse 1. Membuat Project Baru a. Langkah awal pastinya adalah membuat project baru: File-New-Project b. Kemudian klik Next da nisi informasi yang dibutuhkan

Lebih terperinci

XAMARIN ANDROID : Membangun. Aplikasi Mobile Dengan GridView

XAMARIN ANDROID : Membangun. Aplikasi Mobile Dengan GridView XAMARIN ANDROID : Membangun Aplikasi Mobile Dengan GridView Lisensi Dokumen: Copyright 2003 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas

Lebih terperinci

Praktikum II Membuat Project di Android

Praktikum II Membuat Project di Android Praktikum II Membuat Project di Android Pokok Bahasan: Membuat aplikasi android sederhana Mengenal komponen eclipse dalam pembuatan aplikasi Tujuan Belajar Setelah mempelajari modul ini mahasiswa diharapkan

Lebih terperinci

Android - Apa itu.this dan.class

Android - Apa itu.this dan.class Android - Apa itu.this dan.class Oleh: Andika Kurniawan Apa itu.this dan.class? Di dalam Android terdapat kode-kode yang keliahatan nya 'aneh'. Salah kode yang aneh adalah.this dan.class. Di sini saya

Lebih terperinci

Menampilkan Map. B. Menambahkan referensi library google-play-service.jar ke dalam project

Menampilkan Map. B. Menambahkan referensi library google-play-service.jar ke dalam project Menampilkan Map Sejak tanggal 3 Desember 2012, Google secara resmi mengumumkan bahwa layanan API Map berubah menjadi versi 2 sedangkan versi sebelumnya masih diberi waktu berjalan hingga satu tahun ke

Lebih terperinci

[Pemrograman Android Widget 01][Level: Pemula] Andi Taru Nugroho Nur Wismono S.Kom.,M.Cs. Lisensi Dokumen:

[Pemrograman Android Widget 01][Level: Pemula] Andi Taru Nugroho Nur Wismono S.Kom.,M.Cs. Lisensi Dokumen: Pemrograman Android Widget Part 1 [Pemrograman Android Widget 01][Level: Pemula] Andi Taru Nugroho Nur Wismono S.Kom.,M.Cs. andi.taru@gmail.com Lisensi Dokumen: Copyright 2012 JavaClopedia.com Seluruh

Lebih terperinci

BAB 2. Siklus Hidup Aplikasi Android

BAB 2. Siklus Hidup Aplikasi Android BAB 2 Siklus Hidup Aplikasi Android 2.1 Tujuan Pembelajaran : 1. Memahami komponen komponen pada Android 2. Memahami Sikuls Hidup Komponen Android. 2.2 Dasar Teori 2.2.1 Komponen Aplikasi Fitur utama dari

Lebih terperinci

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN BAB IV IMPLEMENTASI DAN PENGUJIAN Setelah melakukan analisis dan perancangan terhadap aplikasi check point dan penghitung jumlah pada bus AKAP berbasis Android. Pada bab ini akan dibahas mengenai implementasi

Lebih terperinci

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

PROGRAM STUDI D3 JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG Pemrograman Berorientasi Objek 3 (Mobile And Web Programming) TK Jl Srijaya Negara Bukit Besar Palembang 30139, Telpon : +62711-353414 PROGRAM STUDI D3 JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG Pemrograman Berorientasi Objek 3 (Mobile And Web

Lebih terperinci

Dapat memahami mekanisme kerja component dalam sistem operasi android. Dapat menggunakan component secara efektif dalam membuat aplikasi android

Dapat memahami mekanisme kerja component dalam sistem operasi android. Dapat menggunakan component secara efektif dalam membuat aplikasi android Dapat memahami dasar teori pemrograman android Dapat memahami mekanisme kerja component dalam sistem operasi android Dapat menggunakan component secara efektif dalam membuat aplikasi android Activity Menyajikan

Lebih terperinci

UNIVERSITAS KOMPUTER INDONESIA

UNIVERSITAS KOMPUTER INDONESIA UNIVERSITAS KOMPUTER INDONESIA BAB IV. USER INTERFACE (UI) PART 1 - VIEWGROUP Dosen Pembina : Julian Chandra W, S.Kom,M.Kom Bella Hardiyana, S. Kom, M. Kom USER INTERFACE (UI) Secara umum arsitektur UI

Lebih terperinci

Penulis. Bagi anda yang mencari referensi buku, berikut ini buku yang sangat saya rekomendasikan sebagai panduan belajar.

Penulis. Bagi anda yang mencari referensi buku, berikut ini buku yang sangat saya rekomendasikan sebagai panduan belajar. Penulis Penulis adalah seorang programmer freelance yang aktif dalam bidang mobile application khususnya android. Setelah menerbitkan buku 24 JAM!! Pintar Pemrograman Android, saat ini penulis yang bernama

Lebih terperinci

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

Mulai minggu ke-2 sesi 2, mahasiswa akan melakukan praktikum PAM yang dibagi ke dalam dua bagian, yaitu: Mata Kuliah : IF330324-IF430324 Pembangunan Aplikasi Mobile Semester : 2 (Genap) Topik : Pengenalan Layout dan Input Controls Tanggal Sesi : 7 Maret 2017 Minggu ke-/sesi : 5/2 Waktu pengerjaan : 2x50 menit

Lebih terperinci

PERTEMUAN KE 7 Broadcast Receiver dan Services

PERTEMUAN KE 7 Broadcast Receiver dan Services PERTEMUAN KE 7 Broadcast Receiver dan Services A. TUJUAN Mahasiswa diharapkan dapat memahami dan mengetahui tentang Broadcast Receviver dan Service serta bagaimana menggunakannya. B. TEORI SINGKAT BROADCAST

Lebih terperinci