BAB 2 LANDASAN TEORI 2.1 Tetris Tetris adalah sebuah tipe permainan yang dibuat oleh seorang programmer berkebangsaan Rusia yang bernama Alexey Pajitnov pada tahun 1984 dan semenjak saat itu game tetris merupakan salah satu game yang paling populer di dunia sampai saat ini (www.tetris.com). Tetris merupakan permainan satu orang dimana salah satu dari tujuh balok tetris yang teridiri dari empat sel atau blok yang secara acak jatuh atau turun secara konstan ke papan permainan yang umumnya berbentuk persegi panjang yang awalnya kosong ( Hoogeboom and Kosters, 2004). 2.1.1 Sejarah Tetris Seperti yang dilansir situs resmi perusahaan pemilik hak paten atas game tetris yaitu Tetris Inc (www.tetris.com), game tetris diciptakan di kota Moscow, Rusia oleh Alexey Pajitnov pada tahun 1984 yang versi pertamanya dibuat di mesin Electronica 62. Pada tahun 1985 game tetris dikembangkan untuk dijalankan pada mesin komputer IBM (IBM PC) dan semenjak saat itu tetris menyebar dan menjadi populer di negara Uni Soviet. Dua tahun berikutnya yaitu di tahun 1987, tetris diluncurkan di Amerika Utara dan Eropa yang merupakan langkah pertama untuk ekspansi ke seluruh dunia di luar Uni Soviet. Di tahun 1989 perusahaan pengembang game Nintendo mendapatkan hak lisensi untuk mengembangkan dan mendidstribusikan game tetris yang dibuat pada platform Game Boy milik Nintendo. Pada saat itu lebih dari 35 juta salinan game tetris terjual. Universitas Sumatera Utara 2.1.2 Peraturan Permainan Tetris Dalam permainan tetris, balok-balok tetris berjatuhan ke area permainan dalam waktu konstan. Balok Tetris selalu terdiri dari 4 balok kecil yang membentuk tujuh macam rupa yang unik (berbeda satu sama lain). Pemain dapat mengontrol balok tetris yang jatuh dengan menggerakkan balok ke kiri atau ke kanan. Pemain juga dapat menembah kecepatan jatuhnya balok, dan dapat memutar balok 90 o searah jarum jam (mengubah bentuk balok). Tujuan permainan ini adalah untuk mengarahkan balok yang jatuh ke arah susunan tumpukan balok-balok yang telah jatuh sebelumnya. Sehingga balok-balok tersebut dapat tersusun membentuk baris penuh. Setiap baris yang penuh akan dihilangkan dari tumpukan dan tumpukan yang di atasnya akan jatuh sesuai jumlah baris yang hilang. Jika susunan tumpukan balok mencapai garis batas atas, maka permainan berakhir ( Hoogeboom and Kosters, 2004). Gambar 2.1 Bentuk Balok Tetris 2.2 Android 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. 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). Semua hardware yang berbasis Android dijalankan dengan menggunakan Virtual Machine untuk eksekusi aplikasi. Dalvik Virtual Machine mengeksekusi executeable file, sebuah format yang dioptimalkan untuk memastikan memori yang digunakan sangat kecil. The executeable file diciptakan dengan mengubah kelas Universitas Sumatera Utara bahasa java dan dikompilasi dengan menggunakan tools yang disediakan SDK Android (Safaat, 2010). Android SDK adalah tools API (Aplication Programming Interface) yang diperlukan untuk mulai mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java (Safaat, 2010). Android merupakan suatu software stack untuk mobile device. Di dalamnya terdapat sistem operasi, middleware, dan key application. Aplikasi pada platform ini dikembangkan dalam bahasa pemrograman java. Android sendiri memiliki banyak fitur diantaranya adalah : 1. Merupakan sebuah Application Framework sehingga programmer dapat menggunakan beberapa fungsi yang telah disediakan. 2. Dalvik virtual machine. Tiap aplikasi dalam Android memiliki instance virtual machine yang dapat bekerja secara efisien dalam lingkungan memori yang terbatas. 3. Integrated browser. Web browser berbasis WebKit engine terdapat pada browser default Android ataupun dapat diintegrasikan dengan aplikasi lain. 4. Optimized graphics. Library grafis 2D yang kaya dan 3D berbasis OpenGL ES 1.0 yang mendukung akselerasi hardware. 5. SQLite. Basis data relasional yang ringan namun sangat powerful. 6. Media Support. Mendukung berbagai format audio, video, dan gambar (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF). 7. Bluetooth, EDGE, 3G, dan Wifi. Mendukung komunikasi jaringan (tergantung hardware). 8. Kamera, GPS, kompas, dan accelerometer. Mendukung berbagai fitur yang disediakan oleh hardware. 9. Lingkungan pengembangan yang lengkap. Termasuk device emulator, tools, untuk debugging, profiling, memori dan performa, plugin untuk Eclipse Integrated Development Environment (IDE). Universitas Sumatera Utara 2.2.1 Arsitektur Android Android akan bekerja dengan serangkaian aplikasi inti termasuk klien email, program SMS, kalender, peta, browser, kontak, dan lain-lain. Semua aplikasi ditulis menggunakan bahasa pemrograman Java. Gambar 2.2 Arsitektur Android 2.3 Pengenalan Suara Pengenalan suara adalah sebuah teknik yang memungkinkan komputer dapat mengenali dan atau memanipulasi sinyal suara. Voice recognition atau pengenalan suara sendiri terbagi dua jenis, yaitu speech recognition dan speaker recognition. Speaker recognition merupakan pengenalan identitas yang diklaim oleh seseorang dari suaranya (ciri khusus dapat berupa intonasi suara, tingkat kedalaman suara, dan sebagainya). Sedangkan speech recognition adalah proses yang dilakukan computer untuk mengenali kata yang diucapkan oleh seseorang tanpa mempedulikan identitas orang terkait dan parameter yang digunakan dengan membandingkan tingkat penekanan suara dengan template database yang telah tersedia (Melissa, 2008). Universitas Sumatera Utara 2.4 Speech Recognition Speech recognition (dikenal juga sebagai Automatic Speech Recognition (ASR) atau Computer Speech Recognition) adalah proses untuk mengkonversi sinyal suara ke dalam urutan kata-kata, dengan cara mengimplemantasikan algoritma sebagai program komputer (Anusuya and Katti, 2009). Proses identifikasi diperlukan agar sistem dapat mengenali input suara sehingga dapat dimanfaatkan. Hasil pengenalan suara dapat digunakan untuk melakukan berbagai tugas seperti mengendalikan mesin, mengakses database, dan menghasilkan tulisan (text) (Permana, 2011). Untuk dapat melakukan identifikasi sebuah input dalam pengenalan suara dapat dilakukan dengan beberapa teknik pendekatan, yaitu sebagai berikut (Rabiner dan Juang, 1993) : 1. Pendekatan akustik-fonetik (acoustic-fonetic approach) 2. Pendekatan pengenalan pola (pattern recognition approach) 3. Pendekatan kecerdasan buatan (artificial intelligent aproach) Menurut Zue et al. (2007) proses pengklasifikasian sistem pengenalan suara perlu memperhatikan beberapa parameter, antara lain: 1. Cara dan gaya bicara Jika sistem hanya dapat mengenali kata tunggal dalam sekali proses maka disebut dengan isolated word recognition, sedangkan jika sistem dapat mengenali beberapa kata (sebuah kalimat) dalam sekali waktu maka disebut dengan continuous speech recognition. Sistem dengan continuous speech recognition sangat sulit diimplementasikan, untuk itu perlu dibedakan antara cara bicara antara manusia dengan manusia (conversation speech) dan cara bicara manusia dengan mesin (read speech). 2. Karakteristik pembicara Lebih mudah mengembangkan sistem yang dapat mengenali dialek standar, atau dengan kata lain suara yang dikenali berasal dari pembicara yang sudah dilatih (speaker dependent) dari pada sistem yang dapat mengenali suara yang berasal dari pembicara yang belum dilatih (speaker independent). Universitas Sumatera Utara 3. Jumlah kosakata Semakin kecil (sedikit) jumlah kosakata yang diimplementasikan dalam sebuah ASR (Automatic Speech Recognition) maka semakin sedikit kata yang harus dikenali oleh sistem, begitu juga sebaliknya berdasarkan jumlah katanya, sistem dapat dibagi menjadi dua macam yaitu sistem yang dapat mengenali small vocabulary (< 20 kata) dan large vocabulary (> 20000 kata). 4. Media dan Noise Media dan noise merupakan parameter eksternal yang memengaruhi performa dari sistem pengenalan suara. Media yang digunakan biasanya berupa head mounted microfones. Dengan mikrofon tersebut, distorsi dari sinyal suara dapat dihindari, sehingga diharapkan kualitas suara yang dihasilkan juga baik. Selain itu kualitas sinyal suara juga dipengaruhi oleh noise. Jika terdapat noise (misalnya bunyi selain sinyal suara) ketika proses perekaman, maka kualitas sinyal yang dihasilkan tidak akan baik. Jika keberadaan noise lebih dari 30 dB maka suara memiliki low noise, sedangkan jika kurang dari 10 dB maka suara dikatakan high noise. 2.5 Pemrosesan Sinyal Suara Sinyal suara merupakan gelombang yang tercipta dari tekanan udara yang berasal dari paru-paru yang berjalan melewati lintasan suara menuju mulut dan rongga hidung (AlAkaidi, 2007). Pemrosesan suara itu sendiri merupakan teknik menransformasi sinyal suara menjadi informasi yang berarti sesuai dengan yang diinginkan (Buono et al. 2009). Secara umum proses transformasi tersebut terdiri atas digitalisasi sinyal analog, ekstraksi ciri dan diakhiri dengan pengenalan pola untuk klasifikasi, seperti yang terlihat pada gambar berikut: Universitas Sumatera Utara Gambar 2.3 Transformasi sinyal suara menjadi informasi (Buono et al. 2009) Pengolahan sinyal analog menjadi sinyal digital dapat dilakukan melalui dua tahap yaitu sampling dan kuantisasi (Jurafsky and Martin, 2000). Sampling adalah suatu proses untuk membagi-bagi suatu sinyal kontinyu (sinyal analog) dalam interval waktu yang telah ditentukan. Sampling ini dilakukan dengan mengubah sinyal analog menjadi sinyal digital dalam fungsi waktu. Pengubahan bentuk sinyal ini bertujuan untuk mempermudah memproses sinyal masukan yang berupa analog karena sinyal analog memiliki kepekaan terhadap noise yang rendah, sehingga sulit untuk memproses sinyal tersebut. Nilai dari hasil sampling tersebut dibulatkan ke nilai terdekat (rounding), atau bisa juga dengan pemotongan bagian sisa (truncating) sehingga menghasilkan sinyal suara digital dengan mengekspresikannya menggunakan sejumlah digit tertentu dan proses ini yang dikenal dengan kuantisasi. Sinyal suara digital kemudian dilakukan proses pembacaan sinyal per frame dengan lebar frame tertentu yang saling tumpang tindih. Proses ini dikenal dengan proses frame blocking. Barisan frame berisi informasi yang lengkap dari sebuah sinyal suara. Informasi yang terdapat dalam frame-frame tersebut direpresentasikan dengan cara pengekstraksian ciri sehingga dihasilkan vektor-vektor yang nantinya digunakan dalam pengenalan pola. Universitas Sumatera Utara 2.6 Ekstraksi ciri (Feature Extraction) Ekstraksi ciri merupakan proses untuk menentukan satu nilai atau vektor yang dapat dipergunakan sebagai penciri objek atau individu (Buono et al. 2009). Terdapat beberapa cara untuk merepresentasikan ciri sinyal suara, salah satunya ialah MelFrequency Cepstrum Coefficients (MFCC). MFCC merupakan cara yang paling sering digunakan pada berbagai bidang area pemrosesan suara, karena dianggap cukup baik dalam merepresentasikan ciri sinyal suara (Permana, 2011). Ekstraksi ciri sinyal suara dengan metode MFCC memiliki tahapan yang terdiri atas (Do 1994) : 1. Frame Blocking. Tahap ini sinyal suara continous speech dibagi ke dalam beberapa frame serta dilakukan overlapping frame agar tidak kehilangan informasi. 2. Windowing. Windowing merupakan salah satu jenis meminimalisasikan distorsi antar filtering untuk frame. Proses ini dilakukan dengan mengalikan antar frame dengan jenis window yang digunakan. Penelitian suara banyak menggunakan window hamming karena kesederhanaan formulanya dan nilai kerja window. Dengan pertimbangan tersebut, maka penggunaan window Hamming cukup beralasan. Persamaan window Hamming adalah : 3. Fast Fourier Transform (FFT). Tahapan selanjutnya ialah mengubah tiap frame dari domain waktu ke dalam domain frekuensi. FFT adalah algoritma yang mengimplementasikan Discrete Fouries Transform (DFT). Hasil DFT ialah bilangan kompleks dengan Persamaan 2 untuk mencari nilai real dan Persamaan 3 untuk mencari nilai imaginer. Universitas Sumatera Utara Proses selanjutnya ialah menghitung nilai magnitudo FFT. Magnitudo dari bilangan kompleks c = a + bi adalah |c| = √ 4. Mel-Frequency Wrapping. Persepsi sistem pendengaran manusia terhadap frekuensi sinyal suara ternyata tidak hanya bersifat linear. Penerimaan sinyal suara untuk frekuensi rendah (<1000) bersifat linear, sedangkan untuk frekuensi tinggi (>1000) bersifat logaritmik. Skala inilah yang disebut dengan skala mel-frequency yang berupa filter. Pada Persamaan 4 ditunjukkan hubungan skala mel dengan frekuensi dalam Hz: Proses wrapping terhadap sinyal dalam domain frekuensi dilakukan menggunakan persamaan 5: 5. Cepstrum. Tahap ini merupakan tahap terakhir pada MFCC. Pada tahap ini mel- frequency akan diubah menjadi domain waktu menggunakan Discrete Cosine Transform (DCT) dengan persamaan 6. Universitas Sumatera Utara 2.7 Hidden Markov Model Menurut Ilyas et al 2007, sebuah sistem pengenalan suara terdiri atas dua fase yaitu fase pelatihan (training phase) dan fase verifikasi (verification phase). Pada fase pelatihan, suara pembicara akan direkam lalu diproses untuk menghasilkan sebuah bentuk model didalam basis data. Sedangkan pada fase verifikasi, template referensi yang sudah ada akan dibandingkan dengan input suara yang tidak dikenal. Salah satu metode yang digunakan untuk algoritma pelatihan atau pengenalan adalah Hidden Markov Model (HMM) atau Model Markov Tersembunyi. HMM adalah probabilitas teknik pencocokan pola yang observasinya dianggap sebagai output dari proses stokastik dan didasari rantai markov. HMM terdiri dari dua komponen: rantai markov keadaan terbatas dan output distribusi keadaan yang terbatas (Jayadi, 2011) 2.7.1 Rantai Markov Algoritma HMM didasari oleh model matematik yang dikenal dengan rantai markov. Rantai markov secara umum ditunjukkan pada Gambar : Universitas Sumatera Utara Gambar 2.4 : Rantai Markov (Sumber : Jayadi, 2011) Beberapa hal yang dapat dijelaskan tentang rantai markov yaitu: Transisi keadaan dari suatu keadaan tergantung keadaan sebelumnya. P[qt = j| qt-1 = i, qt-2 = k…..] = P[qt = j| qt-1 = i] Transisi keadaan bebas terhadap waktu. aij = P[qt = j| qt-1 = i] 2.7.2 Tipe HMM HMM dibagi menjadi dua tipe dasar yaitu HMM ergodic dan HMM kiri-kanan (Hidayatno dan Sumardi, 2006). 1. HMM ergodic Pada HMM model ergodic perpindahan keadaan yang lain semuanya memungkinkan, hal itu ditunjukkan Gambar : Universitas Sumatera Utara Gambar 2.5 : HMM ergodic (Sumber : Hidayatno dan Sumardi, 2006) 2. HMM Kiri-Kanan Pada HMM kiri-kanan perpindahan keadaan hanya dapat berpindah dari kiri ke kanan, perpindahan keadaan tidak dapat mundur ke belakang, hal ini ditunjukkan pada Gambar: Gambar 2.6 : HMM Kiri-Kanan (Sumber : Hidayatno dan Sumardi, 2006) 2.7.3 Elemen HMM Elemen yang terdapat pada HMM yaitu: 1. N, jumlah keadaan (state) dalam model. 2. M, jumlah simbol observasi yang berbeda tiap keadaan. 3. Distribusi keadaan transisi A = {aij} dengan aij = P[qt+1 = j | qt = j ] , 1≤i,j≥N 4. Distribusi probabilitas simbol observasi, B = {bj(k)} dengan bj(k) = P(ot = vk | qt = j) , untuk 1 ≤ j ≤ N , 1 ≤ k ≤ M 5. Distribusi keadaan awal π = {πi} πi = P[qt = i] 1≤j≤N Universitas Sumatera Utara 2.8 Vector Quantization Vector Quantization (VQ) adalah proses pemetaan vektor dari ruang vektor besar kedalam sebuah jumlah terbatas ruang vektor tertentu. Setiap wilayah disebut cluster dan diwakili oleh sebuah pusat (disebut centroid) (Soong et al , 1985). Sebuah kumpulan dari semua centroid akan membentuk codeword. Dan kumpulan dari semua codeword akan membentuk codebook. Dengan memanfaatkan kuantisasi vektor dalam metode pengenalan suara, jumlah data secara signifikan akan berkurang, karena jumlah centroid setidaknya sepuluh kali lebih kecil dari jumlah vektor dalam sampel asli. Hal ini akan mengurangi jumlah perhitungan yang diperlukan untuk perbandingan di tahap berikutnya. Meskipun codebook lebih kecil daripada jumlah sampel asli, namun masih akurat mewakili karakteristik suara seseorang. Satu-satunya perbedaan adalah bahwa akan terdapat beberapa distorsi spektral. Universitas Sumatera Utara