Perancangan Permainan Word Ladder Menggunakan Algoritma Depth First Search Pada Android
PERANCANGAN PERMAINAN
WORD LADDER
MENGGUNAKAN
ALGORITMA
DEPTH FIRST SEARCH
PADA ANDROID
SKRIPSI
RAFIQA ULFAH RANGKUTI
091402040
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2014(2)
PERANCANGAN PERMAINAN
WORD LADDER
MENGGUNAKAN
ALGORITMA
DEPTH FIRST SEARCH
PADA ANDROID
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi
RAFIQA ULFAH RANGKUTI 091402040
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2014
(3)
PERSETUJUAN
Judul : PERANCANGAN PERMAINAN WORD LADDER
MENGGUNAKAN ALGORITMA DEPTH FIRST SEARCH PADA ANDROID
Kategori : SKRIPSI
Nama : RAFIQA ULFAH RANGKUTI
Nomor Induk Mahasiswa : 091402040
Program Studi : SARJANA (S-1) TEKNOLOGI INFORMASI Departemen : TEKNOLOGI INFORMASI
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, 17 April 2014
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Sarah Purnamawati, ST. M.Sc Mohammad Fadly Syahputra, M.Sc NIP 19830226 201012 2 003 NIP 19830129 200912 1 003
Diketahui/Disetujui oleh
Program Studi S1 Teknologi Informasi Ketua,
Prof. Dr. Opim Salim Sitompul, M.Sc. NIP 19610817 198701 1 001
(4)
PERNYATAAN
PERANCANGAN PERMAINAN WORD LADDER MENGGUNAKAN ALGORITMA DEPTH FIRST SEARCH PADA ANDROID
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 17 April 2014
Rafiqa Ulfah Rangkuti 091402040
(5)
PENGHARGAAN
Alhamdulillah segala puji dan syukur saya sampaikan kehadirat Allah SWT beserta Nabi Besar Muhammad SAW yang telah memberikan rahmat, hidayah-Nya, segala daya dan upaya sehingga saya dapat menyelesaikan skripsi ini untuk memperoleh gelar Sarjana Program Studi S-1 Teknologi Informasi Universitas Sumatera Utara.
Ucapan terima kasih penulis sampaikan kepada:
1. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc dan Drs. Sawaluddin, M.IT selaku Ketua dan Sekretaris Departemen Teknologi Informasi. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, dan semua dosen serta pegawai di Program Studi S-1 Teknologi Informasi.
2. Bapak Mohammad Fadly Syahputra, B.Sc, M.Sc, IT selaku pembimbing pertama saya dan Ibu Sarah Purnawati, ST., M.Sc selaku pembimbing kedua saya yang telah banyak meluangkan waktunya dan memberikan masukan-masukan yang bermanfaat bagi penulis dalam menyelesaikan skripsi ini. 3. Bapak Drs. Sawaluddin, M.IT dan Bapak Dr. Syahril Efendi, S.Si, M.IT yang
telah bersedia menjadi dosen penguji dan telah memberikan saran-saran yang baik bagi penulis dalam menyelesaikan skripsi ini.
4. Ibunda Dra. Rahlina Muskar Nasution, M.Hum dan Ayahanda Drs. H. Faisal Rangkuti yang telah memberikan pelajaran hidup yang berguna bagi saya dari saya kecil dan selalu sabar dalam mendidik saya. Abang saya Fakhrizal Mukhtar Rangkuti dan adik saya Muhammad Irfan Luthfi Rangkuti yang selalu memberikan saya motivasi yang baik dan terus mendukung saya.
5. Sahabat saya Nurhasnah, Nurhasni, Dini Seftiani, Muhammad Fachry, dan Asnan Kholidien yang selalu mendukung saya. Teman masa kecil yang selalu memberi saya semangat Faddy Firdaus dan juga sepupu saya Zahrina Rahmaini Dalimunthe yang selalu memberikan masukan untuk saya.
6. Teman-teman seperjuangan yang selalu mendukung saya dan membantu saya selama belajar di Program Studi Teknologi Informasi yaitu Amira Akhmad Nasution, Alvin Rizki, Umaya Ramadhani Putri Nst, Jihan Meutia Fauzen, Annifa Iqramitha, Nurul Fadhlia, Lydia Alissa, T. Fadhilah Hasyim, Fadil Haryudi, dan M. Fadhlullah.
7. Guru-guru saya dari TK, SD, SMP, dan MAN, yang telah mendidik saya tanpa kenal lelah serta orang-orang yang telah berbagi ilmu dengan saya.
Sekali lagi penulis mengucapkan terima kasih kepada semua pihak yang membantu dalam penyelesaian tugas akhir ini yang tidak dapat disebutkan satu persatu, terima kasih atas masukan, saran dan motivasi yang diberikan.
(6)
ABSTRAK
Permainan word ladder merupakan permainan membentuk rantai kata dengan cara mencari sebuah kata baru yang hanya berbeda satu huruf dari kata sebelumnya. Algoritma pencarian depth first search dapat diterapkan pada aplikasi agar dapat melakukan pencarian kata. Algoritma depth first search merupakan metode pencarian pada struktur pohon dengan menelusuri suatu cabang pohon secara mendalam hingga ditemukannya solusi. Aplikasi yang dibangun bertujuan untuk membantu pemain dalam mencari kata yang tepat untuk membentuk sebuah rantai kata dalam permainan word ladder. Hasil yang diperoleh dari aplikasi yang dibangun menunjukkan bahwa algoritma depth first search mampu memberikan penyelesaian permainan word ladder dengan baik.
(7)
WORD LADDER GAME DESIGN USING DEPTH FIRST SEARCH ALGORITHM ON ANDROID
ABSTRACT
Word ladder is a game to make a word chain by search a new word from the previous word with only differ by one letter. Depth first search algorithm can be implemented into an application to search the words. Depth first search algorithm is a searching method on tree structure by explore a branch of tree deeply until the solution is found. The application is built to help the player in finding the right words to make a word chain in the word ladder game. The result obtained from the application built shows that depth first search algorithm can give a good solution for the game.
(8)
DAFTAR ISI
Halaman
PERSETUJUAN i
PERNYATAAN ii
PENGHARGAAN iii
ABSTRAK iv
ABSTRACT v
DAFTAR ISI vi
DAFTAR TABEL viii
DAFTAR GAMBAR ix
BAB 1 PENDAHULUAN 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 3
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 4
1.6 Metodologi Penelitian 4
1.7 Sistematika Penulisan 4
BAB 2 TINJAUAN PUSTAKA 6
2.1 Kecerdasan Buatan 6
2.1.1 Bidang Terapan Kecerdasan Buatan 7
2.2 Pemainan (Game) 8
2.3 Word Ladder 9
2.4 Android 11
2.4.1 Arsitektur Android 13 2.5 Client Server 15
2.6 Algoritma Depth First Search 15
2.7 Penelitian Terdahulu 16
BAB 3 ANALISIS DAN PERANCANGAN SISTEM 20
3.1 Analisis Sistem 20
3.1.1 Analisis Permainan Word Ladder 20 3.1.2 Analisis Algoritma Depth First Search pada Permainan Word
Ladder 21 3.2 Perancangan Sistem 23
3.2.1 Perancangan Alur Aplikasi 25
3.2.2 Pemodelan Visual dengan UML 28 3.2.3 Perancangan Antarmuka Aplikasi 39
3.2.4 Perancangan Database 44
(9)
4.1 Implementasi 46
4.1.1 Spesifikasi Perangkat Lunak 46
4.1.2 Spesifikasi Perangkat Keras 47
4.1.3 Hasil Eksekusi Aplikasi 47
4.2 Pengujian 54
4.2.1 Pengujian Aplikasi 54
4.2.2 Pengujian Algoritma 59 4.2.3Pengujian Aspek Antarmuka Aplikasi 61 4.2.4 Pengujian Aspek Penggunaan Aplikasi 64 BAB 5 KESIMPULAN DAN SARAN 67
5.1 Kesimpulan 67
5.2 Saran 67
DAFTAR PUSTAKA 69
LAMPIRAN A : KODING PROGRAM 71
(10)
DAFTAR TABEL
Halaman
Tabel 2.1 Penelitian Terdahulu 18
Tabel 3.1 Dokumentasi Naratif Use Case Mulai Permainan 30 Tabel 3.2 Dokumentasi Naratif Use Case Input Nama 30 Tabel 3.3 Dokumentasi Naratif Use Case Pilih Level 31 Tabel 3.4 Dokumentasi Naratif Use Case Pilih Soal 31 Tabel 3.5 Dokumentasi Naratif Use Case Mencari Kata 32 Tabel 3.6 Dokumentasi Naratif Use Case Hapus Jawaban 33 Tabel 3.7 Dokumentasi Naratif Use Case Lihat Solusi 33 Tabel 3.8 Dokumentasi Naratif Use Case Kembali Ke Halaman Level 34 Tabel 3.9 Dokumentasi Naratif Use Case Kembali Ke Menu Utama 34 Tabel 3.10 Dokumentasi Naratif Use Case Petunjuk 35 Tabel 3.11 Dokumentasi Naratif Use Case Tentang 35 Tabel 3.12 Dokumentasi Naratif Use Case Keluar 36 Tabel 4.1 Rencana Pengujian Sistem 55 Tabel 4.2 Hasil Pengujian pada Halaman Menu Utama 55 Tabel 4.3 Hasil Pengujian pada Halaman Pilih Level 56 Tabel 4.4 Hasil Pengujian pada Halaman Soal 57 Tabel 4.5 Hasil Pengujian pada Halaman Permainan 57 Tabel 4.6 Hasil Pengujian pada Halaman Petunjuk 59 Tabel 4.7 Hasil Pengujian pada Halaman Tentang 59
Tabel 4.8 Hasil Pengujian Algoritma 61
Tabel 4.9 Hasil Kuesioner Aspek Antarmuka Aplikasi 62 Tabel 4.10 Hasil Kuesioner Aspek Penggunaan Aplikasi 64
(11)
DAFTAR GAMBAR
Halaman Gambar 2.1 Beberapa Definisi Kecerdasan Buatan 6
Gambar 2.2 Word Ladder 10
Gambar 2.3 Word Ladder pada Mobile Game 11
Gambar 2.4 Arsitektur Android 13
Gambar 2.5 Pohon Ruang Status 16
Gambar 3.1 Pohon Ruang Solusi Permainan Word Ladder 22 Gambar 3.2 Konsep Aplikasi Android Client Server 24 Gambar 3.3 Flowchart Aplikasi Permainan Word Ladder 26
Gambar 3.4 Flowchart Menu Solusi 27
Gambar 3.5 Diagram Use Case Permaian Word Ladder 29 Gambar 3.6 Diagram Activity Mulai Permainan 37
Gambar 3.7 Diagram Activity Petunjuk 38
Gambar 3.8 Diagram Activity Tentang 38
Gambar 3.9 Diagram Activity Keluar 39
Gambar 3.10 Tampilan Antarmuka Halaman Menu Utama 40 Gambar 3.11 Tampilan Antarmuka Halaman Level 40
Gambar 3.12 Tampilan Antarmuka Halaman Soal 41 Gambar 3.13 Tampilan Antarmuka Halaman Permainan 42 Gambar 3.14 Tampilan Antarmuka Menu pada Halaman Permainan 42 Gambar 3.15 Tampilan Antarmuka Halaman Petunjuk 43 Gambar 3.16 Tampilan Antarmuka Halaman Tentang 44
Gambar 3.17 Tabel Kata pada Database 45
Gambar 4.1 Tampilan Halaman Menu Utama 47
Gambar 4.2 Tampilan Textbox pada Alert Dialog 48
Gambar 4.3 Tampilan Halaman Pilih Level 48
Gambar 4.4 Tampilan Halaman Soal 50
Gambar 4.5 Tampilan Halaman Permainan 51
Gambar 4.6 Tampilan Menu pada Halaman Permainan 51
Gambar 4.7 Tampilan Menu Solusi 52 Gambar 4.8 Tampilan Saat Permaianan Berakhir 53
Gambar 4.9 Tampilan Halaman Petunjuk 53
Gambar 4.10 Tampilan Halaman Tentang 54
Gambar 4.11 Solusi BUKU-BARU 60
Gambar 4.12 Solusi BENAR-SALAH 60
(12)
ABSTRAK
Permainan word ladder merupakan permainan membentuk rantai kata dengan cara mencari sebuah kata baru yang hanya berbeda satu huruf dari kata sebelumnya. Algoritma pencarian depth first search dapat diterapkan pada aplikasi agar dapat melakukan pencarian kata. Algoritma depth first search merupakan metode pencarian pada struktur pohon dengan menelusuri suatu cabang pohon secara mendalam hingga ditemukannya solusi. Aplikasi yang dibangun bertujuan untuk membantu pemain dalam mencari kata yang tepat untuk membentuk sebuah rantai kata dalam permainan word ladder. Hasil yang diperoleh dari aplikasi yang dibangun menunjukkan bahwa algoritma depth first search mampu memberikan penyelesaian permainan word ladder dengan baik.
(13)
WORD LADDER GAME DESIGN USING DEPTH FIRST SEARCH ALGORITHM ON ANDROID
ABSTRACT
Word ladder is a game to make a word chain by search a new word from the previous word with only differ by one letter. Depth first search algorithm can be implemented into an application to search the words. Depth first search algorithm is a searching method on tree structure by explore a branch of tree deeply until the solution is found. The application is built to help the player in finding the right words to make a word chain in the word ladder game. The result obtained from the application built shows that depth first search algorithm can give a good solution for the game.
(14)
BAB 1
PENDAHULUAN
1.1. Latar Belakang
Bahasa merupakan alat komunikasi yang memiliki peranan penting dalam kehidupan sehari-hari. Dengan bahasa, manusia dapat saling berhubungan antara manusia yang satu dengan yang lainnya. Dalam berbahasa, penggunaan dan penguasaan kata-kata yang baik dapat mempermudah seseorang untuk berkomunikasi. Makin banyak seseorang menguasai kosakata, makin banyak gagasan yang dapat diungkapkannya (Hikmayana, 2013). Menurut Tarigan (1997) kualitas keterampilan berbahasa seseorang tergantung pada kuantitas kosakata yang dimilikinya. Sehingga,dapat dikatakan bahwa penguasaan kosakata merupakan salah satu hal yang sangat penting dalam pembelajaran bahasa (Rofiq, 2009). Salah satu cara untuk mempelajari kosakata bahasa dengan mudah ialah melalui permainan. Ada banyak jenis permainan yang dapat dibuat untuk pembelajaran bahasa, salah satunya adalah permainan word ladder yang juga dikenal dengan doublets, word-links, atau word golf.
Permainan word ladder diciptakan oleh Lewiss Carroll pada tahun 1878, merupakan salah satu permainan kata sederhana. Permainan word ladder dimulai dengan dua kata, dan untuk menyelesaikannya harus menemukan rantai kata dari kata lain untuk menghubungkan keduanya, dimana dua kata yang berdekatan dibedakan oleh satu huruf (Haunsperger & Kennedy , 2006). Permainan ini banyak membutuhkan kosakata, karena para pemain dituntut untuk mempelajari kosakata baru.
Adanya perkembangan teknologi pada saat ini membuat permainan tradisional dapat dikembangkan menjadi lebih modern yakni dengan membuatnya ke dalam bentuk permainan elektronik atau yang lebih dikenal dengan game. Pengembangan ini membuat permainan atau game menjadi lebih menarik karena terdapat elemen-elemen
(15)
seperti visual, audio, dan interaksi, sehingga game memiliki banyak peminat mulai dari anak-anak hingga orang dewasa (Wibawa, 2010). Tak hanya itu, game juga dikembangkan ke dalam bentuk mobile, yakni game yang dapat dimainkan pada mobile phone, smartphone, PDA, ataupun komputer tablet. Salah satu media game mobile yang sangat populer akhir-akhir ini ialah smartphone dengan sistem operasi android.
Android adalah sistem operasi berbasis Java yang dijalankan pada kernel Linux 2.6 (DiMarzio, 2008). Android merupakan platform open source yang dirancang untuk perangkat mobile (Gargenta, 2011). Android diakuisisi oleh Google pada tahun 2005, lalu membentuk Open Handset Alliance sebagai upaya untuk mengembangkan Android (Hermawan, 2011). Karena bersifat open source, aplikasi android banyak dikembangkan secara luas, ini menjadi salah satu alasan penulis untuk membuat game word ladder berbasis android.
Permainan word ladder membutuhkan pencarian kata yang tepat dari sekumpulan daftar kata dalam jumlah yang besar. Sehingga, sering kali pemain merasa kesulitan untuk menyelesaikan permainan ini. Adanya perkembangan teknologi saat ini memungkinkan permainan word ladder dapat diselesaikan oleh komputer dengan menerapkan prinsip kecerdasan buatan yakni dengan menggunakan sebuah pendekatan yang biasa disebut dengan algoritma. Algoritma merupakan suatu prosedur yang jelas untuk menyelesaikan suatu persoalan dengan menggunakan langkah-langkah tertentu dan terbatas jumlahnya (Suarga, 2006).
Algoritma depth first search diajukan untuk penelitian ini karena algoritma ini memiliki penggunaan memori dan kompleksitas waktu yang lebih baik karena hanya simpul-simpul yang aktif saja yang disimpan. Selain itu, jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka akan cepat ditemukan (Cormen et al, 2009). Algoritma depth first search merupakan metode pencarian di dalam ruang solusi berbentuk pohon dengan menelusuri suatu simpul yang paling kiri pada setiap level hingga ditemukannya solusi. Algoritma ini telah dipakai untuk permainan scramble (Sabdifha, 2010), permainan pairs (Atrinawati, 2007), permainan maze (Charifa, 2011), permainan puzzle hashiwokakero (Pratiwi et al, 2011), dan permainan othello (Handayani, 2012).
(16)
1.2.Rumusan Masalah
Permainan word ladder membutuhkan pencarian kata yang tepat dari sekumpulan daftar kata dalam jumlah yang besar. Namun, terdapat kesulitan untuk menemukan kata yang tepat tersebut, yakni kata yang hanya dibedakan oleh satu huruf dari kata sebelumnya, untuk membentuk sebuah word ladder.
Dari latar belakang tersebut maka masalah yang dapat dirumuskan ialah: Dibutuhkan suatu teknik atau pendekatan dalam pencarian kata pada permainan word ladder agar dapat membantu pemain dalam menemukan kata yang sesuai untuk membentuk sebuah word ladder.
1.3.Batasan Masalah
Dari permasalahan yang ada maka batasan-batasan dalam penelitian ini adalah:
1. Aplikasi permainan yang dibangun hanya dapat dimainkan oleh satu orang pemain (single player).
2. Permainan ini menggunakan kata dasar dalam bahasa Indonesia.
3. Permainan ini terdiri dari tiga level, yakni level pertama terdiri dari lima soal dengan kata yang berjumlah empat huruf, level kedua terdiri dari lima soal dengan kata yang berjumlah lima huruf dan level ketiga terdiri dari lima soal dengan kata yang berjumlah enam huruf.
4. Daftar kata yang digunakan berasal dari KBBI.
5. Algoritma depth first search digunakan untuk melakukan pencarian kata. 6. Algoritma depth first search tidak dibandingkan dengan algoritma lain.
7. Aplikasi permainan word ladder hanya dapat dimainkan jika terhubung dengan internet.
1.4. Tujuan Penelitian
Adapun tujuan dari penelitian ini adalah untuk menerapkan algoritma depth first search dalam pencarian kata yang dapat membantu menemukan solusi pada permainan word ladder pada perangkat yang memiliki sistem operasi android.
(17)
1.5. Manfaat Penelitian
Manfaat yang diharapkan dari penelitian ini antara lain sebagai berikut : 1. Sebagai media pembelajaran bahasa Indonesia bagi masyarakat. 2. Membantu meningkatkan pengetahuan kosakata bahasa Indonesia.
3. Menerapkan ilmu pengetahuan yang diperoleh penulis selama masa perkuliahan.
4. Menambah wawasan pengetahuan serta pemahaman penulis tentang algoritma depth first search.
1.6.Metodologi Penelitian
Adapun metodologi yang dilakukan dalam penelitian ini antara lain: 1. Studi Literatur
Pada tahap ini, penulis mencari referensi-referensi, buku-buku, ataupun informasi via internet yang terkait dengan permasalahan yang sedang diteliti. 2. Desain Sistem
Pada tahap ini, penulis membuat rancangan flowchart, rancangan database, dan desain interface dari sistem tersebut.
3. Pembuatan Sistem
Pada tahap ini, penulis telah memulai pengkodean dari sistem yang akan dibuat dengan menggunakan bahasa pemrograman Java.
4. Pengujian Sistem
Pada tahap ini, penulis melakukan pengujian dari sistem yang telah dibuat, memperbaiki kesalahan pemrograman, sampai sesuai dengan yang diharapkan. 5. Dokumentasi
Pada tahap ini, penulis menyusun laporan terhadap sistem yang telah dibuat.
1.7 Sistematika Penulisan
(18)
BAB I. PENDAHULUAN
Pada bab ini membahas tentang latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodelogi penelitian, serta sistematika penulisan penelitian.
BAB II. TINJAUAN PUSTAKA
Pada bab ini menguraikan teori-teori yang mendasari masalah yang diteliti, serta penelitian-penelitian yang pernah dilakukan sebelumnya.
BAB III. ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini diuraikan tentang analisis algoritma depth first search pada permainan word ladder serta rancangan aplikasi permainan word ladder.
BAB IV. IMPLEMENTASI DAN PENGUJIAN
Pada bab ini akan dibahas tentang implementasi dari analisis yang telah dilakukan pada aplikasi yang telah dibuat serta hasil pengujian dari aplikasi tersebut
BAB V. PENUTUP
Pada bab ini dibahas bagaimana kesimpulan yang didapat berdasarkan pembahasan bab yang ada sebelumnya dan juga berisi saran-saran yang digunakan sebagai pengembangan di masa yang datang bagi pembaca sebagai bahan referensi.
(19)
BAB 2
TINJAUAN PUSTAKA
Pada bab ini, akan dibahas landasan teori, penelitian terdahulu, kerangka pikir yang mendasari penyelesaian permasalahan searching dengan menggunakan algoritma depth first search.
2.1. Kecerdasan Buatan
Definisi kecerdasan buatan terbagi ke dalam dua dimensi utama dan empat kategori yang dapat dilihat pada Gambar 2.1 berikut.
Sistem yang berpikir seperti manusia Sistem yang berpikir secara rasional “Upaya baru yang menarik untuk menjadikan
komputer berfikir ... mesin dengan fikiran, dalam arti sebenarnya dan literal.” (Haugeland, 1985)
“[Pengotomasian dari] aktifitas-aktifitas yang dikaitkan dengan fikiran manusia, aktifitas-aktifitas seperti pengambilan keputusan, pembelajaran, ... “ (Bellman,1978)
“Studi tentang kemampuan mental melalui penggunaan model-model komputasional “ (Chamiak dan McDermott, 1985)
“Studi tentang komputasi yang memungkinkan pengenalan, alasan, dan tindakan” (Winston, 1992)
Sistem yang bertindak seperti manusia Sistem yang bertindak secara rasional “Seni membuat mesin yang melakukan
fungsi-fungsi yang memerlukan kecerdasan apabila dilaksanakan oleh manusia” (Kurzweil, 1990)
“Studi tentang bagaimana membuat komputer melakukan hal-hal yang pada saat itu manusia melakukan dengan lebih baik” (Rich dan Knight, 1991)
“Kecerdasan Komputasional adalah studi tentang perancangan agen-agen cerdas” (Poole et al., 1998)
“AI...berkaitan dengan perilaku cerdas dalam artifak(karya seni)” (Nilsson,1998)
Gambar 2.1 Beberapa definisi kecerdasan buatan, diorganisasikan ke dalam empat kategori. (Sumber : Artificial Intelligence : A Modern Approach, 2010)
(20)
Pada bagian atas menunjukkan kecerdasan buatan yang menyangkut proses berpikir dan reasoning, sedangkan bagian bawah menunjukkan kecerdasan buatan yang menuju kepada proses bertindak. Definisi pada bagian kiri menunjukkan kecerdasan buatan yang mengukur keberhasilan dengan kebenaran pada kinerja manusia, sedangkan bagian kanan diukur bertentangan dengan konsep ideal kecerdasan, yang disebut rasionalitas (Russel & Norvig, 2010).
Tujuan utama dari kecerdasan buatan adalah membuat komputer untuk lebih berguna dan mengerti prinsip-prinsip yang memungkinkan untuk menjadi cerdas. Selain itu, tujuan dari kecerdasan buatan adalah untuk mengembangkan kerja sistem komputer yang benar-benar mampu melakukan tugas-tugas yang memerlukan kecerdasan tingkat tinggi (Kristanto, 2004).
2.1.1. Bidang terapan kecerdasan buatan
Kecerdasan buatan memiliki beberapa sub bidang terapan yang dapat dilihat sebagai berikut :
1. Sistem Pakar (Expert System)
Sistem pakar dibuat pada wilayah pengetahuan tertentu untuk suatu kepakaran tertentu yang mendekati kemampuan manusia di salah satu bidang. Sistem pakar mencoba mencari solusi yang memuaskan sebagaimana yang dilakukan seorang pakar.
2. Perencanaan (Planning) dan Robotik
Perencanaan merupakan sebuah aspek penting dalam usaha merancang robot yang mampu melaksanakan tugasnya sampai suatu derajat keluwesan dan keresponsifan tertentu. Salah satu cara yang digunakan dalam perencanaan adalah dengan komposisi hirarki. Pendekatan tersebut akan membatasi lingkup permasalahan yang dirunut secara efektif dan juga dapat digunakan untuk pemakaian di masa yang akan datang.
3. Permainan (Game)
Kebanyakan permainan dilakukan dengan mengggunakan sekumpulan aturan. Dalam permainan digunakan apa yang disebut dengan pencarian ruang keadaan (state space search). Permainan dapat menghasilkan
(21)
sejumlah besar pencarian ruang. Teknik yang menggeluti hal ini disebut heuristic.
4. Pemodelan Kinerja (Performance) Manusia
Pemodelan kinerja manusia telah terbukti merupakan alat yang sangat bermanfaat dalam merumuskan dan menguji teori-teori penerapan inderawi manusia.
5. Bahasa Alamiah (Natural Language), Pemodelan Semantik, dan Mesin yang Dapat Belajar (Learning Machine)
Salah satu tujuan jangka panjang Kecerdasan Buatan adalah pembuatan program yang memiliki kemampuan untuk memahami bahasa manusia. Tidak hanya kemampuan komputer dalam memahami bahasa alamiah saja yang tampaknya merupakan salah satu aspek dasar dari kecerdasan manusia, namun otomasi yang berhsail darinya juga memiliki pengaruh yang sangat besar pada kemampuan penggunaanya dan keefektifannya.
2.2.Permainan (Game)
Permainan atau game merupakan salah satu bidang terapan dalam kecerdasan buatan. Menurut Salen & Zimmerman (2003), game merupakan suatu sistem yang memiliki aturan-aturan tertentu dimana pemain akan terlibat di dalam suatu permasalahan sehingga dapat menghasilkan suatu hasil yang dapat diukur yaitu menang atau kalah.
Menurut Kusumadewi (2003), ada beberapa alasan mengapa game merupakan domain yang baik untuk dieksplor dalam bidang kecerdasan buatan, diantaranya :
1. Sangat mudah untuk menentukan ukuran kesuksesan dan kegagalannya (menang atau kalah).
2. Tidak membutuhkan terlalu banyak pengetahuan. Permainan dapat diselesaikan dengan melakukan pencarian dari arah start sampai posisi menang.
3. Ruang keadaannya mudah direpresentasikan.
4. Operator-operator yang digunakan tidak terlalu banyak. 5. Sebagian besar game dapat dimodelkan dengan mudah.
(22)
6. Sangat mungkin untuk dibandingkan dengan kemampuan manusia.
Perkembangan game yang kian melesat saat ini membuat permainan atau game menjadi lebih menarik karena terdapat elemen-elemen seperti visual, audio, dan interaksi, sehingga game memiliki banyak peminat mulai dari anak-anak hingga orang dewasa (Wibawa, 2010). Tak hanya itu, game juga dikembangkan ke dalam bentuk mobile atau biasa disebut game mobile. Game mobile adalah game yang dapat dimainkan pada mobile phone, smartphone, PDA, ataupun komputer tablet. Game mobile semakin digemari karena memiliki fleksibilitas atau mudah dibawa kemana-mana.
2.3. Word Ladder
Word ladder atau doublets adalah sebuah permainan kata sederhana yang diciptakan
oleh Lewis Carroll. Permainan ini pertama kali disebutkan sebagai “Word Links”
dalam buku harian Carroll pada tanggal 12 Maret 1878. Disebutkan bahwa dia telah menemukan permainan untuk dua gadis kecil yang sedang bosan di sebuah pesta makan malam, dia mengabarkannya dalam sebuah pamflet pada hari Natal tahun 1877 (Haunsperger & Kennedy , 2006).
Carroll mempublikasikan serial permainan word ladder dan penyelesaiannya,
yang kemudian disebutnya “doublets”, dalam majalah Vanity Fair pada tanggal 29
Maret 1879. Pada tahun 1879 percetakan Macmillan mengumpulkan artikel Vanity Fair menjadi sebuah buku berisi 39 halaman, dengan sampul kain berwarna merah, berjudul Doublets: A Word Puzzle.
Pada tahun 1880, edisi kedua telah ditambahkan menjadi 73 halaman. Pada tahun yang sama Macmillan menerbitkan edisi ketiga, yang telah direvisi dan ditambahkan menjadi 85 halaman. Carroll mengambil nama doublets dari penggalan mantra penyihir dalam karangan Shakespeare, Macbeth : Double, double, toil and troublepenggalan ini diletakkan Carroll pada halaman judul bukunya (Haunsperger & Kennedy , 2006).
Permainan ini merupakan permainan menyusun rantai kata yang dapat menghubungkan dua buah kata. Permainan word ladder dimulai dengan dua kata, dan untuk menyelesaikannya harus menemukan rantai kata dari kata lain untuk
(23)
menghubungkan keduanya, di mana dua kata yang berdekatan dibedakan oleh satu huruf (Haunsperger & Kennedy , 2006). Salah satu contoh permainan ini yang terdapat dalam majalah Vanity Fair pada 29 Maret 1879 dapat dilihat sebagai berikut:
Rise FOUR to FIVE
Untuk mengubah kata FOUR menjadi kata FIVE, maka penyelesaiannya adalah sebagai berikut.
Seiring berjalannya waktu, permainan ini dikembangkan agar menjadi bentuk yang lebih menarik dengan menambahkan gambar ilustrasi tangga seperti Gambar 2.2 berikut ini:
Gambar 2.2 Word Ladder
Dengan adanya perkembangan teknologi saat ini, permainan word ladder dikembangkan dalam bentuk permainan elektronik (game) sehingga lebih menarik dan bervariasi dengan tampilan antarmuka yang lebih baik.
Pengembangan permainan ini dalam bentuk permainan elektronik (game) dapat dilihat mulai dari permainan komputer (game PC), game online, hingga game mobile yang banyak diminati pada masa sekarang ini. Beberapa contoh permainan word ladder yang ada pada perangkat mobile tersebut dapat dilihat pada Gambar 2.3 berikut.
(24)
Gambar 2.3 Word Ladder pada Mobile Game
2.4. Android
Android adalah sistem operasi berbasis Java yang dijalankan pada kernel Linux 2.6 (DiMarzio, 2008). Android merupakan platform open source yang dirancang untuk perangkat mobile (Gargenta, 2011). Sistem operasi ini berjalan dengan memprioritaskan aplikasi inti yang dibangun sendiri tanpa melihat potensi yang cukup besar dari aplikasi pihak ketiga.
Android menawarkan sebuah lingkungan yang berbeda untuk pengembang. Setiap aplikasi memiliki tingkatan yang sama, tidak membedakan antara aplikasi inti dengan aplikasi pihak ketiga. Bahkan pengguna dapat menghapus aplikasi inti dan menggantinya dengan aplikasi pihak ketiga. Pada awalnya sistem operasi ini dikembangkan oleh Android Inc. lalu pada tahun 2005, perusahaan ini diakuisisi oleh Google (Hermawan , 2011).
Pada tahun 2007, Google membentuk Open Handset Alliance (OHA) sebagai upaya untuk mengembangkan Android, yakni sebuah konsorium dari beberapa perusahaan yaitu Texas Instruments, Broadcom Coorporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, NVDIA, Qualcomm, Samsung Electronics, Sprint Nextel, dan T-Mobile. Tujuan utama dibentuknya OHA adalah untuk mengembangkan standar terbuka untuk perangkat mobile.
(25)
Menurut Hermawan (2011), pengembangan sistem operasi dan aplikasi Android mengacu pada empat prinsip yakni:
1. Terbuka
Android dibangun untuk menjadi benar-benar terbuka. Sebagai contoh, sebuah aplikasi dapat mengambil dan mengakses fungsi-fungsi utama ponsel seperti membuat panggilan, mengirim pesan teks, bahkan menggunakan kamera. Hal ini memungkinkan para pengembang untuk membuat aplikasi yang lebih baik.
2. Semua Aplikasi Dibuat Sama
Android tidak membedakan antara aplikasi inti ponsel dan aplikasi pihak ketiga. Kedua jenis aplikasi ini dapat dibangun dan memiliki akses yang sama ke ponsel. Pengguna dapat sepenuhnya mengatur telepon sesuai kepentingan mereka.
3. Mendobrak Batasan-Batasan Aplikasi
Android membuang berbagai hambatan untuk membangun aplikasi baru yang inovatif. Misalnya, seorang pengembang dapat menggabungkan informasi dari web dengan data individu dari ponsel seperti data kontak, kalender atau lokasi geografis. Sehingga memberikan informasi yang lebih relevan.
4. Pengembangan Aplikasi yang Cepat dan Mudah
Android menyediakan akses ke berbagai libraries dan tools yang dapat digunakan untuk membangun aplikasi yang kaya.
Beberapa fitur yang tersedia pada Android antara lain: 1. Framework aplikasi
memungkinkan penggunaan dan pemindahan dari komponen yang tersedia.
2. Dalvik virtual machine
virtual machine yang dioptimalkan untuk perangkat mobile. 3. Grafik
(26)
grafik 2D dan grafik 3D yang didasarkan pada library OpenGL. 4. SQLite
untuk penyimpanan data.
5. Mendukung media audio, video, dan berbagai format gambar. 6. GSM, Bluetooth, EDGE, 3G, dan WiFi.
7. Kamera, GPS (Global Positioning System), Kompas, dan accelerometer.
8. Lingkungan pengembangan yang kaya, termasuk emulator, peralatan debugging, dan plugin untuk Eclipse IDE.
2.4.1. Arsitektur android
Sistem operasi Android dibangun berdasarkan kernel Linux dan memiliki arsitektur seperti Gambar 2.4 berikut.
(27)
1. Applications
Lapisan ini adalah lapisan aplikasi, serangkaian aplikasi akan terdapat pada perangkat mobile. Aplikasi inti yang telah terdapat pada Android termasuk kalender, kontak, SMS, dan lainnya. Aplikasi-aplikasi ini ditulis dengan bahasa pemrograman Java.
2. Application Framework
Pengembang aplikasi memiliki akses penuh ke Android sama dengan aplikasi inti yang telah tersedia. Pengembang dapat dengan mudah mengakses informasi lokasi, mengatur alarm, menambahkan pemberitahuan ke status bar dan lain sebagainya. Arsitektur aplikasi ini dirancang untuk menyederhanakan penggunaan kembali komponen, aplikasi apa pun dapat mempublikasikan kemampuan dan aplikasi lain dapat menggunakan kemampuan mereka sesuai batasan keamanan. Dasar dari aplikasi adalah seperangkat layanan dan sistem, yaitu berbagai View yang digunakan untuk membangun UI, Content Provider yang memungkinkan aplikasi berbagi data, ResourceManager menyediakan akses bukan kode seperti grafik, string, dan layout, NotificationManager yang akan membuat aplikasi dapat menampilkan tanda pada status bar dan ActivityManager yang berguna mengatur daur hidup dari aplikasi.
3. Libraries
Satu set libraries dalam bahasa C/C++ yang digunakan oleh berbagai komponen pada sistem Android.
4. Android Runtime
Satu set libraries inti yang menyediakan sebagian besar fungsi yang tersedia di libraries inti dari bahasa pemrograman Java. Setiap aplikasi akan berjalan sebagai proses sendiri pada Dalvik Virtual Machine.
(28)
5. Linux Kernel
Android bergantung pada Linux kernel 2.6 untuk layanan sistem inti seperti keamanan, manajemen memori, manajemen proses, network stack, dan model driver. Kernel juga bertindak sebagai lapisan antara hardware dan seluruh software.
2.5. Client Server
Client server adalah salah satu model komunikasi 2 komputer atau lebih yang berfungsi melakukan pembagian tugas. Client bertugas untuk melakukan input, update, penghapusan, dan menampilkan data sebuah database. Sedangkan server bertugas menyediakan pelayanan untuk melakukan manajemen, yaitu menyimpan dan mengolah database (Wahana Komputer, 2010).
Ada beberapa model arsitektur client server, diantaranya adalah 1-Tier (standalone), 2-Tier, dan n-Tier. Arsitektur 1-Tier merupakan model dimana sebuah komputer mengakses sebuah database dari komputer sendiri. Dengan kata lain, aplikasi antarmuka user dan aplikasi database terdapat pada komputer yang sama.
Arsitektur 2-Tier merupakan model yang membagi tugas antara komputer client dan komputer server. Komputer client bertugas menyediakan antarmuka untuk user, permintaan data ke server, serta pemrosesan data. Komputer server bertanggung jawab terhadap penyimpanan, pengelolaan, serta melayani permintaan akses data.
Arsitektur n-Tier berarti membagi komponen menjadi n entitas, yaitu 1 tier client dan n-1 tier server. Bagian client bertugas menyediakan antarmuka aplikasi, sedangkan bagian server bertugas menyediakan data.
2.6. Algoritma Depth First Search
Ada banyak jenis algoritma yang digunakan untuk memecahkan berbagai permasalahan, salah satunya permasalahan pencarian atau searching. Salah satu algoritma yang digunakan untuk permasalahan ini adalah algoritma depth first search. Algoritma depth first search ditemukan pertama kali oleh Charles Pierre Trémaux pada abad ke-19 (Charifa, 2011).
(29)
Algoritma depth first search merupakan metode pencarian pada struktur pohon dengan menelusuri suatu cabang pohon secara mendalam hingga ditemukannya solusi.
Gambar 2.5 Pohon Ruang Status
Adapun langkah-langkah pencarian solusi algoritma depth first search ini umumnya adalah sebagai berikut:
1. Solusi dicari dengan cara menelusuri setiap simpul yang paling kiri dari setiap level.
2. Jika solusi tidak ditemukan dalam simpul kiri pada level yang paling dalam, maka pencarian dilanjutkan pada simpul sebelah kanan dan simpul kiri dapat dihapus dari memori.
3. Jika solusi tidak ditemukan pada level yang paling dalam, maka pencarian dilanjutkan pada level sebelumnya.
4. Ulangi langkah 1, 2, 3 hingga ditemukan solusi.
Kelebihan algoritma depth first search antara lain membutuhkan memori yang relatif kecil, karena hanya simpul pada lintasan yang aktif saja yang disimpan. Selain itu, waktu yang dibutuhkan dalam pencarian solusi juga cukup cepat (Cormen et al, 2009).
2.7. Penelitian Terdahulu
Algoritma depth first search telah banyak digunakan dalam penelitian-penelitian tentang pembuatan program permainan. Penelitian-penelitian tersebut antara lain yakni pencarian solusi permainan pairs (Atrinawati, 2007), pengambilan keputusan
(30)
pada klimaks permainan scrabble (Gozali, 2008), pembuatan word game scramble pada board dua dimensi (Sabdifha, 2010), program pembentukan maze (Charifa, 2011), dan perancangan permainan othello berbasis android (Handayani, 2012).
Atrinawati (2007) menggunakan metode depth first search dalam pencarian solusi pada permainan pairs. Permainan pairs adalah permainan mencari pasangan kartu yang sama. Kartu ini terdiri dari atribut gambar bertipe integer dan atribut open bertipe boolean. Atribut gambar akan bernilai integer yang merepresentasikan jenis gambar yang ada pada kartu dan bersifat unik. Sedangkan atribut open akan bernilai false jika pasangan gambarnya belum ditemukan, dan bernilai true jika pasangan gambarnya telah ditemukan. Pencarian solusi dilakukan secara mendalam hingga seluruh kartu pada permainan pairs terbuka.
Gozali (2008) mengimplementasikan algoritma depth first search dalam pengambilan keputusan pada klimaks permainan scrabble. Dalam penelitian ini, penelusuran dimulai dari simpul akar yang merupakan himpunan kosong dengan nilai -P. Simpul-simpul berikutnya dibangkitkan dari himpunan biji pada tabel nilai yang saling lepas dengan himpunan solusi yang telah terbentuk sejauh ini. Jika penelusuran telah mencapai simpul daun dan tidak ada lagi simpul yang dapat dibangkitkan, nilai total dari himpunan solusi disimpan sebagai nilai maksimum sementara. Pencarian dilakukan sampai mendapatkan nilai maksimum yang paling besar.
Sabdifha (2010) menggunakan depth first search dalam pembuatan word game scramble pada board dua dimensi. Permainan scramble adalah permainan kata yang merupakan pengembangan dari permainan scrabble. Pada permainan ini pencarian kata dilakukan dengan menelusuri huruf-huruf yang terdapat pada board permainan yang membentuk sebuah kata.
Charifa (2011) menggunakan depth first search dalam program pembentukan maze. Maze atau labirin yang dibentuk dengan algoritma DFS ini mempunyai kemungkinan terciptanya jalur bercabang yang rendah dan sebagai akibatnya akan tercipta banyak jalur yang cenderung lurus. Hal ini lah yang menyebabkan algoritma DFS bagus untuk digunakan dalam video game.
Handayani (2012) menggunakan depth first search dalam perancangan permainan othello berbasis android. Algoritma depth first search diterapkan dengan menggunakan algoritma Negamax yang dioptimasi dengan alpha beta pruning dalam membantu mencari solusi pada permainan othello.
(31)
Penelitan terdahulu dipaparkan dalam bentuk tabel berikut:
Tabel 2.1 Penelitian terdahulu
Penelitian Nama Keterangan
Penerapan Algoritma Depth-First Search (DFS) Pada Pencarian Solusi Permainan
“Pairs”
(Atrinawati, 2007) Kemampuan algoritma depth first search dalam menyelesaikan permainan Pairs menunjukkan bahwa algoritma ini cukup efektif untuk mendapatkan solusi persoalan tersebut.
Penggunaan Depth First Search Dalam Pengambilan
Keputusan Pada Klimaks Permainan Scrabble
(Gozali, 2008) Algoritma depth first search cukup baik untuk menyelesaikan
permasalahan
pengambilan keputusan pada klimaks permainan scrabble.
Perancangan Dan Pembuatan Aplikasi Word Game Scramble Pada Board Dua Dimensi
(Sabdifha, 2010) Algoritma depth first
search dapat
diaplikasikan pada word game scramble untuk mencari seluruh kata yang terdapat pada board dua dimensi 4x4
(32)
Tabel 2.1 Penelitian terdahulu (lanjutan)
Penelitian Nama Keterangan
Penerapan Algoritma Depth-First Search dan Backtracking dalam Program Pembentuk Maze
(Charifa, 2011) Penggunaan algoritma depth first search dalam pembentukan Maze adalah cara yang paling sederhana, diperlukan beberapa tambahan dan perbaikan agar dapat membentuk Maze yang lebih rumit.
Rancangan Permainan Othello Berbasis Android Menggunakan Algoritma Depth-First Search
(Handayani, 2012) Pencarian solusi permainan othello menggunakan algoritma depth first search dapat mengurangi ruang pencarian sehingga proses penelusuran dapat dilakukan lebih cepat.
(33)
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini, akan dibahas beberapa hal diantaranya analisis sistem yang terdiri dari analisis permainan, analisis algoritma depth first search dalam proses pencarian solusi pada permainan word ladder dan perancangan sistem yang terdiri dari perancangan alur aplikasi, perancangan alur permainan dan perancangan antarmuka aplikasi.
3.1. Analisis Sistem
Pada bagian analisis sistem, penulis akan menjelaskan tentang analisis permainan word ladder dan analisis algoritma depth first search pada permainan word ladder. Pada bagian analisis permainan berisi tentang cara bermain serta aturan-aturan permainan, sedangkan pada bagian analisis algoritma berisi penjelasan tentang penggunaan algoritma dalam proses pencarian kata.
3.1.1.Analisis permainan word ladder
Pada bagian analisis permainan word ladder akan dijelaskan beberapa aturan permainan word ladder.
Berikut beberapa aturan permainan yang ditetapkan oleh penulis dalam permainan word ladder.
1. Pemain mencari sebuah kata baru yang dapat dibentuk oleh kata awal yang hanya dibedakan oleh satu huruf untuk dapat terhubung dengan kata target. 2. Pemain harus menekan salah satu huruf dari kata awal yang berada pada kotak
(34)
satu huruf yang tersedia pada tombol huruf berwarna putih agar dapat membentuk sebuah kata baru.
3. Jika kata yang dibentuk pemain ada pada database, maka kata tersebut akan ditampilkan dan jika tidak maka akan ada pemberitahuan bahwa kata tersebut tidak ada.
4. Pemain harus membentuk kata sebanyak-banyaknya agar dapat terhubung dengan kata target.
5. Setiap kata yang berhasil dibentuk pemain akan mendapatkan nilai 50 poin. 6. Jika pemain berhasil menghubungkan kata awal dengan kata target akan
mendapatkan 1000 poin.
7. Pemain diberikan waktu yang berbeda pada tiap level untuk menyelesaikan permainan.
8. Pemain dapat menggunakan menu solusi untuk mendapatkan bantuan dalam mencari kata.
3.1.2.Analisis algoritma depth first search pada permainan word ladder
Pada bagian analisis algoritma depth first search akan dibahas tentang penerapan algoritma depth first search dalam melakukan pencarian solusi pada permainan word ladder.
Algoritma yang digunakan untuk pencarian kata dalam permainan word ladder adalah algoritma depth first search. Algoritma depth first search merupakan metode pencarian pada struktur pohon dengan menelusuri suatu cabang pohon secara mendalam hingga ditemukannya solusi.
Adapun langkah-langkah yang dilakukan dalam pencarian solusi pada permainan word ladder ini adalah :
1. Kata pertama dari soal merupakan kata awal yang dijadikan sebagai simpul akar dari pohon solusi.
2. Kemudian dari simpul akar dicari kata berikutnya yang memiliki perbedaan satu huruf dengan kata awal berdasarkan urutan alphabet.
(35)
3. Jika berhasil ditemukan kata berikutnya lakukan langkah (4) dan jika tidak berhasil ditemukan kata berikutnya maka solusi tidak ditemukan dan pencarian dihentikan.
4. Cek kata berikutnya apakah sama dengan kata target, jika sama dengan kata target maka pencarian selesai, jika tidak sama dengan kata target maka lakukan langkah (5).
5. Bangkitkan simpul kata berikutnya dan lakukan pencarian selanjutnya dari simpul ini, kemudian lakukan kembali langkah (3) hingga kata berikutnya sama dengan kata target.
Penerapan algoritma depth first search dapat dilihat dalam pencarian kata pada contoh soal word ladder yang terdiri dari empat huruf yakni PITA-BIRU pada Gambar 3.1 berikut.
PITA
AITA BITA
CIAA
CITA
CIBA ... CIKA
CIKB ... CIKU
AIKU BIKU
BIRU
Gambar 3.1 Pohon ruang solusi permainan word ladder
1. Kata PITA merupakan kata awal dan kata BIRU merupakan kata target. Pencarian kata berikutnya yang memiliki perbedaan satu huruf dengan kata awal dimulai dari kata PITA berdasarkan urutan alphabet, yakni AITA, BITA, CITA.
2. Kata AITA dan BITA tidak terdapat dalam database sehingga simpul-simpul tersebut tidak ditelusuri. Kata CITA dicek apakah sama dengan kata target,
(36)
karena tidak sama maka kata CITA dijadikan simpul untuk penelusuran berikutnya karena kata CITA terdapat dalam database.
3. Pencarian kata berikutnya dimulai dari kata CITA berdasarkan urutan alphabet. Namun, karena pada database hanya ada kata CITA maka simpul CITA tidak diperluas.
4. Pencarian kata selanjutnya tetap dimulai dari kata CITA berdasarkan urutan alphabet, yakni CIAA, CIBA, dan seterusnya.
5. Kata CIAA, CIBA, dan seterusnya tidak terdapat dalam database sehingga simpul-simpul tersebut tidak ditelusuri. Yang terdapat dalam database hanya kata CIKA, maka kata CIKA dicek apakah sama dengan kata target. Karena kata CIKA tidak sama dengan target maka kata ini dijadikan simpul berikutnya.
6. Pencarian kata berikutnya dimulai dari kata CIKA berdasarkan urutan alphabet, didapatkan kata CIKU.
7. Kata CIKU dicek apakah sama dengan kata target. Karena kata CIKU tidak sama dengan kata target maka kata ini dijadikan simpul berikutnya.
8. Pencarian kata berikutnya dimulai dari kata CIKU berdasarkan urutan alphabet, didapatkan kata BIKU.
9. Kata BIKU dicek apakah sama dengan kata target. Karena kata BIKU tidak sama dengan kata target maka kata ini dijadikan simpul berikutnya.
10. Dari simpul kata BIKU dapat langsung ditemukan kata target yakni BIRU karena kata BIKU memiliki perbedaan satu huruf dengan kata target.
3.2. Perancangan Sistem
Pada bagian perancangan sistem, penulis akan menjelaskan konsep perancangan aplikasi, perancangan alur aplikasi, alur permainan, serta perancangan antarmuka aplikasi permainan word ladder.
Aplikasi permainan word ladder yang dirancang ini dapat dikategorikan sebagai aplikasi android client server. Hal ini dikarenakan dalam perancangan aplikasi ini menggunakan prinsip client server, dimana device android bertindak sebagai client yang akan berhubungan dengan mysql server dengan perantara php (Safaat, 2012)
(37)
dalam melakukan pengolahan database pada proses pencarian kata dan solusi, secara konsep dapat dilihat pada Gambar 3.2 berikut:
Android PHP
MySQL
Client Server
Gambar 3.2 Konsep Aplikasi Android Client Server. (Sumber : Pemrograman Aplikasi Mobile Smartphone Dan Tablet PC Berbasis Android, 2012)
Pada aplikasi permainan word ladder yang dirancang, android bertindak sebagai client yang menyediakan tampilan interface permainan dengan menggunakan bahasa pemrograman java, sedangkan pengolahan data yang disimpan pada mysql server dilakukan dengan menggunakan bahasa pemrograman php. Database serta script php tersebut disimpan pada sebuah hosting dengan domain rafiqa.org. Agar dapat mengaksesnya, device android harus terhubung dengan koneksi internet.
Permainan word ladder yang akan dibangun ini dapat dimainkan oleh satu orang pemain. Seperti yang telah disebutkan pada bab sebelumnya, permainan ini dimainkan dengan cara menyusun rantai kata untuk menghubungkan dua buah kata yang telah disediakan.
Aplikasi permainan word ladder ini terdiri dari tiga tingkat (level) kesulitan yang berbeda, yakni:
1. Level 1, pada tingkat ini permainan terdiri dari lima buah soal yang terdiri dari empat huruf.
2. Level 2, pada tingkat ini permainan terdiri dari lima buah soal yang terdiri dari lima huruf.
(38)
3. Level 3, pada tingkat ini permainan terdiri dari lima buah soal yang terdiri dari enam huruf.
Permainan word ladder dimulai ketika aplikasi memberikan soal yang telah dipilih oleh pemain yang terdiri dari kata awal dan kata target untuk diselesaikan pemain dengan mencari rantai kata dari soal tersebut.
Jumlah rantai kata yang telah berhasil disusun pemain akan dihitung untuk menentukan skor permainan yang akan ditampilkan saat permainan berakhir. Skor permainan dihitung dengan menggunakan rumus berikut:
Skor = (Jumlah kata yang didapatkan * 50) + sisa waktu permainan
Permainan akan berakhir jika memenuhi salah satu dari kondisi berikut : 1. Pemain berhasil menghubungkan kedua kata, yakni kata awal dan kata target yang
terdapat pada soal permainan. 2. Waktu permainan telah habis.
Aplikasi permainan word ladder memiliki fungsi solusi dan hapus. Fungsi solusi disediakan untuk memberikan solusi terhadap soal yang ada pada permainan dengan menerapkan algoritma depth first search. Fungsi ini dapat digunakan jika
pemain memilih menu „solusi‟ yang akan muncul jika pemain menekan tombol menu
pada device android.
Sedangkan fungsi hapus digunakan untuk menghapus semua jawaban pemain dan menampilkan tampilan permainan pada keadaan awal. Fungsi ini dapat digunakan
jika pemain memilih menu „hapus‟ yang akan muncul jika pemain menekan tombol
menu pada device android.
Aplikasi permainan word ladder juga menyediakan petunjuk permainan yang berisi panduan untuk memainkan permainan word ladder, serta terdapat penjelasan tentang pengembang aplikasi yang terdapat pada menu utama aplikasi permainan ini.
3.2.1Perancangan alur aplikasi
Pada bagian perancangan alur aplikasi ini akan digambarkan interaksi yang dapat dilakukan oleh pengguna terhadap aplikasi permainan word ladder. Pada saat aplikasi
(39)
mulai dijalankan, akan ditampilkan menu utama aplikasi yang berisi menu-menu seperti menu MAIN, menu PETUNJUK, menu TENTANG, dan menu KELUAR. Setiap menu yang dipilih akan menampilkan tampilan berikutnya.
Pengguna dapat memilih menu MAIN untuk memulai permainan word ladder. Setelah menu MAIN dipilih, pengguna akan diminta untuk memasukkan nama dan memilih level permainan. Ketika level permainan dipilih, maka akan ditampilkan soal-soal yang ada pada level tersebut, pengguna dapat memilih soal-soal dan permainan pun dimulai. Saat permainan selesai, maka sistem akan menampilkan skor yang telah diperoleh pemain dan kemudian akan kembali ke tampilan halaman pilih level.
Pada menu PETUNJUK akan menampilkan panduan cara bermain word ladder. Pada menu TENTANG akan menampilkan informasi tentang pengembang aplikasi word ladder. Aplikasi akan berhenti jika pengguna memilih menu KELUAR. Flowchart aplikasi dapat dilihat pada Gambar 3.3 yang menggambarkan alur aplikasi secara keseluruhan. Start Menu Utama Pilih Menu ‘MAIN’ Pilih Menu ‘PETUNJUK’ Pilih Menu ‘TENTANG’ Pilih Menu ‘KELUAR’ Halaman Petunjuk Halaman Tentang End Yes Yes Yes Yes No Kembali Kembali Yes Yes No No Masukkan Nama Pemain Pilih Level Pilih Soal Halaman Level Bermain Word Ladder Yes Permainan Selesai Tampilkan Skor Halaman Soal Yes No Kembali Yes No No No No No Kembali Yes No
(40)
Pada saat permainan dimulai, ditampilkan halaman permainan yang merupakan tempat pengguna memulai dan menyelesaikan permainan. Halaman permainan word ladder akan menampilkan soal yang sebelumnya telah dipilih oleh pengguna. Jika permainan telah selesai maka akan ditampilkan skor yang diperoleh pemain.
Halaman permainan ini juga memiliki beberapa menu yang akan muncul jika pengguna menekan tombol menu pada device android. Menu-menu ini antara lain adalah menu Hapus, menu Solusi, menu Level, dan Menu Utama.
Menu Hapus memiliki fungsi untuk menghapus semua jawaban pemain dan menampilkan kembali halaman permainan ke keadaan semula sebelum permainan dimainkan. Menu Solusi memiliki fungsi untuk memberikan bantuan kepada pengguna untuk menyelesaikan permainan dengan menampilkan daftar kata yang merupakan solusi dari soal pada permainan word ladder. Menu Level memiliki fungsi untuk menampilkan halaman level, dan Menu Utama berfungsi untuk mengembalikan aplikasi ke tampilan Menu Utama.
Adapun alur proses untuk menampilkan solusi yang terdapat pada menu Solusi pada permainan word ladder digambarkan pada Gambar 3.4 berikut.
Start
Kata Awal, Kata Target
Cari kata berikutnya berdasarkan abjad
dengan panjang kata = panjang kata
awal dan edit distance = 1
Cek kata berikutnya = kata target
Tampilkan Solusi
End
No
Yes
Tabel kata
Simpan kata berikutnya
(41)
Proses menampilkan solusi dimulai dengan memasukkan soal yang terdiri dari kata awal dan kata target dengan panjang kata yang sama. Selanjutnya sistem mencari kata berikutnya yang memiliki panjang kata sama dan berbeda satu karakter dengan kata awal berdasarkan abjad pada database. Jika ada kata berikutnya yang memenuhi kondisi tersebut, maka kata tersebut akan disimpan dalam array. Kemudian kata berikutnya tersebut dicek apakah cocok dengan kata target, jika cocok maka proses berakhir dan kata tersebut ditampilkan. Jika tidak cocok, maka proses diulang kembali dengan mencari kata berikutnya sampai kata berikutnya sama dengan kata target.
3.2.2Pemodelan visual dengan UML
Pada bagian perancangan sistem, penulis menggunakan UML (Unified Modeling Language) sebagai bahasa pemodelan untuk mendesain dan merancang aplikasi permainan Word Ladder. Adapun UML yang digunakan penulis terdiri dari diagram use case dan diagram activity.
a. Diagram use case
Perancangan sistem digambarkan dengan menggunakan pemodelan use case. Pada tahap ini dibutuhkan aktor dan use case agar diagram use case dapat digambarkan. Untuk mengetahui aktor dan use case yang akan digunakan, maka dilakukan analisis pengguna.
Analisis pengguna merupakan identifikasi para pengguna yang dapat melakukan interaksi dengan sistem. Dalam penelitian ini, pengguna berperan sebagai pemain yang akan memainkan permainan word ladder. Untuk mendapatkan use case dari pemain, maka ditentukan hal-hal apa saja yang dapat dilakukan pemain, yakni sebagai berikut.
1. Memasukkan nama saat ingin memulai permainan. 2. Memilih level permainan yang ingin dimainkan.
3. Memilih soal yang ingin dimainkan yang ada pada tiap level.
4. Mencari kata baru dari soal yang terdapat pada permainan dengan menekan salah satu huruf pada soal dan menggantinya dengan huruf yang tersedia pada tombol huruf yang terdapat pada permainan.
(42)
6. Menekan menu solusi untuk melihat solusi dari soal permainan. 7. Menekan menu level untuk kembali ke halaman level.
8. Menekan menu utama untuk kembali ke halaman utama permainan word ladder.
9. Melihat petunjuk permainan.
10. Melihat tentang informasi pengembang aplikasi. 11. Keluar dari aplikasi.
Use case yang menggambarkan interaksi pemain dengan sistem berdasarkan identifikasi aktor dan use case yang telah diperoleh dapat dilihat pada Gambar 3.5 berikut.
Mulai Permainan
Petunjuk
Tentang
Keluar
Input Nama
Pilih Level
Pilih Soal
Hapus Jawaban
Lihat Solusi
Kembali ke Menu Utama Mencari Kata
Kembali ke Halaman Level
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>> <<include>>
SISTEM
Aktor
(43)
Dokumentasi naratif dari use case mulai permainan dapat dilihat pada Tabel 3.1 berikut.
Tabel 3.1 Dokumentasi naratif use case mulai permainan
Nama use case Mulai permainan
Aktor Pemain
Deskripsi Use case ini berfungsi untuk memulai permainan word ladder
Pre condition Pemain berada pada halaman menu utama
Normal flow Kegiatan aktor Respon sistem
1.Pemain mengklik tombol main
2.Sistem akan menampilkan input dialog
Alternative flow Kegiatan aktor Respon sistem
- -
Post condition Dialog input nama ditampilkan
Dokumentasi naratif dari use case input nama dapat dilihat pada Tabel 3.2 berikut.
Tabel 3.2 Dokumentasi naratif use case input nama
Nama use case Input nama
Aktor Pemain
Deskripsi Use case ini berfungsi untuk menyimpan nama pemain yang akan ditampilkan bersama skor yang diperoleh pemain saat permainan selesai
Pre condition Pemain berada pada halaman menu utama
Normal flow Kegiatan actor Respon sistem
1.Input nama pemain
2.Klik tombol OK 3.Sistem akan menyimpan nama pemain
Alternative flow Kegiatan actor Respon sistem
- -
(44)
Dokumentasi naratif dari use case pilih level dapat dilihat pada Tabel 3.3 berikut.
Tabel 3.3 Dokumentasi naratif use case pilih level
Nama use case Pilih level
Aktor Pemain
Deskripsi Use case ini berfungsi untuk memilih level permainan
Pre condition Pemain memasukkan nama pada dialog input nama
Normal flow Kegiatan actor Respon sistem
1.Pemain mengklik salah satu level permainan yang tersedia
2.Sistem menampilkan halaman soal yang ada pada level yang telah dipilih
Alternative flow Kegiatan actor Respon sistem
- -
Post condition Tampil halaman soal
Dokumentasi naratif dari use case pilih soal dapat dilihat pada Tabel 3.4 berikut.
Tabel 3.4 Dokumentasi naratif use case pilih soal
Nama use case Pilih Soal
Aktor Pemain
Deskripsi Use case ini berfungsi untuk memilih soal yang terdapat pada level permainan
Pre condition Pemain memilih level
Normal flow Kegiatan actor Respon sistem
1.Pemain mengklik salah satu soal permainan yang tersedia
2.Sistem menampilkan halaman permainan dengan soal yang telah dipilih
Alternative flow Kegiatan actor Respon sistem
- -
(45)
Dokumentasi naratif dari use case mencari kata dapat dilihat pada Tabel 3.5 berikut.
Tabel 3.5 Dokumentasi naratif use case mencari kata
Nama use case Mencari kata
Aktor Pemain
Deskripsi Use case ini berfungsi untuk mengganti salah satu huruf pada soal agar dapat membentuk sebuah kata baru
Pre condition Pemain memilih soal
Normal flow Kegiatan actor Respon sistem
1.Pemain mengklik salah satu huruf yang akan diganti pada soal yang ada di kotak berwana merah
2.Pemain mengklik huruf pengganti pada tombol huruf berwarna putih
3.Sistem mengecek jawaban pemain
4.Sistem menampilkan kata baru yang telah terbentuk
5.Sistem akan menampilkan pesan jika jawaban pemain salah
6.Sistem akan menambahkan skor jika kata baru berhasil dibentuk
Alternative flow Kegiatan actor Respon sistem
- -
(46)
Dokumentasi naratif dari use case hapus jawaban dapat dilihat pada Tabel 3.6 berikut.
Tabel 3.6 Dokumentasi naratif use case hapus jawaban
Nama use case Hapus jawaban
Aktor Pemain
Deskripsi Use case ini berfungsi untuk menghapus jawaban pemain
Pre condition Pemain berada pada halaman permainan
Normal flow Kegiatan aktor Respon sistem 1.Pemain menekan tombol
menu pada device android 3.Pemain menekan menu hapus
2.Sistem menampilkan menu pada halaman permainan
4.Sistem menghapus semua jawaban pemain
Alternative flow Kegiatan aktor Respon sistem
- -
Post condition Halaman permainan menampilkan keadaan awal saat permainan dimulai
Dokumentasi naratif dari use case lihat solusi dapat dilihat pada Tabel 3.7 berikut.
Tabel 3.7 Dokumentasi naratif use case lihat solusi
Nama use case Lihat solusi
Aktor Pemain
Deskripsi Use case ini berfungsi untuk menampilkan solusi permainan
Pre condition Pemain berada pada halaman permainan
Normal flow Kegiatan aktor Respon sistem
1.Pemain menekan tombol menu pada device android
3.Pemain menekan menu solusi
5.Pemain menekan tombol OK
2.Sistem menampilkan menu pada halaman permainan
4.Sistem menampilkan kotak dialog solusi dari soal
6.Sistem menutup kotak dialog solusi
Alternative flow Kegiatan aktor Respon sistem
- -
Post condition Tampilan halaman permainan menampilkan keadaan saat permainan sedang dimainkan
(47)
Dokumentasi naratif dari use case kembali ke halaman level dapat dilihat pada Tabel 3.8 berikut.
Tabel 3.8 Dokumentasi naratif use case kembali ke halaman level
Nama use case Kembali ke halaman level
Aktor Pemain
Deskripsi Use case ini berfungsi untuk kembali ke halaman level permainan
Pre condition Permainan word ladder sedang dimainkan
Normal flow Kegiatan aktor Respon sistem
1.Pemain menekan tombol menu pada device android 3.Pemain menekan menu level
2.Sistem menampilkan menu pada halaman permainan 4.Sistem akan kembali ke halaman level
Alternative flow Kegiatan aktor Respon sistem
- -
Post condition Tampil halaman level
Dokumentasi naratif dari use case kembali ke menu utama dapat dilihat pada Tabel 3.9 berikut.
Tabel 3.9 Dokumentasi naratif use case kembali ke menu utama
Nama use case Kembali ke menu utama
Aktor Pemain
Deskripsi Use case ini berfungsi untuk kembali ke menu utama aplikasi
Pre condition Permainan word ladder sedang dimainkan
Normal flow Kegiatan aktor Respon sistem
1.Pemain menekan tombol menu pada device android 3.Pemain menekan menu utama
2.Sistem menampilkan menu pada halaman permainan 4.Sistem akan kembali ke menu utama
Alternative flow Kegiatan aktor Respon sistem
- -
(48)
Dokumentasi naratif dari use case petunjuk dapat dilihat pada Tabel 3.10 berikut.
Tabel 3.10 Dokumentasi naratif use case petunjuk
Nama use case Petunjuk
Aktor Pemain
Deskripsi Use case ini berfungsi untuk menampilkan petunjuk permainan
Pre condition Pemain berada pada halaman menu utama
Normal flow Kegiatan aktor Respon sistem
1.Pemain menekan tombol petunjuk
2.Sistem menampilkan petunjuk permainan
Alternative flow Kegiatan aktor Respon sistem
- -
Post condition Tampil halaman petunjuk
Dokumentasi naratif dari use case tentang dapat dilihat pada Tabel 3.11 berikut.
Tabel 3.11 Dokumentasi naratif use case tentang
Nama use case Tentang
Aktor Pemain
Deskripsi Use case ini berfungsi untuk menampilkan informasi tentang pengembang aplikasi
Pre condition Pemain berada pada halaman menu utama
Normal flow Kegiatan aktor Respon sistem
1.Pemain menekan tombol tentang
2.Sistem menampilkan informasi tentang pengembang aplikasi
Alternative flow Kegiatan aktor Respon sistem
- -
(49)
Dokumentasi naratif dari use case keluar dapat dilihat pada Tabel 3.12 berikut.
Tabel 3.12 Dokumentasi naratif use case keluar
Nama use case Keluar
Aktor Pemain
Deskripsi Use case ini berfungsi untuk keluar dari aplikasi Pre condition Pemain berada pada halaman menu utama
Normal flow Kegiatan aktor Respon sistem
1.Pemain menekan tombol keluar
2.Sistem akan keluar dari aplikasi
Alternative flow Kegiatan aktor Respon sistem
- -
Post condition -
b. Diagram activity
Diagram activity merupakan tahap dimana urutan-urutan aktivitas yang terjadi pada sistem dapat digambarkan. Diagram activity membantu memahami proses rancangan sistem secara keseluruhan.
Diagram activity yang peneliti buat menampilkan aktivitas dalam sistem. Aktivitas dimulai pada halaman menu utama yang menampilkan menu main untuk memulai permainan, menu petunjuk, menu tentang, dan menu keluar.
Pengguna akan beroperasi dengan sistem melalui halaman permainan saat memulai permainan. Pada halaman petunjuk akan menampilkan petunjuk cara bermain. Pada halaman tentang akan menampilkan data peneliti.
Pada diagram activity untuk memulai permainan, diawali dengan pengguna mengklik tombol main yang ada pada halaman menu utama. Kemudian, sistem akan menampilkan input dialog untuk pengguna isi dengan nama pengguna. Setelah menginput nama, sistem akan menampilkan halaman level yang dapat dipilh pengguna. Selanjutnya, sistem akan menampilkan halaman soal yang ada pada level yang telah dipilh sebelumnya. Setelah memilih soal, sistem akan menampilkan halaman permainan dan pengguna dapat mulai memainkan permainan. Jika permainan telah selesai maka sistem akan menampilkan skor pemain.
(50)
Pada halaman permainan terdapat menu yang dapat dipilih pengguna, yakni menu hapus untuk menghapus jawaban pemain, menu solusi untuk menampilkan solusi dari permainan, menu level untuk kembali ke halaman level, dan menu utama untuk kembali ke halaman menu utama.
Adapun diagram activity untuk memulai permainan yang dirancang penulis dapat dilihat pada Gambar 3.6 berikut.
Klik tombol Main Menampilkan input dialog
Input nama pemain Menampilkan halaman level
Pilih level permainan Menampilkan halaman soal
Pilih soal permainan Menampilkan halaman permainan
Mencari kata
Hapus jawaban
Lihat solusi
Kembali ke menu utama Kembali ke halaman level
Menghapus jawaban pemain
Menampilkan solusi permainan
Menampilkan halaman menu utama
Menampilkan skor Klik tombol menu
Ya Tidak
[Permainan belum selesai]
[Permainan selesai]
Pengguna Sistem
(51)
Pada halaman petunjuk, diagram activity dimulai dengan pengguna mengklik tombol petunjuk yang ada pada halaman menu utama. Selanjutnya, sistem akan menampilkan halaman petunjuk yang berisi petunjuk tentang cara bermain. Diagram activity petunjuk dapat dilihat pada Gambar 3.7 berikut.
Klik tombol Petunjuk Menampilkan petunjuk permainan
Pengguna Sistem
Gambar 3.7 Diagram activity petunjuk
Pada halaman tentang, diagram activity dimulai dengan pengguna mengklik tombol tentang yang ada pada halaman menu utama. Selanjutnya, sistem akan menampilkan halaman tentang yang berisi tentang informasi pengembang aplikasi. Diagram activity tentang dapat dilihat pada Gambar 3.8 berikut.
Klik tombol Tentang Menampilkan informasi pengembang aplikasi
Pengguna Sistem
(52)
Pada diagram activity keluar, dimulai dengan pengguna mengklik tombol keluar yang ada pada halaman menu utama. Selanjutnya, tampilan akan keluar dari aplikasi. Diagram activity keluar dapat dilihat pada Gambar 3.9 berikut.
Klik tombol Keluar Keluar dari aplikasi
Pengguna Sistem
Gambar 3.9 Diagram activity keluar
3.2.3Perancangan antarmuka aplikasi
Pada bagian ini akan digambarkan tampilan antarmuka aplikasi permainan word ladder. Tampilan antarmuka pada aplikasi permainan ini antara lain tampilan halaman menu utama, halaman level, halaman soal, halaman permainan, halaman petunjuk permainan, serta halaman tentang yang menampilkan keterangan pengembang aplikasi. Tampilan antarmuka aplikasi tersebut dapat dilihat sebagai berikut.
a. Halaman Menu Utama
Tampilan pada halaman ini terdapat menu-menu yang dapat dipilih oleh pemain seperti menu main, petunjuk, tentang, dan keluar.
Tampilan halaman menu utama pada aplikasi permainan word ladder dapat dilihat pada Gambar 3.10 berikut.
(53)
WORD LADDER
MAIN
PETUNJUK
TENTANG
KELUAR
1
2
3
4
5
Gambar 3.10 Tampilan antarmuka halaman menu utama
Keterangan : 1. Judul aplikasi.
2. Tombol MAIN : untuk memulai permainan.
3. Tombol PETUNJUK : untuk menampilkan petunjuk permainan. 4. Tombol TENTANG : untuk menampilkan keterangan pengembang
aplikasi.
5. Tombol KELUAR : untuk keluar dari aplikasi.
b. Halaman Level
Tampilan halaman level pada aplikasi permainan word ladder dapat dilihat pada Gambar 3.11 berikut.
Level 1
Level 2
Level 3
Pilih Level
1
2
3
4
(54)
Keterangan :
1. Judul halaman level.
2. Pilihan Level 1 : untuk memulai permainan pada level 1. 3. Pilihan Level 2 : untuk memulai permainan pada level 2. 4. Pilihan Level 3 : untuk memulai permainan pada level 3.
c. Halaman Soal
Tampilan halaman soal pada aplikasi permainan word ladder dapat dilihat pada Gambar 3.12 berikut.
1
Soal
Gambar 3.12 Tampilan Antarmuka Halaman Soal
Keterangan :
1. List yang menampilkan daftar soal.
d. Halaman Permainan
Tampilan pada halaman ini terdiri dari timer yang menunjukkan waktu permainan, soal yang terdiri dari kata awal yang berada pada kotak merah dan kata target yang berada pada kotak biru, serta tombol huruf yang digunakan untuk mengganti huruf-huruf pada kata awal.
Tampilan halaman permainan pada aplikasi permainan word ladder dapat dilihat pada Gambar 3.13 berikut.
(55)
1 2
3
Waktu
4
Gambar 3.13 Tampilan antarmuka halaman permainan
Keterangan :
1. Waktu permainan.
2. Kotak soal yang berisi kata awal. 3. Kotak soal yang berisi kata target.
4. Tombol yang berisi karakter huruf alphabet.
Pada saat permainan berlangsung, pengguna dapat menggunakan beberapa menu yang terdapat pada tombol menu. Adapun tampilan antarmuka halaman permainan pada saat tombol menu ditekan dapat dilihat pada Gambar 3.14 berikut.
1 2
3
Hapus Solusi Level Menu Utama
4
5 6
7
Waktu
8
(56)
Keterangan :
1. Waktu permainan.
2. Kotak soal yang berisi kata awal. 3. Kotak soal yang berisi kata target.
4. Tombol yang berisi karakter huruf alphabet.
5. Menu Hapus : untuk menampilkan permainan ke keadaan awal. 6. Menu Solusi : untuk menampilkan solusi permainan.
7. Menu Level : untuk menampilkan halaman level.
8. Menu Utama : untuk menampilkan menu utama aplikasi.
e. Halaman Petunjuk
Tampilan halaman petunjuk pada aplikasi permainan word ladder berisi petunjuk tentang cara bermain permainan word ladder.
Tampilan halaman petunjuk dapat dilihat pada Gambar 3.15 berikut.
PETUNJUK 1
2
Gambar 3.15 Tampilan antarmuka halaman petunjuk
Keterangan :
1. Judul halaman petunjuk.
2. Berisi petunjuk tentang cara bermain.
f. Halaman Tentang
Tampilan halaman tentang pada aplikasi permainan word ladder berisi informasi tenteng pengembang aplkikasi permainan word ladder.
(57)
Tampilan halaman tentang dapat dilihat pada Gambar 3.16 berikut.
TENTANG
1
2
Gambar 3.16 Tampilan antarmuka halaman tentang
Keterangan :
1. Judul halaman tentang.
2. Berisi keterangan tentang pengembang aplikasi.
3.2.4Perancangan database
Data yang digunakan pada permainan Word Ladder ini berupa kata dasar dalam bahasa Indonesia yang terdiri dari empat sampai enam huruf. Database pada aplikasi permainan Word Ladder ini berfungsi sebagai kamus yang menyimpan daftar kata-kata dasar dalam bahasa Indonesia tersebut.
Perancangan database pada aplikasi permainan Word Ladder ini dibuat pada MySQL. Pada database yang diberi nama “wordladder” terdapat sebuah tabel dengan
nama “kata”.
Tabel “kata” ini berisi kata dasar yang dirujuk dari KBBI. Pada tabel kata ini terdiri dari 3 field yakni :
1. id 2. kata
(58)
Field id berisi nomor id dari kata yang diinputkan, sedangkan field kata berisi daftar kata dasar, dan field panjang_kata berisi jumlah huruf dari kata yang terdapat pada field kata.
Tabel “kata” dapat dilihat pada Gambar 3.17 berikut.
(59)
BAB 4
IMPLEMENTASI DAN PENGUJIAN
Pada bab ini, akan dibahas tentang implementasi dan pengujian terhadap aplikasi yang merupakan tahap yang dilakukan setelah analisis dan perancangan aplikasi.
4.1. Implementasi
Implementasi aplikasi permainan Word Ladder meliputi kebutuhan perangkat lunak dan perangkat keras agar dapat membangun permainan secara optimal. Dalam tahap implementasi ini, hasil analisis dan perancangan dibuat ke dalam bentuk bahasa pemrograman sehingga dapat menghasilkan suatu aplikasi permainan word ladder.
4.1.1Spesifikasi perangkat lunak
Aplikasi Permainan Word Ladder dibangun pada sistem operasi Windows 7 32-bit. Aplikasi ini dibuat dengan menggunakan bahasa pemrograman Java dan bahasa pemrograman PHP yang berfungsi untuk mengolah database.
Pengkodean dilakukan dengan menggunakan perangkat lunak Eclipse Juno, untuk bahasa pemrograman Java, dan perangkat lunak Dreamwaver untuk bahasa pemrograman PHP. Database kamus disimpan dengan menggunakan MySQL. Tampilan grafis pada aplikasi ini dibuat dengan menggunakan perangkat lunak Corel Draw X5.
(60)
4.1.2Spesifikasi perangkat keras
Adapun spesifikasi perangkat keras yang digunakan dalam implementasi aplikasi permainan Word Ladder ini adalah sebagai berikut:
1. Prosesor Intel Pentium (R) Dual-Core T4400 (2.20 GHz, 2.20 GHz). 2. Memory (RAM) 2 GB.
3. Hard Disk 250 GB
4. Monitor 14.0”
4.1.3. Hasil eksekusi aplikasi
Pada bagian ini akan dijelaskan hasil eksekusi aplikasi permainan Word Ladder yang dijalankan pada emulator IDE Java Eclipse Juno. Penjelasan dimulai dari tampilan awal aplikasi ketika dijalankan. Ketika aplikasi pertama kali dijalankan, maka akan muncul tampilan halaman menu utama. Tampilan halaman menu utama pada aplikasi permainan Word Ladder menggunakan imageview pada bagian nama permainan dan menggunakan image button pada menu yang terdapat pada halaman menu utama aplikasi. Tampilan awal ini dapat dilihat seperti pada Gambar 4.1 berikut.
(1)
adapter = new GridViewAdapter(this);
gridView = (GridView) findViewById(R.id.gridView); // set jumlah kolom grid
gridView.setNumColumns(columnPadaGridview); gridView.setAdapter(adapter);
gridView.setDrawSelectorOnTop(true);
gridView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> av, View v, int position,long id) {
textYangDiSelcect = String.valueOf(adapter.getItem(position));
posisiTextYangDiSelect = position; if (position > ((adapter.getCount() - columnPadaGridview) - 1)) {
v.setPressed(true); } else {
v.setBackgroundColor(Color.BLACK); }
} });
/* inisialisasi saat mulai main */ int counterMulaiMain = 0;
if (counterMulaiMain == 0) {
String[] textSoal = soal.trim().toUpperCase().split(""); /* add jumlah item pada gridview sekali klik */
for (int i = 1; i < textSoal.length; i++) { items.add(textSoal[i]);
adapter.notifyDataSetChanged(); counterMulaiMain++;
posisiTextYangDiSelect = -1; }
}
scrollView = (ScrollView) findViewById(R.id.scrollView1); /* multiple button */
LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout1);
int count = 0;
for (int i = 0; i < 3; i++) {
LinearLayout row = new LinearLayout(this); row.setLayoutParams(new
LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT)); for (int j = 0; j < 9; j++) {
if (count < 26) {
(2)
android.widget.LinearLayout.LayoutParams params = new android.widget.LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, 1f); btnTag.setLayoutParams(params); char abjad = (char) (count + 'A'); btnTag.setText(String.valueOf(abjad)); btnTag.setId(count);
row.addView(btnTag);
btnTag.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (posisiTextYangDiSelect > ((adapter.getCount() - columnPadaGridview) - 1)) {
String textYangDiKlik = btnTag.getText().toString(); String[] soalSebelemunya = soal.split("");
String soalBaru = "";
if (items.size() >= columnPadaGridview) {
for (int i = 0; i < soalSebelemunya.length; i++) { if ((posisiTextYangDiSelect % columnPadaGridview) == (i - 1))
soalBaru = soalBaru
+ textYangDiKlik; else
soalBaru = soalBaru
+ soalSebelemunya[i]; }
}
/* cek apakah kata yang baru ada dalam database */ String hasilCekDatabase = koneksi.cekKata(soalBaru);
if (!hasilCekDatabase.trim().equals("1")) {
Toast.makeText(Game.this,soalBaru.toUpperCase()
+ " Tidak Ada Dalam Daftar Kata",Toast.LENGTH_LONG).show(); return;
}
/* memastikkan kata yang baru tidak kosong */ if (!soalBaru.equals("")) {
soal = soalBaru; }
else if(!soalBaru.equals(soal)){ soalAwal = soalBaru; }
String[] textSoal = soal.trim().toUpperCase().split(""); /* add jumlah item pada gridview sekali klik */
for (int i = 1; i < textSoal.length; i++) { items.add(textSoal[i]);
adapter.notifyDataSetChanged(); }
(3)
/* Sukses */
if (target.equals(soalBaru)) { timer.cancel();
viewWaktu.setFreezesText(true);
Score.setScore((adapter.getCount()/columnPadaGridview-1)*50+Integer.parseInt(viewWaktu.getText().toString())); AlertDialog.Builder adb = new AlertDialog.Builder(Game.this);
adb.setTitle("Kamu Berhasil, Selamat!");
adb.setMessage("Score " + Score.getNama()+ " : " + Score.getScore()); adb.setNegativeButton("Tutup",new DialogInterface.OnClickListener() { @Override
public void onClick(DialogInterface arg0,int arg1) { Intent intent = new Intent(Game.this, Level.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent);
} });
adb.show(); }
} else {
Toast.makeText(Game.this,"Klik Salah Satu Huruf Pada Kotak Merah", Toast.LENGTH_LONG).show();
} } }); }
count++; }
layout.addView(row); }
}
/* scroll berdasarkan jumlah item yang diinginkan */ private void scrollMyListViewToBottom() {
gridView.post(new Runnable() { public void run() {
gridView.setSelection(adapter.getCount() - 4); }
}); }
public class GridViewAdapter extends BaseAdapter { public GridViewAdapter(Context c) {
}
public int getCount() { return items.size(); }
public Object getItem(int position) { return items.get(position); }
public long getItemId(int position) { return position;
(4)
public View getView(int position, View convertView, ViewGroup parent) {
View v;
if (convertView == null) {
LayoutInflater li = getLayoutInflater(); v = li.inflate(R.layout.grid_item, null); } else {
v = convertView; }
//memastikan warna background hitam saat ada penambahan view di gridview if (position > ((adapter.getCount() - columnPadaGridview) - 1)) {
v.setBackgroundColor(Color.RED); } else {
v.setBackgroundColor(Color.BLACK); }
TextView tv1 = (TextView) v.findViewById(R.id.view_item); tv1.setText(items.get(position));
return v; }
}
@Override
public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) {
case R.id.menu_utama:
Intent intent = new Intent(this, MainMenu.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent);
return true;
case R.id.menu_level:
Intent intent2 = new Intent(this, Level.class); intent2.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent2);
return true; case R.id.hapus: items.clear();
String[] textSoal = soalAwal.trim().toUpperCase().split(""); for (int i = 1; i < textSoal.length; i++) {
items.add(textSoal[i]);
adapter.notifyDataSetChanged(); }
soal=soalAwal; return true;
(5)
String hasil = koneksi.solusi(soalAwal, target); String[] h = hasil.split("->");
hasil = "";
for (int i = 0; i < h.length; i++) { hasil = hasil + h[i] + "\n"; }
System.out.println("hasil : " + hasil);
AlertDialog.Builder adb = new AlertDialog.Builder(Game.this); adb.setTitle("Solusi " + soalAwal + " - " + target); adb.setIcon(R.drawable.ic_launcher);
adb.setMessage(hasil.toUpperCase()); adb.setNegativeButton("Tutup", null); adb.show();
return true; default:
return super.onOptionsItemSelected(item); }
}
public class MyCounter extends CountDownTimer {
public MyCounter(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval); }
@Override
public void onFinish() { System.out.println("0"); viewWaktu.setText("0");
Score.setScore((adapter.getCount()/columnPadaGridview-1)*50+Integer.parseInt(viewWaktu.getText().toString()));
AlertDialog.Builder adb = new AlertDialog.Builder(Game.this); adb.setTitle("Waktu Habis!");
adb.setMessage("Score " + Score.getNama() + " : " + Score.getScore());
adb.setNegativeButton("Tutup",
new DialogInterface.OnClickListener() { @Override
public void onClick(DialogInterface arg0, int arg1) { startActivity(new Intent(Game.this,
Level.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); }
}); adb.show(); }
public void onTick(long millisUntilFinished) {
viewWaktu.setText((millisUntilFinished / 1000) + "");
System.out.println("Timer : " + (millisUntilFinished /1000)); }
} }
(6)