industri.itn.ac.id · web viewproject baru telah selesai dibuat dan akan muncul tampilan sebagai...
TRANSCRIPT
MODUL PEMROGRAMAN KOMPUTERBAB 1
PENGENALAN ANDROID
Android adalah sistem operasi yang dikeluarkan oleh Google. Android dibuat khusus
untuk smartphone dan tablet. Berbagai macam produsen telah menggunakan Android sebagai
sistem operasi untuk piranti (device) yang mereka produksi. Android juga mempunyai store
dengan lebih dari 2 miliar pengguna aktif (tahun 2018).
Android memanjakan penggunanya dengan fitur yang sangat canggih dan tampilan yang bagus.
Sistem android dapat digunakan sebagai alat multimedia seperti pemutar musik dan video.
Android juga memiliki perangkat keras seperti accelerometer, gyroscope, dan sensor lainnya.
Antarmuka pengguna Android umumnya berupa manipulasi langsung, menggunakan gerakan
sentuh (touch) yang serupa dengan tindakan nyata, misalnya menggeser (swipping), mengetuk
(tapping), dan mencubit (pinching) untuk memanipulasi objek di layar, serta papan ketik
virtual untuk menulis teks. Selain perangkat layar sentuh, Google juga telah
mengembangkan Android TV untuk televisi, Android Auto untuk mobil, dan Android Wear untuk
jam tangan, masing-masingnya memiliki antarmuka pengguna yang berbeda. Varian Android
juga digunakan pada komputer jinjing, konsol permainan, kamera digital, dan peralatan
elektronik lainnya.
Disamping itu beberapa hal yang membuat Android sebagai sistem operasi yang memang layak
digunakan oleh pengguna atau dikembangkan para developer, seperti yang akan diuraikan
berikut ini.
1.1 Sistem Operasi Smartphone terpopuler
Sejak dirilis tahun 2008, Google telah mengeluarkan beberapa versi. Pada tahun 2013, android
menjadi operation system (OS) terlaris pada tablet dan smartphone. Tercatat pada tahun 2016,
store android memiliki lebih dari 2,8 juta aplikasi. Pada masa saat ini kebanyakan vendor-vendor
smartphone sudah memproduksi smartphone berbasis android. Hal ini karena android itu adalah
sistem operasi yang open source sehingga bebas didistribusikan dan dipakai oleh vendor
manapun. Tidak hanya menjadi sistem operasi di smartphone, saat ini android menjadi pesaing
Apple pada sistem operasi Tablet PC. Pesatnya pertumbuhan adroid adalah karena android itu
sendiri merupakan platform yang lengkap, tersedianya tools pengembangan, adanya fasilitas
market dan didukung oleh komunitas open source.
1.2 Store
Aplikasi android bisa didistribusikan menggunakan web, copy APK, dan store. Store android,
yaitu google play merupakan cara termudah bagi para developer untuk mendistribusikan
aplikasinya ke pasar yang memiliki miliaran pengguna.
Google play merupakan store resmi android yang dikelola oleh google. Pengguna bisa mencari
dan mengunduh aplikasi yang dikembangkan dengan menggunakan Android Software
Development Kit. Tidak hanya aplikasi yang ditawarkan di Google Play, ada beragam konten
lainnya yang dapat dinikmati pengguna, misalnya media digital, musik, buku, majalah, film, dan
program televisi. Para developer memiliki beberapa cara dalam memonetisasi aplikasi yang ada
didalam Google Play, dimulai dari aplikasi berbayar (paid distribution), pembelian dalam
aplikasi (in-app purchase), langganan (subcriptions), dan iklan (ads). Tentunya developer harus
mengikuti aturan yang ada untuk memastikan bahwa pengguna mendapatkan pengalaman (user
experience) yang paling baik.
1.3 Sejarah perkembangan Android
Perkembangan Android yang resmi diluncurkan oleh Google ( Sumber: Wikipedia)
Code name Version numbers Initial release date API level
No codename 1.0 September 23, 2008 1
Petit Four (only internally used) 1.1 February 9, 2009 2
Cupcake 1.5 April 27, 2009 3
Donut 1.6 September 15, 2009 4
Eclair 2.0 – 2.1 October 26, 2009 5 – 7
Froyo 2.2 – 2.2.3 May 20, 2010 8
Gingerbread 2.3 – 2.3.7 December 6, 2010 9 – 10
Honeycomb 3.0 – 3.2.6 February 22, 2011 11 – 13
Ice Cream Sandwich 4.0 – 4.0.4 October 18, 2011 14 – 15
Jelly Bean 4.1 – 4.3.1 July 9, 2012 16 – 18
KitKat 4.4 – 4.4.4 October 31, 2013 19 – 20
Lollipop 5.0 – 5.1.1 November 12, 2014 21 – 22
Marshmallow 6.0 – 6.0.1 October 5, 2015 23
Nougat 7.0 – 7.1.2 August 22, 2016 24 – 25
Oreo 8.0 – 8.1 August 21, 2017 26 – 27
Pie 9.0 August 6, 2018 28
Android 10 10.0 September 3, 2019 29
1.4 Android Platform Development
Android SDK (Software Development Kit)
Android Software Development Kit menyediakan framework dan API (Application
Programming Interface) yang bisa digunakan oleh para developer untuk mengembangkan
aplikasi berbasis android dengan bahasa pemrograman java. Didalamnya terdapat beberapa tools
seperti debugger, software libraries, emulator, dokumentasi, simple code, dan tutorial.
API merupakan sekumpulan perintah, fungsi, serta protokol yang dapat digunakan oleh
programmer saat membangun perangkat lunak untuk sistem operasi tertentu.
Android Debugging Bridge (ADB)
Android debug bridge (ADB) merupakan tool untuk terhubung ke perangkat Android (virtual
atau real), untuk tujuan mengelola perangkat atau debugging aplikasi.
1.5 Runtime Environment
Runtime environment merupakan konfigurasi perangkat keras dan perangkat lunak, termasuk
jenis CPU, sistem operasi, dan apa saja perangkat lunak sistem yang diperlukan oleh kategori
aplikasi tertentu. Runtime Environment adalah keadaan saat suatu program aplikasi dijalankan.
Saat dalam keadaan ini, program mengirimkan instruksi kepada prosesor dan mengakses memori
komputer serta sumber daya sistem lainnya. Dalvik Virtual Machine (DVM) dan Android Run
Time (ART) menunjukkan eksekusi kompilasi ketika menjalankan aplikasi Android.
Dalvik Virtual Machine (DVM)
Pada API Kitkat dan sebelumnya, android menggunakan Dalvik Virtual Machine (DVM).
Android berjalan di atas Dalvik Virtual Machine (DVM) bukan Java Virtual Machine (JVM)
layaknya Java SE. DVM menerapkan pendekatan JIT (Just-in-time), dimana kompilasi
dijalankan setiap kali ada permintaan untuk menjalankan aplikasi. Hal ini sangat mempengaruhi
kecepatan respon aplikasi. Setiap kali kita menyentuh ikon aplikasi maka kompilasi akan
dilakukan. Tentu proses ini menghabiskan CPU dan berimbas pada relatif lebih borosnya
penggunaan baterai.
Android Run Time (ART)
Dari versi Lollipop hingga Oreo, android sepenuhnya mengadopsi ART. ART menerapkan
pendekatan berbeda yaitu AOT ( Ahead-of-time) dimana melakukan kompilasi pada saat proses
instalasi aplikasi. Jadi setiap kali aplikasi dijalankan, sudah tidak ada lagi proses kompilasi. Hal
ini meningkatkan performa dalam menjalankan aplikasi dikarenakan penggunaan sumber daya
CPU bisa dikurangi, dan pemakaian baterai menjadi lebih hemat. Akan tetapi ART
membutuhkan space (ukuran berkas) yang lebih besar jika dibandingkan dengan DVM.
1.6 Mengenal Android Studio
Pada modul ini, kita akan menggunakan android studio sebagai IDE. Android Studio dirilis pada
16 Mei 2013. Android Studio adalah Lingkungan Pengembangan Terpadu (Integrated
Development Environment/IDE) resmi untuk pengembangan aplikasi Android, yang didasarkan
pada Jetbrains IntelliJ IDEA.
Antarmuka Android Studio
Jendela utama Android Studio terdiri dari beberapa area yang dijabarkan dalam gambar berikut.
1. Toolbar, bagian yang sering digunakan untuk melakukan berbagai tindakan seperti
copy/paste, build, menjalankan aplikasi, dan menjalankan emulator.
2. Navigasi, membantu dalam menjelajah struktur project dan posisi project yang sedang
kita buka sekarang.
3. Project Editor, adalah tempat membuat dan memodifikasi kode. Tergantung jenis file
yang ada, editor ini dapat berubah. Misalnya, saat menampilkan file tata letak, editor
akan menampilkan Layout Editor.
4. Tool window bar, berada di sisi luar jendela IDE dan berisi tombol-tombol yang
memungkinkan Anda memperluas (expand) atau menciutkan (collapse) setiap jendela
tools.
5. Project window, memberi akses ke tugas tertentu seperti pengelolaan project (secara
default menampilkan struktut project yang telah kita buat), penelusuran, kontrol versi,
dan banyak lagi.
6. Status bar, berfungsi untuk menampilkan status project dan pesan peringatan (warning
message).
PRAKTIKUM (Memulai Project Android)
1. Ketika pertama kali membuka aplikasi Android studio, maka anda akan melihat tampilan
seperti berikut. Pilih start a new android studio Project untuk membuat project baru.
2. Pada bagian ini, kita akan memilih tipe activity awal dari berbagai macam template yang
sudah disediakan oleh Android Studio mulai dari yang paling sederhana hingga yang
paling kompleks. Namun pada praktikum kali ini, kita akan menggunakan tipe Empty
Activity.
Add No Activity : Tidak ada activity yang ditambahkan.
Basic Activity : Activity dengan template komponen material design
seperti floatingaction button.
Empty Activity : Activity dalam bentuk paling dasar.
Fullscreen Activity : Activity fullscreen tanpa status bar.
Google AdMob Ads : Activity dengan default konfigurasi iklan Admob
Google Maps Activity: Activity dengan menyediakan konfigurasi dasar
Google Maps.
Login Activity : Activity untuk halaman login.
Master/Detail Flow : Activity yang diperuntukan untuk alur aplikasi Master
Detail pada device tablet
Navigation Drawer : Activity dengan tampilan sidebar menu.
Scrolling Activity : Activity dengan kemampuan scroll konten di
dalamnya secara vertikal
Setting Activity : Activity yang diperuntukan untuk konfigurasi aplikasi
Tabbed Activity : Activity yang diperuntukkan untuk menampilkan lebih
dari satu tampilan, dapat digeser ke kanan dan ke kiri (swipe) dan dengan menggunakan
komponen ViewPager.
3. Selanjutnya tentukan nama Activity anda, atau nama dapat dibiarkan secara default sesuai
nama aslinya. Untuk nama package tidak perlu diubah, sama halnya dengan lokasi
penyimpanan project dapat dibiarkan secara default.
Untuk bahasa program dalam praktikum ini kita menggunakan bahasa java. Sedangkan
minimum API level dapat kita set agar tingkat compabilitynya tinggi. Kemudian klik
Finish.
4. Project baru telah selesai dibuat dan akan muncul tampilan sebagai berikut. Disebelah
kanan anda adalah workspace dimana activity anda berada dengan nama
MainActivity.java dan layoutnya activity_main.xml.
Struktur Project Android
Struktur project android terdiri dari 4 bagian utama yaitu file manifest, java source code, android
resources, dan gradle.
Manifest
Manifest adalah salah satu berkas yang harus ada dalam sebuah project android yang berisi file
AndroidManifest.xml. Manifest akan memberikan beragam informasi penting kepada sistem
android seperti (komponen dan pengaturan, permission, icon, nomor versi aplikasi). Sistem perlu
mengetahui apa yang akan digunakan oleh aplikasi sebelum dijalankan.
Java
Berisi berkas source code yang kita tulis dalam bahasa java, termasuk kode pengujian JUnit, dan
android test (instrument test).
Res
Folder ini berisi semua resources yang dibutuhkan aplikasi yang meliput gambar, file layout,
string,icon, dan styling. Foler ini memiliki beberapa subfolder sebagai berikut :
a. Drawable. Menyimpan semua gambar dari aplikasi yang dibuat
b. Layout. Setiap activity memiliki paling tidak satu file layout yang menggambarkan
user interface dalam bentuk XML file.
c. Mipmap. Menyimpan icon dari aplikasi ini.
d. Values. Berfungsi untuk menyimpan values seperti string, dimensi, color dalam
bentuk XML file.
Gradle
Secara default gradle merupakan build tools yang digunakan oleh Android Studio. Fungsinya
adalah membantu dalam mengkompilasi dan menjalankan source code aplikasi yang
dikembangkan berdasarkan konfigurasi di Gradle. Gradle juga mendukung manajemen proyek
dalam hal penambahan library diluar framework android.
Hal penting yang harus diperhatikan dalam build.gradle(modul), yang berisi pengaturan versi
android SDK, bahwa versi pada compileSdkVersion seharusnya di set versi yang paling terbaru
dan versi compileSdkVersion harus lebih tinggi atau sama dengan versi pada targetSdkVersion
dan minSdkVersion
minSdkVersion <= targetSdkVersion <= compileSdkVersion
Menjalankan Project Android
Ada 2 cara untuk menjalankan aplikasi yang telah dibuat, yaitu menggunakan emulator atau
menggunakan device/perangkat android sebenarnya.
- Run dengan Emulator melalui Android Virtual Device
Android Virtual Device (AVD) adalah konfigurasi yang mendefinisikan karakteristik ponsel
Android, tablet, Wear OS, Android TV, atau perangkat Automotive OS yang ingin disimulasikan
dalam Android Emulator. Dengan AVD ini, anda bisa mengembangkan dan mencoba aplikasi
Android tanpa harus menggunakan perangkat Android yang sebenarnya. Anda juga bisa
menentukan karakteristik AVD, misalkan menentukan versi Android, jenis dan ukuran layar,
besarnya memori, dan lain sebagainya.
- Run dengan Device.
Pada praktikum ini kali ini, kita akan menggunakan perangkat android sebenarnya untuk
menjalankan aplikasi yang dibuat karena memiliki beberapa kelebihan jika dibandingkan dengan
emulator. Running dengan menggunakan piranti sebenarnya memiliki kelebihan yaitu :
Lebih cepat.
Fitur seperti geo-location, push notification bisa digunakan.
Lebih mudah.
Tampilan langkah-langkah untuk menjalankan proses run atau debugging dengan menggunakan
perangkat sebenarnya pasti akan berbeda dari contoh yang ada tergantung dari tipe/jenis
perangkat yang digunakan. Namun secara garis besar langkahnya akan sama.
1. Pastikan piranti yang akan dipakai sesuai dengan target SDK atau minimal mendukung
versi SDK terendah yang digunakan aplikasi.
2. Buka menu setting pada perangkat anda, dan pilih menu About. Pada halaman menu ini,
coba temukan informasi tentang Build number.
3. Kemudian tekan build number sebanyak 7 kali hingga muncul notifikasi developer mode
enable.
4. Kembali ke menu setting awal dan akan muncul menu baru yaitu Developer Option yang
letaknya dibawah menu about.
5. Pilih menu developer option dan nyalakan opsi USB Debugging mode.
6. Setelah pengaturan selesai, anda dapat menghubungkan perangkat/device dengan laptop
atau komputer yang anda gunakan untuk menjalankan aplikasi.
BAB 2
USER INTERFACE
Aplikasi android dibangun oleh dua komponen utama yaitu layout dan business logic.
Secara umum user interface (UI) aplikasi android berasal dari tampilan/layout file yang
berekstensi xml (main_android.xml). File xml inilah yang menghandle tampilan aplikasi android
yang dapat dilihat oleh pengguna aplikasi.
Layout merupakan tempat dimana kita meletakkan komponen yang dibutuhkan dalam aplikasi
android sehingga tata letak dari komponen tersebut menjadi lebih teratur dan menarik. Android
layout berisikan tata letak komponen dalam bentuk textView,buttonView, imageView dll yang
dibuat dalam bentuk XML file.
Sementara business logic adalah berupa java file yang berfungsi untuk menghandle aspek event-
driven dari aplikasi. Selain java bahasa pemrograman lain yang dapat digunakan untuk business
logic dari aplikasi android adalah Kotlin.
Pada android studio telah disediakan fasilitas yang sangat membantu pada pengembangan
android layout yaitu android layout editor. Layar ini memiliki dua mode yaitu mode design dan
mode text. Mode design memungkinkan kita mendesign User Interface dengan menggunakan
drag and drop dari android view. Sementara pada mode text user harus memasukkan sintaks-
sintaks XML.
Secara umum setiap komponen atau elemen di xml memiliki atribut wajib dan tambahan.
Atribut yang wajib dimiliki setiap elemen di xml adalah atribut android:layout_width dan atribut
android:layout_height. Kemudian nilai dari atribut tersebut dapat berupa “match_parent” dan
“wrap_content”.
“android:layout_width” adalah tagging yang berisi tentang lebar layar dari elemen tersebut.
Sedangkan “android:layout_height” adalah tagging yang berisi tentang tinggi layar dari elemen
tersebut.
<TextView android:text="status" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignTop="@+id/button" android:layout_centerHorizontal="true" android:layout_marginTop="78dp" android:id="@+id/textView2" />
“match_parent” berarti ukuran dimensi sebuah View disesuaikan dengan ukuran layar secara
horizontal jika pada layout_width dan vertikal jika pada layout_height.
“wrap_content” berarti ukuran dimensi sebuah View disesuaikan dengan ukuran konten
didalamnya baik secara horizontal jika pada layout_width dan vertikal jika pada layout_height.
Untuk me-load atau mengakses XML Layout pada aplikasi yang kita jalankan, maka pada file
java diterapkan syntax setContentView(R.layout.namafile_xmlLayout).
android:layout_width="wrap_content"android:layout_height="wrap_content"
android:layout_width="match_parent"android:layout_height="wrap_content"
android:layout_width="wrap_content"android:layout_height="match_parent"
android:layout_width="match_parent"android:layout_height="match_parent"
Tampilan atau layout yang digunakan pada aplikasi android secara umum terdiri dari Linear
layout, Relative layout, dan Table Layout.
LinearLayout
LinearLayout merupakan komponen view bertipe viewgroup yang menjadi parent dari semua
sub komponen view di dalamnya. LinearLayout akan membuat tampilan dengan konsep linear,
dimana elemen atau komponen tampilan akan menempati posisi linear dengan elemen lainnya
baik secara vertikal maupun horizontal. Anda bisa menetapkan arah layout dengan atribut
android:orientation.
Perlu diperhatikan, bahwa dalam satu file xml, hanya ada satu root tagging, tidak diperbolehkan
ada dua root tagging. Artinya semua elemen tagging anak mengakui atribut properties yang
dimiliki oleh root tagging sebagai induknya.
Catatan : root tagging adalah tagging utama atau disebut tagging induk, dimana semua tagging
lainnya berada di dalamnya. Contoh pada linear layaout, sebuah tagging dimulai dengan
<LinearLayout> dan diakhiri dengan </LinearLayout> dan semua tagging lainnya berada dalam
block tagging tersebut
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
vertical
horizontal
<LinearLayout>
<
<
/>
/>
<
/>
</LinearLayout>
2.1 PRAKTIKUM
a. Pada Project Window klik app > res > layout folder, buka file activity_main.xml
b. Switch Design Tab (8) pada file yang terbuka. Lihat gambar berikut.
c. Pada pallete window (2), pilih komponen EditText sebanyak 3 kali dan Button sebanyak
1 kali, kemudian drag and drop kedua komponen tersebut pada layar design mode hingga
menghasilkan tampilan seperti gambar dibawah ini.
Block root tagging
d. Klik Text tab untuk masuk ke kode view pada layout, kemudian lengkapi halaman
tersebut
e.
f.
g.
h.
i.
j.
k.
l.
m.
n.
o.
p.
q.
r. dengan sintaks berikut ini.
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent">
<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPersonName" android:text="To" android:ems="10" android:id="@+id/editText" />
<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPersonName" android:text="Subject" android:ems="10" android:id="@+id/editText2" />
<EditText android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:inputType="textPersonName" android:text="Message" android:gravity="top" android:ems="10" android:id="@+id/editText3" />
<Button android:text="Button" android:layout_width="100dp" android:layout_height="wrap_content" android:layout_gravity="right" android:id="@+id/button" /></LinearLayout>
RelativeLayout
RelativeLayout membuat posisi elemen didalamnya tergantung elemen lainnya. Tampilan
RelativeLayout memungkinkan kita membuat elemen yang satu relative dengan posisi elemen
yang lain tanpa aturan sesuai orientasi (horizontal atau vertical) seperti yang diterapkan pada
Linear Layout. Ada 4 dasar relative layout yaitu :
Di bawah (below)
Di atas (above)
Samping kiri (toLeftOf)
Samping kanan (toRightOf)
alignTop/alignBottom
alignParentTop/alignParentBottom
2.2 PRAKTIKUM
a. Pada Project Window klik app > res > layout folder, klik kanan pada layout folder lalu
pilih > new layout resource file. Isi nama file name “activity_main2”, lalu klik OK.
b. Switch Design Tab (8) pada file yang terbuka.
c. Lakukan hal yang sama untuk menambahkan komponen pada layar design hingga
menampilkan tampilan sebagai berikut
d. Klik Text tab untuk masuk ke kode view pada layout, kemudian lengkapi halaman
tersebut dengan sintaks berikut ini.
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="16dp" android:paddingRight="16dp">
<EditText android:layout_width="0dp" android:layout_height="wrap_content" android:inputType="textPersonName" android:text="To" android:layout_below="@id/editText3" android:id="@+id/editText4" android:layout_alignParentLeft="true" android:layout_toLeftOf="@+id/editText5" />
<Button android:text="Button" android:layout_width="100dp" android:layout_height="wrap_content" android:layout_below="@id/editText5" android:layout_alignParentRight="true" android:id="@+id/button2" />
<EditText android:layout_width="96dp" android:layout_height="wrap_content" android:inputType="textPersonName" android:text="Subject" android:id="@+id/editText5" android:layout_below="@+id/editText3" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" />
<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPersonName" android:text="Message" android:id="@+id/editText3" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /></RelativeLayout>
Table Layout
Layout yang digunakan untuk membangun user interface (tampilan antar muka) aplikasi android
dengan berdasarkan Baris dan Kolom.
2.3 PRAKTIKUM
a. Pada Project Window klik app > res > layout folder, klik kanan pada layout folder lalu
pilih > new layout resource file. Isi nama file name “activity_main3”, lalu klik OK.
b. Switch Design Tab (8) pada file yang terbuka.
c. Pada pallete window (2), pilih komponen Textview sebanyak 3 kali, EditText sebanyak 2
kali, dan Button sebanyak 1 kali, kemudian drag and drop ketiga komponen tersebut pada
layar design mode hingga menghasilkan tampilan seperti gambar dibawah ini.
d. Klik Text tab untuk masuk ke kode view pada layout, kemudian lengkapi halaman tersebut dengan sintaks berikut ini.
<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent">
<TableRow android:paddingTop="10px" android:gravity="center" android:layout_marginTop="20px">
<TextView android:text="LOGIN" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView3" android:layout_gravity="center" android:layout_span="2" android:textColor="#890000" android:textSize="25sp" android:textStyle="bold" /> </TableRow>
<TableRow android:layout_width="match_parent" android:layout_height="match_parent">
<TextView android:text="Username" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView4" android:textSize="20sp" android:layout_marginLeft="20dip"/> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType="textPersonName" android:text="" android:ems="10" android:id="@+id/editText6" />
</TableRow>
<TableRow android:layout_width="match_parent" android:layout_height="match_parent">
<TextView android:text="Password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView5" android:textSize="20sp" android:layout_marginLeft="20dip"/> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType="textPersonName" android:text="" android:ems="10" android:id="@+id/editText7" />
</TableRow>
TUGAS!
1. Buatlah design layout dari company profile berikut. Anda bisa menyesuaikan dan memilih tampilan layout yang telah dipelajari sebelumnya!
<TableRow android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:layout_marginTop="20dip"> <Button android:text="Submit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button3" />
</TableRow>
</TableLayout>
BAB 3
EVENT HANDLING
Seperti halnya bahasa Object Oriented Programming lainnya, setiap object selalu berkaitan
dengan atributnya. Salah satu atribut yang penting dalam sebuah object adalah ‘event’. Event
merupakan sekumpulan prosedur yang akan dilakukan oleh objek yang dipicu oleh aksi oleh
user. Kita telah mengenal beberapa objek atau komponen dalam android studio sebagai view
yaitu seperti button,textview, combo box, checkbox, dll.
Pada objek ‘Button’, event yang menjadi default adalah onClick, yaitu event yang ditrigger jika
user menekan tombol atau button tersebut. Pada android studio yang menggunakan bahasa java,
ada 2 macam penanganan terhadap event onClick ini.
1. Melalui Event Listener
Beberapa method yang ada pada event listener diantaranya adalah :
onClick( ); dipanggil ketika user menyentuh item atau fokus pada item tertentu.
onLongClick( ); dipanggil ketika user menyentuh dan menahan item saat dimode sentuh.
onKey( ); dipanggil ketika user fokus pada item dan menekan atau melepas key pada
perangkat keras.
onTouch( ); dipanggil ketika user melakukan satu aksi meliputi tekan, lepas atau
pergerakan lainnya pada layar
Dengan menggunakan method ‘setOnClickListener’ pada sebuah object button, maka event
onclick sudah dapat didefinisikan berikut dengan event handlernya.
Pendefinisan event listener diatas sebaiknya dideklarasikan di event ‘onCreate’ milik Activity
utama aplikasi agar di-load saat aplikasi mulai berjalan.
2. Dengan mendefinisikan property onClick dari object Button tersebut.
Jika metode ini digunakan, maka anda harus mendefinisikan property onClick ini di file
layout yang berekstensi .xml (activity_main.xml) di folder /res/layout.
Button button1=(Button) findViewById (R.id.button1); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { TextView teks = (TextView) findViewById (R.id.textView1); teks.setText("event ini dipicu dr event listener"); } });
android:onClick=”propertionclick”.
Selanjutnya definisikan event handler untuk property onClick tersebut di program utama
dalam file java di folder /src (MainActivity.java) sebagai berikut:
3.1 PRAKTIKUM
a. Buka project layout pertama berisi tampilan pengiriman email yang sudah anda buat pada
praktikum sebelumnya.
b. Pada Project Window klik app > java > namespace pertama, lalu pilih >
MainActivity.java file. kemudian lengkapi file java tersebut dengan sintaks berikut ini
menggunakan cara yang pertama.
Sesuaikan nama id pada sintaks berikut dengan nama id komponen yang ada pada project
kalian.
public void propertionclick (View v) { TextView teks=(TextView) findViewById (R.id.textView1); teks.setText("event ini dipicu dr properti onClick"); }
public class MainActivity extends AppCompatActivity {
Button kirim; EditText pesan,kepada,subjek;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
kirim = (Button) findViewById(R.id.button2); pesan = (EditText) findViewById(R.id.editText3); kepada = (EditText) findViewById(R.id.editText4); subjek = (EditText) findViewById(R.id.editText5);
kirim.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {
String psn = pesan.getText().toString(); String kpd = kepada.getText().toString(); String sbj = subjek.getText().toString();
if ((TextUtils.isEmpty(psn)) || (TextUtils.isEmpty(kpd)) || (TextUtils.isEmpty(sbj))){
Toast.makeText(MainActivity.this, "Tidak boleh kosong", Toast.LENGTH_SHORT).show(); } else{
Toast.makeText(MainActivity.this,"Berhasil diproses", Toast.LENGTH_SHORT).show(); } } }); }}
c. Coba terapkan cara penanganan event handling yang ke-2 pada project tersebut.
3.2 PRAKTIKUM
a. Pada Project Window klik app > res > layout folder, buka file activity_main.xml
b. Switch Design Tab (8) pada file yang terbuka.
c. Tambahkan komponen checkbox pada layout sebanyak 2 kali. Kemudian beri label
“penting” pada checkbox pertama, dan label “sangat penting” pada checkbox kedua.
d. Pada Project Window klik app > java > namespace pertama, lalu pilih >
MainActivity.java file. kemudian lengkapi file java tersebut dengan sintaks berikut
public class MainActivity extends AppCompatActivity {
Button kirim; EditText pesan; EditText kepada; EditText subjek; CheckBox ptg, sgtptg;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
kirim = (Button) findViewById(R.id.button2); pesan = (EditText) findViewById(R.id.editText3); kepada = (EditText) findViewById(R.id.editText4); subjek = (EditText) findViewById(R.id.editText5); ptg = (CheckBox) findViewById(R.id.checkBox); sgtptg = (CheckBox) findViewById(R.id.checkBox2);
kirim.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {
String psn = pesan.getText().toString(); String kpd = kepada.getText().toString(); String sbj = subjek.getText().toString(); if ((TextUtils.isEmpty(psn)) || (TextUtils.isEmpty(kpd)) || (TextUtils.isEmpty(sbj))){
Toast.makeText(MainActivity.this, "Tidak boleh kosong", Toast.LENGTH_SHORT).show(); } else if(ptg.isChecked()) {
Toast.makeText(MainActivity.this, "Berhasil pesan ini penting", Toast.LENGTH_SHORT).show();
}
TUGAS
1. Buatlah project baru pada android studio. Masukkan komponen combobox sebanyak dua kali,
komponen button dan komponen textview sebanyak satu kali. Berikan label nama kota pada
komponen combobox.
2. Terapkan event handling pada project anda untuk menampilkan pilihan kota pada textview
dengan cara pertama dan cara kedua!
else if(sgtptg.isChecked()) { Toast.makeText(MainActivity.this, "Berhasil pesan ini sangat penting", Toast.LENGTH_SHORT).show(); } else{
Toast.makeText(MainActivity.this, "Pilihan salah", Toast.LENGTH_SHORT).show(); }
} });
}}
BAB 4
INTENT
Intent adalah mekanisme untuk melakukan sebuah aksi dan komunikasi antar komponen aplikasi
pada platform Android. Atau dapat juga dijelaskan sebagai sebuah object yang memungkinkan
kita untuk dapat berkomunikasi antara Activity satu dengan Activity lainnya. Ada beberapa
penggunaan umum Intent dalam aplikasi Android yaitu :
1. Memindahkan satu Activity ke Activity lain dengan atau tidak membawa data.
2. Menjalankan background Service, misal melakukan sinkronisasi ke server dan
menjalankan proses berulang (Periodic / Scheduler Task).
Intent memiliki dua bentuk, yaitu :
1. Explicit Intent, adalah tipe intent yang digunakan untuk menjalankan komponen aplikasi
dengan tahu detail dari nama kelas yang dituju misal: com.praktik.activity.DetailActivity.
Umumnya intent ini digunakan untuk mengaktifkan komponen pada aplikasi yang sama.
2. Implicit Intent, adalah tipe intent yang tidak memerlukan detail nama kelas yang ingin
diaktifkan. Ini memungkinkan komponen dari aplikasi lain bisa merespon request intent yang
dijalankan. Penggunaan tipe intent ini umumnya diperuntukkan guna menjalankan fitur / fungsi
dari komponen aplikasi lain. Contohnya, ketika kita membutuhkan aplikasi kita untuk
mengambil foto, daripada kita harus membuat sendiri fungsi kamera lebih baik kita menyerahkan
proses tersebut pada aplikasi kamera bawaan dari device atau aplikasi kamera lain yang telah
terinstal sebelumnya pada device. Atau jika kita membutuhkan fungsi berbagi konten, kita dapat
memanfaatkan intent untuk menampilkan mana saja aplikasi yang bisa menawarkan fungsi
berbagi (share) konten.
Secara umum, perintah yang digunakan untuk menjalankan fungsi “intent” adalah sebagai
berikut:
Intent pindah = new Intent(MainActivity.this, Main2Activity.class);
startActivity(pindah);
PRAKTIKUM dan TUGAS
1. Buatlah project baru pada Android Studio, dengan memilih Start a new Android Studio
Project seperti Gambar berikut.
2. Pilih template Empty Activity pada project anda, seperti Gambar berikut:
3. Isian identitas diabaikan sesuai penamaan identitas secara default, kemudan klik Finish:
4. Anda akan diantarkan pada Window IDE Android Studio, seperti Gambar berikut.
5. Praktikan membuat Activity baru dengan cara pilih Tab Project (pada window sebelah kiri) >> letakkan kursor pada nama package yang telah dibuat >> klik kanan >> pilih New >> pilih Activity >> pilih Empty Activity, seperti Gambar berikut
1
2
3
4
5
6. Beri nama activity pada jendela konfigurasi Activity ke dua, seperti gambar berikut dan klik Finish.
7. Secara otomatis layout kedua akan terbentuk dengan nama activity_main2.
8. Lakukan hal yang sama untuk membuat Activity ke-3 dengan penamaan secara default. Maka anda sekarang memiliki 3 file layout (activity_main.xml) dan 3 file java (MainActivity.java)
9. Buka file layout yang pertama dan atur tampilan layout seperti gambar berikut.
10. Buka file layout yang ke-2 dan atur tampilan layout seperti gambar berikut.
11. Buka file layout yang ke-3 dan atur tampilan layout seperti gambar berikut.
12. Buka file MainActivity pertama dan isikan kode berikut.
13. Buka file MainActivity ke-2 dan isikan kode berikut.
public class MainActivity extends AppCompatActivity {
Button detail;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
detail = (Button) findViewById(R.id.button2);
detail.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {
Intent pindah = new Intent(MainActivity.this, Main2Activity.class);
startActivity(pindah);
} });
}}
14. Buka file MainActivity ke-3 dan isikan kode berikut.
public class Main2Activity extends AppCompatActivity {
Button kembali; Button edit; TextView keterangan, web;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2);
kembali = (Button) findViewById(R.id.button2); edit = (Button) findViewById(R.id.button3); keterangan = (TextView) findViewById(R.id.textView2); web = (TextView) findViewById(R.id.textView8);
kembali.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {
Intent balek = new Intent(Main2Activity.this, MainActivity.class);
startActivity(balek); } });
web.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent webb = new Intent(Intent.ACTION_VIEW, Uri.parse(web.getText().toString())); startActivity(webb); } });
edit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent editt = new Intent(Main2Activity.this, Main3Activity.class);
editt.putExtra("KETT2", keterangan.getText()); startActivityForResult(editt,2); } }); }
protected void onActivityResult(int requestCode, int resultCode,Intent data){
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==2){
String kettr = data.getStringExtra("KETT"); keterangan.setText(kettr); } }}
15. Jalankan / Run Project Anda!
public class Main3Activity extends AppCompatActivity {
Button simpan; EditText ktrnya;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3);
simpan = (Button) findViewById(R.id.button4); ktrnya = (EditText) findViewById(R.id.editText);
String ket2 = getIntent().getExtras().getString("KETT2");
ktrnya.setText(ket2);
simpan.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {
String kett2 = ktrnya.getText().toString(); Intent lanjut = new Intent(); lanjut.putExtra("KETT",kett2); setResult(2,lanjut); finish(); } }); }}