PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI TUGAS AKHIR
APLIKASI PENGENALAN UCAPAN UNTUK MESIN PEMBUAT MINUMAN Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Elektro
Oleh : EVAN MICHAEL ATMAJA NIM : 115114020
PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2016 i
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI FINAL PROJECT
SPEECH RECOGNITION APPLICATION FOR BEVERAGES MAKER Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Teknik Degree In Electrical Engineering Study Program
EVAN MICHAEL ATMAJA NIM : 115114020
ELECTRICAL ENGINEERING STUDY PROGRAM ELECTRICAL ENGINEERING DEPARTEMENT FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2016 ii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI HALAMAN PERSETUJUAN TUGAS AKHIR APLIKASI PENGENALAN UCAPAN UNTUK MESIN PEMBUAT MINUMAN (SPEECH RECOGNITION APPLICATION FOR BEVERAGE MAKER)
Oleh EVAN MICHAEL ATMAJA NIM : 115114020
telah disetujui oleh :
Pembimbing
Dr. Linggo Sumarno
Tanggal : _________________
iii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI HALAMAN PENGESAHAN TUGAS AKHIR APLIKASI PENGENALAN UCAPAN UNTUK MESIN PEMBUAT MINUMAN (SPEECH RECOGNITION APPLICATION FOR BEVERAGE MAKER) Disusun oleh : EVAN MICHAEL ATMAJA. NIM : 115114020
Telah dipertahankan didepan panitia penguji Pada tanggal 26 Februari 2016 dan dinyatakan memenuhi syarat
Susunan Panitia Penguji : Nama Lengkap
Tanda Tangan
Ketua
: Dr. Iswanjono
………………..
Sekretaris
: Dr. Linggo Sumarno
………………..
Anggota
: Wiwien Widyastuti, S.T., M.T.
………………..
Yogyakarta, Fakultas Sains dan Teknologi Universitas Sanata Dharma Dekan,
Sudi Mungkasi, S.Si., M.Math.Sc., Ph.D. iv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa tugas akhir ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah.
Yogyakarta, 28 Februari 2016
Evan Michael Atmaja
v
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO :
“Segala perkara dapat kutanggung di dalam Dia yang memberi kekuatan kepadaku.”
Filipi 4:13
Skripsi ini kupersembahkan kepada: Tuhan Yesus Kristus; Juru Selamat, Sahabat, Penolong, dan Kekuatanku.. Papa dan Mama, atas segala cinta, kasih sayang, doa, dan dukungan.. Almamaterku, Teknik Elektro, Universitas Sanata Dharma Yogyakarta..
vi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LEMBAR PERNYATAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma : Nama
: Evan Michael Atmaja
Nomor Mahasiswa
: 115114020
Demi pengembangan ilmu pengetahuan, saya memberikan kepada perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :
APLIKASI PENGENALAN UCAPAN UNTUK MESIN PEMBUAT MINUMAN beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas dan mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya. Yogyakarta, 28 Februari 2016
(Evan Michael Atmaja)
vii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
INTISARI Seiring berkembangnya kemajuan teknologi, manusia dituntut untuk bekerja lebih cepat dan efisien. Lalu mulai dikembangkan mesin-mesin pengolahan pangan dan minuman secara otomatis. Sebagai contohnya adalah vending machine. Selain itu, terdapat pula teknologi pengenalan ucapan oleh mesin yang dikenal dengan speech recognition. Speech recognition merupakan suatu proses untuk mengolah ucapan dari manusia agar dikenali oleh mesin melalui berbagai sistem dan transformasi dalam pengolahan sinyal ucapan manusia. Berdasarkan perkembangan teknologi tersebut, Penulis mendapatkan ide untuk merancang sebuah mesin pembuat minuman yang dikombinasikan dengan pengenalan ucapan sebagai perintah kendali. Aplikasi pengenalan ucapan akan mengenali perintah pengguna melalui microphone, lalu diolah oleh komputer. Perintah yang dikenali adalah “kopi”, “susu”, “kopsus”, dan “coklat”. Ucapan yang masuk diolah dalam preprocessing lalu ekstraksi ciri DFT (Discrete Fourier Transform) dan similaritas Dice untuk dibandingkan dengan database yang telah dibentuk. Hasil pengenalan ucapan dikirimkan ke mikrokontroler melalui komunikasi serial USART. Pada mesin pembuat minuman terdapat 4 wadah cairan berupa kopi, susu, kopi susu, dan coklat yang akan dipompa oleh motor ke dalam gelas sebanyak 150 ml dengan keberhasilan 91,93%. Mikrokontroler bekerja berdasarkan data yang diterima dari komputer. Pengenalan ucapan untuk mesin pembuat minuman telah bekerja dengan baik terhadap 3 user. Perintah yang diucapkan dapat dikenali dan mesin pembuat minuman telah menyajikan minuman sesuai perintah. Didapatkan hasil terbaik dengan database berisi 1 data, segment averaging bernilai 8, dan kNN bernilai 1. Program pengenalan ucapan yang diberi nilai thresholding dapat mengenali ucapan secara real time dengan persentase sebesar 89,58%. Kata Kunci: vending machine, speech recognition, DFT (Discrete Fourier Transform), similaritas Dice, kNN, thresholding, mikrokontroler.
viii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ABSTRACT As the development of technology advances, people are required to work more quickly and efficiently. Then people start to develop automatic food and beverage processing machines. As an example is the vending machine. In addition, there is also speech recognition technology by a machine known as speech recognition. Speech recognition is a processing of human speech to be recognized by the machine through a variety of systems and transformations in human speech signal processing. Based on the development of these technologies, the author got the idea to design a beverage making machine combined with speech recognition as control commands. Speech recognition application will recognize the user's command through a microphone, and then processed by computer. Commands that are recognized are the "kopi", "susu", "kopsus" and "cokelat". Speech incoming processed in the preprocessing and then in DFT extraction (Discrete Fourier Transform) and Dice similarity to be compared with a database that has been formed. Speech recognition results are sent to the microcontroller via USART serial communication. There are four containers of liquid in the form of coffee, milk, coffee milk, and chocolate that will be pumped by the motor into a glass of 150 ml in the beverage maker with percentage of 91,93%. Microcontroller work based on data received from the computer. Speech recognition for beverage maker has worked well against 3 user. Spoken commands can be recognized and beverage maker has been serving drinks according to orders. Obtained the best results with a database containing 1 record, averaging segment worth 8, and kNN worth 1. The speech recognition program that rated thresholding can recognize speech in real time with a percentage of 89,58%. Keywords: vending machine, speech recognition, DFT (Discrete Fourier Transform), Dice similarity, kNN, thresholding, microcontroller.
ix
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
KATA PENGANTAR Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus karena atas segala rahmat-Nya sehingga penulis dapat menyelesaikan laporan tugas akhir ini dengan baik. Laporan tugas akhir ini disusun untuk memenuhi syarat memperoleh gelar sarjana. Selama pembuatan tugas akhir ini penulis menyadari bahwa begitu banyak pihak yang memberikan bantuan baik berupa idea tau gagasan, dukungan moral, maupun bantuan materi. Oleh karena itu, peneliti ingin mengucapkan terimakasih kepada: 1. Drs. Johanes Eka Priyatma, M.Sc., Ph.D., Rektor Universitas Sanata Dharma 2. Sudi Mungkasi, S.Si., M.Math.Sc., Ph.D., Dekan Fakultas Sains dan Teknologi 3. Petrus Setyo Prabowo, S.T., M.T., Ketua Program Studi Teknik Elektro Universitas Sanata Dharma. 4. Dr. Linggo Sumarno, dosen pembimbing luar biasa yang dengan penuh pengertian, kesabaran dan kepedulian untuk memberi bimbingan, saran, serta semangat dan motivasi dalam menyelesaikan Tugas Akhir ini. 5. Wiwien Widyastuti, S.T.,M.T., dan Dr. Iswanjono selaku dosen penguji yang telah bersedia memberi masukan, bimbingan, dan saran dalam memperbaiki penulisan tugas akhir ini. 6. Seluruh dosen yang telah banyak membimbing dan mengajarkan banyak hal dalam menempuh pendidikan akademik dan soft skill di Program Studi Teknik Elektro, Fakultas Sains dan Teknologi, Universitas Sanata Dharma. 7. Kedua orang tua, Papa Lukas dan Mama Ester, yang senantiasa memberi cinta kasih sayang, pelajaran hidup, motivasi, doa dan dukungan tanpa henti. 8. Kakak-kakak terkasih yang memberi banyak motivasi dalam bercita-cita. 9. Cinthya Anggarini sebagai teman, sahabat, kekasih yang setia mengasihi, mendukung dan memberi semangat hingga terselesaikannya tugas belajar dengan baik. 10. Bocah Bahagia dan anak kost Asnawi; Angela, Radit, Yuli, Maria, Mita, Bawank, Kipik, Yoyo Fian, Erwin, Yoso, Gombloh yang semenjak jaman mahasiswa baru hingga lulus tetap menjadi sahabat yang saling mendukung dan berbagi suka duka.
x
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 11. Group Skripsi; Irvan, Cahyo, Yohanes, Meris, Edwin, yang saling bahu membahu membantu dalam penyelesaian Tugas Akhir. 12. Kawan seperjuangan Teknik Elektro 2011, yang telah bersama-sama melalui segala dinamika suka duka perkuliahan, organisasi, kegiatan, ngantin, pada saat menempuh pendidikan di Universitas Sanata Dhama. 13. Semua pihak yang tidak bisa disebutkan satu persatu yang telah banyak memberikan banyak bantuan dan dukungan dalam menyelesaikan tugas akhir ini. Penulis menyadari bahwa dalam penyusunan tugas akhir masih memiliki kekurangan. Oleh karena itu, dengan segala kerendahan hati, penulis mengharapkan masukan, kritik dan saran yang membangun agar tugas akhir ini menjadi lebih baik. Semoga tugas akhir ini dapat bermanfaat sebagaimana mestinya.
Yogyakarta, 28 Februari 2016 Penulis,
Evan Michael Atmaja
xi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR ISI Halaman
HALAMAN JUDUL. ............................................................................................... i HALAMAN PERSETUJUAN.. ........................................................................... iii HALAMAN PENGESAHAN. .............................................................................. iv PERNYATAAN KEASLIAN KARYA. ............................................................ v HALAMAN PERSEMBAHAN DAN MOTTO HIDUP............................. vi LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS. ..................................... vii INTISARI. ................................................................................................................... viii ABSTRACT. ............................................................................................................... ix KATA PENGANTAR. ............................................................................................ x DAFTAR ISI. ............................................................................................................. xii DAFTAR GAMBAR. .............................................................................................. xvi DAFTAR TABEL. ...................................................................................... xvii BAB I PENDAHULUAN 1.1.
Latar Belakang. ................................................................................................. 1
1.2.
Tujuan dan Manfaat Penelitian ......................................................................... 2
1.3.
Batasan Masalah ............................................................................................... 2
1.4.
Metodologi Penelitian ...................................................................................... 2 1.4.1. Alat dan Bahan ...................................................................................... 2 1.4.2. Langkah Penelitian ................................................................................ 3
1.5.
Sistematika Penulisan ....................................................................................... 4
BAB II DASAR TEORI 2.1.
Sinyal Suara Manusia ........................................................................................ 5
2.2.
Speech Recognition ........................................................................................... 6
2.3.
Sampling ............................................................................................................ 7
2.4.
Preprocessing .................................................................................................... 8 2.4.1. Pre Emphasis ........................................................................................... 8
xii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.4.2. Normalisasi .............................................................................................. 9 2.4.3. Pemotongan Sinyal .................................................................................. 10 2.4.4 Zero Padding ........................................................................................... 11 2.5.
Framing dan Windowing ................................................................................... 12
2.6.
Discrete Fourier Transform(DFT) .................................................................... 13
2.7.
Segment Averaging ............................................................................................ 13
2.8.
Klasifikasi k-NN.. .............................................................................................. 14
2.9
Template Matching ............................................................................................ 15 2.9.1. Similaritas Dice ....................................................................................... 15
2.10.
Mikrokontroler Atmega8535. ........................................................................... 15 2.10.1. Arsitektur AVR Atmega8535 ............................................................... 16 2.10.2. Konfigurasi PIN Mikrokontroler ATmega32 ....................................... 16 2.10.3. Komunikasi Serial USART .................................................................. 17 2.10.3.1. USART Control and Status Register A (USCRA) .................... 18 2.10.3.2. USART Control and Status Register B (USCRB) .................... 19 2.10.3.3. USART Control and Status Register C (USCRC) .................... 20 2.10.3.4. USART I/O Data Register (UDR) ............................................. 21
2.11.
Sound Card ....................................................................................................... 21
2.12.
Motor Pompa .................................................................................................... 22
2.13.
LCD 16x2... ...................................................................................................... 23
2.14.
IC Regulator............................................................................................ 24
2.15.
Mikrofon..........................................................................................................
26
BAB III PERANCANGAN 3.1.
Konsep Dasar .................................................................................................... 27 3.1.1. Ucapan... .................................................................................................. 28 3.1.2. Mikrofon.... .............................................................................................. 28 3.1.3. Modul USB TO TTL................................................................................ 28 3.1.4. Mikrokontroler ATmega32.... .................................................................. 29 3.1.5. Motor Pompa.. ......................................................................................... 29
3.2.
Perancangan Sistem Pengenalan Ucapan .......................................................... 29 3.2.1. Sampling................................................................................................... 31 3.2.2. Pre Emphasis... ........................................................................................ 32
xiii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 3.2.3. Normalisasi... ........................................................................................... 33 3.2.4. Pemotongan Sinyal... ............................................................................... 33 3.2.5. Zero Padding............................................................................................ 34 3.2.6. Segmentasi dan Windowing... .................................................................. 35 3.2.7. Ektraksi Ciri... .......................................................................................... 36 3.2.8. Perhitungan Similaritas... ......................................................................... 37 3.2.9. Penentuan Hasil Pengenalan Ucapan (k-Nearest Neigbor)... .................. 38 3.2.10. Pengiriman Data Serial... ....................................................................... 39 3.3.
Perancangan Pembentukan Database Pengenalan Ucapan .............................. 41
3.4.
Perancangan User Interface ............................................................................. 42
3.5.
Perancangan Hardware Mesin Pembuat Minuman .......................................... 43 3.5.1. Perancangan Mesin Pembuat Minuman ................................................. 43 3.5.2. Minimum Sistem ATmega 8535 ............................................................ 45 3.5.3. Rangkaian dan Konfigurasi LCD 16x2 .................................................. 46 3.5.4. Motor Pompa .......................................................................................... 47 3.5.5. Regulator IC 7812 dan Penguatan Arus ................................................. 48
3.6.
Perancangan Program Mesin Pembuat Minuman ............................................ 48
BAB IV HASIL DAN PEMBAHASAN 4.1.
Implementasi Program Pengenalan Ucapan Menggunakan GUI Matlab ......... 50 4.1.1. Panel Inisialisasi .................................................................................... 51 4.1.2. Tombol UCAP ....................................................................................... 53 4.1.3. Tombol RESET................................... .................................................. 62 4.1.4. Toombol EXIT................................... ................................................... 62
4.2.
Implementasi Mesin Pembuat Minuman .......................................................... 63 4.2.1. Sistem Elektronik .................................................................................. 64 4.2.2. Program Mesin Pembuat Minuman ....................................................... 65 4.2.2.1 Program Motor Pompa dan Komunikasi USART ..................... 65
4.3.
Pengujian Tingkat Pengenalan Ucapan... ......................................................... 67 4.3.1. Pengujian Pengenalan Ucapan Secara Tidak Real Time... .................... 68 4.3.2. Pengujian Pengenalan Ucapan Secara Real Time.................................. 70 4.3.2.1. Pengujian Secara Real Time Tanpa Nilai Thresholding... ......... 70 4.3.2.2. Pengujian Secara Real Time Dengan Nilai Thresholding... ...... 71
xiv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 4.4. Pengujian Mesin Pembuat Minuman....................................................................... 74
BAB V KESIMPULAN DAN SARAN 5.1.
Kesimpulan................................................................................................... ... 76
5.2.
Saran ... ............................................................................................................. 77
DAFTAR PUSTAKA ... ........................................................................................... 78 LAMPIRAN LAMPIRAN A Percobaan Sampling dengan Variasi LamaWaktu Pencuplikan ........... L1 LAMPIRAN B Rangkaian Kendali Mesin Pembuat Minuman ..................................... L5 LAMPIRAN C Datasheet Transistor ............................................................................. L7 LAMPIRAN D Percobaan Menentukan Waktu Aktif Motor Pompa ............................ L8 LAMPIRAN E Pembentukan Basis Data ...................................................................... L9 LAMPIRAN F Pengujian Pengenalan Secara Tidak Real Time.................................... L11 LAMPIRAN G Program Pengenalan Ucapan Secara Real Time. ................................. L17 LAMPIRAN H Sub-Program Dan M-File Matlab Yang Digunakan. ........................... L28 LAMPIRAN I Menentukan Similaritas Terkecil Untuk Nilai Thresholding. ................ L30 LAMPIRAN J Program Codevision Untuk Mesin Pembuat Minuman......................... L31
xv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR GAMBAR Halaman Gambar 2.1.
Ilustrasi Anatomi Organ Pembentuk Suara ........................................... 5
Gambar 2.2.
Representasi Skematik Mekanisme Pembentukan Suara ...................... 5
Gambar 2.3.
Diagram Alur Pelaksanaan Speech Recognition ................................... 6
Gambar 2.4.
Contoh Proses Sampling ........................................................................ 7
Gambar 2.5.
Contoh Aliasing Pada Proses Sampling ................................................. 7
Gambar 2.6.
Sinyal Masukan ..................................................................................... 8
Gambar 2.7.
Sinyal Hasil Pre Emphasis .................................................................... 9
Gambar 2.8.
Sinyal Hasil Normalisasi ....................................................................... 9
Gambar 2.9.
Posisi Sinyal Data Ucapan..................................................................... 10
Gambar 2.10.
Proses Pemotongan Sinyal .................................................................... 10
Gambar 2.11.
Proses Zero Padding.............................................................................. 11
Gambar 2.12.
Proses Framing. ..................................................................................... 12
Gambar 2.13.
Proses Framing dan Windowing ............................................................ 12
Gambar 2.14.
Proses Ektraksi Ciri ............................................................................... 13
Gambar 2.15.
Proses Segment Averaging....................................................................
Gambar 2.16.
Konfigurasi Pin Mikrokontroler Atmega8535. ..................................... 16
14
Gambar 2.17. Register USCRA..................................................................................... 18 Gambar 2.18.
Register UCSRB................................................. ................................... 19
Gambar 2.19.
Register UCSRC................................................. ................................... 20
Gambar 2.20.
Register UDR................................................. ....................................... 21
Gambar 2.21.
Bentuk sound card PC................................................. .......................... 22
Gambar 2.22.
Bentuk Fisik Motor Pompa.................................................................... 22
Gambar 2.23.
Gambar fisik LCD 16x2................................................. ....................... 23
Gambar 2.24.
Rangkaian umum regulator 78xx................................................. ......... 25
Gambar 2.25.
Rangkaian catu daya dengan penguat................................................. ... 25
Gambar 3.1.
Blok Perancangan Sistem.. .................................................................... 27
Gambar 3.2.
Bentuk Fisik Modul USB to TTL .......................................................... 28
Gambar 3.3.
Flowchart Program Pengenalan Ucapan Pada Matlab .......................... 30
Gambar 3.4.
Flowchart Rancangan Program Proses Sampling ................................. 32
xvi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 3.5.
Flowchart Rancangan Program Pre Emphasis ...................................... 32
Gambar 3.6.
Flowchart Rancangan Program Normalisasi ......................................... 33
Gambar 3.7.
Flowchart Rancangan Program Pemotongan Sinyal ............................. 34
Gambar 3.8.
Flowchart Rancangan Program Zero Padding ...................................... 35
Gambar 3.9.
Flowchart Rancangan Program Segmentasi dan Windowing................ 36
Gambar 3.10.
Flowchart Rancangan Program Ekstraksi Ciri DFT ............................. 36
Gambar 3.11.
Flowchart Rancangan Program Segment Averaging ............................. 37
Gambar 3.12.
Flowchart Rancangan Program Perhitungan Similaritas ...................... 38
Gambar 3.13.
Flowchart Rancangan Pengenalan Keluaran Dengan Metode k-NN .... 39
Gambar 3.14.
Flowchart Rancangan Program Pengiriman Data Serial ....................... 40
Gambar 3.15.
Diagram Rancangan Pembentukan Database ....................................... 41
Gambar 3.16.
Rancangan User Interface Dengan GUI Matlab .................................. 42
Gambar 3.17.
Blok Diagram Mesin Pembuat Minuman .............................................. 43
Gambar 3.18.
Rancangan Fisik dan Dimensi Mesin Pembuat Minuman .................... 44
Gambar 3.19.
Rangkaian Osilator ATmega8535 ......................................................... 45
Gambar 3.20.
Rangkaian Reset ATmega8535 ............................................................. 46
Gambar 3.21.
Skematik LCD 16x2 .............................................................................. 47
Gambar 3.22.
Setting Port LCD ................................................................................... 47
Gambar 3.23.
Konstruksi Motor Pompa Sebagai Pendorong Cairan ........................... 47
Gambar 3.24.
Rangkaian Regulator 7805 Dengan Penguatan Arus ............................ 48
Gambar 3.25.
Flowchart Rancangan Program Mesin Pembuat Minuman .................. 49
Gambar 4.1.
Tampilan GUI Matlab Untuk Mesin Pembuat Minuman ...................... 50
Gambar 4.2.
Panel Inisialisasi pada GUI Matlab Untuk Mesin Pembuat Minuman .. 51
Gambar 4.3.
Bentuk Fisik Mesin Pembuat Minuman (Tampak Luar) ....................... 63
Gambar 4.4.
Bentuk Fisik Mesin Pembuat Minuman (Tampak Dalam) .................... 64
Gambar 4.5.
Bentuk Fisik Kotak Pengendali ............................................................. 64
xvii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR TABEL Halaman Tabel 2.1.
Penentuan Ukuran Karakter untuk UCSZ[2..0] ....................................... 19
Tabel 2.2.
Setting UPM0..1 untuk setting parity ........................................................... 20
Tabel 2.3.
Spesifikasi Motor Pompa ........................................................................... 22
Tabel 2.4.
Operasi baca/tulis LCD 16x2 ..................................................................... 23
Tabel 2.5.
Operasi dasar LCD 16x2 ............................................................................ 24
Tabel 2.6.
Konfigurasi pin LCD 16x2......................................................................... 24
Tabel 2.7.
Karakteristik Regulator Tegangan IC 78xx ............................................... 24
Tabel 2.8.
Spesifikasi mikrofon pada headset SADES ............................................... 26
Tabel 3.1.
Data Pengiriman Dari Tiap Ucapan ........................................................... 44
Tabel 3.2.
Keterangan Rancangan User Interface ...................................................... 46
Tabel 3.3.
Data Yang Diterima dan Urutan Perintah............................................... ... 53
Tabel 4.1.
Tabel Pengaturan Port Mikrokontroler............................................... ....... 65
Tabel 4.2.
Tingkat Pengenalan (%) Secara Tidak Real Time dengan Database 8 ...... 68
Tabel 4.3.
Tingkat Pengenalan (%) Secara Tidak Real Time dengan Database 4 ...... 69
Tabel 4.4.
Tingkat Pengenalan (%) Secara Tidak Real Time dengan Database 2 ...... 69
Tabel 4.5.
Tingkat Pengenalan (%) Secara Tidak Real Time dengan Database 1 ...... 69
Tabel 4.6.
Batas Bawah Nilai Similaritas..................... ............................................... 70
Tabel 4.7.
Confusion Matrik Hasil Pengujian Secara Real Time Tanpa Nilai Thresholding ..................................................................... ............................................... 71
Tabel 4.8.
Confusion Matrik Hasil Pengujian Secara Real Time Dengan Nilai Thresholding Untuk Mengenali Ucapan ..... ............................................... 72
Tabel 4.9.
Confusion Matrik Hasil Pengujian Secara Real Time Dengan Nilai Thresholding Untuk Mengenali Error ........ ............................................... 73
Tabel 4.10. Pengujian Pengenalan Komunikasi ............. ............................................... 74 Tabel 4.11. Pengujian Keberhasilan Mesin Membuat Minuman .................................. 75
xviii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB I PENDAHULUAN 1.1
Latar Belakang Seiring berkembangnya kemajuan jaman dan teknologi, masyarakat dewasa ini
dituntut untuk bekerja lebih cepat dan efisien. Hal ini juga berpengaruh pada kemajuan teknologi pengolahan pangan dan minuman. Pada awalnya proses pengolahan pangan dan minuman dikerjakan oleh tenaga manusia secara konvensional, tetapi proses tersebut memakan banyak waktu dan biaya. Lalu mulai ditemukan mesin-mesin yang mampu mengolah pangan dan minuman secara otomatis yang lebih efisien waktu dan biaya [1]. Mesin-mesin tersebut mampu menghasilkan makanan dan minuman instant yang tahan lama dan mudah diolah. Namun meskipun sudah tersedia makanan dan minuman instant, tetapi itu masih belum cukup memenuhi kebutuhan masyarakat yang dinamis. Oleh karena itu mulai ditemukan mesin pengolah minuman instant. Sebagai contohnya adalah coffee machine, maupun vending machine yang dapat mengolah minuman secara otomatis untuk memudahkan pemesannya. Perkembangan teknologi untuk pengenalan ucapan oleh mesin telah atau dikenali dengan sebutan speech recognition merupakan salah satu teknologi yang telah dikembangkan lebih dari 4 dekade [2]. Teknologi speech recognition merupakan suatu proses untuk mengolah ucapan dari manusia agar dikenali oleh mesin melalui berbagai sistem dan transformasi dalam pengolahan sinyal ucapan manusia [2]. Terdapat beberapa aspek yang perlu diperhatikan dalam proses pengenalan ucapan, yaitu akuisisi data suara, pembentukan database ucapan, ekstraksi ciri sinyal ucapan, dan pengenalan pola sinyal ucapan hasil ekstraksi ciri dengan database ucapan [3]. Hasil dari pengenalan suara dapat diaplikasikan dalam berbagai macam mesin, salah satunya untuk mengendalikan robot mobil[4]. Pada penelitian tersebut, robot mobil bergerak sesuai perintah navigasi dari pengguna. Berdasarkan perkembangan teknologi tersebut, Penulis mendapatkan ide untuk merancang sebuah mesin pembuat minuman yang dikombinasikan dengan pengenalan ucapan sebagai perintah kendali. Cara kerja keseluruhan dari rancangan ini yaitu, mulamula pengguna melakukan ucapan, yang akan diproses melalui sistem pengenalan ucapan. Hasil dari proses tersebut adalah pengenalan ucapan pengguna. Hasil pengenalan akan
1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2
dikirimkan kepada mikrokontroler mesin pembuat minuman untuk mengerjakan perintah tersebut.
1.2
Tujuan dan Manfaat Penelitian Tujuan dari penelitian ini adalah menghasilkan suatu prototipe mesin pembuat
minuman dengan pengaplikasian pengenalan ucapan sebagai pengendali. Manfaat dari penelitian ini adalah pengembangan teknologi yang memadukan mesin pembuat minuman dengan pengenalan ucapan sebagai kendali, yang akan sangat berguna bagi industri maupun akademisi.
1.3
Batasan Masalah Pada penelitian ini, ditentukan suatu batasan masalah agar penelitian dapat
diarahkan pada tujuan dan permasalahan yang terlalu kompleks dapat dihindari. Beberapa batasan masalah pada penelitian ini adalah: 1. Pengucapan dilakukan sedatar mungkin, tanpa variasi intonasi, nada, maupun lafal. Kata yang akan dikenali adalah “kopi”, “susu”, “kopsus”, atau “cokelat”, dan akan diuji secara real time oleh 3 orang pengguna yang telah ditentukan Penulis. 2. Pengucapan kata selain “kopi”, “susu”, “kopsus”, atau “cokelat” akan dikenali sebagai error. 3. Mesin pembuat minuman akan membuat kopi jika ucapan yang dikenali adalah kopi. Akan membuat susu jika kata yang dikenali adalah susu. Akan membuat kopi susu jika kata yang dikenali adalah kopsus. Dan akan membuat cokelat jika kata yang dikenali adalah cokelat.
1.4
Metodologi Penelitian Berdasarkan pada tujuan yang ingin dicapai, maka ada beberapa alat dan bahan
serta metode yang akan digunakan dalam penyusunan penelitian ini.
1.4.1. Alat dan Bahan Alat dan bahan yang akan digunakan dalam penelitian ini adalah: 1. Software Matlab, digunakan sebagai pengolah data dan pengenalan ucapan. 2. Mikrofon pada headset Sades, digunakan sebagai penangkap suara. 3. Ekstraksi ciri DFT dan similaritas Dice, digunakan untuk pengolahan data ucapan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3
4. Database, digunakan sebagai pembanding dan akan dibuat sesuai banyaknya pengguna, yaitu 3 database. 5. Mesin pembuat minuman, sebagai aktuator dari aplikasi pengenalan ucapan. 6. Kotak kendali yang berisi mikrokontroler ATmega 8535, LCD, regulator dan penguat arus. 7. Empat wadah cairan yang berisi kopi, susu, kopi susu, dan cokelat; selang sebagai penghubung cairan. 8. Terdapat 4 buah kran pada wadah cairan dan 4 buah motor pompa untuk mengalirkan cairan. 9. Mesin pembuat minuman bekerja berdasarkan kombinasi urutan waktu aktif motor pompa.
1.4.2. Langkah Penelitian Langkah-langkah dalam melakukan penelitian ini adalah: 1. Studi Literatur Pengumpulan bahan-bahan referensi berupa buku dan jurnal ilmiah yang membahas mengenai pengenalan ucapan dengan Matlab, motor pompa, pemrograman dengan code vision avr, mikrokontroler ATmega 8535, serta pendukung lainnya. 2. Perancangan hardware dan software Perancangan desain mesin pembuat minuman beserta rangkaian-rangkaian pendukung dan pembuatan flowchart untuk pemrograman untuk mikrokontroler ATmega 8535 dan Matlab. 3. Pembuatan hardware dan software Tahapan ini berisi tentang pembuatan aplikasi pengenalan ucapan untuk mesin pembuat minuman sesuai dengan desain yang telah dirancang, beserta program-program yang mengacu pada flowchart yang telah dibuat pada perancangan. 4. Pengambilan data Pengambilan data dilakukan dengan melihat tanggapan sistem dalam mengenali ucapan, dan waktu akif motor pompa. 5. Analisa dan penyimpulan hasil penelitian Analisa dan penyimpulan hasil penelitian dapat dilakukan dengan mengolah data yang telah diambil dan melihat persentase error dari sistem, dan tingkat keberhasilan mesin membuat minuman.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 1.5
4
Sistematika Penulisan Sistematika penulisan tugas akhir ini adalah sebagai berikut :
BAB I: PENDAHULUAN Bab ini berisi latar belakang masalah, tujuan dan manfaat, batasan masalah, metodologi penelitian dan sistematika penulisan. BAB II : DASAR TEORI Bab ini berisi teori-teori yang mendukung kerja sistem dan teori yang digunakan dalam perancangan aplikasi pengenalan ucapan untuk mesin pembuat minuman. BAB III : PERANCANGAN PENELITIAN Bab ini berisi penjelasan alur perancangan, flow chart program, serta desain alat dalam rancangan aplikasi pengenalan ucapan untuk mesin pembuat minuman. BAB IV : HASIL PENGAMATAN DAN PEMBAHASAN Bab ini berisi pengamatan dan pembahasan data yang diperoleh, berupa data tingkat keberhasilan mendeteksi ucapan, data waktu aktif motor pompa menggisi gelas 150 ml, dan tingkat keberhasilan keseluruhan sistem aplikasi pengenalan ucapan untuk mesin pembuat minuman. BAB V : KESIMPULAN DAN SARAN Bab ini berisi ringkasan hasil penelitian yang telah dilakukan dan usulan yang berupa gagasan-gagasan untuk perbaikan atau pengembangan terhadap penelitian yang telah dilakukan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB II DASAR TEORI 2.1.
Sinyal Suara Manusia Sinyal suara manusia merupakan masukan dalam sistem pengenalan suara, dengan
rata-rata rentang frekuensi 250 – 3000 Hz. Masukan ini diperoleh dari percakapan yang dilakukan oleh manusia, yang menghasilkan gelombang suara dari kombinasi yang sangat kompleks antara tekanan dari paru-paru menuju vocal cords (pita suara) pada larynx tube (laring), lalu menuju pharynx cavity (faring) dan keluar melalui nasal cavity (hidung) dan mouth cavity (mulut) [4]. Terdapat pula istilah lain yaitu vocal tract yang merupakan sistem pembentukan suara melalui jalur udara yang dikeluarkan lewat mulut, dan nasal tract yang merupakan sistem pembentukan suara sengau atau derau dengan jalur udara melalui hidung [2]. Ilustrasi dari anatomi manusia dalam memproduksi suara dapat dilihat pada gambar 2.1., lalu gambar 2.2. menunjukan representasi skematik dari mekanisme pembentukan suara.
Gambar 2.1. Gambar Ilustrasi Anatomi
Gambar 2.2. Representasi Skematik
Organ Pembentuk Suara Manusia [4]
Mekanisme Pembentukan Suara [2]
5
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.2.
6
Speech Recognition Speech recognition (pengenalan ucapan) adalah suatu sistem yang mampu untuk
mengenali ucapan atau lafal dari suara manusia [4]. Ucapan dari manusia diproses oleh mesin untuk diolah melalui tahapan-tahapan tertentu sesuai dengan rancangan sistem yang digunakan untuk mengenali pola dari sinyal ucapan tersebut. Hasil dari pengenalan ucapan manusia dapat diaplikasikan dalam berbagai hal dan sangat bermanfaat, seperti telekomunikasi, pengamanan sistem, serta kendali dari mesin dan sistem. Salah satu cara dalam membuat sistem speech recognition adalah template based approache [4]. Cara ini akan membandingkan masukan dari sinyal ucapan manusia dengan database yang telah dibuat, lalu membandingkannya untuk mendapatkan hasil yang cocok. Tahapan pada sistem speech recognition dibagi menjadi 2 bagian, yaitu pembuatan database dan proses pengenalan ucapan. Pembentukan database akan dilakukan terlebih dahulu karena akan digunakan sebagai parameter proses perbandingan dalam sistem pengenalan ucapan. Alur pelaksanaan dari speech recognition ditunjukan pada gambar 2.3.
Gambar 2.3. Diagram Alur Pelaksanaan Speech Recognition
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.3.
7
Sampling Proses pertama dalam pengolahan sinyal suara adalah sampling, yaitu proses
pencuplikan sinyal ucapan manusia yang berupa sinyal analog pada periode waktu tertentu. Dalam proses sampling, sinyal suara yang diambil akan menjadi gelombang sinyal diskrit. Pada proses sampling, nilai frekuensi sampling harus diperhatikan [2]. Frekuensi sampling merupakan laju pencuplikan yang menandakan banyak pengambilan sinyal analog dalam satu detik. Nilai satuan frekuensi sampling adalah Hertz (Hz). Contoh proses sampling ditunjukan pada gambar 2.4.
Gambar 2.4. Contoh Proses Sampling Nilai frekuensi sampling dianjurkan untuk mengacu pada kriteria Nyquist. Laju sampling minimum dikenal sebagai Nyquist sampling rate, yang menyatakan bawah nilai frekuensi sampling minimal harus 2 kali lebih besar terhadap nilai frekuensi maksimum dari sinyal yang dicuplik [2]. Apabila kriteria Nyquist tidak dipenuhi, maka akan terjadi aliasing pada proses sampling, yaitu adanya frekuensi yang terlihat sebagai frekuensi lain. Gambar 2.5 menunjukan gambar aliasing. Kriteria Nyquist sampling rate dapat dituliskan: (2.1) Keterangan :
fs = frekuensi sampling (Hz) fm = frekuensi sinyal analog (Hz)
Gambar 2.5. Contoh Aliasing Pada Proses Sampling
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.4.
8
Preprocessing Prepocessing merupakan tahapan untuk mengkondisikan sinyal sebelum diproses
dalam segmentasi lalu ektraksi ciri pada proses pengenalan ucapan. Preprocessing dilakukan untuk membuang noise, menyesuaikan skala amplitudo serta frekuensi pada sinyal ucapan. Dalam preprocessing ada beberapa tahapan meliputi pre emphasis, normalisasi, pemotongan sinyal, dan zero padding.
2.4.1. Pre Emphasis Pre Emphasis adalah proses yang dirancang untuk mengurangi dampak buruk dari transmisi dan suara latar yang ikut tercuplik. Proses pre emphasis sangat baik dalam mengurangi efek distorsi, atenuasi, dan saturasi dari media perekaman. Perhitungan pre emphasis dilakukan pada sinyal digital dalam domain waktu dan menggunakan persamaan berikut [6] :
s' (n) s(n) * s(n 1)
(2.2)
Dimana
= 0.9< <1
Nilai yang paling sering digunakan adalah 0,95 [7] S(n) = sampel ke-n Gambar sinyal masukan yang akan diproses dalam pre emphasis ditunjukan pada gambar 2.6. dan gambar sinyal yang telah melewati proses pre emphasis ditunjukan pada gambar 2.7.
Gambar 2.6. Sinyal Masukan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
9
Gambar 2.7. Sinyal Hasil Pre Emphasis dari Gambar 2.6.
2.4.2. Normalisasi Normalisasi adalah proses penyeragaman nilai amplitudo dari sinyal hasil pre emphasis agar terbentuk pada skala yang sama [8]. Proses normalisasi sangat diperlukan karena besarnya amplitudo sinyal suara manusia saat melakukan pengucapan selalu berbeda. Perhitungan matematis untuk mencari nilai normalisasi dirumuskan dengan persamaan sebagai berikut : |(
)
|
(
)
dengan keterangan sebagai berikut : = hasil data sinyal normalisasi (1,2,3,…,N) = data masukan dari sampling (1,2,3,…,N) N
= banyaknya data sinyal Sinyal hasil pre emphasis pada gambar 2.7. akan diolah sebagai masukan untuk
proses normalisasi. Gambar 2.8. menunjukan sinyal masukan yang sudah melewati proses normalisasi.
Gambar 2.8. Sinyal Hasil Normalisasi dari Gambar 2.7.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
10
2.4.3. Pemotongan Sinyal Pemotongan sinyal dilakukan dengan tujuan memotong beberapa bagian sinyal yang dianggap noise yang ikut tercuplik. Sinyal data ucapan ditunjukan oleh gambar 2.9.
Gambar 2.9. Posisi Sinyal Data Ucapan Dalam proses ini, pemotongan sinyal dilakukan pada bagian awal dan akhir selain sinyal data ucapan. Pemotongan sinyal suara dimaksudkan untuk menghilangkan bagian yang dianggap bukan sinyal ucapan dan mengurangi gangguan sinyal yang diakibatkan dari derau ruangan atau suara lain yang ikut terekam. Sinyal selain data ucapan yang berada dibagian kiri dan kanan pada gambar 2.9. merupakan noise. Proses pemotongan sinyal ditunjukan oleh gambar 2.10., dengan nilai batas potong 0,3 [5]. Tahap pertama dalam pemotongan sinyal adalah memotong bagian kiri dari sinyal hasil normalisasi. Selanjutnya dilakukan pembalikan sinyal, lalu potong bagian kanan dari sinyal. Setelah itu sinyal dikembalikan ke kondisi semula, yang merupakan hasil dari proses pemotongan sinyal.
Gambar 2.10. Proses Pemotongan Sinyal
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
11
Gambar 2.10. (Lanjutan) Proses Pemotongan Sinyal
2.4.4. Zero Padding Setelah dilakukan pemotongan sinyal, proses selanjutnya adalah zero padding. Zerro padding merupakan tahapan akhir dari pre processing, dimana pada tahapan ini terdapat proses pemberian deretan data bernilai 0 pada data sinyal. Proses pemotongan sinyal mengakibatkan perbedaan panjang gelombang dari setiap data sinyal ucapan, sehingga dilakukan penambahan nilai 0 sampai panjang gelombang sesuai nilai dengan frekuensi sinyal yang telah ditentukan. Proses zero padding ditunjukan oleh gambar 2.11.
Gambar 2.11 Proses Zero Padding
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.5.
12
Framing dan Windowing Framing merupakan proses dimana sinyal data masukan akan dibentuk dalam
frame-frame. Dalam bentuk frame ini data akan lebih mudah untuk diketahui, sehingga tidak perlu memeriksa sinyal data secara keseluruhan secara langsung. Data akan diperiksa setiap frame sebesar nilai panjang frame yang telah ditentukan. Jika dalam pemeriksaan tersebut sinyal data melebihi maka akan mengalami overlap, lalu dipotong sebesar nilai overlap [10].
Gambar 2.12. Proses Framing [9] Windowing merupakan tahapan untuk menetralisir diskontinuitas sinyal pada awalan dan akhir tiap bentuk data sinyal dengan melakukan proses dari fungsi window [9]. Windowing berfungsi untuk membuat pola pada sinyal, sehingga dapat diproses dalam tahapan selanjutnya. Pada proses ini jenis window yang dipakai adalah jenis Hamming. Digunakan Hamming window karena mempunyai side lobe yang paling kecil dan main lobe yang paling besar, sehingga hasil windowing akan lebih halus dalam menghilangkan efek diskontinuitas[6]. Pada gambar 2.13. menunjukan proses windowing. Persamaan Hamming Window [7]:
2n w(n) 0,54 0,46 * cos N 1 Dimana: w(n) = windowing N
= jumlah data dari sinyal
n
= waktu diskrit ke – n
Gambar 2.13. Proses Framing dan Windowing
(2.4)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.6.
13
Discrete Fourier Transform(DFT) DFT merupakan perluasan dari transformasi fourier yang berlaku untuk sinyal-
sinyal diskrit dengan panjang yang terhingga. Semua sinyal periodik terbentuk dari gabungan sinyal-sinyal sinusoidal yang menjadi satu, yang dirumuskan pada persamaan 2.5 [11]. Proses ektraksi ciri DFT ditunjukan oleh gambar 2.14. Persamaan matematis DFT: ( )
∑
( )
(2.5)
dengan, n=0, 1,…, N-1, dan k = 0, 1, 2, …, N-1 X(k) adalah keluaran dalam domain frekuensi, x adalah masukkan dalam domain waktu dan N adalah runtun masukkan diskrit. e = natural number (2.7182818284…) n = indeks dalam domain frekuensi (0, 1, 2, …, N-1) k = indeks dalam domain waktu (0,1,2, …, N-1) j = konstanta fourrier
Gambar 2.14. Proses Ektraksi Ciri
2.7.
Segment Averaging Segment averaging merupakan metode untuk mengurangi jumlah data dengan cara
mengelompokannya dalam rentang segment tertentu yang kemudian dicari rata-ratanya
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
14
pada tiap segment. Tujuan segment averaging ini untuk mengurangi jumlah data ektraksi ciri yang memiliki ukuran panjang menjadi ukuran kecil. Lebar segment ditentukan dari banyak data berdasarkan perhitungan 2n, ukuran banyaknya segment yang terbentuk didapat dari pembagian seluruh data terhadap lebar segment [10]. Proses segment averaging ditunjukan oleh gambar 2.15., dengan lebar segment 64 dan mengahasilkan pembagian 4 frame.
Gambar 2.15. Proses Segment Averaging
2.8.
Klasifikasi k-NN Algoritma yang disebut aturan tetangga terdekat atau biasanya dikenal dengan k-
nearest neighbour (k-NN). Misal ada vektor x yang tidak diketahui, maka[10]:
Dari vektor pelatihan N, identifikasi k tetangga terdekat, dengan mengabaikan label kelas. Untuk masalah 2 kelas dipilih nilai k yang ganjil. Secara umum nilai k ini bukan kelipatan dari jumlah kelas M.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
15
Dari sampel K tersebut, identifikasi jumlah vektor, ki, yang termasuk masuk dalam kelas i ,i = 1,2,......,M. Dinyatakan dengan iki k .
2.9.
Tetapkan x ke kelas i berdasarkan jumlah ki terbanyak dari sampel.
Template Matching Tahap perbandingan yaitu salah satu tahap dalam proses pengenalan ucapan. Proses
template matching ini akan melakukan perbandingan antara pola data masukan dengan pola database. Metode yang dilakukan dalam proses template matching yaitu fungsi similaritas. Data masukan yang akan diproses akan dihitung nilai similaritas sehingga dapat dikenali kemiripan yang sesuai dengan database [13].
2.9.1. Similaritas Dice Similaritas Dice merupakan salah satu algoritma perhitungan similaritas yang dipakai dalam perbandingan pola dengan melihat kesamaan atau kemiripan pola input terhadap pola database. Penggunaan algoritma ini dengan memasukan nilai-nilai pada data input dan database dalam perhitungan. Hasil dari algoritma ini merupakan nilai pendekatan atau similaritas antara data input dan database. Rumus dari similaritas Dice dapat ditulis sebagai berikut [12]: ∑ ∑
∑
(2.6)
dengan keterangan sebagai berikut : d = jumlah variabel P = nilai data A Q = nilai data B i = indeks variabel
2.10. Mikrokontroler ATmega8535 AVR (Alf and Vegard’sRiscProcessor) merupakan seri mikrokontroler CMOS 8-bit yang diproduksi oleh Atmel berbasis arsitektur RISC (Reduced Instruction Set Computer). Chip AVR yang digunakan untuk tugas akhir ini adalah ATmega8535. Hampir semua instruksi dieksekusi dalam satu siklus clock dan mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode compare, interupsi internal dan eksternal, serial UART, programmable Watchdog Timer, dan power saving mode. AVR juga mempunyai
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
16
ADC, PWM internal dan In-System Programmable Flash on-chip yang mengijinkan memori program untuk diprogram ulang [14].
2.10.1. Arsitektur AVR ATmega8535 Mikrokontroler ATmega8535 memiliki arsitektur sebagai berikut [14]: a. Saluran IO sebanyak 32 buah, yaitu Port A, Port B, Port C dan Port D b. ADC 10 bit sebanyak 8 Channel c. Tiga buah timer/counter yaitu Timer 0, Timer 1, dan Timer 2 d. Watchdog Timer dengan osilator internal e. SRAM sebanyak 512 byte f. Memori Flash sebesar 8 kb g. Sumber Interupsi internal dan eksternal h. Port SPI (Serial Pheriperal Interface) i. EEPROM on board sebanyak 512 byte j. Komparator analog k. Port USART (Universal Shynchronous Ashynchronous Receiver Transmitter).
2.10.2. Konfigurasi PIN Mikrokontroler ATmega8535 Konfigurasi Pin Mikrokontroller ATmega8535 dengan kemasan 40 pin DIP (dual in-line package) dapat dilihat pada Gambar 2.16.. Untuk memaksimalkan performa dan paralelisme, AVR menggunakan arsitektur Harvard (dengan memori dan bus terpisah untuk program dan data). Ketika sebuah instruksi sedang dikerjakan maka instruksi berikutnya diambil dari memori program [14].
Gambar 2.16. Konfigurasi Pin Mikrokontroler ATmega8535 [15]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
17
Mikrokontroler ATmega 8535 memiliki konfigurasi Pin sebagai berikut[15]: 1.
VCC (power supply) ,dan GND (ground).
2.
Port A (PORTA7-0) merupakan pin I/O dua arah dan berfungsi khusus sebagai pin masukan ADC.
3.
Port B (PORTB7-0) merupakan pin I/O dua arah dan berfungsi khusus sebagai pin Timer/Counter, komparator analog dan SPI.
4.
Port C (PORTC7-0) merupakan pin I/O dua arah dan fungsi khusus.
5.
Port D (PORTD7-0) merupakan pin I/O dua arah dan fungsi khusus.
6.
RESET (Reset input) adalah pin untuk me-reset mikrokontroler.
7.
XTAL1 (Input Oscillator) dan XTAL2 (Output Oscillator) untuk exsternal clock.
8.
AVCC adalah pin masukan untuk tegangan ADC.
9.
AREF adalah pin masukan untuk tegangan referensi eksternal ADC.
2.10.3. Komunikasi Serial USART (The Universal Synchronous and Asynchronous serial Receiver and Transmitter) Komunikasi data adalah perpindahan data antara dua atau lebih piranti, baik yang berjauhan maupun yang berdekatan. Perpindahan data antara dua atau lebih peranti dapat dilaksanakan secara paralel atau serial. USART merupakan protokol komunikasi serial yang terdapat pada mikrokontroler AVR. Fitur ini berguna dalam pengiriman data secara serial antar mikrokontroler, maupun antara mikrokontroler dengan hardware lain. Komunikasi serial yang dapat dilakukan pada fitur USART dibedakan menjadi 2 cara yaitu sinkron dan asinkron. Pada penggunaan cara sinkron harus melakukan fase sinkronisasi data dari pengiriman data. Pada penggunaan cara asinkron tidak perlu melakukan pengiriman data terlebih dahulu, hanya saja sinkronisasikan terlebih dahulu dengan cara inisialisasi data pada program tersebut. Proses inisialisasi ini harus memiliki baudrate pada perangkat yang terhubung. Beberapa fasilitas yang disediakan USART AVR adalah sebagai berikut[14]: a) Operasi full duplex b) Mendukung komunikasi multiprosesor c) Kecepatan transmisi mencapai Mbps d) Operasi asinkron atau sinkron e) Operasi master atau slave clock sinkron f) Dapat menghasilkan baud-rate (laju data) dengan resolusi tinggi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
18
g) Komunikasi kecepatan ganda pada asinkron Inisialisasi USART Pada mikrokontroler AVR untuk mengaktifkan dan mengatur komunikasi dilakukan dengan cara mengaktifkan register yang digunakan untuk komunikasi USART. Register yang digunakan untuk komunikasi USART antara lain sebagai berikut[14]:
2.10.3.1. USART Control and Status Register A (USCRA)
Gambar 2.17. Register UCSRA [15] Penjelasan bit penyusun UCSRA pada gambar 2.17.[14]: a)
RXC (USART Receive Complete) RXC bernilai 1 jika ada data atau yang belum terbaca dan bernilai 0 jika tidak ada data.
b) XC (USART Transmit Complete) TXC bernilai 1 jika keseluruhannya data sudah terkirim. c)
UDRE (USART Data Register Empty) UDRE adalah interupt yang akan aktif jika UDRIE pada UCSRB di set 1. UDRE bernilai 1 jika buffer kosong.
d) FE (Frame Error) FE bernilai 1 jika terjadi error pada proses penerimaan data. e)
DOR (Data OverRun) DOR bernilai 1 jika terjadi over run data, artinya ketika register penerimaan telah penuh dan terdapat data baru yang menunggu.
f)
PE (Parity Error) PE bernilai 1 jika terjadi error pada parity.
g) U2X (Double the USART Transmission Speed) Bit yang berfungsi untuk menggandakan laju data manjadi dua kalinya. Hanya berlaku untuk modus asinkron, untuk mode sinkron bit ini di set nol . h) MPCM (Multi Processor Communication Mode) MPCM berkaitan pada proses multiprosesor.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
19
2.10.3.2. USART Control and Status Register B (USCRB)
Gambar 2.18. Register UCSRB [15] Penjelasan bit penyusun UCSRB pada gambar 2.18. [14]: a)
RXCIE (RX Complete Interrupt Enable) RXCIE mengatur aktivasi interupsi penerimaan data serial, akan berlogika satu jika diaktifkan dan berlogika nol jika tidak diaktifkan.
b)
TXCIE (TX Complete Interrupt Enable) TXCIE mengatur aktivasi interupsi pengiriman data serial, akan berlogika satu jika diaktifkan dan berlogika nol jika tidak diaktifkan.
c)
UDRIE (USART Data Register Empty Interrupt Enable) UDRIE berfungsi untuk mengaktifkan interupsi data register kosong, berlogika satu jika diaktifkan dan sebaliknya .
d)
RXEN (Receiver Enable) RXEN berfungsi untuk mengaktifkan pin RX.
e)
TXEN (Transmitter Enable) TXEN berfungsi untuk mengaktifkan pin TX saluran USART. Ketika pin diaktifkan maka pin tersebut tidak dapat digunakan untuk fungsi pin I/O karena sudah digunakan sebagai saluran pengirim USART.
f)
UCSZ2 (Character Size) UCXZ2 bersama dengan UCSZ1 dan UCSZ0 dalam register UCSRC digunakan untuk memilih tipe lebar data bit yang digunakan seperti yang ditunjukan pada tabel 2.1. Tabel 2.1. Penentuan Ukuran Karakter untuk UCSZ[2..0] [14] UCSZ [2..0] Ukuran Karakter dalam bit 0 5 1 6 10 7 11 8 100-110 Tidak digunakan 111 9
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI g)
20
RXB8 (Receive Data Bit 8) RXB8 adalah bit kesembilan jika digunakan ukuran karakter 9. Dibaca dahulu sebelum membaca register UDR .
h)
TXB8 (Transmit Data Bit 8) TXB8 adalah bit kesembilan jika digunakan ukuran karakter 9. Dikirim dahulu sebelum mengirim ke register UDR .
2.10.3.3. USART Control and Status Register C (USCRC)
Gambar 2.19. Register UCSRC [15] Penjelasan bit penyusun UCSRC[14] : a)
URSEL (Register Select) : URSEL adalah bit untuk pemilihan akses UCSRC dan UBRR. Set 1 untuk akses UCSRC. Hal ini karena UBRRH dan UCSRC menggunakan lokasi I/O yang sama.
b)
UMSEL (USART Mode Select) UMSEL adlaah bit pemilihan mode sinkron atau asinkron. Set 1 untuk mode sinkron
c)
UPM0..1 (Parity Mode) UPM0..1 merupakan bit pengaturan parity dengan setting seperti pada tabel 2.2: Tabel 2.2. Setting UPM0..1 untuk setting parity[14] UPM0..1 Parity 0 Tidak Aktif 1 Tidak digunakan 10 Genap 11 Ganjil
d)
USBS (Stop Bit Select) USBS yang berfungsi untuk memilih jumlah stop bit yang akan digunakan .
e).
UCSZ1 dan UCSZ0 UCSZ1 dan UCSZ0 digunakan bersama dengan bit UCSZ2 untuk menentukan karakter yang dikirimkan.
e)
UCPOL (Clock Parity) UPCOL merupakan bit pengatur hubungan antara perubahan data keluaran dan data masukan serial dengan mode sinkron.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
21
2.10.3.4. USART I/O Data Register (UDR) UDR merupakan register 8 bit yang terdiri dari 2 buah dengan alamat yang sama, yang digunakan sebagai tempat untuk menyimpan data yang akan dikirimkan (TXB) atau tempat data diterima (RXB) sebelum data tersebut dibaca [14].
Gambar 2.20. Register UDR [15]
2.11. Sound Card Sound Card atau kartu suara adalah perangkat keras pada PC/laptop yang berguna untuk mengolah audio atau suara. Sound Card memiliki 4 fungsi utama , yaitu sebagai synthesizer, sebagai MIDI interface, pengkonversi data analog ke digital (misalnya merekam suara dari mikrofon), dan pengkonversi data digital ke analog (misalnya saat memproduksi suara dari speaker). Secara umum sound card memiliki beberapa fungsi : 1.
Digital Signal Processing Berfungsi untuk mengolah sinyal audio baik analog maupun digital. Proses pengolahan dibagi dalam 2 bentuk yaitu Analog to Digital Converter (ADC) dan Digital to Analog Converter (DAC). Proses ADC biasa dilakukan saat menangkap sinyal listrik dari mikrofon, sedangkan proses DAC dilakukan saat mengeluarkan output sinyal analog ke speaker.
2.
Synthesizer Melalui teknologi sintesis Frequency Modulation (FM) dapat menghasilkan suara yang jernih. Sinyal suara disimulasikan menggunakan algoritma tertentu sehingga menghasilkan sine wave. Hal tersebut menghasilkan suara yang mirip dengan suara sumber aslinya.
3.
MIDI (Musical Instrument Digital Interface) MIDI adalah standar protokol yang memungkinkan perangkat elektronik dapat melakukan sinkronisasi sehingga dapat saling berkomunikasi [17]. Ada 3 jenis sound card berdasarkan kondisi pemasangan yaitu Sound Card On
Board, Sound Card Off Board, dan Sound Card External. Sound card pada perangkat
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
22
PC/laptop biasanya sudah terpasang langsung pada motherboard atau biasa disebut Sound Card On Board. Sound Card Off Board pemasangannya pada slot ISA/PCI pada motherboard. Sound Card External pemasangannya dihubungkan ke komputer melalui port eksternal seperti USB atau FireWire [17]. Salah satu bentuk fisik sound card ditunjukan pada gambar 2.21.
Gambar 2.21. Bentuk sound card PC [17]
2.12. Motor Pompa Motor pompa yang digunakan adalah motor washer pump, merupakan motor DC yang dilengkapi kipas sebagai pendorong cairan. Biasa digunakan sebagai pompa cairan pada kendaraan mobil. Pada penelitian ini, motor pompa diaplikasikan sebagai pendorong cairan pada mesin pembuat minuman karena daya tahan dan kemampuan pompa yang handal [20].
Gambar 2.22. Bentuk Fisik Motor Pompa [20] Bentuk fisik motor pompa dapat dilihat pada gambar 2.22. Sistem pengkabelan motor pompa terdiri dari 2 bagian, yaitu VCC dan GND. Kontrol motor pompa dilakukan dengan modul relay yang dikendalikan oleh mikrokontroler. Spesifikasi motor pompa ditunjukan pada tabel 2.3. Tabel 2.3. Spesifikasi Motor Pompa [20] Spesifikasi Motor Washer Mono Pump Dimension Ø 35 X 72.5mm Rated Voltage 13V Max. Pressure 51 psi Life (Typical) 30,000 activation Weight 98g Operation Temperature -18oC to +80oC Storage Temperature -40oC to +80oC Electrical Connection Mating Connector Housing
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
23
2.13. LCD 16x2 LCD merupakan perangkat keras yang berfungsi untuk penampil informasi dalam bentuk teks. Teknologi bahan yang digunakan LCD yakni memanfaatkan silikan atau galium dalam bentuk kristal cair sebagai penampil cahaya. Pada LCD terdapat dot matrix yang mampu menampilkan 16x2 karakter, haya membutuhkan daya kecil dan dilengkapi panel LCD dengan tingkat kontras yang cukup tinggi serta kontroler LCCD CMOS yang telah terpasang dalam modul tersebut. Kontroler ini memiliki ROM/RAM dan display data RAM, semua fungsi display dikontrol dengan intruksi dan modul ini mudah dihubungkan dengan mikrokontroler. Bentuk fisik LCD ditunjukan gambar 2.23. Kelebihan LCD 16x2 yaitu [21]: 1. Dapat menampilkan karakter ASCII, sehingga dapat memudahkan untuk membuat program tampilan. 2. Mudah dihubungkan dengan port I/O karena hanya menggunakan 8 bit data dan 3 bit kontrol. 3. Ukuran modul yang proporsional. 4. Daya yang digunakan relatif kecil. Operasi pada LCD 16x2 terdiri dari instruksi mengakses proses internal, instruksi menulis data, instruksi membaca kondisi sibuk, dan instruksi membaca data yang ditunjukan tabel 2.4.. Operasi dasar LCD 16x2 dapat dilihat pada tabel 2.5. Untuk konfigurasi pin LCD ditunjukan pada tabel 2.6.
Gambar 2.23. Gambar fisik LCD 16x2[22] Tabel 2.4. Operasi baca/tulis LCD 16x2 [22] RS 0 0 1 1
R/W 0 1 0 1
Operasi Input instruksi ke LCD Membaca status flag (DB7) dan alamat counter (DB0-DB6) Menulis data ke DDRAM atau CGRAM Membaca data dari DDRAM atau CGRAM
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
24
Tabel 2.5. Operasi dasar LCD 16x2 [22] Pin No. Keterangan Konfigurasi hubung 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
GND VCC VEE RS RW E D0 D1 D2 D3 D4 D5 D6 D7 Anoda Katoda
Ground Tegangan +5Vdc Ground Kendali RS Ground Kendali E/Enable Bit 0 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Anoda (+5Vdc) Katoda (Ground )
Tabel 2.6. Konfigurasi pin LCD 16x2 [22] Pin RS RW E
Bilangan biner Ke terangan 0 Inisialisasi 1 Data 0 Tulis LCD/W (Write ) 1 Baca LCD/R (Read ) 0 Pintu data terbuka 1 Pintu data tertutup
2.14. IC Regulator Pengatur tegangan (voltage regulator) berfungsi menyediakan suatu tegangan keluaran DC tetap yang tidak dipengaruhi oleh perubahan tegangan masukan. Salah satu tipe regulator tegangan tetap adalah 78xx. Regulator tegangan tipe 78xx memiliki tiga terminal, yaitu terminal Vin, GND dan Vout, rangkaian umumnya ditunjukan pada gambar 2.24. Regulator tegangan 78xx dapat diatur tegangan dan arusnya melalui tambahan komponen eksternal. Karakteristik IC regulator seri 78xx dapat dilihat pada tabel 2.7. Tabel 2.7. Karakteristik Regulator Tegangan IC 78xx [23] Tipe IC 7805 7806 7808 7810 7812 7815 7818 7824
Vout (volt) 5 6 8 10 12 15 18 24
Vin (volt) Min Maks 7,3 20 8,3 21 10,5 23 12,5 25 14,6 27 17,7 30 21 33 27,1 38
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
25
Gambar 2.24. Rangkaian umum regulator 78xx [23] Nilai komponen c1 dan c2 difungsikan sebagai filter capasitor yang bertujuan untuk menghilangkan tegangan ripple agar tegangan keluaran menjadi lebih stabil. Untuk mendapatkan nilai kapasitor yang sesuai, dapat mengacu pada persamaan 2.7 dan 2.8 [23]. (
)
(2.7)
√ (
)
(2.8)
Komponen eksternal yang digunakan yaitu transistor 2N3055 karena kemampuan arus maksimalnya adalah 15 ampere [23]. Untuk gambar rangkaian IC regulator dapat ditunjukan gambar 2.25.
Gambar 2.25. Rangkaian catu daya dengan penguat [24] Dari gambar 2.25, maka diperleh persamaan-persamaan sebagai berikut [24] : VB = Vreg + VD
(2.9)
Tegangan keluaran rangkaian menjadi, Vo = Vreg – VBE
(2.10)
Vo = Vreg
(2.11)
Jika VD VBE, maka
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
26
Tegangan diantara kolektor dan emittor transistor 2N3055 adalah, VCE = VIN – VR1
(2.12)
Disipasi daya transistor NPN 2N3055 adalah, PD = VCE x IC
(2.13)
Untuk nilai penguatan arus diperoleh dengan persamaan dibawah ini: Ic = β IB
(2.14)
Ie = (β+1) IB
(2.15)
2.15. Mikrofon Mikrofon adalah suatu alat atau komponen elektronika yang dapat mengubah atau mengkonversikan energi akustik (gelombang suara) ke energi listrik (sinyal audio). Mikrofon merupakan keluarga transduser yang berfungsi sebagai komponen atau alat pengubah satu bentuk energi ke bentuk energi lainnya. Semua jenis mikrofon memiliki suatu bagian utama yang disebut dengan diafragma (diaphragm). Mikrofon banyak digunakan dalam bidang komunikasi meliputi pengeras suara, telepon, alat bantu pendengaran, dan perekam suara. Mikrofon yang akan digunakan terpasang pada headset Genius. Mikrofon tersebut dipilih karena memiliki panjang yang tetap, diharapkan dapat memperkecil kemungkinan perubahan posisi saat digunakan. Spesifikasi mikrofon dapat dilihat pada tabel 2.8. Tabel 2.8. Spesifikasi Mikrofon Sades [25] Loudhailer 40mm Cable length 2.0m Frequency 20 to 20kHz Sensitivity 117db at 1kHz Impedance 32 Ohm at 1kHz Plug 3.5mm nickel-plating
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB III RANCANGAN PENELITIAN 3.1.
Konsep Dasar Prinsip dasar dari sistem ini adalah mengenali ucapan manusia, lalu hasil
pengenalan tersebut akan digunakan sebagai perintah untuk mengendalikan mesin pembuat minuman. Terdapat 4 ucapan manusia yang akan dikenali, dan diuji oleh 3 orang pengguna yang telah ditentukan Penulis. Ucapan yang akan dikenali adalah “kopi”, “susu”, “kopsus”, dan “cokelat”. Perancangan sistem kerja ditunjukan pada gambar 3.1.
Gambar 3.1 Blok Perancangan Sistem Ucapan yang dikeluarkan oleh pengguna akan ditangkap oleh mikrofon, lalu diolah oleh soundcard yang terdapat pada motherboard komputer menjadi sinyal digital. Data sinyal ucapan pengguna akan digunakan sebagai masukan yang akan diolah melalui proses pengenalan ucapan di dalam komputer. Proses pengenalan ucapan dilakukan menggunakan software Matlab, lalu hasil pengolahan akan dikirim kepada mikrokontroler secara serial menggunakan modul komunikasi USB to TTL. Data yang diterima mikrokontroler akan diolah sebagai perintah untuk menjalankan mesin pembuat minuman. Terdapat 4 wadah dalam mesin pembuat minuman yang berisi cairan kopi, susu, kopi susu, dan cokelat.
27
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
28
Mesin akan membuat minuman berdasarkan data dari mikrokontroler dengan mengaktifkan motor pompa untuk memompa cairan. Cairan dari wadah akan mengalir menuju gelas, sebagai hasil pembuatan minuman. Mesin pembuat minuman akan bekerja sesuai perintah dari mikrokontroler berdasarkan pengenalan ucapan pengguna untuk membuat minuman, yaitu „kopi‟ untuk membuat kopi, „susu‟ untuk membuat susu, „kopsus‟ untuk membuat kopi susu, serta membuat minuman cokelat saat pengguna mengucapkan „cokelat‟. Perancangan penelitian ini dibagi dalam 2 bagian, yaitu perancangan software sebagai proses pengenalan ucapan dan komunikasi dengan mikrokontroler lalu perancangan hardware dari mesin pembuat minuman.
3.1.1. Ucapan Proses pengenalan ucapan akan mengolah dan mengenali ucapan pengguna. Namun, sebelum ucapan dikenali, terlebih dulu dibentuk database dari masing-masing pengguna yang telah ditentukan Penulis. Kata-kata yang akan digunakan adalah „kopi‟, „susu‟, „kopsus‟, dan „cokelat‟. Pengucapan dilakukan sedatar mungkin tanpa variasi lafal, intonasi, jeda, maupun penekanan.
3.1.2. Mikrofon Mikrofon yang akan digunakan terpasang pada headset Sades. Mikrofon tersebut dipilih karena memiliki panjang yang tetap, diharapkan dapat memperkecil kemungkinan perubahan posisi saat digunakan. Spesifikasi mikrofon dapat dilihat pada tabel 2.8.
3.1.3. Modul USB TO TTL Modul USB TO TTL digunakan untuk komunikasi serial antara komputer dengan mikrokontroler. Level tegangan COM1 pada komputer akan diubah menjadi level TTL/CMOS oleh modul ini.
Gambar 3.2. Bentuk Fisik Modul USB to TTL
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
29
3.1.4. Mikrokontroler ATmega 8535 Mikrokontroler akan menerima data dari komputer yang telah diolah menjadi data serial oleh modul USB TO TTL sebagai masukan perintah untuk selanjutnya mengendalikan motor pompa pada mesin pembuat minuman. Fitur yang digunakan pada mikrokontroler adalah USART sebagai komunikasi serial antara komputer dengan mikrokontroler, LCD sebagai penampil informasi, dan PORT B sebagai keluaran untuk mengaktifkan motor pompa.
3.1.5. Motor Pompa Motor pompa berfungsi sebagai pompa dari wadah cairan agar dapat mengalir menuju bagian keluaran. Setiap wadah cairan yang memiliki kran akan diberi motor pompa yang terhubung dengan mikrokontroler, yang akan memompa cairan sesuai perintah yang telah ditentukan.
3.2.
Perancangan Sistem Pengenalan Ucapan Proses pengenalan ucapan diawali dengan masukan dari ucapan pengguna yang
ditangkap oleh mikrofon. Selanjutnya sinyal ucapan tersebut diubah oleh soundcard menjadi sinyal digital agar dapat diolah komputer. Komputer akan memproses sinyal suara yang telah didapat menggunakan software Matlab. Ucapan dari pengguna akan diterima dan dikenali secara real time oleh komputer dengan hasil akhir mengeluarkan kombinasi cairan sesuai ucapan pengguna. Proses pengenalan ucapan terdiri dari sampling (pencuplikan ucapan), pre processing, segmentasi, ekstraksi ciri, perhitungan similaritas dan penentuan hasil pengenalan. Pada tahap preprocessing, yang merupakan proses pengkondisian sinyal, terdapat sub-proses yang terdiri dari pre-emphasis, normalisasi, pemotongan sinyal, dan zero padding. Hasil dari preprocessing akan diproses dalam segmentasi sebelum diolah dalam ekstraksi ciri. Tahap ekstraksi ciri akan menghasilkan ekstrak dari data. Lalu pada tahap perhitungan similaritas, database akan dipanggil untuk perhitungan sebagai pembanding data masukan. Selanjutnya hasil perbandingan akan diproses untuk menentukan hasil akhir pengenalan. Lalu data hasil pengenalan akan dikirim ke mikrokontroler untuk mengendalikan kombinasi cairan pada mesin pembuat minuman. Flowchart pada gambar 3.3. menunjukan alur dari rancangan program yang akan dibuat melalui Matlab, mulai dari pengambilan ucapan sampai pengiriman data secara serial. Proses pada inisialisasi bertujuan untuk mendeklarasikan variabel dan pemberian
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
30
nilai awal. Variabel pemilihan pengguna, nilai „k‟ pada k-NN, dan lebar segment averaging merupakan variabel yang nilainya divariasikan oleh pengguna. Besarnya nilai dari variabel-variabel tersebut akan dijelaskan pada sub-bab selanjutnya (3.2.3, 3.2.9, 3.2.6).
Gambar 3.3. Flowchart Program Pengenalan Ucapan Pada Matlab
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
31
3.2.1. Sampling Pada proses sampling, pengambilan ucapan pengguna yang masih berupa sinyal analog akan diubah menjadi sinyal digital oleh soundcard ketika masuk ke dalam komputer. Suara ucapan manusia memiliki rentang frekuensi antara 250Hz – 3000Hz. Nilai frekuensi sampling ucapan ditentukan berdasarkan nilai maksimal dari rentang frekuensi suara manusia, yaitu 3000 Hz [4], agar nilai dari frekuensi sampling dapat mencakup keseluruhan rentang frekuensi tersebut. Frekuensi sampling yang digunakan diatur agar bernilai 6000Hz, 2 kali dari frekuensi maksimal suara manusia. Nilai frekuensi sampling tersebut didapat berdasarkan persamaan Nyquist pada persamaan 2.1, yaitu:
Lama waktu penangkapan ucapan pada proses sampling ditentukan sebesar 1 detik. Waktu tersebut ditentukan agar kata yang diucapkan dapat terekam utuh, tetapi juga tidak terlalu banyak suara yang tidak diperlukan ikut terekam. Penentuan lama waktu berdasarkan hasil percobaan yang terlampir. Nilai lama waktu tersebut mempengaruhi banyaknya data yang tecuplik. Banyaknya data yang tercuplik dapat dihitung dengan persamaan berikut: (3.1) Pada rancangan, proses sampling membutuhkan nilai masukan berupa variabel frekuensi sampling dan waktu sampling. Nilai masukan yang digunakan untuk inisialisasi proses sampling adalah berdasarkan persamaan 3.1. Variabel tersebut akan digunakan untuk menghitung banyaknya data yang tercuplik. (3.2)
Hasil dari sampling berupa sinyal dari data yang tercuplik. Flowchart rancangan program pada proses sampling ditunjukan pada gambar 3.4.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
32
Gambar 3.4. Flowchart Rancangan Program Proses Sampling
3.2.2. Pre Emphasis Pre emphasis merupakan bagian dari preprocessing yang pertama. Data hasil sampling akan diproses dalam pre emphasis. Pada proses ini akan dilakukan perhitungan untuk menghilangkan noise yang berada pada hasil sampling dan mempertahankan bentuk sinyal ucapan yang kabur menjadi lebih jelas. Nilai alpha yang digunakan adalah sebesar 0,95 ditentukan dari referensi yang telah ada [7]. Gambar 3.5. menunjukan flowchart proses pre emphasis.
Gambar 3.5. Flowchart Rancangan Program Pre Emphasis
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
33
3.2.3. Normalisasi Setelah dilakukan pre emphasis, sinyal sampling akan diproses dalam normalisasi. Proses ini akan menyeragamkan nilai amplitudo dari sinyal sampling agar terbentuk pada skala yang sama. Tujuannya agar pengaruh kuat lemahnya ucapan pengguna dapat disamakan, sehingga amplitudo puncak data ucapan bernilai 1 atau -1 dan nilai amplitudo yang lain akan menyesuaikan skala tersebut. Proses normalisasi pada nilai-nilai amplitudo dibentuk dengan persamaan berikut [8]: ))
)
Dengan keterangan sebagai berikut: Xnorm = hasil normalisasi dari sinyal (1,2,3,…,N) Xin
= data masukan dari sampling (1,2,3,…,N)
N
= banyaknya data sinyal.
Gambar 3.6. menunjukan flowchart rancangan program normalisasi. Perhitungan normalisasi akan dijalankan ketika fungsi ini dipanggil. Data sinyal hasil pre emphasis akan menjadi masukan yang diolah normalisasi berdasarkan persamaan 3.7. keluaran dari proses ini merupakan sinyal yang telah ter-normalisasi.
Gambar 3.6. Flowchart Rancangan Program Normalisasi
3.2.4. Pemotongan Sinyal Setelah dilakukan normalisasi, proses selanjutnya adalah pemotongan sinyal. Proses ini bertujuan untuk menghilangkan sinyal yang terletak sebelum dan sesudah sinyal ucapan yang ikut terekam agar didapatkan hanya sinyal yang berisi ucapan pengguna saja. Proses pemotongan sinyal dibatasi oleh nilai dari variabel batas potong, yang merupakan nilai
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
34
batas amplitudo yang akan dipotong. Nilai variabel batas potong yang digunakan adalah 0,3 yang didapat berdasarkan refrensi [5]. Gambar 3.7. menunjukan flowchart rancangan program pemotongan sinyal.
Gambar 3.7. Flowchart Rancangan Program Pemotongan Sinyal Proses pemotongan sinyal dilakukan dengan mencari data yang lebih besar dari batas potong dan lebih kecil dari nilai negatif batas potong yang telah ditentukan. Data sinyal masukan akan dihilangkan dari data awal hingga data pertama pada hasil pencarian data yang dilakukan. Pemotongan sinyal dilakukan secara bertahap dari data sinyal bagian depan lalu dilanjutkan ke bagian akhir dengan membalik urutan sinyal. Setelah sinyal bagian akhir selesai dipotong, bentuk sinyal akan dibalik lagi ke bentuk semula, dan didapatkan hasil pemotongan sinyal data ucapan.
3.2.5. Zero Padding Setelah dilakukan pemotongan sinyal, proses selanjutnya adalah zero padding. Zero padding adalah proses untuk menyamakan panjang data sinyal setelah proses pemotongan sinyal dengan menyisipkan deretan nilai 0 pada bagian akhir data ucapan. Zero padding digunakan karena adanya perbedaan jumlah panjang data sinyal tercuplik pada setiap pengucapan. Penyisipan nilai 0 dilakukan hingga mancapai banyaknya data yang telah ditentukan. Penentuan panjang data sinyal ditentukan oleh bilangan 2n. Bilangan tersebut berfungsi untuk melakukan perhitungan jumlah data sinyal yang akan disisipkan nilai 0,
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
35
sehingga panjang data sinyal tersebut akan sama dengan panjang data pengucapan awal. Gambar 3.8. menunjukan flowchart rancangan program zero padding.
Gambar 3.8. Flowchart Rancangan Program Zero Padding
3.2.6. Segmentasi dan Windowing Setelah melalui preprocessing, maka data sinyal telah siap untuk diproses dalam segmentasi. Proses ini bertujuan untuk membagi tiap data kedalam beberapa bagian segmen sebelum dilakukan ekstraksi ciri. Proses segmentasi dibatasi dengan nilai variabel overlap. Nilai variabel overlap merupakan nilai segmentasi untuk membagi tiap data. Nilai variabel overlap yang digunakan pada segmentasi ditentukan sebesar 25% [5] dari panjang segmen, yaitu sebesar 512 [10]. Dalam melakukan segmentasi terdapat proses windowing, yang merupakan pembentukan pola dalam masukan data sinyal ucapan, sebelum dilakukan ekstraksi ciri. Proses windowing dilakukan agar efek diskontinuitas pada sinyal ucapan, yang dapat mengakibatkan kesalahan proses data dalam ekstraksi ciri DFT, dapat diminimalisir. Agar tidak terjadi kesalahan data pada proses, maka data sinyal ucapan yang telah mengalami pemotongan sinyal perlu dijadikan data kontinu dengan cara mengalihkan bagian sinyal dengan windowing tertentu. Pada penelitian ini, Penulis penggunakan jenis windowing Hamming, karena jenis window ini memiliki main lobe paling besar serta side lobe paling kecil. Program windowing akan dijalankan saat fungsi ini dipanggil. Hasil dari zero padding, beserta variabel overlap dan panjang segmen, akan menjadi masukan program yang akan membentuk pola data sinyal ucapan. Sinyal hasil windowing didapat dari
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
36
perkalian elemen dari data Hamming window dengan data sinyal hasil pemotongan sinyal. Gambar 3.9. menunjukan flowchart rancangan program segmentasi dan windowing
Gambar 3.9. Flowchart Rancangan Program Segmentasi dan Windowing
3.2.7. Ekstraksi Ciri Setelah melalui segmentasi dan windowing, proses selanjutnya adalah ekstraksi ciri. Ekstraksi ciri yang digunakan dapam penelitian ini adalah ekstraksi ciri Discrete Fourier Transform (DFT). Gambar 3.10. menunjukan flowchart rancangan program ekstraksi ciri DFT.
Gambar 3.10. Flowchart Rancangan Program Ekstraksi Ciri DFT
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
37
Setelah proses ekstraksi ciri dilakukan, dilanjutkan proses segment averaging yang bertujuan untuk mengurangi jumlah data ekstraksi ciri dengan mengelompokannya dalam rentang segmen yang kemudian dicari rata-ratanya pada setiap segmen.tujuan segment averaging sama dengan downsampling yang digunakan untuk mengurangi jumlah data ekstraksi ciri agar menjadi lebih kecil. Proses segment averaging dibatasi dengan nilai dari variabel lebar segmen yang ditentukan dari banyak data berdasarkan perhitungan 2n. nilai dari variabel lebar segmen merupakan nilai segment averaging untuk membagi tiap data. Nilai variabel segmen yang digunakan pada segment averaging ditentukan sebesar 16, 32, 64, dan 128. Gambar 3.11. menunjukan flowchart rancangan program segment averaging.
Gambar 3.11. Flowchart Rancangan Program Segment Averaging
3.2.8. Perhitungan Similaritas Selanjutnya akan dilakukan proses perhitungan similaritas. Proses perhitungan similaritas bertujuan membandingkan semua sinyal ucapan yang telah diproses dengan database yang telah dirancang untuk mencari nilai similaritas terbesar. Pada penelitian ini akan digunakan persamaan similaritas Dice. Data sinyal ucapan yang masuk akan dihitung bersamaan dengan seluruh database satu persatu menggunakan persamaan matematis yang ada pada dasar teori (2.6). Gambar 3.12. menunjukan flowchart rancangan program perhitungan similaritas.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
38
Gambar 3.12. Flowchart Rancangan Program Perhitungan Similaritas
3.2.9. Penentuan Hasil Pengenalan Ucapan (k-Nearest Neighbor) Tahapan proses ini merupakan penentuan hasil pengenalan ucapan dengan menggunakan metode k-Nearest Neighbor (k-NN). Hasil dari pengenalan ucapan didapat dari masukan nilai perhitungan similaritas, variabel nilai k pada k-NN, dan jumlah sampel per-kelas. Pada perhitungan similaritas, ucapan masuk dibandingkan dengan semua database, lalu diurutkan hasilnya dari yang terbesar sampai yang terkecil. Pengambilan kelas yang paling banyak muncul dengan menggunakan nilai dari variabel k pada metode k-NN. Nilai dari variabel k pada penelitian ini ditentukan sebesar 3, 5, dan 7 [10]. Jumlah sample perkelas ditentukan berdasarkan banyaknya database disetiap kata. Setelah nilai k ditentukan, proses dilanjutkan dengan membandingkan dengan nilai thresholding, dimana jika nilai similaritas lebih besar atau sama dengan nilai thresholding maka suara akan dikenali, sedangkan jika nilai similaritas lebih kecil dari nilai thresholding maka suara tidak dikenali dan akan ditampilkan sebagai error (tidak dikenali) dalam keluaran berupa teks. Hasil dari pembandingan nilai similaritas dengan nilai thresholding akan dilakukan untuk mencari indeks kelas terbesar dan selanjutnya memilih kelas yang paling sering muncul. Nilai thresholding didapatkan dari hasil perhitungan similaritas, dimana setiap ucapan yang akan dikenali memiliki nilai similaritas terbesar dan terkecil. Nilai similaritas terkecil yang masih dapat mengenali akan diambil sebagai nilai thresholding.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
39
Hasil dari perhitungan dan nilai kelas yang paling banyak muncul tersebut merupakan hasil dari keluaran k-NN, yang juga merupakan hasil pengenalan ucapan. Hasil dari proses ini akan dikeluarkan dalam bentuk teks. Gambar 3.13. menunjukan flowchart rancangan penentuan hasil pengenalan dengan metode k-Nearest Neighbor.
Gambar 3.13. Flowchart Rancangan Pengenalan Keluaran Dengan Metode k-NN
3.2.10. Pengiriman Data Serial Pengiriman data hasil pengenalan ucapan dilakukan secara serial melalui modul USB to TTL. Agar dapat melakukan komunikasi, akan dibuat sebuah program pada Matlab untuk mengkomunikasikan data dengan mikrokontroler. Diperlukan inisialisasi port yang digunakan, baudrate, data bits, dan parity yang akan disesuaikan dengan mikrokontroler yang digunakan. Setelah inisialisasi dilakukan, gerbang serial akan dibuka, lalu memberikan nilai masukan berupa data hasil pengenalan. Data hasil pengenalan akan diperiksa menggunakan logika if-else untuk mengetahui data
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
40
apakah yang dikirimkan. Untuk mempermudah proses, maka data yang dikirimkan akan direpresentasikan dengan karakter angka 1, 2, 3, dan 4. Penentuan karakter angka yang dikirimkan dengan kategori ucapan dapat dilihat pada tabel 3.1. Setelah data dikirimkan, maka gerbang komunikasi serial akan ditutup kembali. Gambar 3.14. menunjukan flowchart rancangan program pengiriman data serial. Tabel 3.1. Data Pengiriman Dari Tiap Ucapan Ucapan KOPI SUSU KOPSUS COKELAT ERROR
Data Yang Dikirim “1” “2” “3” “4” “5”
Gambar 3.14. Flowchart Rancangan Program Pengiriman Data Serial
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 3.3.
41
Perancangan Pembentukan Database Pengenalan Ucapan Perancangan database dibentuk dari pengolahan sinyal ucapan pengguna yang telah
direkam. Database sangat diperlukan pada tahap perhitungan similaritas dalam proses pengenalan ucapan. Semakin baik database dibuat, maka semakin baik pula kemampuan sistem untuk mengenali ucapan. Database disimpan dalam bentuk Math file pada Matlab di komputer. Gambar 3.15. menunjukan diagram rancangan pembentukan database.
Gambar 3.15. Diagram Rancangan Pembentukan Database Kata-kata yang diucapkan untuk pembentukan database, sama dengan kata-kata yang dirancang untuk dikenali, yaitu kopi, susu, kopsus, dan cokelat. Proses pembentukan database juga hampir sama dengan proses pengenalan ucapan, kecuali pada proses setelah ekstraksi ciri dan segment averaging, pada pembentukan database, data akan langsung disimpan. Terdapat 3 orang pengguna yang data suaranya akan dibentuk sebagai database, meliputi Penulis dan 2 orang pengguna lain. Database akan dibentuk untuk setiap kata “kopi”, “susu”, “kopsus”, dan “cokelat”, sehingga untuk setiap pengguna memiliki database dengan jumlah sampel data ucapan tertentu. Jumlah sampel untuk setiap ucapan pada database akan dievaluasi, dengan variasi jumlah sampel 1, 2, 4, dan 8 sampel data sinyal ucapan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 3.4.
42
Perancangan User Interface Perancangan user interface bertujuan untuk memudahkan pengguna dalam
mengakses program yang telah dibuat. Dalam penelitian ini, Penulis menggunakan fitur Graphical User Interface (GUI) pada software Matlab untuk interface dari program yang telah dirancang. Gambar 3.16. dan tabel 3.2. menunjukan rancangan user interface dengan GUI Matlab dan keterangannya.
Gambar 3.16. Rancangan User Interface Dengan GUI Matlab Tabel 3.2. Keterangan Rancangan User Interface NAMA BAGIAN KETERANGAN Kolom yang berisi pilihan-pilihan variabel yang akan INISIALISASI diinisialisasikan. PEMILIHAN Untuk memilih pengguna yang akan mengakses PENGGUNA program NILAI „k‟ PADA k- Memilih nilai variabel „k‟ pada proses penentuan hasil NN pengenalan LEBAR SEGMENT Memilih nilai variabel pada proses segment averaging AVERAGING PLOT UCAPAN Menampilkan plot sinyal ucapan PLOT EKSTRAKSI Menampilkan plot hasil ekstraksi ciri CIRI KETERANGAN
Kolom yang berisi informasi singkat mengenai program
UCAP STOP HASIL PENGENALAN
Tombol untuk memulai perekaman ucapan Tombol untuk mengakhiri program Menampilkan hasil dari pengenalan ucapan yang dilakukan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
43
Pengguna akan melakukan inisialisasi dengan memasukan nilai-nilai dari variabel sebelum melakukan pengucapan. Setelah inisialisasi dilakukan, pengguna dapat menekan tombol “UCAP” untuk memulai proses perekaman. Ketika tombol “UCAP” ditekan, pengguna langsung dapat melakukan pengucapan dalam waktu 1 detik. Tombol “RESET” akan mengembalikan program dalam keadaan semula sebelum dilakukan pengaturan. Pengguna dapat menekan tombol “STOP” jika ingin berhenti dan keluar dari program.
3.5.
Perancangan Hardware Mesin Pembuat Minuman Mesin pembuat minuman akan digunakan sebagai aktuator dari proses pengenalan
ucapan pada penelitian ini. Setelah ucapan pengguna dapat dikenali, maka data akan dikirimkan kepada mikrokontroler untuk kemudian diolah menjadi perintah yang menjalankan mesin pembuat minuman. Terdapat 4 buah motor pompa yang masingmasing terhubung dengan wadah cairan yang berbeda. Motor pompa dikendalikan melalui mikrokontroler dengan cara mengaktifkan salah satu PORTB yang telah dihubungkan dengan modul relay untuk mengaktifkan motor. Blok diagram dari mesin pembuat minuman ditunjukan pada gambar 3.17.
Gambar 3.17. Blok Diagram Mesin Pembuat Minuman
3.5.1. Perancangan Mesin Pembuat Minuman Pada gambar 3.17 telah ditunjukan blok diagram mesin pembuat minuman, dimana masing-masing motor pompa terhubung dengan wadah cairan yang berbeda. Setiap motor terhubung dengan salah satu PORTB pada mikrokontroler, sehingga letak wadah cairan harus sesuai dengan urutan yang telah dirancang agar keluaran cairan tidak keliru. Wadah kopi berada di pojok kiri dan terhubung dengan motor pompa 1 yang akan bekerja saat PORTB.0 diaktifkan. Wadah susu berada di sebelah kanan wadah kopi dan terhubung dengan motor pompa 2 yang akan bekerja saat PORTB.1 diaktifkan. Lalu di sebelah kanan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
44
wadah susu terdapat wadah kopi susu yang terhubung dengan motor pompa 3 yang akan bekerja saat PORTB.2 diaktifkan. Wadah yang diletakan di pojok kanan adalah wadah cokelat yang terhubung dengan motor pompa 4 yang akan bekerja saat PORTB.3 diaktifkan. Rancangan fisik dari mesin pembuat minuman ditunjukan pada gambar 3.18.
Gambar 3.18. Rancangan Fisik dan Dimensi Mesin Pembuat Minuman Wadah cairan yang digunakan adalah wadah air yang terbuat dari bahan plastik dengan tinggi 15 cm dan diameter 13 cm. Wadah cairan akan dilubangi dan dipasang kran untuk mengalirkan cairan. Minuman yang digunakan adalah minuman kemasan berbentuk serbuk yang akan disiapkan sesuai dengan petunjuk penyajian, sehingga rasa dan kekentalan dari minuman yang dihasilkan akan sesuai dan konsisten dengan kualitas rasa serta kekentalan cairan yang ditawarkan oleh produsen minuman tersebut. Hasil akhir dari mesin pembuat minuman akan dialirkan menuju gelas dengan volume keluaran ditentukan berdasarkan pengamatan pada mesin-mesin pembuat minuman (vending machine) yang memiliki volume keluaran sebesar 4 oz – 6 oz (118 ml – 177 ml) [29], sehingga diambil nilai tengahnya yaitu 5 oz (150 ml). Sebagai penghubung dari wadah cairan menuju gelas digunakan selang air dengan diameter 0,5 mm dengan panjang menyesuaikan pada saat proses instalasi alat. Sebagai kerangka alat akan digunakan besi siku, dan plastik fiber sebagai cover.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
45
Pada bagian bawah mesin pembuat minuman terdapat kotak kendali yang berisi mikrokontroler, modul relay, dan regulator tegangan sebagai kendali motor pompa dan LCD sebagai penampil informasi perintah yang sedang dijalankan. Lalu terdapat wadah pembuangan cairan yang terhubung dengan tempat keluaran cairan sebagai penampungan jika terdapat cairan yang tumpah, sehingga tidak mengotori dan membahayakan kinerja mesin.
3.5.2. Minimum Sistem ATmega 8535 Mikrokontroler ATmega 8535 pada penelitian ini berfungsi sebagai pengendali dari mesin pembuat minuman serta sebagai pengolah data serial yang dikirimkan dari komputer melalui modul USB to TTL. Dalam pengendaliannya, mikrokontroler diisi dengan program dan instruksi untuk mengaktifkan motor pompa sesuai dengan urutan dan waktu aktif tertentu. Agar mikrokontroler dapat diisi program dan menjalankannya, diperlukan rangkaian minimum sistem, yang berfungsi sebagai gerbang input dan output (I/O). Mikrokontroler membutuhkan minimum sistem yang terdiri dari rangkaian eksternal yaitu rangkaian osilator dan rangkaian reset. Untuk rangkaian osilator, digunakan crystal dengan frekuensi sebesar 12 MHz dan menggunakan kapasitor 22 pF
pada pin XTAL1 dan XTAL2 di mikrokontroler.
Rangkaian osilator ini berfungsi sebagai sumber clock bagi mikrokontroler. Pemberian kapasitor bertujuan untuk memperbaiki kestabilan frekuensi yang diberikan oleh osilator eksternal. Gambar 3.19 menunjukan rangkaian osilator.
Gambar 3.19. Rangkaian Osilator ATmega8535 [15] Perancangan rangkaian reset bertujuan untuk memaksa proses kerja pada mikrokontroler dapat diulang dari awal. Saat tombol reset ditekan maka mikrokontroler mendapat input logika rendah, sehingga akan me-reset seluruh proses yang sedang dilakukan mikrokontroler. Rangkaian reset untuk ATmega8535 ditunjukan oleh gambar 3.20.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
46
Gambar 3.20. Rangkaian Reset ATmega8535 [15] Pada gambar 3.21. terdapat resistor yang memiliki resistansi sebesar 4,7 KΩ yang difungsikan sebagai pull up. Resistor pull-up eksternal dapat digunakan untuk menjaga agar pin RESET tidak berlogika 0 secara tidak disengaja. Kapasitor 10nF yang disusun serial dengan resistor digunakan untuk menghilangkan noise. Rangkaian reset minimum sistem ATmega8535 merupakan gabungan dari rangkaian push-button dan low-pass filter.
3.5.3. Rangkaian dan Konfigurasi LCD 16×2 LCD digunakan untuk menampilkan informasi perintah yang sedang dieksekusi oleh mesin agar pengguna dapat melihat apakah mesin telah melakukan perintah yang sesuai. LCD diprogram untuk menampilkan kata yang dikenali dan menampilkan kondisi mesin yang sedang siaga atau sedang membuat minuman sesuai kata yang dikenali. Rangkaian LCD berfungsi untuk mempermudah menghubungkan pin LCD dengan mikrokontroler, karena tidak semua pin di LCD akan dihubungkan dengan mikrokontroler. Rangkaian ini juga berfungsi sebagai pembagi tegangan masukan LCD untuk mengatur kecerahan LCD. Rangkaiannya dapat dilihat pada gambar 3.21. Penentuan konfigurasi kaki LCD menuju mikrokontroler ditentukan dengan melihat pada software compiler CodeVisionAVR seperti pada gambar 3.22. Penentuan konfigurasi ini berfungsi untuk menyetel PORT yang digunakan sebagai keluaran untuk LCD dari mikrokontroler. Pada penelitian ini, pin yang digunakan adalah PORT C pada mikrokontroler.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 3.21. Skematik LCD 16x2
47
Gambar 3.22. Setting Port LCD
3.5.4. Motor Pompa Pada penelitian ini, motor pompa yang digunakan adalah BOSCH washer pump 12Vdc. BOSCH washer pump dipilih karena penggunaanya mudah dan daya tahan terhadap lingkungan yang kuat, serta harganya yang relatif murah dan mudah didapatkan. Motor pompa digunakan sebagai pendorong cairan dari wadah cairan. Masing-masing wadah cairan diberikan kran sebagai pengunci cairan jika pengguna hendak menambahkan cairan dan memindahkan wadah cairan. Pada motor pompa terdapat lubang masukan yang ukurannya lebih besar dari lubang keluaran. Lubang masukan dihubungkan dengan kran wadah cairan menggunakan selang dengan diameter 1/2 inchi, dan pada lubang keluaran dihubungkan dengan selang berdiameter 5 mm. Rancangan pemasangn motor pompa dengan kran ditunjukan gambar 3.23.
Gambar 3.23. Konstruksi Motor Pompa Sebagai Pendorong Cairan Motor pompa dikendalikan melalui PORTB pada mikrokontroler yang terhubung dengan modul relay. Masukan motor pompa dihubungkan dengan modul relay 4 pin yang telah disambungkan dengan regulator sebagai catu daya, yang masing-masing akan mengaktifkan motor saat mikrokontroler memberikan nilai tinggi kepada modul relay.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
48
3.5.5. Regulator IC 7812 dan Penguat Arus Pada perancangan tahap ini, regulator digunakan sebagai pemberi daya pada motor pompa. Regulator terdiri dari IC 7812, 2N3055, kapasitor, led, dan dioda. Sumber yang digunakan untuk regulator yaitu menggunakan adaptor yang telah tersedia di pasaran dengan spesifikasi keluaran tegangan 16Vdc dan arus 2A. Untuk memberi daya pada motor pompa dibutuhkan arus sebesar 1,5A. Dengan demikian maka digunakan transistor 2N3055 agar arus keluaran IC 7812 yang memiliki tegangan keluaran sebesar 12 volt menjadi lebih besar. Tegangan 12 volt merupakan tegangan kerja pada masing-masing motor pompa yaitu ± 11 volt – 13,2 volt. Rangkaian regulator 7812 dtunjukan pada gambar 3.24.
Gambar 3.24. Rangkaian Regulator 7812 Dengan Penguatan Arus
3.6.
Perancangan Program Mesin Pembuat Minuman Pada tahap perancangan ini, program mesin pembuat minuman dibuat dengan
tujuan untuk mengatur waktu aktif motor pompa agar dapat mengalirkan cairan sesuai hasil pengenalan sebayak 150 ml ke dalam gelas saji. PORTB pada mikrokontroler digunakan untuk mengaktifkan masing-masing motor. Keluaran dari PORTB dimasukan ke modul relay yang telah terhubung dengan catu daya 12Vdc dan motor pompa. Saat data pengenalan ucapan diterima mikrokontroler, akan dilakukan pemeriksaan data serial yang masuk dengan logika if-else, lalu setelah dipastikan data tersebut, akan dijalankan perintah untuk mengaktifkan motor pompa sesuai urutan. Tabel 3.3. menunjukan perintah pengaktifan motor untuk tiap data yang diterima. Pemberian nilai n-detik pada motor pompa diperoleh dengan uji coba pada alat. Uji coba yang dilakukan adalah melakukan percobaan pengisian gelas 150 ml dengan kombinasi waktu aktif motor. Percobaan akan dilakukan beberapa kali untuk masingmasing cairan, lalu diambil nilai waktu aktif yang mencukupi untuk mengisi gelas
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
49
sebanyak 150 ml. Tabel 3.3. dan gambar 3.25. menunjukan perintah dan flowchart program mesin pembuat minuman. Tabel 3.3. Data Yang Diterima dan Urutan Perintah Data Serial Representasi Data 1 KOPI 2 SUSU 3 KOPI SUSU 4 COKELAT
Perintah Aktifkan motor 1 ( PORTB.0) selama n1 detik Aktifkan motor 2 ( PORTB.1) selama n2 detik Aktifkan motor 3 ( PORTB.2) selama n3 detik Aktifkan motor 4 ( PORTB.3) selama n4 detik
Gambar 3.25. Flowchart Rancangan Program Mesin Pembuat Minuman Mesin pembuat minuman akan menampilkan indikasi siaga melalui LCD, dan akan mulai melakukan pemeriksaan data komunikasi yang masuk. Saat data komunikasi telah diterima, mikrokontroler akan memeriksa data apakah yang masuk untuk menentukan perintah selanjutnya. Urutan perintah seperti pada tabel 3.3. akan dilakukan sesuai hasil pemeriksaan data. Saat perintah selesai dijalankan, mesin akan kembali ke kondisi siaga dan menunggu data komunikasi masuk.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB IV HASIL DAN PEMBAHASAN Bab ini akan membahas hasil dan analisis dari implementasi perancangan yang telah dibuat pada bab 3 dan pengujian sistem yang telah dilakukan. Pengujian sistem dilakukan untuk mengetahui kinerja dari keseluruhan sistem baik pada hardware maupun software. Hasil dari pengujian berupa data-data yang akan dianalisis agar dapat mengetahui kinerja sistem yang telah dijalankan baik atau tidak. Berdasarkan analisa tersebut, akan diketahui kemampuan sistem dan pengembangan apakah yang perlu dilakukan.
4.1 Implementasi Program Pengenalan Ucapan Menggunakan GUI Matlab Pada implementasi pengenalan ucapan digunakan GUI Matlab yang bertujuan untuk mempermudah
pengguna dalam
menjalankan aplikasi pengenalan ucapan.
Pengujian program pengenalan ucapan dilakukan menggunakan komputer dengan spesifikasi processor intel CORE i3, RAM 2 GB, operation system Windows 7 (32bit). Komponen yang terdapat pada user interface berfungsi sebagai penampil informasi, masukan nilai variabel, eksekusi program, dan hasil keluaran dari program pengenalan ucapan. Desain dan komponen yang digunakan dalam pembuatan GUI Matlab mengacu pada bab perancangan, subbab 3.4. Hasil pembuatan GUI ditunjukan pada Gambar 4.1.
Gambar 4.1. Tampilan GUI Matlab Untuk Mesin Pembuat Minuman
50
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
51
Pada GUI Matlab untuk mesin pembuat minuman terdapat komponen-komponen berupa push button, pop up menu, static text, edit text, axes, dan panel. Push button digunakan untuk mengekseskusi program, pop-up menu berfungsi sebagai penampil nilai variabel dan pilihan pengguna yang akan dipilih oleh pengguna, static text menampilkan informasi yang menunjukan fungsi yang ada, sementara axes dan edit text menampilkan informasi hasil dari eksekusi program. Terdapat keterangan singkat cara penggunaan program yang ditampilkan pada panel di sebelah kiri bawah. Pengguna terlebih dahulu melakukan inisialisasi dengan memilih nama pengguna, dan memilih nilai variabel kNN dan lebar segment averaging. Setelah itu program dapat dijalankan dengan menekan tombol UCAP. Tombol RESET berfungsi untuk menyetel ulang program ke kondisi awal. Hasil dari eksekusi program setelah menekan tombol UCAP akan ditampilkan pada plot ucapan yang masih berupa sinyal ucapan awal yang belum diolah, dan plot ekstraksi ciri yang merupakan sinyal ucapan yang telah diolah dalam program. Hasil akhir dari pengenalan ucapan akan ditampilkan pada edit text di sebelah kanan bawah, yang akan menunjukan ucapan yang telah dikenali. Untuk keluar dari program pengenalan ucapan, pengguna dapat menekan tombol STOP. Penjelasan tentang program pengenalan ucapan akan dijabarkan sesuai dengan urutan diagram alur pada bab 3, gambar 3.3.
4.1.1 Panel Inisialisasi
Gambar 4.2. Panel Inisialisasi pada GUI Matlab Untuk Mesin Pembuat Minuman Panel ini berisi nama pengguna yaitu EVAN, FIAN, dan KRIS. Selain itu terdapat pilihan COM PORT untuk jalur komunikasi dan variasi nilai variabel yang digunakan dalam mengolah sinyal ucapan yang diterima, yaitu nilai k pada kNN dan nilai dari segment averaging. Program inisialisasi untuk menentukan nilai variabel yang akan digunakan dituliskan sebagai berikut:
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
52
%proses inisialisasi varpgn=handles.pgn; vark=handles.u; varse=handles.seg; komunikasi=serial(handles.PORT); set(komunikasi,'BaudRate',9600,'DataBits',8,'parity','none','StopB its',1,'FlowControl','none'); %penentuan nilai basis data switch pengguna case 2 pengguna=1; case 3 pengguna=2; case 4 pengguna=3; end handles.pgn=pengguna; %penentuan nilai k switch nilaik case 2 kn=1; case 3 kn=3; case 4 kn=5; case 5 kn=7; end handles.nilk=kn; %penentuan segment averaging switch segave case 2 segment=8; case 3 segment=16; case 4 segment=32; case 5 segment=64; end handles.seg=segment; %penentuan COM PORT untuk komunikasi switch pilihcom case 1 handles.PORT='COM1'; case 2 handles.PORT='COM2'; case 3 handles.PORT='COM3'; case 4 handles.PORT='COM4'; case 5 handles.PORT='COM5';
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
53
case 6 handles.PORT='COM6'; case 7 handles.PORT='COM7'; case 8 handles.PORT='COM8'; case 9 handles.PORT='COM9'; case 10 handles.PORT='COM10'; case 11 handles.PORT='COM11'; case 12 handles.PORT='COM12'; case 13 handles.PORT='COM13'; case 14 handles.PORT='COM14'; case 15 handles.PORT='COM15'; end guidata(hObject,handles);
Proses inisialisasi dilakukan dengan mendeklarasikan nilai data dari hasil pemilihan pop-up menu pada panel inisialisasi, yang dibagi menjadi 4 bagian yaitu pemilihan pengguna, nilai k pada kNN , nilai segment averaging, dan COM PORT untuk jalur komunikasi. Setelah data inisialisasi dideklarasikan, lalu dilakukan proses untuk menentukan nilai basis data mana yang akan digunakan dengan fungsi switch-case, lalu nilai data pada variabel dijadikan sebagai acuan dalam switch.
4.1.2 Tombol UCAP Tombol UCAP merupakan tombol yang berfungsi melakukan pengenalan ucapan mulai dari inisialisasi perekaman (sampling), preemphasis, normalisasi, pemotongan sinyal, zero padding, framing windowing, ektraksi ciri, perhitungan similaritas, penentuan hasil keluaran pada GUI dan pengiriman data serial menuju mikrokontroler. Tombol rekam pada tampilan GUI menggunakan push button yang digunakan untuk memulai program pengenalan ucapan. Keluaran dari perintah yang dilaksanakan ditampilkan melalui plot ekstraksi ciri dan edit text yang menampilkan kata yang dikenali oleh program. Program untuk proses sampling pengenalan ucapan dibuat sesuai perancangan diagram alur pada gambar 3.4. Penulisan program untuk melakukan perekaman sebagai berikut. % sampling real time panjang_sampel=1; frekuensi_sampel=6000;
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
54
waktu_sampel=(panjang_sampel*frekuensi_sampel); x=wavrecord(waktu_sampel, frekuensi_sampel); wavwrite(x, waktu_sampel, 'sementara.wav'); axes(handles.axes1) plot(x); xlabel('Time(s)'); ylabel('Amplitude'),... title('INPUT UCAPAN'); x=wavread('sementara.wav'); %sample disimpan sementara
Durasi waktu yang digunakan pada proses rekam suara adalah 1 detik dengan frekuensi sampling 6000 Hz (L1). Proses perekaman menggunakan bantuan fungsi yaitu “wavrecord”. Struktur penulisan untuk fungsi ini yaitu “wavrecord(n,fs)”. Nilai “n” merupakan jumlah data yang ingin dicuplik sedangkan “fs” merupakan frekuensi sampling. Nilai frekuensi sampling yang digunakan yaitu 6000 Hz, maka agar pencuplikan terjadi selama 1 detik nilai data tercuplik sebanyak 6000. Data hasil rekaman tersebut kemudian ditampilkan dalam bentuk grafik dengan menggunakan fungsi “plot”. Fungsi “axes(handles.axes1)” digunakan untuk memilih axis yang akan digunakan sebagai tempat penampil grafik sinyal ucapan, maka dituliskan sebelum fungsi “plot(x)”. Fungsi “xlabel”, “ylabel”, dan “title” digunakan untuk memberikan keterangan pada grafik sumbu x dan y, serta memberi judul grafik. Program untuk tahap preprocessing dilakukan agar masukan data sinyal ucapan dapat diolah terlebih dahulu sebelum dilakukan proses ekstraksi. Program preprocessing terdiri dari 4 bagian yaitu pre emphasis, normalisasi, pemotongan sinyal dan zero padding. Program preprocessing dituliskan sebagai berikut: % preprocessing % 1.pre emphasis varsegave=handles.seg; varknn=handles.nilk; varpgn=handles.pgn; btsptg=0.3; x0=x; ukrsin=2048; alpha=0.95; for k=2:length(x0) x0(k)=x0(k)-alpha*(x0(k-1)); end % 2.normalisasi x1=x0/max(abs(x0)); % 3.peomotngan sinyal % 3a.potong kiri sinyal b1=find(x1>btsptg | x1<-btsptg); x1(1:b1(1))=[]; % 3b.potong kanan sinyal x2=fliplr(x1'); b2=find(x2>btsptg | x2<-btsptg);
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
55
x2(1:b2(1))=[]; x2=fliplr(x2); % 4. zerro padding x2(ukrsin)=0; x3=x2(1:ukrsin);
Proses pre emphasis merupakan proses awal dimana sinyal masukan akan diperbaruai nilainya dari sebelumnya. Nilai pre emphasis menggunakan fungsi for dan dimulai dari 2 dimana jika dimulai dari 1 tidak terdapat nilai sebelumnya. Proses perhitungan pre emphasis sesuai pada perancangan dengan nilai alpha sebesar 0.95. Proses pre emphasis mengacu pada diagram alur yang telah dirancang pada gambar 3.5. Proses normalisasi melakukan perubahaan skala pada data dengan memasukan rumus sesuai pada perancangan. Terdapat fungsi Matlab untuk memudahkan program yakni “max” untuk mencari nilai tertinggi dan “abs” untuk mengubah semua data menjadi mutlak atau bernilai positif. Proses normalisasi mengacu pada perancangan diagram alur yang telah dirancang pada gambar 3.6. Proses pemotongan sinyal dimulai dengan mencari data yang akan dihilangkan dengan bantuan fungsi pada Matlab yaitu “find”. Nilai data yang dicari berada pada kondisi lebih besar dari batas potong atau lebih kecil dari negatif batas potong. Hasil dari fungsi “find” tidak menampilkan nilai datanya melainkan menampilkan nomor urutan datanya. Data urutan pertama dari fungsi “find” menjadi batas akhir pemotongan data, sehingga data hasil normalisasi akan dihilangkan dari awal hingga data tersebut. Pemotongan tersebut terjadi pada sisi awal, agar data sisi akhir dapat dihilangkan maka urutan data harus dibalik terlebih dahulu menggunakan fungsi “fliplr”. Langkah pemotongan sinyal tersebut sama seperti pemotongan sisi awal, setelah dihilangkan maka urutan dikembalikan seperti semula dengan fungsi “fliplr”. Fungsi “fliplr” merupakan membalikan sinyal dari sisi kiri menjadi kanan dan sebaliknya. Proses pemotongan sinyal mengacu pada perancangan diagram alur yang telah dirancang pada gambar 3.7. Proses zero padding dilakukan dengan menambahkan dengan deretan nilai data “0” setelah data hasil pemotongan sinyal. Terdapat pendeklarasian variabel “usig” yang merupakan ukuran deretan data dengan nilainya sebanyak 2048 sesuai perancangan. Program penambahan deretan “0” hingga data ke 2048 dituliskan “x2(usig)=0”. Variabel “x2” merupakan data hasil pemotongan sinyal yang sebelumnya telah dideklarasikan, maka “x2(usig)=0” yaitu data ke 2048 pada deretan nilai variabel „x2” diberi nilai 0. Proses zero padding mengacu pada perancangan diagram alur yang telah dirancang pada gambar 3.8.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
56
Setelah proses preprocessing dilanjutkan dengan proses framing dan windowing sebelum masuk pada tahap proses ektraksi ciri. Program framing dan windowing dituliskan sebagai berikut: % segmentasi dan windowing memakai hamming pjgseg=512; overlapseg=128; hmm=hamming(pjgseg); n=1;k=1; while n==1 pjgx0=length(x3); if pjgx0>=pjgseg xseg=x3(1:pjgseg); % segmentasi xseg=xseg.*hmm'; % proses windowing segmtx(:,k)=xseg; % hasil windowing x3(1:pjgseg-overlapseg)=[]; % potong selisih windowing k=k+1; elseif pjgx0==0 n=0; else x3(pjgseg)=0; % penyesuaian panjang segment xseg=x3.*hmm'; % proses windowing segmtx(:,k)=xseg; % hasil windowing n=0; end end
Pada tahap proses framing dan windowing dibutuhkan pendeklarasian nilai panjang frame[10]dan nilai overlap[5]. Proses framing menggunakan perintah while, dimana mencari kesamaan data dengan panjang frame. Dalam proses framing terdapat proses windowing yang berfungsi untuk membuat pola pada sinyal. Hasil dari zero padding akan dibandingan antara panjang sinyal data dengan panjang frame. Jika data lebih besar dari panjang frame, proses windowing hamming akan dikurangi dengan nilai overlap pada pendeklarasian sebesar 128. Jika data lebih kecil dari panjang frame, akan ditambahkan 0 sesuai panjang frame. Pada proses windowing yang terdapat pada framing menggunakan jenis jendela hamming. Pada Matlab telah terdapat fungsi untuk menggunakan jendela hamming dengan formula penulisan”hamming(L)”. Variabel “L” merupakan banyaknya deretan data yang akan diproses. Penulisan program yang dipakai untuk menentukan pola hamming ditulis “hamming(pjseg)”. Hasil windowing hamming ini akan digunakan di dalam proses framing. Proses framing dan windowing mengacu pada perancangan diagram alur yang telah dirancang pada gambar 3.9. Proses ektraksi ciri terdapat 2 bagian, yaitu transformasi menggunakan DFT dan segment averaging. Program ektraksi ciri dituliskan sebagai berikut: % ektraksi ciri DFT
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
57
[roww,columnn]=size (segmtx); for k=1:columnn hsldft=abs(fx_dft(segmtx(:,k))); x4(:,k)=hsldft(:); end x4=x4(:); % ubah ke matriks kolom x4=x4(1:length(x4)/2,:); % segment averaging x5=reshape(x4,varsegave,[]); x5=mean(x5); x=x5(:); axes(handles.axes2) % plot hasil ekstraksi ciri bar(x); xlabel('Data'); ylabel('Value'),...
Pada ektraksi ciri, pemanggilan fungsi DFT menggunakan fungsi eksternal dimana program dibuat terpisah dari program inti. Hal ini dilakukan untuk menghindari pengulangan perhitungan DFT di dalam program inti agar respon program keseluruhan dapat lebih cepat. Fungsi untuk perhitungan DFT dibuat mengacu pada rumus 2.5. dan dituliskan sebagai berikut: function y=fx_dft(x) % Perhitungan DFT % Hitung panjang x N=length(x); % Hitung DFT y=zeros(1,N); for k=1:N for n=1:N w=exp(-1i*2*pi*(k-1)*(n-1)/N); a=x(n)*w; y(k)=y(k)+a; end end
Proses transformasi dilakukan dengan memanggil fungsi yang sudah dibuat pada M-file dengan nama fungsi fx_dft , kemudian nilai datanya diabsolutkan dengan bantuan fungsi “abs” pada Matlab. Pada fungsi ekternal DFT mengacu pada persamaan 2.5 dengan indeks n pada persamaan dimulai dari 1 dikarenakan pada Matlab tidak mengenal indeks 0 [28]. Proses transformasi tersebut dilanjutkan dengan mengambil setengan bagian kiri sinyal
data
dengan
program
yang
ditulis
“x4=x4(1:length(x4)/2,:)”.
Fungsi
“length”merupakan fungsi untuk mencari banyaknnya deretan data, sehingga fungsi “length(x4) akan mencari banyaknya deretan data pada variabel x4. Variabel “x4” merupakan hasil dari transformasi DFT. Program mengacu pada perancangan diagram alur yang telah dirancang pada gambar 3.10.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
58
Proses segment averaging dilakukan dengan menggunakan fungsi pada matlab yaitu “reshape( x4,varsegment,[ ] )”. Nilai “x4” merupakan data hasil ektraksi ciri segment averaging. Sedangkan nilai “varse” merupakan lebar segment averaging data. Data hasil segment averaging tersebut akan ditampilkan dalam bentuk grafik dengan menggunakan fungsi “bar”. Fungsi “bar” merupakan fungsi untuk membentuk grafik dengan indikator berbentuk batang sesuai panjang data. Fungsi “axes(handles.axes2)” digunakan untuk memilih axis pada kolom plot ekstraksi sebagai media untuk menampilkan informasi dalam grafik. Program mengacu pada perancangan diagram alur yang telah dirancang pada gambar 3.11. Proses selanjutnya adalah pengenalan pola yang dilakukan dengan cara membandingkan nilai similaritas data masukan terhadap database. Hasil proses pengenalan pola terbaik adalah data yang mempunyai nilai similaritas terbesar. Proses pembuatan database juga melalui pengolahan hingga tahap ini, namun berhenti pada perhitungan similaritas. Program pembuatan database mengacu pada lampiran (L9). Proses setelah pengambaran sinyal ucapan adalah proses pemanggilan database yang telah disesuaiakan dengan variasi segment averaging. Program pemanggilan database menggunakan logika “if -else” agar database yang akan digunakan untuk membandingkan masukan secara realtime mempunyai kesamaan dengan nilai variasi yang telah dipilih sebelumnya oleh pengguna pada inisialisasi. Program pemanggilan database ditulis sebagai berikut: % pemanggilan database if (varpgn==1)&&(varsegave==8) load evandb1sa8; elseif (varpgn==1)&&(varsegave==16) load evandb1sa16; elseif (varpgn==1)&&(varsegave==32) load evandb1sa32; elseif (varpgn==1)&&(varsegave==64) load evandb1sa64; elseif (varpgn==2)&&(varsegave==8) load fiandb1sa8; elseif (varpgn==2)&&(varsegave==16) load fiandb1sa16; elseif (varpgn==2)&&(varsegave==32) load fiandb1sa32; elseif (varpgn==2)&&(varsegave==64) load fiandb1sa64; elseif (varpgn==3)&&(varsegave==8) load krisdb1sa8; elseif (varpgn==3)&&(varsegave==16) load krisdb1sa16;
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
59
elseif (varpgn==3)&&(varsegave==32) load krisdb1sa32; elseif (varpgn==3)&&(varsegave==64) load krisdb1sa64; end
Proses selanjutnya adalah membandingkan database dengan data masukan dari pengguna secara real time. Perbandingan database dan masukan sinyal tersebut menggunakan perhitungan similaritas dice. Program perhitungan similaritas sebagai berikut : for n=1:4 similaritas(n)=similaritas_dice(x,z(:,n)) end
Pada perhitungan similaritas dice, dilakukan pemanggilan fungsi ekternal dimana program perhitungan similaritas berada di luar program inti. Pemanggilan fungsi dengan memanggil fungsi “similaritas_dice”. Hal ini dilakukan untuk menghindari pengulangan perhitungan similaritas di dalam program inti agar respon program keseluruhan dapat lebih cepat. Fungsi untuk perhitungan similaritas dibuat mengacu pada rumus 2.5. serta diagram alur pada gambar 3.12. Program perhitungan similaritas dituliskan sebagai berikut : function z=similaritas_dice(x,y) sx=size(x); sy=size(y); z=(2*(sum(x.*y)))/((sum(x.^2))+(sum(y.^2)));
Setelah didapatkan nilai perhitungan similaritas dice, tahap selanjutnya adalah proses penentuan keluaran. Program penentuan keluaran berfungsi untuk menentukan apakah ucapan terdeteksi sebagai ucapan atau dikenali secara “error”. Program penentuan keluaran mengacu pada gambar 3.13. Program penentuan keluaran sebagai berikut: %knn k=varknn; % k pada knn jmlsmpl=1; % jumlah sampel per kelas [s1,s2]=sort(similaritas,'descend');% shortir menurun (fungsi similaritas) similaritasdice=sort(similaritas,'descend'); kelaskcl=s1(1:k); % k (jarak tekecil)atau(similaritas terbesar) kelasdkt=s2(1:k); % k kelas terdekat tntkelas=ceil(kelasdkt/jmlsmpl); % penentuan kelas-kelas yang terpilih kelasout=mode(tntkelas); % pilih kelas yang paling sering muncul idxklsout=find(tntkelas==kelasout); kpilih=kelaskcl(idxklsout); fkpilih=fliplr(kpilih); thrshld=fkpilih(1)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI if (varpgn==1)&&(kelasout == 1)&&(thrshld>0.6041) keluarout = {'KOPI'}; datakom = '1'; elseif (varpgn==1)&&(kelasout == 1)&&(thrshld<= 0.6041) keluarout = {'ERROR'}; datakom = '5'; elseif (varpgn==2)&&(kelasout == 1)&&(thrshld<= 0.6063) keluarout = {'KOPI'}; datakom = '1'; elseif (varpgn==2)&&(kelasout == 1)&&(thrshld<= 0.6063) keluarout = {'ERROR'}; datakom = '5'; elseif (varpgn==3)&&(kelasout == 1)&&(thrshld<= 0.8310) keluarout = {'KOPI'}; datakom = '1'; elseif (varpgn==3)&&(kelasout == 1)&&(thrshld<= 0.8310) keluarout = {'ERROR'}; datakom = '5'; end if (varpgn==1)&&(kelasout == 2)&&(thrshld>0.5401) keluarout = {'SUSU'}; datakom = '2'; elseif (varpgn==1)&&(kelasout == 2)&&(thrshld<= 0.5401) keluarout = {'ERROR'}; datakom = '5'; elseif (varpgn==2)&&(kelasout == 2)&&(thrshld<= 0.5637) keluarout = {'SUSU'}; datakom = '2'; elseif (varpgn==2)&&(kelasout == 2)&&(thrshld<= 0.5637) keluarout = {'ERROR'}; datakom = '5'; elseif (varpgn==3)&&(kelasout == 2)&&(thrshld<= 0.5328) keluarout = {'SUSU'}; datakom = '2'; elseif (varpgn==3)&&(kelasout == 2)&&(thrshld<= 0.5328) keluarout = {'ERROR'}; datakom = '5'; end if (varpgn==1)&&(kelasout == 3)&&(thrshld>0.5401) keluarout = {'KOPSUS'}; datakom = '3'; elseif (varpgn==1)&&(kelasout == 3)&&(thrshld<= 0.5401) keluarout = {'ERROR'}; datakom = '5'; elseif (varpgn==2)&&(kelasout == 3)&&(thrshld<= 0.5637) keluarout = {'KOPSUS'}; datakom = '3'; elseif (varpgn==2)&&(kelasout == 3)&&(thrshld<= 0.5637) keluarout = {'ERROR'}; datakom = '5'; elseif (varpgn==3)&&(kelasout == 3)&&(thrshld<= 0.5328) keluarout = {'KOPSUS'}; datakom = '3'; elseif (varpgn==3)&&(kelasout == 3)&&(thrshld<= 0.5328)
60
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
61
keluarout = {'ERROR'}; datakom = '5'; end if (varpgn==1)&&(kelasout == 4)&&(thrshld>0.5401) keluarout = {'COKELAT'}; datakom = '4'; elseif (varpgn==1)&&(kelasout == 4)&&(thrshld<= 0.5401) keluarout = {'ERROR'}; datakom = '5'; elseif (varpgn==2)&&(kelasout == 4)&&(thrshld<= 0.5637) keluarout = {'COKELAT'}; datakom = '4'; elseif (varpgn==2)&&(kelasout == 4)&&(thrshld<= 0.5637) keluarout = {'ERROR'}; datakom = '5'; elseif (varpgn==3)&&(kelasout == 4)&&(thrshld<= 0.5328) keluarout = {'COKELAT'}; datakom = '4'; elseif (varpgn==3)&&(kelasout == 4)&&(thrshld<= 0.5328) keluarout = {'ERROR'}; datakom = '5'; end hasilout=keluarout; set(handles.edit1,'string',hasilout) komunikasi=serial(handles.PORT); set(komunikasi,'BaudRate',9600,'DataBits',8,'parity','none','StopB its',1,'FlowControl','none'); fopen(komunikasi); fprintf(komunikasi,'%c',datakom); fclose(komunikasi); delete(komunikasi); clear komunikasi;
Pada program penentuan keluaran di atas menggunakan metode k-Nearest Neighbor dan untuk mengklasifikasikan ucapan selain yang dirancang untuk dikenali, menggunakan metode thresholding. Variasi kNN menggunakan variabel “varknn”. Pada metode k-Nearest Neigbor bertujuan untuk mengambil kelas terdekat atau tetangga terdekat dari perhitungan similaritasnya. Fungsi “descend” pada program berfungsi untuk mengurutkan nilai similaritas dari yang terbesar sampai yang terkecil.
Metode
thresholding bertujuan untuk menentukan hasil keluaran yang tidak sesuai dengan ucapan pada database dengan penamaan “ ERROR”. Nilai thersholding didapatkan dari nilai batas bawah pada setiap ucapan, dapat dilihat pada lampiran (L30). Penentuan keluaran menggunakan fungsi logika “if-else” dimana melihat beberapa syarat yaitu kelas dan nilai variabel “thrshld”, jika salah satu tidak terpenuhi maka program akan berlanjut ke proses else. Hasil keluaran yang sesuai dengan persyaratan kelas dan nilai thresholding akan di
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
62
tampilkan dengan format “set(handles.edit1,’string’,hasilout)” , dimana hasil keluaran akan ditampilan pada edit text. Hasil penentuan keluaran dibuat sekaligus sebagai pengiriman data untuk komunikasi serial. Pada proses pengiriman serial, pengguna dapat menentukan COM PORT melalui pop-up menu yang telah disediakan. Pengiriman serial menggunakan baudrate sebesar 9600. Pada proses ini, digunakan fungsi “fopen” untuk membuka komunikasi serial antra komputer dengan mikrokontroler, fungsi “fprint” untuk mengirim karakter ke mikrokontroler dan fungsi “fclose” untuk menutup komunikasi serial dengan mikrokontroler. Setiap ucapan direpresentasikan dalam karakter masing masing sesuai perancangan pada tabel 3.1.
4.1.4 Tombol RESET Tombol “RESET” merupakan tombol yang digunakan untuk menyetel program untuk kembali ke pengaturan awal pada program pengenalan ucapan. Tombol “RESET” menggunakan komponen push button pada tampilan GUI. Tombol “RESET” berfungsi untuk membersihkan “ PLOT INPUT UCAPAN”, “PLOT EKTRAKSI CIRI” dan “HASIL PENGENALAN”. Program tombol “RESET” dituliskan sebagai berikut: function pushbuttonreset_Callback(hObject, eventdata, handles) plot(0); axes(handles.axes2); plot(0); set(handles.edit1,'String',' ');
Berdasarkan pengujian program secara real time, tombol “RESET” dapat berjalan sesuai perancangan. Pada program tombol “RESET” jika tombol ditekan maka secara otomatis plot pada axes 1, axes 2 dan edit1 semua akan dibersihkan. Tombol “RESET” menggunakan pushbuttonreset pada GUI Matlab.
4.1.4 Tombol EXIT Tombol “EXIT” berfungsi untuk menutup progam aplikasi pengenalan ucapan. Komponen yang digunakan untuk tombol “EXIT” yaitu pushbuttonexit. Program tombol “EXIT” dituliskan sebagai berikut : function pushbuttonexit_Callback(hObject, eventdata, handles) delete(figure(GUI_PEMBUAT_MINUMAN));
Berdasarkan pengujian, tombol “EXIT” dapat berjalan sesuai perancangan. Ketika tombol “EXIT” ditekan, maka aplikasi pengenalan ucapan dapat ditutup. Fungsi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
63
“delete(figure(GUI_PEMBUAT_MINUMAN))” digunakan untuk menutup GUI Matlab pada aplikasi pengenalan ucapan ini.
4.2
Implementasi Mesin Pembuat Minuman Hasil perancangan mesin pembuat minuman ditunjukan pada gambar 4.4. dan 4.5.
kerangka mesin dibangun menggunakan besi siku berlubang, sehingga memudahkan proses perakitan dengan menggunakan baut. Sebagai cover mesin digunakan plastik fiber yang dibaut pada kerangka. Pada bagian dalam mesin terdapat 4 wadah cairan, 1 kotak pengendali berisi rangkaian elektronik untuk mengendalikan motor dan LCD serta modul komunikasi, 1 kotak power supply 16 volt, 4 buah motor pompa DC 12 volt, dan 1 wadah pembuangan. Wadah cairan yang digunakan berukuran 1,5 liter, masing-masing diberi kran dan selang berdiameter 1/2” untuk menyambungkan dengan motor pompa. Motor pompa diberi selang berdiameter 0,5 mm untuk mengalirkan cairan ke dalam gelas sebanyak 150 ml. Terdapat LCD sebagai penampil informasi perintah yang sedang dijalankan.
Tempat keluaran cairan
LCD
Kabel komunikasi USB to TTL
Gambar 4.4. Bentuk Fisik Mesin Pembuat Minuman (Tampak Luar)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
64
Tempat Keluaran Cairan Wadah Cairan Kopi, Susu, Kopi Susu, dan Cokelat
LCD Motor Pompa 1
Motor Pompa 2
Motor Pompa 3
Motor Pompa 4
Corong
Kotak Kendali
Wadah Pembuangan Cairan
Catu Daya
Gambar 4.5. Bentuk Fisik Mesin Pembuat Minuman (Tampak Dalam)
4.2.1 Sistem Elektronik Sistem elektronik yang digunakan pada mesin pembuat minuman terdiri dari rangkaian regulator dengan penguat arus, minimum sistem, modul
relay, dan LCD.
Bentuk fisik kotak pengendali ditunjukan gambar 4.5.
3 2 1 5 4
Gambar 4.5. Bentuk Fisik Kotak Pengendali Keterangan gambar 4.5: 1. Catu Daya 16Vdc 2. Regulator 12 volt dengan penguat arus
6
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
65
3. Modul relay 4. LCD 5. Minimum sistem ATmega 8535 6. Modul USB to TTL Minimum
sistem
akan
digunakan
sebagai
pengambil
keputusan
untuk
mengaktifkan relay tertentu agar motor pompa dapat aktif sesuai dengan data yang diterima melalui modul USB to TTL.
4.2.2 Program Mesin Pembuat Minuman Mesin pembuat minuman akan bekerja sesuai dengan perintah dari mikrokontroler berdasarkan data yang diterima. Untuk menentukan pekerjaan yang dilakukan mikrokontroler, maka ditanamkan sebuah program yang mengendalikan keputusankeputusan yang akan dieksekusi. Pembuatan program berdasarkan diagram alur yang telah dirancang dan mengacu pada gambar 3.26. Berdasarkan diagram alur, maka diperlukan pengaturan port yang akan digunakan dalam program dan percobaan untuk menentukan lama waktu motor pompa aktif untuk mengeluarkan air sebanyak 150 ml yang dapat dilihat pada lampiran (L8). Pengaturan port serta lama waktu aktif motor dapat dilihat pada tabel 4.1. Tabel 4.1. Tabel Pengaturan Port Mikrokontroler Port Mikrokontroler PORTB.0 PORTB.1 PORTB.2 PORTB.3 PORTC
Kegunaan Mengaktifkan motor 1 (membuat kopi) Mengaktifkan motor 2 (membuat susu) Mengaktifkan motor 3 (membuat kopi susu) Mengaktifkan motor 4 (membuat cokelat) Mengaktifkan LCD 16x2
Waktu Aktif (ms) 6000 6250 6000 5750 -
Terdapat 2 bagian utama dalam program mesin pembuat minuman yaitu pengendalian komunikasi USART dan pengendalian motor pompa. Pengendalian komunikasi USART dilakukan agar komputer yang digunakan untuk mengenali ucapan dapat mengirimkan data hasil pengenalan yang telah direpresentasikan dalam karakter tertentu kepada mikrokontroler untuk diolah menjadi perintah yang dapat menggerakan motor pompa.
4.2.2.1 Program Motor Pompa dan Komunikasi USART Komunikasi dilakukan antara komputer dan mikrokontroler ATmega 8535. Komputer mengirimkan karakter sesuai yang telah ditentukan seperti pada perancangan, dan mikrokontroler akan mengeksekusi perintah sesuai dengan karakter yang diterima.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
66
Program komunikasi USART ditulis sebagai berikut: int b; void komserial() { b=getchar(); }
Pada tahap komunikasi serial, baudrate yang digunakan bernilai 9600bps. Fungsi “getchar()” adalah perintah untuk mikrokontroler agar dapat menerima karakter yang dikirimkan oleh komputer melalui port penerima komunikasi mikrokontroler (PORTD.0). Setelah data diterima mikrokontroler, maka akan dilakukan eksekusi perintah selanjutnya, yang dituliskan sebagai berikut: while (1) { lcd_gotoxy(0,0);lcd_putsf("BEVERAGE MACHINE"); lcd_gotoxy(0,1);lcd_putsf("SIAGA"); komserial(); if(b=='1') { lcd_clear(); lcd_gotoxy(0,1);lcd_putsf("Membuat Kopi");delay_ms(2500); PORTB.0=1;delay_ms(6000); PORTB.0=0; lcd_clear(); lcd_gotoxy(0,0);lcd_putsf("Selesai..Selamat"); lcd_gotoxy(7,1);lcd_putsf("Menikmati");delay_ms(2000); lcd_clear(); } else if (b=='2') { lcd_clear(); lcd_gotoxy(0,1);lcd_putsf("Membuat Susu");delay_ms(2500); PORTB.1=1;delay_ms(6250); PORTB.1=0; lcd_clear(); lcd_gotoxy(0,0);lcd_putsf("Selesai..Selamat"); lcd_gotoxy(7,1);lcd_putsf("Menikmati");delay_ms(2000); lcd_clear(); } else if (b=='3') { lcd_clear(); lcd_gotoxy(0,1);lcd_putsf("Membuat KopiSusu"); delay_ms(2500); PORTB.2=1;delay_ms(6000); PORTB.2=0; lcd_clear(); lcd_gotoxy(0,0);lcd_putsf("Selesai..Selamat"); lcd_gotoxy(7,1);lcd_putsf("Menikmati");delay_ms(2000); lcd_clear(); } else if (b=='4')
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
67
{ lcd_clear(); lcd_gotoxy(0,1);lcd_putsf("Membuat Coklat");delay_ms(2500); PORTB.3=1;delay_ms(5750); PORTB.3=0; lcd_clear(); lcd_gotoxy(0,0);lcd_putsf("Selesai..Selamat"); lcd_gotoxy(7,1);lcd_putsf("Menikmati");delay_ms(2000); lcd_clear(); } else if (b=='5') { lcd_clear(); lcd_gotoxy(0,0);lcd_putsf("ERROR..."); lcd_gotoxy(0,1);lcd_putsf("Coba Lagi");delay_ms(3000); lcd_clear(); } }; }
Program di atas adalah program pengendalian waktu aktif untuk masing-masing motor pompa berdasarkan masukan yang diterima komunikasi USART. Pada saat kondisi siaga, mikrokontroler memerintahkan LCD untuk menampilkan indikasi siaga. Logika ifelse digunakan untuk memindai data yang diterima, lalu masing-masing data akan direpresentasikan sebagai perintah sesuai perancangan pada tabel 3.1. Saat data komunikasi diterima, motor pompa akan aktif sesuai waktu aktif yang telah ditentukan mengggunakan delay untuk menunda eksekusi perintah selanjutnya. Apabila pada saat dilakukan pemindaian tidak ditemukan adanya komunikasi, maka mikrokontroler akan terus menampilkan indikasi siaga.
4.3
Pengujian Tingkat Pengenalan Ucapan Pengujian pengenalan ucapan dilakukan dengan dua cara yaitu secara real time dan
secara tidak real time. Pengujian secara real time dilakukan dengan menggunakan suara masukan yang direkam saat itu juga dan akan langsung dikenali secara langsung pada saat itu. Pengujian secara real time menggunakan parameter hasil pengenalan terbaik pada pengenalan secara tidak real time. Meskipun demikian pengguna bisa memberi variasi nilai parameter sesuai yang diinginkan untuk menguji pengenalan secara real time. Pengujian tidak real time dilakukan dengan memberikan variasi nilai parameter nilai k pada kNN, dan segment averaging. Pengujian secara tidak real time menggunakan masukan dari suara uji yang telah direkam sebelumnya dan dibandingkan dengan database yang telah dibuat
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
68
sebelumnya. Hasil parameter pengujian terbaik secara tidak real time akan digunakan sebagai parameter untuk pengujian pengenakan ucapan secara real time.
4.3.1 Pengujian Pengenalan Ucapan Secara Tidak Real Time Pengujian pengenalan secara tidak real time dilakukan dengan menggunakan rekaman ucapan yang telah disimpan dengan nama yang berbeda dan akan dibandingkan dengan database. Pembentukan database dilakukan dengan memproses ucapan yang juga sebelumnya sudah direkam ke dalam proses preprocessing dan framing windowing. Seperti yang dijelaskan pada flowchart gambar 3.4. sebelum proses ekstraksi ciri. Proses selanjutnya adalah ekstraksi ciri DFT dan segment averaging. Kemudian data hasil pengolahan disimpan pada directory yang sama dengan program untuk dilakukan pengenalan. Program pembentukan database dapat dilihat pada lampiran (L9). Proses yang sama juga dilaksanakan pada ucapan masukan. Proses selanjutnya adalah membandingkan antara database dan hasil ektraksi ciri dari ucapan masukan menggunakan metode similaritas. Pengujian dilakukan dengan 3 pengguna yang berbeda. Tujuan dari pengujian pengenalan ini adalah untuk mengevaluasi variasi jumlah data rekaman ucapan dalam database serta mencari parameter nilai k pada kNN dan nilai segment averaging dengan hasil pengenalan terbaik, lalu nilai-nilai tersebut akan digunakan untuk pengujian program secara real time. Variasi jumlah data rekaman ucapan dalam database yang digunakan adalah 1, 2, 4, dan 8 data setiap ucapan untuk masingmasing pengguna. Jika database yang berisi 1 data rekaman ucapan telah memiliki tingkat pengenalan di atas 90%, maka database tersebut akan digunakan untuk percobaan real time. Masukan data pengenalan secara tidak real time menggunakan sampel sebanyak 120 ucapan dari semua pengguna. Data hasil pengenalan secara tidak real time ditampilkan dalam tabel untuk pengambilan kesimpulan. Program pengujian secara tidak real time dapat dilihat pada lampiran (L11). Berikut merupakan tabel tingkat pengenalan ucapan secara tidak real time. Tabel 4.2. Tingkat Pengenalan (%) Secara Tidak Real Time dengan Database Berisi 8 Data Rekaman Ucapan USER segment averaging 8 16 32 64
1 97,5% 97,5% 97,5% 97,5%
EVAN nilai k pada knn 3 5 97,5% 95,0% 95,0% 95,0% 92,5% 92,5% 90,0% 90,0%
7 95,0% 95,0% 90,0% 85,0%
1 97,5% 97,5% 97,5% 97,5%
FIAN nilai k pada knn 3 5 97,5% 97,5% 97,5% 97,5% 97,5% 97,5% 97,5% 97,5%
7 97,5% 97,5% 97,5% 97,5%
1 97,5% 97,5% 97,5% 97,5%
KRIS nilai k pada knn 3 5 97,5% 92,5% 97,5% 97,5% 97,5% 97,5% 97,5% 97,5%
7 92,5% 97,5% 97,5% 97,5%
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
69
Tabel 4.3. Tingkat Pengenalan (%) Secara Tidak Real Time dengan Database Berisi 4 Data Rekaman Ucapan USER segment averaging 8 16 32 64
1 97,5% 95,0% 90,0% 90,0%
EVAN nilai k pada knn 3 5 95,0% 95,0% 92,5% 90,0% 90,0% 80,0% 82,5% 75,0%
7 80,0% 77,5% 75,0% 67,5%
1 97,5% 97,5% 95,0% 95,0%
FIAN nilai k pada knn 3 5 97,5% 97,5% 97,5% 97,5% 97,5% 92,5% 92,5% 62,5%
7 95,0% 87,5% 85,0% 57,5%
1 97,5% 97,5% 97,5% 97,5%
KRIS nilai k pada knn 3 5 97,5% 97,5% 97,5% 97,5% 97,5% 97,5% 97,5% 92,5%
7 97,5% 97,5% 95,0% 92,5%
Tabel 4.4. Tingkat Pengenalan (%) Secara Tidak Real Time dengan Database Berisi 2 Data Rekaman Ucapan USER segment averaging 8 16 32 64
1 95,0% 95,0% 92,5% 90,0%
EVAN nilai k pada knn 3 5 77,5% 70,0% 77,5% 67,5% 72,5% 42,5% 67,5% 47,5%
7 27,5% 27,5% 37,5% 27,5%
1 97,5% 97,5% 95,0% 90,0%
FIAN nilai k pada knn 3 5 97,5% 50,0% 95,0% 52,5% 97,5% 52,5% 72,5% 52,5%
7 25,0% 25,0% 25,0% 25,0%
1 92,5% 97,5% 97,5% 97,5%
KRIS nilai k pada knn 3 5 95,0% 37,5% 97,5% 35,0% 97,5% 35,0% 97,5% 27,5%
7 25,0% 25,0% 25,0% 25,0%
Tabel 4.5. Tingkat Pengenalan (%) Secara Tidak Real Time dengan Database Berisi 1 Data Rekaman Ucapan USER segment averaging 8 16 32 64
1 95,0% 95,0% 92,5% 87,5%
EVAN nilai k pada knn 3 5 60,0% 50,0% 60,0% 47,5% 55,0% 25,0% 50,0% 25,0%
7 20,0% 20,0% 10,0% 10,0%
1 95,0% 92,5% 87,5% 65,0%
FIAN nilai k pada knn 3 5 57,5% 42,5% 55,0% 42,5% 50,0% 40,0% 50,0% 40,0%
7 25,0% 25,0% 20,0% 10,0%
1 95,0% 95,0% 95,0% 95,0%
KRIS nilai k pada knn 3 5 60,0% 50,0% 60,0% 47,5% 55,0% 25,0% 50,0% 25,0%
7 25,0% 20,0% 20,0% 20,0%
Berdasarkan data-data di atas, dapat diketahui bahwa rata-rata pengenalan ucapan untuk masing-masing pengguna serta kombinasi nilai kNN dan segment averaging sangat tinggi. Berdasarkan pengujian, akan diambil kombinasi nilai kNN dan segment averaging terkecil dengan hasil pengenalan yang tertinggi, karena semakin besar kombinasi nilai kNN dan segment averaging ternyata dapat mengurangi tingkat pengenalan ucapan. Hasil pengenalan ucapan dengan variasi database yang berisi 1, 2, 4, dan 8 data rekaman ucapan telah menunjukan hasil yang optimal. Akan diambil database dengan jumlah data rekaman ucapan yang paling sedikit tetapi berhasil mengenali ucapan dengan baik, karena jumlah data dalam database yang semakin kecil juga berarti semakin efisien program yang digunakan, karena pemrosesan data yang lebih sedikit. Untuk pengujian real time, akan diambil kombinasi nilai segment averaging 8 dan nilai kNN 1 pada database yang berisi 1 data rekaman ucapan untuk pengujian real time, karena dengan kombinasi tersebut program telah dapat mengenali ucapan degan galat terbesar tidak lebih dari 5%. Tingkat pengenalan yang tinggi pada pengujian tidak real
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
70
time dikarenakan data ucapan yang digunakan sebagai masukan dan database telah direkam terlebih dulu, sehingga pola sinyalnya mirip dan tidak berubah-ubah karena telah direkam. Hal ini juga memperkecil kemungkinan gangguan yang tidak diinginkan seperti derau pada saat sampling ucapan masukan untuk pengolahan data. Untuk pengujian real time yang menggunakan variasi yang tersebut akan diambil batas bawah dari nilai similariasnya untuk setiap kata yang diucapkan. Tujuan pengambilan nilai batas bawah adalah untuk penggunaan metode thresholding. Metode thresholding digunakan untuk mengetahui “error” jika kata yang diucapkan bukan ucapan yang akan dikenali. Penulisan program untuk thresholding menggunakan logika “if” dan “elseif”, yaitu jika syarat terpenuhi, maka program tersebut akan mengeksekusi pernyataan di bawahnya, dan jika tidak, maka akan diteruskan ke perintah selanjutnya. Percobaan untuk menentukan nilai thresholding dapat dilihat pada lampiran (L30). Nilai batas bawah thresholding pada setiap ucapan ditunjukan pada tabel 4.6. Tabel 4.6. Batas Bawah Nilai Similaritas USER
NILAI MINIMAL SIMILARITAS UCAPAN KOPI
SUSU
KOPSUS COKELAT
EVAN
0,6654
0,5727
0,5577
0,5512
KRIS
0,6063
0,5637
0,8766
0,5994
FIAN
0,6310
0,5328
0,6466
0,6078
4.3.2 Pengujian Pengenalan Ucapan Secara Real Time Pengujian pengenalan ucapan secara real time dilakukan dengan mengambil sampel ucapan secara langsung dan akan diproses untuk dikenali oleh program saat itu juga. Pengujian dilakukan oleh Penulis dan 2 orang pengguna lainnya yang telah ditentukan. Pengujian dilakukan dengan kombinasi nilai variabel kNN adalah 1 dan segment averaging adalah 8, mengacu pada hasil pengujian tidak real time. Lalu pengguna juga harus memilih COM PORT yang akan digunakan untuk komunikasi. Program dapat dijalankan dengan menekan tombol “UCAP”. Pengujian dilakukan sebanyak 20 kali untuk masing-masing ucapan setiap penggunanya. Pengujian ini dilakukan dengan nilai thresholding dan tanpa nilai thresholding.
4.3.2.1
Pengujian Secara Real Time Tanpa Nilai Thresholding
Pada pengujian ini, program dijalankan tanpa memberikan nilai batas bawah similaritas sebagai thresholding. Pengujian dilakukan sebanyak 80 kali percobaan dengan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
71
masing-masing ucapan 20 kali untuk setiap pengguna. Hasil pengujian ditunjukan oleh tabel 4.7. Tabel 4.7. Confusion Matrik Hasil Pengujian Secara Real Time Tanpa Nilai Thresholding EVAN PENGGUNA PENGENALAN MASUKAN UCAPAN KOPI SUSU KOPSUS COKELAT KOPI 19 1 SUSU 1 17 2 KOPSUS 1 19 COKELAT 1 19 RATA-RATA PERSENTASE PENGENALAN KRIS PENGGUNA PENGENALAN MASUKAN UCAPAN KOPI SUSU KOPSUS COKELAT KOPI 17 3 SUSU 18 2 KOPSUS 2 18 COKELAT 2 18 RATA-RATA PERSENTASE PENGENALAN FIAN PENGGUNA PENGENALAN MASUKAN UCAPAN KOPI SUSU KOPSUS COKELAT KOPI 18 2 SUSU 17 2 1 KOPSUS 1 18 1 COKELAT 2 18 RATA-RATA PERSENTASE PENGENALAN RATA-RATA PERSENTASE PENGENALAN SELURUH PENGGUNA
PERSENTASE PENGENALAN 95,00% 85,00% 95,00% 95,00% 92,50% PERSENTASE PENGENALAN 85,00% 90,00% 90,00% 90,00% 88,75% PERSENTASE PENGENALAN 90,00% 85,00% 90,00% 90,00% 88,75% 90,00%
Berdasarkan hasil pengujian, rata-rata persentase keberhasilan untuk setiap pengguna termasuk tinggi, dengan rata-rata keseluruhan sebesar 90%. Tingkat pengenalan pada pengujian real time mengalami penurunan dibandingkan saat tidak real time, dikarenakan sampling ucapan masukan dilakukan secara langsung bersamaan dengan eksekusi program sehingga akan terdapat pengaruh dari derau, gaung ruangan, serta cara pengucapan yang berubah.
4.3.2.2
Pengujian Secara Real Time Dengan Nilai Thresholding
Pada pengujian secara real time dengan nilai thresholding, program dijalankan dengan memberikan nilai batas bawah similaritas yang mengacu pada tabel 4.6 sebagai nilai thresholding. Pengujian ini dilakukan 2 kali, untuk melihat kemampuan program mengenal ucapan dan kemampuan program menentukan ”error”. Pengujian untuk melihat
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
72
kemampuan program mengenali ucapan dilakukan sebanyak total 240 kali percobaan dengan masing-masing ucapan kopi, susu, kopsus, dan cokelat 20 kali untuk setiap pengguna. Tabel 4.8. menunjukan hasil pengujian untuk masing-masing pengguna. Tabel 4.8. Confusion Matrik Hasil Pengujian Pengenalan Ucapan Secara Real Time Dengan Nilai Thresholding PENGGUNA MASUKAN UCAPAN KOPI SUSU KOPSUS COKELAT PENGGUNA MASUKAN UCAPAN KOPI SUSU KOPSUS COKELAT PENGGUNA MASUKAN UCAPAN KOPI SUSU KOPSUS COKELAT
EVAN PENGENALAN KOPI SUSU KOPSUS COKELAT 17 1 17 1 19 19 RATA-RATA PERSENTASE PENGENALAN KRIS PENGENALAN KOPI SUSU KOPSUS COKELAT 18 18 1 18 1 18 RATA-RATA PERSENTASE PENGENALAN FIAN PENGENALAN KOPI SUSU KOPSUS COKELAT 18 18 1 18 1 17 RATA-RATA PERSENTASE PENGENALAN
ERROR 2 3 1
PERSENTASE PENGENALAN 85,00% 85,00% 95,00% 95,00% 90,00%
ERROR 2 2 1 1
PERSENTASE PENGENALAN 90,00% 90,00% 90,00% 90,00% 90,00%
ERROR 2 1 2 2
PERSENTASE PENGENALAN 90,00% 90,00% 90,00% 85,00% 88,75%
RATA-RATA PERSENTASE PENGENALAN SELURUH PENGGUNA
89,58%
Pengujian selanjutnya untuk melihat kemampuan program mengenali error, yang dilakukan sebanyak 240 kali percobaan, dengan ucapan balok, kubus, bola, dan tabung sebanyak 20 kali untuk tiap ucapan pada setiap pengguna. Hasil pengujian ditunjukan oleh tabel 4.9.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
73
Tabel 4.9. Confusion Matrik Hasil Pengujian Secara Real Time Dengan Nilai Thresholding Untuk Mengenali Error PENGGUNA MASUKAN UCAPAN BALOK KUBUS TABUNG BOLA PENGGUNA MASUKAN UCAPAN BALOK KUBUS TABUNG BOLA PENGGUNA MASUKAN UCAPAN BALOK KUBUS TABUNG BOLA
EVAN PENGENALAN KOPI SUSU KOPSUS COKELAT 2 2 1 2 2 RATA-RATA PERSENTASE PENGENALAN KRIS PENGENALAN KOPI SUSU KOPSUS COKELAT 2 1 3 1 1 RATA-RATA PERSENTASE PENGENALAN FIAN PENGENALAN KOPI SUSU KOPSUS COKELAT 2 3 2 1 RATA-RATA PERSENTASE PENGENALAN
ERROR 18 18 17 18
PERSENTASE PENGENALAN 90,00% 90,00% 85,00% 90,00% 88,75%
ERROR 17 17 19 19
PERSENTASE PENGENALAN 85,00% 85,00% 95,00% 95,00% 90,00%
ERROR 18 17 18 19
PERSENTASE PENGENALAN 90,00% 85,00% 90,00% 95,00% 90,00%
RATA-RATA PERSENTASE PENGENALAN SELURUH PENGGUNA
89,58%
Berdasarkan tabel 4.8. dan tabel 4.9. dapat diketahui bahwa pengenalan ucapan memiliki tinggkat keberhasilan yang tinggi, dengan rata-rata keseluruhan untuk pengenalan ucapan sebesar 89,58% dan untuk mengenali error sebesar 89,58% yang menandakan program dapat bekerja dengan baik. Terjadi penurunan tingkat pengenalan dibandingkan dengan pengujian saat tidak real time, dikarenakan sampling ucapan masukan dilakukan secara langsung bersamaan dengan eksekusi program sehingga akan terdapat pengaruh dari derau, gaung ruangan, serta cara pengucapan yang berubah. Serta terjadi penurunan keberhasilan pengenalan jika dibandingkan dengan pengujian tanpa nilai thresholding, hal ini dapat disebabkan oleh pemberian batas error yang mampu membatasi kelas pengenalan ucapan agar ucapan yang diuji tidak dikenali sebagai ucapan lain, tetapi berakibat ucapan dengan similaritas rendah dikenali sebagai error, sehingga tingkat keberhasilan pengenalan menurun. Tingkat pengenalan untuk setiap pengguna berbeda, hal ini dikarenakan kemampuan pengguna dalam melakukan pengucapan secara konsisten berbeda pula.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 4.4
74
Pengujian Mesin Pembuat Minuman Untuk pengujian mesin pembuat minuman, cairan kopi, kopi susu, dan cokelat yang
digunakan adalah minuman serbuk kemasan yang disajikan sesuai saran penyajian agar rasa dan kekentalan minuman tidak berubah-ubah dan memiliki standar yang sama seperti yang telah ditetapkan produsen minuman tersebut. Sementara cairan susu menggunakan minuman susu cair yang siap saji. Pengujian ini dilakukan untuk mengetahui keberhasilan mesin mengenali perintah dan keberhasilan mesin membuat minuman sebanyak 150 ml. Pengujian untuk masingmasing ucapan dilakukan sebanyak 5 kali. Pengujian ini menggunakan gelas ukur dengan resolusi pengukuran 10 ml, yang akan dianggap sebagai galat pengukuran dan akan dijumlahkan dengan rata-rata galat pengujian untuk mendapatkan persentase keberhasilan. Batas maksimum pengukuran adalah 150 ml, sehingga didapatkan galat pengukuran dari resolusi pengukuran dibagi batas maksimum pengukuran sebesar 6,67%. Hasil pengujian ditunjukan pada tabel 4.10. dan tabel 4.11. Tabel 4.10. Pengujian Pengenalan Komunikasi Percobaan 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Karakter Karakter Yang Dikirim Yang Dikirim 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5
Perintah Membuat kopi Membuat kopi Membuat kopi Membuat kopi Membuat kopi Membuat susu Membuat susu Membuat susu Membuat susu Membuat susu Membuat kopi susu Membuat kopi susu Membuat kopi susu Membuat kopi susu Membuat kopi susu Membuat cokelat Membuat cokelat Membuat cokelat Membuat cokelat Membuat cokelat Menampilkan Error Menampilkan Error Menampilkan Error Menampilkan Error Menampilkan Error
Berdasarkan hasil pengujian, mesin pembuat minuman dapat mengenali dan mengeksekusi seluruh perintah berdasarkan karakter yang dikirim melalui komunikasi serial. Hal ini menandakan program komunikasi telah berjalan dengan baik sesuai
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
75
perancangan. Selanjutnya pengujian keberhasilan mesin membuat minuman ditunjukan pada tabel 4.11. Tabel 4.11. Pengujian Keberhasilan Mesin Membuat Minuman Percobaan
Perintah
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Membuat kopi Membuat kopi Membuat kopi Membuat kopi Membuat kopi Membuat susu Membuat susu Membuat susu Membuat susu Membuat susu Membuat kopi susu Membuat kopi susu Membuat kopi susu Membuat kopi susu Membuat kopi susu Membuat cokelat Membuat cokelat Membuat cokelat Membuat cokelat Membuat cokelat
Keluaran Minuman (ml) 148 154 152 150 148 142 150 152 150 148 150 152 154 154 150 148 154 152 150 148
RATA-RATA GALAT KELUARAN CAIRAN GALAT PENGUKURAN TOTAL GALAT TINGKAT KEBERHASILAN PENGISIAN CAIRAN
Galat (%) 1,33% 2,67% 1,33% 0,00% 1,33% 5,33% 0,00% 1,33% 0,00% 1,33% 0,00% 1,33% 2,67% 2,67% 0,00% 1,33% 2,67% 1,33% 0,00% 1,33% 1,40% 6,67% 8,07% 91,93%
Berdasarkan hasil pengujian didapatkan rata-rata galat untuk keluaran cairan sebesar 1,40% yang dikarenakan pada saat memulai pengisian yang pertama kali, cairan belum sepenuhnya mengisi selang dan terdapat gelembung udara pada kran wadah cairan yang menyebabkan ketidaktepatan pengisian cairan. Perbedaaan level pada wadah cairan yang semakin berkurang setiap dilakukan percobaan, juga mempengaruhi ketepatan pengisian cairan. Tingkat keberhasilan pengisian cairan keluaran sebanyak 150 ml didapatkan dengan menjumlahkan rata-rata galat pengisian cairan sebesar 1,40% dengan galat pengukuran sebesar 6,67% sehingga total galat adalah 8,07% dan tingkat keberhasilannya adalah 91,93%. Dengan tingkat keberhasilan tersebut, diketahui bahwa mesin pembuat minuman telah bekerja dengan baik.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB V KESIMPULAN DAN SARAN 5.1.
Kesimpulan Dari hasil percobaan dan pengujian Aplikasi Pengenalan Ucapan Untuk Mesin
Pembuat Minuman disimpulkan sebagai berikut: 1.
Implementasi dari aplikasi pengenalan ucapan untuk mesin pembuat minuman bekerja dengan baik sesuai perancangan. Sistem dapat mengenali ucapan kopi, susu, kopsus, dan cokelat, kemudian menggerakan motor pompa untuk mengalirkan cairan sebanyak 150 ml sesuai perintah ucapannya.
2.
Pada pengujian pengenalan secara tidak real time, persentase pengenalan terbaik terdapat pada variasi nilai segment averaging 8, nilai kNN 1.
3.
Pada evaluasi penggunaan jumlah data ucapan sebanyak 1, 2, 4, dan 8 untuk database, pengenalan secara tidak real time yang paling baik terdapat pada database yang berisi 1 data sinyal ucapan, dengan persentase keberhasilan sebesar 95%.
4.
Pada pengujian pengenalan secara real time, digunakan database yang berisi 1 data sinyal ucapan, dengan variasi segment averaging 8 dan nilai kNN 1 untuk pengujian menggunakan nilai thresholding dan tanpa nilai threshoding, pengenalan telah bekerja sesuai perancangan dengan tingkat keberhasilan 90% dan
89,58%,
serta pengujian
pengenalan error dengan menggunakan
thresholding sebesar 89,58%. 5.
Mesin pembuat minuman telah bekerja sesuai perancangan untuk mengenali perintah melalui komunikasi serial dan menyajikan minuman kopi, susu, kopi susu, dan cokelat ke dalam gelas saji sebanyak 150 ml untuk masing-masing cairan dengan tingkat keberhasilan sebesar 91,93%.
5.2.
Saran 1.
Pengembangan sistem dengan menambah lebih banyak pengguna sehingga pengenalan ucapan bisa dilakukan oleh banyak orang.
76
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.
77
Sistem pengenalan dapat dikembangkan dengan mikrokontroler yang lebih canggih agar tidak memerlukan media PC/Laptop sebagai pengolahan pengenalan ucapan.
3.
Proses perekaman ucapan masukan dapat dikembangkan secara otomatis agar tidak perlu menekan tombol.
4.
Program dan metode pengenalan dapat lebih dikembangkan agar dapat melakukan pengenalan ucapan dalam kondisi ruangan yang memiliki noise tingi.
5.
Mesin pembuat minuman dapat dikembangkan lagi dengan fitur pemanas otomatis dan sensor level untuk mengisi cairan ke dalam gelas dengan lebih baik.
6.
Komunikasi antara komputer dengan mikrokontroler dapat dikembangkan dengan metode wireless.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Daftar Pustaka [1]
Suryana, D., 2012, Mengenal Teknologi, Andi, Yogyakarta.
[2]
Juang, B. H., & Rabiner, L., 1993, Fundamentals Of Speech Recognition. Signal Processing Series, Prentice Hall, Englewood Cliffs, New Jersey.
[3]
Bayhaki, A., 2011, Penekanan Derau secara Adaptif pada Pengenalan Ucapan Kata, Tugas Akhir Jurusan Teknik Elektro, Fakultas Teknik, Universitas Diponegoro, Semarang.
[4]
Koosarosa, Mario, W., 2015, Aplikasi Pengenalan Ucapan Untuk Pengatur Gerak Robot Mobil Menggunakan Ekstraksi Ciri DCT Dan Similaritas Kosinus, Tugas Akhir Teknik Elektro, Fakultas Sains dan Teknologi Universitas Sanata Dharma, Yogyakarta.
[5]
McLoughlin, Ian., 2009, Apllied Speech And Signal Processing With Matlab Examples, Cambidge University Press, New York.
[6]
Wijayanto, Inung., & Reni, Dwifebrianti., 2009, Jenis Tipe Jangkauan Suara Pada Pria Dan Wanita Menggunakan Metoda Mel-Frequency Cepstral Coefficient Dan Jaringan Syaraf Tiruan Backpropagation, Fakultas Elektro dan Komunikasi, Insitut Teknologi Telkom, Bandung.
[7]
Ronando, Elsen., & Irawan, Isa, M., 2012, Pengenalan Ucapan Kata Sebagai Pengendali Gerakan Robot Lengan Secara Real-Time dengan Metode Linear Predictive Coding – Neuro Fuzzy, Jurusan Matematika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Teknologi Sepuluh Nopember, Surabaya.
[8]
Hakim, L., 2012, Analisa Suara Serak Berbasis Transformasi Wavelet dan Algoritma Jaringan Syaraf Tiruan, Tugas Akhir Jurusan Teknik Elektro, Institut Teknologi Sepuluh Nopember, Surabaya.
[9]
Setiawan, A., Hidayatno, A., & Isnanto, R. R., 2011. Aplikasi Pengenalan Ucapan dengan Ekstraksi Mel-Frequency Cepstrum Coefficients (MFCC) Melalui Jaringan Syaraf Tiruan (JST) Learning Vector Quantization (LVQ) untuk Mengoperasikan Kursor Komputer. Artikel Penelitian, TRANSMISI, 13(3), hal 82-86. 78
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI [10]
79
Theodoridis, Sergios. And Konstantinos Koutroumbas., 2009, Pattern Recognition, 4th ed, Elsevier Inc, Massachusetts 01803, USA.
[11]
Aditya, R., Prototipe Pengenalan Suara Sebagai Penggerak Dinamo Stator Pada Mobil, Fakultas Teknologi Industri, Jurusan Teknik Mesin, Universitas Gunadarma, Depok.
[12]
Cha, S. H., 2007, Comprehensive Survey On Distance/ Similarity Measures Between Probability Density Functions, City, 1(2), 1
[13]
Jain, A. K., Duin, R. P. W., & Mao, J. 2000, Statistical Pattern Recognition: A Review. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 22(1), 4-37.
[14]
Heryanto, M Ary, ST dan Ir. Wisnu Adi P., 2008, Pemograman Bahasa C untuk Mikrokontroler ATMEGA 8535, ANDI Offset, Yogyakarta.
[15]
----, 2011, Data Sheet Microkontroler ATmega8535, Atmel
[16]
Agus Bejo, 2008, C dan AVR Rahasia Kemudahan Bahasa C dalam Mikrokonroler ATMEGA8535, 1st ed, GRAHA ILMU, Yogyakarta.
[17]
Adityarama, R., 2007, Analisis dan Perancangan Sistem Streaming MIDI pada Jaringan pada Titans Creative Learning Center, Doctoral dissertation, BINUS, Jakarta
[18]
Paul A. Tipler., 1998, FISIKA Untuk Sains dan Teknik, edisi 3 jilid 1, Erlangga, Bandung.
[19]
Budiharto, W., 2014, Robotika Modern – Teori dan Implementasi, edisi revisi, Andi, Yogyakarta.
[20]
----, 2010, BOSCH Premium Washer Pumps For Passenger Cars and Light Trucks, Robert Bosch Inc., USA
[21]
Setiawan, A., 2011, 20 Aplikasi Mikrokontroler ATmega8535 dan ATmega16, Andi, Yogyakarta.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI [22]
80
Sharul., 2012, MIKROKONTROLER AVR Atmega8535 Menjelajahi : Prinsipprinsip,Antarmuka, dan Aplikasi Mikrokontroler dengan Assembler (Bahasa Rakitan), Informatika Bandung, Bandung.
[23]
Boylestad, R. and Nashelsky. L., Electronic Devices and Circuit Theory, 7th edition, Prentice Hall, New Jersey Columbus, Ohio.
[24]
Fathoni, Oktober 2010, Unjuk Kerja Catu Daya 12 Volt 2A dengan Pass Element Transistor NPN dan PNP, Jurnal Neutrino, Vol.3, No.1.
[25]
----, Spesifikasi Headset Sades X-Power SA 711 http://www.klikmitra.com/detail/headset-gaming-sades-chopper-sa-711-460.html diakses 20 Otober 2015.
[26]
----, 2002, Data Sheet Transistor 2N3904, KEC.
[27]
----, 1999, Data Sheet Transistor 2N3055, STMicroelectronics.
[28]
----, 2001, Signal Processing Toolbok For Use with MATLAB, The MathWorks, Inc.
[29]
Hendra, Ilvi, 2010, Vending Machine http://www.kopimesin.com/2010/07/vending-machinemesin-vending-sekarang.html diakses 18 November 2015.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L1
LAMPIRAN A PERCOBAAN VARIASI WAKTU SAMPLING Tujuan Percobaan Menentukan lama waktu yang efektif untuk proses sampling, agar kata yang diucapkan dapat tercuplik secara utuh dengan baik. Variabel Percobaan 1. Kata yang diucapkan adalah “kopi”, “susu”, “kopsus”, dan “cokelat”. 2. Frekuensi sampling yang digunakan sebesar 6000Hz. 3. Variasi lama waktu pencuplikan adalah 0,5 detik, 1 detik, dan 1,5 detik. Hasil Percobaan 1. Percobaan pada lama waktu pencuplikan 0,5 detik.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2. Percobaan pada lama waktu pencuplikan 1 detik.
L2
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3. Percobaan pada lama waktu pencuplikan 1,5 detik.
L3
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L4
Analisa Percobaan Berdasarkan hasil percobaan, sinyal masukan pada saat menggunakan waktu pencuplikan 0,5 detik tidak dapat tercuplik secara sempurna karena waktu pencuplikan terlalu singkat. Pada percobaan waktu pencuplikan 1 detik, keseluruhan sinyal masukan dapat tercuplik dengan baik. Pada percobaan waktu pencuplikan 1,5 detik, keseluruhan sinyal masukan dapat tercuplik, tetapi noise yang tidak diinginkan ikut tercuplik karena waktu pencuplikan terlalu lama. Kesimpulan Penggunaan waktu pencuplikan 1 detik efektif pada proses sampling untuk pengucapan kata “kopi”, “susu”, “kopsus”, dan “cokelat”. Sinyal masukan ucapan dapat tercuplik secara utuh dan baik tanpa noise yang berlebihan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN B RANGKAIAN KENDALI MESIN PEMBUAT MINUMAN Rangkaian Minimum Sistem Atmega8535
Rangkaian LCD 16x2
L5
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Rangkaian Regulator IC 7805 dan Penguat Arus
Rangkaian Transistor dan Relay Sebagai Saklar
L6
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN C DATASHEET TRANSISTOR Datasheet Transistor 2N3904 [26]
Datasheet Transistor 2N3055 [27]
L7
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L8
LAMPIRAN D PERCOBAAN MENENTUKAN WAKTU AKTIF MOTOR POMPA Tujuan Percobaan Menentukan lama waktu aktif untuk motor pompa yang sesuai untuk mengisi gelas sebanyak 150ml. Variabel Percobaan 1. Durasi wakti aktif diatur melalui mikrokontroler melalui fungsi delay_ms 2. Cairan yang digunakan dibuat sesuai petunjuk pembuatan. 3. Percobaan dilakukan dengan kelipatan 500 ms. 4. Kelipatan waktu aktif akan diperkecil menjadi 250 ms jika volume keluaran telah mendekati 150 ml. Hasil Percobaan CAIRAN : KOPI DURASI Volume AKTIF (ms) Cairan (ml) 500 30 1000 40 1500 50 2000 60 2500 70 3000 80 3500 90 4000 100 4500 110 5000 120 5500 130 5750 140 6000 150 6250 160 6500 170
CAIRAN : SUSU DURASI Volume AKTIF (ms) Cairan (ml) 500 20 1000 30 1500 40 2000 50 2500 60 3000 70 3500 80 4000 90 4500 100 5000 110 5500 120 5750 130 6000 140 6250 150 6500 160
CAIRAN : KOPI SUSU DURASI Volume AKTIF (ms) Cairan (ml) 500 30 1000 40 1500 50 2000 60 2500 70 3000 80 3500 90 4000 100 4500 110 5000 120 5500 130 5750 140 6000 150 6250 160 6500 170
CAIRAN : COKELAT DURASI Volume AKTIF (ms) Cairan (ml) 500 40 1000 50 1500 60 2000 70 2500 80 3000 90 3500 100 4000 110 4500 120 5000 130 5500 140 5750 150 6000 160 6250 170 6500 180
Kesimpulan Waktu aktif yang akan digunakan adalah: Cairan kopi selama 6000ms, cairan susu selama 6250 ms, cairan kopi susu selama 6000 ms, dan cairan cokelat selama 5750 ms.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L9
LAMPIRAN E PEMBENTUKAN DATABASE Tabel L.1. Nama File Rekaman Untuk Masing-Masing Pengguna
PENGGUNA EVAN KRIS FIAN
KOPI kopi01.wav kopi01.wav kopi01.wav
NAMA FILE WAV SUSU KOPSUS susu01.wav kopsus01.wav susu01.wav kopsus01.wav susu01.wav kopsus01.wav
COKELAT coklat01.wav coklat01.wav coklat01.wav
Pembentukan database hanya berisikan 1 file, karena telah ditentukan menggunakan database 1 untuk pengujian real time. function dbuntukrealtime bataspotong = 0.3; segmentaveraging=8; %disesuaikan dengan kombinasi variabel yg akan dibuat z1=zciri ('kopi',bataspotong,segmentaveraging); z2=zciri ('susu',bataspotong,segmentaveraging); z3=zciri ('kopsus',bataspotong,segmentaveraging); z4=zciri ('coklat',bataspotong,segmentaveraging); z=[z1 z2 z3 z4]; sz=size(z2) save evandb1sa8 z %database user_segmentaveraging %======================================= %INTERNAL FUNCTION %======================================= function z=zciri (fwav,bataspotong,segmentaveraging) x1=wavread([fwav '01.wav']);y=potong(x1,bataspotong);k1=xfft(y,segmentaveraging); z=[k1]; %===================================== function bp=potong(x0,bataspotong) % nilai alpha (referensi: 0.9
bataspotong | x1<-bataspotong); x1(1:b1(1))=[]; % Potong kanan x2=fliplr(x1'); b2=find(x2>bataspotong | x2<-bataspotong);
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L10
x2(1:b2(1))=[]; x2=fliplr(x2); % Penyesuaian ukuran sinyal usig=2048; x2(usig)=0; bp=x2(1:usig); %======================================================================== == function x2=xfft(x0,segmentaveraging) % Framing dan windowing pjseg=512; % panjang frame (referensi: 512) ovlseg=128; % segmen yang overlap: 128 h=hamming(pjseg); n=1;k=1; while n==1 pjx0=length(x0); if pjx0>=pjseg xseg=x0(1:pjseg);
% framing
xseg=xseg.*h'; % proses windowing segmtx(:,k)=xseg; % simpan hasil windowing x0(1:pjseg-ovlseg)=[] ; % potong yang tidak dipakai lagi k=k+1; elseif pjx0
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L11
LAMPIRAN F PENGUJIAN PENGENALAN SECARA TIDAK REAL TIME Tabel L2. Data Rekaman Untuk Masukan Pengujian Tidak RealTime Untuk Setiap Pengguna Rekaman Data Ucapan Rekaman KeKopi Susu Kopsus Coklat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
kopi01.wav kopi02.wav kopi03.wav kopi04.wav kopi05.wav kopi06.wav kopi07.wav kopi08.wav kopi09.wav kopi10.wav kopi11.wav kopi12.wav kopi13.wav kopi14.wav kopi15.wav kopi16.wav kopi17.wav kopi18.wav kopi19.wav kopi20.wav
susu01.wav susu02.wav susu03.wav susu04.wav susu05.wav susu06.wav susu07.wav susu08.wav susu09.wav susu10.wav susu11.wav susu12.wav susu13.wav susu14.wav susu15.wav susu16.wav susu17.wav susu18.wav susu19.wav susu20.wav
kopsus01.wav kopsus02.wav kopsus03.wav kopsus04.wav kopsus05.wav kopsus06.wav kopsus07.wav kopsus08.wav kopsus09.wav kopsus10.wav kopsus11.wav kopsus12.wav kopsus13.wav kopsus14.wav kopsus15.wav kopsus16.wav kopsus17.wav kopsus18.wav kopsus19.wav kopsus20.wav
coklat01.wav coklat02.wav coklat03.wav coklat04.wav coklat05.wav coklat06.wav coklat07.wav coklat08.wav coklat09.wav coklat10.wav coklat11.wav coklat12.wav coklat13.wav coklat14.wav coklat15.wav coklat16.wav coklat17.wav coklat18.wav coklat19.wav coklat20.wav
Pada data rekaman diatas diambil sebanyak 20 tiap ucapan untuk setiap pengguna untuk pengambilan pengujian secara tidak real time. Pengambilan jumlah data rekaman sesuai database yang diperlukan pada program pengenalan secara tidak real time. Dibawah ini salah satu program secara tidak real time dengan database 8. Program database 1;2;dan 4 memiliki perbedaan hanya pada masukan database yang digunakan. Setiap pengguna data rekaman dan pengenalannya disimpan dalam folder berbeda.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L12
Program Pengujian Pengenalan Ucapan Secara Tidak Real Time function cobafftbro %======================================================================== b0 = 0.3; % batas potong (referensi: 0.3) usig = 2048; % ukuran penyesuaian sinyal (referensi: 2048) ========================================================================= % Pembentukan database s1x=proses('kopi01.wav',b0,usig); s2x=proses('kopi02.wav',b0,usig); s3x=proses('kopi03.wav',b0,usig); s4x=proses('kopi04.wav',b0,usig); s5x=proses('kopi05.wav',b0,usig); s6x=proses('kopi06.wav',b0,usig); s7x=proses('kopi07.wav',b0,usig); s8x=proses('kopi08.wav',b0,usig); d1x=proses('kopsus01.wav',b0,usig); d2x=proses('kopsus02.wav',b0,usig); d3x=proses('kopsus03.wav',b0,usig); d4x=proses('kopsus04.wav',b0,usig); d5x=proses('kopsus05.wav',b0,usig); d6x=proses('kopsus06.wav',b0,usig); d7x=proses('kopsus07.wav',b0,usig); d8x=proses('kopsus08.wav',b0,usig); g1x=proses('susu01.wav',b0,usig); g2x=proses('susu02.wav',b0,usig); g3x=proses('susu03.wav',b0,usig); g4x=proses('susu04.wav',b0,usig); g5x=proses('susu05.wav',b0,usig); g6x=proses('susu06.wav',b0,usig); g7x=proses('susu07.wav',b0,usig); g8x=proses('susu08.wav',b0,usig); p1x=proses('coklat01.wav',b0,usig); p2x=proses('coklat02.wav',b0,usig); p3x=proses('coklat03.wav',b0,usig); p4x=proses('coklat04.wav',b0,usig); p5x=proses('coklat05.wav',b0,usig); p6x=proses('coklat06.wav',b0,usig); p7x=proses('coklat07.wav',b0,usig); p8x=proses('coklat08.wav',b0,usig); % Database sx=[s1x s2x s3x s4x s5x s6x s7x s8x]; dx=[d1x d2x d3x d4x d5x d6x d7x d8x]; gx=[g1x g2x g3x g4x g5x g6x g7x g8x]; px=[p1x p2x p3x p4x p5x p6x p7x p8x]; z=[sx dx gx px ]; %======================================================================= % Percobaan pengenalan c=proses('kopi11.wav',b0,usig);j1=hcorr(c,z); c=proses('kopi12.wav',b0,usig);j2=hcorr(c,z); c=proses('kopi13.wav',b0,usig);j3=hcorr(c,z); c=proses('kopi14.wav',b0,usig);j4=hcorr(c,z); c=proses('kopi15.wav',b0,usig);j5=hcorr(c,z); c=proses('kopi16.wav',b0,usig);j6=hcorr(c,z); c=proses('kopi17.wav',b0,usig);j7=hcorr(c,z); c=proses('kopi18.wav',b0,usig);j8=hcorr(c,z);
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L13
c=proses('kopi19.wav',b0,usig);j9=hcorr(c,z); c=proses('kopi20.wav',b0,usig);j10=hcorr(c,z); k1=pout(j1);k2=pout(j2);k3=pout(j3);k4=pout(j4);k5=pout(j5); k6=pout(j6);k7=pout(j7);k8=pout(j8);k9=pout(j9);k10=pout(j10); in_kopi_out={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10} c=proses('kopsus11.wav',b0,usig);j1=hcorr(c,z); c=proses('kopsus12.wav',b0,usig);j2=hcorr(c,z); c=proses('kopsus13.wav',b0,usig);j3=hcorr(c,z); c=proses('kopsus14.wav',b0,usig);j4=hcorr(c,z); c=proses('kopsus15.wav',b0,usig);j5=hcorr(c,z); c=proses('kopsus16.wav',b0,usig);j6=hcorr(c,z); c=proses('kopsus17.wav',b0,usig);j7=hcorr(c,z); c=proses('kopsus18.wav',b0,usig);j8=hcorr(c,z); c=proses('kopsus19.wav',b0,usig);j9=hcorr(c,z); c=proses('kopsus20.wav',b0,usig);j10=hcorr(c,z); k1=pout(j1);k2=pout(j2);k3=pout(j3);k4=pout(j4);k5=pout(j5); k6=pout(j6);k7=pout(j7);k8=pout(j8);k9=pout(j9);k10=pout(j10); in_kopsus_out={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10} c=proses('susu11.wav',b0,usig);j1=hcorr(c,z); c=proses('susu12.wav',b0,usig);j2=hcorr(c,z); c=proses('susu13.wav',b0,usig);j3=hcorr(c,z); c=proses('susu14.wav',b0,usig);j4=hcorr(c,z); c=proses('susu15.wav',b0,usig);j5=hcorr(c,z); c=proses('susu16.wav',b0,usig);j6=hcorr(c,z); c=proses('susu17.wav',b0,usig);j7=hcorr(c,z); c=proses('susu18.wav',b0,usig);j8=hcorr(c,z); c=proses('susu19.wav',b0,usig);j9=hcorr(c,z); c=proses('susu20.wav',b0,usig);j10=hcorr(c,z); k1=pout(j1);k2=pout(j2);k3=pout(j3);k4=pout(j4);k5=pout(j5); k6=pout(j6);k7=pout(j7);k8=pout(j8);k9=pout(j9);k10=pout(j10); in_susu_out={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10} c=proses('coklat11.wav',b0,usig);j1=hcorr(c,z); c=proses('coklat12.wav',b0,usig);j2=hcorr(c,z); c=proses('coklat13.wav',b0,usig);j3=hcorr(c,z); c=proses('coklat14.wav',b0,usig);j4=hcorr(c,z); c=proses('coklat15.wav',b0,usig);j5=hcorr(c,z); c=proses('coklat16.wav',b0,usig);j6=hcorr(c,z); c=proses('coklat17.wav',b0,usig);j7=hcorr(c,z); c=proses('coklat18.wav',b0,usig);j8=hcorr(c,z); c=proses('coklat19.wav',b0,usig);j9=hcorr(c,z); c=proses('coklat20.wav',b0,usig);j10=hcorr(c,z); k1=pout(j1);k2=pout(j2);k3=pout(j3);k4=pout(j4);k5=pout(j5); k6=pout(j6);k7=pout(j7);k8=pout(j8);k9=pout(j9);k10=pout(j10); in_coklat_out={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10} % Hitung tingkat pengenalan h1=cekout(in_kopi_out,1) h2=cekout(in_kopsus_out,2) h3=cekout(in_susu_out,3) h4=cekout(in_coklat_out,4) jumlah_dikenali = h1+h2+h3+h4 presentase=(jumlah_dikenali/40) %======================================================================== % INTERNAL FUNCTION %======================================================================== function wx=proses(fwav,b0,usig)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L14
% Pemrosesan dari wavread hingga ekstraksi ciri FFT % Baca file wav x0=wavread(fwav); alpha=0.95; % nilai alpha (referensi: 0.9b0 | x1<-b0); x1(1:b1(1))=[]; % Potong kanan x2=fliplr(x1'); b2=find(x2>b0 | x2<-b0); x2(1:b2(1))=[]; x2=fliplr(x2); %======================================================================== function x2=dftz(x0) % Ekstraksi ciri % x0 : data masukan % x2 : data keluaran % Framing dan windowing pjseg=512; % panjang frame (referensi: 512) ovlseg=128; % segmen yang overlap h=hamming(pjseg); n=1;k=1; while n==1 pjx0=length(x0); if pjx0>=pjseg xseg=x0(1:pjseg); % framing xseg=xseg.*h' ; % proses windowing segmtx(:,k)=xseg ; % simpan hasil windowing x0(1:pjseg-ovlseg)=[] ; % potong yang tidak dipakai lagi k=k+1 ; elseif pjx0
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L15
end x1=x1(:); %diubah matriks kolom x1=x1(1:length(x1)/2,:); % Segment averaging x2=reshape(x1,64,[]); sx1=size(x1); sx2=size(x2); x2=mean(x2); x2=x2(:); %======================================================================= function z=hcorr(x,y) % Menghitung korelasi dan penentuan keluaran % x : ekstraksi ciri sinyal masukan % y : database ekstraksi ciri % z : kelas keluaran % Menghitung korelasi z=zeros(1,32); for k=1:32 z(k)=simdice(x,y(:,k)); end % Penentuan keluaran dengan kNN k=7 ; % k pada knn m=8; % jumlah sampel perkelas (jml data sbg db) [s1,s2]=sort(z,'descend'); % urut turun (fungsi similaritas) kj=s1(1:k) ; % k(similaritas terbesar) kn=s2(1:k) ; % k kelas terdekat hk=ceil(kn/m); % penentuan kelas-kelas yang terpilih z=mode(hk); % pilih kelas yang paling sering muncul %======================================================================== function z=simdice(x,y) % Perhitungan similaritas kosinus % x, y : data masukan % z : data keluaran z=(2*(sum(x.*y)))/((sum(x.^2))+(sum(y.^2))) %======================================================================== function y=pout(x) % Penentuan keluaran kel={'kopi';'kopsus';'susu';'coklat'}; maxx=find(x==max(x)); %y=kel{maxx}; y=kel{x}; %======================================================================== function z=cekout(x,y) % Penghitungan keluaran yang benar kel={'kopi';'kopsus';'susu';'coklat'}; z=0; for k=1:10 %jumlah data yg diuji if length(x{k})==length(kel{y}) if x{k}==kel{y} z=z+1; end end end % =========================================================================
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L16
LAMPIRAN G PROGRAM PENGENALAN UCAPAN SECARA REAL TIME function varargout = GUI_PEMBUAT_MINUMAN(varargin) % GUI_PEMBUAT_MINUMAN M-file for GUI_PEMBUAT_MINUMAN.fig % GUI_PEMBUAT_MINUMAN, by itself, creates a new GUI_PEMBUAT_MINUMAN or raises the existing % singleton*. % % H = GUI_PEMBUAT_MINUMAN returns the handle to a new GUI_PEMBUAT_MINUMAN or the handle to % the existing singleton*. % % GUI_PEMBUAT_MINUMAN('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in GUI_PEMBUAT_MINUMAN.M with the given input arguments. % % GUI_PEMBUAT_MINUMAN('Property','Value',...) creates a new GUI_PEMBUAT_MINUMAN or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before GUI_PEMBUAT_MINUMAN_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to GUI_PEMBUAT_MINUMAN_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help GUI_PEMBUAT_MINUMAN % Last Modified by GUIDE v2.5 17-Feb-2016 03:20:41 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @GUI_PEMBUAT_MINUMAN_OpeningFcn, ... 'gui_OutputFcn', @GUI_PEMBUAT_MINUMAN_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L17
% --- Executes just before GUI_PEMBUAT_MINUMAN is made visible. function GUI_PEMBUAT_MINUMAN_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to GUI_PEMBUAT_MINUMAN (see VARARGIN) % Choose default command line output for GUI_PEMBUAT_MINUMAN handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes GUI_PEMBUAT_MINUMAN wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = GUI_PEMBUAT_MINUMAN_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double % --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on selection change in pilihuserpopup. function pilihuserpopup_Callback(hObject, eventdata, handles) % hObject handle to pilihuserpopup (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L18
% Hints: contents = get(hObject,'String') returns pilihuserpopup contents as cell array % contents{get(hObject,'Value')} returns selected item from pilihuserpopup pengguna=get(handles.pilihuserpopup,'Value'); switch pengguna case 2 plhpgn=1; case 3 plhpgn=2; case 4 plhpgn=3; end handles.pgn=plhpgn; guidata(hObject,handles); % --- Executes during object creation, after setting all properties. function pilihuserpopup_CreateFcn(hObject, eventdata, handles) % hObject handle to pilihuserpopup (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on selection change in knnpopup. function knnpopup_Callback(hObject, eventdata, handles) nilaik=get(handles.knnpopup,'Value'); switch nilaik case 2 kn=1; case 3 kn=3; case 4 kn=5; case 5 kn=7; end handles.nilk=kn; guidata(hObject,handles); % --- Executes during object creation, after setting all properties. function knnpopup_CreateFcn(hObject, eventdata, handles) % hObject handle to knnpopup (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L19
end % --- Executes on selection change in segaverpopup. function segaverpopup_Callback(hObject, eventdata, handles) % hObject handle to segaverpopup (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns segaverpopup contents as cell array % contents{get(hObject,'Value')} returns selected item from segaverpopup segave=get(handles.segaverpopup,'Value'); switch segave case 2 segment=8; case 3 segment=16; case 4 segment=32; case 5 segment=64; end handles.seg=segment; guidata(hObject,handles); % --- Executes during object creation, after setting all properties. function segaverpopup_CreateFcn(hObject, eventdata, handles) % hObject handle to segaverpopup (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on selection change in cotohpopup. function cotohpopup_Callback(hObject, eventdata, handles) % hObject handle to cotohpopup (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns cotohpopup contents as cell array % contents{get(hObject,'Value')} returns selected item from cotohpopup contoh=get(handles.cotohpopup,'Value'); switch contoh case 2 zzz=1; case 3 zzz=2; case 4 zzz=3;
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI case 5 zzz=4; end handles.cnth=zzz; guidata(hObject,handles); % --- Executes during object creation, after setting all properties. function cotohpopup_CreateFcn(hObject, eventdata, handles) % hObject handle to cotohpopup (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in pushbuttoncontoh. function pushbuttoncontoh_Callback(hObject, eventdata, handles) % hObject handle to pushbuttoncontoh (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) lala=handles.cnth; varpgn=handles.pgn; if (lala==1)&&(varpgn==1) wowo=wavread('kopi01ev.wav'); wavplay(wowo,6000); elseif (lala==2)&&(varpgn==1) wowo=wavread('susu01ev.wav'); wavplay(wowo,6000); elseif (lala==3)&&(varpgn==1) wowo=wavread('kopsus01ev.wav'); wavplay(wowo,6000); elseif (lala==4)&&(varpgn==1) wowo=wavread('coklat01ev.wav'); wavplay(wowo,6000); elseif (lala==1)&&(varpgn==2) wowo=wavread('kopi01fi.wav'); wavplay(wowo,6000); elseif (lala==2)&&(varpgn==2) wowo=wavread('susu01fi.wav'); wavplay(wowo,6000); elseif (lala==3)&&(varpgn==2) wowo=wavread('kopsus01fi.wav'); wavplay(wowo,6000); elseif (lala==4)&&(varpgn==2) wowo=wavread('coklat01fi.wav'); wavplay(wowo,6000); elseif (lala==1)&&(varpgn==3) wowo=wavread('kopi01kr.wav'); wavplay(wowo,6000); elseif (lala==2)&&(varpgn==3) wowo=wavread('susu01kr.wav'); wavplay(wowo,6000);
L20
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI elseif (lala==3)&&(varpgn==3) wowo=wavread('kopsus01kr.wav'); wavplay(wowo,6000); elseif (lala==4)&&(varpgn==3) wowo=wavread('coklat01kr.wav'); wavplay(wowo,6000); end % --- Executes on button press in pushbuttonucap. function pushbuttonucap_Callback(hObject, eventdata, handles) % hObject handle to pushbuttonucap (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % sampling real time panjang_sampel=1; frekuensi_sampel=6000; waktu_sampel=(panjang_sampel*frekuensi_sampel); x=wavrecord(waktu_sampel, frekuensi_sampel); wavwrite(x, waktu_sampel, 'sementara.wav'); axes(handles.axes1) plot(x); xlabel('Time(s)'); ylabel('Amplitude'),... title('INPUT UCAPAN'); x=wavread('sementara.wav'); %sample disimpan sementara % preprocessing % 1.pre emphasis varsegave=handles.seg; varknn=handles.nilk; varpgn=handles.pgn; btsptg=0.3; x0=x; ukrsin=2048; alpha=0.95; for k=2:length(x0) x0(k)=x0(k)-alpha*(x0(k-1)); end % 2.normalisasi x1=x0/max(abs(x0)); % 3.peomotngan sinyal % 3a.potong kiri sinyal b1=find(x1>btsptg | x1<-btsptg); x1(1:b1(1))=[]; % 3b.potong kanan sinyal x2=fliplr(x1'); b2=find(x2>btsptg | x2<-btsptg); x2(1:b2(1))=[]; x2=fliplr(x2); % 4. zerro padding x2(ukrsin)=0; x3=x2(1:ukrsin); % segmentasi dan windowing memakai hamming pjgseg=512; overlapseg=128; hmm=hamming(pjgseg); n=1;k=1; while n==1
L21
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI pjgx0=length(x3); if pjgx0>=pjgseg xseg=x3(1:pjgseg); % segmentasi xseg=xseg.*hmm'; % proses windowing segmtx(:,k)=xseg; % hasil windowing x3(1:pjgseg-overlapseg)=[]; % potong selisih windowing k=k+1; elseif pjgx0==0 n=0; else x3(pjgseg)=0; % penyesuaian panjang segment xseg=x3.*hmm'; % proses windowing segmtx(:,k)=xseg; % hasil windowing n=0; end end % ektraksi ciri DFT [roww,columnn]=size (segmtx); for k=1:columnn hsldft=abs(fx_dft(segmtx(:,k))); x4(:,k)=hsldft(:); end x4=x4(:); % ubah ke matriks kolom x4=x4(1:length(x4)/2,:); % segment averaging x5=reshape(x4,varsegave,[]); x5=mean(x5); x=x5(:); axes(handles.axes2) % plot hasil ekstraksi ciri bar(x); xlabel('Data'); ylabel('Value'),... % pemanggilan database if (varpgn==1)&&(varsegave==8) load evandb1sa8; elseif (varpgn==1)&&(varsegave==16) load evandb1sa16; elseif (varpgn==1)&&(varsegave==32) load evandb1sa32; elseif (varpgn==1)&&(varsegave==64) load evandb1sa64; elseif (varpgn==2)&&(varsegave==8) load fiandb1sa8; elseif (varpgn==2)&&(varsegave==16) load fiandb1sa16; elseif (varpgn==2)&&(varsegave==32) load fiandb1sa32; elseif (varpgn==2)&&(varsegave==64) load fiandb1sa64; elseif (varpgn==3)&&(varsegave==8) load krisdb1sa8; elseif (varpgn==3)&&(varsegave==16) load krisdb1sa16; elseif (varpgn==3)&&(varsegave==32) load krisdb1sa32; elseif (varpgn==3)&&(varsegave==64) load krisdb1sa64; end
L22
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L23
for n=1:4 similaritas(n)=similaritas_dice(x,z(:,n)); end %knn k=varknn; % k pada knn jmlsmpl=1; % jumlah sampel per kelas [s1,s2]=sort(similaritas,'descend');% shortir menurun (fungsi similaritas) similaritasdice=sort(similaritas,'descend'); kelaskcl=s1(1:k); % k (jarak tekecil)atau(similaritas terbesar) kelasdkt=s2(1:k); % k kelas terdekat tntkelas=ceil(kelasdkt/jmlsmpl); % penentuan kelas-kelas yang terpilih kelasout=mode(tntkelas); % pilih kelas yang paling sering muncul idxklsout=find(tntkelas==kelasout); kpilih=kelaskcl(idxklsout); fkpilih=fliplr(kpilih); thrshld=fkpilih(1) if (varpgn==1)&&(kelasout == 1)&&(thrshld>0.6041) keluarout = {'KOPI'}; datakom = '1'; elseif (varpgn==1)&&(kelasout == 1)&&(thrshld<= 0.6041) keluarout = {'ERROR'}; datakom = '5'; elseif (varpgn==2)&&(kelasout == 1)&&(thrshld<= 0.6063) keluarout = {'KOPI'}; datakom = '1'; elseif (varpgn==2)&&(kelasout == 1)&&(thrshld<= 0.6063) keluarout = {'ERROR'}; datakom = '5'; elseif (varpgn==3)&&(kelasout == 1)&&(thrshld<= 0.8310) keluarout = {'KOPI'}; datakom = '1'; elseif (varpgn==3)&&(kelasout == 1)&&(thrshld<= 0.8310) keluarout = {'ERROR'}; datakom = '5'; end if (varpgn==1)&&(kelasout == 2)&&(thrshld>0.5401) keluarout = {'SUSU'}; datakom = '2'; elseif (varpgn==1)&&(kelasout == 2)&&(thrshld<= 0.5401) keluarout = {'ERROR'}; datakom = '5'; elseif (varpgn==2)&&(kelasout == 2)&&(thrshld<= 0.5637) keluarout = {'SUSU'}; datakom = '2'; elseif (varpgn==2)&&(kelasout == 2)&&(thrshld<= 0.5637) keluarout = {'ERROR'}; datakom = '5'; elseif (varpgn==3)&&(kelasout == 2)&&(thrshld<= 0.5328) keluarout = {'SUSU'}; datakom = '2'; elseif (varpgn==3)&&(kelasout == 2)&&(thrshld<= 0.5328)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L24
keluarout = {'ERROR'}; datakom = '5'; end if (varpgn==1)&&(kelasout == 3)&&(thrshld>0.5401) keluarout = {'KOPSUS'}; datakom = '3'; elseif (varpgn==1)&&(kelasout == 3)&&(thrshld<= 0.5401) keluarout = {'ERROR'}; datakom = '5'; elseif (varpgn==2)&&(kelasout == 3)&&(thrshld<= 0.5637) keluarout = {'KOPSUS'}; datakom = '3'; elseif (varpgn==2)&&(kelasout == 3)&&(thrshld<= 0.5637) keluarout = {'ERROR'}; datakom = '5'; elseif (varpgn==3)&&(kelasout == 3)&&(thrshld<= 0.5328) keluarout = {'KOPSUS'}; datakom = '3'; elseif (varpgn==3)&&(kelasout == 3)&&(thrshld<= 0.5328) keluarout = {'ERROR'}; datakom = '5'; end if (varpgn==1)&&(kelasout == 4)&&(thrshld>0.5401) keluarout = {'COKELAT'}; datakom = '4'; elseif (varpgn==1)&&(kelasout == 4)&&(thrshld<= 0.5401) keluarout = {'ERROR'}; datakom = '5'; elseif (varpgn==2)&&(kelasout == 4)&&(thrshld<= 0.5637) keluarout = {'COKELAT'}; datakom = '4'; elseif (varpgn==2)&&(kelasout == 4)&&(thrshld<= 0.5637) keluarout = {'ERROR'}; datakom = '5'; elseif (varpgn==3)&&(kelasout == 4)&&(thrshld<= 0.5328) keluarout = {'COKELAT'}; datakom = '4'; elseif (varpgn==3)&&(kelasout == 4)&&(thrshld<= 0.5328) keluarout = {'ERROR'}; datakom = '5'; end hasilout=keluarout; set(handles.edit1,'string',hasilout) komunikasi=serial(handles.PORT); set(komunikasi,'BaudRate',9600,'DataBits',8,'parity','none','StopBits',1, 'FlowControl','none'); fopen(komunikasi); fprintf(komunikasi,'%c',datakom); fclose(komunikasi); delete(komunikasi); clear komunikasi;
% --- Executes on button press in pushbuttonexit.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI function pushbuttonexit_Callback(hObject, eventdata, handles) % hObject handle to pushbuttonexit (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) delete(figure(GUI_PEMBUAT_MINUMAN));
% --- Executes on button press in pushbuttonreset. function pushbuttonreset_Callback(hObject, eventdata, handles) % hObject handle to pushbuttonreset (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.axes1); plot(0); axes(handles.axes2); plot(0); set(handles.edit1,'String',' ');
% --- Executes on selection change in popupmenu17. function popupmenu17_Callback(hObject, eventdata, handles) pilihcom = get(hObject,'Value'); switch pilihcom case 1 handles.PORT='COM1'; case 2 handles.PORT='COM2'; case 3 handles.PORT='COM3'; case 4 handles.PORT='COM4'; case 5 handles.PORT='COM5'; case 6 handles.PORT='COM6'; case 7 handles.PORT='COM7'; case 8 handles.PORT='COM8'; case 9 handles.PORT='COM9'; case 10 handles.PORT='COM10'; case 11 handles.PORT='COM11'; case 12 handles.PORT='COM12'; case 13 handles.PORT='COM13'; case 14 handles.PORT='COM14'; case 15 handles.PORT='COM15'; end guidata(hObject,handles);
L25
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
% hObject % eventdata % handles
L26
handle to popupmenu17 (see GCBO) reserved - to be defined in a future version of MATLAB structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns popupmenu17 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu17
% --- Executes during object creation, after setting all properties. function popupmenu17_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu17 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN H SUB-PROGRAM DAN M-FILE MATLAB YANG DIGUNAKAN
Pengambilan sampel ucapan : perekaman.m option='n'; option_rec='n'; sample_len=1; sample_freq=6000; sample_time=(sample_len*sample_freq); nama=input('Masukkan nama file record: ','s'); file_nama=sprintf('%s.wav',nama); option_rec = input('tekan x untuk merekam: ','s'); if option_rec=='x' while option=='n', rekam=wavrecord(sample_time, sample_freq); plot(rekam); input('tekan enter untuk mendengarkan ->'); sound(rekam, sample_freq); option = input('x simpan,n rekam ulang: ','s'); end wavwrite(rekam, sample_freq, file_nama); end
Ekstraksi ciri DFT: fx_dft.m function y=fx_dft(x) % Perhitungan DFT % Hitung panjang x N=length(x); % Hitung DFT y=zeros(1,N); for k=1:N for n=1:N w=exp(-1i*2*pi*(k-1)*(n-1)/N); a=x(n)*w; y(k)=y(k)+a; end end
Similaritas Dice: similaritas_dice.m function z=similaritas_dice(x,y) sx=size(x); sy=size(y); z=(2*(sum(x.*y)))/((sum(x.^2))+(sum(y.^2)));
L27
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L28
Pengiriman komunikasi Serial: a.Pemilihan COM PORT switch pilihcom case 1 handles.PORT='COM1'; case 2 handles.PORT='COM2'; case 3 handles.PORT='COM3'; case 4 handles.PORT='COM4'; case 5 handles.PORT='COM5'; case 6 handles.PORT='COM6'; case 7 handles.PORT='COM7'; case 8 handles.PORT='COM8'; case 9 handles.PORT='COM9'; case 10 handles.PORT='COM10'; case 11 handles.PORT='COM11'; case 12 handles.PORT='COM12'; case 13 handles.PORT='COM13'; case 14 handles.PORT='COM14'; case 15 handles.PORT='COM15'; end guidata(hObject,handles);
b.Pengiriman Data komunikasi=serial(handles.PORT); set(komunikasi,'BaudRate',9600,'DataBits',8,'parity','none','StopBits',1, 'FlowControl','none'); fopen(komunikasi); fprintf(komunikasi,'%c',datakom); fclose(komunikasi); delete(komunikasi); clear komunikasi;
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L29
LAMPIRAN I MENENTUKAN SIMILARITAS TERKECIL UNTUK NILAI THRESHOLDING Tabel dibawah ini digunalan untuk menentukan nilai thresholding dari setiap ucapan kopi, susu, kopsus, dan coklat. Pengujian dilakukan dengan program pengenalan secara real time dengan variasi segment averaging 8 dan nilai KNN 1. Pengujian dilakukan sebanyak 10 kali setiap ucapan untuk setiap pengguna, sehingga total tiap ucapan berjumlah 30 percobaan. Tabel L3.1. Nilai Similaritas Setiap Ucapan EVAN
USER
KRIS
NILAI SIM ILARITAS UCAPAN
PER COBAAN
KOPI
SUSU
1
0,8254
0,6393
0,5577
2
0,9748
0,7883
3
0,8743
0,7858
4
0,8419
FIAN
NILAI SIM ILARITAS UCAPAN
KOPSUS COKELAT
KOPI
SUSU
KOPSUS COKELAT
0,7423
0,8839
0,7407
0,9123
0,7882
0,9058
0,7567
0,6770
0,8916
0,8179
0,8371
0,7524
0,8473
0,8261
0,7360
0,8981
5
0,6654
0,7951
0,8668
0,7949
6
0,9146
0,8400
0,8834
7
0,8396
0,8261
0,7472
8
0,8531
0,8028
NILAI SIM ILARITAS UCAPAN KOPI
SUSU
0,9146
0,8614
0,8347
KOPSUS COKELAT 0,9303
0,7402
0,9586
0,7741
0,8414
0,8342
0,9257
0,8617
0,8841
0,6891
0,8523
0,7615
0,7356
0,8595
0,8549
0,9335
0,5994
0,8373
0,7557
0,6466
0,8607
0,8959
0,7293
0,9755
0,9017
0,8694
0,7969
0,7271
0,8625
0,5512
0,7057
0,6228
0,8766
0,7022
0,6310
0,7898
0,7190
0,7584
0,9382
0,9507
0,5962
0,9634
0,8087
0,8508
0,6354
0,8594
0,9290
0,8895
0,8459
0,6063
0,7070
0,8915
0,9253
0,8640
0,8331
0,8158
0,6078
9
0,9394
0,8340
0,8862
0,9161
0,9402
0,5637
0,8994
0,9481
0,8770
0,5792
0,7058
0,8273
10
0,8365
0,5727
0,9374
0,8123
0,9509
0,7604
0,8831
0,8868
0,8682
0,5328
0,8075
0,8636
Nilai Minimal
0,6654
0,5727
0,5577
0,5512
0,6063
0,5637
0,8766
0,5994
0,6310
0,5328
0,6466
0,6078
Berdasarkan percobaan tersebut, telah didapatkan nilai similaritas untuk masingmasing ucapan. Nilai similaritas tersebut akan diambil yang terkecil untuk digunakan sebagai nilai thresholding, karena nilai tersebut dianggap sebagai batas yang masih dapat dikenali sebagai ucapan, dan nilai yang lebih kecil dari itu akan dianggap sebagai ucapan asing yang tidak dapat dikenali sehingga akan masuk dalam kategori ”error”. Nilai minimal similaritas untuk setiap ucapan ditunjukan dalam tabel L3.1. Tabel L3.1. Nilai Minimal Similaritas Setiap Ucapan Untuk Masing-Masing Penguna USER
NILAI MINIMAL SIMILARITAS UCAPAN KOPI
SUSU
KOPSUS COKELAT
EVAN
0,6654
0,5727
0,5577
0,5512
KRIS
0,6063
0,5637
0,8766
0,5994
FIAN
0,6310
0,5328
0,6466
0,6078
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN J PROGRAM CODEVISION UNTUK MESIN PEMBUAT MINUMAN /***************************************************** This program was produced by the CodeWizardAVR V2.03.9 Standard Automatic Program Generator © Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : TUGAS AKHIR - 115114020 Version : 1.7.0.5.9.3 Date : 2/12/2016 Author : evan Company : elektro Comments: semoga menjadi berkat!
Chip type : ATmega8535 Program type : Application AVR Core Clock frequency: 12.000000 MHz Memory model : Small External RAM size :0 Data Stack size : 256 *****************************************************/ #include <mega9535.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x15 ;PORTC #endasm #include #include <delay.h> // Standard Input/Output functions #include <stdio.h> // Declare your global variables here int b; //unsigned char bb[]; void komserial() { b=getchar(); //lcd_gotoxy(0,0); sprintf(bb,"komunikasi= %c",b); //lcd_puts(bb); delay_ms(100); //lcd_clear();delay_ms(10); } void main(void) {
L30
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00; DDRA=0x00; // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out // State7=T State6=T State5=T State4=T State3=0 State2=0 State1=0 State0=0 PORTB=0x00; DDRB=0x0F; // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00; // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00;
L31
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: Off // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00; UCSRB=0x10; UCSRC=0x86; UBRRH=0x00; UBRRL=0x4D; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // LCD module initialization lcd_init(16); while (1) { // Place your code here lcd_gotoxy(0,0);lcd_putsf("BEVERAGE MACHINE"); lcd_gotoxy(0,1);lcd_putsf("SIAGA"); komserial(); if(b=='1') {
L32
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI lcd_clear(); lcd_gotoxy(0,1);lcd_putsf("Membuat Kopi");delay_ms(2500); PORTB.0=1;delay_ms(6000); PORTB.0=0; lcd_clear(); lcd_gotoxy(0,0);lcd_putsf("Selesai..Selamat"); lcd_gotoxy(7,1);lcd_putsf("Menikmati");delay_ms(2000); lcd_clear(); } else if (b=='2') { lcd_clear(); lcd_gotoxy(0,1);lcd_putsf("Membuat Susu");delay_ms(2500); PORTB.1=1;delay_ms(6250); PORTB.1=0; lcd_clear(); lcd_gotoxy(0,0);lcd_putsf("Selesai..Selamat"); lcd_gotoxy(7,1);lcd_putsf("Menikmati");delay_ms(2000); lcd_clear(); } else if (b=='3') { lcd_clear(); lcd_gotoxy(0,1);lcd_putsf("Membuat KopiSusu");delay_ms(2500); PORTB.2=1;delay_ms(6000); PORTB.2=0; lcd_clear(); lcd_gotoxy(0,0);lcd_putsf("Selesai..Selamat"); lcd_gotoxy(7,1);lcd_putsf("Menikmati");delay_ms(2000); lcd_clear(); } else if (b=='4') { lcd_clear(); lcd_gotoxy(0,1);lcd_putsf("Membuat Coklat");delay_ms(2500); PORTB.3=1;delay_ms(5750); PORTB.3=0; lcd_clear();delay_ms(5); lcd_gotoxy(0,0);lcd_putsf("Selesai..Selamat"); lcd_gotoxy(7,1);lcd_putsf("Menikmati");delay_ms(2000); lcd_clear(); } else if (b=='5') { lcd_clear(); lcd_gotoxy(0,0);lcd_putsf("ERROR..."); lcd_gotoxy(0,1);lcd_putsf("Coba Lagi");delay_ms(3000); lcd_clear(); } }; }
L33