Pemrograman mobile (project)

59
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

Transcript of Pemrograman mobile (project)

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.