Bab 1-5
Bab 1-5
Disusun Oleh:
TUGAS AKHIR
Disusun Oleh:
ii
HALAMAN PENGESAHAN DOSEN PENGUJI
Telah dipertahankan di depan sidang penguji sebagai salah satu syarat untuk
memperoleh gelar Sarjana Teknik Informatika
di Fakultas Teknologi Industri Universitas Islam Indonesia
Yogyakarta, 1 Nopember 2017
Tim Penguji
Anggota 1
Anggota 2
Mengetahui,
Ketua Jurusan Teknik Informatika
Fakultas Teknologi Industri
Universitas Islam Indonesia
iii
HALAMAN PERNYATAAN KEASLIAN TUGAS AKHIR
Menyatakan bahwa seluruh komponen dan isi dalam tugas akhir ini adalah hasil karya
saya sendiri. Apabila dikemudian hari terbukti ada beberapa bagian dari karya ini adalah
bukan hasil karya sendiri, tugas akhir yang diajukan sebagai hasil karya sendiri ini siap
ditarik kembali dan siap menanggung resiko dan konsekuensi apapun.
Demikian surat pernyataan ini dibuat, semoga dapat dipergunakan sebagaimana
mestinya.
( Nama Mahasiswa )
iv
HALAMAN PERSEMBAHAN
Bagian ini bebas untuk diisikan berbagai macam kalimat persembahan selama kalimat
yang dibuat tidak melanggar etika. Idealnya halaman persembahan dibuat sebanyak satu
halaman.
v
HALAMAN MOTO
Bagian ini bebas untuk diisikan berbagai macam kalimat moto selama kalimat yang
dibuat tidak melanggar etika. Idealnya halaman moto dibuat sebanyak satu halaman.
vi
KATA PENGANTAR
Kata pengantar adalah bagian yang digunakan untuk menyampaikan rasa syukur atas
selesainya penyusunan laporan tugas akhir. Selain itu, bagian kata pengantar juga dapat
memuat berbagai hal sebagai berikut:
1. Tujuan penulisan laporan atau pelaksanaan penelitian tugas akhir.
2. Mengemukakan kesulitan-kesulitan (non ilmiah) yang ditemui pada saat
penelitian tugas akhir.
3. Ucapan terima kasih kepada beberapa pihak yang telah membantu atau
mendukung penyelesaian penulisan laporan atau pelaksanaan penelitian tugas
akhir.
4. Harapan penulis terhadap penelitian tugas akhir yang telah diselesaikan.
Umumnya bagian kata pengantar ditutup dengan tanda tangan dari penulis.
( Nama Mahasiswa )
vii
SARI
Bagian sari adalah bagian laporan yang berisi ide pokok laporan yang meliputi latar
belakang, gambaran singkat penelitian, metodologi yang digunakan, serta temuan-temuan
yang dihimpun dari pelaksanaan penelitian. Idealnya bagian sari dibuat sebanyak satu
halaman, lengkap dengan tambahan beberapa kata kunci yang digunakan pada bagian sari.
viii
GLOSARIUM
Glosarium memuat daftar kata tertentu yang digunakan dalam laporan dan membutuhkan
penjelasan, misalnya kata serapan yang belum lazim digunakan. Contoh penulisannya seperti
di bawah ini:
Compile proses untuk mengubah berkas kode program dengan berkas lain yang
terkait menjadi berkas yang siap untuk dieksekusi oleh sistem operasi
secara langsung.
Debug langkah untuk menelusuri kesalahan kode program.
Waterfall metode pengembangan perangkat lunak.
ix
DAFTAR ISI
HALAMAN JUDUL...................................................................................................................i
HALAMAN PENGESAHAN DOSEN PEMBIMBING...........................................................ii
HALAMAN PENGESAHAN DOSEN PENGUJI...................................................................iii
HALAMAN PERNYATAAN KEASLIAN TUGAS AKHIR.................................................iv
HALAMAN PERSEMBAHAN.................................................................................................v
HALAMAN MOTO.................................................................................................................vi
KATA PENGANTAR.............................................................................................................vii
SARI ......................................................................................................................................viii
GLOSARIUM...........................................................................................................................ix
DAFTAR ISI..............................................................................................................................x
DAFTAR TABEL...................................................................................................................xiii
DAFTAR GAMBAR..............................................................................................................xiv
BAB I PENDAHULUAN..........................................................................................................1
1.1 Latar Belakang .................................................................................................................1
1.2 Rumusan Masalah.............................................................................................................2
1.3 Batasan Masalah................................................................................................................2
1.4 Tujuan Penelitian..............................................................................................................2
1.5 Manfaat Penelitian............................................................................................................3
1.6 Metode Perancangan Sistem.............................................................................................3
1.7 Sistematika Penulisan........................................................................................................4
BAB II LANDASAN TEORI....................................................................................................5
2.1 Definisi Game...................................................................................................................5
2.2 Jenis Game........................................................................................................................5
2.3 FPB dan KPK....................................................................................................................6
2.3.1 Cara Mencari FPB dan KPK...........................................................................................6
2.4 Metode Petak Sawah........................................................................................................8
2.5 Android.............................................................................................................................9
2.5.1 Arsitektur Android...........................................................................................................9
2.6 Analisis Kebutuhan Sistem.............................................................................................10
2.7 Analisis Kelayakan Sistem..............................................................................................11
2.8 UML................................................................................................................................11
2.9 Metode Pengembangan Sistem.......................................................................................13
x
2.10 Metode Pengujian Sistem................................................................................................15
2.10.1 Unit Testing..................................................................................................................15
BAB III ANALISIS DAN PERANCANGAN........................................................................17
3.1 Deskripsi Singkat............................................................................................................17
3.2 Analisis Masalah.............................................................................................................17
3.2.1 Solusi-Solusi yang diterapkan........................................................................................17
3.2.2 Solusi yang dipilih..........................................................................................................17
3.3 Analisis Kebutuhan Sistem..............................................................................................18
3.3.1 Analisis Kebutuhan Fungsional.....................................................................................18
3.3.2 Analisis Kebutuhan Non-Fungsional.............................................................................18
3.4 Analisis Kelayakan Sistem...............................................................................................18
3.4.1 Analisis Kelayakan Teknis.............................................................................................18
3.4.2 Analisis Kelayakan Operasional....................................................................................19
3.4.3 Analisis Kelayakan Hukum............................................................................................20
3.4.4 Analisis Kelayakan Ekonomi.........................................................................................20
3.5 Perancangan Sistem.........................................................................................................20
3.5.1 Rancangan HIPO Diagram.............................................................................................20
3.5.2 Rancangan Actifity Diagram..........................................................................................22
3.5.3 Rancangan Sequence Diagram.......................................................................................27
3.5.4 Rancangan Antarmuka...................................................................................................30
BAB IV HASIL DAN PEMBAHASAN.................................................................................34
4.1 Implementasi...................................................................................................................34
4.1.1 Halaman Awal................................................................................................................34
4.1.2 Halaman Pemilihan Level Permainan............................................................................36
4.1.3 Halaman Pemilihan Nomor Soal....................................................................................39
4.1.4 Halaman Permainan.......................................................................................................43
4.1.5 Halaman Bantuan...........................................................................................................47
4.1.6 Halaman Kredit..............................................................................................................50
4.2 Pengujian Sistem.............................................................................................................53
4.2.1 White Box Testing.........................................................................................................54
4.2.2 Black Box Testing..........................................................................................................55
BAB V KESIMPULAN DAN SARAN...................................................................................57
5.1 Kesimpulan.....................................................................................................................57
5.2 Saran................................................................................................................................57
xi
DAFTAR PUSTAKA..............................................................................................................58
xii
DAFTAR TABEL
xiii
DAFTAR GAMBAR
xiv
BAB I
PENDAHULUAN
Implementasi teknik desain game dalam pembuatan game mobile sederhana diberikan
oleh Yunis Aprilianti dkk (2013) membuat sebuah permainan mobil bertemakan edukasi
dalam perangkat Android dengan topik pembelajaran matematika kelas VI sekolah dasar.
Aplikasi yang dibuat oleh Ivan Eric Budhiato (2013) dapat digunakan sebagai salah satu
media edukasi yang memiliki pola pembelajaran learning by doing. Ia membuat soal
matematika yang bertipe penjumlahan, pengurangan, perkalian, pembagian dan campuran
yang merupakan gabungan antara penjumlahan, pengurangan, perkalian, dan pembagian.
FPB dan KPK merupakan suatu konsep Matematika yang mempelajari konsep bilangan
yang diajarkan di kelas tinggi Sekolah Dasar (SD) dan di kelas awal Sekolah Menengah
Pertama (SMP). Seringkali peserta didik di usia tersebut mengalami kesulitan dalam
menentukan FPB dan KPK dari dua atau tiga bilangan tertentu. Apalagi jika mereka
dihadapkan pada prosedur faktorisasi prima yang cukup kompleks. Andai pun mereka telah
1
2
bisa melewati tahapan faktorisasi prima, terkadang mereka gagal dalam mengeksekusi
tahapan akhir menentukan FPB dan KPK suatu bilangan. Terdapat beberapa metode atau
prosedur yang dipakai dalam menentukan FPB dan KPK salah satunya adalah metode Petak
Sawah. Metode Petak Sawah adalah cara yang cepat dan sederhana untuk mencari FPB dan
KPK dari suatu bilangan karena tidak perlu mencari faktorisasi prima terlebih dahulu
sehingga ini sangat cocok apabila diajarkan kepada anak-anak. Hal ini kemudian
melatarbelakangi penulisan skripsi yang berjudul ‘Perancangan Game Edukasi Tentang FPB
dan KPK Menggunakan Metode Petak Sawah Berbasis Android’
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah diuraian pada latar belakang masalah, maka
dapat dirumuskan adalah bagaimana merancang permainan edukasi dalam menentukan FPB
dan KPK menggunakan metode Petak Sawah berbasis Android.
1. Merancang dan membangun sebuah aplikasi game yang berbasis perangkat mobile
modern yang berguna untuk edukasi matematika.
2. Sebagai syarat kelulusan program studi Strata 1 (S1) di Universitas Islam Indonesia
Yogyakarta pada jurusan Teknik Informatika.
pembuatan game dan wawasan dalam menerapkan teori-teori yang sudah di peroleh
dibangku perkuliahan.
2 Merangsang motorik halus anak, meningkatkan kemampuan berfikir dan membuat anak
belajar konsentrasi, melatih koordinasi tangan dan mata, meningkatkan keterampilan
kognitif yaitu dalam memecahkan masalah.
Metode Pengembangan Sistem yang akan dipakai dalam perancangan sistem ini
adalah menggunakan metode SDLC Waterfall dengan tahapan sebagai berikut:
1. Software Requirement Analysis
2. Design
3. Coding
4. Testing
5. Maintenance
berikut:
BAB I PENDAHULUAN
masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan
sistematika penulisan.
Bab ini berisi tentang teori-teori, konsep dasar yang mendukung pembuatan game
Petak Sawah KPK dan FPB menggunakan android, dasar teori, sejarah perkembangan game,
konsep dasar game, pengertian game, jenis-jenis game, metode pengembangan, fitur game,
Pada bab ini dijelaskan analisis dan perancangan aplikasi game Petak Sawah KPK
dan FPB yaitu tujuan analisis sistem, analisis kebutuhan sistem, analisis kelayakan sistem,
Pada bab 4 ini mengutarakan implementasi sistem yang mencakup cara pembuatan,
BAB V PENUTUP
Merupakan bab terakhir yang berisi tentang kesimpulan dari apa yang telah dibuat
yang kemudian diakhiri dengan saran untuk memperbaiki aplikasi yang telah dihasilkan
5
6
Sedangkan FPB bilangan didapat dengan mencari semua perkalian dua bilangan yang
menghasilkan bilangan tersebut. Contoh :
Carilah FPB antara 25 dan 40.
Bilangan 25 didapat dari hasil perkalian (1 x 25) dan (5 x 5). Jadi, faktor dari 25 adalah 1, 5,
dan 25. Bilangan 40 didapat dari hasil perkalian (1 x 40), (2 x 20), (4 x 10), dan (5 x 8). Jadi,
faktor dari 40 adalah 1, 2, 4, 5, 8, 10, 20, dan 40. Perhatikan faktor-faktor bilangan 25 dan 40.
Didapat bahwa yang merupakan faktor yang sama dan terbesar adalah 5. Jadi,
GCD(25,40)=5.
3 4
0 2
1 2
2
5 1
3 5 7
5 1 -
7 - 1
2. Gambar tersebut terdiri dari tiga kolom, yang paling kiri merupakan kolom angka prima
yang digunakan sebagai pembagi, dan kolom kedua dan ketiga merupakan kolom angka
yang akan dicari FPB dan KPK . Angka 30 dan 42 dibagi dengan bilangan prima, agar
lebih mudah dan rapi. dibiasakan membaginya dengan bilangan prima terkecil lebih
dahulu, jika salah satunya masih bisa terus gunakan angka prima yang sama untuk
membaginya, jika sudah tidak dapat dibagi lagi maka gunakan angka prima sesudahnya,
terus begitu sampai semua kolom menjadi 1 karena habis dibagi dengan bilangan prima.
8
3. Pertama bagi 30 dan 42 dengan bilangan prima terkecil yaitu 2, masing-masing hasilnya
15 dan 21.
3 4
0 2
1 2
2
5 1
4. Kemudian periksa apakah 15 dan 21 bisa dibagi dengan 2, jika tidak ada yang bisa dibagi
dengan 2 maka gunakan bilangan prima berikutnya untuk membaginya yaitu 3. hasilnya
seperti ini
1 2
2
5 1
3 5 7
5. Sekarang hasil pembagian 15 dan 21 dengan 3 menghasilkan angka 5 dan 7. periksa lagi
apakah 5 dan 7 masih bisa dibagi 3, jika tidak bisa, maka bagi dengan angka prima
berikutnya yaitu 5. Tapi yang dapat dibagi dengan 5, hanya angka 5 sedangkan 7 tidak
bisa. Hal ini tidak masalah, yang tidak bisa dibagi dengan angka 5 cukup kasih tanda “-“
yang menandakan tidak bisa.
3 5 7
5 1 -
6. Jika sudah menjadi 1 maka kolom tersebut sudah selesai, dan tidak perlu dibagi lagi
dengan angka prima. Kemudian membagi kolom lain dengan angka prima agar menjadi
1. Pada kolom tersebut menyisakan angka 7, maka hanya tinggal dibagi dengan angka
prima 7 agar menjadi 1.
3 5 7
5 1 -
7 - 1
7. Sekarang masing-masing kolom angka yang akan kita tentukan FPB dan KPK nya telah
menjadi 1. lebih lengkapnya seperti gambar dibawah ini
3 4
0 2
2 1 2
9
5 1
3 5 7
5 1 -
7 - 1
8. Perhatikan kolom selain kolom bilangan prima, ada dua kolom yang terisi bersamaan
(ditulis dengan warna merah), sedangkan kolom lain hanya terisi salah satunya. Kalikan
angka prima dari kolom yang keduanya terisi angka (yaitu baris 1 dan 2) untuk
mendapatkan FPB, dengan angka prima 2 dan 3, maka 2 x 3 = 6. Sedangkan untuk KPK
hanya perlu untuk mengalikan seluruh angka yang ada di kolom angka prima, yaitu 2, 3,
5, dan 7. Maka KPK nya adalah 2 x 3 x 5 x 7 = 210.
2.5 Android
Android merupakan sistem operasi berbasis Linux yang bersifat terbuka (open source)
dan dirancang untuk perangkat seluler layar sentuh seperti smartphone dan komputer tablet.
Android dikembangkan oleh Android, Inc., dengan dukungan finansial dari google yang
kemudian dibeli pada tahun 2005. Android dirilis secara resmi pada tahun 2007, bersamaan
dengan didirikannya Open Handset Alliance Tampilan Android didasarkan pada manipulasi
langsung, menggunakan masukan sentuh yang serupa dengan tindakan di dunia nyata, seperti
menggesek, mengetuk, mencubit, dan membalikkan cubitan untuk memanipulasi obyek di
layar. Pada bulan Oktober 2012, terdapat 700.000 aplikasi yang tersedia untuk Android, dan
sekitar 25 juta aplikasi telah diunduh dari Google Play, toko aplikasi utama Android. Sebuah
survey pada bulan April-Mei 2013 menemukan bahwa Android adalah platform paling
populer bagi para pengembang, digunakan oleh 71% pengembang aplikasi seluler. Dan pada
tanggal 3 September 2013, 1 miliar perangkat Android telah Diaktifkan Sifat Android yang
terbuka telah membuat bermunculannya sejumlah besar komunitas pengembang aplikasi
untuk menggunakan android sebagai dasar proyek pembuatan aplikasi, dengan menambahkan
fitur-fitur baru bagi android pada perangkat yang secara resmi dirilis dengan menggunakan
sistem operasi lain.
2.8 UML
UML singkatan dari Unified Modeling Language yang berarti bahasa pemodelan
standar. Chonoles (2003) mengatakan sebagai bahasa, berarti UML memiliki sintaks dan
semantik. Ketika kita membuat model menggunakan konsep UML ada aturan-aturan yang
harus diikuti. Bagaimana elemen pada model-model yang kita buat berhubungan satu dengan
lainnya harus mengikuti standar yang ada. UML bukan hanya sekadar diagram, tetapi juga
menceritakan konteksnya. Ketika pelanggan memesan sesuatu dari sistem, bagaimana
transaksinya? Bagaimana sistem mengatasi error yang terjadi? Bagaimana keamanan
terhadap sistem yang kita buat? Dan sebagainya dapat dijawab dengan UML. UML
diaplikasikan untuk maksud tertentu, biasanya antara Iain untuk:
1. Merancang perangkat lunak.
12
2. Sequence Diagram
Sequence Diagram merupakan salah satu diagram interaksi yang menjelaskan bagaimana
suatu operasi ini dilakukan, message (pesan ) apa yang dikirim dan waktu pelaksanaannya.
Diagram ini diatur berdasarkan waktu. Objek-objek yang berkaitan dengan proses
berjalannya operasi diurutkan dari kiri ke kanan berdasaran waktu terjadinya dalam pesan
yang terurut. Sequence Diagram biasa digunakan untuk menggambarkan skenario atau
rangkaian langkah-langkah yang dilakukan sebagai respon dari sebuah event untuk
menghasilkan output tertentu.
Dalam Sequence Diagram terdapat dua simbol yaitu:
a. Actor, untuk menggambarkan pengguna sistem.
b. LifeLine, menerangkan waktu terjadinya suatu objek.
2. Design Progress
Proses ini digunakan untuk mnegubah kebutuhan-kebutuhan diatas
menjadi representasi ke dalam bentuk cetak biru atau blueprint software
sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan
yang telah disebutkan pada tahap sebelumnya. Seperti aktivitas sebelumnya,
maka proses ini juga harus didokumentasikan sebagai konfigurasi dari
software.
3. Coding
Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka
desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh
mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini
merupakan implementasi dari tahap desain yang secara teknis nantinya
dikerjakan oleh programmer.
4. Testing
Dalam tahap ini dilakukan pengujian software yang sudah dibuat. Semua
fungsi-fungsi software harus diuji, dipastikan tidak ada kesalahan, dan hasilnya
sudah sesuai dengan kebutuhan.
15
5. Maintenance
Pemeliharaan suatu software diperlukan, termasuk didalamnya adalah
pengembangan, karena software yang sudah dibuat tidak selamanya berfungsi
dengan baik, terkadang bisa mengalami gangguan dari dalam (bug) atau dari
luar sistem. Pemeliharaan perlu dilakukan, apalagi jika ingin menambahkan
fitur baru yang dimana fitur baru tesebut biasanya kadang bisa menimbulkan
bug.
Game Petak Sawah FPB dan KPK merupakan game yang dirancang untuk semua
kalangan, namun diutamakan untuk anak-anak. Game ini dirancang sebagai game edukasi
matematika dimana merupakan salah satu mata pelajaran yang penting untuk dipelajari oleh
siswa sekolah.
Dengan memanfaatkan sistem operasi Android dengan segala fitur unggulannya
penulis mencoba memberikan solusi agar semakin banyak pilihan game edukasi untuk anak-
anak sehingga lebih berguna dalam memanfaatkan waktu dan pengembangan kemampuan
kognitif.
Analisis masalah adalah analisis yang dilakukan dalam rangka identifikasi masalah
yang dihadapi dan mencari solusi-solusi yang dibutuhkan dalam merancang sebuah sistem
yang baik.
Dari solusi yang sudah disusun maka akan diambil sebuah solusi yang akan
merangkum semua masalah yang dihadapi yaitu membuat Game Petak Sawah FPB dan KPK
yang bisa dimainkan oleh semua kalangan dan menambahkan fitur-fitur yang bermanfaat
sehingga mempermudah pengguna dalam memainkan game tersebut.
16
17
Analisis kebutuhan sistem yaitu analisa yang dilakukan terhadap suatu sistem
mengenai kebutuhan dari sistem tersebut agar dapat berjalan. Analisis kebutuhan dibagi
menjadi dua, yaitu analisis kebutuhan fungsional dan analisis kebutuhan non fungsional.
Kebutuhan fungsional merupakan kebutuhan utama yang harus dimiliki sistem supaya fungsi
dari sistem tersebut dapat berjalan sesuai dengan harapan. Kebutuhan non-fungsional
merupakan kebutuhan yang diperlukan sistem untuk mendukung sistem tersebut dapat
berjalan dengan baik.
Berikut ini adalah analisis kebutuhan fungsional dari game Petak Sawah yang akan
dirancang oleh penulis, diantaranya :
Berikut ini adalah analisis kebutuhan non-fungsional dari Game Petak Sawah FPB
dan KPK ini, diantaranya:
1. Kebutuhan perangkat keras (Susahware) dalam merancang game ini adalah sebuah PC
dengan spesifikasi:
3. Dan kebutuhan minimal sistem ponsel Android yang bisa menjalankan aplikasinya
adalah:
a. Prosessor Dual Core 1 Ghz
b. RAM 256MbROM 512Gb
c. Resolusi minimal 800 x 480 pixel
Analisis kelayakan sistem bertujuan untuk memastikan bahwa sistem yang dibuat
memang layak untuk diimplementasikan. Analisis kelayakan pada sistem aplikasi yang dibuat
adalah sebagai berikut:
Agar sistem disebut layak secara operasional, maka usulan kebutuhan sistem harus
benar-benar menyelesaikan masalah yang ada di sisi pengguna dan informasi yang dihasilkan
merupakan informasi yang benar-benar dibutuhkan oleh pengguna. Aplikasi Game Petak
Sawah FPB dan KPK ini dirancang untuk memudahkan pengguna dengan alur yang
sederhana dan diutamakan kepada anak-anak.
Android merupakan Sistem Operasi yang bersifat open source dan untuk
pengembangan aplikasi juga gratis maka aplikasi ini dianggap legal. Kemudian dalam
pembuatannya menggunakan bahasa pemrograman Java dan XML yang juga gratis. Karena
dari mulai pembuatan aplikasi Android ini semua legal dan tidak melanggar hak cipta, jadi
disimpulkan secara aplikasi ini dianggap layak.
Aplikasi ini dapat diunduh oleh pengguna secara gratis melalu Google Play Store. Selain
itu, untuk mengembangkan aplikasi ini tidak membutuhkan biaya untuk membeli lisensi
software untuk pengembangan, karena software yang digunakan untuk pengembangan juga
didapatkan secara gratis. Maka dari segi ekonomi aplikasi layak untuk dikembangkan.
Untuk lebih memperjelas tentang gambaran sistem maka penulis membuat UML
dengan beberapa tipe yaitu HIPO Diagram, Activity Diagram, Sequence Diagram, dan Class
Diagram.
Game Petak Sawah dirancang dan didesain menggunakan diagram HIPO. Diagram HIPO
bertujuan untuk menjelaskan fungsi-fungsi yang ada pada struktur sebuah program.
Tujuannya yaitu menjelaskan bagaimana alur kerja dan keluaran (output) dari sebuah
program secara terperinci. Diagram HIPO mempunyai tiga tingkatan yaitu diagram daftar isi
visual (Visual Table of Content atau VTOC), diagram ringkasan (Overview Diagram), dan
diagram rinci (Detail Diagram).
1. Diagram Daftar Isi Visual
20
Diagram daftar isi visual adalah diagram yang menggambarkan hubungan dari
fungsi-fungsi yang terdapat dalam suatu program. Fungsi-fungsi tersebut dihubungkan
dalam bentuk hirarki dan diberi nomor sesuai dengan urutan hirarkinya. Diagram daftar
isi visual dapat dilihat pada
Diagram Rinci
Diagram ini menjelaskan fungsi-fungsi khusus, menunjukkkan item-item yang
khusus pada masukan dan keluaran, dan menunjukkan diagram rinci lainnya. Diagram
rinci dapat dilihat pada tabel berikut :
Tabel 3.2 Diagram Rinci
a
Masukan Proses Keluaran
Memuat script
Klik tombol (gambar,suara, dan teks) Menampilkan halaman pilihan
main menuju halaman aturan pilih level
level
Memuat script
Klik tombol
(gambar,suara, dan teks) Menampilkan halaman pilihan soal
pilih level
menuju halaman pilih soal
Memuat script ( gambar,
suara dan teks) Permainan dimulai.
Klik tombol memulai permainan
Nomor Soal (Permainan Berakhir)
Menampilkan halaman Permainan
Memuat script
berakhir (Game Over)
(gambar, suara, teks)
Memuat script
Klik tombol
(gambar,suara, dan teks) Menampilkan halaman bantuan
Bantuan
menuju halaman bantuan
Memuat script
Klik tombol
(gambar,suara, dan teks) Menampilkan halaman kredit
Kredit
menuju halaman kredit
Memuat script
Klik tombol
(gambar,suara, dan teks) Menutup aplikasi
Keluar
keluar dari aplikasi
Activity Diagram menggambarkan berbagai aliran aktifitas dalam sistem yang sedang
dirancang, bagaimana setiap aliran berawal, decision yang mungkin terjadi, dan bagaimana
mereka berakhir. Berikut ini adalah rancangan Activity Diagram yang terdapat pada aplikasi :
Gambar 3.3 Activity Diagram Halaman Main Game Petak Sawah FPB dan KPK
Gambar 3.7 Activity Diagram Halaman Bantuan Game Petak Sawah FPB dan KPK
25
Gambar 3.8 Activity Diagram Halaman Kredit Game Petak Sawah FPB
dan KPK
Untuk masuk ke halaman bantuan harus membuka aplikasi terselebih dahulu,
kemudian memilih menu bantuan, kemudian sistem akan menampilkan halaman
bantuan.
Gambar 3.9 Sequence Diagram Halaman Main Game Petak Sawah FPB dan KPK
Gambar 3.13 Sequence Diagram Halaman Bantuan Game Petak Sawah FPB dan KPK
Gambar 3.14 Sequence Diagram Halaman Kredit Game Petak Sawah FPB dan KPK
Sequence Diagram pada gambar 3.15 menggambarkan alur dari berjalannya
proses membuka halaman kredit secara berurutan. Dimulai dari pemain menekan
tombol kredit hingga membuka tampilan halaman kredit.
Gambar 3.15 Sequence Diagram keluar aplikasi Game Petak Sawah FPB dan KPK
Sequence Diagram pada gambar 3.16 menggambarkan alur dari berjalannya
proses membuka halaman utama hingga keluar secara berurutan. Dimulai dari
pemain menekan tombol keluar hingga pemain keluar dari aplikasi.
Gambar 3.16 Rancangan Halaman Utama Game Petak Sawah FPB dan KPK
Pada halaman utama, terdiri dari 4 menu utama yaitu, menu main, bantuan,
kredit, keluar dan pengaturan suara. saat memilih menu main pemain akan
diarahkan ke level permainan yang dapat dimainkan. saat memilih menu bantuan
pemain akan diarahkan ke halaman bantuan yang berisi tutorial cara bermain.
Sedangkan pada menu kredit pemain akan diarahkan ke halaman tentang aplikasi.
30
Untuk keluar dari aplikasi pemain hanya perlu memilih menu keluar. selain itu ada
tombol suara yang berfungsi untuk menghidupkan musik latar pada game.
Gambar 3.17 Rancangan Halaman Pilihan Level Permainan Game Petak Sawah FPB dan
KPK
Pada halaman ini pemain akan diberikan 3 pilihan level permainan, yaitu
Mudah, Sedang, dan Susah. jika pemain ingin bermain dengan mudah melawan
komputer atau AI dari game dan bentuk trek yang sederhana, maka pemain memilih
menu Mudah. Kesulitan dan kerumitan trek semakin meningkat pada level Sedang
dan Susah.
Gambar 3.18 Rancangan Halaman Pilihan No. Soal Permainan Game Petak Sawah FPB
dan KPK
31
Gambar 3.19 Rancangan Halaman Bantuan Game Petak Sawah FPB dan KPK
Pada halaman bantuan, pemain akan diberikan panduan dalam bermain maupun
dalam memakai aplikasi.
Gambar 3.20 Rancangan Halaman Kredit Game Petak Sawah FPB dan KPK
Pada halaman kredit, pemain akan diberikan informasi tentang aplikasi game
ini.
Gambar 3.21 Rancangan Halaman Permainan Game Petak Sawah FPB dan KPK
32
Pada halaman ini, permainan telah dimulai dan permainan dapat diakhiri apabila
pemain ingin selesai bermain. pada halaman ini juga ditampilkan posisi pemain,
minimap, ikon stir kiri-kanan dan gas. Sudut pandang kamera yang dipakai dalam
halaman permainan game ini adalah dari sudut pandang atas kendaraan dan trek..
BAB IV
HASIL DAN PEMBAHASAN
4.1 Implementasi
Pada tahap ini, dapat dilihat hasil dari pembahasan pada bab-bab sebelumnya dan
menghasilkan sebuah sistem yang sesuai. Pada tahap ini juga sistem akan diimplementasi
dalam keadaan yang sesungguhnya dan akan diketahui apakah sudah dihasilkan sistem yang
sudah baik atau tidak. Selain itu pengujian juga akan dilakukan yang bertujuan untuk
mengetahui apakah terdapat kesalahan pada saat melakukan penulisan kode program.
Halaman ini adalah halaman awal pada saat aplikasi dibuka, terdapat menu-menu
yang dapat dipilih oleh pengguna, seperti: halaman main, bantuan, kredit. Selain itu terdapat
dua tombol lainnya yang berfungsi untuk mematikan musik latar belakang dan tombol untuk
keluar dari aplikasi.
Halaman Utama mulai di deklarasikan di class MenuState. pada class ini semua
komponen pada halaman ini mulai dipanggil. komponen-komponen grafis seperti logo, ikon,
dan tombol-tombol juga ditampilkan. kemudian tombol-tombol tersebut berfungsi
mengarahkan pemain ke halaman yang menjadi tujuan. selain itu terdapat tombol btnSound
yang berfungsi untuk menghidupkan dan mematikan musik latar yang akan disimpan oleh
33
34
sistem, sehingga apabila aplikasi tersebut ditutup dan dibuka kembali maka musik
latar akan tetap mati sesuai dengan keadaaan sebelumnya.
public MenuState(GameEngine engine, StateParam param)
{
super(engine, param);
}
@Override
public void initComponent()
{
spBack = new GameSprite(G.sprite.menu.background, engine);
spLogo = new GameSprite(G.sprite.menu.logo, engine);
spPesan = new GameSprite(G.sprite.menu.pesan, engine);
btnMain.setOnClickListener(this);
btnBantuan.setOnClickListener(this);
btnKredit.setOnClickListener(this);
btnKeluar.setOnClickListener(this);
@Override
public void onClick(BaseButton v)
{
if (v == btnMain)
{
exitState(G.state.pilihLevel);
}
else if (v == btnBantuan)
{
exitState(G.state.bantuan);
}
else if (v == btnKredit)
{
exitState(G.state.kredit);
}
else if (v == btnKeluar)
{
keluar();
}
}
@Override
protected void init()
{
@Override
protected void attach()
{
scene.attachChild(spBack);
35
spBack.attachChild(spLogo);
spBack.attachChild(spPesan);
spBack.attachChild(btnMain);
spBack.attachChild(btnBantuan);
spBack.attachChild(btnKredit);
spBack.attachChild(btnKeluar);
spBack.attachChild(btnSound);
}
@Override
protected void detach()
{
spBack.detachSelf();
spLogo.detachSelf();
spPesan.detachSelf();
btnMain.detachSelf();
btnBantuan.detachSelf();
btnKredit.detachSelf();
btnKeluar.detachSelf();
btnSound.detachSelf();
}
@Override
protected void setPosition()
{
spLogo.setPosition(60, 60);
spPesan.setPosition(60, 250);
btnMain.setPosition(450, 120);
btnBantuan.setPosition(450, 203);
btnKredit.setPosition(450, 286);
btnKeluar.setPosition(450, 369);
Seperti yang sudah dirancang pada bab sebelumnya, game ini memiliki 3 level
kesulitan yaitu : Mudah, Sedang, Susah. Apabila pemain ingin dengan level soal yang mudah,
pengguna harus memilih level Mudah. Begitu seterusnya level permainan disesuaikan dengan
nama level.
36
Kemudian dihalaman level permainan, class nya bernama LevelState. pada class ini
komponen yang dipanggil adalah tombol yang mengarahkan ke halaman permainan, yaitu
btnMudah, btnSedang, btnSusah.
ImageButton btnMudah;
ImageButton btnSedang;
ImageButton btnSusah;
// To debug time
long curTime;
@Override
public void initComponent()
{
curTime = System.currentTimeMillis();
btnMudah.setOnClickListener(this);
btnSedang.setOnClickListener(this);
btnSusah.setOnClickListener(this);
@Override
public void onClick(BaseButton v)
{
StateParam p = new StateParam();
if (v == btnMudah)
{
p.put("level", PlayState.LEVEL_MUDAH);
}
else if (v == btnSedang)
{
p.put("level", PlayState.LEVEL_SEDANG);
}
else if (v == btnSusah)
{
p.put("level", PlayState.LEVEL_SUSAH);
}
exitState(G.state.pilihSoal, p);
}
@Override
protected void init()
{
int maxSoal = PrefManager.getMaxSoal();
@Override
protected void attach()
38
{
scene.attachChild(spBack);
spBack.attachChild(spTitle);
spBack.attachChild(btnMudah);
spBack.attachChild(btnSedang);
spBack.attachChild(btnSusah);
spBack.attachChild(spLock1);
spBack.attachChild(spLock2);
}
@Override
protected void detach()
{
spBack.detachSelf();
spTitle.detachSelf();
btnMudah.detachSelf();
btnSedang.detachSelf();
btnSusah.detachSelf();
spLock1.detachSelf();
spLock2.detachSelf();
}
@Override
protected void setPosition()
{
spTitle.setPosition(spBack.getWidth() / 2 - spTitle.getWidth() / 2, 40);
spLock1.setPosition(btnSedang);
spLock2.setPosition(btnSusah);
}
Pada halaman ini pemain diberikan pilihan untuk menyelesaikan soal. Soal yang bisa
dikerjakan pada saat pertama memainkan game ini adalah nomor 1, sedangkan nomor yang
lain masih terkunci. Pilihan soal akan terbuka apabila pengguna bisa menyelesaikan soal pada
nomor soal sebelumnya.
39
Kemudian dihalaman mode permainan, class nya bernama PilihSoalState. pada class
ini komponen yang dipanggil adalah tombol yang mengarahkan ke halaman permainan, yaitu
btn1, btn2, btn3, btn4, btn5 yang berfungsi untuk memilih soal.
int level;
@Override
public void initComponent()
{
spBack = new GameSprite(G.sprite.pilihSoal.background, engine);
spTitle = new GameSprite(G.sprite.pilihSoal.title, engine);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
btn5.setOnClickListener(this);
@Override
public void onClick(BaseButton v)
{
StateParam p = new StateParam();
p.put("level", level);
if (v== btn1)
{
p.put("soal", 1);
}
else if (v == btn2)
{
p.put("soal", 2);
}
else if (v == btn3)
{
p.put("soal", 3);
}
else if (v == btn4)
{
p.put("soal", 4);
}
else if (v == btn5)
{
p.put("soal", 5);
}
exitState(G.state.play, p);
}
@Override
protected void init()
{
int maxSoal = PrefManager.getMaxSoal() - 5 * (level - 1);
@Override
protected void attach()
{
scene.attachChild(spBack);
spBack.attachChild(spTitle);
spBack.attachChild(btn1);
spBack.attachChild(btn2);
spBack.attachChild(btn3);
spBack.attachChild(btn4);
spBack.attachChild(btn5);
spBack.attachChild(lock2);
spBack.attachChild(lock3);
spBack.attachChild(lock4);
spBack.attachChild(lock5);
}
@Override
protected void detach()
{
spBack.detachSelf();
spTitle.detachSelf();
btn1.detachSelf();
41
btn2.detachSelf();
btn3.detachSelf();
btn4.detachSelf();
btn5.detachSelf();
lock2.detachSelf();
lock3.detachSelf();
lock4.detachSelf();
lock5.detachSelf();
}
@Override
protected void setPosition()
{
spTitle.setPosition(spBack.getWidth() / 2 - spTitle.getWidth() / 2, 40);
lock2.setPosition(btn2);
lock3.setPosition(btn3);
lock4.setPosition(btn4);
lock5.setPosition(btn5);
}
@Override
protected void registerTouch()
{
@Override
protected void unregisterTouch()
{
@Override
protected void onUpdate()
{
@Override
protected void onPaused()
{
@Override
protected void onResumed()
{
@Override
protected void onLeave()
{
@Override
public void onKeyUp(int keyCode, KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK)
{
Sfx.Play(Sfx.SFX_CLICK);
exitState(G.state.pilihLevel);
}
42
@Override
public boolean onAreaTouched(TouchEvent touchEvent, ITouchArea iTouchArea, float v, float v1)
{
return false;
}
}
Pada halaman ini pemain harus menyelesaikan soal untuk mencari KPK dan FPB dari
angka yang sudah ditentukan. Pengguna hanya perlu memindahkan balok-balok ketempat
yang menurutnya benar. Apabila kesulitan menjawab soal pengguna bisa memilih pilihan
tombol bantuan yang akan membantu menyusun balok. Maksimal penggunaan bantuan dalam
sekali permainan adalah 3 kali. Apabila pengguna sudah yakin dengan jawaban yang
dipilihnya pengguna hanya perlu tap tombol check. dihalaman permainan, class nya bernama
PlayState.
35
// Dialogs
private WinDialog winDialog;
private CorrectDialog correctDialog;
// Asset static
private static boolean assetLoaded = false;
private static GameSprite spBack, spStatus;
private static GameText txtStatus;
private static ImageButton btnCheck, btnReset;
private static ButtonWithNumber btnHint;
43
Petak petak;
Soal soal;
int noSoal;
Timer timer;
int waktu = Const.LAMA_WAKTU;
boolean isWin = false;
Angka[] angkas;
// To debug time
long curTime;
@Override
public void initComponent()
{
curTime = System.currentTimeMillis();
exitState(G.state.play, p);
}
@Override
public void onToMenu()
{
exitState(G.state.menu);
}
@Override
public void onToPilih()
{
exitState(G.state.pilihLevel);
}
});
// Asset
if (!assetLoaded)
{
spBack = new GameSprite(G.sprite.play.background, engine);
spStatus = new GameSprite(G.sprite.play.statusBack, engine);
txtStatus = new GameText("", 100, G.font.medium, engine);
assetLoaded = true;
}
btnCheck.setOnClickListener((v) ->
{
int c = petak.check();
if (c == Petak.CHECK_EMPTY)
{
correctDialog.showFalse();
}
else if (c == Petak.CHECK_FALSE)
{
correctDialog.showFalse();
}
else if (c == Petak.CHECK_CORRECT)
{
isWin = true;
PrefManager.setMaxSoal(noSoal + 1);
correctDialog.showCorrect();
}
});
btnReset.setOnClickListener(v ->
{
for (Angka a : angkas)
{
if (a.getBox() != null)
{
a.getBox().removeAngka();
a.setToFixedLocation(false);
}
}
});
btnHint.setOnClickListener(v ->
{
if (btnHint.getNumber() > 0)
{
if (Const.RANDOM_HINT) hintRandom();
else hintUrut();
}
});
angkas[a].setOnAngkaUpListener(new Angka.OnAngkaUpListener()
{
@Override
public void onUp(Angka angka, float x, float y)
{
petak.angkaMasuk(angka, x, y);
}
@Override
public void onClick(Angka angka)
{
if (angka.getBox() != null)
{
angka.getBox().removeAngka();
angka.setToFixedLocation(false);
}
}
});
}
@Override
protected void init()
{
curTime = System.currentTimeMillis();
winDialog.setVisible(false, true);
btnHint.setNumber(Const.HINT_COUNT);
txtTimer.setText(waktu + "");
timer.startAgain();
@Override
protected void attach()
{
curTime = System.currentTimeMillis();
hud.attachChild(correctDialog);
hud.attachChild(winDialog);
scene.attachChild(spBack);
spBack.attachChild(spStatus);
spStatus.attachChild(txtStatus);
spBack.attachChild(spTimer);
spBack.attachChild(txtTimer);
spBack.attachChild(btnCheck);
spBack.attachChild(btnReset);
spBack.attachChild(btnHint);
spBack.attachChild(petak);
@Override
protected void detach()
{
curTime = System.currentTimeMillis();
correctDialog.detachSelf();
winDialog.detachSelf();
spBack.detachSelf();
spStatus.detachSelf();
txtStatus.detachSelf();
spTimer.detachSelf();
txtTimer.detachSelf();
btnCheck.detachSelf();
btnReset.detachSelf();
btnHint.detachSelf();
petak.detachSelf();
@Override
protected void setPosition()
{
curTime = System.currentTimeMillis();
spTimer.setPosition(450, 20);
txtTimer.setPosition(spTimer.getX() + spTimer.getWidth() + 5, spTimer.getY() +
spTimer.getHeight() / 2 - txtTimer.getHeight() / 2 + 3);
Pada halaman ini berisi tentang cara memakai aplikasi dan tutorial yang dipakai
belajar oleh pengguna yang belum mengetahui tentang permainan Game Petak Sawah.
47
@Override
public void initComponent()
{
spBack = new GameSprite(G.sprite.bantuan.background, engine);
spTitle = new GameSprite(G.sprite.bantuan.title, engine);
spBox = new GameSprite(G.sprite.bantuan.box, engine);
spText = new GameSprite(G.sprite.bantuan.text, engine);
@Override
protected void init()
{
@Override
protected void attach()
{
scene.attachChild(spBack);
spBack.attachChild(spTitle);
spBack.attachChild(spBox);
spBox.attachChild(scrollView);
}
48
@Override
protected void detach()
{
spBack.detachSelf();
spTitle.detachSelf();
spBox.detachSelf();
scrollView.detachSelf();
}
@Override
protected void setPosition()
{
spTitle.setPosition(spBack.getWidth() / 2 - spTitle.getWidth() / 2, 25);
spBox.setPosition(30, 120);
scrollView.setPosition(13, 18);
}
@Override
protected void registerTouch()
{
@Override
protected void unregisterTouch()
{
@Override
protected void onUpdate()
{
@Override
protected void onPaused()
{
@Override
protected void onResumed()
{
@Override
protected void onLeave()
{
@Override
public void onKeyUp(int keyCode, KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK)
{
Sfx.Play(Sfx.SFX_CLICK);
exitState(G.state.menu);
}
}
@Override
public boolean onAreaTouched(TouchEvent touchEvent, ITouchArea iTouchArea, float v, float v1)
{
return false;
}
}
49
Pada halaman ini akan diberikan kredit kepada pihak yang terlibat secara langsung
atau tidak dalam perancangan aplikasi ini.
Pada halaman kredit, nama class nya adalah KreditState. dimana yang diinisialisai
adalah sprite untuk menampilkan frame untuk menampung teks yang akan ditampilkan. Font
yang digunakan untuk mendukung tampilan aplikasi game adalah CrystalRadioKit.
GameText txtGameDesign;
GameText txtGameDesignName;
GameText txtProgrammer;
GameText txtProgrammerName;
GameText txt2DArt;
GameText txt2DArtName;
GameText txtSound;
GameText txtSoundName;
@Override
public void initComponent()
{
spBack = new GameSprite(G.sprite.kredit.background, engine);
spTitle = new GameSprite(G.sprite.kredit.title, engine);
spBox = new GameSprite(G.sprite.kredit.box, engine);
@Override
protected void init()
{
@Override
protected void attach()
{
scene.attachChild(spBack);
spBack.attachChild(spTitle);
spBack.attachChild(spBox);
spBox.attachChild(txtGameDesign);
spBox.attachChild(txtGameDesignName);
spBox.attachChild(txtProgrammer);
spBox.attachChild(txtProgrammerName);
spBox.attachChild(txt2DArt);
spBox.attachChild(txt2DArtName);
spBox.attachChild(txtSound);
spBox.attachChild(txtSoundName);
}
@Override
protected void detach()
{
spBack.detachSelf();
spTitle.detachSelf();
spBox.detachSelf();
txtGameDesign.detachSelf();
txtGameDesignName.detachSelf();
txtProgrammer.detachSelf();
txtProgrammerName.detachSelf();
txt2DArt.detachSelf();
txt2DArtName.detachSelf();
txtSound.detachSelf();
txtSoundName.detachSelf();
}
@Override
protected void setPosition()
{
spTitle.setPosition(spBack.getWidth() / 2 - spTitle.getWidth() / 2, 25);
spBox.setPosition(30, 120);
txtProgrammer.setPosition(spBox.getWidth() / 4 - txtProgrammer.getWidth() / 2,
txtGameDesignName.getY() + txtGameDesignName.getHeight() + 30);
txtProgrammerName.setPosition(spBox.getWidth() / 4 - txtProgrammerName.getWidth() / 2,
txtProgrammer.getY() + txtProgrammer.getHeight());
txt2DArt.setPosition(spBox.getWidth() * 3 / 4 - txt2DArt.getWidth() / 2,
txtGameDesign.getY());
txt2DArtName.setPosition(spBox.getWidth() * 3 / 4 - txt2DArtName.getWidth() / 2,
txtGameDesignName.getY());
txtSound.setPosition(spBox.getWidth() * 3 / 4 - txtSound.getWidth() / 2,
txtProgrammer.getY());
txtSoundName.setPosition(spBox.getWidth() * 3 / 4 - txtSoundName.getWidth() / 2,
txtProgrammerName.getY());
}
51
@Override
protected void registerTouch()
{
@Override
protected void unregisterTouch()
{
@Override
protected void onUpdate()
{
@Override
protected void onPaused()
{
@Override
protected void onResumed()
{
@Override
protected void onLeave()
{
@Override
public void onKeyUp(int keyCode, KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK)
{
Sfx.Play(Sfx.SFX_CLICK);
exitState(G.state.menu);
}
}
@Override
public boolean onAreaTouched(TouchEvent touchEvent, ITouchArea iTouchArea, float v, float v1)
{
return false;
}
}
Pada tahap ini akan dijelaskan tahap pengujian yang dilakukan pada program. Pengujian
yang dilakukan diaplikasi ini adalah menggunakan metode. White Box Testing dan Black Box
Testing dan akan dijabarkan hasil dari setiap pengujian.
Pada proses White-box testing ini dilakukan pengujian dengan melihat dalam modul
52
untuk meneliti kode-kode program yang ada dan menganalisis apakah ada kesalahan atau
tidak. Jika ada modul yang menghasilkan output yang tidak sesuai dengan proses yang
dilakukan, maka baris-baris program variable dan parameter yang terlibat pada unit tersebut
akan di cek satu persatu dan diperbaiki lalu di compile ulang. Pada pengujian yang dilakukan
terdapat dua hasil pada kode program yaitu Error dan Warning. Untuk lebihnya dapat dilihat
sebagai berikut.
1. Error
Pada pengujian ini jika kode program terdapat Error, maka terjadi kesalahan yang fatal
pada program dan harus diperbaiki agar program dapat berjalan sebagaimana mestinya.
Contoh Error dapat dilihat pada gambar dibawah ini :
2. Warning
Pada pengujian ini jika kode program terdapat Warning, maka program dapat tetap
berjalan. Kondisi ini terjadi jika kode program benar namun tidak sesuai dengan standar kode
program dari vendor, dalam hal ini java. Contoh warning saat menjalankan aplikasi dapat
dilihat pada gambar dibawah ini:
53
5.1 Kesimpulan
5.2 Saran
55
56
DAFTAR PUSTAKA
Asmiatun, Siti. 2017. Belajar Membuat Game 2D dan 3D Menggunakan Unity: Deepublish.
Al Fatta, Hanif. 2007. Analisis dan Perancangan Sistem Informasi Untuk Keunggulan
Bersaing Perusahaan dan Organisasi Modern: Penerbit ANDI
Kusrini & Koniyo, Andri. 2007. Tuntunan Praktis Membangun Sistem Informasi Akuntansi
dengan Visual Basic dan Microsoft SQL Server: Penerbit Andi
Wadi, Hamzan. 2012. Pemrograman Android Untuk Pelajar dan Mahasiswa, Jakarta: Turida
Publisher.