Bab 2
LANDASAN TEORI
2.1. Scrabble
Scrabble adalah permainan papan dan permainan menyusun kata yang dimainkan 2
atau 4 orang yang mengumpulkan poin berdasarkan nilai kata-kata yang dibentuk dari keping huruf diatas papan permainan berkotak-kotak (15 kolom dan 15 baris)
Biji permainan berupa keping berbentuk bujur sangkar yang bertuliskan huruf pada salah satu sisi. Pemain mengambil hingga sebanyak tujuh buah keeping huruf dari kantong, dan berusaha menyusun kata secara mendatar atau menurun seperti teka teki silang. Kata-kata yang dibuat harus merupakan kata yang diizinkan untuk dimainkan berdasarkan kamus standar sesuai dengan bahasa yang dimainkan. Pemain yang mengumpulkan poin tertinggi dinyatakan sebagai pemenang. Adapun jumlah nilai angka yang ada pada tiap huruf dilihat pada gambar 2.1
Gambar 2.2 Kondisi awal permainan Scrabble
2.2. Scramble
Scramble merupakan pengembangan atau modifikasi dari permainan Scrabble.
Scramble merupakan permainan susun kata yang inspiratif demi menambah pembendaharaan kata. Permainan ini didasarkan pada pencarian kata yang telah tersedia disebelah kiri board. Board sendiri berisi huruf-huruf yang diacak. Aturan permainan nya yaitu pemain diharuskan mencari kata yang sesuai pada board yang diacak agar membentuk huruf yang sesuai dengan kalimat disebelah kiri board.
Gambar 2.5 Kondisi akhir permainan word scramble
2.3. Kecerdasan Buatan (Artificial Intelligence)
Kecerdasan buatan (Artificial Intelligence) merupakan proses dimana peralatan mekanik dapat melaksanakan kejadian-kejadian dengan menggunakan pemikiran atau kecerdasan seperti manusia (Siswanto, 2010, hal:1)
Sistem yang berpikir seperti manusia
Sistem yang berpikir secara rasional
“Upaya baru yang menarik untuk membuat komputer berpikir … mesin dengan pikiran, dalam arti penuh dan literal” (Haugland, 1985)
“[Otomatisasi dari] kegiatan yang kita kaitkan dengan pemikiran manusia, kegiatan seperti pembuatan keputusan, pemecahan masalah, belajar …” (Bellman, 1978).
“Studi tentang kemampuan mental melalui penggunaan model komputasi.” (Charniak dan McDermott, 1985).
“Studi tentang perhitungan yang memungkinkan untuk melihat, berfikir, dan bertindak.” (Winston, 1992).
“Seni menciptakan mesin yang melakukan pekerjaan yang membutuhkan kecerdasan ketika dilakukan oleh manusia.” (Kurzweil, 1990).
“Studi tentang bagaimana membuat komputer melakukan sesuatu dimana, pada saat ini manusia lebih baik.” (Rich dan Knight, 1991).
“Computational Intelligence adalah studi mengenai disain dari agen cerdas (Intelligent Agents).” (Poole et al., 1998) .
“AI … berhubungan dengan
Intelligent behaviour in artifact.” (Nilssin, 1998 ).
Tabel 2.1 Definisi Artificial Intelligence (Russel et al, 2003)
Menurut Kusumadewi (2003, hal: 7) pada dasarnya kecerdasan buatan memiliki beberapa ruang lingkup. Ruang lingkup tersebut diantaranya adalah :
1. Sistem Pakar (Expert System)
Pada sistem pakar ini, komputer digunakan sebagai sarana untuk menyimpan pengetahuan para pakar. Dengan demikian komputer akan memiliki keahlian untuk menyelesaikan permasalahan dengan meniru keahlian yang dimiliki oleh pakar.
2. Pengolahan Bahasa Alami ( Natural Language Processing ).
Pengolahan bahasa alami diharapkan bisa membuat user dapat berkomunikasi dengan komputer dengan menggunakan bahasa sehari-hari
3. Pengenalan Ucapan ( Speech Recognition )
Melalui pengenalan ucapan diharapkan manusaia dapat berkomunikasi dengan komputer dengan menggunakan suara.
4. Robotika dan Sistem Sensor ( Robotics and Sensory system ) 5. Computer Vision
Computer vision mencoba untuk menginterpretasikan gambar atau obyek tampak
melalui komputer.
6. Intelligent Computer-aided Instruction
2.4. String Matching
2.4.1. Defenisi String Matching
String adalah susunan dari karakter-karakter (angka, alphabet, atau karakter yang lain) dan biasanya direpresentasikan sebagai struktur data array. String dapat berupa kata, frase, atau kalimat. Sedangkan String matching diartikan sebuah permasalahan untuk menemukan pola susunan karakter string dalam string lain atau bagian dari isi teks.
Pencarian string yang biasa disebut pencocokan string(String Matching) merupakan metode untuk melakukan pencarian semua kemunculan string pendek pattern [0…n-1] yang disebut pattern di string yang lebih panjang teks [0…m-1] yang disebut teks(Charras, 1997:11).
2.4.2.Kerangka Kerja String Matching
Persoalan pencarian string dirumuskan sebagai berikut (Munir, 2004 :1) Diberikan :
1. Sebuah teks(text), yaitu sebuah string yang panjangnya n karakter.
2. Pattern, yaitu sebuah string dengan panjang m.
Dengan sebuah nilai karakter (m<n) yang akan di cari dalam teks. Dalam metode pencocokan string, teks diasumsikan berada dalam memori, sehingga bila kita mencari string didalam sebuah arsip, maka semua isi arsip perlu dibaca terlebih dahulu kemudian disimpan didalam memori. Jika pattern muncul lebih dari sekali didalam teks, maka pencarian hanya akan memberikan keluaran berupa lokasi pattern ditemukan pertama kali.
2.4.3.Kerangka Pikir String Matching
1. From left to right
Dari arah yang paling alami, dari kiri kekanan, yang merupakan arah untuk membaca.
2. From right to left
Dari arah kanan kekiri, arah yang biasanya menghasilkan hasil terbaik secara partikal
3. In a specific order
Dari arah yang ditentukan secara spesifik oleh algoritma tersebut, arah ini menghasilkan hasil terbaik secara teoritis.
Beberapa konsep string matching antara lain:
1. Approximate string matching, yaitu sebuah pencarian terhadap pola-pola string(mengandung beberapa proses yaitu menghitung jumlah karakter yang berbeda, penyisipan dan penghapusan karakter) sehingga mendekati pola atau pattern dari string yang dicari.
2. Algoritma pencarian string adalah sebuah proses pencarian tempat dari suatu atau beberapa string yang ditemukan dalam sebuah kumpulan string atau teks. Jalan paling sederhana adalah dengan cara membaca karakter satu persatu dan melakukan perhitungan kesalahan posisi yang ada dari string yang dicari.
2.5. Sistem Operasi Android
Android diperkenalkan pertama kali yaitu pada tahun 2005 ketika Google mengakuisisi perusahaan kecil yang bernama Android,Inc. Pada tahun 2008, Android versi 1.0 resmi dirilis dan menghadirkan spekulasi bahwa Android akan menjadi penantang baru di dunia operating sistem mobile. Android bertarung melawan platform yang sudah mapan seperi iOS (iPhone OS) dan Blackberry. (Zechner, 2011)
Awalnya, Google Inc. membeli Android Inc. yang merupakan pendatang baru yang membuat piranti lunak untuk ponsel / smartphone. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi termasuk Google, Intel, HTC, Motorola, Qualcomm, T-Mobile, dan Nvidia (Safaat, 2010).
Hingga saat ini Android telah merilis sejumlah versi diantaranya yaitu:
1. Android versi 1.0, dirilis pada tanggal 23 September 2008 2. Android versi 1.1, dirilis pada tanggal 9 Maret 2009
3. Android versi 1.5 (Cupcake), dirilis pada tanggal 30 April 2009 4. Android versi 1.6 (Donut), dirilis pada tanggal 15 September 2009 5. Android versi 2.0/2.1 (Eclair), dirilis pada tanggal 26 Oktober 2009 6. Android versi 2.2(Frozen Yoghurt), dirilis pada tanggal 20 Mei 2010 7. Android versi 2.3 (Gingerbread), dirilis pada tanggal 6 Desember 2010 8. Android versi 3.0 (Honeycomb), dirilis pada tanggal 22 Feburari 2011
9. Android versi 4.0 (Ice Cream Sandwich), dirilis pada tanggal 19 Oktober 2011 10.Android versi 4.1 (Jelly Bean), dirilis pada tanggal 9 Juli 2012
11. Android versi 4.2 (Jelly Bean), dirilis pada tanggal 13 November 2012 12. Android versi 4.3 (Jelly Bean), dirilis pada tanggal 24 Juli 2013 13. Android versi 4.4 (Kitkat), dirilis pada tanggal 31 Oktober 2013 2.5.1. Fitur android
Android bukan hanya sekadar distribusi lain dari Linux untuk perangkat mobile.
Ketika membangun aplikasi android, kita sama sekali tidak seperti sedang berhadapan dengan kernelLinux. Developer menghadapi platform berdasarkan kernel Linux dengan bahasa pemrograman Java (Zechner, 2011). Menurut Safaat (2010, hal: 5) android memiliki beberapa fitur , diantanya yaitu :
1. Framework Aplikasi yang mendukung penggantian komponen dan reusable.
4. Grafis yang dioptimalkan dan didukung oleh libraries grafis 2D dan 3D berdasarkan spesisfikasi OpenGL ES 1.0 (Opsional akselerasi hardware).
5. SQLite untuk menyimpan data.
6. Media support yang mendukung audio, video, dan gambar (MPEG4, H.264, MP3,
AAC, AMR, JPG, PNG, GIF), GSM Telephony (tergantung hardware).
7. Bluetooth, EDGE, 3G, dan WiFi (tergantung hardware).
8. Kamera, GPS, kompas, dan accelerometer (tergantung hardware).
9. Lingkungan Development yang lengkap dan kaya termasuk perangkat emulator, tools untuk debugging, profil dan kinerja memori, dan plugin untuk IDE Eclipse.
2.5.2. Arsitektur android
Android terdiri dari beberapa stack software yang terdiri dari : Applications and Widgets, Application Framework, Libraries, Android Runtime dan Kernel Linux.
Arsitektur platform ini dapat dilihat pada gambar 2.6.
Gambar 2.6 Arsitektur platform Android(Safaat, 2010)
Aplications and Widgets ini adalah layer dimana kita berhubungan dengan aplikasi saja, dimana biasanya kita download aplikasi kemudian kita lakukan instalasi dan jalankan aplikasi tersebut. Di layer terdapat aplikasi inti termasuk klien email, program SMS, kalender, peta, browser, kontak, dan lain-lain. Semua apliksi ditulis menggunakan pemrograman Java.
b. Applications Frameworks
Android adalah “Open Development Platform” yaitu Android menawarkan
kepada pengembang atau memberi kemampuan kepada pengembang untuk membangun aplikasi yang bagus dan inovatif. Pengembang bebas untuk mengakses perangkat keras, akses informasi resources, menjalankan servicebackground, mengatur alarm, dan menambahkan status notifications, dan
sebagainya. Pengembang memiliki akses penuh menuju API framework seperti yang dilakukan oleh aplikasi yang kategori inti. Arsitektur aplikasi dirancang supaya kita dengan mudah dapat menggunakan kembali komponen yang sudah digunakan (reuse).
Sehingga bisa kita simpulkan Applications Framework ini adalah layer dimana para pembuat aplikasi melakukan pengembangan/pembuatan aplikasi yang akan dijalankan di sistem operasi Android, karena pada providers yang berupa SMS dan panggilan telepon.
c. Libraries
Libraries ini adalah layer dimana fitur-fitur Android berada, biasanya para pembuat aplikasi mengakses libraries untuk menjalankan aplikasinya. Berjalan diatas kernel, layer ini meliputi berbagai library C/C++ inti seperti Libc dan SSL, serta :
a. libraries media untuk pemutaran media audio dan video
b. libraries untuk manajemen tampilan
c. libraries Graphic mencakup SGL dan OpenGL untuk grafis 2D dan 3D
d. libraries SQLite untuk dukungan database
e. libraries SSL dan WebKit terintegrasi dengan web browser dan security
f. libraries LiveWebcore mencakup modern web browser dengan engine
embeded web view
g. libraries 3D yang mencakup implementasi OpenGL ES 1.0 API’s
d. Android Run Time
Layer yang membuat aplikasi Android dapat dijalankan dimana dalam prosesnya
menggunakan Implementasi Linux. Dalvik Vitual Machine (DVM) merupakan mesin yang membentuk dasar kerangka aplikasi Android. Di dalam Android Run Time dibagi menjadi dua bagian yaitu :
a. Core Libraries : Aplikasi Android dibangun dalam bahasa Java, sementara Dalvik sebagai virtual mesinnya bukan Virtual Machine Java, sehingga diperlukan sebuah libraries yang berfungsi untuk menterjemahkan bahasa Java / C yang ditangani oleh Core Libraries.
merupakan pengembangan yang mampu membuat Linux kernel untuk melakukan threading dan manajemen tingkat rendah.
e. Linux Kernel
Linuxkenel adalah layer dimana inti dari operating system dari Android itu