6
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.1 Jumlah angka dalam huruf Scrabble
7
Gambar 2.2 Kondisi awal permainan Scrabble
Gambar 2.3 Kondisi akhir permainan Scrabble
8
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.4 Kondisi awal permainan word scramble
9
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 Sistem yang berpikir secara rasional manusia “Upaya baru yang menarik untuk membuat komputer berpikir … mesin dengan pikiran, dalam arti penuh dan literal” (Haugland, 1985)
“Studi tentang kemampuan mental melalui penggunaan model komputasi.” (Charniak dan McDermott, 1985).
“[Otomatisasi dari] kegiatan yang kita kaitkan dengan pemikiran manusia, kegiatan seperti pembuatan keputusan, pemecahan masalah, belajar …” (Bellman, 1978).
“Studi tentang perhitungan yang memungkinkan untuk melihat, berfikir, dan bertindak.” (Winston, 1992).
Sistem yang bertindak seperti manusia Sistem yang bertindak secara rasional
10
“Seni menciptakan mesin yang melakukan pekerjaan yang membutuhkan kecerdasan ketika dilakukan oleh manusia.” (Kurzweil, 1990).
“Computational Intelligence adalah studi mengenai disain dari agen cerdas (Intelligent Agents).” (Poole et al., 1998) .
“Studi tentang bagaimana membuat komputer melakukan sesuatu dimana, pada saat ini manusia lebih baik.” (Rich dan Knight, 1991).
“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 Komputer dapat digunakan sebagai tutor yang dapat melatih dan mengajar.
7.
Game Playing
11
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
2.4.3.Kerangka Pikir String Matching Metode String Matching dapat diklasifikasikan menjadi 3 bagian menurut arah pencariannya, yakni
12
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 polapola 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) Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware dan aplikasi. Android menyediakan platform yang terbuka bagi para pengembang untuk menciptakan aplikasi mereka.
13
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. 2. Mesin Virtual Dalvik dioptimalkan untuk perangkat mobile. 3. Integrated browser berdasarkan open source WebKit.
14
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)
a. Applications and Widgets
15
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.
Komponen-komponen yang termasuk di dalam Aplications Frameworks adalah sebagai berikut : a. Views b. Content Providers c. Resource Manager d. Notification Manager e. Activity Manager
16
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. b. Dalvik Virtual Machine : Virtual mesin berbasis yang berbais register yang dioptimalkan untuk menjalankan fungsi-fungsi secara efisien, di mana
17
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 berada. Berisi file-file system yang mengatur system processing, memory, resources, drivers, dan sistem-sistem operasi Android lainnya.