i
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
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 : _________________
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
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..
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
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)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
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.................................................................... 14
Gambar 2.16. Konfigurasi Pin Mikrokontroler Atmega8535. ..................................... 16
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xviii
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
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, mula-
mula pengguna melakukan ucapan, yang akan diproses melalui sistem pengenalan ucapan.
Hasil dari proses tersebut adalah pengenalan ucapan pengguna. Hasil pengenalan akan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
1.5 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
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
Organ Pembentuk Suara Manusia [4]
Gambar 2.2. Representasi Skematik
Mekanisme Pembentukan Suara [2]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
2.2. 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
2.3. 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
2.4. 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] :
)1(*)()(' nsnsns (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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
2.5. 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]:
1
2cos*46,054,0)(
N
nnw
(2.4)
Dimana:
w(n) = windowing
N = jumlah data dari sinyal
n = waktu diskrit ke – n
Gambar 2.13. Proses Framing dan Windowing
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
2.6. 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
Dari sampel K tersebut, identifikasi jumlah vektor, ki, yang termasuk masuk dalam
kelas i ,i = 1,2,......,M. Dinyatakan dengan kiki .
Tetapkan x ke kelas i berdasarkan jumlah ki terbanyak dari sampel.
2.9. 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
g) 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]
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.
UPM0..1 Parity
0 Tidak Aktif
1 Tidak digunakan
10 Genap
11 Ganjil
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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]
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
Spesifikasi Motor Washer Mono Pump
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 R/W Operasi
0 0 Input instruksi ke LCD
0 1 Membaca status flag (DB7) dan alamat counter (DB0-DB6)
1 0 Menulis data ke DDRAM atau CGRAM
1 1 Membaca data dari DDRAM atau CGRAM
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
Tabel 2.5. Operasi dasar LCD 16x2 [22]
Tabel 2.6. Konfigurasi pin LCD 16x2 [22]
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]
Pin No. Keterangan Konfigurasi hubung
1 GND Ground
2 VCC Tegangan +5Vdc
3 VEE Ground
4 RS Kendali RS
5 RW Ground
6 E Kendali E/Enable
7 D0 Bit 0
8 D1 Bit 1
9 D2 Bit 2
10 D3 Bit 3
11 D4 Bit 4
12 D5 Bit 5
13 D6 Bit 6
14 D7 Bit 7
15 Anoda Anoda (+5Vdc)
16 Katoda Katoda (Ground )
Pin Bilangan biner Keterangan
0 Inisialisasi
1 Data
0 Tulis LCD/W (Write )
1 Baca LCD/R (Read )
0 Pintu data terbuka
1 Pintu data tertutup
RS
RW
E
Min Maks
7805 5 7,3 20
7806 6 8,3 21
7808 8 10,5 23
7810 10 12,5 25
7812 12 14,6 27
7815 15 17,7 30
7818 18 21 33
7824 24 27,1 38
Vin (volt)Tipe IC
Vout
(volt)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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)
Jika VD VBE, maka
Vo = Vreg (2.11)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 per-
kelas 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
Gambar 3.14. Flowchart Rancangan Program Pengiriman Data Serial
Ucapan Data Yang Dikirim
KOPI “1”
SUSU “2”
KOPSUS “3”
COKELAT “4”
ERROR “5”
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
3.3. 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
3.4. 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
INISIALISASIKolom yang berisi pilihan-pilihan variabel yang akan
diinisialisasikan.
PEMILIHAN
PENGGUNA
Untuk memilih pengguna yang akan mengakses
program
NILAI „k‟ PADA k-
NN
Memilih nilai variabel „k‟ pada proses penentuan hasil
pengenalan
LEBAR SEGMENT
AVERAGINGMemilih nilai variabel pada proses segment averaging
PLOT UCAPAN Menampilkan plot sinyal ucapan
PLOT EKSTRAKSI
CIRIMenampilkan plot hasil ekstraksi ciri
KETERANGAN Kolom yang berisi informasi singkat mengenai program
UCAP Tombol untuk memulai perekaman ucapan
STOP Tombol untuk mengakhiri program
HASIL
PENGENALAN
Menampilkan hasil dari pengenalan ucapan yang
dilakukan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 masing-
masing 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
Gambar 3.21. Skematik LCD 16x2 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 masing-
masing cairan, lalu diambil nilai waktu aktif yang mencukupi untuk mengisi gelas
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
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.
Data Serial Representasi Data Perintah
1 KOPI Aktifkan motor 1 ( PORTB.0) selama n1 detik
2 SUSU Aktifkan motor 2 ( PORTB.1) selama n2 detik
3 KOPI SUSU Aktifkan motor 3 ( PORTB.2) selama n3 detik
4 COKELAT Aktifkan motor 4 ( PORTB.3) selama n4 detik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
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)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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.
Gambar 4.4. Bentuk Fisik Mesin Pembuat Minuman (Tampak Luar)
LCD
Tempat keluaran cairan
Kabel komunikasi USB to TTL
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
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.
Gambar 4.5. Bentuk Fisik Kotak Pengendali
Keterangan gambar 4.5:
1. Catu Daya 16Vdc
2. Regulator 12 volt dengan penguat arus
3
5 6
2
4
1
Wadah Cairan Kopi, Susu, Kopi Susu, dan Cokelat
Motor
Pompa
1
Kotak Kendali
Wadah
Pembuangan
Cairan
LCD
Corong
Tempat Keluaran
Cairan
Catu Daya
Motor
Pompa
2
Motor
Pompa
3
Motor
Pompa
4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 keputusan-
keputusan 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
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.
Port Mikrokontroler Kegunaan Waktu Aktif (ms)
PORTB.0 Mengaktifkan motor 1 (membuat kopi) 6000
PORTB.1 Mengaktifkan motor 2 (membuat susu) 6250
PORTB.2 Mengaktifkan motor 3 (membuat kopi susu) 6000
PORTB.3 Mengaktifkan motor 4 (membuat cokelat) 5750
PORTC Mengaktifkan LCD 16x2 -
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 if-
else 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 masing-
masing 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
1 3 5 7 1 3 5 7 1 3 5 7
8 97,5% 97,5% 95,0% 95,0% 97,5% 97,5% 97,5% 97,5% 97,5% 97,5% 92,5% 92,5%
16 97,5% 95,0% 95,0% 95,0% 97,5% 97,5% 97,5% 97,5% 97,5% 97,5% 97,5% 97,5%
32 97,5% 92,5% 92,5% 90,0% 97,5% 97,5% 97,5% 97,5% 97,5% 97,5% 97,5% 97,5%
64 97,5% 90,0% 90,0% 85,0% 97,5% 97,5% 97,5% 97,5% 97,5% 97,5% 97,5% 97,5%
segment
averaging
nilai k pada knn nilai k pada knn nilai k pada knn
EVAN FIAN KRIS
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
Tabel 4.3. Tingkat Pengenalan (%) Secara Tidak Real Time dengan Database Berisi 4 Data
Rekaman Ucapan
Tabel 4.4. Tingkat Pengenalan (%) Secara Tidak Real Time dengan Database Berisi 2 Data
Rekaman Ucapan
Tabel 4.5. Tingkat Pengenalan (%) Secara Tidak Real Time dengan Database Berisi 1 Data
Rekaman Ucapan
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
USER
1 3 5 7 1 3 5 7 1 3 5 7
8 97,5% 95,0% 95,0% 80,0% 97,5% 97,5% 97,5% 95,0% 97,5% 97,5% 97,5% 97,5%
16 95,0% 92,5% 90,0% 77,5% 97,5% 97,5% 97,5% 87,5% 97,5% 97,5% 97,5% 97,5%
32 90,0% 90,0% 80,0% 75,0% 95,0% 97,5% 92,5% 85,0% 97,5% 97,5% 97,5% 95,0%
64 90,0% 82,5% 75,0% 67,5% 95,0% 92,5% 62,5% 57,5% 97,5% 97,5% 92,5% 92,5%
FIAN KRIS
segment
averaging
nilai k pada knn nilai k pada knn nilai k pada knn
EVAN
USER
1 3 5 7 1 3 5 7 1 3 5 7
8 95,0% 77,5% 70,0% 27,5% 97,5% 97,5% 50,0% 25,0% 92,5% 95,0% 37,5% 25,0%
16 95,0% 77,5% 67,5% 27,5% 97,5% 95,0% 52,5% 25,0% 97,5% 97,5% 35,0% 25,0%
32 92,5% 72,5% 42,5% 37,5% 95,0% 97,5% 52,5% 25,0% 97,5% 97,5% 35,0% 25,0%
64 90,0% 67,5% 47,5% 27,5% 90,0% 72,5% 52,5% 25,0% 97,5% 97,5% 27,5% 25,0%
EVAN FIAN KRIS
segment
averaging
nilai k pada knn nilai k pada knn nilai k pada knn
USER
1 3 5 7 1 3 5 7 1 3 5 7
8 95,0% 60,0% 50,0% 20,0% 95,0% 57,5% 42,5% 25,0% 95,0% 60,0% 50,0% 25,0%
16 95,0% 60,0% 47,5% 20,0% 92,5% 55,0% 42,5% 25,0% 95,0% 60,0% 47,5% 20,0%
32 92,5% 55,0% 25,0% 10,0% 87,5% 50,0% 40,0% 20,0% 95,0% 55,0% 25,0% 20,0%
64 87,5% 50,0% 25,0% 10,0% 65,0% 50,0% 40,0% 10,0% 95,0% 50,0% 25,0% 20,0%
EVAN FIAN KRIS
segment
averaging
nilai k pada knn nilai k pada knn nilai k pada knn
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
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
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
USERNILAI MINIMAL SIMILARITAS UCAPAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
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
PENGGUNA
KOPI SUSU KOPSUS COKELAT
KOPI 19 - 1 - 95,00%
SUSU 1 17 2 - 85,00%
KOPSUS - 1 19 - 95,00%
COKELAT - 1 - 19 95,00%
92,50%
PENGGUNA
KOPI SUSU KOPSUS COKELAT
KOPI 17 - 3 - 85,00%
SUSU - 18 - 2 90,00%
KOPSUS 2 - 18 - 90,00%
COKELAT - 2 - 18 90,00%
88,75%
PENGGUNA
KOPI SUSU KOPSUS COKELAT
KOPI 18 - 2 - 90,00%
SUSU - 17 2 1 85,00%
KOPSUS - 1 18 1 90,00%
COKELAT - 2 - 18 90,00%
88,75%
RATA-RATA PERSENTASE PENGENALAN
EVAN
MASUKAN
UCAPAN
PENGENALAN PERSENTASE
PENGENALAN
RATA-RATA PERSENTASE PENGENALAN
KRIS
MASUKAN
UCAPAN
PENGENALAN PERSENTASE
PENGENALAN
FIAN
MASUKAN
UCAPAN
PENGENALAN PERSENTASE
PENGENALAN
RATA-RATA PERSENTASE PENGENALAN
RATA-RATA PERSENTASE PENGENALAN SELURUH
PENGGUNA90,00%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
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.
PENGGUNA
KOPI SUSU KOPSUS COKELAT ERROR
KOPI 17 - 1 - 2 85,00%
SUSU - 17 - - 3 85,00%
KOPSUS 1 - 19 - - 95,00%
COKELAT - - - 19 1 95,00%
90,00%
PENGGUNA
KOPI SUSU KOPSUS COKELAT ERROR
KOPI 18 - - - 2 90,00%
SUSU - 18 - - 2 90,00%
KOPSUS 1 - 18 - 1 90,00%
COKELAT - - 1 18 1 90,00%
90,00%
PENGGUNA
KOPI SUSU KOPSUS COKELAT ERROR
KOPI 18 - - - 2 90,00%
SUSU - 18 - 1 1 90,00%
KOPSUS - - 18 - 2 90,00%
COKELAT - - 1 17 2 85,00%
88,75%
KRIS
EVAN
MASUKAN
UCAPAN
PENGENALAN PERSENTASE
PENGENALAN
RATA-RATA PERSENTASE PENGENALAN
PENGENALAN PERSENTASE
PENGENALAN
RATA-RATA PERSENTASE PENGENALAN
FIAN
PENGENALAN PERSENTASE
PENGENALAN
RATA-RATA PERSENTASE PENGENALAN
RATA-RATA PERSENTASE PENGENALAN SELURUH PENGGUNA 89,58%
MASUKAN
UCAPAN
MASUKAN
UCAPAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
Tabel 4.9. Confusion Matrik Hasil Pengujian Secara Real Time Dengan Nilai Thresholding
Untuk Mengenali Error
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.
PENGGUNA
KOPI SUSU KOPSUS COKELAT ERROR
BALOK 2 - - - 18 90,00%
KUBUS - 2 - - 18 90,00%
TABUNG 1 - 2 - 17 85,00%
BOLA - - 2 - 18 90,00%
88,75%
PENGGUNA
KOPI SUSU KOPSUS COKELAT ERROR
BALOK 2 - 1 - 17 85,00%
KUBUS - 3 - - 17 85,00%
TABUNG - - - 1 19 95,00%
BOLA - - - 1 19 95,00%
90,00%
PENGGUNA
KOPI SUSU KOPSUS COKELAT ERROR
BALOK - - - 2 18 90,00%
KUBUS - - 3 - 17 85,00%
TABUNG - - - 2 18 90,00%
BOLA - - - 1 19 95,00%
90,00%
EVAN
PENGENALAN PERSENTASE
PENGENALAN
RATA-RATA PERSENTASE PENGENALAN
KRIS
PENGENALAN PERSENTASE
PENGENALAN
RATA-RATA PERSENTASE PENGENALAN
FIAN
PENGENALAN PERSENTASE
PENGENALAN
RATA-RATA PERSENTASE PENGENALAN
RATA-RATA PERSENTASE PENGENALAN SELURUH PENGGUNA 89,58%
MASUKAN
UCAPAN
MASUKAN
UCAPAN
MASUKAN
UCAPAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
4.4 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 masing-
masing 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
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
1 1 1 Membuat kopi
2 1 1 Membuat kopi
3 1 1 Membuat kopi
4 1 1 Membuat kopi
5 1 1 Membuat kopi
6 2 2 Membuat susu
7 2 2 Membuat susu
8 2 2 Membuat susu
9 2 2 Membuat susu
10 2 2 Membuat susu
11 3 3 Membuat kopi susu
12 3 3 Membuat kopi susu
13 3 3 Membuat kopi susu
14 3 3 Membuat kopi susu
15 3 3 Membuat kopi susu
16 4 4 Membuat cokelat
17 4 4 Membuat cokelat
18 4 4 Membuat cokelat
19 4 4 Membuat cokelat
20 4 4 Membuat cokelat
21 5 5 Menampilkan Error
22 5 5 Menampilkan Error
23 5 5 Menampilkan Error
24 5 5 Menampilkan Error
25 5 5 Menampilkan Error
PercobaanKarakter
Yang Dikirim
Karakter
Yang DikirimPerintah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
perancangan. Selanjutnya pengujian keberhasilan mesin membuat minuman ditunjukan
pada tabel 4.11.
Tabel 4.11. Pengujian Keberhasilan Mesin Membuat Minuman
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.
1 Membuat kopi 148 1,33%
2 Membuat kopi 154 2,67%
3 Membuat kopi 152 1,33%
4 Membuat kopi 150 0,00%
5 Membuat kopi 148 1,33%
6 Membuat susu 142 5,33%
7 Membuat susu 150 0,00%
8 Membuat susu 152 1,33%
9 Membuat susu 150 0,00%
10 Membuat susu 148 1,33%
11 Membuat kopi susu 150 0,00%
12 Membuat kopi susu 152 1,33%
13 Membuat kopi susu 154 2,67%
14 Membuat kopi susu 154 2,67%
15 Membuat kopi susu 150 0,00%
16 Membuat cokelat 148 1,33%
17 Membuat cokelat 154 2,67%
18 Membuat cokelat 152 1,33%
19 Membuat cokelat 150 0,00%
20 Membuat cokelat 148 1,33%
1,40%
6,67%
8,07%
91,93%
Galat (%)PerintahKeluaran
Minuman (ml)Percobaan
TINGKAT KEBERHASILAN PENGISIAN CAIRAN
RATA-RATA GALAT KELUARAN CAIRAN
GALAT PENGUKURAN
TOTAL GALAT
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
2. 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
79
[10] 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
80
[22] Sharul., 2012, MIKROKONTROLER AVR Atmega8535 Menjelajahi : Prinsip-
prinsip,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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L2
2. Percobaan pada lama waktu pencuplikan 1 detik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L3
3. Percobaan pada lama waktu pencuplikan 1,5 detik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L5
LAMPIRAN B
RANGKAIAN KENDALI MESIN PEMBUAT MINUMAN
Rangkaian Minimum Sistem Atmega8535
Rangkaian LCD 16x2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L6
Rangkaian Regulator IC 7805 dan Penguat Arus
Rangkaian Transistor dan Relay Sebagai Saklar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L7
LAMPIRAN C
DATASHEET TRANSISTOR
Datasheet Transistor 2N3904 [26]
Datasheet Transistor 2N3055 [27]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
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.
CAIRAN : KOPI CAIRAN : SUSU CAIRAN : KOPI SUSU CAIRAN : COKELAT
DURASI
AKTIF (ms)
Volume
Cairan (ml)
DURASI
AKTIF (ms)
Volume
Cairan (ml)
DURASI
AKTIF (ms)
Volume
Cairan (ml)
DURASI
AKTIF (ms)
Volume
Cairan (ml)
500 30 500 20 500 30 500 40
1000 40 1000 30 1000 40 1000 50
1500 50 1500 40 1500 50 1500 60
2000 60 2000 50 2000 60 2000 70
2500 70 2500 60 2500 70 2500 80
3000 80 3000 70 3000 80 3000 90
3500 90 3500 80 3500 90 3500 100
4000 100 4000 90 4000 100 4000 110
4500 110 4500 100 4500 110 4500 120
5000 120 5000 110 5000 120 5000 130
5500 130 5500 120 5500 130 5500 140
5750 140 5750 130 5750 140 5750 150
6000 150 6000 140 6000 150 6000 160
6250 160 6250 150 6250 160 6250 170
6500 170 6500 160 6500 170 6500 180
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L9
LAMPIRAN E
PEMBENTUKAN DATABASE
Tabel L.1. Nama File Rekaman Untuk Masing-Masing Pengguna
PENGGUNA
NAMA FILE WAV
KOPI SUSU KOPSUS COKELAT
EVAN kopi01.wav susu01.wav kopsus01.wav coklat01.wav
KRIS kopi01.wav susu01.wav kopsus01.wav coklat01.wav
FIAN kopi01.wav susu01.wav kopsus01.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<k<1) alpha=0.95; for c=2:length(x0) x0(c)=x0(c)-alpha*(x0(c-1)); end % Normalisasi x1=x0/max(abs(x0)); % Potong kiri b1=find(x1>bataspotong | x1<-bataspotong); x1(1:b1(1))=[]; % Potong kanan x2=fliplr(x1'); b2=find(x2>bataspotong | x2<-bataspotong);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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<pjseg x0(pjseg)=0; % penyesuaian panjang segmen xseg=x0.*h'; % proses windowing segmtx(:,k)=xseg; % simpan hasil windowing n=0; elseif pjx0==0 n=0; end end
% Ektraksi ciri menggunakan FFT [baris,kolom]=size (segmtx) for k=1:kolom hdft=abs(fft(segmtx(:,k))); x1(:,k)=hdft(:); end sx1=size(x1) x1=x1(:); %diubah matriks kolom sx11=size(x1) x1=x1(1:length(x1)/2,:); %x4=x4(1:length(x4)/2,:); sx12=size(x1)
% Segment averaging x2=reshape(x1,segmentaveraging,[]);% hasil max:16 sx1=size(x1); sx2=size(x2) x2=mean(x2); x2=x2(:);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L11
LAMPIRAN F
PENGUJIAN PENGENALAN SECARA TIDAK REAL TIME
Tabel L2. Data Rekaman Untuk Masukan Pengujian Tidak RealTime Untuk Setiap
Pengguna
Rekaman
Ke-
Rekaman Data Ucapan
Kopi Susu Kopsus Coklat
1 kopi01.wav susu01.wav kopsus01.wav coklat01.wav
2 kopi02.wav susu02.wav kopsus02.wav coklat02.wav
3 kopi03.wav susu03.wav kopsus03.wav coklat03.wav
4 kopi04.wav susu04.wav kopsus04.wav coklat04.wav
5 kopi05.wav susu05.wav kopsus05.wav coklat05.wav
6 kopi06.wav susu06.wav kopsus06.wav coklat06.wav
7 kopi07.wav susu07.wav kopsus07.wav coklat07.wav
8 kopi08.wav susu08.wav kopsus08.wav coklat08.wav
9 kopi09.wav susu09.wav kopsus09.wav coklat09.wav
10 kopi10.wav susu10.wav kopsus10.wav coklat10.wav
11 kopi11.wav susu11.wav kopsus11.wav coklat11.wav
12 kopi12.wav susu12.wav kopsus12.wav coklat12.wav
13 kopi13.wav susu13.wav kopsus13.wav coklat13.wav
14 kopi14.wav susu14.wav kopsus14.wav coklat14.wav
15 kopi15.wav susu15.wav kopsus15.wav coklat15.wav
16 kopi16.wav susu16.wav kopsus16.wav coklat16.wav
17 kopi17.wav susu17.wav kopsus17.wav coklat17.wav
18 kopi18.wav susu18.wav kopsus18.wav coklat18.wav
19 kopi19.wav susu19.wav kopsus19.wav coklat19.wav
20 kopi20.wav susu20.wav kopsus20.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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L14
% Pemrosesan dari wavread hingga ekstraksi ciri FFT % Baca file wav x0=wavread(fwav); alpha=0.95; % nilai alpha (referensi: 0.9<k<1) for k=2:length(x0) x0(k)=x0(k)-alpha*(x0(k-1)); %figure(1) x1=x0(k); end % Normalisasi x1=x0/max(abs(x0)); % Potong ujung kanan-kiri sinyal x2=potong(x1,b0); % Penyesuaian ukuran sinyal x2(usig)=0; x3=x2(1:usig); % Ekstraksi ciri menggunakan FFT wx=dftz(x3); %======================================================================== function x2=potong(x1,b0) % Memotong data yang perlu % x1 : data masukan % b0 : batas pemotongan % x2 : data keluaran % Potong kiri b1=find(x1>b0 | 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<pjseg x0(pjseg)=0; % penyesuaian panjang segmen xseg=x0.*h'; % proses windowing segmtx(:,k)=xseg; % simpan hasil windowing n=0; elseif pjx0==0 n=0; end end % Ektraksi ciri menggunakan FFT [baris,kolom]=size (segmtx); for k=1:kolom hdft=abs(fft(segmtx(:,k))); x1(:,k)=hdft(:);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L20
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);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L21
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L22
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L25
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);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L26
% hObject handle to popupmenu17 (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 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L27
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)));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
Berdasarkan percobaan tersebut, telah didapatkan nilai similaritas untuk masing-
masing 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
KOPI SUSU KOPSUS COKELAT KOPI SUSU KOPSUS COKELAT KOPI SUSU KOPSUS COKELAT
1 0,8254 0,6393 0,5577 0,7423 0,8839 0,7407 0,9123 0,9146 0,8614 0,8347 0,9303 0,7402
2 0,9748 0,7883 0,7882 0,9058 0,7567 0,6770 0,9586 0,7741 0,8414 0,8342 0,9257 0,8617
3 0,8743 0,7858 0,8916 0,8179 0,8371 0,7524 0,8841 0,6891 0,8523 0,7615 0,7356 0,8595
4 0,8419 0,8473 0,8261 0,7360 0,8981 0,8549 0,9335 0,5994 0,8373 0,7557 0,6466 0,8607
5 0,6654 0,7951 0,8668 0,7949 0,8959 0,7293 0,9755 0,9017 0,8694 0,7969 0,7271 0,8625
6 0,9146 0,8400 0,8834 0,5512 0,7057 0,6228 0,8766 0,7022 0,6310 0,7898 0,7190 0,7584
7 0,8396 0,8261 0,7472 0,9382 0,9507 0,5962 0,9634 0,8087 0,8508 0,6354 0,8594 0,9290
8 0,8531 0,8028 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
Minimal0,6654 0,5727 0,5577 0,5512 0,6063 0,5637 0,8766 0,5994 0,6310 0,5328 0,6466 0,6078
FIAN
NILAI SIMILARITAS UCAPAN
EVAN
PER
COBAAN
NILAI SIMILARITAS UCAPAN
KRIS
NILAI 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
USERNILAI MINIMAL SIMILARITAS UCAPAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L30
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 <lcd.h>
#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)
{
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L31
// 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;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L32
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')
{
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L33
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();
}
};
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI