Buku Ajar Mobile Internet Android Untuk Siswa

download Buku Ajar Mobile Internet Android Untuk Siswa

of 82

description

Buku ajar Matakuliah Mobile internet application

Transcript of Buku Ajar Mobile Internet Android Untuk Siswa

  • ANDROID FOR MOBILE INTERNET APLICATION

    SEMESTER VII(2 SKS/ 3 Jam/Minggu)

    Penyusun:Drs. Yoyok Heru P.I., MTNIP. 196807081994031002

    JURUSAN TEKNIK ELEKTROPROGRAM STUDI TEKNIK TELEKOMUNIKASI

    POLITEKNIK NEGERI MALANG2013

  • YHPI -> hal : 1

    KATA PENGANTAR

    Segala puji dan syukur disampaikan kepada Allah SWT, atas limpahan rahmat, karuniadan cahaya petunjuk-Nya yang tiada tara, sehingga buku ANDROID FOR MOBILEINTERNET APLICATION untuk matakuliah Mobile Internet Aplication di Program StudiJaringan Teknik Digital Telekomunikasi POLINEMA. Buku ini sebenarnya hanya dipakai untukkalangan internal POLINEMA, namun apabila ada dari saudara kita di luar POLINEMA yangberminat menggunakan buku ini, dengan senang hati kami persilahkan. Sholawat dan salamsemoga tetap terkunjuk pada junjungan Nabi Agung Muhammad SAW, keluarga, sahabat,thabiit, dan thabiin, dengan ghirroh perjuangan yang tinggi dan keikhlasan yang mendalamdalam memberantas kebodohan dan menegakkan kebenaran di muka bumi ini.

    Buku ajar ini dimaksudkan untuk membantu dan memfasilitasi peserta didik dalammempelajari mobile internet khususnya menggunakan android. Salah satu faktor yangmenentukan keberhasilan sebuah pembelajaran di kelas adalah buku ajar oleh karena itukeberadaan dan pemberdayaan buku ini menjadi penting dan merupakan salah satu rujukandalam menempuh matakuliah pemrograman computer. Sistem yang ditekankan dalam buku inilebih ditekankan pada proses latihan dasar dalam membuat program, dengan tujuanmembangkitkan daya nalar dan logika Mahasiswa.

    Penulis berharap semoga buku ini dapat bermanfaat bagi mahasiswa program studi T.Telekomunikasi yang menempuh matakuliah mobile internet aplication maupun semuapembaca buku ini. Terimaksih bagi siapa saja yang sudi memberikan saran dan kritik ataspenulisan buku ini, karena kami yakin bahwa masih banyak kekurangan alam penuisan bukuini.

    Malang, Nopember 2013

    Penulis

  • YHPI -> hal : 2

    DAFTAR ISI

    LEMBAR PENGESAHANKATA PENGANTAR 1DAFTAR ISI 2DAFTAR GAMBAR 4PENDAHULUAN 5BAB I ARSITEKTUR DAN STRUKTUR ANDROID 17

    I.1 Tujuan 17I.2 Teori Dasar 17I.2.1 Arsitektur Android 17I.2.2 Perangkat Lunak Yang Diperlukan 20I.3 Sekilas Instalasi Android 20

    BAB II MEMBUAT SEBUAH PROJECT 24II.1. Tujuan 24II.2. Teori Dasar 24II.2.1 WorkBench atau Lembar Kerja 24II.3 Latihan Membuat Aplikasi 26II.4. SOAL (UJI KEMAMPUAN) 31

    BAB III PENGGUNAAN BUTTON 32III.1. Tujuan 32III.2. Teori Dasar 32III.2.1 Perbedaan OnClickListener dengan Onclick Biasa pada Button 32III.2.2 OnClickListener() 32III.3. Latihan Program 33III.4. SOAL (UJI KEMAMPUAN), 36

    BAB IV CHECK BOX DAN RADIO BUTTON 37IV.1. Tujuan 37IV.2. Teori Dasar 37IV.2.1 CHECK BOX 37IV.2.2 Radio Group dan Button 38IV.3. LATIHAN PROGRAM 39IV.4. SOAL (UJI KEMAMPUAN) 46

    BAB V SPINER 47V.1. Tujuan 47V.2. Teori Dasar 47V.3. LATIHAN PROGRAM 48V.4. SOAL (UJI KEMAMPUAN) 51

    BAB VI BEKERJA DENGAN BEBERAPA LAYAR 52VI.1 Tujuan 52VI.2 Teori Dasar 52VI.3. LATIHAN PROGRAM 53VI.4. SOAL (UJI KEMAMPUAN) 57

    BAB VII GRAFIK KLASIK DI ANDROID 58VII.1. Tujuan 58VII.2. Teori Dasar 58VII.2.1 OPEN GL ES 58VII.2.2 TITIK, GARIS, DAN POLYGON 60VII.3. LATIHAN PROGRAM 61VII.3.1 Implementasi grafik pada bentuk klasik 61VII.4. SOAL (UJI KEMAMPUAN) 63

    BAB VIII IMAGE ATAU CITRA 64

  • YHPI -> hal : 3

    VIII.1. Tujuan 64VIII.2. Teori Dasar Fungsi 64VIII.2.1 Image 64VIII.2.2 Memanggil Image 64VIII.2.3 Menampilkan Image 65VIII.3. LATIHAN PROGRAM 65VIII.3.1 Menampilkan Gambar antena 65VIII.3.2 Latihan Pemrosesan Citra 67VIII.4. SOAL (UJI KEMAMPUAN) 72

    BAB IX DATABASE SEDERHANA 73IX.1. Tujuan 73IX.2. Teori Dasar 73IX.3. LATIHAN PROGRAM 74IX.4. SOAL (UJI KEMAMPUAN) 78

    BAB X PROJECT DAN Presentasi 79DAFTAR PUSTAKA 81

  • YHPI -> hal : 4

    DAFTAR GAMBAR

    Gambar 1. Wireless IP 7Gambar 2. Arsitektur Jaringan semua IP 8Gambar 3. Hirarki Dari Jaringan Heterogen Yang Terintegrasi 8Gambar 1.1 Keterkaitan antara Industi, Developer, dan User 17Gambar 1.2. Integrasi, Extended, dan Replace 18Gambar 1.3 Android Layers 18Gambar 1.4. bahasa program yang menangani per Layer 20Gambar 1.5. Konfigurasi Workspace 21Gambar 1.6. Tampilan Awal Eclipse 21Gambar 1.7. Workbench, dari Eclipse 22Gambar 1.8. Kotak Dialog Tempat Menginstall Plug-in Pada Eclipse 22Gambar 1.9. Plug-in Repository 23Gambar 2.0 WorkBench atau Lembar kerja 24Gambar 2.1. Kotak Dialog Nama Project, Aplikasi, Paket,... 26Gambar 2.2. Seting Icon Aplikasi 27Gambar 2.3. Jendela Pengaturan Aktivitas 27Gambar 2.4 Dialog Activity 28Gambar 2.5. Lembar Kerja 29Gambar 2.6. Latihan Membuat Desain 31Gambar 3.1. GraphicLayout Activity Button1 33Gambar 4.1. elemen CheckBox 37Gambar 4.2. GraphicLayout Contoh Penggunaan CheckBox 39Gambar 4.3. Desain Latihan Radio Button 42Gambar 5.1. Tampilan Spinner 47Gambar 5.2. Desain Penggunaan Komponen Spinner 48Gambar 6.1. Membuat Class Baru 52Gambar 6.2 Membuat Aplikasi 53Gambar 6.3. Nama Aktivitas 53Gambar 6.4. Desain Layar Utama 54Gambar 6.5 Membuat Screen baru layar2.xml 54Gambar 6.6. Desain screen layar2 55Gambar 6.7. Menambah Script pada AndroidManifest 55Gambar 6.8. Membuat Class Baru Layar1 56Gambar 8.1 Desain Panggil Gambar 65Gambar 8.2. Desain Aplikasi project Gambar2 67

  • YHPI -> hal : 5

    PENDAHULUAN

    Konsep Teknologi Mobile dan Mobile InternetAda dua istilah yang mirip tetapi mempunyai konsep perbedaan yang mendasar yaitu

    The Internet on Mobile dan The Mobile Internet. Pada kedua istilah ini mempunyaikesamaan requirement, yaitu sama-sama menggunakan media wireless. The Internet onMobile di artikan bahwa semua bentuk yang berkaitan dengan internet seperti program-program aplikasi under web, browsing, e-mail, dan yang lainnya berada pada mobile device(mobile phone, blackbery, tablet,), dan dapat diakses melalui mobile device. The MobileInternet di artikan bahwa internet bisa diakses secara mobile, tidak terbatas pada mobiledevice saja, sebagai contoh dekstop atau laptop yang menggunakan broadband modem(Indosat, XL, Telkom cell,) dimana aksesnya dapat dilakukan dengan cara mobile.

    Buku tentang The Mobile Internet menyebutkan bahwa mobile internet mempunyaipotensi perkembangan yang sangat pesat, hal ini dibuktikan dalam sejarah pemakian mobileinternet di Afrika, Amerika, Australia, dan Asia. Akhir-akhir ini masyarakat di Afrika lebih banyakmempunyai mobile phones ketimbang komputer atau sambungan internet yang menggunakankabel, akhirnya lebih banyak sambungan internet yang diakses melalui mobile phone dari padasambungan internet kabel. ITU melaporkan bahwa selama kuartal ke tiga (tiga bulan terakhir)tahun 2009 jumlah rakyat Afrika yang mengakses internet melalui sambungan mobile phonelebih banyak ketimbang jumlah masyarakat yang mengakses internet melalui sambungankabel.

    Ada sebuah istilah yang sangat terkenal dan sering digunakan yaitu MobileComputing, istilah ini menggambarkan penggunaan aplikasi pada piranti yang berukuran kecil,portable, serta dukungan komunikasi dengan nirkabel. Dalam hal ini piranti yang termasukmobile computing adalah: laptop dengan sambungan internet nirkabel, mobile phone, tablet,wearable computer, PDA dengan bloetooth atau IRDA.Tabel 1 di bawah ini menunjukkan perkembangan teknologi mobile phone:

  • YHPI -> hal : 6

    No. Generasi Standar Kemampuan

    1 0GPush to Talk, Mobile TelephoneSystem, Improved Mobile TelephoneSystem, Advanced Mobile TelephoneSystem (900 Mhz, In japan)

    2 1GNordic Mobile Telephone (1rst cellphone in jerman), Advanced MobilePhone System (analog mobile phone),Analog, Band frekuensi 800 MHz

    radio sinyal bersifat analog,Pada frekuensi 800 Mhz & 400Mhz, Dimulai dari Chicago,dikomersilkan 1983

    3 2G

    Digital System, Global System forMobile communications (GSM:originally from Groupe Spcial Mobile,The most standard cell phone, SMS),Integrated Digital Enhanced Network(iDEN): (Developed by Motorola, UsesTime Division Multiple Access), DigitalAMPS, code division multiple access(CDMAone), Menggunakan frek: (800,900, 1800, 1900 MHz)

    radio sinyal bersifat digital,dimulai dari maret 1993,Menggunakan TDM (TimeDivision Multiplexing), Frekuensi800 1900 Mhz, DikenalnyaGSM dan CDMA

    4 2.5GGeneral Packet Radio System, 56 114 Kbps, for :(SMS, MMS, WAP,Internet)

    digital high speed

    5 2.75GCDMA2000, Enhanced Data rates forGSM Evolution (EDGE) or EnhancedGPRS (EGPRS)

    digital high speed

    6 3GWideband Code Division MultipleAccess (WCDMA), Universal MobileTelecommunication System, CDMA2000, WiMAX (WorldwideInteroperability for Microwave Access)

    digital high speed

    7 3.5GHSDPA (High-Speed Downlink PacketAccess) : (1.8, 3.6, 7.2 and 14.4Mbit/s)

    8 4G Ultra Mobile Broadband (UMB) IPv6, voice, digital high speed

    Konsep Wireless IPKonsep dasar dari wireless IP adalah pertemuan yang kuat dari layer interworking

    jaringan dan konektivitas tanpa batas dengan atau tanpa mobilitas dalam sebuah jaringanyang heterogen dengan ketentuan konektivitas tanpa batas melalui subdomain jaringan.Kombinasi yang terbaik antara teknologi wireless dan IP telah membawa era teknologi wirelessIP. Wireless IP akan diperoleh cost-effective, kualitas yang bagus, layanan multimedia berbasisIP, dan voice melalui IP. Gambar (1) menunjukkan jaringan wireless IP.

  • YHPI -> hal : 7

    Gambar 1. Wireless IPOperator dan vendor telah menyadari bahwa ada keuntungan ekonomi yang besar denganmemultiplexing semua jenis traffic melalui jaringan packet switched bukan melalui jaringancircuit switched, hal ini di dukung oleh core network dan radio access network dunia, denganmembangun infrastruktur yang didasarkan pada standar generasi 3G.Arsitektur baru akan memerlukan jaringan cerdas yang didasarkan pada sebuah paradigmabahwa setiap user menggunakan mobile internet, sehingga jaringan harus mampu membawasemua jenis traffic, akhirnya jaringan sangat membutuhkan QoS yang sangat bagus, selainkemampuan layanan yang handal.

    IP telah muncul sebagai pemersatu protokol layer jaringan yang bekerja melalui layerlink dan layer fisik yang heterogen. Upaya yang dilakukan untuk memastikan bahwa QoS,signaling, routing, manajemen sumber daya, mobilitas, dan fungsi keamanan dan fitur yangdisediakan pada layer IP dan di atas dan dipetakan sesuai dengan lapisan bawah sehinggamenjadi konsisten dan bermakna end-to-end. Gambar (2) menunjukkan arsitektur semua IPdimana aksesnya melalui sebuah jenis teknologi nirkabel yang cerdas yang berada padaaccess dan backbone utama yang menyediakan paket transport. Fungsi-fungsi khusus,feature-feature, dan kemampuan dari jaringan dan layanan akan didukung oleh server-serverkhusus yang potensial.

  • YHPI -> hal : 8

    Gambar 2. Arsitektur Jaringan semua IPKebanyakan akses jaringan wireless saat ini adalah point-to-point, jaringan inti dan

    backbone kebanyakan adalah bertipe mesh. Tipe point-to-point mempunyai kerugiankonektivitas tidak handal, dan distribusi traffic yang tidak balance yang menghasilkanpemanfaatan yang rendah dari sumber-sumber jaringan. Sangat jelas bahwa topologi meshuntuk jangka panjang menjadi disukai, dan batas-batas buatan akses jaringan radio (RAN) danjaringan inti (CN) akan dihilangkan, gambar (3) menunjukkan hirarki dari jaringan heterogenyang terintegrasi,

    Gambar 3. Hirarki Dari Jaringan Heterogen Yang Terintegrasi

  • YHPI -> hal : 9

    Distribusi jaringan flat saat ini exist saat ini pada jaringan backbone, yang akan di teruskanpada saluran koneksi pemakai melalui wireless. Peningkatan akses jaringan heterogen akanterus bertambah, lapisan IP yang akan mengintegrasikan layer secara bersama akanmembutuhkan kesepakatan dengan topologi-topologi akses yang berbeda, dari topolodi meshke point-to-point, dari bandwith dedicated ke shared bandwith, dan dari servis layanan yangterbaik yang menggaransi QoS nya melalui teknologi link layer yang berbeda.Operating System

    Secara umum pengertian dari sistem operasi adalah suatu interface berupa softwareyang menjadi perantara antara user dan device yang digunakan untuk mengontrol/memanagedevice maupun aplikasi di dalamnya. Bukan hanya komputer yang mempunyai system operasi,mobile device (ponsel, tablet, BB,) juga punya sistem operasi. Seperti halnya sistem operasipada komputer, sistem operasi mobile adalah software utama yang melakukan menejemendan kontrol terhadap hardware secara langsung serta manajemen dan mengotrol softwareaplikasi sehingga aplikasi tersebut dapat bekerja. Sehingga suatu system operasi mobile(mobile operating system) akan bertanggung jawab dalam mengoperasikan berbagai fungsidan fitur yang tersedia dalam perangkat mobile tersebut seperti, schedulling task, keyboard,WAP, email, text message, sinkronisasi dengan aplikasi dan perangkat lain, memutar musik,camera, dan mengontrol fitur-fitur lainnya, dibawah ini beberapa contoh sistem operasi padamobile phone:

    1. Sistem Operasi Windows Mobile.Windows Mobile adalah sistem operasi seluler yang ditawarkan oleh Microsoft, OSwindows mobile biasanya hanya digunakan pada ponsel jenis PDA .Versi terbaru yangsedang dikembangkan Microsoft adalah Photon, yang didasarkan pada WindowsEmbedded CE 6.0 dan diharapkan dapat mengintegrasikan versi smartphone danPocket PC. Keunggulan windows mobile adalah :- Mempunyai kompatibilitas yang tinggi terhadap aplikasi dan fiture yang berbasis

    windows, termasuk dengan jenis komputer yang beroperating sistem windows.- Windows Mobile menawarkan berbagai fitur unggulan seperti Mobile Blog, GPS,

    menonton televisi, serta Mobile Database.

  • YHPI -> hal : 10

    Kelemahan Windows Mobile adalah bersifat tertutup sehingga sulit bagi softwaredeveloper independen untuk menciptakan aplikasi-aplikasi baru.

    2. Sistem Operasi Palm.Palm adalah pesaing utama dari sistem operasi Windows Mobile di awal tahun 2000-anlalu. Palm juga merupakan pelopor sistem operasi yang handal digunakan oleh sebuahponsel pintar. Keunggulan OS Palm adalah tidak memerlukan banyak memory untukdapat menjalankannya dengan baik. Dengan kapasitas sebesar 16 MB misalnya sudahcukup untuk menyuntikkan berbagai fungsi aplikasi tambahan

    3. Sistem Operasi Symbian.Symbian adalah sistem operasi yang dikembangkan oleh Symbian Ltd. yang dirancanguntuk peralatan bergerak mobile. OS Symbian yang didirikan sejak tahun 1998 dulunyadigunakan oleh Nokia dan hingga saat ini telah digunakan oleh banyak VendorSmartphone. Symbian telah mengalami perkembangan yg sangat cepat dan hinggasekarang tetap banyak digunakan sebagai OS kategori Smartphone. Symbianmerupakan perusahaan independen hasil kolaborasi vendor2 raksasa pd masa ituyakni Ericsson, Nokia, Motorola, dan Psion. Nokia sebagai pemegang saham terbesardengan angka 47,9 persen.

    4. Sistem Operasi Java.OS Java biasanya diterapkan pada jenis yang telah polyponik namun kelas monoponikpun juga telah tersedia. Biasanya terdapat pada ponsel tipe lama, namun tipe barusekalipun saat ini biasanya juga telah mendukung untuk fitur ini. Harga untuk ponseljenis ini lebih terjangkau. Java sebagai middleware yang diperkenalkan pada ponsel,memberikan jawaban yang cukup memuaskan. Dengan adanya Java, seseorang dapatmembuat aplikasi bermodalkan komputer dan sebuah aplikasi notepad. Sayangnya,kemampuan Java sebagai middleware mengakibatkan terbatasnya feature hardwareponsel yang dapat diakses oleh sebuah aplikasi berbasis Java.

    5. Sistem Operasi Android.Android adalah sistem operasi terkini sebuah ponsel besutan perusahaan raksasaGoogle. Sistem operasi ini sudah mulai digunakan oleh vendor terkemuka dibidangPDA berlayar sentuh yaitu HTC diikuti oleh vendor lokal IMO yang barangkali inginmencoba sedikit peruntungannya. Mengandalkan berbagai fitur milik Google yang saatini menjadi ancaman bagi perusahaan lainnya sekelas Microsoft dan Yahoo. Androidberusaha mencuri perhatian melalui Maps, Search hingga browsernya yang diklaimjauh lebih ringkas dan cepat. Perkembangan OS android sangat pesat, karena sistemoperasi ini bersifat open sehingga para developer mudah untuk otak-atik danmengimplentasikan hasil eksperimennya.

    6. Sistem Operasi Linux

  • YHPI -> hal : 11

    Linux adalah salah satu sistem operasi yang kerap digunakan oleh vendor Motorola.Baik dalam seri ROKR maupun seri PDA layar sentuh mereka. Namun keterbatasandukungan fungsi aplikasi tambahan dan user interface yang kurang familiarmenyebabkan sistem operasi ini timbul tenggelam dalam dunia ponsel.OS Linux telah memasuki dunia OS sejak lama tapi digunakan untuk Smartphonehanya sejak tahun 2003, hingga kini Smartphone yang menggunakan OS Linux danmenjadi terkenal hanya dengan brand Motorola saja. Tapi sebenarnya ada banyakVendor ponsel yang sedang mengembangkan ponsel atau PDA dan Smartphoneberbasis Linux, karena OS Linux untuk smartphone masih baru maka sebenarnyabelum banyak pihak ketiga yang ikut mengembangkan programnya. Hal ini sedikitmembuat kata Smartphone kurang cocok untuk ponsel yang memiliki dukunganataupun berbasisLinux.

    7. Sistem Operasi BlackBerry.Perusahan telekomunikasi asal Canada, Reserch in Motion (RIM), mengembangkanperangkat komunikasi bergerak. Awalnya produk mereka adalah memproduksi layananpenyeranta (Pager) dua arah, namun dalam perkembangannya perusahaan inimembuat terobosan baru dengan menciptakan pearangkat Blackberry yang terkenaldengan layanan push-email, dan sekarang blackberry berubah menjadi smartphoneyang memiliki berbagai fungsi seperti, GPS, internet mobile, serta dapat mengaksesWi-FI. RIM sebagai developer untuk sistem operasi blackberry telah mengeluarkansistem operasi baru dengan salah satu aplikasi yang tertanam didalamnya adalahDocument to Go versi trial buatan DataViz, suatu aplikasi yang memiliki fungsiofficeseperti Word to Go, Presenter to Go yang otomatis memiliki Sheet to Go sebagaiaplikasi Spreadsheet.

    8. Sistem Operasi Maemo.Pernah dengar OS Maemo? Maemo adalah sebuah sistem operasi terbaru dari sebuahvendor besar Nokia yang digunakan oleh device terbatas Internet Tablet yaitu seriN770, N800, N810 dan N900. Sistem operasi ini lebih mengkhusus diperuntukkan bagimereka yang lebih mengutamakan aktifitas internetan dan browsing ketimbang voiceatau komunikasi. Tak heran dalam setiap rilis devicenya, Nokia selalu mengutamakanresolusi layar yang besar dan lebar lengkap dengan layar sentuh plus keypadQWERTY dalam bentuk slide.

    SEJARAH DAN ALASAN PENGGUNAAN ANDROIDAndroid Inc, adalah sebuah perusahaan software kecil yang didirikan pada bulan

    Oktober 2003 di Palo Alto, California, USA. Didirikan oleh beberapa senior di beberapa

  • YHPI -> hal : 12

    perusahaan yang berbasis IT & Communication; Andy Rubin, Rich Miner, Nick Sears dan ChrisWhite. Menurut Rubin, Android Inc didirikan untuk mewujudkan mobile device yang lebih pekaterhadap lokasi dan preferensi pemilik. Dengan kata lain, Android Inc, ingin mewujudkanmobile device yang lebih mengerti pemiliknya. Sejarah Android dimulai dari sini. Konsep yangdimiliki Android Inc, ternyata menggugah minat raksasa Google untuk memilikinya. Pada bulanAgustus 2005, akhirnya Android Inc diakuisisi oleh Google Inc. Seluruh sahamnya dibeli olehGoogle. Nilai pembelian Android Inc ini oleh google tidak ada release pastinya. Tetapi banyakyang memperkirakan nilai pembelian Android Inc oleh Google adalah sebesar USD 50 juta.Saat itu banyak yang berspekulasi, bahwa akuisisi ini adalah langkah awal yang dilakukanGoogle untuk masuk ke pasar mobile phone. Sejarah android Andy Rubin, Rich Miner, NickSears dan Chris White tetap di Android Inc yang dibeli Google, sehingga akhirnya merekasemua menjadi bagian dari raksasa Google dan sejarah android. Saat itulah mereka mulaimenggunakan platfor linux untuk membuat sistem operasi bagi mobile phone.Sejarah Android dan Open Handset AlliancePada bulan nopember 2007, terbentuklan Open Handset Alliance yang merupakan konsorsiumdari beberapa perusahaan : Broadcom Corporation, Google, HTC, Intel, LG, MarvellTechnology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobiledan Texas Instruments. Mereka sepakat untuk membuat open standart bagi mobile phone.Pada hari yang sama, mereka mengumumkan produk pertama mereka, yaitu Android yangberbasis Linux kernel versi 2.6. Bulan Desember 2008, bergabunglah 14 perusahaan lainnyayaitu : ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd,PacketVideo, Softbank, Sony Ericsson, Toshiba Corp dan Vodafone Group Plc. Hal inimerupakan langkah besar dalam sejarah Android untuk menjadi pemimpin dalam sistemoperasi untuk mobile phone.Berikut ini tahapan peluncuran sistem operasi Android yang diciptakan Google:

    Android versi 1.1Pada 9 Februari 2009, Google merilis Android versi 1.1. Android versi ini dilengkapidengan pembaruan estetis pada aplikasi, jam alarm, voice search (pencarian suara),

  • YHPI -> hal : 13

    pengiriman pesan dengan Gmail, pemutar Youtube, mendukung Wifi juga Bluetooth,dan pemberitahuan email.

    Android Versi 1.5 (Cupcake)Pada 30 April 2009, Google kembali merilis telepon seluler dengan menggunakanAndroid dan SDK (Software Development Kit) dengan versi 1.5 (Cupcake). Terdapatbeberapa pembaruan termasuk juga penambahan beberapa fitur dalam versi ini, yaknikemampuan merekam dan menonton video, mengunggah video ke Youtube dangambar ke Picasa langsung dari telepon, dukungan Bluetooth A2DP, kemampuanterhubung secara otomatis ke headset Bluetooth, animasi layar pada saat perpindahananatar layar, rotasi layar secara otomatis, kemampuan copy paste pada saat di browserinternet, dan keyboard pada layar yang dapat disesuaikan dengan sistem, jugakemampuan keyboard dalam memprediksi kata-kata.

    Android Versi 1.6 (Donut)Donut (versi 1.6) dirilis pada 15 September 2009 dengan menampilkan prosespencarian yang lebih baik dibanding sebelumnya, penggunaan baterai indikator dankontrol applet VPN. Fitur lainnya adalah integrasi antara galeri dengan kamera dengancamcorder, mendukung CDMA / EVDO - VPN, indikator pemakaian baterai,kemampuan dial kontak, teknologi text to change speech (tidak tersedia pada semuaponsel), pengadaan resolusi VWGA.

    Android Versi 2.0 (Eclair)Pada 26 Oktober 2009 kembali diluncurkan ponsel Android dengan versi 2.0/2.1(Eclair), perubahan yang dilakukan adalah kemampuan turn by turn pada googlemaps, kemampuan sync untuk email dan contact, live wallpapers, peningkatankecepatan hardware, browser mendukung HTML5, fitur kamera diperbaruhi,mendukung berbagai ukuran serta pixel layar, dan mendukung Bluetooth 2.1.

    Android Versi 2.2 (Froyo: Frozen Yoghurt)Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan. Perubahan-perubahanumumnya terhadap versi-versi sebelumnya antara lain dukungan Adobe Flash 10.1,

  • YHPI -> hal : 14

    kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScriptengine yang dipakai Google Chrome yang mempercepat kemampuan rendering padabrowser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel, dankemampuan auto update dalam aplikasi Android Market.

    Android Versi 2.3 (Gingerbread)Pada 6 Desember 2010, Android versi 2.3 (Gingerbread) diluncurkan. Perubahan-perubahan umum yang didapat dari Android versi ini antara lain pada home screendapat dipasang shortcuts, mendukung portable wifi hotspot, kemampuan disablejaringan internet lewat smartphone, mendukung adobe flash, peningkatan kemampuanpermainan (gaming), layar antar muka (User Interface) didesain ulang, downloadmanager baru, dukungan format video VP8 dan WebM, efek audio baru (reverb,equalization, headphone virtualization, dan bass boost), dukungan kemampuan NearField Communication (NFC), dan dukungan jumlah kamera yang lebih dari satu.

    Android Versi 3.0 (Honeycomb)Pada tanggal 22 Februari 2011, Android Honeycomb dirancang khusus untuk tablet.Android versi ini mendukung ukuran layar yang lebih besar. User Interface padaHoneycomb juga berbeda karena sudah didesain untuk tablet. Honeycomb jugamendukung multi prosesor dan juga akselerasi perangkat keras (hardware) untukgrafis. Tablet pertama yang dibuat dengan menjalankan Honeycomb adalah MotorolaXoom. Adapun fitur yang diperbaruhi, seperti kemampuan multitasking yangdisederhanakan, home screen yang dapat diubah sesuka hati, peningkatan kinerjahardware, dapat meng-enkripsi semua data pemakai, dan masih banyak lagi.

    Android versi 4.0 (Ice Cream Sandwich)Diumumkan pada tanggal 19 Oktober 2011, membawa fitur Honeycomb untuksmartphone dan menambahkan fitur baru termasuk membuka kunci denganpengenalan wajah, jaringan data pemantauan penggunaan dan kontrol, terpadu kontakjaringan sosial, perangkat tambahan fotografi, mencari email secara offline, aplikasidapat diakses langsung lewat lock screen, dapat menjalankan aplikasi browser google

  • YHPI -> hal : 15

    chrome, dapat menutup aplikasi yang ada di background, kemampuan memberikanperingatan pemakaian data yang melewati batas, dan berbagi informasi denganmenggunakan NFC.

    Android Versi 4.1 (Jelly Bean)Google mengumumkan peluncuran Android versi 4.1 (Jelly Bean) pada tanggal 27 June2012, dengan membawa beberapa kelebihan diantaranya: Peningkatan beberapafungsi dan performa dari User Interface, peningkatan performa tersebut termasuk"Project Butter", dimana semakin meningkatnya performa responsifitas dari androidtersebut, maka akan lebih ringan juga halus dalam pengoperasiannya. Juga khususuntuk Tablet akan memiliki kelebihan Dual Boot. Dimana tablet pertama yangmemakainya adalah Nexus 7, yang diluncurkan pada tanggal 13 Juli 2012.

    Android Versi 4.2 (Jelly Bean)Google pada awalnya berencana untuk mengumumkan Jelly Bean 4.2 pada sebuahacara di New York pada tanggal 29 October 2012, akan tetapi terpaksa ditunda akibatBadai Sandy. Pada akhirnya pihak Google mengganti rencana Live Event denganhanya Press Release, dengan membawa "A new flavor of Jelly Bean". Perangkatpertama yang Android 4.2 adalah LG Nexus 4 dan Samsung Nexus 10, yang manadiluncurkan pada tanggal 13 November 2012. Pada versi ini ada beberapa peningkatanfitur, seperti notifikasi pada waktu download, dimana akan diketahui berapa lama waktuperkiraan untuk download tersebut selesai. Juga akan ada nada baru untuk wirelesscharging dan low battery. Animasi pada galeri akan lebih cepat loading nya.

    Android Versi 5.0 (Key Liem Pie)Android 5.0 adalah suksesor dari Android 4.x (Jelly Bean), yang secara umumdirumorkan dengan nama Key Lime Pie, meskipun belum ada pernyataan resmimengenai hal ini. Pada February 2013, dokumen yang bocor dari pabrik semikonduktor(Qualcomm) menyatakan bahwa Key Lime Pie akan diluncurkan pada kuartal keduatahun 2013. Kemungkinan akan membawa peningkatan seperti pengintegrasian socialmedia, built in video chat, dll.

  • YHPI -> hal : 16

    Sejarah keberadaan android dan perkembangannya menggambarkan betapa pesat minatmasyarakat terhadap device yang berbasis android, sehingga muncul beberapa alasanpenggunaan android pada matakuliah ini, diantaranya adalah:

    1. Sangat memasyarakat2. Pengembangan dari JAVA yang basisnya adalah C++, yang diajarkan pada semester

    sebelumnya.3. Open source4. Library nya sangat kaya, sehingga untuk eksperimen tentang pengolahan citra, data

    base, komunikasi data, pemrosesan sinyal, dan yang lain mahasiswa tidak mengalamikesulitan

  • YHPI -> hal : 17

    BAB IARSITEKTUR DAN STRUKTUR ANDROID

    I.1 TUJUANTujuan latihan program pertemuan pertama ini adalah,

    1. Mahasiswa mengenal struktur dan arsitektur android2. Mahasiswa memahami komponen pendukung android untuk membuat aplikasi3. Mahasiswa memahami cara install android

    I.2 TEORI DASARI.2.1 Arsitektur Android

    Android merupakan software yang full stack sebagai operating system, middleware,aplikasi, dan IDE. Android juga full open dalam source dan ideologi, dengan user controll nyakita dapat membuat aplikasi yang sesuai, industri menyediakan fungsi-fungsi dalam library nyayang diperuntukkan pengembang dan user, Sehingga ada link antara user, pengembang, danindustri, ditunjukkan oleh gambar 1.1. dibawah:

    Gambar 1.1 Keterkaitan antara Industi, Developer, dan UserKeterkaitan yang saling menguntungkan antara industri, user, dan pengembang dapat dilihatpada tabel 1.1 dibawah:No. Industri Pengembang User1 Software Stack open source

    berbasis Linux Kernel 2.6Pengembang tidak memer-lukan ijin untuk otak-atikaplikasi

    Pengguna mempunyaikontrol dari apa yang di-eksperimenkan

    2 Sumber tersedia setelahperkumpulan sekitar 45industri konsorsium (OpenHandsets Alliance)mengadakan kesepakatan I

    Tidak ada yangdisembunyikan ataudiistimewakan padaframework API nya

    User dapat mengontrolapa yang telah diinstallnya

    3 Setiap orang akan dapatmembangun sistem citra

    Dapat mengintegrasi, mem-perluas, dan menumpuki,komponen yang ada

    dapat memilih default atauextended

  • YHPI -> hal : 18

    Yang dimaksud dengan integrasi, extend, dan menumpuki diperlihatkan seperti gambar 1.2dibawah:

    Gambar 1.2. Integrasi, Extended, dan ReplaceInti dari system service android adalah Linux versi 2.6, karena satu-satunya kernel yangdigunakan oleh android adalah kernelnya Linux, gambar 1.3 menunjukkan layer yang ada padaandroid:

    Gambar 1.3 Android Layers

  • YHPI -> hal : 19

    Gambar 1.3 menunjukkan bahwa system core layanan android menggunakan kernel linux,sehingga untuk interface antara I/O port, I/O device, dan Mobile Device yang menanganiadalah Kernel Linux. Untuk RunTime ada dua komponen utama yaitu Core Libraries yangsekarang dipegang langsung oleh Google; didalam core library ini terdapat fungsi-fungsidengan bahasa java, dan Dalvic Virtual Machine yang berfungsi sebagai emulator dari devicemobile yang di tuju, dimana DVM bertugas sebagai emulator yang memvirtualkan hasil runningdari program aplikasi sebelum aplikasi tersebut di running di device mobile. DVM dasarlicensinya adalah Java , registernya berbasis VM, eksekusi file dalam bentuk format (*.dex)diksekusi oleh Dalvik, yang merupakan hasil konversi classes menjadi format .dex oleh DXtool.Layer Libraries terdiri dari beberapa komponen diantaranya adalah:

    - Libc : library c standar- SSL : Layer pengaman socket- SGL : mesin image 2 dimensi- Open GL/ES : mesin image 2 dimensi- Media Frame Work : bagian inti dari android multimedia- SQLite : Database yang diembededkan- WebKit : Kernel dari web browser- Free Type : Bitmap dan vektor- Surface Manager : menangani masalah window yang berbeda untuk

    aplikasi yang berbeda juga.Layer Aplication FrameWork, fungsi dari komponen diantaranya adalah:

    - Apps tanpa batas- Mempunyai kesamaan masing-masing apps- Mudah untuk mengembededkan web browser- Bisa paralel running

    Layer Aplikasi, merupakan lapisan yang menangani semua masalah aplikasi (email, web,)Secara detail berkaitan dengan bahasa maka dapat dijelaskan seperti gambar 1.4.

  • YHPI -> hal : 20

    Gambar 1.4. bahasa program yang menangani per Layer

    1.2.2 Perangkat Lunak Yang DiperlukanAda dua ADT (Android Developer Tool) yaitu Eclip dan Net Bean, ke dua developers

    tersebut saling punya kelebihan dan kelemahan. Menurut hemat penulis eclip mempunyaibeberapa kemudahan yang ditawarkan bagi pemula, termasuk mahasiswa sebagai pemulapengguna android. Perangkat lunak developer yang di perlukan adalah :

    Java JDK -> http://java.sun.com/javase/downloads/index.jspAndroid SDK -> http://developer.android.com/sdk/index.htmlEclipse IDE -> www.eclipse.org/downloadsAndroid ADT -> https://dl-ssl.google.com/android/eclipse/

    1.3 Sekilas Instalasi AndroidUntuk melakukan installasi Android siapkan perangkat lunak yang diperlukan seperti

    diberitahukan pada Sub Bab 1.2.2. kemudian lakukan langkah seperti di bawah ini, (perludiketahui bahwa setiap proses installasi tidak harus sama persis, tergantung dari sumber yangdipunyai) :

    - Usahakan semua requariment yang diperlukan diletakkan dalam satu foldermisalnya (Android_Eclip)

    - Jalankan file Java Development Kids.exe, ikuti apa yang diminta dan lakukansampai finish

    - Jalankan file Eclipse.exe, kemudian jika minta konfigurasi workspace sepertidibawah:

  • YHPI -> hal : 21

    Gambar 1.5. Konfigurasi Workspace- Setelah itu muncullah tampilan awal dari Eclip seperti gambar 1.6. di bawah:

    Gambar 1.6. Tampilan Awal Eclipse

    - Kemudian Click pada icon untuk menuju workbench, seperti gambar 1.7. di bawah:

  • YHPI -> hal : 22

    Gambar 1.7. Workbench, dari EclipseGambar 1.7. ini merupakan tempat kerja untuk membuat atau mendesai sebuahaplikasi project, tetapi tempat kerja ini masih belum siap, untuk itu ikuti langkahberikutnya.

    - Mengkonfigurasi ADT, syarat untuk mengkonfigurasi ADT, adalah eclipse harussudah running, dalam kondisi workbench siap.Masuklah menu Help -> Install New Software, kemudian muncul kotak dialogseperti gambar 1.8. berikut:

    Gambar 1.8. Kotak Dialog Tempat Menginstall Plug-in Pada EclipseKemudian klik , untuk menambahkan plug-in,muncul kotak dialog

  • YHPI -> hal : 23

    Gambar 1.9. Plug-in RepositoryMisalnya pada Name: tuliskan Android ADT, pada Location, tuliskan : https://dl-ssl.google.com/android/eclipse/,Jangan lupa pada proses ini koneksikan komputer dengan internet jika tidak makaakan mengalami kegagalan.Kemudian akan muncul kotak dialog seperti di bawah ini,

    Tekan select all, kemudian tekan Next, untuk proses installasi, kemudian jika mintaLicense Agreement pilih accept dan tekan Finish.Akhirnya jika proses nya benar tidak ada yang terlewatkan maka terjadilah prosesinstalasi penambahan plug-in ADT.

    - Proses berikutnya adalah mengkonfigurasi lokasi SDK, pada menu eclipse pilihmenu window -> preference, kemudian pilih Android pada tab sebelah kiri,kemudian pilih Browse, dan pilih folder dimana file-file SDK berada.

    - Proses Installasi selesai, dan Eclipse siap digunakan untuk membuat project,running, dan compiling.

  • YHPI -> hal : 24

    BAB IIMEMBUAT SEBUAH PROJECT

    II.1. TUJUANMateri pertemuan ketiga dititik beratkan pada mendesain sebuah aplikasi melalui Project,adapun tujuan khusus dari Bab dua ini adalah,

    1. Mahasiswa mampu menyiapkan lembar kerja dalam sebuah project2. Mahasiswa mampu mengubah tulisan background lembar kerja3. Mahasiswa mampu menjalankan program aplikasi.

    II.2. TEORI DASARII.2.1. WorkBench atau Lembar Kerja

    Workbench atau lembar kerja Android dengan Eclipse seperti ditunjukkan oleh gambar2. memberitahukan bahwa lembar tersebut mempunyai komplektisitas environment,

    Gambar 2.0. WorkBench atau Lembar kerjaLembar Kerja Eclips terdiri dari beberapa komponen utama diantaranya adalah:

    a. Baris Menu, (File, Edit, Refactor,...)

    b. Baris ShorCut ( )c. Jendela Packet Explorer :

  • YHPI -> hal : 25

    d. Lembar Kerja atau lembar aktivitas, yang terdiri dari beberapa bagian:- Pallete atau dalam program Delphi/C++Builder disebut komponen- ShortCut- Aktivitas, yang terdiri dari GUI atau sering disebut form untuk delphi atau

    C++Builder, UI atau sering disebut lembar coding.

    e. Jendela Task Listf. Jendela OutLine yang terdiri dari Relative layout dan properties; ini mirip dengan

    jendela Object Inspector pada delphi atau C++Builder

  • YHPI -> hal : 26

    II.3. Latihan Membuat AplikasiAda hal yang harus kita pahami bahwa mendesain sebuah aplikasi dalam android sama

    dengan membuat sebuah project, dimana environment dari project cukup banyak, sebagailatihan pertama buat project aplikasi dengan nama Percobaan, ikuti langkah berikut: (denganmenggunakan IDE Eclip ...., beda IDE agak sedikit berbeda, tetapi secara prinsip sama)

    - Langkah 1, berisi tentang persiapan membuat sebuah aplikasi dengan namaPercobaan :File-> New -> Android Project Aplication, kemudian muncul box dialog sepertigambar 2.1. berikut

    Gambar 2.1. Kotak Dialog Nama Project, Aplikasi, Paket,...Lakukan pengisian sebagai berikut:- Application Name, isi dengan : Percobaan (Perlu diperhatikan huruf pertama

    harus huruf besar, alasan tanya pada pembimbing/pengajar....)- Secara otomatis Project Name dan Package Name terisi dengan nama sama

    dengan nama aplikasi, jangan lakukan perubahan apapun.- Build SDK pilih versi android sesuai dengan OS device yang diinginkan, dalam

    hal ini kita coba pilih : Android 2.1 (API 7)- Kemudian tekan , NEXT, maka akan muncul jendela seperti gambar 2.2.

    dibawah:

  • YHPI -> hal : 27

    Gambar 2.2. Seting Icon AplikasiGambar 2.2. diperlukan untuk seting Icon dari aplikasi yang kita inginkan, untuklatihan pertama ini tidak perlu dilakukan perubahan apapun, (Silakan tanya padapengajar untuk mengetahui lebih detail) , berikutnya tekan NEXT

    - Berikutnya muncul window aktivitas, seperti gambar 2.3., untuk sementara tidakperlu lakukan apapun, (Untuk lebih detail tanyakan ke pengajar)

    Gambar 2.3. Jendela Pengaturan Aktivitas

  • YHPI -> hal : 28

    Sementara tidak perlu melakukan perubahan apapun, kemudian tekan NEXT- Berikutnya akan muncul kotak dialog seperti pada gambar 2.4. berikut:

    Gambar 2.4 Dialog ActivityIsi Activity Name dengan Percobaan, dan yang lainnya akan mengikuti, tempakseperti gambar 2.4. di atas

    - Persiapan membuat aplikasi sudah selesai, dan muncullah lembar yangdisediakan oleh Eclip dalam bentuk yang sangat kompleks tampak sepertigambar 2.5., keterangan per item pelajari Teori,

    (a) (b)

  • YHPI -> hal : 29

    (c) (d)Gambar 2.5. Lembar Kerja

    Gambar 2.5.(a) menunjukkan bahwa project dengan aktivitasactivity_percobaan.xml sedang aktiv dan siap untuk di edit, running, dan yanglain; (b) menunjukkan struktur dari project Percobaan; (c) menunjukkan bahwalembar kerja eklip (GDI) terdapat dua jenis, pertama adalah desain grafik, miripdengan bentuk form program delphi maupun program c++ builder; sedangkanbentuk kedua adalah tempat menuliskan code, atau script dari program, miripdengan unit pada delphi atau c++ builder; (d) merupakan bentuk desain grafik.

    - Langkah II:Ubah background Hello Word ! menjadi Latihan Android Pertama langkahnyaadalah:a. Klik 2X folder values pada Packect Exlporer aplikasi Percobaan,b. Pada folder Strings.xml click 2X, sehingga muncul lembar coding seperti

    berikut:

    Tulisan Hello Android ! ganti dengan Latihan Android Pertama, sehinggamenjadi :

    c. Running Program, usahakan AVDM (Android Virtual Device Manager) terusdalam keadaan on; bila terjadi tanyakan pada Pengajar yang mendampingi.

  • YHPI -> hal : 30

    - Langkah III :a. Membuat Palet Text, ada beberapa jenis text, TextView, Large, Medium, dan

    small. Kita coba buat beberapa model seperti di bawah ini:

    b. Kemudian tampilan kita ganti TextView->Tulisan Normal; Large Text ->TulisanBesar; Medium Text -> Tulisan Sedang; Small Text -> Tulisan KecilCaranya adalah : Klik 2x TextView, sehingga muncul script:

    c. Ubah tulisan pada TextView di menjadi Tulisan Normal,d. Lakukan semua Text sesuai dengan langkah b.e. Sehingga desain menjadi seprti berikut,

    f. Coba running program

  • YHPI -> hal : 31

    II.4. SOAL (UJI KEMAMPUAN),Kerjakan setiap soal di bawah ini simpan dengan nama Aplikasi Latihan_1, dannama activity Latihan_1

    1. Buat desain activity seperti di bawah gambar (2.6) ini

    Gambar 2.6. Latihan Membuat Desain

  • YHPI -> hal : 32

    BAB IIIPENGGUNAAN BUTTON

    II.1. TUJUANMateri pertemuan ketiga dititik beratkan optimalisasi penggunaan pallet widget Button, adapuntujuan latihan program pertemuan kedua ini adalah,

    1. Mahasiswa mampu menggunakan widget button dengan model OnClick2. Mahasiswa mampu menggunakan widget button dengan model OnClickListener

    III.2. TEORI DASARIII.2.1. Perbedaan OnClickListener dengan Onclick Biasa pada Button

    Pallet button yang disediakan pada Widget ada beberapa macam yaitu : button, smallbutton, dan togle button. Penggunaan antara button dan tgle button agak sedikit berbeda.Eksekusi Button bisa menggunakan onclick klasik dan onclicklistener. Tujuannya samasedangkan implementasinya yang berbeda.III.2.2. OnClickListener()Event ini disebut juga event listener, Suatu event yang berfungsi menangkap kejadian yangberhubungan dengan user. misalnya user menekan tombol(SetOnClick). Event ini sangatberkaitan dengan event handler, setelah user melakukan suatu kejadian, misalnya menekantombol, maka apakah langkah selanjutnya yang dilakukan ?? itulah yang dinamakan eventHandle.Contoh : tombol button di tekan memunculkan hasil perkalian antara input1 dan input2, seperti

    pada latihan dibawah.Nama ID button adalah button1, setOnclick adalah klik, maka coding yang berkaitanadalah :tekan=(Button)findViewById(R.id.button1);tekan.setOnClickListener(new klik());class klik implements Button.OnClickListener{public void onClick (View v){int b1 = Integer.parseInt(bil1.getText().toString());int b2 = Integer.parseInt(bil2.getText().toString());

    int hsl = b1 * b2;hs.setText(String.valueOf(hsl));

    }}

    OnClick()Event ini disebut event klasik, dimana sistem kerjanya adalah, tombol button di klik makavariabel onclik akan mengeksekusi nama variabel pada strings.xml, kemudian value darivariable strings.xml dianggap sebuah function yang mengeksekusi proses fungsi tersebut,prosesnya dapat di gambarkan sebagai berikut:

  • YHPI -> hal : 33

    III.3. LATIHAN PROGRAM,Buat Desain dengan nama Aplikasi Latih_2, dan nama aktivitas juga Latih_2, desain sepertigambar (3.1) di bawah:

    Gambar 3.1. GraphicLayout Activity Button1Kemudian edit Id dari masing-masing komponen berikut, (Perhatikan huruf besar dan kesilnya):

    EditText1 -> Isi1EditText2 -> isi2TextView3 -> Hasil

    dan ketikan source code dibawah sesuaikan dengan nama file, tempat, dan foldernya:Activity_Latih_2.xml:

  • YHPI -> hal : 34

    android:layout_width="fill_parent"android:layout_height="fill_parent" >

  • YHPI -> hal : 35

    android:layout_alignBaseline="@+id/Hasil"android:layout_alignBottom="@+id/Hasil"android:layout_alignRight="@+id/textView2"android:onClick="@string/tekankali"android:text="Tekan Lihat Hasil" />

    Strings.xml

    Latih1_b SettingsLatih1_b kali

    Latih_2.javapackage com.example.latih1_b;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.widget.EditText;import android.widget.TextView;public class Latih1_b extends Activity {private EditText bil1;private EditText bil2;private TextView hsk;

    @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_latih1_b);bil1=(EditText) findViewById(R.id.Isi1);bil2=(EditText) findViewById(R.id.isi2);hsk =(TextView) findViewById(R.id.Hasil);

    }public void kali (View v) {double a,b,hs;a = Double.parseDouble(bil1.getText().toString());b = Double.parseDouble(bil2.getText().toString());hs=a*b ;hsk.setText(String.valueOf(hs));//hsk.setText(String.valueOf(hs));

    }@Overridepublic boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.activity_latih1_b, menu);return true;}

    }

  • YHPI -> hal : 36

    III.4. SOAL (UJI KEMAMPUAN),1. Buat Project dengan nama aplikasi Tugas_3 dan nama activity sama

    Tugas_3, buat desain sama dengan contoh tetapi buat script nya denganmenggunakan onClickListener

    2. Buat Project dengan nama aplikasi Tugas_3 dan nama activity samaTugas_3, buat desain sama dengan contoh ubahlah komponen button menjadiImagebutton, dan buat script nya dengan menggunakan onClickListenermaupun onClick klasik.

  • YHPI -> hal : 37

    BAB IVCHECK BOX DAN RADIO BUTTON

    IV.1. TUJUANKomponen check Box dan radio button adalah komponen yang disediakan untuk pilihan gandaatau pilihan tunggal, model dan bentuknya mirip dengan miliknya Delphi atau C++Builder.Adapun tujuan dari pertemuan ini adalah,

    1. Mahasiswa mampu mendesain project menggunakan komponen check box dan radiobutton.

    2. Mahasiswa mampu membuat script yang berkaitan dengan check box dan radio button.3. Mahasiswa mampu mengimplementasikan komponen check box dan radio button pada

    project sederhana.4. Mahasiswa mampu membedakan penggunaan RadioButton dan RadioGroup pada

    sebuah project.

    IV.2. TEORI DASARIV.2.1 CHECK BOX

    Checkbox sering juga disebut tickbox adalah elemen (Widget) dari GUI pada androidyang mengijinkan user untuk melakukan pilihan dengan logika biner, artinya jika dicentangmaka nilainya adalah true, jika tidak dicentang nilainya adalah false, bentuk danpenggunaannya hampir sama dengan pemrograman C++Builder atau delphi. Untuk melakukanpencentangan menggunakan mouse atau spacebar keyboard, bentuk dari checkbox adalahseperti gambar (4.1) di bawah ini:

    Gambar 4.1. elemen CheckBox

    Nama Id default adalah : @+id/checkBox1Pada gambar 4.1. isi dari text adalah : Paralaeldata script dari elemen ini adalah sebagai berikut:

  • YHPI -> hal : 38

    IV.2.2 Radio Group dan ButtonRadio button atau disebut juga option button yang terdapat pada Radio Group adalah

    elemen dari GUI, yang mengijinkan user memilih hanya satu pilihan, ada beberapa model linkeksekusi diantaranya adalah:

    - Menggunakan onClick, yang melingkan file *.xml dengan file program script java(*.java), link nya dapat dijelaskan berikut:

    Lebih jelas lihat contoh/latihan program no. 2 !- Menggunakan OnClickListener, model ini mempunyai pengaturan hanya pada

    script java saja (*.java), yaitu:a. tambahkan statement OnClickListener pada class uatma, miaslnya :

    public class Rad_btn extends Activity {.. -> ubah menjadipublic class Rad_btn extends Activity implementsView.OnClickListener{..

    b. tambahkan variabel untuk radiobutton pada type onclicklistener, seperti:rd1=(RadioButton) findViewById(R.id.radio0);rd1.setOnClickListener(this);

    c. buat prosedur dengan nama onClick(View variabel){, seperti contoh dibawah:public void onClick(View v){switch(v.getId()){case R.id.radio0 :if (rd1.isChecked())

    Toast.makeText(this,"Anda Pilih Nomer 1",Toast.LENGTH_LONG).show();break;case R.id.radio1 :if (rd2.isChecked())Toast.makeText(this,"Anda Pilih Nomer 2",Toast.LENGTH_LONG).show();break;}

    }- Berikutnya adalah model Item onclicklistener, yaitu pemberian statement

    berdasarkan komponen atau elemen nya.

  • YHPI -> hal : 39

    IV.3. LATIHAN PROGRAM,1. Buat Desain project CheckBox berikut, dengan nama Aplikasi Latih_4_chkbox, dan

    nama aktivitas juga Latih_4_1chkbox, desain seperti gambar (4.1) di bawah:

    Gambar 4.2. GraphicLayout Contoh Penggunaan CheckBoxUbah nama Id, dengan nama sesuai dengan script / coding yang dituliskan di bawah ini,dan letakkan masing-masing script sesuai dengan nama file, folder, dan aktivitas yangsesuai:

    activity_latih4_chkbox.xml:

  • YHPI -> hal : 40

    android:layout_alignParentLeft="true"android:layout_alignParentTop="true"android:layout_marginTop="27dp"android:text="Input R1 : "android:textAppearance="?android:attr/textAppearanceMedium" />

  • YHPI -> hal : 41

    android:inputType="numberDecimal"android:ems="10" />

    Latih4_chkbox SettingshasilLatih4_chkbox

    package com.example.latih4_chkbox;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.widget.EditText;import android.widget.TextView;import android.widget.CheckBox;import android.widget.Toast;public class Latih4_chkbox extends Activity {private EditText r1;private EditText r2;private CheckBox cek1;private CheckBox cek2;private TextView hs;

    @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_latih4_chkbox);r1=(EditText) findViewById(R.id.editText1);r2=(EditText) findViewById(R.id.editText2);hs=(TextView) findViewById(R.id.textView3);cek1=(CheckBox) findViewById(R.id.checkBox1);cek2=(CheckBox) findViewById(R.id.checkBox2);hs.clearComposingText();

    }public void hasil (View v){double a,b,c;if (r1.getText().length()==0 || r2.getText().length()==0){Toast.makeText(this, "R1 maupun R2 tidak boleh Kosong !",

    Toast.LENGTH_LONG).show();return;

  • YHPI -> hal : 42

    }a=Double.parseDouble(r1.getText().toString());b=Double.parseDouble(r2.getText().toString());c=0;if (((cek1.isChecked()==false) && (cek2.isChecked()==false)) ||((cek1.isChecked()) && (cek2.isChecked()))){

    Toast.makeText(this, " Pilih Salah Satu Saja !",Toast.LENGTH_LONG).show();return;

    }if (cek1.isChecked()){

    c=a+b;} elseif (cek2.isChecked()){

    c=1/a+1/b;c=1/c;

    }hs.setText(String.valueOf(c));

    }@Overridepublic boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.activity_latih4_chkbox, menu);return true;}

    }

    Kemudian Running Program!2. Buat desain dengan menggunakan komponen radio button dan radio group berikut, beri

    nama Aplikasi Latih4_rdbtn, dan nama aktivitas juga Latih4_rdbtn, desain sepertigambar (4.2) di bawah:

    Gambar 4.3. Desain Latihan Radio Button

  • YHPI -> hal : 43

    Ubah nama Id, dengan nama sesuai dengan script / coding yang dituliskan di bawah ini,dan letakkan masing-masing script sesuai dengan nama file, folder, dan aktivitas yangsesuai:

  • YHPI -> hal : 44

    android:layout_centerVertical="true"android:text="Hasil :" />

    package com.example.latih4_rdbtn;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.RadioGroup;import android.widget.TextView;import android.widget.Toast;

  • YHPI -> hal : 45

    import android.widget.RadioButton;

    public class Latih4_rdbtn extends Activity {private RadioButton rb1;private RadioButton rb2;private RadioButton rb3;private RadioButton r1,r2,r3;private Button tekan;private TextView hasil;

    @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_latih4_rdbtn);rb1=(RadioButton) findViewById(R.id.radioButton1);rb2=(RadioButton) findViewById(R.id.radioButton2);rb3=(RadioButton) findViewById(R.id.radioButton3);tekan=(Button) findViewById(R.id.button1);tekan.setOnClickListener(new klik());hasil=(TextView) findViewById(R.id.textView3);// RadioGroup rg=(RadioGroup) findViewById(R.id.radioGroup1);r1=(RadioButton) findViewById(R.id.radio0);r2=(RadioButton) findViewById(R.id.radio1);r3=(RadioButton) findViewById(R.id.radio2);r1.setChecked(false);

    }class klik implements Button.OnClickListener{String t1="",t2="",t3="";public void onClick (View v){if (rb1.isChecked()){

    t1="Indonesia";//return;

    } if (rb2.isChecked()){t2="Malaysia";//return;

    } if (rb3.isChecked()){t3="Jepang";//return;

    }hasil.setText("Negara Pilihan :" + t1+" "+t2+" "+t3);}

    }public void pilihgrp(View view){switch(view.getId()){case R.id.radio0 :if (r1.isChecked()){

    Toast.makeText(this, "Bendera Indonesia : Merah Putih",Toast.LENGTH_LONG).show();return;

    } break;case R.id.radio1:if (r2.isChecked()){

  • YHPI -> hal : 46

    Toast.makeText(this, "Bendera Malaysia : Bulan Bintang",Toast.LENGTH_LONG).show();return;}break;case R.id.radio2:if (r3.isChecked()){Toast.makeText(this, "Bendera Jepang : Matahari Terbit",Toast.LENGTH_LONG).show();return;

    } break;}

    }@Overridepublic boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.activity_latih4_rdbtn, menu);return true;}

    }

    IV.4. SOAL (UJI KEMAMPUAN),Kerjakan setiap permasalahan dengan membuat desain yang indah, masing-masing simpan dengan nama aplikasi dan nama aktivitas sama !1. Buat desain sebuah project dengan memasukkan komponen checkbox untuk pilihan

    ganda ->sifat sinyal analog, dan komponen RadioGroup untuk pilihan tunggal ->Agama.Gunakan sembarang data dan tidak ada output, simpan file Soal4_1

    2. Buat desain dengan input nilai angka, nama, jurusan, dan output nilai huruf danketerangan.Nama : Input biasaJurusan : gunakan radiobuttonNilai angka : guanakan GroupRadio (80< Nilai output nilai huruf A

    (75< Nilai output nilai huruf B+(65< Nilai output nilai huruf B(50< Nilai output nilai huruf C+(40< Nilai output nilai huruf C(Nilai

  • YHPI -> hal : 47

    BAB VSPINER

    V.1. TUJUANKomponen Spinner yang disediakan oleh android merupakan komponen yang penggunaannyamirip dengan komponen combobox pada program C++Builder maupun Delphi. Adapun tujuandari pertemuan ini adalah,

    1. Mahasiswa mampu mendesain project menggunakan komponen Spinner.2. Mahasiswa mampu membuat script yang berkaitan dengan komponen Spinner.3. Mahasiswa mampu mengimplementasikan komponen Spinner pada project sederhana.

    V.2. TEORI DASARSpinner menyediakan cara cepat untuk memilih sebuah nilai dari beberapa pilihan

    dasar yang disediakan, nilai yang tampil pada pallet spiner adalah nilai yang dipilih terbaru olehuser. Menu bentuk drop down akan muncul jika komponen spinner di sentuh, sebagai contohadalah :

    Gambar 5.1. Tampilan SpinnerKita juga dapat menambah atau mengubah bentuk tampilan pada script object spinner, sepertiberikut:

    Dan isi dari spinner dapat diperoleh dari menambahkan String-Array, untuk lebih jelas silakanperhatikan lihat contoh berikut,

  • YHPI -> hal : 48

    V.3. LATIHAN PROGRAM,1. Buat desain dengan menggunakan komponen Spinner berikut, beri nama Aplikasi

    Latih5_spin, dan nama aktivitas juga Latih5_spin, desain seperti gambar (5.2) di bawah:

    Gambar 5.2. Desain Penggunaan Komponen SpinnerUbah nama Id, dengan nama sesuai dengan script / coding yang dituliskan di bawah ini,dan letakkan masing-masing script sesuai dengan nama file, folder, dan aktivitas yangsesuai:

  • YHPI -> hal : 49

    android:layout_marginTop="28dp"android:text="Bil. Kedua"android:textAppearance="?android:attr/textAppearanceMedium" />

  • YHPI -> hal : 50

    spinerHello world!SettingsMainActivity

    JumlahKurangKaliBagiPangkat

    package com.example.spiner;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.widget.EditText;import android.widget.TextView;import android.widget.Spinner;import android.widget.Toast;import android.app.AlertDialog;import android.content.DialogInterface;public class Spiner1Activity extends Activity {private EditText bl1,bl2;private Spinner spn1;private TextView has;

    @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.spiner1);bl1=(EditText) findViewById(R.id.bil1);bl2=(EditText) findViewById(R.id.bil2);spn1=(Spinner) findViewById(R.id.pilihan);has=(TextView) findViewById(R.id.hasil);

    }public void proses(View view){double a,b,hsl;

    if (bl1.getText().toString()==""){Toast.makeText(this, "Bilangan gak boleh kosong",

    Toast.LENGTH_LONG).show();return;}if (bl2.getText().toString()==""){

    Toast.makeText(this, "Bilangan gak boleh kosong",Toast.LENGTH_LONG).show();return;

    }

  • YHPI -> hal : 51

    a = Double.parseDouble(bl1.getText().toString());b = Double.parseDouble(bl2.getText().toString());hsl=a + b;switch (spn1.getSelectedItemPosition()){case 0:

    hsl = a + b;break;case 1:hsl = a - b;break;case 2:hsl = a * b;break;case 3:hsl = a / b;break;case 4:hsl = Math.pow(a, b);break;

    }}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.spiner1, menu);return true;}

    }

    V.4. SOAL (UJI KEMAMPUAN),Kerjakan setiap permasalahan dengan membuat desain yang indah, masing-masing simpan dengan nama aplikasi dan nama aktivitas sama !1. Ubah program latihan4_1 dan 4_2 kedalam bentuk spinner, desainlah formnya sesuai

    dengan yang anda inginkan, simpan file -> Latih5_1 dan Latih5_2

  • YHPI -> hal : 52

    BAB VIBEKERJA DENGAN BEBERAPA LAYAR

    VI.1. TUJUANSebuah aplikasi bisa memiliki lebih dari satu layar, mirip halnya dengan pemrograman Delphiatau C++Builder satu project memiliki lebih dari form. Untuk membuat multi layar di dalamAndroid mempunyai cara yang khusus, sehingga tujuan dari Bab ini adalah:

    1. Mahasiswa mampu mendesain project dengan multi layar.2. Mahasiswa mampu membuat script yang melingkan antara layar satu dengan yang

    lainnya.3. Mahasiswa mampu mengimplementasikan multi layar pada project sederhana.

    VI.2. TEORI DASARDalam sebuah project biasanya mempunyali lebih dari satu scrren. Screen padaandroid dibuat di bawah activity, sehingga pembuatan multi screen juga melibatkanmulti activity. Dalam activity dikemas dalam sebuah file XML, sehingga multi screenakan menyebabkan project memiliki lebih dari satu file XML. Screen berkaitandengan layout atau form, jika kita membuat lebih dari satu layout, ada script yangharus dituliskan untuk menghubungkan antar layout agar layout tersebut salingmengenal, yang akirnya ada konektivitas antar scree. Berikut adalah tata caramembuat desain project dengan multiscreen:

    1. Yang pertama buat pro ject , lakukan pembuatan halaman utamaseper t i b iasa dengan menuliskan nama activity seperti sebelumnya;

    2. Buat Class baru dengan nama lain, dengan cara buka jendela Package,kemudia buka src -> com.example, kemudian klik kanan new->class,seperti gambar 6.1. berikut:

    Gambar 6.1. Membuat Class Baru3. Hubungkan antara class pada halaman utama dengan class kedua, dengan

    mengisi script pada file AndroidManifest.xml4. Isi script masing-masing class script java sesuai dengan keperluan.

  • YHPI -> hal : 53

    Untuk lebih jelas pelajari dan coba perhatikan latihan program di bawah ini.

    VI.3. LATIHAN PROGRAM,Pada sesi ini kita akan mendesain sebuah project dengan menggunakan dua layar atau

    screen. Dimana konsep dari desain ini ingin menunjukkan prinsip kerja dari project yangmenggunakan 2 layar. Hasil dari program ini adalah default adalah layar1 aktif, untuk menujuaatau mengaktifkan layar2 tekan tombol butoon, demikian juga sebaliknya, ntuk itu ikutilangkah-langkah berikut:1. Buat Project baru dengan nama aplikasi adalah : Latih6_dualayar, seperti gambar 6.2.

    berikut:

    Gambar 6.2 Membuat Aplikasi2. Beri nama activity Layar1 seperti di bawah ini,

    Gambar 6.3. Nama AktivitasTekan tombol ok, dan lanjutkan sampai kita dapatkan layout utama.

  • YHPI -> hal : 54

    3. Tambahkan widget atau komponen button, ubah text nya Menuju layar 2, tambahkanjuga komponen TextView, ubah textnya Ini Adalah Layar 1, seperti pada gambar 6.4.berikut:

    Gambar 6.4. Desain Layar Utama4. Buat layout dengan nama layar2.xml, dengan cara seperti di bawah ini :

    Gambar 6.5 Membuat Screen baru layar2.xml5. Berikutnya adalah menambahkan komponen button dan textview pada screen layar2, dan

    ubahlah masing-masing text nya sesuai dengan gambar 6.6. berikut:

  • YHPI -> hal : 55

    Gambar 6.6. Desain screen layar26. Pada file AndroidManifest.xml tambahkan script seperti yang ada dalam lingkaran gambar

    6.5.:

    Gambar 6.7. Menambah Script pada AndroidManifestPenambahan script ini berfungsi mengenalkan aktivitas, java, dan xml layar2 yangdibuat pada tahap kedua.

    7. Buat Class baru dengan nama Layar1, ikut cara seperti yang tampak pada Gambar 6.5.berikut:

  • YHPI -> hal : 56

    Gambar 6.8. Membuat Class Baru Layar18. Berikutnya adalah tambahkan script pada file Layar1.java, sebagai berikut:

    9. Dan juga tambahkan script pada file layar2.java, berikut:

  • YHPI -> hal : 57

    10. Untuk menguji apakah desain aplikasi berjalan atau tidak silakan di running aplikasinya.

    VI.4. SOAL (UJI KEMAMPUAN),Ubah program latihan4_1 dan 4_2 kedalam bentuk dua layar menjadi satu aplikasi, desainlahformnya sesuai dengan yang anda inginkan, simpan file -> Latih6_1.

  • YHPI -> hal : 58

    BAB VIIGRAFIK KLASIK DI ANDROID

    VII.1. TUJUANSecara umum grafik pada pemrograman dibedakan menjadi dua yaitu grafik berbasis kurvadikenal dengan grafik klasik, dan grafik dengan obyek citra atau gambar. Tujuan dari BAB iniadalah,

    1. Mahasiswa mengenal grafik klasik pada pemrograman android.2. Mahasiswa mampu mendesain grafik klasik sederhana pada sebuah project aplikasi.3. Mahasiswa mengenal operasi geometri dasar untuk diimplementasikan pada grafik

    klasik.

    VII.2. TEORI DASARVII.2.1. OPEN GL ESFramework Android mendukung OpenGL ES 1.0/1.1 dan OpenGL ES 2.0, dimana ES adalahsebuah singkatan dari Embeded System, merupakan bagian dari OPENGL khusus yangdirancang untuk perangkat embeded. OpenGl adalah bebas biaya dan lintas platform. DimanaAPI nya mempunyai full fungsi yang mendukung grafik 2D dan 3D, pada sistem embedednya,seperti perangkat mobile. OpenGL 1.X menggunakan arsitektur pipeline yang fix secaratradisional, dan menekankan pada percepatan hardware dari API. Yang menawarkanpenambahan fungsi, kualitas gambar yang bagus dan performansi yang tinggi. OpenGL 2.Xberfungsi dalam hal pemrograman hardware. Ini menekankan pada pemrograman grafik 3Ddan mengijinkan user untuk membuat bayangan dan objek-object program. Dengan ES 2.x kitajuga dapat menulis vertex. Dilain pihak OpenGL 2.X tidak suport pada transformasi fungsi fixdan fragmentasi pipeline yang OpenGL 1.X support.Pemanggilan fungsi glutInit, berguna untuk inisialisasi secara umum terhadap nilai-nilai yangada pada library GLUT.

    Untuk menginisialisasi modus display dilakukan dengan memanggil fungsi:glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB) pada procedure myInit();Fungsi tersebut meminta window yang bersifat double buffered, dengan warna RGB. Beberapabaris berikut ini adalah membuat window.

  • YHPI -> hal : 59

    Seperti yang kita lihat, GLUT langsung membuat window tanpa memerlukan macam-macamsyarat.fungsi glOrtho digunakan untuk membuat kotak tempat obyek yang sedang digambar.Berikut ini adalah fungsi-fungsi aplikasi yang kita buat :

    glutDisplayFunc(display);glutMainLoop();

    Fungsi pertama digunakan untuk mengubah pandangan dengan menggunakan GLUT.Selanjutnya dipanggil fungsi glutMainLoop() , yaitu digunakan untuk menjalankan program.Semua fungsi sebelumnya akan berpengaruh setelah fungsi ini dieksekusi.Fungsi aplikasi untuk menampilkan kotak di dalam window adalah sebagai berikut :

    void display(void){

    glClear(GL_COLOR_BUFFER_BIT);glRectf(-5.0, 5.0, 5.0, -5.0);glutSwapBuffers();

    }Pertama-tama dipanggil fungsi glClear dengan parameter GL_COLOR_BUFFER_BIT. Fungsiini akan menghapus window dan memberi warna yang telah kita definisikan sebelumnyadengan menggunakan glClearColor. Selanjutnya menggambar segiempat yang kita inginkandengan menggunakan fungsi glRectf.Suatu fungsi memiliki beberapa macam prototipe. Contohnya fungsi glColor, memiliki beberapaprototipe berikut ini :

    glColor3f(float, float, float);glColor4f(float, float, float, float);glColor3d(double, double, double);glColor3i(int, int, int);etc, etc, etc.

    Fungsi-fungsi tersebut memiliki bagian-bagian:gl Color 3 f

  • YHPI -> hal : 60

    Walaupun ada fungsi yang memiliki beberapa macam versi, sebaiknya dipilih versi yangmenggunakan bilangan float. Karena dalam OpenGL semua nilai yang digunakan secarainternal akan dikembalikan dalam bentuk float point.

    VII.2.2. TITIK, GARIS, DAN POLYGONOpenGL menggunakan sistem koordinat Cartesius, sumbu datar sebagai sumbu x, sumbutegak sebagai sumbu y, dan sumbu z nya adalah mendekat atau menjauh. Sumbu z positifselalu menuju ke arah kita, sebaliknya sumbu z negatif selalu menjauh dari kita. Denganmenggunakan sistem ini kita dapat menyatakan titik dalam ruang tiga dimensi, yang disebutjuga vertex, dengan tiga sumbu koordinat x, y, dan z. Sebagai contoh :

    (0,0,0) pusat sistem koordinat(2,0,4) dua unit ke kanan, 4 unit menuju kita, dan sumbu y pada pusat(3,-4,-2) 3 unit ke kanan, 4 unit ke bawah, dan 2 unit menjauh dari kita

    Untuk menyatakan titik tersebut OpenGL menyediakan fungsi glVertex yang didahului dandiakhiri dengan glBegin dan glEnd:

    glBegin(GL_POINTS); /* Ingin menggambar titik */glVertex3f(2.0, 0.0, 4.0); /* menyatakan sejumlah titik */glVertex3f(3.0, -4.0, -2.0);glEnd(); /* Akhir dari menggambar titik */

    Fungsi glBegin memberitahu kepada OpenGL bahwa kita akan mulai menggambar sekaligusmenyatakan apa yang akan digambar, yaitu dengan memberikan parameter GL_POINTS.Fungsi glEnd menyatakan pembuatan gambar diakhiri. Dengan menggunakan OpenGL,menggambar pada bidang 3D sangat fleksibel, misalnya akan menggambar suatu garis, makapada glBegin diberi parameter GL_LINES. Dengan ini pasangan-pasangan glVertex akanmembentuk garis. Bila glVertex tidak memiliki pasangan maka perintah tersebut diabaikan(tidak akan menggambar titik)

    glBegin(GL_LINES); /* mulai menggambar garis */glVertex3f(6.0, 4.0, 2.0); /* garis pertama, pasangan glVertex */glVertex3f(2.0, -4.0, 3.3);glVertex3f(5.0, 8.0, 8.0); /* garis ke dua */glVertex3f(-4.7, 5.0, -3.0);glVertex3f(0.0, 0.0, 0.0); /* garis ke tiga */glVertex3f(6.0, -1.0, -7.0);glEnd();

    Untuk menggambar suatu bangun, OpenGL memiliki 6 macam bangun primitif, yaitu :GL_TRIANGLES : setiap 3 glVertex membentuk segitiga, dan tiap segitiga saling

    lepas.GL_TRIANGLE_STRIP : setiap 3 glVertex membentuk segitiga, dan semua segitiga

    saling terkait

  • YHPI -> hal : 61

    GL_TRIANGLE_FAN : membentuk beberapa segitiga yang berpusat pada satu titik(seperti kipas)

    GL_QUADS : tiap 4 glVertex membentuk segi empatGL_QUAD_STRIP : tiap 4 glVertex membentuk segi empat, dan semuanya saling

    menempelGL_POLYGON. : n glVertex akan membentuk bidang bersisi n

    VII.3. LATIHAN PROGRAM,Buat aplikasi Project dengan nama Latih7_grafik_klasik, demikian juga dengan nama

    aktivitas, paket, dan yang linnya gunakan nama yang sama. Latihan VII.3.1 ini merupakanimplementasi grafik klasik dengan bentuk segitiga, dan melibaatkan 2 class. Gunakan virtualmanager gunakan minimal API 10

    VII.3.1 Implementasi grafik pada bentuk klasikLanjutkan dengan mengedit source code pada file Latih7_grafik_klasik.java padaLatih7_grafik_klasik -> Src -> Com.example.latih7_grafik_klasik ->Latih7_grafik_klasik.java,< Latih7_grafik_klasik.java>package com.example.latih7_grafik_klasik;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.Button;import android.view.View;import android.view.View.OnClickListener;import android.content.Context;import android.opengl.GLSurfaceView;public class Latih7_grafik_klasik extends Activity {private Button tekan;private GLSurfaceView grafik1;

    @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_latih7_grafik_klasik);tekan=(Button)findViewById(R.id.button1);grafik1 = new HelloESSurfaceView(this);setContentView(grafik1);

    }@Overrideprotected void onPause() {super.onPause();// The following call pauses the rendering thread.grafik1.onPause();}@Overrideprotected void onResume() {super.onResume();// The following call resumes a paused rendering thread.grafik1.onResume();}

  • YHPI -> hal : 62

    class HelloESSurfaceView extends GLSurfaceView {public HelloESSurfaceView(Context context){super(context);// Set the Renderer for drawing on the GLSurfaceViewsetRenderer(new segitiga());}}

    @Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.activity_latih7_grafik_klasik,menu);return true;

    }}

    Kemudian buat class dengan nama segitiga.java, pada Src yang sama, ketikan scriptdi bawah ini:

    package com.example.latih7_grafik_klasik;import java.nio.ByteBuffer;import java.nio.ByteOrder;import java.nio.FloatBuffer;import javax.microedition.khronos.egl.EGLConfig;import javax.microedition.khronos.opengles.GL10;import android.opengl.GLSurfaceView;public class segitiga implements GLSurfaceView.Renderer{private FloatBuffer triangle;public void onSurfaceCreated(GL10 gl, EGLConfig config) {

    // Set the background frame color to bluegl.glClearColor(0.0f, 0.0f, 0.9f, 1.0f);// initialize the triangle vertex arrayinitShapes();// Enable use of vertex arraysgl.glEnableClientState(GL10.GL_VERTEX_ARRAY);}public void onDrawFrame(GL10 gl) {// Redraw background colorgl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);// Draw the triangle using green colorgl.glColor4f(0.0f, 1.0f, 0.0f, 0.0f);gl.glVertexPointer(3, GL10.GL_FLOAT, 0, triangle);gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 3);}public void onSurfaceChanged(GL10 gl, int width, int height) {gl.glViewport(0, 0, width, height);}private void initShapes(){float vertices[] = {// (x, y, z) of triangle-0.6f, -0.5f, 0,0.6f, -0.5f, 0,0.0f, 0.5f, 0};// initialize vertex Buffer for triangle// argument=(# of coordinate values * 4 bytes per float)ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length * 4);// use the device hardwares native byte ordervbb.order(ByteOrder.nativeOrder());

  • YHPI -> hal : 63

    // create a floating point buffer from the ByteBuffertriangle = vbb.asFloatBuffer();// add the coordinates to the FloatBuffertriangle.put(vertices);// set the buffer to read the first vertex coordinatestriangle.position(0);}

    }

    VII.4. SOAL (UJI KEMAMPUAN),Kerjakan setiap permasalahan dengan menuliskan source code yangdibutuhkan, masing-masing simpan dengan nama file SOAL7_1, SOAL7_2, danSOAL7_3.1. Ubahlah latihan dengan merubah bentuk segitiga yang lain.2. Buat bentuk polygon 5, dan 6 sisi.3. Kembangkan ke dalam bentuk lingkaran.

  • YHPI -> hal : 64

    BAB VIIIIMAGE ATAU CITRA

    VIII.1. TUJUANMenampilkan, memodifikai, mengatur, dan analisa citra merupakan bagian dari pemrosesancitra, dan pemrosesan citra merupakan bagian dari grafik. Grafik dalam ilmu pemrogramandibedakan menjadi grafik klasik dan grafik moderen, klasik berkaitan dengan kurva danmoderen berkaitan dengan citra atau gambar dengan berbagai format seperti BMP, JPG, GIF,dan yang lain. Tujuan dari BAB kedelapan ini adalah,

    1. Mahasiswa mampu mengenal citra yang diimplementasikan ke dalam android2. Mahasiswa mampu mendesain project untuk memanggil, mengedit, menampilkan dan

    menyembunyikan citra.3. Mahasiswa mampu melakukan pengolahan citra sederhana di dalam android.

    VIII.2. TEORI DASARVIII.2.1 ImageAndroid secara umum mendukung 3 jenis format gambar, yaitu PNG, JPG, dan GIF. Gambaryang di simpan dalam folder res/layout/drawable, secara otomatis akan dikenal oleh android.Untuk SDK Android versi 1.6 terdapat beberapa direktori drawable, untuk keperluan resolusilayar yang berbeda-beda. Ada resolusi low, medium, dan high; nama-nama direktorinyaadalah drawable-mdpi, drawable-hdpi, dan drawable-ldpi. Android juga mengijinkan kita untukmembuat citra pada DPI yang berbeda untuk menambah penampilan pada aplikasi kita.Semua nama file harus menggunakan huruf kecil, dan bisa terdiri dari huruh, angka dan garisbawah.VIII.2.2 Memanggil ImageKomponen layout untuk menampilkan citra adalah elemen utama yang digunakan untukmenampilkan gambar di dalam android. Silakan coba copy kan gambar ke dalamres/layout/drawable-mdpi, dan usahakan ada file gambar yang bernama test kemudiantuliskan script sederhana ini ke dalam project anda

    Kemudian tambahkan script sederhana ini ke dalam file anda,public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);setContentView(R.layout.main);ImageView image = (ImageView) findViewById(R.id.test_image);

  • YHPI -> hal : 65

    Kemudian coba running project anda, anda akan mendapatkan bahwa gambar tidak langsungtampil tetapi dlam proses memanggil gambar.

    VIII.2.3. Menampilkan ImageMengubah citra yang dilakukan dengan menggunakan bantuan komponen object ImageViewuntuk memanggil sekalian menampilkan citra, sehingga citra lama yang tampil di screen akanganti dengan citra yang di set seperti di bawah ini:

    public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);ImageView image = (ImageView) findViewById(R.id.test_image);image.setImageResource(R.drawable.test2);

    VIII.3. LATIHAN PROGRAM :Pada Bab ini kita akan mencoba melakukan latihan untuk memanggil, menampilkan,

    memutar, dan melakukan deteksi tepi. Yang perlua anda persiapkan adalah mengkopikan citrasembarang ke dalam folder yang diminta dalam script, dan ubah namanya sesuai dengan yangdiminta dalam script.VIII.3.1. Menampilkan Gambar antena, untuk itu copykan gambar antena pada src ->

    drawable, file antena1; kemudian juga kopikan file ball_small pada direktoriyang sama, kemudian ikuti langkah berikut:

    1. Buat aplikasi dengan nama gb1, dan nama yang untuk yang lain.2. Buat desain seperti di bawah ini:

    Gambar 8.1 Desain Panggil Gambar3. Tambahkan script yang ada dalam lingkaran berikut, pada file gb1.XML

  • YHPI -> hal : 66

    Gambar 8.2. Coding gb1.XMLb4. Ketikkan script untuk gb1.java berikut:

    package com.example.gb1;

    import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.widget.ImageView;public class Gb1Activity extends Activity {

    @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.gb1);

    }public void tampil (View v){ImageView gb1=(ImageView)findViewById(R.id.imageView1);gb1.setImageResource(R.drawable.ball_small);

    }@Overridepublic boolean onCreateOptionsMenu(Menu menu) {

  • YHPI -> hal : 67

    getMenuInflater().inflate(R.menu.gb1, menu);return true;}

    }VIII.3.2. Latihan Pemrosesan Citra Putar, Brightness, Grey Scale, dan deteksi tepi. Ikuti

    langkah berikut ini:1. Buat aplikasi project dengan nama Gambar2, dan berikan nama yang sama untuk

    semua file.2. Copykan file gambar atau foto pada folder src->drawable dan ubah namanya menjadi

    bapak.3. Buat desain seperti di bawah ini:

    Gambar 8.2. Desain Aplikasi project Gambar24. Ketikan script berikut:

  • YHPI -> hal : 68

    android:layout_centerVertical="true"android:text="@string/hello_world"tools:context=".Gambar2Activity" />

    5. Ketikkan script untuk string berikut:

    gambar2

  • YHPI -> hal : 69

    Hello world!Settingsgambar2putarpencahayaangrey scaleGaris Tepi

    6. Ketikkan coding berikut pada file java,package com.example.gambar2;

    import com.example.gambar2.R.id;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Color;import android.widget.ImageView;import android.graphics.Matrix;public class Gambar2Activity extends Activity {

    @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.gambar2);

    }//===========================================================public void putar(){

    ImageView image;Bitmap bMap;Matrix matrix;//Get ImageView from layout xml fileimage = (ImageView) findViewById(R.id.imageView1);//Decode Image using Bitmap factory.bMap = BitmapFactory.decodeResource(getResources(),

    R.drawable.bapak);//Create object of new Matrix.matrix = new Matrix();//set image rotation value to 45 degrees in matrix.matrix.postRotate(45);//matrix.postTranslate(400, 5);//Create bitmap with new values.Bitmap bMapRotate = Bitmap.createBitmap(bMap, 0, 0,

    bMap.getWidth(), bMap.getHeight(), matrix, true);//put rotated image in ImageView.image.setImageBitmap(bMapRotate);

    }

  • YHPI -> hal : 70

    public void tekan (View vew){putar();

    }//==================================================================public void cahaya(int cahayaofset){

    ImageView image;Bitmap bMap;Matrix matrix;

    //Get ImageView from layout xml fileimage = (ImageView) findViewById(R.id.imageView1);//Decode Image using Bitmap factory.bMap = BitmapFactory.decodeResource(getResources(),

    R.drawable.bapak);int lbr=bMap.getWidth();int tg=bMap.getHeight();int[] ttk=new int[lbr*tg];bMap.getPixels(ttk, 0, lbr, 0, 0, lbr, tg);int indek=0;for(int y=0; y 16) & 0xff;int g = (ttk[indek] >> 8) & 0xff;int b = ttk[indek]& 0xff;

    r = Math.max(0, Math.min(255, r+ cahayaofset));g = Math.max(0, Math.min(255, g+ cahayaofset));b = Math.max(0, Math.min(255, b+ cahayaofset));ttk[indek++]=0xff000000|(r

  • YHPI -> hal : 71

    int indek=0;for(int y=0; y 16) & 0xff;int g0 = (ttk[indek] >> 8) & 0xff;int b0 = ttk[indek]& 0xff;int r = Math.round((r0+g0+b0)/3);int g = Math.round((r0+g0+b0)/3);int b = Math.round((r0+g0+b0)/3);ttk[indek++]=0xff000000|(r

  • YHPI -> hal : 72

    int s2=Math.abs(vp3-vp1);if (s1>=batas && vp1>=batas){ int warna = Color.rgb(255, 255, 255);

    bMap1.setPixel(x, y, warna);}if (s1>=batas && vp1>=batas){ int warna = Color.rgb(255, 255, 255);

    bMap1.setPixel(x-1, y, warna);}if (s2>=batas && vp1>=batas){ int warna = Color.rgb(255, 255, 255);

    bMap1.setPixel(x, y, warna);}if (s2>=batas && vp1>=batas){ int warna = Color.rgb(255, 255, 255);

    bMap1.setPixel(x, y-1, warna);}

    }}image.setImageBitmap(bMap1);

    }public void tekan4 (View vew){tepi();

    }//========================================================

    @Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.gambar2, menu);return true;

    }}

    VIII.4. SOAL (UJI KEMAMPUAN)Kerjakan setiap permasalahan dengan menuliskan strukur aplikasinya dan jugabuat desain, tuliskan script masing masing element yang berkaitan simpan kedalam SOAL8_1, dan SOAL8_21. Buat desain dengan menampilkan sebuah gambar apa saja, kemudian olah gambar

    tersebut, zooming, filter, dan contrast.2. Fotolah suatu tempat kemudian simpan filenya dengan backgroud, dan foto pada tempat

    yang sama dengan meletakkan obyek, boleh sepeda motor, orang atau apa saja, kemudiansimpan filenya dengan campuran. Kemudan lakukan pengolahan citra dengan memisahkanobyek dengan backgroundnya, sebagai petunjuk bisa gunakan metode XOR, atausubstracting.

  • YHPI -> hal : 73

    BAB IXDATABASE SEDERHANA

    IX.1. TUJUANPemrograman berorientasi objek merupakan paradigma pemrograman yang semua data dangfungsi dibungkus dalam kelas-kelas atau obyek-obyek. Tujuan dari BAB kesembilan iniadalah,

    1. Mahasiswa mampu membandingkan pemrograman antara logika terstrukur denganlogika berorientasi obyek.

    2. Mahasiswa mampu menyusun permasalahan dalam struktur dan kelas.3. Mahasiswa mampu mendesain sebuah program dengan memanfaatkan struct dan

    class sebagai elemen OOP.

    IX.2. TEORI DASARKita sebagai pengguna program Android sangat beruntung karena Android menyediakansebuah database yang secara default yang sudah ada di dalam library Android, yaitu SQLite.Untuk keperluan operasi database pada smartphone atau tablet Android, SQLite sangatmemadai karena ukurannya yang kecil, cepat dan ringan dalam hal sumber daya. Karenasifatnya sebagai embedded database, SQLite tidak memiliki server namun bentuknya adalahlibrary yang akan dipanggil saat program dijalankan. Seperti halnya database pada umumnya,SQLite memiliki objek-objek seperti table, view dan index. Perintah-perintah SQL-nya punsangat mirip seperti yang biasa digunakan yaitu SELECT, INSERT, UPDATE, DELETE dansebagainya. Informasi mengenai SQLite dapat dibaca secara lengkap pada situs resminya di:dari http://www.sqlite.org, yaitu:

    Pada umumnya aplikasi dengan embedded database tidak menyertakan database yang sudahberbentuk pada saat aplikasi itu diinstal pada perangkat. Jadi yang diinstal hanya programnya,sedangkan databasenya tidak ada sama sekali. Database akan dibuat pada saat aplikasi itudijalankan pertama kali, yaitu program akan memeriksa apakah database ditemukan. Jikadatabase tidak ditemukan maka serangkaian perintah SQL akan menjalankan perintah

  • YHPI -> hal : 74

    CREATE yang akan membentuk file database diikuti dengan table-table di dalamnya.Tentunya programmer harus membuat sendiri perintah SQL tersebut secara spesifiktergantung struktur data di dalam aplikasi yang dibuatnya. Ini adalah teknik yang biasanyadigunakan programmer dalam membuat sebuah aplikasi dengan embedded database dimanaia tidak menyertakan file database di dalam paket instalasi aplikasi.

    IX.3. LATIHAN PROGRAM :Membuat Database sederhana, yaitu create, append,...., dan yang lainnya

    IX.3.1. Pada Tahap ini kita membuat database sederhana, untuk itu ikuti langkah-langkahberikut ini:

    1. Jalankan program Eclipse dan buat sebuah Android Project baru.2. Buat Project dengan nama DBProject13. Gunakan Android 2.34. Berikan nama yang sama untuk beberapa file yang lain5. Tambahkan sebuah class baru dan beri nama DBAdapter.

    Tekan Finish untuk melanjutkan.Tambahkan perintah import berikut ini pada program header DBAdapter.java.

    4. Perhatikan beberapa library SQLite yang akan digunakan disebutkan di situ.

  • YHPI -> hal : 75

    ==============================================================import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.SQLException;import android.database.sqlite.SQLiteDatabase;import ndroid.database.sqlite.SQLiteOpenHelper; importandroid.util.Log;

    5. Ketikkan skrip berikut ini di dalam class DBAdapter. Perhatikan class ini mengandungsebuah constructor DBAdapter(Context) untuk menginisiasi class, kemudian methodopen dan closemasing-masing untuk membuka dan menutup database.public class DbAdapter {private static final String TAG="DbAdapter"; private static finalString DATABASE_NAME="books"; private static final intDATABASE_VERSION=1;private static final String TABLE_CREATE = "create table titles (_idintegerprimary key autoincrement, "+ "isbn text not null, title text not null, "+ "publisher text not null)";private static final String TABLE_DROP = "DROP TABLE IF EXISTStitles";private final Context context; private DatabaseHelper dbHelper;private SQLiteDatabase db;public DbAdapter(Context ctx) {this.context = ctx;dbHelper = new DatabaseHelper(this.context);}private static class DatabaseHelper extends SQLiteOpenHelper {DatabaseHelper(Context ctx) {super(ctx, DATABASE_NAME, null, DATABASE_VERSION);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL(TABLE_CREATE);

    @Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, intnewVersion) { Log.w(TAG, "Upgrading database from version " +oldVersion + " to " + newVersion

    + ", which will destroy all old data");db.execSQL(TABLE_DROP);onCreate(db);}}public DbAdapter open() throwsSQLException { db =dbHelper.getWritableDatabase();return this; }

    public void close() {dbHelper.close();}}

    6. Sampai tahap ini jalankan aplikasi tersebut untuk menguji-coba dengan cara klik-kanannama pada projek di dalam Package Explorer, kemudian pilih Run As Android

  • YHPI -> hal : 76

    Application.

    7. Tunggu sejenak sampai emulator Android ditampilkan dan menjalankan aplikasi ini.Sepintas Anda tidak akan melihat sesuatu yang istimewa pada tampilan aplikasitersebut, kecuali sebuah pesan yang muncul pada emulator.

    8. Perhatikan potongan-potongan program berikut:MainActivity.java DBAdapter.javaDBAdapter db = new DBAdapter(this); public DBAdapter(Context ctx) {

    this.context = ctx;dbHelper = new DatabaseHelper this.context);

    }private static class DatabaseHelper extendsSQLiteOpenHelper {

    DatabaseHelper(Context ctx) {super(ctx, DATABASE_NAME, null,

    DATABASE_VERSION);}@Overridepublic void onCreate(SQLiteDatabase db) {

    db.execSQL(TABLE_CREATE);}private static final String TABLE_CREATE ="create table titles (_id integer primary keyautoincrement, "+ "isbn text not null, title text not null, "+ "publisher text not null)";

    Saat MainActivity.java membuat objek DBAdapter dengan di dalam baris DBAdapter db= new DBAdapter(this); maka rangkaian pemanggilan baris-baris program lainnya akandijalankan seperti diperlihatkan pada gambar di atas, seperti pembuatan objekDatabaseHelper dan pemanggilan method super, onCreate dan terakhir yang berujungpada dijalankannya method execSQL untuk membuat sebuah table bernama titles.Tanpa disadari sebuah file database bernama books dengan sebuah table titles didalamnya telah terbentuk. Lalu sekarang bagaimana memastikan database ini telahterbentuk? Satu- satunya cara tentunya harus menemukan bahwa file database itumemang ada, bukan?a. Jalankan menuWindow -> Open Perpective -> DDMS atau cukup meng-klik icon

    DDMS, perpective pada sudut kanan-atas layar.

  • YHPI -> hal : 77

    b. Pada tab File Explorer, buka folder data -> data.

    c. Cari nama package dari projek ini (pada contoh ini adalah net.houseoflife.dbsample),kemudian buka foldernya hingga ditemukan folder databases dan sebuah filedatabase di dalamnya. Itu adalah file database SQLite yang dibentuk oleh aplikasitersebut.

    File database SQLite yang tampak pada File Explorer perlu dibuka untuk memastikansebuah table telah terbentuk di dalamnya. Database itu tidak dapat langsung dibuka di dalamEclipse tetapi harus dibuka menggunakan sebuah program yang bernama SQLite Manager.Program ini akan dijelaskan kemudian, tetapi untuk saat ini file database ini harus dibawakeluar dari emulator agar bisa diakses dari komputer lokal.1. Pastikan file database disorot/dipilih pada File Explorer, kemudian klik icon dengan

    tulisan Pull a file from the device pada sudut kanan-atas layar.

  • YHPI -> hal : 78

    2. Simpan file tersebut pada komputer lokalSQLite Manager adalah sebuah program yang sangat membantu programmer dalammengelola database SQLite seperti membuat table, index dan menjalankan perintah-perintah SQL. Program ini sangat mudah digunakan dan betul-betul bermanfaat untukberbagai keperluan praktis. Satu hal lagi yang tidak kalah pentingnya: program ini gratis

    IX.4. SOAL(UJI KEMAMPUAN)Buat Database Sederhana dengan menggunakan SQL LITE SOAL9_1, danSOAL9_21. Buat program untuk mengisi data dan menampilkan data biodata.2. Buat program dengan membuat desain reseler, transaksi penjualan (kasir) sederhana.

  • YHPI -> hal : 79

    BAB X(PERTEMUAN INI)

    s.d.(PERTEMUAN KELIMA BELAS)

    PresentasiImplementasikan Materi bab I s.d. XII kemudian desailah sebuah project,dimana masing-masing mahasiswa wajib membuat project, kemudiandikumpulkan dan di presentasikan!Setiap Pertemuan Siswa wajib menunjukkan kemajuan project yangdikerjakan, jika tidak ada kemajuan maka siswa diberi hukuman

  • YHPI -> hal : 80

    SELAMAT BEKERJA, BELAJAR DAN SEMOGA ALLAHSELALU MELIMPAHKAN ILMU YANG BERMANFAAT

    DUNIA DAN AKHIRAT KEPADA KITA SEMUAAMIN 99X

  • YHPI -> hal : 81

    DAFTAR PUSTAKA

    Dimarzio,J.F,2008, Android A Programers Guide, MC Graw Hill, New York Chicago SanFrancisco Lisbon London Madrid City.

    Huang, Jim, 2011, Android Graphics, Oxlab Developer & Co-Founder.

    Merier, Reto, 2009, Android Aplication Development, Wiley Publishing, Inc, United States ofAmerica.

    Djunaedi, Feri, 2011, Menggunakan Database di Android