Upload
altrypurba
View
171
Download
0
Embed Size (px)
Citation preview
0
Pemrograman Mobile
(Aplikasi Let’s Count)
Pengampu: I Putu Agus Eka Pratama S.T., M.T.
Disusun Oleh:
Joysun Agape Sianturi (1404505080)
Altry David Purba (1404505099)
JURUSAN TEKNOLOGI INFORMASI
FAKULTAS TEKNIK
UNIVERSITAS UDAYANA
2016
i
KATA PENANTAR
Puji syukur penulis panjatkan kehadirat Tuhan yang Mahakuasa karena
laporan pembuatan aplikasi ini telah dapat diselesaikan dengan baik dan tepat
pada waktunya. Laporan ini memuat bahasan “Implementasi Aplikasi Let’s
Count”
Dalam penyelesaian laporan pembuatan aplikasi ini tidak terlepas dari
bimbingan dosen pengampu mata kuliah Pemrograman Mobile yaitu bapak I Putu
Agus Eka Pratama S.T., M.T. dan bantuan dari berbagai pihak lainnya. Oleh
karena itu, penulis mengucapkan terima kasih atas bimbingan serta bantuannya
dalam penyelesaian penulisan laporan penelitian ini.
Penulis menyadari bahwa masih banyak kekurangan yang mendasar pada
penulisan laporan ini. Oleh karena itu, penulis berharap kepada para pembaca
sekalian untuk memberikan kritik serta saran yang membangun untuk
penyempurnaan laporan-laporan selanjutnya.
Akhir kata, semoga laporan ini dapat memberikan manfaat bagi kita
sekalian. Sekian dan terima kasih.
Bukit Jimbaran, Mei 2016
Penulis
ii
DAFTAR ISI
Kata Pengantar ............................................................................................. i
Daftar Isi ........................................................................................................ ii
Bab I PENDAHULUAN
1.1 Latar Belakang ............................................................................ 1
1.2 Rumusan Masalah ....................................................................... 1
1.3 Tujuan ......................................................................................... 2
1.4 Solusi .......................................................................................... 2
Bab II TINJAUAN PUSTAKA
2.1 Pemrograman Mobile ................................................................. 3
2.2 Object Oriented Programing (OOP) ........................................... 3
2.3 Unfied Modeling Language (UML) ........................................... 4
2.4 Android OS ................................................................................. 6
2.5 Android Studio............................................................................ 9
2.6 Bahasa Pemrogman Java ............................................................ 10
2.7 Emulator ..................................................................................... 10
2.8 Penjumlahan dan Pengurangan ................................................... 11
Bab III DESAIN DAN IMPLEMENTASI
3.1 Gambaran Umum Sistem ............................................................ 12
3.2 Struktur Navigasi ........................................................................ 12
3.3 Desain UML ............................................................................... 14
3.3.1 Sequence Diagram ............................................................. 14
3.3.1 Usecase Diagram ............................................................... 15
3.3.1 Class Diagram ................................................................... 16
3.4 Source Code Aplikasi Let’s Count ............................................. 16
3.5 Implementasi Perancangan Interface .......................................... 48
3.5.1 Rancangan Interface Halaman Utama ............................... 48
3.5.2 Rancangan Interface Halaman Menu Penjumlahan .......... 49
3.5.3 Rancangan Interface Halaman Menu Pengurangan .......... 49
3.5.4 Rancangan Interface Halaman Hasil ................................. 50
3.5.5 Rancangan Interface Halaman Menu About ..................... 51
iii
3.5.6 Rancangan Interface Keluar dari Aplikasi ........................ 52
BAB IV KESIMPULAN
4.1 Kesimpulan ..................................................................................... 54
4.1 Saran ............................................................................................... 54
DAFTAR PUSAKA ....................................................................................... 55
1
BAB I
PENDAHULAN
1.1 Latar Belakang
Ilmu pengetahuan dan teknologi selalu berkembang pesat sesuai dengan
perkembangan zaman dan perkembangan curah pikir manusia. Berbicara tentang
teknologi dan informasi, komputer merupakan salah satu bentuk teknologi yang
perkembangannya sangat maju dari zaman ke zaman sehingga merupakan suatu
media elektronik yang memegang peranan yang sangat penting pada
perkembangan teknologi saat ini.
Pada zaman sekarang perkembangan aplikasi-aplikasi edukasi semakin
meningkat pesat dan populer seiring dengan majunya perkembangan teknologi
informasi. Proses pembelajaran dapat dilakukan dengan cara apapun yaitu
melalui buku, suara, gambar, video bahkan sebuah game. Aplikasi edukasi
semakin canggih sehingga dapat dinikmati melalui berbagai macam media yaitu
seperti komputer desktop, website, handphone, dan juga smartphone.
Bagi beberapa orang tua memberikan pengajaran kepada anak-anak
berusia di bawah lima tahun, masih menjadi hal yang tabu. Meraka masih merasa
kesulitan untuk memberikan pengajaran khususnya dalam bidang hitung
menghitung.
Atas dasar hal tersebut penulis tertarik untuk mengembangkan sebuah
aplikasi sederhana yang dapat membantu anak-anak untuk dapat berhitung seperti
penjumlahan dan pengurangan. Aplikasi yang dikembangkan ini akan dirancang
dengan menarik yang dapat memacu niat anak-anak untuk menggunakan aplikasi
edukasi tersebut.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah di paparkan dapat dapat ditarik
beberara rumusan masalah yaitu :
1. Apa tujuan pembuatan sebuah aplikasi edukasi belajar berhitung bagi
anak-anak usis balita?
2
2. Bagaimana cara perancangan aplikasi Let’s Count dengan menggunakan
pemrograman mobile android?
1.3 Tujuan
Tujuan yang akan dicapai berdasarkan rumusan masalah yang telah di
identifikasi adalah untuk memnciptakan sebuah aplikasi edukasi yang membantu
anak-anak balita dalam belajar berhitung seperti penjumlahan dan pengurangan.
1.4 Solusi
Solusi yang dapat ditawarkan penulis adalah menciptakan sebuah aplikasi
edukasi berbasis android yang berguna untuk membantu anak-anak untuk belajar
berhitung. Kemudahan yang diberikan oleh aplikasi ini akan memberikan manfaat
yang sangat signifikan bagi user. Salah satunya adalah memberikan gambaran
atau pengetahuan kepada user cara berhitung yang mudah dengan menggunakan
pendekatan grafis seperti penggunaan gambar. Fitur yang disediakan aplikasi ini
adalah user dapat memilih menu yang diinginkan apakah ingin memilih latihan
penjumlahan dan pengurangan.
Cara penggunaan aplikasi ini adalah user terlebih dahulu membuka
aplikasi, kemudian dilanjutkan memilih menu perhitngan yang ingin dipelajari,
kemudian setelah user memilih diantara kedua menu tersebut maka aplikasi akan
menampilkan soal-soal latihan dengan betuk menghitung gambar yang disediakan
oleh sistem, untuk menjawabnya user cukup memilih pilihan jawaban yang terdiri
dari 2 pilihan yaitu A dan B. Setelah setiap soal telah terjawab maka user dapat
memilih button check untuk melihat hasil/skor dan jawaban yang benar. Jika ingin
mengulang kembali latihannya user dapat memilih button Try Again dan jika
ingin kembali kehalaman utama user dapat memeilih button Menu.
3
BAB II
TINJAUAN PUSTAKA
2.1 Pemrograman Mobile
Pemrograman Mobile adalah pemrograman yang ditujukan untuk
pembuatan aplikasi diperangkat mobile yang dapat dibuat dengan menggunakan
Java. Keterbatasan yang sangat umum dalam bahasa pemrograman untuk
peralatan mobile adalah kendala dalan segala dalam hal sumber daya, seperti
ukuran layar, memori, CPU, penyimpanan dan cara menginput data. Perbedaan
tampilan juga disebabkan adanya perbedaan hardware dan API yang di gunakan.
Berikut macam-macam Mobile Programming untuk ponsel yaitu J2ME, C++,
Objective C, C#., Javafx, PHP.
2.2 Object Oriented Programming (OOP)
Pemrograman berorientasi objek (Inggris: object-oriented programming
disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada
objek atau kumpulan obyek yang berinteraksi satu sama lain. Program dalam
OOP membungkus (encapsulate) data dan fungsi (atau prosedur) dalam suatu
obyek yang umumnya diimplementasikan sebagai suatu kelas (class). Klasifikasi
obyek, pewarisan, dan message passing merupakan prinsip- prinsip dasar dalam
OOP. Karakteristik OOP adalah sebagai berikut.
1. Enkapsulasi (Pembungkusan). Enkapsulasi adalah pelindung program dan
data yang sedang diolah. Enkapsulasi mendefinisikan perilaku dan
melindungiprogram dan data agar tidak diakses secara sembarangan oleh
program lain. Dalam Java, dasar enkapsulasi adalah class.
2. Inheritansi. Inheritansi adalah objek-objek yang berada di sekitar kita
adalah objek-objek yang saling terhubung secara hirarkis.
3. Polimorfisme merupakan kemampuan objekobjek yang berbeda kelas
namun terkait dalam pewarisan untuk merespon secara berbeda terhadap
suatu pesan yang sama. Polimorfisme juga dapat dikatakan kemampuan
sebuah objek untuk memutuskan method mana yang akan diterapkan
padanya, tergantung letak objek tersebut pada jenjang pewarisan
4
Dalam konsep Pemrograman Berorientasi Objek dikenal beberapa istilah
umum, yaitu:
1. Attribute
Atribut dari sebuah kelas adalah variabel global yang dimiliki sebuah kelas,
Atribut dapat memiliki hak akses private, public maupun protected.
Sebuah atribut yang dinyatakan sebagai private hanya dapat diakses secara
langsung oleh kelas yang membungkusnya, sedangkan kelas lainnya tidak dapat
mengakses atribut ini secara langsung.
2. Method
Method adalah fungsi atau prosedur yang dibuat oleh seorang programmer
didalam suatu Class. Dengan kata lain, method pada sebuah kelas hampir sama
dengan fungsi atau prosedur pada pemrograman prosedural.
3. Class
Class merupakan model yang berisi kumpulan attribute dan method dalam
suatu unit untuk suatu tujuan tertentu. Sebagai contoh class manusia memiliki
attribute berat, tinggi, usia kemudian memiliki method makan, minum, tidur.
Method dalam sebuah class dapat merubah attribute yang dimiliki oleh class
tersebut. Sebuah class merupakan dasar dari modularitas dan struktur dalam
pemrograman berorientasi object.
4. Object
Object merupakan perwujudan dari class, setiap object akan mempunyai
attribute dan method yang dimiliki oleh class-nya, contohnya: amir, ahmad, yani
merupakan object dari class manusia. Setiap object dapat berinteraksi dengan
object lainnya meskipun berasal dari class yang berbeda.
2.3 UML (Unified Modeling Language)
Menurut Booch (2005) UML adalah Bahasa standar untuk membuat
rancangan software. UML biasanya digunakan untuk menggambarkan dan
membangun, dokumen artifak dari software –intensive sistem.
Menurut Nugroho (2010), UML (Unified Modeling Language) adalah
‘bahasa’ pemodelan untuk sistem atau perangkat lunak yang berparadigma
‘berorientasi objek”. Pemodelan (modeling) sesungguhnya digunakan untuk
5
penyederhanaan permasalahan-permasalahan yang kompleks sedemikian rupa
sehingga lebih mudah dipelajari dan dipahami.
Secara umum pengertian Unfied Modeling Language adalah UML adalah
suatu bahasa yang digunakan untuk menentukan, memvisualisasikan,
membangun, dan mendokumentasikan suatu sistem informasi. UML dapat
digunakan untuk memahami dan mendokumentasikan setiap sistem informasi.
Penggunaan UML merupakan standar terbuka yang menjadikannya sebagai
bahasa pemodelan yang umum dalam industri peranti lunak dan pengembangan
sistem.
1. Diagram kelas (Class Diagram). Diagram yang menggambarkan interaksi
antara sistem dan aktor juga dapat men-deskripsikan tipe interaksi antara si
pemakai sistem dengan sistemnya. kolaborasi, serta relasi-relasi. Diagram
ini umum dijumpai pada pemodelan sistem berorientasi objek.
2. Diagram paket (Package Diagram). Diagram ini memperlihatkan
kumpulan kelas-kelas, merupakan bagian dari diagram komponen.
3. Diagram use-case (Usecase Diagram). Diagram ini memperlihatkan
himpunan use-case dan aktor-aktor (suatu jenis khusus dari kelas).
4. Diagram interaksi dan sequence (Sequence Diagram). Diagram urutan
adalah interaksi yang menekankan pada pengiriman pesan dalam suatu
waktu tertentu.
5. Diagram komunikasi (Communication Diagram). Diagram ini
menekankan organisasi struktural dari objek-objek yang menerima serta
mengirim pesan.
6. Diagram statechart (Statechart Diagram). Diagram status
memperlihatkan keadaan-keadaan pada sistem, memuat status (state),
transisi, kejadian serta aktivitas.
7. Diagram aktivitas (Activity Diagram). Diagram aktivitas adalah tipe
khusus dari diagram status yang memperlihatkan aliran dari suatu suatu
aktivitas ke aktivitas lainnya dalam suatu sistem.
8. Diagram komponen (Component Diagram). Diagram komponen ini
memperlihatkan organisasi serta kebergantungan sistem/perangkat lunak
pada komponen-komponen yang telah ada sebelumnya.
6
9. Diagram deployment (Deployment Diagram). Diagram
inimemperlihatkan konfigurasi saat aplikasi dijalankan (run-time).
2.4 Android OS
Android adalah sistem operasi untuk telepon seluler yang berbasis Linux.
Sistem operasi Android dimiliki oleh Google Inc selaku perusahaan raksasa.
Bersama dengan sekitar 34 perusahaan peranti keras, peranti lunak, dan
telekomunikasi seperti HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia.
Google Inc akhirnya membentuk Open Handset Alliance, yang tujuannya
mengembangkan sistem operasi Android, hingga ia menjadi salah satu sistem
operasi paling populer saat ini mengalahkan iOS, Windows Phone, dan
BlackBerry.
Dalam membangun sebuah aplikasi yang berbasis android dibutuhkan
pemahaman terhadap Arsitektur sistem operasi Android yaitu sperti gambar
berikut.
Gambar 2.1 Arsitektur Android OS
Penjelasan dari arsitektur sistem operasi android diatas adalah bahwa alam
paket sistem operasi android tediri dari beberapa unsur seperti tampak pada
gambar di bawah. Secara sederhana arsitektur android merupakan sebuah kernel
7
Linux dan sekumpulan pustaka C / C++ dalam suatu framework yang
menyediakan dan mengatur alur proses aplikasi. Berikut ini adalah bagian-bagian
arsitektur sistem operasi android.
1. Linux Kernel
Android dibangun di atas kernel Linux 2.6. Namun secara keseluruhan
android bukanlah linux, karena dalam android tidak terdapat paket standar yang
dimiliki oleh linux lainnya. Linux merupakan sistem operasi terbuka yang handal
dalam manajemen memori dan proses. Oleh karenanya pada android hanya
terdapat beberapa servis yang diperlukan seperti keamanan, manajemen memori,
manajemen proses, jaringan dan driver. Kernel linux menyediakan driver layar,
kamera, keypad, WiFi, Flash Memory, audio, dan IPC (Interprocess
Communication) untuk mengatur aplikasi dan lubang keamanan.
2. Libraries
Android menggunakan beberapa paket pustaka yang terdapat pada C/C++
dengan standar Berkeley Software Distribution (BSD) hanya setengah dari yang
aslinya untuk tertanam pada kernel Linux. Beberapa pustaka diantaranya:
1) Media Library untuk memutar dan merekam format audio dan video.
2) Surface Manager untuk mengatur hak akses layer dari berbagai aplikasi.
3) Graphic Library untuk tampilan 2D dan 3D.
4) SQLite untuk mengatur relasi database yang digunakan pada aplikasi.
2 Android Runtime
Android Runtime merupakan mesin virtual yang membuat aplikasi android
menjadi lebih tangguh dengan paket pustaka yang telah ada. Dalam Android
Runtime terdapat 2 bagian utama, diantaranya:
1 Pustaka Inti, android dikembangkan melalui bahasa pemrograman Java.
Pustaka inti android menyediakan hampir semua fungsi yang terdapat pada
pustaka Java serta beberapa pustaka khusus android.
2 Mesin Virtual Dalvik. Dalvik hanyalah interpreter mesin virtual yang
mengeksekusi file dalam format Dalvik Executable (*.dex). Dengan
8
format ini Dalvik akan mengoptimalkan efisiensi penyimpanan dan
pengalamatan memori pada file yang dieksekusi.
3 Application Framework
Kerangka aplikasi menyediakan kelas-kelas yang dapat digunakan untuk
mengembangkan aplikasi android. Selain itu, juga menyediakan abstraksi generik
untuk mengakses perangkat, serta mengatur tampilan user interface dan sumber
daya aplikasi. Bagian terpenting dalam kerangka aplikasi android adalah sebagai
berikut
1) Activity Manager berfungsi untuk mengontrol siklus hidup aplikasi dan
menjaga keadaan “Backstack” untuk navigasi penggunaan.
2) Content Providers berfungsi untuk merangkum data yang memungkinkan
digunakan oleh aplikasi lainnya, seperti daftar nama.
3) Resuource Manager untuk mengatur sumber daya yang ada dalam
program. Serta menyediakan akses sumber daya diluar kode program,
seperti karakter, grafik, dan file layout.
4) Location Manager berfungsi untuk memberikan informasi detail mengenai
lokasi perangkat android berada.
5) Notification Manager mencakup berbagai macam peringatan seperti, pesan
masuk, janji, dan lain sebagainya yang akan ditampilkan pada status bar.
4 Application Layer
Puncak dari diagram arsitektur android adalah lapisan aplikasi dan widget.
Lapisan aplikasi merupakan lapisan yang paling tampak pada pengguna ketika
menjalankan program. Pengguna hanya akan melihat program ketika digunakan
tanpa mengetahui proses yang terjadi dibalik lapisan aplikasi. Lapisan ini berjalan
dalam Android runtime dengan menggunakan kelas dan service yang tersedia
pada framework aplikasi. Lapisan aplikasi android sangat berbeda dibandingkan
dengan sistem operasi lainnya. Pada android semua aplikasi, baik aplikasi inti
(native) maupun aplikasi pihak ketiga berjalan diatas lapisan aplikasi dengan
menggunakan pustaka API (Application Programming Interface) yang sama.
9
2.5 Android Studio
Android Studio adalah sebuah IDE untuk Android Development yang
diperkenalkan google pada acara Google I/O 2013. Android Studio merupakan
pengembangkan dari Eclipse IDE, dan dibuat berdasarkan IDE Java populer, yaitu
IntelliJ IDEA. Android Studio merupakan IDE resmi untuk pengembangan
aplikasi Android.
Sebagai pengembangan dari Eclipse, Android Studio mempunyai banyak
fitur-fitur baru dibandingkan dengan Eclipse IDE. Berbeda dengan Eclipse yang
menggunakan Ant, Android Studio menggunakan Gradle sebagai build
environment. Fitur-fitur lainnya adalah Menggunakan Gradle-based build system
yang fleksibel, mem-build multiple APK, template support untuk Google
Services dan berbagai macam tipe perangkat, layout editor yang lebih bagus,
Built-in support untuk Google Cloud Platform, sehingga mudah untuk integrasi
dengan Google Cloud Messaging dan App Engine, import library langsung dari
Maven repository.
2.6 Bahasa Pemrograman Java
Java adalah bahasa pemrograman yang multi platform dan multi device.
Sekali anda menuliskan sebuah program dengan menggunakan Java, anda dapat
menjalankannya hampir di semua komputer dan perangkat lain yang support Java,
dengan sedikit perubahan atau tanpa perubahan sama sekali dalam kodenya.
Aplikasi dengan berbasis Java ini dikompulasikan ke dalam p-code dan bisa
dijalankan dengan Java Virtual Machine.
Kelebihan Java yang pertama tentu saja multiplatform. Java dapat
dijalankan dalam beberapa platform komputer dan sistem operasi yang berbeda.
Yang kedua adalah OOP atau Object Oriented Programming. Java memiliki
library yang lengkap. Library disini adalah sebuah kumpulan dari program yang
disertakan dalam Java. Kekurangan yang dimiliki oleh Java adalah pada satu
slogannya, yakni “Tulis sekali dan jalankan dimana saja” ternyata tidak
sepenuhnya benar. Beberapa hal harus disesuaikan jika dijalankan pada platform
yang berbeda. Kekurangan Java yang lain adalah penggunaan memori yang cukup
banyak, lebih besar daripada bahasa tingkat tinggi sebelum generasi Java.
10
2.7 Emulator
Emulator atau lebih tepatnya piranti lunak emulator memungkinkan suatu
program atau piranti lunak yang dibuat pada awalnya oleh suatu sistem komputer
(arsitektur dan sistem operasi) dan untuk dijalankan dalam sistem itu (atau
dijalankan dalam suatu sistem yang didedikasikan), dapat dijalankan dalam sistem
komputer yang sama sekali berbeda. Sebagai contoh suatu program Windows
dapat dijalankan di sistem operasi Linux dengan menggunakan piranti lunak
emulator Wine. Ada pula program yang mengemulasikan suatu komputer dalam
komputer, misalnya VMware. Contoh lain adalah program-program emulator
untuk menjalankan permainan komputer yang awalnya hanya bisa dijalankan pada
konsolnya masing-masing, misalnya Nintendo, Atari, PlayStation, XBox dan lain-
lain. Emulator terdiri dari 2 jenis: single-system/dedicated emulator dan multi-
system emulator. Single-system/dedicated emulator hanya dapat meng-emulate 1
jenis sistem, sedangkan multi-system emulator dapat meng-emulate beberapa
jenis sistem sekaligus. Pada dasarnya kualitas single-system/dedicated emulator
lebih baik daripada multi-system emulator karena hanya didesain khusus untuk 1
jenis sistem sehingga kemungkinan untuk terjadi compatibility problem dapat
diminimalisasi. Selain itu kebutuhan resources untuk single-system/dedicated
emulator biasanya lebih kecil dibandingkan multi-system emulator.
Emulator adalah sebuah program yang membuat pengguna komputer bisa
merasakan sistem operasi tertentu seperti Android, iPhone atau atau program
lainnya yang tidak bisa dijalankan mandiri di komputer. Contoh real lainnya
adalah Emulator PS (play Station) dan penggunaan media sosial seperti
Whatsapp, Line, BBM atau aplikasi android lainnya tanpa harus membeli
perangkat android.
11
2.8 Penjumlahan dan Pengurangan
Penjumlahan adalah salah satu operasi aritmetika dasar. Perjumlahan
merupakan penambahan sekelompok bilangan atau lebih menjadi suatu bilangan
yang merupakan jumlah.
Penjumlahan juga dapat diartikan sebagai cara menemukan jumlah total
dua bilangan atau lebih. Tanda “+” dalam penjumlahan menunjukkan bahwa
bilangan-bilangan tersebut dijumlahkan”. Operasi penjumlahan dinyatakan
dengan rumus :
A + B = C
Pengurangan merupakan salah satu dari empat operasi dasar aritmetika,
dan pada prinsipnya merupakan kebalikan dari operasi perjumlahan. Operasi
perkurangan dinyatakan dengan tanda minus dalam notasi infix, dengan bentuk
rumus:
A – B = C
12
BAB III
DESAIN DAN IMPLEMENTASI
Pada bab ini akan dilakukan sedikit bahasan tentang desain serta
implementasi perancangan dari aplikasi menampilkan informasi profil negara,
kemudian akan diuraikan dengan menjelaskan sistem sehingga pengguna aplikasi
paham dan mengerti kegunaan aplikasi yang akan dibuat beserta gambaran untuk
menggambarkan rangkaian dari aktivitas yang terjadi dalam aplikasi.
3.1 Gambaran Umum Sistem
Aplikasi Let’s Count adalah aplikasi yang dikembangkan berbasis android
yang berfungsi untuk memberikan latihan penjumlahan bagi anak-anak dengan
menggunakan konsep gradfis, maksudnya angka yang dijumlahkan didesai dalam
bentuk gambar animasi. Tujuan dari mengembangkan aplikasi ini dengan
menggunakan pendekatan grafis yaitu agar user yang sasarannya adalah anak-
anak tertarik untuk menggunakan aplikasi Let’s Count. Berikut ini adalah
deskripsi umum aplikasi yang dikembangkan.
Gambar 3.1 Contoh Soal yang akan dibuat
Gambar 3.1 adalah contoh soal yang akan disajikan dalam aplikasi Let’s
Count. Untuk menjawab Pertanyaan tersebut akan disediakan jawaban berupa
pilihan a dan b yang ditampilkan langsung oleh aplikasi Let’s Count.
3.2 Struktur Navigasi
Dalam proses perancangan suatu aplikasi struktur navigasi merupakan hal
yang sangat penting, Struktur navigasi juga menjelaskan hubungan antar halaman
dan memberikan penjelasan mengenai alur cerita sebuah program atau aplikasi..
13
Pada aplikasi ini menggunakan struktur navigasi hirarki yaitu merupakan suatu
struktur yang mengandalkan percabangan untuk menampilkan data atau gambar
pada layer dengan kriteria tertentu. Berikut ini merupakan struktur navigasi dari
aplikasi Let’s Count.
Gambar 3.2 Struktur Navigasi Aplikasi Let’s Count
Pada Gambar 3.2 terdapat bentuk struktur hirarki yang menggambarkan
proses kerja dari aplikasi menampilkan Let’s Count. Dalam proses aplikasi ini
dimulai dari pengguna membuka aplikasi tersebut dan akan muncul halaman
utama, selanjutnya aplikasi ini akan menampilkan menu yaitu menu untuk
memlilih latihan penjumlahan atau pengurangan atau about. Setelah memilih
menunya maka akan ditampilkan soal latihan. Selanjutnya jika sudah selesai
menjawab soal latihan user memilih menu Check. Jika ingin keluar dari laman
hasil maka user dapat memilih button beck untuk kembali kehalam utama dan jika
ingin kembalingulang latihan dapat memilih button Try Again.
14
3.3 Desain UML
Dalam aplikasi untuk menampilkan profl sebuah negara terdapat
perancangan desain UML yaitu sequence diagram, use case diagram dan class
diagram. Berikut merupakan desain UML dari aplikasi Let’s Count.
3.3.1 Sequence Diagram
Sequence Diagram merupakan diagram yang menggambarkan interaksi
antar objek di dalam sebuah system atau aplikasi. Berikut merupakan sequence
diagram dari aplikasi menampilkan profil suatu negara.
Gambar 3.3 Sequence Diagram Aplikasi Lets Count
Gambar 3.3 merupakan sequence diagram aplikasi Let’s Count. Prosesnya
yaitu dimulai dari pengguna membuka aplikasi Let’s Count terdiri dari 3 menu
yaitu Penumlahan (+), Pengurangan (-) dan menu About. Setelah user masuk
kehalaman utama user dapat memilih ketiga menu tersebut. Jika memilih menu
penjumlahan maka soal latihan penjumlahan akan ditampilkan oleh sistem. Jika
memilih menu pengurangan maka soal latihan penguranagan akan ditampilkan
oleh sistem. Dan jika memilih menu about akan ditampilkan deskripsi aplikasi dan
nama yang membuat aplikasi tersebut. Selanjutnya pada bagian halaman Menu
penjumlahan dan penurangan dilengkapi button Check untuk melihat hasil
jawaban yang telah dipilih. Pada halaman Check Hasil terdapat 2 button yaitu Try
Again dan Beck. Button Try Again berguna untuk melakukan/mencoba kembali
15
latiha perhngannya dan button Beck berfungsi untuk kembali ke halaman utama
aplikasi
3.3.2 Use Case Diagram
Use case adalah rangkaian/uraian sekelompok yang saling terkait dan
membentuk sistem secara teratur yang dilakukan atau diawasi oleh sebuah aktor.
Use case digunaka untuk membentuk tingkah laku benda/thing dalam sebuah
mode serta direalisasikan oleh sebuah collaborato. Berikut merupakan use case
diagram dari aplikasi memampilkan informasi profil negara.
Gambar 3.4 Use Case Diagram Let’s Count
Pada Gambar 3.4 merupakan use case diagram aplikasi Let’Count. Dari
sisi user, user memiliki otoritas untuk masuk kehalaman utama aplikasi, kemudian
memilih yang terdapat pada bagian halaman utaman yang terdiri dari menu
Penjumlahan (+), Pengurangan (-) dan About. Dan juga keluardari aplikasi Let’s
Count
Sementara dari disisi sistem akan memberi respon/feedbeck atas
permintaan user sesuai menu yang di klik oleh user. Jika memilih menu
penjumlahan maka soal latihan penjumlahan akan ditampilkan oleh sistem. Jika
memilih menu pengurangan maka soal latihan penguranagan akan ditampilkan
oleh sistem. Dan jika memilih menu about akan ditampilkan deskripsi aplikasi dan
nama yang membuat aplikasi tersebut. Dan juga aplikasi akan menampilkan
halaman hasil yang bersarka latihan yang dilakukan oleh user
16
3.3.3 Class Diagram
Class diagram adalah sebuah class yang menggambarkan struktur dan
penjelasan class, paket, dan objek serta hubungan satu sama lain seperti
containment, pewarisan, asosiasi, dan lain-lain. Class diagram juga menjelaskan
hubungan antar class dalam sebuah sistem yang sedang dibuat dan bagaimana
caranya agar mereka saling berkolaborasi untuk mencapai sebuah tujuan. Berikut
merupakan class diagram dari aplikasi Let’s Count :
Let’s Count
Penjumlahan
Pengurangan
About
display_hasil_penjumlahan()
display_hasil_pengurangan()
display_about() Gambar 3.5 Class Diagram Let’s Count
Gambar 3.5 merupakan class diagraman aplikasi Let’s Count. Class Let’s
Count memiliki tiga attribute yaitu penjumlahan, pengurangan, dan about. Dalam
class diagram ini terdapat operasi yang dapat dilakukan oleh aplikasi seperti
menampilkan hasil_penjumlahan(), hasil_pengurangan(), dan display_about().
3.4 Source Code Aplikasi Let’s Count berbasis Android
3.4.1 About.java package com.example.letscount;
import android.os.Bundle;
import android.app.Activity;
import android.content.pm.ActivityInfo;
public class About extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
;
}
}
17
3.4.2 Menu_utama.java package com.example.letscount;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.view.View;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.media.MediaPlayer;
public class Menu_utama extends Activity {
private MediaPlayer MPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu_utama);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
;
buka_file_suara();
}
@Override
public void onResume() {
super.onResume();
stop_intro();
play_intro();
}
private void play_intro() {
if (MPlayer != null && !MPlayer.isPlaying()) {
MPlayer.setLooping(true);
MPlayer.start();
} else {
MPlayer.setLooping(true);
}
}
private void stop() {
MPlayer.stop();
try {
MPlayer.prepare();
MPlayer.seekTo(0);
} catch (Throwable t) {
error_(t);
}
}
private void stop_intro() {
if (MPlayer.isPlaying()) {
stop();
}
}
private void buka_file_suara() {
18
try {
MPlayer = MediaPlayer.create(this, R.raw.intro);
} catch (Throwable t) {
error_(t);
}
}
private void error_(Throwable t) {
AlertDialog.Builder pesan_error = new
AlertDialog.Builder(this);
pesan_error.setTitle("Failed!").setMessage(t.toString())
.setPositiveButton("OK", null).show();
}
public void btn_plus_Clicked(View v) {
stop_intro();
Intent panggil_class = new Intent(this,
PlusActivity.class);
startActivity(panggil_class);
}
public void btn_minus_Clicked(View v) {
stop_intro();
Intent panggil_class = new Intent(this,
MinusActivity.class);
startActivity(panggil_class);
}
public void btn_about_Clicked(View v) {
Intent panggil_class = new Intent(this, About.class);
startActivity(panggil_class);
}
@Override
public void onBackPressed() {
AlertDialog.Builder builder = new
AlertDialog.Builder(this);
builder.setMessage("Tutup Aplikasi Let's Count ?")
.setCancelable(false)
.setPositiveButton("Ya", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int
id) {
Intent keluar = new Intent(Intent.ACTION_MAIN);
keluar.addCategory(Intent.CATEGORY_HOME);
keluar.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
stop_intro();
finish();
startActivity(keluar);
}
})
.setNegativeButton("Tidak",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int id) {
dialog.cancel();
}
19
}).show();
}
}
3.4.3 LetsCountActivity package com.example.letscount;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.MotionEvent;
import android.content.pm.ActivityInfo;
public class LetsCountActivity extends Activity {
protected boolean _aktif = true;
protected int splash_ = 5000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lets_count);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
;
Thread splashTread = new Thread() {
@Override
public void run() {
try {
int delay_ = 0;
while (_aktif && (delay_ < splash_)) {
sleep(100);
if (_aktif) {
delay_ += 100;
}
}
} catch (InterruptedException e) {
} finally {
finish();
Intent panggil_class = new
Intent(LetsCountActivity.this,
Menu_utama.class);
startActivityForResult(panggil_class, 0);
}
}
};
splashTread.start();
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
_aktif = false;
}
return true;
}
@Override
20
public void onBackPressed() {
finish();
System.exit(0);
}
}
3.4.5 PlusActivity.java package com.example.letscount;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.ImageButton;
import android.widget.Spinner;
public class PlusActivity extends Activity {
public int nilai_01, nilai_02, nilai_03, nilai_04, nilai_05,
nilai_06,
nilai_07, nilai_08, nilai_09, nilai_10, jumlah_nilai;
public static int nilai = 0;
public Spinner menu_jawab_01, menu_jawab_02, menu_jawab_03,
menu_jawab_04,
menu_jawab_05, menu_jawab_06, menu_jawab_07,
menu_jawab_08,
menu_jawab_09, menu_jawab_10;
public ImageButton cek_nilai;
public static int nilai_total = 0;
public String jawaban, hasil_jawaban, isi_jawaban;
public static String data_jawaban = "";
int[] kunci = { 1, 2, 2, 1, 2, 2, 2, 1, 1, 2 };
int[] soal = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
String[] jawaban_01 = { " Pilih jawaban", "A. 5", "B. 6" };
String[] jawaban_02 = { " Pilih jawaban", "A. 8", "B. 9" };
String[] jawaban_03 = { " Pilih jawaban", "A. 9", "B. 10" };
String[] jawaban_04 = { " Pilih jawaban", "A. 7", "B. 6" };
String[] jawaban_05 = { " Pilih jawaban", "A. 4", "B. 3" };
String[] jawaban_06 = { " Pilih jawaban", "A. 9", "B. 8" };
String[] jawaban_07 = { " Pilih jawaban", "A. 1", "B. 2" };
String[] jawaban_08 = { " Pilih jawaban", "A. 4", "B. 5" };
String[] jawaban_09 = { " Pilih jawaban", "A. 6", "B. 5" };
String[] jawaban_10 = { " Pilih jawaban", "A. 0", "B. 1" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_plus);
menu_jawab_01 = (Spinner) findViewById(R.id.jwb_01);
menu_jawab_02 = (Spinner) findViewById(R.id.jwb_02);
menu_jawab_03 = (Spinner) findViewById(R.id.jwb_03);
menu_jawab_04 = (Spinner) findViewById(R.id.jwb_04);
menu_jawab_05 = (Spinner) findViewById(R.id.jwb_05);
menu_jawab_06 = (Spinner) findViewById(R.id.jwb_06);
menu_jawab_07 = (Spinner) findViewById(R.id.jwb_07);
21
menu_jawab_08 = (Spinner) findViewById(R.id.jwb_08);
menu_jawab_09 = (Spinner) findViewById(R.id.jwb_09);
menu_jawab_10 = (Spinner) findViewById(R.id.jwb_10);
cek_nilai = (ImageButton) findViewById(R.id.Btn_check);
ArrayAdapter<String> list_jawab_01 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_01);
list_jawab_01
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_01.setAdapter(list_jawab_01);
menu_jawab_01.setOnItemSelectedListener(new
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
nilai_01 = menu_jawab_01.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ArrayAdapter<String> list_jawab_02 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_02);
list_jawab_02
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_02.setAdapter(list_jawab_02);
menu_jawab_02.setOnItemSelectedListener(new
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
nilai_02 = menu_jawab_02.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ArrayAdapter<String> list_jawab_03 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_03);
list_jawab_03
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_03.setAdapter(list_jawab_03);
menu_jawab_03.setOnItemSelectedListener(new
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
22
int arg2, long arg3) {
nilai_03 = menu_jawab_03.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ArrayAdapter<String> list_jawab_04 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_04);
list_jawab_04
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_04.setAdapter(list_jawab_04);
menu_jawab_04.setOnItemSelectedListener(new
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
nilai_04 = menu_jawab_04.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ArrayAdapter<String> list_jawab_05 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_05);
list_jawab_05
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_05.setAdapter(list_jawab_05);
menu_jawab_05.setOnItemSelectedListener(new
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
nilai_05 = menu_jawab_05.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ArrayAdapter<String> list_jawab_06 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_06);
list_jawab_06
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_06.setAdapter(list_jawab_06);
menu_jawab_06.setOnItemSelectedListener(new
23
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
nilai_06 = menu_jawab_06.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ArrayAdapter<String> list_jawab_07 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_07);
list_jawab_07
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_07.setAdapter(list_jawab_07);
menu_jawab_07.setOnItemSelectedListener(new
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
nilai_07 = menu_jawab_07.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ArrayAdapter<String> list_jawab_08 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_08);
list_jawab_08
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_08.setAdapter(list_jawab_08);
menu_jawab_08.setOnItemSelectedListener(new
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
nilai_08 = menu_jawab_08.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ArrayAdapter<String> list_jawab_09 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_09);
list_jawab_09
24
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_09.setAdapter(list_jawab_09);
menu_jawab_09.setOnItemSelectedListener(new
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
nilai_09 = menu_jawab_09.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ArrayAdapter<String> list_jawab_10 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_10);
list_jawab_10
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_10.setAdapter(list_jawab_10);
menu_jawab_10.setOnItemSelectedListener(new
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
nilai_10 = menu_jawab_10.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
}
public void btn_check_Clicked(View v) {
int pilihan_jawaban[] = { nilai_01, nilai_02, nilai_03,
nilai_04,
nilai_05, nilai_06, nilai_07, nilai_08, nilai_09,
nilai_10 };
int nomor_pilihan;
for (int i = 0; i < kunci.length; i++) {
if (pilihan_jawaban[i] == 1) {
jawaban = " A ";
} else if (pilihan_jawaban[i] == 2) {
jawaban = " B ";
} else {
jawaban = " - ";
}
if (kunci[i] == 1) {
isi_jawaban = "A";
} else if (kunci[i] == 2) {
isi_jawaban = "B";
} else {
isi_jawaban = "Tidak dijawab";
25
}
if (pilihan_jawaban[i] == kunci[i]) {
nilai_total = nilai_total + 10;
hasil_jawaban = jawaban + " (Benar) = " + isi_jawaban
+ ", (Nilai = 10)\n";
} else {
hasil_jawaban = jawaban + " (Salah) = " + isi_jawaban
+ ", (Nilai = 0)\n";
}
nomor_pilihan = i + 1;
data_jawaban = data_jawaban +
Integer.toString(nomor_pilihan)
+ ". " + hasil_jawaban;
}
Intent panggil_class = new Intent(this,
HasilPlusActivity.class);
panggil_class.putExtra("nilai_hasil", nilai_total);
panggil_class.putExtra("rinci_jawaban", data_jawaban);
startActivity(panggil_class);
finish();
System.exit(0);
}
@Override
public void onBackPressed() {
finish();
System.exit(0);
}}
3.4.6 MinusActivity.java package com.example.letscount;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.ImageButton;
import android.widget.Spinner;
public class MinusActivity extends Activity {
public int nilai_01, nilai_02, nilai_03, nilai_04, nilai_05,
nilai_06,
nilai_07, nilai_08, nilai_09, nilai_10, jumlah_nilai;
public static int nilai = 0;
public Spinner menu_jawab_01, menu_jawab_02, menu_jawab_03,
menu_jawab_04,
menu_jawab_05, menu_jawab_06, menu_jawab_07,
menu_jawab_08,
menu_jawab_09, menu_jawab_10;
public ImageButton cek_nilai;
public static int nilai_total = 0;
public String jawaban, hasil_jawaban, isi_jawaban;
public static String data_jawaban = "";
int[] kunci = { 2, 1, 1, 2, 2, 1, 1, 1, 1, 2 };
int[] soal = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
26
String[] jawaban_01 = { " Pilih jawaban", "A. 7", "B. 6" };
String[] jawaban_02 = { " Pilih jawaban", "A. 4", "B. 3" };
String[] jawaban_03 = { " Pilih jawaban", "A. 2", "B. 3" };
String[] jawaban_04 = { " Pilih jawaban", "A. 7", "B. 8" };
String[] jawaban_05 = { " Pilih jawaban", "A. 6", "B. 5" };
String[] jawaban_06 = { " Pilih jawaban", "A. 1", "B. 2" };
String[] jawaban_07 = { " Pilih jawaban", "A. 7", "B. 6" };
String[] jawaban_08 = { " Pilih jawaban", "A. 3", "B. 4" };
String[] jawaban_09 = { " Pilih jawaban", "A. 0", "B. 1" };
String[] jawaban_10 = { " Pilih jawaban", "A. 10", "B. 9" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_minus);
menu_jawab_01 = (Spinner) findViewById(R.id.jwb_01);
menu_jawab_02 = (Spinner) findViewById(R.id.jwb_02);
menu_jawab_03 = (Spinner) findViewById(R.id.jwb_03);
menu_jawab_04 = (Spinner) findViewById(R.id.jwb_04);
menu_jawab_05 = (Spinner) findViewById(R.id.jwb_05);
menu_jawab_06 = (Spinner) findViewById(R.id.jwb_06);
menu_jawab_07 = (Spinner) findViewById(R.id.jwb_07);
menu_jawab_08 = (Spinner) findViewById(R.id.jwb_08);
menu_jawab_09 = (Spinner) findViewById(R.id.jwb_09);
menu_jawab_10 = (Spinner) findViewById(R.id.jwb_10);
cek_nilai = (ImageButton) findViewById(R.id.Btn_check);
ArrayAdapter<String> list_jawab_01 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_01);
list_jawab_01
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_01.setAdapter(list_jawab_01);
menu_jawab_01.setOnItemSelectedListener(new
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
nilai_01 = menu_jawab_01.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ArrayAdapter<String> list_jawab_02 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_02);
list_jawab_02
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_02.setAdapter(list_jawab_02);
menu_jawab_02.setOnItemSelectedListener(new
27
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
nilai_02 = menu_jawab_02.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ArrayAdapter<String> list_jawab_03 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_03);
list_jawab_03
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_03.setAdapter(list_jawab_03);
menu_jawab_03.setOnItemSelectedListener(new
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
nilai_03 = menu_jawab_03.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ArrayAdapter<String> list_jawab_04 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_04);
list_jawab_04
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_04.setAdapter(list_jawab_04);
menu_jawab_04.setOnItemSelectedListener(new
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
nilai_04 = menu_jawab_04.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ArrayAdapter<String> list_jawab_05 = new
ArrayAdapter<String>(this,
28
android.R.layout.simple_spinner_item, jawaban_05);
list_jawab_05
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_05.setAdapter(list_jawab_05);
menu_jawab_05.setOnItemSelectedListener(new
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
nilai_05 = menu_jawab_05.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ArrayAdapter<String> list_jawab_06 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_06);
list_jawab_06
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_06.setAdapter(list_jawab_06);
menu_jawab_06.setOnItemSelectedListener(new
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
nilai_06 = menu_jawab_06.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ArrayAdapter<String> list_jawab_07 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_07);
list_jawab_07
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_07.setAdapter(list_jawab_07);
menu_jawab_07.setOnItemSelectedListener(new
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
nilai_07 = menu_jawab_07.getSelectedItemPosition();
}
@Override
29
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ArrayAdapter<String> list_jawab_08 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_08);
list_jawab_08
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_08.setAdapter(list_jawab_08);
menu_jawab_08.setOnItemSelectedListener(new
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
nilai_08 = menu_jawab_08.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ArrayAdapter<String> list_jawab_09 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_09);
list_jawab_09
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_09.setAdapter(list_jawab_09);
menu_jawab_09.setOnItemSelectedListener(new
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
nilai_09 = menu_jawab_09.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ArrayAdapter<String> list_jawab_10 = new
ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, jawaban_10);
list_jawab_10
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown
_item);
menu_jawab_10.setAdapter(list_jawab_10);
menu_jawab_10.setOnItemSelectedListener(new
OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View
arg1,
int arg2, long arg3) {
30
nilai_10 = menu_jawab_10.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
}
public void btn_check_Clicked(View v) {
int pilihan_jawaban[] = { nilai_01, nilai_02, nilai_03,
nilai_04,
nilai_05, nilai_06, nilai_07, nilai_08, nilai_09,
nilai_10 };
int nomor_pilihan;
for (int i = 0; i < kunci.length; i++) {
if (pilihan_jawaban[i] == 1) {
jawaban = " A ";
} else if (pilihan_jawaban[i] == 2) {
jawaban = " B ";
} else {
jawaban = " - ";
}
if (kunci[i] == 1) {
isi_jawaban = "A";
} else if (kunci[i] == 2) {
isi_jawaban = "B";
} else {
isi_jawaban = "Tidak dijawab";
}
if (pilihan_jawaban[i] == kunci[i]) {
nilai_total = nilai_total + 10;
hasil_jawaban = jawaban + " (Benar) = " + isi_jawaban
+ ", (Nilai = 10)\n";
} else {
hasil_jawaban = jawaban + " (Salah) = " + isi_jawaban
+ ", (Nilai = 0)\n";
}
nomor_pilihan = i + 1;
data_jawaban = data_jawaban +
Integer.toString(nomor_pilihan)
+ ". " + hasil_jawaban;
}
Intent panggil_class = new Intent(this,
HasilMinusActivity.class);
panggil_class.putExtra("nilai_hasil", nilai_total);
panggil_class.putExtra("rinci_jawaban", data_jawaban);
startActivity(panggil_class);
finish();
System.exit(0);
}
@Override
public void onBackPressed() {
finish();
System.exit(0);
}
}
31
3.4.7 HasilPlusActivity.java package com.example.letscount;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.TextView;
public class HasilPlusActivity extends Activity {
int data_hasil;
String data_rinci, rincian;
TextView teks_skor, teks_rinci;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hasil_plus);
Intent panggil_class = getIntent();
data_hasil =
panggil_class.getExtras().getInt("nilai_hasil");
data_rinci =
panggil_class.getExtras().getString("rinci_jawaban");
teks_skor = (TextView) findViewById(R.id.skor);
teks_skor.setText(Integer.toString(data_hasil));
teks_rinci = (TextView) findViewById(R.id.rinci);
rincian = "Jawaban: \n\n" + data_rinci;
teks_rinci.setText(rincian);
}
public void btn_menu_Clicked(View v) {
Intent panggil_class = new Intent(this, Menu_utama.class);
startActivity(panggil_class);
finish();
}
public void btn_try_Clicked(View v) {
Intent panggil_class = new Intent(this,
PlusActivity.class);
startActivity(panggil_class);
finish();
}
@Override
public void onBackPressed() {
finish();
System.exit(0);
}
}
3.4.8 HasilMinusActivity.java package com.example.letscount;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.TextView;
32
public class HasilMinusActivity extends Activity {
int data_hasil;
String data_rinci, rincian;
TextView teks_skor, teks_rinci;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hasil_minus);
Intent panggil_class = getIntent();
data_hasil =
panggil_class.getExtras().getInt("nilai_hasil");
data_rinci =
panggil_class.getExtras().getString("rinci_jawaban");
teks_skor = (TextView) findViewById(R.id.skor);
teks_skor.setText(Integer.toString(data_hasil));
teks_rinci = (TextView) findViewById(R.id.rinci);
rincian = "Jawaban: \n\n" + data_rinci;
teks_rinci.setText(rincian);
}
public void btn_menu_Clicked(View v) {
Intent panggil_class = new Intent(this, Menu_utama.class);
startActivity(panggil_class);
finish();
}
public void btn_try_Clicked(View v) {
Intent panggil_class = new Intent(this,
MinusActivity.class);
startActivity(panggil_class);
finish();
}
@Override
public void onBackPressed() {
finish();
System.exit(0);
}
}
3.3.9 Activity_lets_count.xml <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/splash"
android:gravity="center|center_horizontal"
android:orientation="vertical"
tools:context=".LetsCountdActivity" >
</RelativeLayout>
33
3.3.10 Avtivity_menu_utama.xml <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/menu_utama"
android:gravity="bottom|center_horizontal"
android:keepScreenOn="true"
android:orientation="vertical"
tools:context=".Menu_utama" >
<ImageButton
android:id="@+id/Btn_plus"
android:layout_width="160dp"
android:layout_height="160dp"
android:layout_weight="1"
android:adjustViewBounds="true"
android:background="@null"
android:onClick="btn_plus_Clicked"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/tombol_plus" />
<ImageButton
android:id="@+id/Btn_minus"
android:layout_width="160dp"
android:layout_height="160dp"
android:layout_toRightOf="@id/Btn_plus"
android:layout_weight="1"
android:adjustViewBounds="true"
android:background="@null"
android:onClick="btn_minus_Clicked"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/tombol_minus" />
<ImageButton
android:id="@+id/Btn_about"
android:layout_width="320dp"
android:layout_height="160dp"
android:layout_below="@id/Btn_plus"
android:layout_weight="1"
android:adjustViewBounds="true"
android:background="@null"
android:onClick="btn_about_Clicked"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/tombol_about" />
</RelativeLayout>
3.3.11 Activity_plus.xml <ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
34
android:background="@drawable/menu_soal"
android:keepScreenOn="true"
android:scrollbars="vertical"
tools:context=".PlusActivity" >
<LinearLayout
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 1:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/plus_01" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Jawab:"
android:textColor="#ff0000"
android:textSize="35sp"
android:textStyle="italic" />
<Spinner
android:id="@+id/jwb_01"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 2:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/plus_02" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
35
android:text="Jawab:"
android:textColor="#ff0000"
android:textSize="35sp"
android:textStyle="italic" />
<Spinner
android:id="@+id/jwb_02"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 3:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/plus_03" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Jawab:"
android:textColor="#ff0000"
android:textSize="35sp"
android:textStyle="italic" />
<Spinner
android:id="@+id/jwb_03"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 4:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/plus_04" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Jawab:"
36
android:textColor="#ff0000"
android:textSize="35sp"
android:textStyle="italic" />
<Spinner
android:id="@+id/jwb_04"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 5:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/plus_05" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Jawab:"
android:textColor="#ff0000"
android:textSize="35sp"
android:textStyle="italic" />
<Spinner
android:id="@+id/jwb_05"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 6:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/plus_06" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Jawab:"
android:textColor="#ff0000"
37
android:textSize="35sp"
android:textStyle="italic" />
<Spinner
android:id="@+id/jwb_06"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 7:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/plus_07" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Jawab:"
android:textColor="#ff0000"
android:textSize="35sp"
android:textStyle="italic" />
<Spinner
android:id="@+id/jwb_07"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 8:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/plus_08" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Jawab:"
android:textColor="#ff0000"
android:textSize="35sp"
38
android:textStyle="italic" />
<Spinner
android:id="@+id/jwb_08"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 9:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/plus_09" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Jawab:"
android:textColor="#ff0000"
android:textSize="35sp"
android:textStyle="italic" />
<Spinner
android:id="@+id/jwb_09"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 10:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/plus_10" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Jawab:"
android:textColor="#ff0000"
android:textSize="35sp"
android:textStyle="italic" />
39
<Spinner
android:id="@+id/jwb_10"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<ImageButton
android:id="@+id/Btn_check"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:background="@null"
android:onClick="btn_check_Clicked"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/tombol_check" />
</LinearLayout>
</ScrollView>
3.4.12 Activity_minus <ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/menu_soal"
android:keepScreenOn="true"
android:scrollbars="vertical"
tools:context=".MinusActivity" >
<LinearLayout
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 1:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/minus_01" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
40
android:layout_height="wrap_content"
android:text="Jawab:"
android:textColor="#ff0000"
android:textSize="35sp"
android:textStyle="italic" />
<Spinner
android:id="@+id/jwb_01"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 2:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/minus_02" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Jawab:"
android:textColor="#ff0000"
android:textSize="35sp"
android:textStyle="italic" />
<Spinner
android:id="@+id/jwb_02"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 3:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
41
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/minus_03" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Jawab:"
android:textColor="#ff0000"
android:textSize="35sp"
android:textStyle="italic" />
<Spinner
android:id="@+id/jwb_03"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 4:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/minus_04" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Jawab:"
android:textColor="#ff0000"
android:textSize="35sp"
android:textStyle="italic" />
<Spinner
android:id="@+id/jwb_04"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 5:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
42
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/minus_05" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Jawab:"
android:textColor="#ff0000"
android:textSize="35sp"
android:textStyle="italic" />
<Spinner
android:id="@+id/jwb_05"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 6:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/minus_06" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Jawab:"
android:textColor="#ff0000"
android:textSize="35sp"
android:textStyle="italic" />
<Spinner
android:id="@+id/jwb_06"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
43
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 7:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/minus_07" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Jawab:"
android:textColor="#ff0000"
android:textSize="35sp"
android:textStyle="italic" />
<Spinner
android:id="@+id/jwb_07"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 8:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/minus_08" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Jawab:"
android:textColor="#ff0000"
android:textSize="35sp"
android:textStyle="italic" />
44
<Spinner
android:id="@+id/jwb_08"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 9:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/minus_09" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Jawab:"
android:textColor="#ff0000"
android:textSize="35sp"
android:textStyle="italic" />
<Spinner
android:id="@+id/jwb_09"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Soal 10:"
android:textColor="#0000ff"
android:textSize="35sp"
android:textStyle="italic" />
<ImageView
android:id="@+id/soal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/minus_10" />
<TextView
45
android:id="@+id/teks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Jawab:"
android:textColor="#ff0000"
android:textSize="35sp"
android:textStyle="italic" />
<Spinner
android:id="@+id/jwb_10"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<ImageButton
android:id="@+id/Btn_check"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:background="@null"
android:onClick="btn_check_Clicked"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/tombol_check" />
</LinearLayout>
</ScrollView>
3.4.13 Activity_hasil_plus.xml <ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/menu_hasil"
android:keepScreenOn="true"
android:scrollbars="vertical"
tools:context=".HasilPlusActivity" >
<LinearLayout
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/hasil"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_gravity="center_horizontal"
android:text="Nilai:"
android:textColor="#ff0000"
android:textSize="50sp"
android:textStyle="italic" />
<TextView
android:id="@+id/skor"
46
android:layout_width="wrap_content"
android:layout_height="90dp"
android:layout_gravity="center_horizontal"
android:text="99"
android:textColor="#000000"
android:textSize="75sp" />
<TextView
android:id="@+id/rinci"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:text="99"
android:textColor="#0000ff"
android:textSize="20sp" />
<ImageButton
android:id="@+id/Btn_try"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:background="@null"
android:onClick="btn_try_Clicked"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/tombol_try" />
<ImageButton
android:id="@+id/Btn_menu"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:background="@null"
android:onClick="btn_menu_Clicked"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/tombol_menu" />
</LinearLayout>
</ScrollView>
3.4.14 Activity_hasil_minus.xml <ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/menu_hasil"
android:keepScreenOn="true"
android:scrollbars="vertical"
tools:context=".HasilMinusActivity" >
<LinearLayout
android:id="@+id/layout"
android:layout_width="fill_parent"
47
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/hasil"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_gravity="center_horizontal"
android:text="Nilai:"
android:textColor="#ff0000"
android:textSize="50sp"
android:textStyle="italic" />
<TextView
android:id="@+id/skor"
android:layout_width="wrap_content"
android:layout_height="90dp"
android:layout_gravity="center_horizontal"
android:text="99"
android:textColor="#000000"
android:textSize="75sp" />
<TextView
android:id="@+id/rinci"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:text="99"
android:textColor="#0000ff"
android:textSize="20sp" />
<ImageButton
android:id="@+id/Btn_try"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:background="@null"
android:onClick="btn_try_Clicked"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/tombol_try" />
<ImageButton
android:id="@+id/Btn_menu"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:background="@null"
android:onClick="btn_menu_Clicked"
android:orientation="vertical"
android:scaleType="centerInside"
android:src="@drawable/tombol_menu" />
</LinearLayout>
</ScrollView>
48
3.5 Implementasi Perancangan Interface
Perancangan interface dibutuhkan dalam pembuatan suatu aplikasi karena
untuk mempermudah pembuatan desain interface dari aplikasi tersebut sehingga
tampilan atau interface yang dihasilkan akan lebih terstruktur dan menarik. Pada
tahap ini akan dijelaskan perancangan tampilan atau interface dari aplikasi
menampilkan profil negara pada perangkat berbasis Android. Rancangan interface
yang dijelaskan adalah halaman utama, tampilan halaman menu yang terdapat
pada halaman utama yaitu halaman penjumlahan, pengurangan dan about,
tampilan halaman hasil dan tampilan keluar aplikasi.
3.5.1 Rancangan Interface Halaman Utama
Rancangan interface untuk tampilan halaman utama aplikasi Let’s Count
adalah seperti gambar berikut ini.
Gambar 3.6 Tampilan Halaman Utama Let’s Count
Pada tampilan halaman utama aplikasi Let’s Count terdapat tiga menu
utama yaitu menu penjumlahan yang dibuat dengan simbol tambah (+), menu
pengurangan yang diberi simbol kurang (-) dan menu about.
49
3.5.2 Rancangan Interface Halaman Menu Penjumlahan
Rancangan interface untuk tampilan menu penjumlahan aplikasi Let’s
Count adalah seperti gambar berikut ini.
Gambar 3.7 Tampilan Halaman Menu Penjumlahan Let’s Count
Tampilan halaman penjumlahan akan ditampilkan apabila user memilih
menu penjumlahan (+) pada bagian halaman utama. Pada halaman penjumlahan
akan ditampilkan soal-soal latihan yang dibuat dalam bentuk gambar seperti
gambar pada gambar 3.7. Soal yang disajikan yaitu terdiri dari 10 soal
penjumlahan. Setelah user selesai menjawab soal latihan dibagian bawah
disediakan button Check untuk melihat hasil yang diperolah yang ditampilkan
pada halaman hasil.
3.5.3 Rancangan Interface Halaman Menu Pengurangan
Rancangan interface untuk tampilan menu pengurangan aplikasi Let’s
Count adalah seperti gambar berikut ini.
50
Gambar 3.8 Tampilan Halaman Menu Pengurangan Let’s Count
Tampilan halaman penjumlahan akan ditampilkan apabila user memilih
menu pengurangan (-) pada bagian halaman utama. Pada halaman penjumlahan
akan ditampilkan soal-soal latihan yang dibuat dalam bentuk gambar seperti
gambar pada gambar 3.8. Soal yang disajikan yaitu terdiri dari 10 soal
pengurangan. Setelah user selesai menjawab soal latihan dibagian bawah
disediakan button Check untuk melihat hasil yang diperolah yang ditampilkan
pada halaman hasil.
3.5.4 Rancangan Interface Halaman Hasil Latihan
Rancangan interface untuk tampilan halaman hasil aplikasi Let’s Count
adalah seperti gambar berikut ini.
51
Gambar 3.9 Tampilan Halaman Hasil Latihan Let’s Count
Tampilan halaman hasil latihan akan ditampilkan apabila user memilih
menu Check pada bagian halaman penjumlahan atau pengurangan. Pada halaman
hasil akan ditampilkan skor yang diperoleh oleh user serta kunci jawaban dari
setiap soal yang yang disajikan. Diabagian halaman hasil juga dilengkapi button
Try Again untuk mencoba kembali latihan penjumlahan/pengurangan dan button
Menu untuk kembali kehalaman utama aplikasi.
3.5.5 Rancangan Interface Halaman Menu About
Rancangan interface untuk tampilan halaman menu about aplikasi Let’s
Count adalah seperti gambar berikut ini.
52
Gambar 3.10 Tampilan Halaman Menu About Let’s Count
Tampilan halaman menu about akan ditampilkan apabila user memilih
menu about pada halaman utama aplikasi. Pada halaman about ini akan
ditampilkan deskripsi singkat tentang aplikasi dan nama-nama kelompok yang
yang membuat aplikasi ini.
3.5.6 Rancangan Interface Keluar Aplikasi
Rancangan interface untuk tampilan halaman keluar aplikasi Let’s Count
adalah seperti gambar berikut ini.
53
Gambar 3.11 Tampilan Keluar Aplikasi About Let’s Count
Tampilan interface keluar aplikasi akan ditampilkan apabila user memilih
tombol kembali pada perangkat mobile/emulator yang digunakana. Ketika user
menekana tombol tersebut maka akan pop-up berisi pesan “tutup aplikasi Let’s
Count?” maka akan tersedia pilihan ya atau tidak, jika memilih ya maka akan
keluar dari aplikasi dan jika memilik tidak maka aplikasi akan tetap dibuka. Untuk
tampilannya seperti gambar 3.11 diatas.
54
BAB IV
PENUTUP
4.1 Kesimpulan
Berdasarkan implementasi perancangan aplikasi Let’s Count berbasis
android dapat ditarik kesimpulan bahwa kemajuan teknologi memiliki dampak
yang sangat besar dalam dunia pendidikan terkhusus dalam meninggkatkan
pengetahuan khususnya bagi anak-anak. Dengan diciptakan sebuah aplikasi
edukasi bagi anak-anak usia dini dapat memacu niat mereka untuk semakin mau
mengetahui hal-hal yang ada dilingkungan mereka. Aplikasi Let’s Count yang
telah dibuat dapat membantu orang tua untuk memberikan pendidikan khususnya
dalam penjumlahan dan pengurangan. Selain dari itu karena aplikasi Let’s Count
dirancang berbasis mobile maka untuk penggunaan dapat dilakukan dimana saja.
4.2 Saran
Saran yang diperoleh berdasarkan saran dari beberapa pengguna yaitu
untuk pengembangan apalikasi selanjutnya dibuat lebih menarik lagi sehingga
user pengguna yang sasarannya adalah anak-anak dapat tertarik untuk
menggunakan aplikasi Let’s Count.
55
DAFTAR PUSTAKA
[1] Unified Modeling Language dan Sequence Diagram
Informatika.web.id/pengertian-uml.htm. Diakses pada tanggal 12 Mei 2016.
[2] Model Use Case
Staf.cs.ui.ac.id/WebKuliah/IKI40972/materi/miggu4/model-use-case.htm.
Diakses pada tanggal 12 Mei 2016.
[3] Pemahaman Pemograman Mobile.
ilmukomputer.org/category/pemrograman-mobile/. Diakses pada tanggal 13
Mei 2016
[4] Pembahasan, Pengertian Dan Fungsi Java.
https://id.wikipedia.org/wiki/Java Diakses pada tanggal 12 Mei 2016.
[5] Pengertian Android.
www.berbagiinfo4u.com › Android Diakses pada tanggal 12 Mei 2016.
[5] Materi Android Studio.
https://en.wikipedia.org/wiki/Android_Studio. Diakses pada tanggal 12 Mei
2016.
[6] Emulator
https://id.wikipedia.org/wiki/Emulator. Diakses pada tanggal 12 Mei 2016
[7] Penjumlahan dan Pengurangan
eprints.ung.ac.id/bab2-28072013075542%281%29.pdf. Diakses pada
tanggal 14 Mei 2016.