Top Banner
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 TERPUJI PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
132

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

Sep 19, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 2: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 3: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 4: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 5: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 6: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 7: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 8: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 9: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 10: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 11: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 12: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 13: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 14: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 15: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 16: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 17: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 18: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 19: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 20: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 21: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 22: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 23: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 24: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 25: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 26: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 27: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 28: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 29: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 30: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 31: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 32: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 33: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 34: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 35: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 36: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 37: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 38: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 39: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 40: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 41: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 42: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 43: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 44: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 45: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 46: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 47: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 48: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 49: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 50: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 51: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 52: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 53: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 54: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 55: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 56: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 57: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 58: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 59: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 60: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 61: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 62: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 63: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 64: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 65: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 66: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 67: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 68: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 69: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 70: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 71: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 72: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 73: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 74: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 75: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 76: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 77: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 78: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 79: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 80: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 81: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 82: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 83: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 84: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 85: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 86: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 87: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 88: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 89: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 90: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 91: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 92: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 93: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 94: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 95: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 96: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 97: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 98: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 99: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

LAMPIRAN

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 100: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 101: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

L2

2. Percobaan pada lama waktu pencuplikan 1 detik.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 102: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

L3

3. Percobaan pada lama waktu pencuplikan 1,5 detik.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 103: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 104: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

L5

LAMPIRAN B

RANGKAIAN KENDALI MESIN PEMBUAT MINUMAN

Rangkaian Minimum Sistem Atmega8535

Rangkaian LCD 16x2

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 105: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

L6

Rangkaian Regulator IC 7805 dan Penguat Arus

Rangkaian Transistor dan Relay Sebagai Saklar

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 106: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

L7

LAMPIRAN C

DATASHEET TRANSISTOR

Datasheet Transistor 2N3904 [26]

Datasheet Transistor 2N3055 [27]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 107: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 108: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 109: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 110: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 111: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 112: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 113: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 114: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 115: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 116: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 117: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 118: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 119: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 120: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 121: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 122: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 123: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 124: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 125: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 126: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 127: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 128: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 129: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 130: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 131: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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

Page 132: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI - core.ac.uk · tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai penulis.

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