APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi...

168
TUGAS AKHIR APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT PENULIS ANGKA Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Elektro Oleh : YOHANNES CHRYSOSTOMOS HENDRO YUWONO NIM : 115114024 PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Transcript of APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi...

Page 1: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

TUGAS AKHIR

APLIKASI PENGENALAN UCAPAN UNTUK

LENGAN ROBOT PENULIS ANGKA

Diajukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Teknik

Program Studi Teknik Elektro

Oleh :

YOHANNES CHRYSOSTOMOS HENDRO YUWONO

NIM : 115114024

PROGRAM STUDI TEKNIK ELEKTRO

JURUSAN TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2015

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 2: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

i

TUGAS AKHIR

APLIKASI PENGENALAN UCAPAN UNTUK

LENGAN ROBOT PENULIS ANGKA

Diajukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Teknik

Program Studi Teknik Elektro

Oleh :

YOHANNES CHRYSOSTOMOS HENDRO YUWONO

NIM : 115114024

PROGRAM STUDI TEKNIK ELEKTRO

JURUSAN TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2015

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 3: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

ii

FINAL PROJECT

SPEECH RECOGNITION APPLICATION FOR

ROBOTIC ARM NUMBERS WRITER

Presented as Partial Fulfillment of the Requirements

To Obtain the Sarjana Teknik Degree

In Electrical Engineering Study Program

YOHANNES CHRYSOSTOMOS HENDRO YUWONO

NIM : 115114024

ELECTRICAL ENGINEERING STUDY PROGRAM

DEPARTMENT OF ELECTRICAL ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2015

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 4: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

iii

HALAMAN PERSETUJUAN

TUGAS AKHIR

APLIKASI PENGENALAN UCAPAN UNTUK LENGAN

ROBOT PENULIS ANGKA

( SPEECH RECOGNITION APPLICATION FOR ROBOTIC

ARM NUMBERS WRITER )

Oleh :

YOHANNES CHRYSOSTOMOS HENDRO YUWONO

NIM : 115114024

Telah disetujui oleh :

Pembimbing

Dr. Linggo Sumarno Tanggal :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 5: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

iv

HALAMAN PENGESAHAN

TUGAS AKHIR

APLIKASI PENGENALAN UCAPAN UNTUK LENGAN

ROBOT PENULIS ANGKA

( SPEECH RECOGNITION APPLICATION FOR ROBOTIC

ARM NUMBERS WRITER )

Oleh :

YOHANNES CHRYSOSTOMOS HENDRO YUWONO

NIM : 115114024

Telah dipertahankan di depan panitia penguji

pada tanggal_____________

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,

Paulina Heruningsih Prima Rosa, S.Si., M.Sc.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 6: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

v

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa tugas akhir ini tidak memuat karya

orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana

layaknya karya ilmiah.

Yogyakarta,

Yohannes Chrysostomos Hendro Yuwono

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 7: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

vi

HALAMAN PERSEMBAHAN DAN MOTTO HIDUP

MOTTO :

“Mintalah, maka akan diberikan kepadamu; carilah,

maka kamu akan mendapat; ketuklah, maka pintu

akan dibukakan bagimu”

(Mat 7:7)

Dengan ini kupersembah karyaku untuk…..

Yesus Kristus dan Bunda Maria yang selalu mendampingiku dalam keadaan apapun

Orang tua yang selalu kucintai

Teman-temanku yang selalu saling menyemangati

Terima kasih...

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 8: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

vii

LEMBAR PERNYATAN PERSETUJUAN PUBLIKASI

KARYA ILMIAH UNTUK KEPENTINGAN

AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :

Nama : Yohannes Chrysostomos Hendro Yuwono

Nomor Mahasiswa : 115114024

Demi pengembangan ilmu pengetahuan, saya memberikan kepada perpustakaan

Universitas Sanata Dharma karya ilmiah saya yang berjudul :

APLIKASI PENGENALAN UCAPAN UNTUK LENGAN

ROBOT PENULIS ANGKA

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

tetapmencatumkan nama saya sebagai penulis.

Demikian pernyataan ini saya buat dengan sebenarnya.

Yogyakarta,

(Yohannes Chrysostomos Hendro Yuwono)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 9: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

viii

INTISARI

Kehidupan manusia tidak jauh dengan teknologi. Teknologi sangat membantu dalam

menyelesaikan tugas dan pekerjaan manusia. Menggunakan ucapan manusia sebagai

pengganti tombol untuk sebuah alat akan menjadi lebih efisien dibandingkan dengan hanya

menggunkan tombol saja. Atas dasar tersebut penulis membuat sistem pengenalan suara

untuk lengan robot. Secara khusus lagi, penulis membuat sistem pengenalan ucapan angka

0 – 9 untuk lengan robot menulis.

Sistem pengenalan ucapan angka ini menggunakan mikrofon untuk merekam

ucapan. Ucapan yang terekam diproses menggunakan laptop untuk menjalankan proses

pengenalan dan mengenali ucapan yang terekam. Proses pengenalan ucapan meliputi

beberapa subproses diantaranya merekam, pre-emphasis, normalisasi, pemotongan sinyal,

framing dan windowing, ekstraksi ciri, fungsi korelasi, k-NN, dan penentuan hasil ucapan

pengenalan. Lengan robot sebagai lengan untuk menulis menggunakan minimum sistem

dengan ATMEGA32 untuk mengatur pergerakan motor servo pada lengan robot.

Pengenalan ucapan untuk menjalankan lengan robot penulis angka berjalan

dengan baik untuk 3 user. Program pengenalan ucapan angka mampu mengenali 10 jenis

angka (satu, dua, tiga, empat, lima, enam, tujuh, delapan, sembilan, nol). Sistem

pengenalan ucapan menggunakan fungsi korelasi. Program pengenalan sudah berhasil

dibuat dan dapat bekerja sesuai dengan yang diharapkan. Pada program pengenalan ini

menampilkan gelombang ucapan terekam, ekstraksi ciri DFT, dan keluaran berupa tulisan

angka yang berhasil dikenali. Pada program ini didapatkan parameter terbaik pada nilai

segmen averaging 8 dan nilai k pada k-NN 1. Hasil pengenalan secara real time dengan

menggunakan nilai thresholding mampu mengenali semua user dengan sebesar 85,33%.

Kata kunci: Suara Manusia, Discrete Fourrier Transform (DFT), Lengan Robot.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 10: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

ix

ABSTRACT

Human life is not far form technology. Technology is very helpful in completing

human tasks and work. Using human speech instead of a button for an appliance would be

more efficient than just using the buttons itself. Based on this the author make a voice

recognition system for the robot arm. In particular, the authors made a speech recognition

system of numbers 0-9 for the robot arm to write.

This number speech recognition systems use a microphone for recording speech.

Recorded speech processed using a laptop to run the recognition process and recognize the

recorded speech. The Speech recognition process includes several subprocesses such as :

recording, pre-emphasis, normalization, cutting signal, framing and windowing, feature

extraction, correlation function, k-NN, and the determination of speech recognition results.

As the arm of the robot arm to write it is used the ATMEGA32, minimum system with

servo motors to regulate the movement of the robot arm

Speech recognition usage to movement robot,s arm for writing have gone well for

3 user. The speech recognition program is able to recognize 10 types of numbers (one,

two, three, four, five, six, seven, eight, nine, zero). Speech recognition system used

correlation function. Introduction program has been created and it could work as expected.

At the introduction of the program showing the recorded speech wave, DFT feature

extraction, and output a successful writing recognizable number. In this program,

parameter best in the value segment averaging 8 and the value of k at k-NN number 1. The

result with thresholding able to recognize 85.33% for all users.

Keywords: Human Voice, Discrete Fourier Transform (DFT), Robot Arm.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 11: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

x

KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus karena telah

memberikan 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 ada begitu banyak

pihak yang telah memberikan bantuan baik bantuan materi, moral maupun dukungan. Oleh

karena itu penulis ingin mengucapkan terimakasih kepada :

1. Petrus Setyo Prabowo, S.T., M.T., Ketua Program Studi Teknik Elektro

Universitas Sanata Dharma.

2. Dr.Linggo Sumarno, dosen pembimbing yang dengan penuh setia, kesabaran

dan pengertian untuk membimbing dalam menyelesaikan Tugas Akhir ini..

3. Bapak Dr. Iswanjono dan ibu Wiwien Widyastutu, S.T.,M.T selaku dosen

penguji yang telah member masukan dan kritik dalam penulisan Tugas Akhir

ini

4. Bapak dan Ibu dosen yang telah mengajarkan banyak ilmu yang bermanfaat

selama menempuh pendidikan di Universitas Sanata Dharma.

5. Segenap laboran dan karyawan Fakultas Sains dan Teknologi yang telah

memberikan dukungan secara tidak langsung dalam kelancaran penulis

mengerjakan penulisan tulisan tugas akhir ini.

6. Kedua orang tua penulis yang telah banyak memberikan dukungan doa, kasih

sayang dan motivasi selama menempuh pendidikan di Universitas Sanata

Dharma.

7. Teman – teman seperjuangan Teknik Elektro 2011 yang telah menemani di

pada saat menempuh pendidikan di Universitas Sanata Dhama.

8. Semua pihak yang tidak bisa disebutkan satu persatu yang telah banyak

memberikan banyak bantuan dan dukungan dalam menyelesaikan tugas akhir

ini.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 12: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

xi

Penulis menyadari bahwa dalam penyusunan laporan tugas akhir masih

mengalami kesulitan dan tidak lepas dari kesalahan.Oleh karena itu, penulis mengharapkan

masukan, kritik dan saran yang membangun agar skripsi ini menjadi lebih baik.Dan

semoga skripsi ini dapat bermanfaat sebagaimana mestinya.

Yogyakarta,

Penulis,

Yohannes Chrysostomos Hendro Yuwono

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 13: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

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. ...................................................................................... xix

BAB I PENDAHULUAN

1.1. Latar Belakang. ................................................................................................. 1

1.2. Tujuan dan Manfaat Penelitian ......................................................................... 2

1.3. Batasan Masalah ............................................................................................... 2

1.4. Metodologi Penelitian ...................................................................................... 3

BAB II DASAR TEORI

2.1. Lengan Robot .................................................................................................... 3

2.2. Mikrokontroler AVR ATMEGA32 ................................................................... 5

2.2.1. Arsitektur AVR ATMEGA32 ................................................................. 5

2.2.2. Deskripsi Mikrokontroler AVR ATMEGA32 ........................................ 6

2.2.3. Interupsi ................................................................................................... 7

2.2.4. Timer/Counter 0 ...................................................................................... 7

2.2.5. Komunikasi Serial USART ..................................................................... 9

2.3. LCD(Liquid Crystal Display) ............................................................................ 13

2.4. Regulator IC 78xx dan Transistor Penguat Arus............................................... 14

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 14: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

xiii

2.5. Torsi/momen gaya ............................................................................................. 16

2.6. Sinyal suara Manusia......................................................................................... 16

2.7. Sampling ............................................................................................................ 16

2.8. Preprocessing .................................................................................................... 17

2.8.1. Pre Emphasis ........................................................................................... 17

2.8.2. Normalisasi .............................................................................................. 17

2.8.3. Pemotongan SInyal.................................................................................. 19

2.8.1 Zero Padding ............................................................................................ 20

2.9 Framing ............................................................................................................. 21

2.10. Windowing ....................................................................................................... 21

2.10.1. Hamming .............................................................................................. 22

2.11. Ektraksi Ciri DFT ............................................................................................. 22

2.11.1. Pengertian DFT .................................................................................... 22

2.11.1. Segment Averaging ............................................................................... 23

2.12. Template Maching ............................................................................................ 24

2.12.1. Korelasi ................................................................................................. 24

2.13. K - nearest neighbor ......................................................................................... 25

2.14. Mikrofon ........................................................................................................... 25

2.15. Sound Card... .................................................................................................... 26

2.16. Motor Servo………………................................................................................. 27

BAB III PERANCANGAN

3.1. Proses Kerja ....................................................................................................... 29

3.2. Perancangan Mekanik Lengan Robot................................................................ 30

3.3. Perancangan Perangkat Keras ........................................................................... 32

3.3.1. Minimum sistem Atmega8535 + LCD 16x2 .......................................... 32

3.3.1.1. Minimum sistem Atmega8535 .................................................... 32

3.3.1.2. Rangkaian Konfigurasi LCD 16x2 ............................................. 33

3.3.2. Motor Servo ............................................................................................ 34

3.3.3. Regulator IC 7805dan Transistor Penguat Arus ..................................... 36

3.3.4. Soundcard ............................................................................................... 36

3.3.5. Headset ................................................................................................... 36

3.4. Perhitungan Torsi Motor Servo ........................................................................ 37

3.5. Perancangan Perangkat Lunak.......................................................................... 38

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 15: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

xiv

3.5.1. Antarmuka Program ............................................................................... 38

3.5.2. Proses Pengenalan Suara Pada Matlab ................................................... 39

3.5.2.1. Sampling ................................................................................... 40

3.5.2.2. Pre-emphasis ............................................................................. 41

3.5.2.3. Normalisasi ............................................................................... 41

3.5.2.4. Pemotongan sinyal .................................................................... 42

3.5.2.5. Framing dan Windowing .......................................................... 43

3.5.2.6. Ekstraksi ciri DFT .................................................................... 44

3.5.2.7. Korelasi ..................................................................................... 45

3.5.2.8. Klasifikasi K-nn dan penentuan keluaran ................................. 46

3.5.2.9. Proses pengiriman Serial .......................................................... 47

3.5.4. Perancangan Pembentukan Database Ucapan ........................................ 48

3.5.5. Bentuk Angka Digital ............................................................................. 48

3.5.6. Proses Flowchart Program Lengan robot ............................................... 49

BAB IV HASIL DAN PEMBAHASAN

4.1. Implementasi Lengan Robot ............................................................................. 61

4.1.1. Bentuk Fisik Hardware ........................................................................ 61

4.1.2. Sistem Elektronik .................................................................................. 61

4.1.3. Pengaturan Lengan Robot .............................................................. 62

4.1.4. Pengendalian Komunikasi USART................................... .................... 63

4.1.5. Pengendalian Motor Servo................................... ................................. 63

4.2. Implementasi GUI Matlab dan Program Pengenalan Ucapan .......................... 65

4.2.1. Pop Up Menu................................... ...................................................... 66

4.2.2. Tombol Rekam................................... ................................................... 68

4.2.3. Tombol Reset................................... ...................................................... 76

4.2.3. Tombol Keluar................................... .................................................... 77

4.3. Pengujian Sudut Motor Servo... ....................................................................... 77

4.4. Pengujian Untuk Tingkat Pengenalan Ucapan... .............................................. 79

4.4.1. Pengujian Pengenalan Ucapan Secara Tidak Real Time... .................... 79

4.4.2. Pengujian Pengenalan Secara RealTime... ............................................. 83

4.4.3. Pengujian Real Time Tanpa Nilai Thresholding Untuk penentuan Database...

.......................................................................................................................... 84

4.4.4. Pengujian RealTime dengan Nilai Thresholding... ................................ 89

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 16: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

xv

4.5. Hasil Pengujian Tulisan dari Lengan Robot... .................................................. 93

BAB V KESIMPULAN DAN SARAN

5.1. Kesimpulan ......................................................................................................... 95

5.2. Saran ................................................................................................................. . 95

DAFTAR PUSTAKA ................................................................................................ 96

LAMPIRAN .................................................................................................................. 98

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 17: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

xvi

DAFTAR GAMBAR

Halaman

Gambar 2.1. Manipulator pada robot lengan .............................................................. 4

Gambar 2.2. Konfigurasi Pin Mikrokontroler ATmega32 ......................................... 6

Gambar 2.3. Mode Phase Correct PWM ................................................................... 8

Gambar 2.4. Mode Fast PWM ................................................................................... 9

Gambar 2.5. Register UDR ........................................................................................ 10

Gambar 2.6. Register UCSRA ................................................................................... 10

Gambar 2.7. Register UCSRB .................................................................................... 11

Gambar 2.8. Register UCSRB .................................................................................... 12

Gambar 2.9. Konfigurasi kaki pin LCD ..................................................................... 13

Gambar 2.10. Rangkaian umum regulator 78xx .......................................................... 15

Gambar 2.11. Rangkaian catu daya dengan penguat. ................................................... 15

Gambar 2.12. Tampilan Proses Sampling .................................................................... 17

Gambar 2.13. Contoh hasil proses sampling ................................................................ 18

Gambar 2.14. Contoh hasil proses normalisasi ............................................................ 18

Gambar 2.15. Proses Pemotongan Sinyal .................................................................... 19

Gambar 2.16. Proses zero padding. .............................................................................. 20

Gambar 2.17. Proses framing.................................................................... ................... 21

Gambar 2.18. Proses Windowing.................................................................... ............. 21

Gambar 2.19. Contoh Hasil DFT.................................................................................. 23

Gambar 2.20. contoh segmen averaging dengan 16 segmen................................ ....... 24

Gambar 2.21. Headset INTOPIC JAZZ 660.. .............................................................. 26

Gambar 2.22 Bentuk Sound Card PC/Laptop .............................................................. 26

Gambar 2.23 Model fisik motor servo.......................................................................... 27

Gambar 2.22 Cara pengontrolan motor servo .............................................................. 28

Gambar 3.1. Arsitektur Sistem.. ................................................................................. 29

Gambar 3.2. Design lengan robot secara keseluruhan................................................ 30

Gambar 3.3. komponen bagian 1 ................................................................................ 30

Gambar 3.4. komponen bagian 2 ................................................................................ 30

Gambar 3.5. komponen bagian 3 ................................................................................ 31

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 18: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

xvii

Gambar 3.6. design awal ujung lengan robot ............................................................. 31

Gambar 3.7. Rangkaian Osilator ATmega32 ............................................................. 32

Gambar 3.8. Rangkaian Reset ATmega32 ................................................................. 33

Gambar 3.9. Skematik LCD 16x2 .............................................................................. 33

Gambar 3.10. SettingPort LCD .................................................................................... 34

Gambar 3.11. Rangkaian pin motor servo .................................................................... 34

Gambar 3.12. Lebar pulsa motor servo ........................................................................ 35

Gambar 3.13. Rangkaian regulator 7805 dengan penguatan arus ................................ 36

Gambar 3.14. konstruksi lengan robot ......................................................................... 37

Gambar 3.15. Tampilan Program Utama ..................................................................... 39

Gambar 3.16. Blok Diagram Pengenalan Ucapan ........................................................ 40

Gambar 3.17. Diagram Blok sampling ......................................................................... 40

Gambar 3.18. proses Pre-emphasis .............................................................................. 41

Gambar 3.19. Diagram Blok Normalisasi .................................................................... 42

Gambar 3.20. Diagram Pemotongan Sinyal................................................................. 42

Gambar 3.21. Diagram proses framing........................................................................ 44

Gambar 3.22. Diagram Blok ekstraksi ciri DFT …................................................... 45

Gambar 3.23. Diagram Alir Proses Pembandingan Korelasi........................................ 45

Gambar 3.24. Diagram alur K-NN dan penentuan suara hasil pengenalan ................. 46

Gambar 3.25. Flowchart program komunikasi serial dengan MATLAB ................... 47

Gambar 3.26. Alur Pembentukan Database …….…................................................... 48

Gambar 3.27. Bentuk angka digital ……………..…................................................... 49

Gambar 3.28. Flowchart Program Lengan Robot Saat Posisi Siaga............................ 53

Gambar 3.29. Flowchart Program Lengan Robot saat menulis angka 0...................... 53

Gambar 3.30. Flowchart Program Lengan Robot saat menulis angka 1...................... 54

Gambar 3.31. Flowchart Program Lengan Robot saat menulis angka 2...................... 54

Gambar 3.32. Flowchart Program Lengan Robot saat menulis angka 3...................... 55

Gambar 3.33. Flowchart Program Lengan Robot saat menulis angka 4...................... 55

Gambar 3.34. Flowchart Program Lengan Robot saat menulis angka 5...................... 56

Gambar 3.35. Flowchart Program Lengan Robot saat menulis angka 6...................... 56

Gambar 3.36. Flowchart Program Lengan Robot saat menulis angka 7...................... 57

Gambar 3.37. Flowchart Program Lengan Robot saat menulis angka 8...................... 57

Gambar 3.38. Flowchart Program Lengan Robot saat menulis angka 9...................... 58

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 19: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

xviii

Gambar 3.39. Fowchart penulisan angka keseluruhan ................................................. 59

Gambar 3.40. (lanjutan) Flowchart penulisan angka ................................................... 60

Gambar 4.1. Lengan Robot Tampak Atas .................................................................. 61

Gambar 4.2. Lengan Robot Tampak Samping............................................................ 61

Gambar 4.3 Minimum System………………............................................................... 62

Gambar 4.4. Regulator............................................................................................... 62

Gambar 4.5. Tampilan GUI Program Pengenalan. .................................................... 66

Gambar 4.25a. Bentuk hasil penulisan angka ............................................................... 93

Gambar 4.25b. Bentuk hasil penulisan angka .............................................................. 94

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 20: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

xix

DAFTAR TABEL

Halaman

Tabel 2.1. Hubungan PIN dan Interupsi ...................................................................... 7

Tabel 2.2. Penentuan Ukuran Karakter ....................................................................... 12

Tabel 2.3. Operasi Dasar LCD 16x2 ........................................................................... 13

Tabel 2.4. Karakteristik Regulator Tegangan ic 78xx ................................................. 14

Tabel 2.5. Tabel spesifikasi mikrofon pada headset INTOPIC JAZZ 660 ................. 25

Tabel 2.6. Spesifikasi servo Towerpro MG946R ........................................................ 27

Tabel 3.1. ukuran bagian-bagian lengan robot ............................................................ 31

Tabel 3.2. Perhitungan nilai overflow interrupt .......................................................... 35

Tabel 3.3. berat yang ditanggung servo ...................................................................... 38

Tabel 3.4. Keterangan Tampilan User............................................... .......................... 39

Tabel 3.5. Pengucapan kata dan data yang dikirim....................................... .............. 48

Tabel 3.6. Gerak sudut motor servo............................................................................ 49

Tabel 4.1. Tabel Fungsi Saluran Mikrokontroler. ....................................................... 62

Tabel 4.2. Nilai OCR pada pergerakan 10 derajat motor servo .................................. 78

Tabel 4.3. Perhitungan Lebar Pulsa Motor Servo Towerpro MG946R ...................... 78

Tabel 4.4. Tabel Pengenalan (%) dengan Database 1 Suara Secara Tidak RealTime 80

Tabel 4.5. Tabel Pengenalan (%) dengan Database 5 Suara Secara Tidak RealTime 80

Tabel 4.6. Tabel Pengenalan (%) dengan Database 10 Suara Secara Tidak RealTime 80

Tabel 4.7. Tabel Pengenalan (%) dengan Database 1 Suara Secara Tidak RealTime 80

Tabel 4.8. Tabel Pengenalan (%) dengan Database 5 Suara Secara Tidak RealTime 81

Tabel 4.9. Tabel Pengenalan (%) dengan Database 10 Suara Secara Tidak RealTime 81

Tabel 4.10. Tabel Pengenalan (%) dengan Database 1 Suara Secara Tidak RealTime 81

Tabel 4.11. Tabel Pengenalan (%) dengan Database 5 Suara Secara Tidak RealTime. 82

Tabel 4.12. Tabel Pengenalan (%) dengan Database 10 Suara Secara Tidak RealTime. 82

Tabel 4.13. Hasil Nilai batas bawah Yang Masih Dikenali Pada Setiap Ucapan.......... 83

Tabel 4.14 Confusion Matrix Pengujian secara realtime dengan database 1 untuk user 1…

.................................................................................................................... 84

Tabel 4.15. Confusion Matrix Pengujian secara realtime dengan database 5 untuk user

1……………………………………………….……………….. … 85

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 21: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

xx

Tabel 4.16. Confusion Matrix Pengujian secara realtime dengan database 10 untuk user 1

...................... .............................................................................................. 85

Tabel 4.17. Confusion Matrix Pengujian secara realtime dengan database 1 untuk user 2

. ................................................................................................................... 86

Tabel 4.18. Confusion Matrix Pengujian secara realtime dengan database 5 untuk user 2

................................................................................................................... . 86

Tabel 4.19. Confusion Matrix Pengujian secara realtime dengan database 10 untuk user 2

.................................................................................................................... 87

Tabel 4.20. Confusion Matrix Pengujian secara realtime dengan database 1 untuk user

3………………………………………………………………………. 87

Tabel 4.21. Confusion Matrix Pengujian secara realtime dengan database 5 untuk user

3…….…………………………………………………………………… 88

Tabel 4.22. Confusion Matrix Pengujian secara realtime dengan database 10 untuk user

3…….…………………………………………………………………… 88

Tabel 4.23. Data Hasil Pengujian Secara Real Time dengan Nilai Thresholding un untuk

User 1 ……………………………………………………………….. 89

Tabel 4.24. Data Hasil Pengujian Secara Real Time dengan Nilai Thresholding untuk User

2. ................................... ……………………………………………….. 90

Tabel 4.25. Data Hasil Pengujian Secara Real Time dengan Nilai Thresholding untuk User

Ketiga.………………………………………………………………….. 90

Tabel 4.26. Data Hasil Pengujian Pengucapan dengan Ucapan Lain pada User 1…… 91

Tabel 4.27. Data Hasil Pengujian Pengucapan dengan Ucapan Lain pada User 2…… 92

Tabel 4.28. Data Hasil Pengujian Pengucapan dengan Ucapan Lain pada User1……. 92

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 22: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

1

BAB I

PENDAHULUAN

1.1. Latar Belakang

Pada masa sekarang, aktivitas manusia tidak jauh dengan teknologi. Teknologi tidak

hanya berkembang pada bidang sains, tetapi sudah menjangkau dibidang lainnya, seperti

kedokteran, pertanian bahkan militer. Karena itu teknologi terus berkembang, sehingga

penggunaannya menjadi lebih mudah dari pada teknologi sebelumnya.

Lengan robot termasuk kedalam teknologi yang terus berkembang dalam

pemakaiannya[1]. Kegunaan lengan robot yang selain sebagai pengganti lengan pada

manusia untuk memindahkan barang tetapi bisa digunakan untuk aktivitas yang sering

dilakukan manusia ketika menggunakan tangannya yaitu menulis. Selain teknologi lengan

robot berkembang juga teknologi speech recognition, dimana menggunakan suara manusia

sebagai perintah untuk alat melakukan suatu fungsi[2].

Dengan gagasan diatas peneliti berkeinginan untuk membuat lengan robot yang bisa

beraktivitas untuk menulis dengan suara sebagai perintahnya. Sehingga tidak diperlukan

lagi remote control untuk menggunakan lengan robot. Dalam mencari ide peneliti

menemukan dalam penelitian sebelumnya mengenai Rancang Bangun Lengan Robot

Menulis Kata yang Dikendalikan oleh Aplikasi Android[3] dan penelitian lain mengenai

Pengenalan Ucapan Angka Secara Real Time Menggunakan Ekstraksi Ciri FFT dan Fungsi

Similaritas Kosinus[4].

Peneliti ingin merancang dan membuat lengan robot untuk menulis angka secara real

time dengan memanfaatkan suara manusia sebagai inputan. Oleh sebab itu peneliti

memakai ekstraksi ciri DFT dan fungsi korelasi, hal ini membedakan dengan penelitian

proses pengolah suara yang lainya. Dalam pembuatan lengan robot ini peneliti merancang

lengan robot dengan ujung yang terdapat spidol untuk menulis dengan 3 derajat kebebasan

atau degree of freedom ( DOF).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 23: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

2

1.2. Tujuan dan Manfaat

Tujuan dari penelitian ini :

1. Tujuan penelitian ini membuat dan merancang lengan robot penulis angka dari 0

sampai dengan 9 yang dapat bekerja dengan perintah suara.

Manfaat dari penelitian ini :

1. Manfaat dari penelitian sebagai perkembangan teknologi pada bidang kontrol

dalam bentuk perintah suara. Kemudian perkembangan teknologi lengan robot

sebagai alat untuk membantu pekerjaan manusia pada industri.

1.3. Batasan Masalah Penulis menetapkan beberapa batasan masalah pada perancangan sebagai berikut :

1) Masukan suara berupa suara penyebutan angka 0 sampai dengan 9, pengucapan

selain kata-kata yang sudah ditentukan akan dikenali secara salah.

2) Suara yang dikenali dari 3 user, peneliti dan 2 orang yang ditentukan oleh

peneliti dengan intonasi pengucapan secara normal.

3) Database suara terdiri dari 3 orang yang sesuai dengan user yang memberi

perintah suara.

4) Menggunakan Matlab untuk mengolah suara yang akan dikenali.

5) Pengenalan suara menggunakan ektraksi ciri DFT dan perhitungan korelasi.

6) Lengan robot menulis angka dengan style kotak berdasarkan suara yang

dikenali.

7) Lengan robot yang menggunakan bahan akrilik 3 mm.

8) Menggunakan 3 buah servo yang diprogram menggunakan codevision AVR.

9) Ujung lengan robot terdapat spidol untuk menulis di whiteboard.

10) Menggunakan minimum sistem dengan Atmega32.

11) Komunikasi antara Laptop dengan Atmega32 menggunakan komunikasi serial

USART yang dihubungkan dengan modul USB to TTL konverter yang telah

tersedia.

12) Lengan robot akan menulis pada sebuah papan tulis yang diletakan secara

vertikal.

13) Menggunakan headset Intopic Jazz 660 Hifi sebagai penangkap suara.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 24: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

3

1.4. Metodologi Penelitian

Langkah-langkah yang dilakukan dalam pengerjaan yaitu ;

1) Mengumpukan bahan-bahan referensi baik buku dan jurnal ilmiah yang

membahas mengenai pengenalan suara pada Matlab, membahas mengenai

lengan robot, pemograman pada codevision AVR.

2) Perancangan hardware dan software untuk perancangan desain lengan robot

dan alur jalan pada program.

3) Pembuatan hardware dan software berdasarkan desain yang telah dirancang

dan membuat berdasarkan alur program kerja.

4) Pengambilan data dengan melihat hasil pengamatan pengolahan suara dan hasil

keluarannya, dan pengamatan pada sudut pada servo yang memungkin menulis

angka secara digital.

5) Analisa dan penyimpulan hasil percobaan dilakukan dengan melihat persentase

error saat mendeteksi suara dan tingkat keberhasilan lengan robot menulis

angka.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 25: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

4

BAB II

DASAR TEORI

2.1. Lengan Robot

Lengan robot merupakan gabungan dari beberapa segmen dan sendi yang

secaraumum dibagi menjadi tiga bagian, yaitu:arm, wirst, dan gripper. Robotic Industries

Association (RIA) mendefinisikan lengan robot sebagai lengan yang didesain untuk

memindahkan material, benda, alat tertentu lewat pergerakan yang terprogram untuk

melakukan berbagai macam tugas [1]. Sistem lengan robot memiliki empat komponen

dasar, yaitu: manipulator, end effector, aktuator, dan kontroler.

Manipulator pada robot lengan memiliki 3 bagian, yaitu bagian dasar (base),

bagian lengan (arm), dan bagian pergelangan (wrist). Bagian-bagian manipulator pada

robot lengan dapat dilihat pada gambar 2.1.

Gambar 2.1. Manipulator pada robot lengan

Bagian dasar (base) manipulator bisa secara paten terpasang pada dasar area kerja.

Bagian lengan (arm) berfungsi untuk memposisikan end effector, dan bagian pergelangan

(wrist) berfungsi untuk mengatur arah gerak dari end effector. Bagian ujung pada robot

lengan terpasang end effector atau yang sering disebut dengan gripper yang berfungsi

sebagai bagian terakhir yang menghubungkan antara manipulator dengan objek. Sebagai

contoh gripper dapat berupa peralatan las, penyemprot cat ataupun hanya berupa

pencengkram objek[6].

Kontroler merupakan otak dari sistem robot sehingga keberadaannya sangat

penting. Kontroler menyimpan informasi yang berkaitan dengan data-data robot, dalam hal

ini data gerakan robot yang telah diprogram sebelumnya.Kontroler berfungsi untuk

mengontrol pergerakan dari manipulator. Kontroler sendiri diatur oleh sebuah informasi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 26: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

5

atau program yang diisikan dengan menggunakan bahasa pemrograman tertentu. Informasi

tersebut kemudian disimpan didalam memori. Data dalam memori dapat di keluarkan atau

di edit sesuai dengan yang dibutuhkan.

Aktuator adalah komponen penggerak yang jika dilihat dari prinsip penghasil

geraknya dapat dibagi menjadi tiga bagian yaitu penggerak berbasis motor listrik (motor

servo, motor steper, motor DC dan sebagainya), penggerak pneumatik (berbasis

kompresi:udara, nitrogen) dan penggerak hidrolik (berbasis benda cair: minyak pelumas).

2.2. Mikrokontroler AVR ATmega32

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 ATmega32. 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 ADC, PWM internal dan In-System Programmable Flash on-chip yang

mengijinkan memori program untuk diprogram ulang [8].

2.2.1. Arsitektur AVR ATmega32

Mikrokontroler ATmega32 memiliki arsitektur sebagai berikut :

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)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 27: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

6

2.2.2. Deskripsi Mikrokontroler ATmega32

Konfigurasi Pin Mikrokontroller ATmega32 dengan kemasan 40 pin DIP (dual in-

line package) dapat dilihat pada Gambar 2.2. 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[8].

Gambar 2.2. Konfigurasi Pin Mikrokontroler ATmega32[8]

Mikrokontroler Atmega 32 memiliki konfigurasi Pin sebagai berikut:

a. VCC (power supply)

b. GND (ground)

c. Port A (PA7…PA0) Port A berfungsi sebagai input analog pada ADC (analog

digital converter). Port A juga berfungsi sebagai suatu Port I/O 8-bit dua arah.

d. Port B (PB7…PB0) Port B adalah suatu Port I/O 8-bit dua arah dengan resistor

internal pull-up (yang dipilih untuk beberapa bit).

e. Port C (PC7…PC0) Port C adalah suatu Port I/O 8-bit dua arah dengan resistor

internal pull-up (yang dipilih untuk beberapa bit).

f. Port D (PD7...PD0) Port D adalah suatu Port I/O 8-bit dua arah dengan resistor

internal pull-up (yang dipilih untuk beberapa bit).

g. RESET (Reset input)

h. XTAL1 (Input Oscillator)

i. XTAL2 (Output Oscillator)

j. AVCC adalah pin penyedia tegangan untuk Port A dan ADC.

k. AREF adalah pin referensi analog untuk ADC.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 28: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

7

2.2.3. Interupsi

Interupsi adalah suatu kondisi dimana mikrokontroler akan berhenti sementara dari

program utama untuk melayani instruksi-instruksi pada interupsi kemudian kembali

mengerjakan instruksi program utama setelah instruksi-instruksi pada interupsi selesai

dikerjakan.

Table 2.1 Hubungan PIN dan Interupsi

Jenis interupt PIN pada Atemega 32

INT0 PORTD.2

INT1 PORTD.3

INT2 PORTB.2

ATmega32 menyediakan tiga interupsi eksternal yaitu, INT0, INT1, dan INT2. Masing-

masing interupsi tersebut terhubung dengan pin ATmega32 seperti ditunjukan pada Tabel

2.1. Interupsi eksternal bisa dilakukan dengan memberikan logika 0 atau perubahan logika

(rissing edge dan falling edge) pada pin interupsi yang bersangkutan[8].

2.2.4. Timer/Counter

Timer/Counter pada mikrokontroler AVR dapat digunakan untuk melakukan

pencacahan waktu seperti pada jam digital maupun untuk menghasilkan sinyal PWM

(Pulse Width Modulation) yakni sinyal kotak dengan frekuensi dan duty cycle yang

nilainya bisa diatur. Atmega32 memiliki tiga unit Timer/Counter yaitu Timer/Counter 0 (8

bit), Timer/Counter 1 (16 bit), dan Timer/Counter 2 (8 bit)[9].

TIMER/COUNTER 0

Fitur-fitur yang dimiliki:

a) Satu buah unit Compare Counter (Unit ini akan meng-count dan meng-compare)

b) Clear timer pada saat compare match (Auto reload)

c) Phase Correct PWM yang bebas glitch

d) Frequency generator

e) External event counter

f) Prescaler clock hingga 10 bit

g) Membangkitkan interupsi saat timer overflow dan atau compare match

Perhitungan overflow interrupt sebagai pembangkit PWM ditunjukan pada

persamaan 2.3, 2.4, dan 2.5 berikut:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 29: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

8

(2.1)

(2.2)

(2.3)

Keterangan :

f = frekuensi yang digunakan untuk eksekusi program

T = periode

N = prescaller yang digunakan

OCR = nilai cacahan pulsa

Pulse = lebar pulsa

Berikut merupakan mode-mode operasi timer :

a. Mode normal, timer digunakan untuk menghitung saja, membuat delay, dan

mengitung selang waktu[8].

Gambar 2.3.Mode Phase Correct PWM [8]

b. Mode phase correct PWM (PCP), digunakan untuk menghasilkan sinyal PWM

dimana nilai register counter (TCNT0) yang mencacah naik dan turun secara terus

menerus akan selalu dibandingakan dengan register pembanding OCR0. Hasil

perbandingan register TCNT0 dan OCR0 digunakan untuk membangkitkan sinyal

PWM yang dikeluarkan pada OC0 seperti ditunjukan Gambar 2.4[9].

c. CTC (Clear timer on compare match), register counter (TCNT0) akan mencacah naik

kemudian di-reset atau kembali menjadi 0x00 pada saat nilai TCNT0 sama dengan

OCR0. Sebelumnya OCR diset dulu, karena timer 0 dan 2 maksimumnya 255, maka

range OCR 0-255[9].

d. Fast PWM, mode ini hampir sama dengan mode phase correct PWM, hanya

perbedaannya adalah register counter TCNT0 mencacah naik saja dan tidak pernah

mencacah turun seperti terlihat pada Gambar 2.7[9].

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 30: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

9

Gambar 2.4.Mode Fast PWM [8]

2.2.5. Komunikasi Serial USART

Komunikasi USART (Universal Synchronous and Asynchronous serial Receiver

and Transmitter) adalah fasilitas komunikasi serial yang disediakan oleh mikrokontroler

Atmega32, baik secara sinkron maupun asinkron.Komunikasi seri dapat dibedakan

menjadi 2 macam, yaitu komunikasi data seri sinkron dan komunikasi data asinkron.

Dikatakan sinkron jika sisi pengirim dan sisi penerima ditabuh (clocked) oleh penabuh

(clock) yang sama, satu sumber penabuh, data dikirim beserta penabuh. Dikatakan

asinkron jika sisi pengirim dan sisi penerima ditabuh oleh penabuh yang terpisah dengan

frekuensi yang hampir sama, data dikirim disertai informasi sinkronisasi[8]. Pada proses

inisialisasi ini setiap perangkat yang terhubung harus memiliki baudrate yang sama.

Beberapa fasilitas yang disediakan USART AVR adalah sebagai berikut:

a. Operasi full duplex (mempunyai register receive dan transmit yang terpisah)

b. Mendukung kecepatan multiprosesor

c. Mode kecepatan berorde Mbps

d. Operasi asinkron atau sinkron

e. Operasi master atau slave clock sinkron

f. Dapat menghasilkan baud-rate (laju data) dengan resolusi tinggi

g. Modus komunikasi kecepatan ganda pada asinkron

2.2.5.1. Inisialisasi USART

Pada mikrokontroler AVR untuk mengaktifkan dan mengeset komunikasi USART

dilakukan dengan cara mengaktifkan register-register yang digunakan untuk komunikasi

USART. Register-register yang digunakan untuk komunikasi USART antara lain[8]:

USART I/O Data Register (UDR)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 31: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

10

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.

Gambar 2.5. Register UDR [8]

USART Control and Status Register A (UCSRA)

Gambar 2.6. Register UCSRA [8]

Penjelasan bit penyusun UCSRA[8]:

a. RXC (USART Receive Complete)

Bit ini akan set ketika data yang masuk ke dalam UDR belum dibaca dan

akan berlogika nol ketika sudah dibaca. Flag ini dapat digunakan untuk

membangkitkan interupsi RX jika diaktifkan dan akan berlogika nol secara

otomatis bersamaan dengan eksekusi vektorinterupsi yang bersangkutan.

b. TXC (USART Transmit Complete)

Bit ini akan set ketika data yang dikirim telah keluar. Flag ini akan

membangkitkan interupsi TX jika diaktifkan dan akan clear secara otomatis

bersamaan dengan eksekusi vektor interupsi yang bersangkutan.

c. UDRE (USART Data Register Empty)

Flag ini sebagai indikator isi UDR. Jika bernilai satu maka UDR dalam

keadaan kosong dan siap menerima data berikutnya, jika flag bernilai nol berarti

sebaliknya.

d. FE (Frame Error)

Bit ini sebagai indikator ketika data yang diterima error, misalnya ketika

stop bit pertama data dibaca berlogika nol maka bit FE bernilai satu. Bit akan

bernilai 0 ketika stop bit data yang diterima berlogika nol.

e. DOR (Data OverRun)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 32: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

11

Bit ini berfungsi untuk mendeteksi jika ada data yang tumpang tindih. Flag

akan bernilai satu ketika terjadi tumpang tindih data.

f. PE (Parity Error)

Bit yang menentukan apakah terjadi kesalahan paritas. Bit ini berfungsi jika

ada kesalahan paritas. Bit akan berlogika satu ketika terjadi bit parity error apabila

bit paritas digunakan.

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 diset nol.

h. MPCM (Multi Processor Communication Mode)

Bit untuk mengaktifkan modus multi prosesor, dimana ketika data yang

diterima oleh USART tidak mengandung informasi alamat akan diabaikan.

USART CONTROL AND STATUS REGISTER B (UCSRB)

Gambar 2.7. Register UCSRB [8]

Penjelasan bit penyusun UCSRB[8]:

a. RXCIE (RX Complete Interrupt Enable)

Bit pengatur aktivasi interupsi penerimaan data serial, akan berlogika satu

jika diaktifkan dan berlogika nol jika tidak diaktifkan.

b. TXCIE (TX Complete Interrupt Enable)

Bit pengatur aktivasi pengiriman data serial, akan berlogika satu jika

diaktifkan dan berlogika nol jika tidak diaktifkan.

c. UDRIE (USART Data Register Empty Interrupt Enable)

Bit ini berfungsi untuk mengaktifkan interupsi data register kosong,

berlogika satu jika diaktifkan dan sebaliknya.

d. RXEN (Receiver Enable)

Bit ini berfungsi untuk mengaktifkan pin RX saluran USART. Ketika pin

diaktifkan maka pin tersebut tidak dapat digunakan untuk fungsi pin I/O karena

sudah digunakan sebagai saluran penerima USART.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 33: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

12

e. TXEN (Transmitter Enable)

Bit ini 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)

Bit ini bersama dengan UCSZ1 dan UCSZ0 dalam register UCSRC

digunakan untuk memilih tipe lebar data bit yang digunakan.

Tabel 2.2. Penentuan Ukuran Karakter

UCSZ[2..0] Ukuran Karakter dalam

bit

0 5

1 6

10 7

11 8

100-110 Tidak dipergunakan

111 9

g. RXB8 (Receive Data Bit 8)

Bit ini digunakan sebagai bit ke-8 ketika menggunakan format data 9-10

bit, dan bit ini harus dibaca dahulu sebelum membaca UDR.

h. TXB8 (Transmit Data Bit 8)

Bit ini digunakan sebagai bit ke-8 ketika menggunakan format data 9-10

bit, dan bit ini harus ditulis dahulu sebelum membaca UDR.

USART CONTROL AND STATUS REGISTER C (UCSRC)

Gambar 2.8. Register UCSRC [8]

Penjelasan bit penyusun UCSRC[8]:

a. URSEL (Register Select) :

Bit ini berfungsi untuk memilih register UCSRC dengan UBBRH, dimana

untuk menulis atau membaca register UCSRC maka bit harus berlogika satu.

b. UMSEL (USART Mode Select)

Bit pemilih mode komunikasi serial antara sinkron dan asinkron.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 34: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

13

c. UPM[1…0] (Parity Mode)

Bit ini berfungsi untuk memilih mode paritas bit yang akan digunakan.

Transmittter USART akan membuat paritas yang akan digunakan secara otomatis.

d. USBS (Stop Bit Select)

Bit yang berfungsi untuk memilih jumlah stop bit yang akan digunakan.

e. UCSZ1 dan UCSZ0

Merupakan bit pengatur jumlah karakter serial Bit yang berfungsi untuk

memilih lebar data yang digunakan dikombinasikan dengan bit UCSZ2 dalam

register UCSRB.

f. UCPOL (Clock Parity)

Bit yang berguna hanya untuk modus sinkron. Bit in berhubungan dengan

perubahan data keluaran dan sampel masukkan, dan clock sinkron (XCK)[6].

2.3. LCD (Liquid Crystal Display)

LCD adalah salah satu komponen elektronika yang berfungsi sebagai tampilan

suata data, baik karakter dan huruf[10] agar dapat mengendalikan LCD karakter dengan

baik, tentu diperlukan koneksi yangbenar.Untuk itu perlu diketahui pin-pin antarmuka

yang dimiliki oleh LCD karakterseperti yang ditunjukan pada Gambar 2.11[10].

Gambar 2.9. Konfigurasi kaki pin LCD 16x2

Konfigurasi setting LCD 16x2 dapat dilihat pada tabel 2.3

Tabel 2.3. Operasi Dasar LCD 16x2[26]

No. Nama Fungsi

1 GND Ground

2 VCC 5V

3 VEE Ground

4 RS Register Select; H: Data Input; L: Instruction Input

5 RW H: Read; L: Write

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 35: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

14

Tabel 2.3.(lanjutan) Operasi Dasar LCD 16x2[26]

No. Nama Fungsi

6 EN Enable Signal

7 D0 Data Bus

8 D1 Data Bus

9 D2 Data Bus

10 D3 Data Bus

11 D4 Data Bus

12 D5 Data Bus

13 D6 Data Bus

14 D7 Data Bus

15 V+BL Positif backlight voltage

16 V–BL Negative backlight voltage

2.4. Regulator IC 78xx dan Transistor Penguat Arus

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 adalah salah satu

regulator tegangan tetap dengan tiga terminal, yaitu terminal Vin, GND dan Vout.

Regulator tegangan 78xx dirancang sebagai regulator tegangan tetap, meskipun demikian

keluaran dari regulator ini dapat diatur tegangan dan arusnya melalui tambahan komponen

eksternal.Spesifikasi karakteristik IC regulator seri 78xx dapat dilihat pada tabel 2.4.

Tabel 2.4. Karakteristik Regulator Tegangan ic 78xx [11]

Type VOUT (Volt) VIN (Volt)

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

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 36: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

15

Gambar 2.10. Rangkaian umum regulator 78xx [11]

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.4 dan 2.5 [11].

( )

(2.4)

( )

(2.5)

Komponen eksternal yang digunakan yaitu transistor 2N3055 karena kemampuan

arus maksimal adalah 15 A [12].Untuk gambar rangkaian lengkap dengan IC regulator

dapat ditunjukan gambar 2.11.

Gambar 2.11. Rangkaian catu daya dengan penguat[12]

Dari gambar 2.11, maka diperleh persamaan-persamaan sebagai berikut[12]:

VB = Vreg + VD (2.6)

Tegangan keluaran rangkaian menjadi,

Vo = Vreg – VBE (2.7)

Jika VD VBE, maka

Vo = Vreg (2.8)

Tegangan diantara kolektor dan emittor transistor 2N3055 adalah,

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 37: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

16

VCE = VIN – VR1(2.9)

Disipasi daya transistor NPN 2N3055 adalah,

PD = VCE x IC(2.10)

Untuk nilai penguatan arus diperoleh dengan persamaan dibawah ini :

Ic = β IB (2.11)

Ie = (β+1) IB (2.12)

2.5. Torsi / Momen Gaya

Momen Gaya adalah kemampuan gaya F memutar/merotasi benda terhadap poros

diam. Sehingga semakin besar torsi (τ) maka gaya F memutar benda pun semakin besar

[7].

Rumus :

τ = F r sin ϴ (2.13)

keterangan :

τ = Torsi (N-m)

r = Jarak dari titik pangakal gaya sampai sumbu putar

F = Gaya (N), F = m x g

ϴ = Derajat sumbu putar

2.6. Sinyal Suara Manusia

Suara termasuk sebagai suatu sinyal, seperti sinyal pada umumnya maka suara

manusia dapat merambat melalui media perantara. Suara dapat dihantarkan melalui

berbagai macam media, seperti media cair, gas ataupun media padat. Dengan mengambil

arti bahwa suara termasuk sebagai sinyal, maka suara manusia mempunyai frekuensi dan

amplitudo tertentu. Suara yang dapat didengar oleh manusia berkisar antara 20 Hz sampai

dengan 20 KHz dan suara manusia mempunyai frekuensi 300 – 3000 Hz, dimana Hz

adalah satuan frekuensi yang berarti banyak getaran per detik [13].

2.7. Sampling

Sampling merupakan proses pencuplikan sinyal kontinyu atau analog pada periode-

periode tertentu. Dalam proses ini sinyal suara akan dicuplik menjadi gelombang diskrit.

[14]. Dalam proses pencuplikan, ada yang disebut dengan frekuensi sampling.

frekuensisamplingmenandakan berapa banyak pencuplikan gelombang analog dalam satu

detik. Satuan dari frekuensi samplingialah Hertz (Hz).Proses sampling ditunjukan pada

gambar 2.12.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 38: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

17

Gambar 2.12. Tampilan Proses Sampling

Didalam kriteria Nyquist dituliskan bahwa frekuensi samplingminimal harus lebih

besar sama dengan 2 kali nilai frekuensi sinyal analog yang akan dicuplik .Kriteria Nyquist

perlu diperhatikan dalam melakukan pencuplikan.Lebih jelasnya kriteria Nyquist

menyatakan sebuah sinyal harus memiliki pencuplikan rate yang lebih besar dari 2

dengan adalah frekuensi paling tinggi yang muncul di sebuah sinyal.

2.8. Preprocessing

Prepocessing merupakan tahapan awal untuk mengkondisikan sinyal sebelum

diproses dalam ektraksi ciri.Preprocessing dilakukan untuk membuang noise pada sinyal

ucapan. Dalam preprocessing ada beberapa tahapan meliputi pre-emphasis,normalisasi,

pemotongan sinyal, dan zero padding.

2.8.1. Pre Emphasis

Pada proses pre emphasis sinyal denganfrekuensi tinggi diloloskan dan sinyal

denganfrekuensi rendah difilter hal ini dilakukan dengantujuan untuk meratakan bentuk

sinyal untukfrekuensi tinggi maupun rendah suara. Filter pre emphasis dinyatakan dalam

persamaan seperti berikut[15]:

s’(n) = s(n) – α*s(n−1) (2.14)

dimana:

s(n) =sampel sinyal masukan ke-n

α= konstanta dimana 0,9 <α < 1,0

2.8.2. Normalisasi

Normalisasi adalah proses dimana membuat penskalaan pada nilai amplitudo tiap

data sinyal sesuai skala yang diinginkan. Proses ini dilakukan agar nilai amplitudo pada

tiap data sinyal yang akan diolah bernilai sama. Besarnya nilai amplitudo sinyal suara

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 39: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

18

manusia saat melakukan pengucapan selalu berbeda-beda, sehingga penskalaan nilai

amplitudo sinyal terhadap acuan skala yang diinginkan sangat diperlukan [16].

( ( )) (2.15)

dengan keterangan sebagai berikut :

= hasil data sinyal normalisasi (1,2,3,…,N)

= data masukan dari sampling (1,2,3,…,N)

N merupakan banyaknya data sinyal.

Proses normalisasi sinyal suara diperlihatkan pada gambar 2.13. Gambar pada sisi

atas memperlihatkan sinyal yang akan dinormalisasi dan gambar pada sisi bawah

memperlihatkan hasil normalisasinya. Dari gambar tersebut diperlihatkan berubahnya nilai

amplitudo setelah skalanya diperbesar.

Gambar 2.13. Contoh hasil proses sampling

Gambar 2.14. Contoh hasil proses normalisasi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 40: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

19

2.8.3. Pemotongan Sinyal

Gambar 2.15. Proses Pemotongan Sinyal

0 1000 2000 3000 4000 5000 6000 7000 8000-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1Pemotongan data sinyal sebelah kiri

Data ke-

Ampli

tude

0 1000 2000 3000 4000 5000 6000 7000 8000-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1pembalik urutan data sinyal

Data ke-

Ampli

tude

0 500 1000 1500 2000 2500 3000-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1pemotongan data sinyal sebelah kanan

Data ke-

Ampl

itude

0 500 1000 1500 2000 2500 3000 3500 4000-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1Hasil pemotongan

Data ke-

Am

plitu

de

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 41: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

20

Pemotongan sinyal merupakan proses yang berkaitan dengan ekstraksi ciri. Proses

ini bertujuan untuk memotong beberapa bagian sinyal. Dalam proses perekaman,

pemotongan sering terjadi untuk bagian awal dan akhir sinyal. Pemotongan bagian awal

dan akhir sinyal suara dimaksudkan untuk menghilangkan bagian yang tidak termasuk

bagian dari sinyal ucapan serta untuk mengurangi cacat sinyal akibat derau ruangan yang

ikut terekam.Sinyal yang dianggap sebagi noise tersebut berasal dari suara lingkungan

sekitar atau derau pernapasan. Keberadaan sinyal tersebut akan lebih baik jika

diminimalisir dengan cara dihilangkan.

Pada grafikpertama dari gambar 2.15 dengan batas potong 0.3data sinyal hasil

normalisasi ditinjau kembali untuk mencari urutan data yang nilai amplitudonya di atas

nilai positif batas potong dan di bawah nilai negatif batas potong. Pada grafik kedua data

sinyal akan dihilangkan dari awal hingga data pertama dari hasil pencarian. Setelah

dihilangkan kemudian urutan data sinyal dibalik dari belakang ke depan seperti pada

grafikketiga. Kemudian proses diulang kembali dengan peninjauan data sinyal dan

menghapus data dari awal hingga data pertama dari hasil pencarian. Pada grafik kelima

urutan data sinyal diurutkan kembali dari belakang ke depan agar urutan datanya kembali

pada aslinya.

2.8.4. Zero padding

Zeropadding merupakan proses pemberian deretan data bernilai 0 pada data sinyal.

Efek dari pemotongan sinyal memungkinkan adanya dampak ketidaksamaan banyak data

sinyal. Proses zeropadding dilakukan agar panjang gelombang tiap data sinyal ucapan

dapat disetarakan. Jumlah data 0 yang diberikan menyesuaikan ukuran banyak data yang

diinginkan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 42: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

21

Gambar 2.16. Proses zero padding

2.9. Framing

Framing adalah 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 dicek setiap

frame sebesar nilai panjang frame yang telah ditentukan. Jika dalam pemeriksaan tersebut

sinyal data melebihi maka akan mengalami overlap, dimana akan sinyal data yang berlebih

tersebut akan dipotong sebesar nilai overlap. Nilai dari lebar frame (tf) adalah 512 [15] dan

nilai overlap (to) adalah 25% [20]dari nilai lebar segmen yaitu 128.

Gambar 2.17. Proses framing [15]

2.10. Windowing

Gambar 2.18. Proses Windowing

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 43: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

22

Windowing adalah proses dimana meminimalkan terjadinya diskontinuitas sinyal

yang muncul akibat pemotongan sinyal. Biasanya diskontinuitas muncul pada bagian tepi

awal dan akhir data sinyal suara. Proses windowing dilakukan agar dapat menghilangkan

sinyal yang tidak diingikan sebelum ke proses selanjutnya[16].

Pada grafik pertama dari gambar 2.18 merupakan data sinyal hasil pemotongan

yang akan diolah pada proses windowing. Grafik kedua merupakan pola jendela yang akan

digunakan dalam proses windowing. Jumlah titik-titik data pada pembentukan pola jendela

tersebut harus sama terhadap banyak data pada data sinyal. Pada grafik ketiga merupakan

hasil windowing. Hasil tersebut diperoleh dari perkalian elemen dari gambar pertama

dengan gambar kedua.

2.10.1. Hamming

Hamming window adalah salah satu dari berbagai macam jenis windowing.

Hamming windowmerupakan window yang mempunyai sidelobe yang paling kecil dan

mainlobe yang paling besar sehingga hasildari hamming windowakan lebih halus dalam

menghilangkan efek diskontunitas. Persamaan hamming window adalah [18]:

( ) (

) (2.15)

Di mana :

w(n) = Hasil windowing

N= Jumlah data dari sinyal

n= waktu distrik ke

2.11. Ekstraksi Ciri DFT

2.11.1. Pengertian DFT

DFT merupakan perluasan dari transformasi fourier yang berlaku untuk sinyal-

sinyal diskrit dengan panjang yang terhingga. Semua sinyak periodik terbentuk dari

gabungan sinyal-sinyal sinusoidal yang menjadi satu yang dirumuskan pada

persamaansebagai berikut [19]:

( ) ∑ ( ) ( ) (2.16)

Dengan:e = natural number (2.7182818284…)

j = konstanta fourrier

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 44: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

23

k = indeks dalam domain frekuensi (0, 1, 2, …,N-1)

n = indeks dalam domain waktu (0,1,2, …, N-1)

Gambar 2.19.ContohHasil DFT

2.11.2. Segment Averaging

Segment averaging merupakan metode untuk mengurangi jumlah data sinyal

dengan data sinyal masukan disegmentasi dengan lebar segment yang kemudian dicari

rata-ratanya pada tiap segment.Lebarnya segmen ditentukan berdasarkan kelipatan 2n

(dengan 1≤n≤ 8), sehingga banyaknya segment yang terbentuk didapat dari pembagian

seluruh data terhadap lebar segment. Keluaran dari porses segment averaging adalah rata-

rata dari setiap segment [4].

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 45: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

24

Gambar 2.20.contohsegmen averaging dengan 16 segmen

2.12. Template Maching

Template maching merupakan tahap pendekatan pengenalan pola dalam proses

pengenalan ucapan. Proses template maching digunakan untuk menentukan kesamaan pola

antara data masukan dengan pola database yang telah tersedia[17].

2.12.1. Korelasi

Korelasi digunakan untuk menghitung besarnya perubahan antara dua

variabel.Korelasi ini membagi dua variabel yang satu dengan yang lainnya yang saling

berhubungan. Korelasi dirumuskan sebagai berikut [25] :

( ) ∑ ( )( )

√∑ ( )

∑ ( )

(2.17)

Denganketerangansebagaiberikut :

= rata-rata variable data masukan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 46: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

25

= rata-rata variable data referensi

= data masukan

= data referensi

( )= hasilkorelasi antara x dan y

2.13. K- Nearest Neighbor

Alogarima yang disebut aturan tetangga terdekat atau biasa dikenal k - nearest

neighbor(k-NN) diringkas sebagai berikut [15]. Sebuah fitur yang tidak diketahui vector x

dan jarak mengukur, kemudian:

a. Diluar vektor N(jarak),identifikasi nilai k tetangga terdekat, terlepas dari label

kelas,untuk masalah 2 kelas dipilih dari nilai k yang ganjil, dan biasanyabukan

merupakan kelipatan dari banyaknya kelas M.

b. Dari sampel k tersebut, identifikasi jumlah vektor kiyang termasuk dalam kelas

ωi,I = 1,2,…, M . Dengan∑

c. Tetapkan x untuk kelas ωi dengan jumlah ki terbanyak dari sampel.

2.14. Mikrofon

Mikrofon dengan adalah perangkat yang mengubah gelombang suara menjadi

sinyal listrik. Mikrofon banyak digunakan untuk berbagai hal yang berhubungan dengan

komunikasi. Alat ini akan mengubah sinyal suara menjadi sinyal listrik yang kemudian

dapat diaplikasikan sebagai input. Mikrofon yang akan digunakan untuk pengambilan

suara adalah headset INTOPIC JAZZ 660. Mikrofon tersebut mempunyai spesifikasi

sebagi berikut :

Tabel 2.5 Tabel spesifikasi mikrofon pada headset INTOPIC JAZZ 660[22]

No Spesifikasi Nilai

1 Frequency Range 30 – 10.000 Hz

2 Microphone Sensitivity -54 3 dB

3 Impedance .2 k

4 Standard OperatingVoltage 3 V

5 Plug type 3.5mm stereo

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 47: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

26

Gambar 2.21.Headset INTOPIC JAZZ 660

2.15. Sound Card

SoundCard atau kartu suara adalah perangkat keras pada PC/laptop yang berguna

untuk mengolah audio atau suara [23].Perangkat ini dapat mengkonversi sinyal audio,

mengeluarkan sinyal audio, merekam sinyal audio, dan menyimpan sinyal audio.

Kemampuan pengolahan audio sangat banyak sehingga banyak perangkat lain dari

PC/laptop yang terhubung pada soundcard. Secara umum sound card memiliki beberapa

fungsi :

a. DSP (Digital Signal Processor) menangani jenis komputasi.

b. DAC (Digital to Analog Converter) memproses output audio.

c. ADC (Analog to Digital Converter) memproses inputan audio.

d. ROM (Read Only Memory) menyimpan data sementara.

e. MIDI (Musical Instrument Digital Interface) untuk koneksi peralatan musik

eksternal.

f. Jack digunakan untuk menyambung speaker dan mikrophone sebagai line out

dan line in.

Ada 3 jenis Sound Card berdasarkan kondisi pemasangan yaitu Sound Card

OnBoard, Sound Card Off Board, dan SoundCardExternal. Sound card pada perangkat

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. SoundCardExternal pemasangannya dihubungkan ke komputer melalui

port eksternal seperti USB atauFireWire.

Gambar 2.22. Bentuk Sound Card PC/Laptop [23]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 48: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

27

2.16. Motor Servo

Motor servo merupakan motor DC yang seudah dilengkapi dengan sistem kontrol

didalamnya. Pada aplikasinya, motor servo sering digunakan sebagai kontrol loop tertutup,

sehingga dapat menangani perubahan posisi secara tepat dan akurat [1].

Gambar 2.23. Model fisik motor servo

Tabel 2.6 Spesifikasi servo Towerpro MG946R [24]

Spesifikasi servo Towerpro MG946R

operating voltage 4.8V to 7.2V

operating speed 4.8v : 0.20sec/60o

operating speed 6.0v : 0.17sec/60o

stall torque 10.50 kg-cm @4.8V

stall torque 13 kg-cm @6V

gear type all metal gear

size 40.7 mm x 19.7 mm x 42.9 mm

weight 55 gram

Bentuk fisik motor servo dapat dilihat pada gambar 2.23. Sistem pengkabelan

motor servo terdiri dari 3 bagian, yaitu Vcc, Gnd, dan Kontrol (PWM). Penggunaan PWM

pada motor servo berbeda dengan penggunaan PWM pada motor DC. Pada motor servo,

pemberian nilai PWM akan membuat motor servo bergerak pada posisi tertentu lalu

berhenti (kontrol posisi) [1].

Pengaruh dari lebar pulsa membuat posisi motor servo akan berubah. Perubahan ini

agar terus berada pada posisi tetap misal dengan pulsa 2 ms akan memutar posisi servo

pada 180o maka perlu diberikan nilai pulsa secara konstan agar posisi servo tetap pada

sudut tersebut.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 49: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

28

Gambar 2.24. Cara pengontrolan motor servo [5]

Prinsip utama pengontrolan motor servo yaitu dengan memberikan nilai PWM

pada kontrolnya. Perubahan duty cycleakan menentukan perubahan posisi dari motor

servo. Motor servo memiliki frekuensi sebesar 50 Hz sehingga pulsa yang dihasilkan yaitu

setiap 20 ms. Lebar pulsa akan menentukan posisi motor servo yang dikehendaki [1].

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 50: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

29

BAB III

RANCANGAN PENELITIAN

Dalam bab III ini akan dibahas mengenai perancangan perangkat keras dan

perancangan perangkat lunak. Pembahasan mengenai proses kerja, perancangan mekanik

untuk lengan robot, perancangan hardware untuk komponen-komponen lengan lengan

robot, dan perancangan software untuk program lengan robot dan program suara.

3.1. Proses Kerja

Kerja sistem dirancang untuk mengenali suara yang diucapkan oleh user secara real

time untuk sebagai perintah dalam mengerakan lengan robot untuk menuliskan angka.

Ucapan berupa angka dari 0 sampai dengan 9 dari 3 user. Ucapan tersebut ditangkap

melalui mikrofon pada headset dan disalurkan menuju sound card untuk diubah menjadi

sinyal. Data sinyal akan diproses sebagai input oleh Matlab. Hasil dari proses oleh Matlab

dikirimkan ke mikrokontroler melalui USB to TTL. Data yang diterima kemudian diproses

mikrokontroler untuk mengoprasikan lengan robot. Lengan robot akan menuliskan angka

dari 0 – 9 sesuai dengan input yang diterima.

Gambar 3.1. Arsitektur Sistem

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 51: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

30

3.2. Perancangan Mekanik Lengan Robot

Perancangan lengan robot berupa desain lengan robot, bahan pembuatan lengan

robot yaitu akrilik setebal 3 mm. Desain lengan robot menggunakan software Google

sketchup utuk model 3 dimensi dan Corel Draw untuk model 2 dimensi. Lengan robot

dirancang terdiri dari link 1, link 2, base sebagai poros. Lengan robot dirancang dengan 3

derajat kebebasan, dengan spidol berada di ujung lengan robot.

Gambar 3.2. Design lengan robot secara keseluruhan

Gambar 3.3.komponen bagian 1

Gambar 3.4. Komponen bagian 2

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 52: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

31

Gambar 3.5. Komponen bagian 3

Gambar 3.2 merupakan gambar design lengan robot secara 3D. Link merupakan

penghubung antar bagian dari lengan robot dan joint merupakan bagian penggerak pada

sendi di lengan robot.

Gambar 3.6 design awal ujung lengan robot

Gambar 3.6 merupakan design kasar dari ujung pada lengan robot dimana pada

bagian belakang spidol terdapat suspense yang akan membuat spidol dapat maju dan

mundur. Fungsi dari suspensi ini berguna saat menulis, lengan robot tidak terkena tekanan,

tekanan akan teredam pada suspensi tersebut.

Tabel 3.1. ukuran bagian-bagian lengan robot

Bagian Lengan Robot Panjang lengan

Bagian 1 14 cm

Bagian 2 dan spidol 27 cm

Base 12 cm

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 53: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

32

3.3. Perancangan Perangkat Keras (hardware)

Ada beberapa komponen dalam perancangan subsistem perangkat keras lengan

robot pemisah benda, diantaranya yaitu :

a) Minimum Sistem Atmega32 + LCD 16x2

b) Motor servo

c) Regulator IC 7805 + penguat arus

d) Headset

e) Soundcard

3.3.1. Minimum Sistem Atmega32 + LCD 16x2

3.3.1.1. Minimum Sistem Atmega32

Rangkaian minimum sistem merupakan sistem utama dalam mengontrol

pergerakan lengan robot yang telah diprogram dalam mikrokontroler ATmega32 sesuai

dengan kebutuhan. Penggunaan mikrokontroler dapat diatur sebagai input dan output

mengontrol motor servo serta mengolah data serial yang dikirimkan dari komputer melalui

USB to TTL converter.

Untuk perancangan minimum sistem terdiri dari rangkaian eksternal yaitu

rangkaian osilator dan rangkaian reset. Rangkaian osilator menggunakan crystal dengan

frekuensi sebesar 11,0592 MHz dan menggunakan kapasitor 22 pf pada pin XTAL1 dan

XTAL2 di mikrokontroler sesuai dengan datasheet. Rangkaian osilator ini berfungsi

sebagai sumber clock bagi mikrokontroler. Pemberian kapasitor bertujuan untuk

memperbaiki kestabilan frekuensi yang diberikan oleh osilator eksternal. Gambar 3.7

menunjukan rangkaian osilator.

Gambar 3.7. Rangkaian Osilator ATmega32[8]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 54: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

33

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 seluruh proses yang sedang dilakukan mikrokontroler akan ter-reset.

Gambar 3.8. adalah rangkaian reset untuk ATmega32.

Gambar 3.8. Rangkaian Reset ATmega32[8]

Pada gambar 3.8 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 digunakan untuk

menghilangkan noise yang disusun seri dengan resistor. Rangkaian reset minimum system

Atmega32 merupakan gabungan dari rangkaian push-button dan low-pass filter.

3.3.1.2. Rangkaian Konfigurasi LCD 16x2

Rangkaian LCD digunakan untuk menampilkan angka yang diucapkan oleh user

sehingga akan terlihat apakah terdeteksi atau tidak. Rangkaian LCD dapat dilihat pada

gambar 3.9. Penentuan konfigurasi kaki LCD menuju mikrokontroler ditentukan dengan

melihat pada software Code Vision AVR seperti pada Gambar 3.10.

Gambar 3.9. Skematik LCD 16x2

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 55: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

34

Gambar 3.10. SettingPort LCD

3.3.2. Motor Servo

Dalam perancangan ini menggunakan motor servo sebagai penggerak dari lengan

robot. Motor servo yang digunakan yaitu Towerpro MG946R sebanyak 3 buah. Rangkaian

motor servo terdiri dari tiga port yaitu vcc,gnd,dan data. Pada jalur data berfungsi sebagai

jalur pengiriman pulsa PWM yang akan mengaktifkan motor servo. Gambar 3.11.

merupakan rangkaian pin untuk motor servo.

Gambar 3.11. Rangkaian pin motor servo

Dengan menggunakan interrups timer sebagai pembangkit PWM. Timer

merupakan sebuah counter dimana memiliki tugas menghitung „1,2,3,...” hingga 255 (8

bit) dan menyimpan hitungannya. Naiknya hitungan timer dan lama jeda antar hitungan

ditentukan dari siklus pencacah mikrokontroler. Pada perancangan motor servo, timer diset

agar menghitung sampai 255. Dan jika sudah mencapai 255, maka timer (overflow) akan

memberikan sinyal, PWM akan bekerja dan mengintruksikan timer untuk menghitung lagi

dari 0. Demikian seterusnya terjadi jika nilai 255 tercapai. Perbandingan nilai lebar pulsa

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 56: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

35

terhadap nilai overflow motor servo selama T = 20 ms, yang merupakan cacahan pulsa

selama 1 ms sampai 2 ms. Berikut perhitungan overflow interrupt sebagai pembangkit

PWM untuk mengatur motor servo.

Frekuensi kristal = 11,059200 MHz

T = (1/11059200)

= 0,090422 x 10-6

s.

Memakai timer 0 dan nilai precaler 256 untuk mengatur kecepatan clock maka

nilai timer overflow yang dihasilkan (0,090422 x 10-6

) x 256 = 23,148 x 10-6

. Dari hasil

tersebut untuk membuat interrupt dapat mencacah selama 20 ms yaitu (20ms/23,148x10-6

)

= 864. Tabel 3.2. menunjukan pemberian nilai pulsa untuk mengontrol pergerakan motor

servo secara umum. Dan Gambar 3.12. menunjukan lebar pulsa motor servo dengan

menggunakan persamaan 2.3.

Tabel 3.2. Perhitungan nilai overflow interrupt

SUDUT Lebar pulsa Nilai overflow interrupt

0o 1 ms OCR = = 43,20

90o 1,5 ms OCR = = 64,8

180o 2 ms OCR = = 86,40

Gambar 3.12. Lebar pulsa motor servo [5]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 57: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

36

3.3.3. Regulator IC 7805 dan Penguat Arus

Pada pembuatan tugas akhir ini, regulator digunakan sebagai pemberi daya pada

motor servo, minimum system ATmega32. Regulator terdiri dari IC 7805, 2N3055,

kapasitor, dan diode. Sumber yang digunakan untuk regulator yaitu menggunakan adaptor

switching yang telah tersedia di pasaran dengan spesifikasi keluaran tegangan 19 V dc dan

arus 4A.

Untuk men-supply motor servo Towerpro MG946R dibutuhkan arus sebesar

500 - 900 mA. Dengan demikian maka digunakan transistor 2N3055 agar arus keluaran IC

7805 yang memiliki tegangan keluaran sebesar 5 volt menjadi lebih besar. Tegangan 5 volt

merupakan tegangan kerja pada masing-masing servo yaitu kurang lebih 4 - 7,2 volt.

Komponen yang digunakan pada gambar 3.13 mengacu pada landasan teori[12].

Gambar 3.13. Rangkaian regulator 7805 dengan penguatan arus

3.3.4. Soundcard

Soundcard digunakan saat sampling untuk proses digitalisasi sinyal suara yang

ditangkap oleh mikrofon. Soundcard yang digunakan telah tertanam pada laptop yang akan

dipakai. Ucapan dari user berupa sinyal analog, sehingga diubah menjadi sinyal diskrit

agar dapat diolah dikomputer.

3.3.5. Mikrofon

Headset dengan mikrofon untuk menangkap sinyal analog dari input kemudian

diteruskan menuju soundcard pada laptop melalui line in yang ada pada sound card.

Headset yang digunakan dalam perancangan adalah Intopic Jazz 660. Headset ini

memiliki mikrofon dengan panjang 13.5 cm dengan berbentuk lurus. Hal ini digunakan

agar dapat mendapatkan data sinyal yang stabil ketika pengujian.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 58: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

37

3.4. Perhitungan Torsi Motor Servo

Untuk menghitung besar torsi pada masing-masing motor servo, digunakan rumus

dan persamaan 2.13. Gambar 3.14. merupakan gambar kontruksi lengan robot

untuk menghitung besar torsi masing-masing motor servo. Tabel 3.3. merupakan table

hitungan torsi pada tiap servo

Gambar 3.14. konstruksi lengan robot

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 59: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

38

Tabel 3.3 berat yang ditanggung servo

GAYA TORSI

Motor servo 1 (m = 137.7gr)

F = m x g

= 0,1377x 9,8

= 1,3494 N

Ket : servo 1 bergerak 0o,70

o,90

o ,110

o

Ket: 1 N-m = 10.1971621298 Kg-cm

Sudut 0o (r = 41 cm)

τ =1,3494x 0,41 x sin(0)

= 0 N-m = 0 kg-cm

Sudut 70o (r = 41 cm)

τ = 1,3494x 0, 41 x sin(70)

= 0,5198 N-m = 5,3013 kg-cm

Sudut 90o (r = 41 cm)

τ = 1,3494x 0, 41 x sin(90)

= 0,5532 N-m = 5,6415 kg-cm

Sudut 110o (r = 410 cm)

τ = 1,3494x 0,41 x sin(110)

= 0,5198N-m = 5,3013kg-cm

Motor servo 2 (m = 77,7 gr)

F = m x g

= 0,0777 x 9,8

= 0,7614 N

Ket : servo 2 bergerak 90o

Sudut 90o (r = 41 cm)

τ = 0,7614 x 0, 41 x sin (90)

= 0,3121 N-m = 3,18352 kg-cm

Motor servo 3 (m = 22,7gr)

F = m x g

= 0,0227 x 9,8

= 0,22246 N

Ket : servo 3 bergerak 70o

,80o,90

o

Sudut 70o (r = 27 cm)

τ = 0,22246 x 0, 27 x sin(70)

= 0,0564 N-m = 0,5753 kg-cm

Sudut 80o (r = 27 cm)

τ = 0,22246 x 0, 27 x sin(80)

= 0,0591 N-m = 0,6030 kg-cm

Sudut 90o (r = 27 cm)

τ = 0,22246 x 0, 27 x sin(90)

= 0,0600 N-m = 0,6123 kg-cm

Dari data tabel diatas didapatkan bahwa nilai servo yang ditanggung paling berat

adalah 5,6415 kg-cm, pada datasheet servo Towerpro MG946R diketahui bahwa dapat

mengangkat beban hingga 12 kg[24], dapat disimpulkan servo dapat menggangkat beban

pada lengan robot secara keseluruhan.

3.5. Perancangan Perangkat Lunak (Software)

3.5.1. Antarmuka Program

Perancangan dalam pembuatan perangkat lunak menggunakan pemograman

Matlab. Hal ini juga berlaku dalam tampilan antarmuka yang juga dibuat dengan

pemograman Matlab. Antarmuka dalam Matlab disebut dengan Graphical User Interface

(GUI).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 60: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

39

Gambar 3.15. Tampilan Program Utama

Keterangan dari tampilan utama dapat dilihat pada tabel 3.4.

Table 3.4. Keterangan Tampilan User

NO. NAMA BAGIAN KETERANGAN

1 Rekam Tombol tekan untuk memulai perekaman

2 Reset Tombol tekan untuk mengulang perekaman

3 Keluar Tombol tekan untuk mengakhiri aplikasi

4 Variabel Segment averaging Pilihan nilai panjang lebar pada segment averaging

5 Variabel K-NN Pilihan nilai k pada k-NN

6 Variabel user data base Pilihan user data base

7 Plot hasil perekaman Tampilan grafik untuk suara hasil perekaman

8 Plot hasil DFT Tampilan grafik hasil ektraksi ciri DFT

9 Hasil pengenalan Menunjukkan hasil pengenalan suara

3.5.2. Proses pengenalan suara pada MATLAB

Pada proses pengenalan suara oleh Matlab, memiliki proses kerja yaitu mula-mula

suara dari user terlebih dahulu dikenali menggunakan mikrophone yang dihubungkan pada

laptop. Data sinyal ucapan hasil sampling tersebut akan diolah dilaptop menggunakan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 61: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

40

software Matlab. Pengolahan data ucapan dilakukan melalui beberapa tahapan yaitu

preprocessing, framing, windowing, ekstraksi ciri, korelasi, dan K-NN. Pada tahap

preprocessing merupakan tahap pengkondisian sinyal. Preprocessing sendiri terdiri dari

beberapa tahap yaitu, preemphasis, normalisasi, pemotongan sinyal. Pada tahap

selanjutnya proses framing dan windowing dengan hasil prosesnya dilanjutkan pada tahap

korelasi, pada tahap ini database penyimpanan suara akan dipanggil sabagai data

perhitungan. Selanjutnya proses k-NN dimana akan menentukan hasil keluaran dari

pengenalan suara.

Gambar 3.16. Blok Diagram Pengenalan Ucapan

3.5.2.1. Sampling

Mulai

Masukan : perintah suara

Pencuplikan

Keluaran: Ucapan angka.wav

Selesai

Gambar 3.17. Diagram Blok sampling

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 62: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

41

Proses sampling merupakan proses pencuplikan ucapan manusia.. Percakapan

manusia mempunyai rentang frekuensi 300 Hz – 3000 Hz. Nilai frekuensi tersebut akan

digunakan untuk menentukan nilai frekuensi sampling. Nilai frekuensi ucapan ditentukan

pada nilai tertinggi yaitu 3000 Hz kemudian berdasarkan kriteria Nyquist minimum

frekuensi sampling ialah 2 kali dari frekuensi asal. Dengan memakai teori tersebut maka

penulis mengambil nilai sampling rate sebesar 6000 Hz dengan frekuensi asal 3000 Hz

(batas atas dari rentang frekuensi maksimal). Lama waktu penangkapan ucapan ditentukan

sebesar 2 detik. Waktu tersebut ditentukan agar kata yang diucapkan dapat terekam secara

utuh. Penentuan lama waktu berdasarkan hasil percobaan yang disertakan dalam lampiran

L1.

3.5.2.2. Pre-emphasis

Pada proses pre emphasis hasil sampling akan di filter agar dapat menghasilkan

bentuk sinyal yang lebih halus tanpa terganggunya noise dan mempertahankan sinyal suara

yang blur menjadi lebih jelas.

mulai

Masukan : hasil sampling

Proses Pre-emphasis

keluaran : hasil Pre-emphasis

Selesai

Gambar 3.18. proses Pre-emphasis

3.5.2.3. Normalisasi

Pada proses normalisasi ini digunakan untuk menyeragamkan nilai amplitudo dari

sinyal sampling yang sudah melewati proses pre-emphasis. Tujuan dari normalisasi yaitu

agar pengaruh dari kuat atau lemahnya suara yang diucapkan user dapat diminimalkan

dalam proses normalisasi. Hasil dari proses normalisasi ini dirancang agar batasan nilai

puncak maksimum dari data ucapan user tersebut bernilai 1 atau -1.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 63: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

42

Mulai

Masukan : Hasil Pre-empahsis

Normalisasi = sinyal hasil preemphasis / sinyal tertinggi dari hasil preemphasis

Keluaran : Hasil normalisasi

Selesai

Gambar 3.19. Diagram Blok Normalisasi

3.5.2.4. Pemotongan Sinyal

Mulai

Masukan :

- hasil normalisasi

- batas potong

Pemotongan sinyal sisi kiri hingga batas potong

Pemotongan sinyal sisi kiri hingga batas potong

Keluaran : Hasil pemotongan

Selesai

Membalik data sinyal

Membalik data sinyal ke kondisi awal

Gambar 3.20. Diagram Pemotongan Sinyal

Proses pemotongan sinyal bertujuan untuk menghilangkan suara lain yang ikut

terekam sebelum suara yang diinginkan terekam. Hal ini diperlukan agar proses

pengenalan mampu benar-benar hanya mengenali suara yang diperlukan saja. Masukan

pada proses pemotongan sinyal meliputi sinyal hasil normalisasi dan batas potong. Proses

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 64: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

43

pemotongan data sinyal dibatasi oleh nilai dari batas potong . Nilai batas potong yang akan

digunakan sebagai pemotongan sinyal sebesar 0,3 yang didapat dari referensi [21].

Proses pemotongan dilakukan dengan mencari data antara nilai batas potong yang

sudah ditentukan. Sebagai contoh jika nilai batas potong dimasukan nilai 0,3 maka nilai

yang akan diproses untuk pemotongan sinyal adalah antara 0,3 sampai -0,3. Data diantara

nilai batas potong tersebut akan dihilangkan dari data awal hingga data pertama pada hasil

pencarian data yang dilakukan. Pada saat proses pemotongan sinyal akan dijalankan secara

bertahap yang dimulai dari data sinyal bagian depan atau kiri dahulu dan dilanjutkan pada

akhir atau kanan sinyal.

Saat proses pemotongan data sinyal bagian depan atau bagian kiri sudah selesai,

maka akan dilakukan penyusunan data sinyal dari belakang menuju depan untuk

membalikan urutan data sinyal dari kanan ke kiri. Pembalikan urutan data sinyal tersebut

bertujuan untuk memotong data bagian akhir. Setelah data sinyal bagian akhir dipotong

maka data akan disusun kembali untuk mengembalikan pada posisi awal atau pada urutan

sebenarnya. Hasil pemotongan sinyal akan disesuainkan urutannya dengan proses zero

padding agar banyaknya data pada sinyal ucapan pada setiap percobaan pengucapan

berjumlah sama. Proses ini melakukan penyisipkan deretan nilai 0 pada bagian akhir data

ucapan.

3.5.2.5. Framing dan Windowing

Pada tahapan ini sinyal suara akan melalui proses framing. Pada proses framing

berfungsi untuk membagi tiap data ke beberepa bagian sebelum dilakukannya proses

ekstraksi ciri. Sinyal suara yang masuk akan dibandingkan dengan panjang frame, jika

nilai data sinyal lebih panjang dari panjang frame maka masuk ketahap windowing,

kemudian disimpan untuk dilakukan overlap. Overlap merupakan pemotongan sinyal yang

tidak dipakai dari proses framing, yaitu bagian yang melebihi dari panjang frame yang

telah ditentukan. Jika nilai data sinyal masukan lebih kecil atau sama dengan nilai panjang

segmen makan akan langsung mengalami windowing tanpa melalui framing dan overlap.

Nilai dari lebar frame (tf) adalah 512 [15] dan nilai overlap (to) adalah 25% [20] dari nilai

lebar frame yaitu 128.

Didalam proses framing terdapat proses windowing. Windowing merupakan proses

perancangan untuk membuat pola dalam masukan data ucapan sebelum masuk dalam

proses selanjutnya. Pada perancangan windowing ini peneliti menggunakan jenis

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 65: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

44

windowing hamming karena memiliki main lobe paling besar dan side lobe paling

kecil[18].

Mulai

Masukan :

- hasil data masukan

- nilai overlap frame

- nilai panjang frame

Keluaran : hasil framing

Selesai

data > = panjang frame

proses framing pada data masukan

Proses windowing :

hasil framing x hasil windowing

Simpan proses windowing

potong sinyal yang tidak dipakai

data < panjang frame

pemberian data 0 pada panjang segmen

Proses windowing :

hasil framing x hasil windowing

Simpan proses windowing

Ya

Tidak

Ya

tidak

3.21. Diagram proses framing

3.5.2.6. Ekstraksi Ciri DFT

Setelah melalui proses windowing, proses selanjutnya adalah penghitungan

ekstraksi ciri DFT. Ektraksi ciri DFT digunakan untuk mengubah sinyal menjadi

komponen frekuensi dasarnya. Pada proses DFT dilakukan proses penghitungan nilai

absolut DFT dan pemotongan setengah bagian dari hasil perhitungan nilai DFT.

Setelah proses ekstraksi ciri dilakukan proses segment averaging yang berfungsi

untuk melakukan segmentasi pada data hasil ekstraksi ciri. Segment averaging merupakan

metode untuk mengurangi jumlah data dengan cara mengelompokannya dalam rentang

segment kemudian dicari rata-ratanya pada tiap segment. Segment averaging digunakan

untuk mengurangi jumlah data ekstraksi ciri yang memiliki ukuran besar menjadi ukuran

kecil.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 66: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

45

Mulai

Masukan : Hasil dari Windowing

Mencari nilai absolut DFT

Keluaran : Hasil ekstraksi ciri DFT

Selesai

Proses segmen averaging

mengambil setengah bagian lain dari dari nilai DFT

Gambar 3.22. Diagram Blok ekstraksi ciri DFT

3.5.2.7. Korelasi

Pada proses ini korelasi berfungsi untuk menghitung besarnya perubahan antara dua

variabel. Fungsi ini membagi dua variabel yang satu dengan yang lainnya yang saling

berhubungan. Dalam hal ini yang menjadi variabel yang akan dibandingkan adalah data

referensi dan data terekam. Hasil penghitungan pembandingan kemudian digunakan

sebagai penentuan hasil keluaran pengenalan pada proses k-NN.

Mulai

Masukan :

- hasil ekstraksi ciri

- database

perhitungan korelasi antara hasil ekstraksi ciri dengan database

Keluaran : hasil korelasi

Selesai

Gambar 3.23. Diagram Alir Proses Pembandingan Korelasi.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 67: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

46

3.5.2.8. Klasifikasi k-NN dan penentuan keluaran

Pada tahap perancangan ini hasil pengenalan suara didapat dari masukan nilai

perhitungan korelasi. Hasil dari perhitungan korelasi dicari nilai terbesar kemudian

pengambilan nilai k dimana nilai k ditentukan oleh user. Dari hasil tersebut didapatkan

nilai korelasi. Nilai korelasi akan diproses pada thresholding, dimana hasil yang

didapatkan akan dibandingkan dengan nilai thresholding. Apa bila nilai korelasi lebih

kecil dari nilai thresholding maka akan error, jika lebih besar maka masuk ke proses

penentuan kelas. Penentuan keluaran dengan berdasarkan kelas yang paling banyak

muncul dengan menggunakan metode k-Nearest Neighbor. Hasil dari perhitungan dan nilai

kelas yang paling banyak muncul tersebut akan ditampilkan berupa keluaran text. Hasil

penentuan akan ditampilkan di tampilan GUI berupa tulisan.

Masukan :

1.Hasil Perhitungan korelasi

2.Nilai K-NN

3.Jumlah sampel per kelas

mengurutkan hasil perhitungan

jarak dari yang paling besar

Selesai

pengambilan k korelasi terbesar

pilih kelas yang paling sering muncul, sebagai kelas keluaran

Keluaran :

Data Hasil Keluaran K-NN

(Teks)

Keluaran : Error

Mulai

mencari index kelas dari korelasi

k terbesar

nilai korelasi terendah pada kelas keluaran≥

nilai thresholding

ya

tidak

Gambar 3.24. Diagram alur K-NN dan penentuan suara hasil pengenalan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 68: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

47

Untuk mendapatkan nilai thresholding dengan cara, pertama data masukan

pengucapan (contoh untuk angka 0) dicari nilai korelasi untuk setiap indeks (data referensi

angka 0) pada pengucapan angka 0. Setelah didapatkan hasil korelasi untuk setiap data

referensi yang berjumlah 10 nilai korelsi, karena data referensi untuk pengucapan angka 0

dilakukan pengambilan suara sebanyak 10 kali. Data hasil fungsi korelasi tersebut dipilih

nilai paling minimal, karena data referensi pengucapan angka 0 sebanyak 10 data referensi,

maka dilakukan percobaan dengan cara yang sama hingga 10 kali pengucapan. Setelah

didapatkan nilai korelasi minimal dari 10 kali percobaan, kemudian dicari nilai minimal

dari 10 nilai korelasi minimal yang telah didapatkan tadi. Nilai minimal inilah yang akan

menjadi thresholding untuk pengucapan angka 0. Untuk proses pengucapan angka lainya

berlaku hal yang sama.

3.5.3. Proses Pengiriman Serial

Proses pengiriman data secara serial ini merupakan proses setelah mengetahui hasil

pengenalan suara.

Gambar 3.25. Flowchart program komunikasi serial dengan Matlab

Data yang dikirimkan berupa data karakter a sampai j, sehingga tiap kategori

ucapan mengirimkan karakter yang berbeda. Tabel 3.5. menunjukan pengucapan kata dan

data yang dikirim.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 69: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

48

Tabel 3.5. Pengucapan kata dan data yang dikirim

Kata Data pengiriman

Satu “a”

Dua “b”

Tiga “c”

Empat “d”

Lima “e”

Enam “f”

Tujuh “g”

Delapan “h”

Sembilan “i”

Nol “j”

3.5.4. Perancangan Pembentukan Database Ucapan

Database yang dibentuk berupa hasil pengolahan sinyal dari rekaman kata yang

diucapkan oleh user. Database disimpan dalam bentuk Mfile didalam komputer. Blok

diagram pembentukan database ucapan ditunjukkan pada gambar 3.26.

Sampling NormalisasiPemotongan

sinyal

Ekstraksi ciri DFTDatabase

Masukan ucapan

Framing dan windowing

pre-emphasis

Gambar 3.26. Alur Pembentukan Database

Proses pembentukannya melalui beberapa tahapan yang serupa terhadap proses

pengenalan ucapan. Perbedaannya terletak pada tidak adanya proses perhitungan jarak,

sehingga pembentukan database berakhir pada proses ekstraksi ciri.

3.5.5. Bentuk Angka Digital

Angka yang diucapkan akan di tulis oleh lengan robot berbentuk digital. Angka itu

meliputi angka 0 – 9. Dalam bentuk digital angka tersebut seusai dengan gambar 3.27.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 70: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

49

Gambar 3.27. Bentuk angka digital

3.5.6. Proses flowchart program lengan robot

Dalam mendapatkan nilai sudut servo penulis menggunakan metode heuristik

dimana dengan membuat lengan robot sederhana (tanpa menggunakan motor servo) yang

memiliki ukuran yang sama dengan lengan robot yang akan dibuat. Kemudian dicari nilai

masing-masung sudut motor servo menggunakan busur derajat pada lengan robot siaga dan

lengan robot saat menulis angka. Untuk menulis angka digital terdapat titik sudut pada

angka digital tersebut yang akan menjadi patokan pergerakan dari motor servo.

Pergerakan motor servo mengikuti titik-titik yang telah terdapat angka secara

berurutan. Pada tabel 3.6. merupakan gerak lengan robot dari titik awal ketitik akhir.

Contoh untuk angka 0. Dalam penulisan lengan robot dari titik 1 setiap servo di berikan

nilai PWM yang menghasilkan nilai sudut yang telah dicari, kemudian secara bersamaan

diberikan nilai PWM secara langsung pada setiap servo hingga menggerakkan lengan robot

ke titik 2 sehingga menghasilkan garis segmen yang diharapkan.

Tabel 3.6. Gerak sudut motor servo

Angka Pergerakan motor servo (dalam derajat)

Posisi siaga :

Servo 1 = 90o

Servo 2 = 90o

Servo 3 = 90o

Garis 1 2 Garis 2 3

Servo 1 = 100o Servo 1 = 100 o

Servo 2 = 90 o Servo 2 = 90 o

Servo 3 = 90 o Servo 3 = 100 o

Garis 3 4 Garis 4 1

Servo 1 = 90 o Servo 1 = 90 o

Servo 2 = 90 o Servo 2 = 90 o

Servo 3 = 100 o Servo 3 = 90 o

1 2

6 3

5 4

1

4 3

2 1

2

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 71: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

50

Tabel 3.6.(lanjutan) Gerak sudut motor servo

Angka Pergerakan motor servo (dalam derajat)

1 2

6 3

5 4

1

4 3

2 1

2

Gerak 1 2

Servo 1 = 90 o

Servo 2 = 90 o

Servo 3 = 100 o

1 2

34

5 6

1 2

34

56

Garis 1 2 Garis 2 3

Servo 1 = 100o Servo 1 = 100 o

Servo 2 = 90 o Servo 2 = 90 o

Servo 3 = 90 o Servo 3 = 100 o

Garis 3 4 Garis 4 5

Servo 1 = 90 o Servo 1 = 90 o

Servo 2 = 90o Servo 2 = 90 o

Servo 3 = 100 o Servo 3 = 110 o

Garis 5 6

Servo 1 = 100 o

Servo 2 = 90 o

Servo 3 = 110 o

1 2

34

5 6

1 2

34

56

Garis 1 2 Garis 2 3

Servo 1 = 100 o Servo 1 = 100 o

Servo 2 = 90 o Servo 2 = 90 o

Servo 3 = 90 o Servo 3 = 100 o

Garis 3 4 Garis 4 3

Servo 1 = 90o Servo 1 = 100 o

Servo 2 = 90o Servo 2 = 90 o

Servo 3 = 100o Servo 3 = 100 o

Garis 3 5 Garis 5 6

Servo 1 = 100 o Servo 1= 90 o

Servo 2 = 90 o Servo 2 = 90 o

Servo 3 = 110 o Servo 3 = 110 o

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 72: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

51

Tabel 3.6.(lanjutan) Gerak sudut motor servo

Angka Pergerakan motor servo (dalam derajat)

1

2

4

3

5

Garis 1 2 Garis 2 3

Servo 1 = 90 o Servo 1 =100 o

Servo 2 = 90 o Servo 2 = 90 o

Servo 3 = 100 o Servo 3 = 100 o

Garis 3 4 Garis 4 5

Servo 1 =100 o Servo 1 = 100 o

Servo 2 = 90 o Servo 2 = 90 o

Servo 3 = 90 o Servo 3 = 110 o

2

5

1

43

6

Garis 1 2 Garis 2 3

Servo 1 = 80 o Servo 1 = 80 o

Servo 2 = 90 o Servo 2 = 90 o

Servo 3 = 90 o Servo 3 = 100 o

Garis 3 4 Garis 4 5

Servo 1 = 90 o Servo 1 = 90 o

Servo 2 = 90 o Servo 2 = 90 o

Servo 3 = 100 o Servo 3 =110 o

Garis 5 6

Servo 1 = 80 o

Servo 2 = 90 o

Servo 3 =110 o

32

45

1 2

3

1

Garis 1 2 Garis 2 3

Servo 1 = 90 o Servo 1 = 100 o

Servo 2 = 90 o Servo 2 = 90 o

Servo 3 = 100 o Servo 3 = 100 o

Garis 3 4 Garis 4 5

Servo 1 = 100 o Servo 1 = 90 o

Servo 2 = 90 o Servo 2 = 90 o

Servo 3 =110 o Servo 3 =110 o

Garis 5 2

Servo 1 = 90 o

Servo 2 = 90 o

Servo 3 =100 o

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 73: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

52

Tabel 3.6.(lanjutan) Gerak sudut motor servo

Angka Pergerakan motor servo (dalam derajat)

32

45

1 2

3

1

Garis 1 2

Servo 1 =100 o

Servo 2 = 90 o

Servo 3 = 90 o

Garis 2 3

Servo 1 = 100 o

Servo 2 = 90 o

Servo 3 = 100 o

1 2

34

56

Garis 1 2 Garis 2 3

Servo 1 = 100 o Servo 1 = 100 o

Servo 2 = 90 o Servo 2 = 90 o

Servo 3 = 90 o Servo 3 = 100 o

Garis 3 4 Garis 4 3

Servo 1 = 90o Servo 1 = 100 o

Servo 2 = 90o Servo 2 = 90 o

Servo 3 = 100o Servo 3 = 100 o

Garis 3 5 Garis 5 6

Servo 1 = 100 o Servo 1= 90 o

Servo 2 = 90 o Servo 2 = 90 o

Servo 3 = 110 o Servo 3 = 110 o

Garis 6 1

Servo 1 = 90 o

Servo 2 = 90 o

Servo 3 = 90 o

5

2 1

43

Garis 1 2

Servo 1 = 80 o

Servo 2 = 90 o

Servo 3 = 90 o

Garis 2 3

Servo 1 = 80 o

Servo 2 = 90 o

Servo 3 = 80 o

Garis 3 4

Servo 1 = 90 o

Servo 2 = 90 o

Servo 3 = 80 o

Garis 4 5

Servo 1 = 90 o

Servo 2 = 90 o

Servo 3 = 100 o

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 74: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

53

Gambar 3.28. merupakan flowchart lengan robot dalam keadaan siaga. Dimana

lengan robot belum mendapat hasil keluaran dari pengolahan suara. Pada gambar 3.29

sampai dengan gambar 3.38 merupakan flowchart lengan robot saat keadaan menulis

angka. Gambar 3.39. merupakan alur program secara keseluruhan dari lengan robot.

.

tidak

PORTB.3 = 0

PORTB.3 = 1

a<= servo 3?

PORTB.2 = 0

PORTB.2 = 1

a<= servo 2?

PORTB.1 =1

PORTB.1 = 0 a<= servo 1?

a=1

a==864?

Data overflow a==864, selama T=20 ms, a++

mulai

Servo 1 = 90 derajat

Servo 2 = 110 derajat

Servo 3 = 70 derajat

selesai

tekan tombol stop

ya

tidak

tidak

ya

ya

ya

tidak

ya tidak

Gambar 3.28. Flowchart Program Lengan Robot Saat Posisi Siaga

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 70 derajat

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 3 = 70 derajat

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 80 derajat

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 3 = 90 derajat

mulai

selesai

tekan tombol stop

ya

tidak

Siaga

( Gambar 3.28 )

Gambar 3.29. Flowchart Program Lengan Robot saat menulis angka 0

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 75: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

54

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 3 = 70 derajat

mulai

selesai

tekan tombol stop

ya

tidak

Siaga

( Gambar 3.28)

Gambar 3.30. Flowchart Program Lengan Robot saat menulis angka 1

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 90 derajat

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 3 = 80 derajat

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 80 derajat

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 3 = 70 derajat

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 70 derajat

mulai

selesai

tekan tombol stop

ya

tidak

Siaga

( Gambar 3.28)

Gambar 3.31. Flowchart Program Lengan Robot saat menulis angka 2

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 76: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

55

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 90 derajat

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 3 = 90 derajat

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 80 derajat

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 80 derajat

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 70 derajat

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 3 = 70 derajat

selesai

tekan tombol stop

ya

tidak

mulai

Siaga

( Gambar 3.28 )

Gambar 3.32. Flowchart Program Lengan Robot saat menulis angka 3

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 3 = 80 derajat

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 90 derajat

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 80 derajat

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 70 derajat

mulai

selesai

tekan tombol stop

ya

tidak

Siaga

( Gambar 3.28 )

Gambar 3.33. Flowchart Program Lengan Robot saat menulis angka 4

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 77: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

56

Servo 1 = 70 derajat

Servo 2 = 90 derajat

Servo 3 = 90 derajat

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 3 = 80 derajat

Servo 1 = 70 derajat

Servo 2 = 90 derajat

Servo 3 = 80 derajat

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 3 = 70 derajat

Servo 1 = 70 derajat

Servo 2 = 90 derajat

Servo 3 = 70 derajat

mulai

selesai

tekan tombol stop

ya

tidak

Siaga

( Gambar 3.28.)

Gambar 3.34. Flowchart Program Lengan Robot saat menulis angka 5

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 2 = 80 derajat

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 70 derajat

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 80 derajat

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 3 = 70 derajat

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 3 = 80 derajat

mulai

selesai

tekan tombol stop

ya

tidak

Siaga

( Gambar 3.28)

Gambar 3.35. Flowchart Program Lengan Robot saat menulis angka 6

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 78: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

57

selesai

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 90 derajat

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 80 derajat

mulai

tekan tombol stop

ya

Siaga

( Gambar 3.28.)

tidak

Gambar 3.36. Flowchart Program Lengan Robot saat menulis angka 7

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 90 derajat

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 80 derajat

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 3 = 80 derajat

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 3 = 70 derajat

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 70 derajat

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 3 = 90 derajat

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 3 = 80 derajat

Servo 1 = 110 derajat

Servo 2 = 90 derajat

Servo 3 = 80 derajat

mulai

selesai

tekan tombol stop

ya

Siaga

( Gambar 3.28)

tidak

Gambar 3.37. Flowchart Program Lengan Robot saat menulis angka 8

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 79: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

58

Servo 1 = 70 derajat

Servo 2 = 90 derajat

Servo 3 = 90 derajat

Servo 1 = 70 derajat

Servo 2 = 90 derajat

Servo 3 = 100 derajat

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 3 = 80 derajat

Servo 1 = 90 derajat

Servo 2 = 90 derajat

Servo 3 = 100 derajat

mulai

selesai

tekan tombol stop

ya

Siaga

( Gambar 3.28)

tidak

Gambar 3.38. Flowchart Program Lengan Robot saat menulis angka 9

Pada flowchart gambar 3.29 sampai dengan gambar 3.38 merupakan pergerakan

lengan robot sesuai dengan tabel 3.6. Pergerakan lengan robot mengikuti dengan

pernomoran yang telah ditentukan pada tabel 3.6.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 80: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

59

mulai

inisialisasi

Ada data masuk?

Periksa data masuk

jika data "a"

Lengan robot siaga

jika data "b"

tulis 1

tidak tidak

tulis 2

jika data "d"

tulis 3 tulis 3

jika data "c"

tidak

tekan tombol stop

Selesai

tidaktidak

C

A

B

ya

ya ya yaya

tidak

ya

Gambar 3.39. Fowchart penulisan angka keseluruhan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 81: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

60

jika

dat

a "j

"

tuli

s 0

tida

k

jika

dat

a "e

"

tuli

s 5

jika

dat

a "f

"

tuli

s 6

jika

dat

a "g

"

tuli

s 7

jika

dat

a "h

"

tuli

s 8

jika

dat

a "i

"

tuli

s 9

AC B

yatid

ak

tidak

tidak

tidak

tidak

yaya

yaya

ya

Gam

bar

3.4

0 (

lanju

tan)

Flo

wch

art

pen

uli

san a

ngka

kes

eluru

han

3.3

6.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 82: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

61

BAB IV

HASIL DAN PEMBAHASAN

Bab ini berisi tentang pengujian sistem pengenalan, gambar fisik hardware yang

dibuat, hasil pengujian sistem, pembahasan data yang diperoleh. Pengujian sistem perlu

dilakukan untuk mengetahui apakah suatu sistem telah bekerja dan berjalan sesuai

perancangan. Data-data hasil pengujian sistem yang telah dirancang menunjukkan bahwa

sistem berjalan sesuai perancangan. Analisa terhadap proses kerja sistem dapat digunakan

untuk menarik penyimpulan dari apa yg diperoleh dari analisa.

4.1. Implementasi Lengan Robot

4.1.1. Bentuk Fisik Hardware

Hasil perancangan lengan robot ditunjukan pada Gambar 4.1. Lengan robot

berwarna putih yang memiliki 3 buah servo Servo adalah Towerpro946R mengacu pada

subbab 2.16.

Gambar 4.1 Lengan Robot Tampak Atas Gambar 4.2 Lengan Robot Tampak Samping

4.1.2. Sistem Elektronik

Sistem elektronik terdiri dari rangkaian regulator dan penguat arus ,minimum

sistem mikrokontroler, dan LCD. Rangkaian regulator dan penguat arus, minimum sistem

mikrokontroler dan LCD ditunjukan pada gambar 4.3. dan gambar 4.4. Berikut bentuk fisik

rangkaian minimum sistem, LCD dan regulator

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 83: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

62

Gambar 4.3. Minimum System Gambar 4.4.Regulator

4.1.3. Pengaturan Lengan Robot

Lengan robot akan bergerak sesuai perintah dari mikrokontroler pada minimum

sistem. Hal tersebut terjadi karena adanya program yang tertanam pada mikrokontroler.

Mikrokontroler yang digunakan adalah ATmega32 sesuai dengan perancangan.

Mikrokontroler diprogram untuk melakukan komunikasi, dan menggerakan servo pada

lengan robot. Gerbang-gerbang pada mikrokontroler yang akan digunakan dalam

pemrograman untuk mengeksekusi kerja lengan robot ditunjukkan pada Tabel 4.1.

Tabel 4.1 Tabel Fungsi Saluran Mikrokontroler

Saluran Kegunaan

PORTB.0 Pengaturan sudut pada servo 1

PORTB.1 Pengaturan sudut pada servo 2

PORTB.2 Pengaturan sudut pada servo 3

Program pada mikrokontroler berisi inisialisasi data program dan program intinya.

Pada inisialisasi data program dilakukan pengaturan data-data awal seperti pendeklarasian

data dan pengaturan nilai-nilai. Program dibuat dengan aplikasi CodeVision AVR. Program

yang digunakan adalah program untuk komunikasi serial menggunakan USART dan

program pengendali motor servo menggunakan fasilitas interrupt.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 84: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

63

4.1.4. Pengendalian Komunikasi USART

Pada bagian ini membahas program yang berfungsi sebagai komunikasi serial

USART untuk mengkomunikasikan antara laptop yang digunakan dengan mikrokontroler

Atmega 32. Program pengendalian komunikasi USART ditulis sebagai berikut:

int a;

unsigned char b[16];

void komunikasi()

{

a=getchar();

lcd_gotoxy(0,0);

sprintf(b,"komunikasi= %d" ,a);

lcd_puts(b);

delay_ms(100);

lcd_clear();delay_ms(10);

}

Pada tahap komunikasi serial baudrate yang digunakan bernilai 9600bps. Fungsi “

getchar()” yaitu untuk menerima karakter dari laptop agar mikrokontroler dapat menerima

pada saat mengirimkan karakter yang mendefinisikan perintah setiap kondisi atau

pemanggilan fungsi pada karakter.

4.1.5. Pengendalian Motor Servo

Program pengendali motor servo menggunakan interrupt timer0 sebagai

pembangkit pulsa untuk menggerakan motor servo. Listing program pengendali sudut putar

motor servosebagai berikut :

#define servo1 PORTB.0

#define servo2 PORTB.1

#define servo3 PORTB.2

signed int i=0,data1=0,data2=0,data3=0;

// Timer 0 overflow interrupt service routine

interrupt [TIM0_OVF] void timer0_ovf_isr(void)

{

if (i>864)

{i=0;}

else

{i++;}

if (i<data1)

{servo1=1;}

else

{servo1=0;}

if (i<data2)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 85: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

64

{servo2=1;}

else

{servo2=0;}

if (i<data3)

{servo3=1;}

else

{servo3=0;}

}

Listing program di atas adalah penyetingan port yang digunakan motor servo.

Kodisi nilai i++ artinya adalah timer mulai mencacah dari 0 hingga 255, jika lebih dari itu

maka timer overflow dan mulai mengaktifan PWM. Nilai 864 adalah nilai overflow selama

perioda motor servo yaitu 20ms.Kemudian pemberian logika high pada tiap port, jika

kondisi nilai i lebih kecil dari pada nilai variabel data1(servo1), data2(servo2),

data3(servo3), sehingga mulai memberikan pulsa agar motor servo bergerak dan logika low

jika kondisinya tidak terpenuhi maka portb akan direset.

void siaga_robot()

{

data1=64; //90

delay_ms(100);

data2=69; //80

delay_ms(100);

data3=75; //90

delay_ms(100);

}

Pada program ini berfungsi untuk memberikan nilai OCR untuk menentukan sudut

yang diinginkan sesuai kondisi. Program diatas salah satu kondisi lengan robot pada

kondisi siaga.Program ditulis sebagai berikut:

void angka_satu()

{

//12

data1=64; //90

delay_ms(100);

data2=69; //90

delay_ms(100);

for (data3=75;data3<=80;data3++) //100

{

delay_ms(100);

};

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 86: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

65

//mundur

for (data2=69;data2>=50;data2--)

{

delay_ms(100);

};

siaga2_robot();

delay_ms(500);

for (data2=50;data2<=69;data2++)

{

delay_ms(100);

};

}

Program diatas merupakan program penulisan angka 1 Untuk mempermudah dalam

penentuan tahapan sudut motor servo, digunakan fungsi “for” untuk mencacah nilai OCR

secara satu per satu. Setiap tahap diberikan fungsi “for” dan diberi “delay” supaya

pergerakan lengan robot lebih halus dan pelan. Program pengulisan angka 1 mengacu

pada flowchart 3.30. Program pergerakan lainnya dapat di lihat pada Lampiran (L37).

4.2. Implementasi GUI Matlab dan Program Pengenalan Ucapan

Pengujian aplikasi dilakukan bertujuan untuk mengetahui apakah sistem yang telah

dirancang berjalan sesuai perancangan. Pengujian program dilakukan dengan spesifikasi

sebagai berikut:

Processor : Intel Core i5

RAM : 2 GB

Windows : 7

GUI dibuat supaya dapat mempermudah user dalam menggunakan aplikasi

penelitian ini. Terdapat beberapa komponen yang dapat digunakan untuk mengeksekusi

atau menampilkan perintah. Komponen tersebut dapat diprogram sehingga user dapat lebih

mudah dalam mengeksekusi aplikasi tersebut. Hasil pembuatan GUI ditunjukan pada

Gambar 4.5.:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 87: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

66

Gambar 4.5. Tampilan GUI Program Pengenalan

Pada tampilan GUI digunakan tools pada Matlab seperti axes, pop_upmenu, text,

dan pushbutton.User dapat menjalankan program pengenalan ucapan dengan mengisi

pengaturan user, lebar segmentaveragingdan nilai k pada KNN pada pop_upmenu yang

akan diproses untuk pengenalan ucapan. Setelah memilih pengaturan yang diinginkan,

program bisa dijalankan dengan menekan tombolREKAM apabila user tidak melakukan

pengaturan pada variasi nilai yang terdapat pada aplikasi GUI maka program tidak bisa

dijalankan. Hasil rekaman suara akan ditampilan pada “PLOT INPUT UCAPAN” dan

hasil ektraksi rekaman suara akan ditampilkan di “PLOT EKSTRAKSI CIRI” seperti pada

gambar 4.5. Tombolpushbutton “RESET” berfungsi jika user ingin merestart program

pengenalan ucapan. Tombol pushbuttonKELUAR digunakan jika user ingin

menyelesaikan program dan keluar dari tampilan utama program pengenalan ucapan.

4.2.1. Pop Up Menu

Pada aplikasi pengenalai ini terdapat 2 variasi nilai yang digunakan untuk

melakukan pengenalan ucapan yaitu nilai k pada knn dan nilai segmentaveraging. Variasi

user menggunakan popupmenu 1 dengan nilai variasi 1;2;3. Variasi nilai

segmentaveraging menggunakan popupmenu2 dengan nilai variasi 8;16;32;62. Variasi

nilai k pada knn menggunakan popupmenu3 dengan nilai variasi 1;3;5;7. Program variasi

pada popupmenu 1 akan dituliskan seperti berikut:

indeks=get(handles.popupmenu1,'Value');

switch indeks

case 1

user=1;

case 2

user=2;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 88: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

67

case 3

user=3;

end

handles.xuser=user;

guidata(hObject,handles);

Pada program pop up menu 1 diguanakan untuk variasi user dengan variasi 1;2;3.

Inisialisasi tiap nilai dengan variabel “user” kebudian diubah menjadi “xuser”

menggunakan fungsi “handles”. Proses ini sama dengan program popupmenu sebelumnya.

segav=get(handles.popupmenu2,'Value');

switch segav

case 1

frame=8;

case 2

frame=16;

case 3

frame=32;

case 4

frame=64;

end

handles.varse=frame;

guidata(hObject,handles);

Pada program pop up menu 2 diguanakan untuk variasi nilai segmentaveraging dengan

nilai 8;16;32;64. Inisialisasi tiap nilai dengan variabel “frame” kemudian diubah menjadi

“varse” menggunakan fungsi “handles”. Proses ini sama dengan program popupmenu

sebelumnya.

nknn=get(handles.popupmenu3,'Value');

switch nknn

case 1

knn=1;

case 2

knn=3;

case 3

knn=5;

case 4

knn=7;

end

handles.varknn=knn;

guidata(hObject,handles);

Pada program pop up menu 3 digunakan untuk variasi nilai k pada knn dengan nilai

1;3;5;7. Inisialisasi tiap nilai dengan variabel “knn” kemudian diubah menjadi “varknn”

menggunakan fungsi “handles”. Proses ini sama dengan program popupmenu sebelumnya.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 89: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

68

4.2.2. Tombol Rekam

Tombol “REKAM” merupakan tombol yang berfungsi melakukan pengenalan

ucapan mulai dari inisialisasi perekaman(sampling), preemphasis, normalisasi,

pemotongan sinyal,zeropadding, framingwindowing, ektraksi ciri, korelasi, penentuan hasil

keluaran pada GUI dan pengiriman data serial menuju mikrokontroler.

Program perekaman pengenalan ucapan dibuat sesuai perancangan diagram blok

pada gambar 3.17. Penulisan program untuk melakukan perekaman sebagai berikut.

sample_length=2;

sample_freq=6000;

sample_time=(sample_length*sample_freq);

x=wavrecord(sample_time, sample_freq);

Program perekaman ucapan angka memakai frekuensi sampling 6000 Hz dan

durasi perekaman 2 detik. Program sample_time berfungsi untuk menampilkan gambar

perekaman sebesar 12000 Hz. Ucapan angka yang telah direkam ditampilkan dalam “Plot

input ucapan”. Program untuk menampilkan gambar sinyal hasil perekaman ucapan angka

adalah sebagai berikut :

axes(handles.axes1);

plot(x);

Program preprocessing dilakukan agar masukan data sinyal ucapan dapat diolah

terlebih dahulu. Program preprocessing terdiri dari 4 bagian yaitu preemphasis,

normalisasi, pemotongan sinyal dan zeropadding. Program dituliskan sebagai berikut:

varuser=handles.xuser;

varse=handles.varse;

vark=handles.varknn;

% Preemphasis

b0=0.3;

x0=x;

usig=4096;

alpha=0.95;

for k=2:length(x0)

x0(k)=x0(k)-alpha*(x0(k-1));

end

% Normalisasi

x1=x0/max(abs(x0));

%PEMOTONGAN SINYAL:

% Potong kiri

b1=find(x1>b0 | x1<-b0);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 90: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

69

x1(1:b1(1))=[];

% Potong kanan

x2=fliplr(x1');

b2=find(x2>b0 | x2<-b0);

x2(1:b2(1))=[];

x2=fliplr(x2);

% ZERO PADDING

x2(usig)=0;

x3=x2(1:usig);

Proses preemphasis merupakan proses awal dimana sinyal masukan akan diupdate

nilainya dari sebelumnya. Nilai preemphasis menggunakan fungsi for dan dimulai dari 2

dimana jika dimulai dari 1 tidak terdapat nilai sebelumnya. Proses perhitungan

preemphasis sesuai pada perancangan dengan nilai alpha 0.95. Proses preemphasis

mengacu pada flowchart yang telah dibuat pada gambar 3.18

Proses normalisasi melakukan perubahan 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 flowchart yang

telah dibuat pada gambar 3.19.

Prosesselanjutnya adalah pemotongan sinyal proses dimana nilai data yang berada

pada kondisi lebih besar dari batas potong atau lebih kecil dari negatif batas potong akan

diambil datanya. Hasil dari tersebut tidak menampilkan nilai datanya melainkan

menampilkan nomor urutan datanya. Data urutan pertama menjadi batas akhir pemotongan

data, sehingga data hasil normalisasi akan dihilangkan dari awal hingga data tersebut.

Proses zeropadding 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 4096 sesuai perancangan.

Program penambahan deretan “0” hingga data ke 4096.

Setelah proses preprocessing dilanjutkan dengan proses framing dan windowing

sebelum masuk pada tahap proses ektraksi ciri. Program framing dan windowing dituliskan

sebagai berikut:

pjseg=512;

ovlseg=128;

h=hamming(pjseg);

n=1;k=1;

while n==1

pjx0=length(x3);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 91: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

70

if pjx0>=pjseg

xseg=x3(1:pjseg);

xseg=xseg.*h';

segmtx(:,k)=xseg;

x3(1:pjseg-ovlseg)=[];

k=k+1;

elseif pjx0==0

n=0;

else

x3(pjseg)=0;

xseg=x3.*h';

segmtx(:,k)=xseg;

n=0;

end

end

Pada tahap proses framing dan windowing dibutuhkan pendeklarasian nilai panjang

frame[15]dan nilai overlap[20]. Proses framing menggunakan program while dimana

mencari kesamaan data dengan panjang frame. Didalam proses framing terdapat proses

windowing dmana berfungsi untuk membuat pola pada sinyal. Hasil dari proses

sebelumnya dibandingan panjang sinyal data dengan panjang frame. Jika data lebih besar

dari panjang framemenuju proseswindowing, lalu akan di kurangi dengan nilai overlap

pada pendeklarasian sebesar 128. Jika data lebih kecil dari panjang frame akan

ditambahkan data 0 sesuai panjang frame. Pada proses windowing yang terdapat pada

framing menggunakan jendela hamming. Proses Matlab terdapat fungsi untuk

menggunakan jendela hamming dengan formula”hamming(L)”. Variabel “L” merupakan

banyaknya deretan data yang akan diproses. Penulisan program yang dipakai untuk

menentukan pola hamming ditulis “hamming(pjseg)”. Proses framing dan windowing

mengacu pada flowchart yang ditulis pada gambar 3.21.

Program ektraksi ciri terdapat 2 proses yaitu DFT dan segmentaveraging. Program

ektraksi ciri dituliskan sebagai berikut:

% Ektraksi ciri menggunakan DFT

[baris,kolom]=size (segmtx);

for k=1:kolom

hdft=abs(dftx(segmtx(:,k)));

x4(:,k)=hdft(:);

end

x4=x4(:);

x4=x4(1:length(x4)/2,:);

% Segment averaging

x5=reshape(x4,varse,[]);

x5=mean(x5);

x=x5(:);

axes(handles.axes2)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 92: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

71

bar(x);

Pada ektraksi ciri pemanggilan fungsi DFT digunakan fungsi ekternal dimana

program dibuat terpisah dari program inti. Fungsi ekternal dibuat mengacu pada rumus

2.15. Program fungsi ekternal untuk ektraksi ciri DFT dituliskan sebagai berikut :

% Perhitungan DFT

function y=dft(x)

N=length(x);

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 dilakukan dengan memanggil fungsi yang sudah dibuat pada M-file dengan

nama fungsi “dft”, kemudian nilai datanya diabsolutkan dengan bantuan fungsi Matlab

“abs”. Pada fungsi mengacu pada persamaan 2.15 dengan indeks n dimulai dari 1 karena

proses pada Matlab tidak mengenal indeks 0[27]. Proses transformasi tersebut dilanjutkan

dengan mengambil setengah bagian 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 flowchart perancangan gambar 3.22.

Proses segmentaveraging dilakukan dengan menggunakan fungsi pada Matlab yaitu

“reshape(x5,varsegment,[ ])”. Nilai “x5” merupakan data hasil ektraksi ciri segment

averaging, sedangkan nilai “varse” merupakan lebar segment averaging data. Data hasil

segment averaging tersebut akan ditampilkan dengan bentuk grafik dengan menggunakan

fungsi “bar”. Fungsi “bar” merupakan grafik dengan gambar berbentuk batang sesuai

panjang data. Fungsi “axes(handles.axes2)” digunakan untuk memilih axis pada kolom plot

ekstraksi sebagai tempat menampilkan grafiik.

Program pengenalan pola dilakukan dengan cara perhitungan nilai koeralasi data

masukan terhadap basis data. Pendekatan terbaik adalah data yang mempunyai nilai

korelasi terbesar.

Proses selanjutnya setelah penggambaran sinyal ucapan adalah proses pemanggilan

database yang telah disesuaiakn dengan variasi segmentaveraging. Program database

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 93: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

72

menggunakan logika “ifelse” agar database mempunyai kesamaan dengan nilai variasi

yang telah dipilih sebelumnya oleh user. Program pembuatan database mengacu pada

lampiran (L31). Program pemanggilan database dapat ditulis sebagai berikut:

if (varse==8) && (varuser==1)

load db01dseg8;

elseif (varse==16) && (varuser==1)

load db01dseg16;

elseif (varse==32) && (varuser==1)

load db01dseg32;

elseif (varse==64) && (varuser==1)

load db01dseg64;

Program diatas untuk memanggil database yang akan dibandingkan dengan ucapan

yang telah terekam. Data base yang dipanggil sesuai dengan masukan user mana yang

dipilh dan variasi segment averaging yang dipilih oleh usertersebut pada pop_upmenu

sebelumnya. Kondisi pemanggilan fungsi harus sesuai dengan variasi dan pemanggilan

database.

Proses selanjutnya adalah membandingkan database dengan data masukan dari

user secara real time. Perbandingan database dan masukan sinyal tersebut menggunakan

perhitungan korelasi. Program perhitungan korelasi sebagai berikut :

for n=1:100

jarak(n)=korelasi(x,z(:,n));

end

Pada perhitungan korelasi menggunakan pemanggilan fungsi ekternal dimana

program perhitungan berada diluar program utama. Pemanggilan fungsi dengan memanggil

fungsi“korelasi”. Program pembuatan fungsi ekternal sebagai berikut:

function k=korelasi(x,z)

mx=mean(x);

my=mean(z);

k1=(x-mx).*(z-my);

k2=sum(k1);

k3=sum((x-mx).^2);

k4=sum((z-my).^2);

k5=sqrt(k3.*k4);

k=k2/k5;

Pada program penghitungan nilai korelasi digunakan dua variabel yaitu „x‟ dan „z‟.

„x‟ adalah hasil penghitungan ekstraksi ciri secara real time dan „z‟ adalah database.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 94: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

73

Setelah didapatkan penghitungan nilai korelasi selanjutnya masuk dalam program

penentuan keluaran. Program penentuan keluaran berfungsi untuk menentukan apakah

ucapan terdeteksi sebagai ucapan atau dikenali secara “error”. Program penentuan

keluaran sebagai berikut :

%knn

kk=vark;

m=10;

[s1,s2]=sort(jarak,'descend');

kj=s1(1:kk);

kn=s2(1:kk);

hk=ceil(kn/m);

kout=mode(hk)

idx=find(hk==kout);

lokth=idx(1);

nilai=kj(idx);

th=s1(lokth);

jarakk=th

if (kout == 1) && (varuser==1) && (th < 0.7207)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 1) && (varuser==1) && (th >0.7207)

korout = {'satu'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','Sto

pBits',1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','a')

fclose(s);

delete(s);

clear s;

elseif (kout == 2) && (varuser==1) && (th < 0.7539)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 2) && (varuser==1) && (th > 0.7539)

korout = {'dua'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','Sto

pBits',1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','b')

fclose(s);

delete(s);

clear s;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 95: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

74

elseif (kout == 3) && (varuser==1) && (th <0.6230)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 3) && (varuser==1) && (th >0.6230)

korout = {'tiga'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','Sto

pBits',1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','c')

fclose(s);

delete(s);

clear s;

elseif (kout == 4) && (varuser==1) && (th < 0.7306)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 4) && (varuser==1) && (th > 0.7306)

korout = {'empat'}

kirim = 'd';

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','Sto

pBits',1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','d')

fclose(s);

delete(s);

clear s;

elseif (kout == 5) && (varuser==1) && (th < 0.7005)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 5) && (varuser==1)&& (th > 0.7005)

korout = {'lima'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','Sto

pBits',1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','e')

fclose(s);

delete(s);

clear s;

elseif (kout == 6) && (varuser==1) && (th < 0.6100)

korout = {'ERROR'}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 96: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

75

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 6) && (varuser==1) && (th > 0.6100)

korout = {'enam'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','Sto

pBits',1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','f')

fclose(s);

delete(s);

clear s;

elseif (kout == 7) && (varuser==1) && (th < 0.7002)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 7) && (varuser==1) && (th > 0.7002)

korout = {'tujuh'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','Sto

pBits',1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','g')

fclose(s);

delete(s);

clear s;

elseif (kout == 8) && (varuser==1) && (th < 0.7510)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 8) && (varuser==1) && (th >0.7510)

korout = {'delapan'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','Sto

pBits',1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','h')

fclose(s);

delete(s);

clear s;

elseif (kout == 9) && (varuser==1) && (th < 0.7903)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 9)&& (varuser==1) && (th > 0.7903)

korout = {'sembilan'}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 97: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

76

kirim = 'i';

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','Sto

pBits',1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','i')

fclose(s);

delete(s);

clear s;

elseif (kout == 10) && (varuser==1) && (th <0.7340)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 10) && (varuser==1) && (th >0.7340)

korout = {'nol'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','Sto

pBits',1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','j')

fclose(s);

delete(s);

clear s;

Pada program penentuan keluaran diatas menggunakan metode k-Nearest

Neighbordan untuk menentukan bukan ucapan menggunakan metode thersholding. Variasi

KNN menggunakan variabel “vark. Pada metode k-NearestNeigbor bertujuan untuk

mengambil kelas terdekat dari perhitungan korelasi. Fungsi “descend” pada program

berfungsi untuk mengurutkan nilai korelasi dari yang terbesar sampai yang terkecil.

Metode thresholding bertujuan untuk menentukan hasil keluaran yang tidak sesuai dengan

ucapan pada database dengan penamaan “ ERROR”.

4.2.3. Tombol Reset

Tombol “RESET” merupakan tombol yang digunakan untuk mereset atau

mensetting program untuk kembali ke pengaturan awal pada program pengenalan ucapan.

Program tombol “RESET” dituliskan sebagai berikut :

function pushbutton2_Callback(hObject, eventdata, handles)

axes(handles.axes1);

plot(0);

axes(handles.axes2);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 98: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

77

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 pushbutton2 pada GUI Matlab.

4.2.4. Tombol Keluar

Tombol “KELUAR” berfungsi untuk menutup progam aplikasi pengenalan ucapan.

Komponen yang digunakan untuk tombol “KELUAR” yaitu pushbutton3. Program tombol

“KELUAR” dituliskan sebagai berikut :

function pushbutton3_Callback(hObject, eventdata, handles)

delete(figure(guico));

Berdasarkan pengujian, tombol “KELUAR” dapat berjalan sesuai perancangan.

Ketika Tombol “KELUAR” ditekan aplikasi pengenalan ucapan dapat ditutup.Fungsi

“delete(figure(GUI))” digunakan untuk menutup GUI Matlab pada aplikasi pengenalan

ucapan ini.

4.3. Pengujian Sudut Motor Servo

Berdasarkan data pengujian sudut motor servo yang diukur menggunakan busur

derajat, didapat nilai OCR seperti pada tabel 4.2 dibawah ini dengan mengacu lampiran

(L6). Pengujian sudut dilakukan dengan melihat nilai OCR pada masing-masing sudut

motor servo yang dilakukan setiap 10o yang akan dibandingkan dengan perhitungan secara

teori.

Dari nilai OCR pada tabel 4.2 terdapat perbedaan antara teori dengan pengujian.

Pada tabel 3.2 menunjukan nilai OCR pada saat sudut 00yaitu 43,20,sedangakan sudut 90

o

nilai OCR yang didapat yaitu 64,8, dan pada sudut 180o nilai OCR yang didapat yaitu

86,40.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 99: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

78

Tabel 4.2. Nilai OCR pada pergerakan 10 derajat motor servo

NO Sudut (derajat) Nilai OCR

1 0 29

2 10 33,44

3 20 37,8

4 30 42,3

5 40 46,7

6 50 51,2

7 60 55,6

8 70 60

9 80 64,52

10 90 69

11 100 75,3

12 110 80,66

13 120 85

14 130 89,33

15 140 93,66

16 150 98

17 160 102,3

18 170 106,66

19 180 111

Pada saat pengujian nilai OCR terdapat perbedaan pada saat sudut 0o nilai OCR

yang didapat yaitu 29, sedangkan sudut 90o nilai OCR yang didapat yaitu 69, dan pada

sudut 180o nilai OCR yang didapat yaitu 111. Untuk mengetahui lebar pulsa, maka dapat

dihitung menggunakan persamaan 2.2 dan persamaan 2.3. Digunakan T sebesar 0,090422

x 10-6

dan prescaler sebesar 1.

Tabel 4.3. Perhitungan Lebar Pulsa Motor Servo Towerpro MG946R

SUDUT Nilai OCR Lebar Pulsa Error (%)

0o 29 0,671 ms 32,87%

90o 69 1,59 ms 6,48%

180o 111 2,57 ms 28,47%

Berdasarkan tabel 4.3. maka dapat dianalisa bahwa terdapat perbedaan nilai OCR

mengakibatkan perbedaan pada lebar pulsa. Pada Tabel 4.3 menunjukan lebar pulsa pada

saat 00 didapatkan 0,671 jika dibandingan dengan teori pada tabel 3.2 didapatkan error

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 100: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

79

sebesar 32,87 %. Terjadi error dikarenakan setiap motor memiliki karakteristik yang

berbeda-beda sesuai dengan jenisnya menyebabkan nilai lebar pulsa berbeda.

4.4. Pengujian Untuk 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 memvariasi nilai

parameter sesuai yang diinginkan untuk menguji pengenalan secara real time. Pengujian

tidak real time dilakukan dengan memvariasi 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

sebelumnya. Hasil parameter pengujian terbaik secara tida real time akan digunakan

sebagai parameter untuk pengujian pengenakan ucapan secara real time.

4.4.1. Pengujian Pengenalan Ucapan Secara Tidak Real Time

Seperti yang telah dijelaskan sebelumnya, percobaan pengenalan secara tidak real

time ini dilakukan dengan merekam ucapan masukan yang kemudian disimpan dengan

nama yang berbeda dan akan dibandingkan dengan database. Pembentukan database

dilakukan dengan memproses ucapan yang juga sebelumnya sudah direkam kedalam

proses preprocessing dan framingdanwindowing. Setalah melalui tahap ini, kemudian

dilanjutkan dengan proses ekstraksi ciri, penulis menggunakan ektraksi ciri DFT dan

segmentaveraging. Setelah proses ektraksi ciri dan segmentaveraging, data hasil kemudian

disimpan pada directory yang sama dengan program untuk melakukan pengenalan secara

tidak real time.

Proses yang sama juga terjadi pada ucapan masukan. Selanjutnya adalah

membandingkan antara database dan hasil ektraksi ciri dari ucapan masukan menggunakan

metode korelasi. Tujuan dari pengujian pengenalan secara tidak real time adalah untuk

mencari parameter nilai k pada knn,dan segmentaveraging terbaik. Data hasil pengenalan

secara tidak real time kemudian ditampilkan dalam tabel dan grafik sehingga pengambilan

kesimpulan lebih mudah dilakukan. Berikut merupakan tabel dan grafik hasil pengujian

pengenalan ucapan secara tidak real time. Pengujian menggunakan 3 jenis database, yaitu

database 1 suara, database 5 suara, dan database 10 suara.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 101: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

80

Untuk user 1

Tabel 4.4. Tabel Pengenalan (%) dengan Database 1 Suara Secara Tidak Real Time

SegmentAveraging Nilai k pada KNN

1 3 5 7

8 92 50 32 24

16 90 46 36 25

32 89 47 38 25

64 80 45 35 19

Tabel 4.5. Tabel Pengenalan (%) dengan Database 5 Suara Secara Tidak Real Time

Tabel 4.6. Tabel Pengenalan (%) dengan Database 10 Suara Secara Tidak Real Time

SegmentAveraging Nilai k pada KNN

1 3 5 7

8 95 93 94 94

16 95 92 93 91

32 94 93 92 92

64 89 88 86 83

Untuk user 2

Tabel 4.7. Tabel Pengenalan (%) dengan Database 1 Suara Secara Tidak Real Time

SegmentAveraging Nilai k pada KNN

1 3 5 7

8 87 27 13 10

16 82 32 15 10

32 83 39 18 10

64 75 46 26 10

SegmentAveraging Nilai k pada KNN

1 3 5 7

8 93 88 89 91

16 93 86 86 87

32 91 90 87 82

64 82 79 76 71

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 102: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

81

Tabel 4.8. Tabel Pengenalan (%) dengan Database 5 Suara Secara Tidak Real Time

SegmentAveraging Nilai k pada KNN

1 3 5 7

8 90 81 79 71

16 90 81 78 77

32 90 82 83 80

64 84 73 71 71

Tabel 4.9. Tabel Pengenalan (%) dengan Database 10 Suara Secara Tidak Real Time

SegmentAveraging Nilai k pada KNN

1 3 5 7

8 93 87 86 84

16 92 89 87 87

32 93 88 87 86

64 87 79 83 83

Untuk user 3

Gambar 4.10. Tabel Pengenalan (%) dengan Database 1 Suara Secara Tidak Real Time

SegmentAveraging Nilai k pada KNN

1 3 5 7

8 87 32 21 12

16 82 32 14 11

32 75 31 14 11

64 69 29 18 10

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 103: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

82

Tabel 4.11. Tabel Pengenalan (%) dengan Database 5 Suara Secara Tidak Real Time

SegmentAveraging Nilai k pada KNN

1 3 5 7

8 87 76 77 72

16 87 74 75 72

32 84 72 73 70

64 85 65 66 66

Tabel 4.12. Tabel Pengenalan (%) dengan Database 10 Suara Secara Tidak Real Time

SegmentAveraging Nilai k pada KNN

1 3 5 7

8 94 92 90 89

16 94 92 89 89

32 92 84 84 84

64 90 82 83 80

Dari data-data di atas dapat dilihat bahwa pengenalan terbaik berada pada segment

averaging 8 dan k-nn 1 dengan tingkat pengenalan rata-rata di atas 90 dari 100 percobaan

penyebutan angka. Pengenalan terbaik terletak pada database 10.

Pada variasi terbaik ini pula diambil nilai batas bawah untuk setiap kata yang

diucapkan. Tujuan pengambilan nilai batas bawah adalah untuk penggunaan metode

thresholding. Penulisan program untuk thresholding menggunakan logika “if” dan

“elseif”. Dimana jika syarat berinlai benar maka logika tersebut akan mengeksekusi

pernyataan di bawahnya dan jika tidak maka akan meneruskan ke logika di bawahnya.

Program untuk thresholding dapat dilihat pada Lampiran (L22). Tabel berikut

menunjukkan nilai batas bawah thresholding.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 104: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

83

Tabel 4.13 Hasil Nilai batas bawah Yang Masih Dikenali Pada Setiap Ucapan Angka

No Ucapan Nilai batas bawah

user 1

Nilai batas bawah

user 2

Nilai batas bawah

user 3

1 Satu 0,7207 0,7351 0,6768

2 Dua 0,7539 0,7627 0,7212

3 Tiga 0,7030 0,6859 0,7053

4 Empat 0,7306 0,7197 0,6860

5 Lima 0,7760 0,7551 0,7928

6 Enam 0,6100 0,6721 0,6841

7 Tujuh 0,7492 0,7600 0,7794

8 Delapan 0,7414 0,7090 0,7556

9 Sembilan 0,8503 0,7298 0,7783

10 Nol 0,7340 0,6567 0,7721

4.4.2. Pengujian Pengenalan Secara Real Time

Pada pengujian secara real time, pengujian dilakukan dengan merekam suara secara

langsung dan akan dikenali oleh program secara real time. User harus memilih nilai variasi

nilai k pada knn, dan segmentaveraging. User yang digunakan sebanyak 3 yang terdiri dari

1 peneliti, dan 2 user sudah ditentukan. Setelah semuanya diisi dengan benar maka

program bisa dijalankan. Pengujian dilakukan sebanyak 10 kali tiap ucapan dengan dasar

bahwa 10 kali pengujian dengan mampumewakili keberhasilan program pengenalan

ucapan angka untuk berjalan dengan baik. Pengujian secara real time ini menggunakan

database 1,5,dan 10 dengan variasi nilai k-NN 1 dan segmentaveraging 8 mengacu pada

pengujian secara tidak real time. Pengujian dengan 3 macam database ini untuk melihat

database dengan tingkat error terkecil ketika secara rea ltime. Pengujian real time akan

dilakukan dengan 2 cara yaitu pengujian dengan nilai thresholding dan pengujian tanpa

nilai thresholding untuk semua user.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 105: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

84

4.4.3. Pengujian Real Time Tanpa Nilai Thresholding Untuk Penentuan

Database

Pada pengujian real time ini dilakukan untuk mengetes database mana yang baik

digunakan. Pengujian ini dimaksudkan untuk melihat apa sistem dapat berjalan sesuai

dengan yang diharapakan ketika user dalam keadaan tidak begitu mengingat pola kata

untuk pengujian

Tabel 4.14 Confusion Matrix Pengujian secara real time dengan database 1 untuk user 1

OUTPUT

INPUT Satu Dua Tiga Empat Lima Enam Tujuh Delapan Sembilan Nol

Satu 8 1 0 0 0 0 0 0 0 1

Dua 0 9 0 0 0 0 0 0 0 1

Tiga 0 0 3 0 2 0 0 1 0 4

Empat 3 0 0 4 1 0 0 2 0 0

Lima 4 0 0 2 3 0 1 0 0 0

Enam 4 0 0 0 0 6 0 0 0 0

Tujuh 0 1 0 0 2 0 0 1 5 1

Delapan 0 0 0 2 0 0 0 5 0 3

Sembilan 2 0 0 0 0 0 0 0 8 0

Nol 0 0 0 3 0 1 0 0 0 6

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 106: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

85

Tabel 4.15 Confusion Matrix Pengujian secara real time dengan database 5 untuk user 1

OUTPUT

INPUT Satu Dua Tiga Empat Lima Enam Tujuh Delapan Sembilan Nol

Satu 7 0 0 3 0 0 0 0 0 0

Dua 0 9 0 0 0 1 0 0 0 0

Tiga 0 4 6 0 0 0 0 0 0 0

Empat 0 0 0 6 4 0 0 0 0 0

Lima 0 0 0 1 8 1 0 0 0 0

Enam 0 1 0 2 0 5 0 0 0 2

Tujuh 1 0 0 0 1 0 8 0 0 0

Delapan 0 0 0 1 0 0 0 8 0 1

Sembilan 1 0 0 0 0 0 0 0 9 0

Nol 0 0 0 3 0 0 0 1 0 6

Tabel 4.16 Confusion Matrix Pengujian secara real time dengan database 10 untuk user 1

OUTPUT

INPUT Satu Dua Tiga Empat Lima Enam Tujuh Delapan Sembilan Nol

Satu 9 0 0 1 0 0 0 0 0 0

Dua 0 10 0 0 0 0 0 0 0 0

Tiga 0 0 8 0 0 0 0 2 0 0

Empat 2 0 0 8 0 0 0 0 0 0

Lima 0 0 0 0 7 3 0 0 0 0

Enam 2 0 0 0 0 8 0 0 0 0

Tujuh 0 0 0 0 1 0 9 0 0 0

Delapan 0 0 0 0 1 0 0 9 0 0

Sembilan 0 0 0 0 0 0 0 0 10 0

Nol 1 0 0 0 0 1 0 0 0 8

Dengan hasil tabel diatas dengan pengujian secara real time menggunakan 3 jenis

database suara didapatkan dengan database 1 suara, hasil pengenalan secara benar

sebanyak 51 dari 100 percobaan. Dengan database 5 suara, hasil pengenalan secara benar

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 107: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

86

sebanyak 72 dari 100 percobaan. Dengan database 10 suara, hasil pengenalan secara benar

sebanyak 86 dari 100 percobaan. Maka digunakan database 10 suara karena memiliki

pengenalan terbaik.

Tabel 4.17 Confusion Matrix Pengujian secara real time dengan database 1 untuk user 2

OUTPUT

INPUT Satu Dua Tiga Empat Lima Enam Tujuh Delapan Sembilan Nol

Satu 5 0 0 0 0 0 0 0 5 0

Dua 0 10 0 0 0 0 0 0 0 0

Tiga 0 0 8 2 0 0 0 0 0 0

Empat 0 0 4 4 0 0 0 0 1 1

Lima 1 1 1 1 5 0 1 0 0 0

Enam 0 0 0 3 2 5 0 0 0 0

Tujuh 0 0 2 0 0 0 8 0 0 0

Delapan 0 0 2 0 0 0 0 7 0 1

Sembilan 0 0 0 1 3 0 3 0 3 0

Nol 0 1 0 1 0 2 0 0 0 6

Tabel 4.18 Confusion Matrix Pengujian secara real time dengan database 5 untuk user 2

OUTPUT

INPUT Satu Dua Tiga Empat Lima Enam Tujuh Delapan Sembilan Nol

Satu 8 0 0 0 0 0 0 0 2 0

Dua 1 8 0 0 0 0 0 0 1 0

Tiga 0 0 8 0 0 0 0 0 2 0

Empat 2 0 0 7 1 0 0 0 0 0

Lima 0 0 0 0 10 0 0 0 0 0

Enam 1 0 0 5 0 4 0 0 0 0

Tujuh 0 0 0 0 0 0 9 0 1 0

Delapan 2 0 0 0 0 0 0 8 0 0

Sembilan 1 0 1 1 1 0 1 0 5 0

Nol 1 0 0 2 0 0 0 0 1 6

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 108: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

87

Tabel 4.19 Confusion Matrix Pengujian secara real time dengan database 10 untuk user 2

OUTPUT

INPUT Satu Dua Tiga Empat Lima Enam Tujuh Delapan Sembilan Nol

Satu 8 0 0 2 0 0 0 0 0 0

Dua 0 9 0 1 0 0 0 0 0 0

Tiga 0 0 8 0 0 0 0 0 2 0

Empat 0 0 0 9 0 0 0 1 0 0

Lima 0 0 0 0 10 0 0 0 0 0

Enam 0 0 0 1 0 6 0 0 0 3

Tujuh 0 0 0 1 0 0 9 0 0 0

Delapan 0 0 0 2 0 0 0 8 0 0

Sembilan 0 2 0 0 0 0 0 0 8 0

Nol 0 0 0 0 0 2 0 0 0 8

Tabel 4.20 Confusion Matrix Pengujian secara real time dengan database 1 untuk user 3

OUTPUT

INPUT Satu Dua Tiga Empat Lima Enam Tujuh Delapan Sembilan Nol

Satu 5 0 0 1 0 3 0 0 0 0

Dua 0 5 3 0 1 1 0 0 0 0

Tiga 0 1 6 0 1 1 0 0 1 0

Empat 1 0 0 5 1 1 0 0 0 2

Lima 0 0 0 0 7 0 0 0 3 0

Enam 0 0 0 0 0 6 0 4 0 0

Tujuh 0 0 0 0 0 0 4 0 6 0

Delapan 0 0 0 0 0 2 0 7 1 0

Sembilan 0 0 0 0 0 2 0 0 7 1

Nol 0 0 0 0 0 3 0 2 0 5

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 109: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

88

Tabel 4.21 Confusion Matrix Pengujian secara real time dengan database 5 untuk user 3

OUTPUT

INPUT Satu Dua Tiga Empat Lima Enam Tujuh Delapan Sembilan Nol

Satu 8 0 0 1 0 1 0 0 0 0

Dua 0 8 1 0 0 0 0 1 0 0

Tiga 0 0 10 0 0 0 0 0 0 0

Empat 1 0 2 4 2 0 0 1 0 0

Lima 0 0 1 1 8 0 0 0 0 0

Enam 0 0 0 0 0 5 0 1 0 4

Tujuh 0 0 0 0 1 0 7 0 2 0

Delapan 0 0 0 0 0 1 0 8 0 1

Sembilan 0 0 0 0 0 0 0 0 6 4

Nol 0 0 0 0 0 2 0 1 0 7

Tabel 4.22 Confusion Matrix Pengujian secara real time dengan database 10 untuk user 3

OUTPUT

INPUT Satu Dua Tiga Empat Lima Enam Tujuh Delapan Sembilan Nol

Satu 8 0 0 1 0 0 0 0 0 1

Dua 0 9 1 0 0 0 0 0 0 0

Tiga 0 0 8 0 2 0 0 0 0 0

Empat 0 0 0 10 0 0 0 0 0 0

Lima 0 0 0 0 10 0 0 0 0 0

Enam 0 0 0 0 0 8 0 1 0 1

Tujuh 0 0 0 0 0 0 9 1 0 0

Delapan 1 0 0 0 0 0 0 6 0 3

Sembilan 0 0 0 0 0 0 0 0 8 2

Nol 0 0 0 0 0 0 0 1 0 9

Dari data diatas didapatkan untuk user 2 dengan database 10 suara mampu

mengenali sebanyak 83 dari 100 percobaan dan user 3 mampu mengenali sebanyak 85 dari

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 110: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

89

100 percobaan. Terdapat penurunan tingkat pengenalan antara pengenalan secara tidak real

time dengan pengujian secara real time. ini diakibatkan pada saat pengambilan data terjadi

kesalahan pengucapan untuk ucapan yang akan dikenali.

4.4.4. Pengujian Real Time dengan Nilai Thresholding

Pada pengujian real time dengan nilai thresholding program pengenalan ucapan

diberikan nilai batas bawah yang mengacu pada tabel 4.13.Pengujian real time dengan

nilai thresholding diuji dengan 2 cara yakni dengan ucapan sebenarnya dengan bukan

ucapan sebenarnya atau ucapan lain.Pengujian dilakukan untuk menguji thresholding

dengan mengucapkan angka 0 - 9 sebanyak 10.

Hasil pengujian berupa dikenali benar jika sesuai dengan angka yang

disebutkandan dikenali secara salah ketika dikenali berbeda dengan angka yang disebutkan

atau dikenali sebagi ERROR. Berikut ini data pengucapan real time dengan nilai

thresholding setiap user.

Tabel 4.23. Data Hasil Pengujian Secara Real Time dengan Nilai Thresholding untuk User

1

OUTPUT

INPUT Satu Dua Tiga Empat Lima Enam Tujuh Delapan Sembilan Nol Error

Satu 9 0 0 1 0 0 0 0 0 0 0

Dua 0 10 0 0 0 0 0 0 0 0 0

Tiga 0 0 8 0 0 0 1 0 0 0 1

Empat 0 0 0 8 2 0 0 0 0 0 0

Lima 0 0 0 0 10 0 0 0 0 0 0

Enam 0 0 0 0 0 8 0 0 0 0 2

Tujuh 0 0 0 0 3 0 7 0 0 0 0

Delapan 0 0 0 0 0 0 0 9 0 0 1

Sembilan 0 0 0 0 0 0 0 1 8 0 1

Nol 0 0 0 0 0 1 0 0 0 9 0

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 111: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

90

Tabel 4.24. Data Hasil Pengujian Secara Real Time dengan Nilai Thresholding untuk User

2

OUTPUT

INPUT Satu Dua Tiga Empat Lima Enam Tujuh Delapan Sembilan Nol Error

Satu 9 0 0 1 0 0 0 0 0 0 0

Dua 0 7 2 0 0 0 0 0 0 0 1

Tiga 0 0 8 0 0 0 1 0 0 0 1

Empat 0 0 0 9 1 0 0 0 0 0 0

Lima 0 0 0 0 9 0 0 0 0 1 0

Enam 0 0 0 0 0 7 2 0 0 0 1

Tujuh 0 0 0 0 1 0 8 0 0 0 1

Delapan 0 0 0 0 0 0 0 10 0 0 0

Sembilan 0 0 1 0 1 0 0 8 0 0 0

Nol 0 0 0 0 0 1 0 0 0 9 0

Tabel 4.25. Data Hasil Pengujian Secara Real Time dengan Nilai Thresholding untuk User

3

OUTPUT

INPUT Satu Dua Tiga Empat Lima Enam Tujuh Delapan Sembilan Nol Error

Satu 9 0 0 0 0 0 0 1 0 0 0

Dua 0 6 2 0 0 0 0 0 0 0 2

Tiga 0 0 9 0 1 0 0 0 0 0 0

Empat 0 0 0 10 0 0 0 0 0 0 0

Lima 0 0 0 0 9 0 0 0 0 0 1

Enam 0 0 0 0 0 9 0 0 0 1 0

Tujuh 0 0 0 0 0 0 10 0 0 0 0

Delapan 0 0 0 0 0 0 0 8 1 1 0

Sembilan 0 0 0 0 0 0 0 0 10 0 0

Nol 0 0 0 0 0 3 0 0 0 7 0

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 112: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

91

Dari data di atas pada user 1 tingkat keberhasilan mencapai 86 dalam mengenali

ucapan secara benar. Untuk user 2 tingkat keberhasilan mencapai dan user dari 100

percobaan.

Pengujian dengan Nilai thresholding yang kedua dengan pengujian dengan ucapan

lain.Pengujian ini dilakukan untuk memastikan bahwa sistem yang dibuat akan mengenali

sebagai error jika memberikan masukan selain kata angka 0 - 9. Pengujian ini juga

dilakukan untuk menguji thresholding yang telah dirancang pada program pengenalan

ucapan. Berikut adalah data pengujian pengucapan kata lain.

Tabel 4.26 Data Hasil Pengujian Pengucapan dengan Ucapan Lain pada User 1

OUTPUT

INPUT Satu Dua Tiga Empat Lima Enam Tujuh Delapan Sembilan Nol Error

Balok 0 0 0 0 0 0 0 0 0 0 10

Tabung 1 0 0 0 0 0 0 0 0 0 9

Bola 0 0 0 0 0 0 0 0 0 1 9

Kubus 0 0 0 0 0 0 0 0 0 0 10

Kerucut 0 0 0 0 0 0 0 0 0 0 10

Kopsus 0 0 0 0 0 0 0 0 1 0 9

Kopi 0 0 0 0 0 0 0 0 0 0 10

Aduk 0 0 0 8 0 0 0 0 0 0 8

Susu 0 0 1 0 0 0 0 0 0 0 9

Bersih 0 0 0 0 0 0 0 0 0 0 10

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 113: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

92

Tabel 4.27 Data Hasil Pengujian Pengucapan dengan Ucapan Lain pada User 2

OUTPUT

INPUT Satu Dua Tiga Empat Lima Enam Tujuh Delapan Sembilan Nol Error

Balok 1 1 0 0 0 0 0 0 0 0 8

Tabung 0 0 0 0 0 0 0 0 0 0 10

Bola 0 0 1 0 0 0 0 0 0 0 9

Kubus 0 2 0 0 0 0 0 0 0 0 8

Kerucut 0 0 0 2 0 0 0 0 0 0 8

Kopsus 0 0 0 0 0 0 0 0 0 0 10

Kopi 0 0 0 0 0 0 0 0 0 0 10

Aduk 0 0 0 0 0 0 0 0 0 0 10

Susu 0 0 0 0 0 0 0 0 0 0 10

Bersih 0 0 0 0 0 0 0 0 0 0 10

Tabel 4.28 Data Hasil Pengujian Pengucapan Dengan Ucapan Lain pada User 3

OUTPUT

INPUT Satu Dua Tiga Empat Lima Enam Tujuh Delapan Sembilan Nol Error

Balok 2 0 0 0 0 0 0 0 0 0 8

Tabung 0 0 0 0 0 0 0 0 0 0 10

Bola 0 0 0 0 0 0 0 0 0 1 9

Kubus 0 0 0 0 0 1 0 0 0 0 9

Kerucut 0 0 0 0 0 0 0 0 0 0 10

Kopsus 0 1 0 0 0 0 0 0 0 0 9

Kopi 0 1 0 0 0 0 0 0 0 0 9

Aduk 0 0 0 0 0 0 0 0 0 0 10

Susu 0 0 0 0 0 0 0 0 0 0 10

Bersih 0 0 0 0 0 0 0 0 0 0 10

Dari data di atas dapat dilihat bahwa tingkat keberhasilan thresholding mencapai

diatas 92 dari 100 percobaan dan dapat diambil kesimpulan bahwa penggunaan

thresholding bekerja sesuai dengan perancangan. Dari hasil pengujian tingkat pengenalan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 114: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

93

ucapan angka selain 0 hingga 9, program mampu menampilkan “ERROR” sebagai

keluaran.

4.5. Hasil Pengujian Tulisan dari Lengan Robot

Dari hasil pengujian tulisan pada lengan robot, didapatkan sesuai dengan gambar

4.25. Pada penggambaran angka tidak terpaku dengan panjang garis atau besarnya dari

tulisan. Alat hanya diharapkan bisa membentuk angka sesuai dengan pengenalan suara

yang dikenali. Dari bentuk angka yang ditulis, terdapat angka yang tertulis miring karena

kemampuan alat menulis belum sempurna karena dalam menggerakkan servo satu-persatu

tidak secara bersamaan sehingga membentuk garis tidak benar-benar lurus.

Gambar 4.25a. Bentuk hasil penulisan angka

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 115: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

94

Gambar 4.25b. Bentuk hasil penulisan angka

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 116: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

95

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Dari percobaan dan pengujian sistem pengenalan ucapan disimpulkan sebagai

berikut:

1. Penggunaan dengan database suara semakin banyak membuat tingkat

pengenalan semakin baik.

2. Pengenalan secara real time menggunakan parameter terbaik yaitu segmen

averaging 8, dan knn 1, dengan tingkat pengenalan mencapai 85,33%.

3. Bentuk angka yang ditulis oleh lengan robot tidak berbentuk benar-benar kotak

seperti yang dirancangkan.

5.2. Saran

Saran untuk pengembangan sistem pengenalan ucapan untuk lengan robot

menulis angka:

1. Pengembangan sistem kebidang yang lebih sempurna seperti dapat menulis

angka lebih dari 1 digit.

2. Untuk lebih lanjutnya jika ingin membuat lengan robot menulis memakai lebih

dari 3 servo, sehingga untuk variasi gerakan untuk menulis menjadi lebih

banyak.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 117: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

96

DAFTAR PUSTAKA

[1] Budiharto, W., 2014, Robotika Modern – Teori dan Implementasi,edisi revisi, C.V

Andi Offset, Yogyakarta.

[2] Ronando, E dan M. Isa Irawan., 2012, Pengenalan Ucapan Kata Sebagai Pengendali

Gerakan Robot Lengan Secara Real-Time dengan Metode Linear predictive coding –

Neuro Fuzzy, Jurnal Sains dan Seni ITS Vol.1, No. 1, (Sept. 2012) ISSN: 2301-928X

[3] Petrus C. Hendar dan Tjendro., 2014, rancang bangun lengan robot menulis kata

yang dikendalikan oleh aplikasi android, Prosiding Seminar RiTekTra 2014,

Universitas Sanata Dharma, Yogyakarta.

[4] Setyawan,R.Y., 2014, Pengenalan Ucapan Angka Secara Real Time Menggunakan

Ekstraksi Ciri fft Dan Fungsi Similaritas Kosinus, tugas akhir, Universitas Sanata

Dharma Yogyakarta.

[5] Sujarwata,2013, Pengendali Motor Servo Berbasis Mikrokontroler Basic Stamp 2sx

Untuk Mengembangkan Sistem Robotika, vol 1, hal 47-54.

[6] Pitowarno, E., 2006, ROBOTIKA : Desain, kontrol, dan kecerdasan Buatan, 1st ed,

C.V ANDI OFFSET, Yogyakarta

[7] Paul A. Tipler, 1998, FISIKA Untuk Sains dan Teknik, edisi 3 jilid 1, Erlangga,

Bandung

[8] ---,Data Sheet Mikrokontroler Atmega32, ATMEL.

[9] Agus Bejo, 2008, C dan AVR Rahasia Kemudahan Bahasa C dalam Mikrokonroler

ATMEGA8535, 1st ed, GRAHA ILMU, Yogyakarta.

[10] http://elektronika-dasar.web.id/teori-elektronika/lcd-liquid-cristal-display/ diakses

pada tanggal 22 januari 2015

[11] Boylestad, R. and Nashelsky, L., Electronic Devices and Circuit Theory, seventh

edition, Prentice Hall, New Jersey Columbus, Ohio.

[12] Fathoni, Oktober 2010, Unjuk Kerja Catu Daya 12 Volt 2A dengan Pass Element

Transistor NPN dan PNP, Jurnal Neutrino,Vol.3, No.1

[13] Wijaya, Aryaditya, 2011, Aplikasi Hidden Markov Model Pada Pintu Geser

Berbasis Suara, TeknikElektro, Sanata Dharma, Yogyakarta

[14] Juang, B. H., dan Rabiner, L., 1993, Fundamentals Of Speech Recognition. Signal

Processing Series, Prentice Hall, Englewood Cliffs, NJ

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 118: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

97

[15] Theodoridis S. dan Koutroumbas K.,2009, Pattern Recognition 4th

edition,

Burlington, Massachusetts ,USA.

[16] Sumarno, Linggo., 2013, Pengenalan Nada Pianika Menggunakan Jendela Gaussian

DCT dan Jarak Kosinus., Jurnal Penelitian vol. 17, no 1, hal 8-15.

[17] 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.

[18] http://www.mathworks.com/help/signal/ref/hamming.html diakses pada tanggal 20

february 2015

[19] Linggo Sumarno,”Pengolahan Signal Digital”,Diktat, Edisi 2013.

[20] Mcloughlin. I.,2009, Applied Speech and Audio Processing: With Matlab,

Cambridge University Press, Cambridge, New York.

[21] Giovanni E.J., 2015 , Aplikasi Pengenalan Ucapan Secara Real Time Menggunakan

Dct Dan Orelasi Untuk Pengatur Kecerahan Lampu Dc, tugas akhir, Universitas

Sanata Dharma Yogyakarta.

[22] http://www.intopic.com.tw/showroom/view.php?C=5052498 diakses pada tanggal

20 november 2014

[23] http://www.computerhope.com/jargon/s/souncard.htm diakses pada tanggal pada

tanggal 20 maret 2015

[24] http://www.servodatabase.com/servo/towerpro/mg946r diakses pada tanggal 29

november 2014

[25] Wilson, D, Randall, Martinez, R, Tony., 1997, improved heterogeneous distance

functions.

[26] --, 2008, Data Sheet LCD 16x2, Revolution Education Ltd.

[27] -., 2001, Signal Processing Toolbook For Use with MATLAB, The MathWork, inc

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 119: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L1

LAMPIRAN A

Pengujian Panjang Durasi Perekaman

Tujuan Percobaan :

Mengetahui panjang durasi rekaman.

Percobaan :

1. Waktu pencuplikan yaitu 1,2,3 detik.

2. Dengan sampling rate sebesar 6000 Hz.

3. Kata yang dipakai angka 9 sebagai pengucapan angka terpanjang.

Hasil Percobaan :

Percobaan dengan lama waktu pencuplikan 1 detik

Pengucapan angka sembilan

0 1000 2000 3000 4000 5000 6000-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1sembilan.wav

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 120: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L2

Percobaan dengan lama waktu pencuplikan 2 detik

Pengucapan angka sembilan

Percobaan dengan lama waktu pencuplikan 3 detik

Pengucapan angka sembilan

Analisis :

Dalam percobaan yang dilakukan , percobaan lama waktu 1 detik menyebabkan

kata yang diucapakan tidak tercuplik secara sempurna. Pada percobaan lama waktu 2 detik

dan 3 detik didapatkan kata yang diucapkan tercuplik sempurna. Pada percobaan lama

waktu 3 detik terlihat terlalu banyak data yang tercuplik karena waktu terlalu lama. Hal

0 2000 4000 6000 8000 10000 12000-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1sembilan1.wav

0 2000 4000 6000 8000 10000 12000 14000 16000 18000-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1sembilan.wav

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 121: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L3

tersebut dapat mengakibatkan terjadinya noise yang masuk. Pada percobaan lama waktu 2

detik terlihat lebih efektif karena kata dapat terekam sempurna dan tidak terlalu lama

dalam waktu perekaman.

Kesimpulan

Penggunaan lama waktu 2 detik lebih efektif karena waktu pencuplikan tidak

terlalu lama dan kata terekam sempurna.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 122: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L4

Rangkaian minimum sistem

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 123: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L5

Rangkaian regulator 7805 dengan penguatan arus

Towerpro MG946R

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 124: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L6

Berat spidol setelah ditimbang

SUDUT-SUDUT MOTOR SERVO

Sudut 0o

Sudut 10o Sudut 20

o

Sudut 30o Sudut 40

o Sudut 50

o

Sudut 60o Sudut 70

o Sudut 80

o

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 125: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L7

Sudut 90

o Sudut 100

o Sudut 110

o

Sudut 120

o Sudut 130

o Sudut 140

o

Sudut 150

o Sudut 160

o Sudut 170

o

Sudut 180

o

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 126: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L8

Listing Program Matlab

Program Pengujian Pengenalan Ucapan Secara Tidak Real Time

function cobadft10

clc

%=================================================================

=========

b0 = 0.3;

usig = 4096;

%=================================================================

=========

% Pembentukan database

s1x=proses('satu1.wav',b0,usig);

s2x=proses('satu2.wav',b0,usig);

s3x=proses('satu3.wav',b0,usig);

s4x=proses('satu4.wav',b0,usig);

s5x=proses('satu5.wav',b0,usig);

s6x=proses('satu6.wav',b0,usig);

s7x=proses('satu7.wav',b0,usig);

s8x=proses('satu8.wav',b0,usig);

s9x=proses('satu9.wav',b0,usig);

s10x=proses('satu10.wav',b0,usig);

d1x=proses('dua1.wav',b0,usig);

d2x=proses('dua2.wav',b0,usig);

d3x=proses('dua3.wav',b0,usig);

d4x=proses('dua4.wav',b0,usig);

d5x=proses('dua5.wav',b0,usig);

d6x=proses('dua6.wav',b0,usig);

d7x=proses('dua7.wav',b0,usig);

d8x=proses('dua8.wav',b0,usig);

d9x=proses('dua9.wav',b0,usig);

d10x=proses('dua10.wav',b0,usig);

g1x=proses('tiga1.wav',b0,usig);

g2x=proses('tiga2.wav',b0,usig);

g3x=proses('tiga3.wav',b0,usig);

g4x=proses('tiga4.wav',b0,usig);

g5x=proses('tiga5.wav',b0,usig);

g6x=proses('tiga6.wav',b0,usig);

g7x=proses('tiga7.wav',b0,usig);

g8x=proses('tiga8.wav',b0,usig);

g9x=proses('tiga9.wav',b0,usig);

g10x=proses('tiga10.wav',b0,usig);

p1x=proses('empat1.wav',b0,usig);

p2x=proses('empat2.wav',b0,usig);

p3x=proses('empat3.wav',b0,usig);

p4x=proses('empat4.wav',b0,usig);

p5x=proses('empat5.wav',b0,usig);

p6x=proses('empat6.wav',b0,usig);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 127: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L9

p7x=proses('empat7.wav',b0,usig);

p8x=proses('empat8.wav',b0,usig);

p9x=proses('empat9.wav',b0,usig);

p10x=proses('empat10.wav',b0,usig);

l1x=proses('lima1.wav',b0,usig);

l2x=proses('lima2.wav',b0,usig);

l3x=proses('lima3.wav',b0,usig);

l4x=proses('lima4.wav',b0,usig);

l5x=proses('lima5.wav',b0,usig);

l6x=proses('lima6.wav',b0,usig);

l7x=proses('lima7.wav',b0,usig);

l8x=proses('lima8.wav',b0,usig);

l9x=proses('lima9.wav',b0,usig);

l10x=proses('lima10.wav',b0,usig);

e1x=proses('enam1.wav',b0,usig);

e2x=proses('enam2.wav',b0,usig);

e3x=proses('enam3.wav',b0,usig);

e4x=proses('enam4.wav',b0,usig);

e5x=proses('enam5.wav',b0,usig);

e6x=proses('enam6.wav',b0,usig);

e7x=proses('enam7.wav',b0,usig);

e8x=proses('enam8.wav',b0,usig);

e9x=proses('enam9.wav',b0,usig);

e10x=proses('enam10.wav',b0,usig);

t1x=proses('tujuh1.wav',b0,usig);

t2x=proses('tujuh2.wav',b0,usig);

t3x=proses('tujuh3.wav',b0,usig);

t4x=proses('tujuh4.wav',b0,usig);

t5x=proses('tujuh5.wav',b0,usig);

t6x=proses('tujuh6.wav',b0,usig);

t7x=proses('tujuh7.wav',b0,usig);

t8x=proses('tujuh8.wav',b0,usig);

t9x=proses('tujuh9.wav',b0,usig);

t10x=proses('tujuh10.wav',b0,usig);

a1x=proses('delapan1.wav',b0,usig);

a2x=proses('delapan2.wav',b0,usig);

a3x=proses('delapan3.wav',b0,usig);

a4x=proses('delapan4.wav',b0,usig);

a5x=proses('delapan5.wav',b0,usig);

a6x=proses('delapan6.wav',b0,usig);

a7x=proses('delapan7.wav',b0,usig);

a8x=proses('delapan8.wav',b0,usig);

a9x=proses('delapan9.wav',b0,usig);

a10x=proses('delapan10.wav',b0,usig);

n1x=proses('sembilan1.wav',b0,usig);

n2x=proses('sembilan2.wav',b0,usig);

n3x=proses('sembilan3.wav',b0,usig);

n4x=proses('sembilan4.wav',b0,usig);

n5x=proses('sembilan5.wav',b0,usig);

n6x=proses('sembilan6.wav',b0,usig);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 128: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L10

n7x=proses('sembilan7.wav',b0,usig);

n8x=proses('sembilan8.wav',b0,usig);

n9x=proses('sembilan9.wav',b0,usig);

n10x=proses('sembilan10.wav',b0,usig);

o1x=proses('nol1.wav',b0,usig);

o2x=proses('nol2.wav',b0,usig);

o3x=proses('nol3.wav',b0,usig);

o4x=proses('nol4.wav',b0,usig);

o5x=proses('nol5.wav',b0,usig);

o6x=proses('nol6.wav',b0,usig);

o7x=proses('nol7.wav',b0,usig);

o8x=proses('nol8.wav',b0,usig);

o9x=proses('nol9.wav',b0,usig);

o10x=proses('nol10.wav',b0,usig);

% Database

sx=[s1x s2x s3x s4x s5x s6x s7x s8x s9x s10x];

dx=[d1x d2x d3x d4x d5x d6x d7x d8x d9x d10x];

gx=[g1x g2x g3x g4x g5x g6x g7x g8x g9x g10x];

px=[p1x p2x p3x p4x p5x p6x p7x p8x p9x p10x];

lx=[l1x l2x l3x l4x l5x l6x l7x l8x l9x l10x];

ex=[e1x e2x e3x e4x e5x e6x e7x e8x e9x e10x];

tx=[t1x t2x t3x t4x t5x t6x t7x t8x t9x t10x];

ax=[a1x a2x a3x a4x a5x a6x a7x a8x a9x a10x];

nx=[n1x n2x n3x n4x n5x n6x n7x n8x n9x n10x];

ox=[o1x o2x o3x o4x o5x o6x o7x o8x o9x o10x];

z=[sx dx gx px lx ex tx ax nx ox];

%=================================================================

===

% Percobaan pengenalan

c=proses('satua.wav',b0,usig);j1=hcorr(c,z);

c=proses('satub.wav',b0,usig);j2=hcorr(c,z);

c=proses('satuc.wav',b0,usig);j3=hcorr(c,z);

c=proses('satud.wav',b0,usig);j4=hcorr(c,z);

c=proses('satue.wav',b0,usig);j5=hcorr(c,z);

c=proses('satuf.wav',b0,usig);j6=hcorr(c,z);

c=proses('satug.wav',b0,usig);j7=hcorr(c,z);

c=proses('satuh.wav',b0,usig);j8=hcorr(c,z);

c=proses('satui.wav',b0,usig);j9=hcorr(c,z);

c=proses('satuj.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_satu_out={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10}

c=proses('duaa.wav',b0,usig);j1=hcorr(c,z);

c=proses('duab.wav',b0,usig);j2=hcorr(c,z);

c=proses('duac.wav',b0,usig);j3=hcorr(c,z);

c=proses('duad.wav',b0,usig);j4=hcorr(c,z);

c=proses('duae.wav',b0,usig);j5=hcorr(c,z);

c=proses('duaf.wav',b0,usig);j6=hcorr(c,z);

c=proses('duag.wav',b0,usig);j7=hcorr(c,z);

c=proses('duah.wav',b0,usig);j8=hcorr(c,z);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 129: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L11

c=proses('duai.wav',b0,usig);j9=hcorr(c,z);

c=proses('duaj.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_dua_out={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10}

c=proses('tigaa.wav',b0,usig);j1=hcorr(c,z);

c=proses('tigab.wav',b0,usig);j2=hcorr(c,z);

c=proses('tigac.wav',b0,usig);j3=hcorr(c,z);

c=proses('tigad.wav',b0,usig);j4=hcorr(c,z);

c=proses('tigae.wav',b0,usig);j5=hcorr(c,z);

c=proses('tigaf.wav',b0,usig);j6=hcorr(c,z);

c=proses('tigag.wav',b0,usig);j7=hcorr(c,z);

c=proses('tigah.wav',b0,usig);j8=hcorr(c,z);

c=proses('tigai.wav',b0,usig);j9=hcorr(c,z);

c=proses('tigaj.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_tiga_out={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10}

c=proses('empata.wav',b0,usig);j1=hcorr(c,z);

c=proses('empatb.wav',b0,usig);j2=hcorr(c,z);

c=proses('empatc.wav',b0,usig);j3=hcorr(c,z);

c=proses('empatd.wav',b0,usig);j4=hcorr(c,z);

c=proses('empate.wav',b0,usig);j5=hcorr(c,z);

c=proses('empatf.wav',b0,usig);j6=hcorr(c,z);

c=proses('empatg.wav',b0,usig);j7=hcorr(c,z);

c=proses('empath.wav',b0,usig);j8=hcorr(c,z);

c=proses('empati.wav',b0,usig);j9=hcorr(c,z);

c=proses('empatj.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_empat_out={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10}

c=proses('limaa.wav',b0,usig);j1=hcorr(c,z);

c=proses('limab.wav',b0,usig);j2=hcorr(c,z);

c=proses('limac.wav',b0,usig);j3=hcorr(c,z);

c=proses('limad.wav',b0,usig);j4=hcorr(c,z);

c=proses('limae.wav',b0,usig);j5=hcorr(c,z);

c=proses('limaf.wav',b0,usig);j6=hcorr(c,z);

c=proses('limag.wav',b0,usig);j7=hcorr(c,z);

c=proses('limah.wav',b0,usig);j8=hcorr(c,z);

c=proses('limai.wav',b0,usig);j9=hcorr(c,z);

c=proses('limaj.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_lima_out={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10}

c=proses('enama.wav',b0,usig);j1=hcorr(c,z);

c=proses('enamb.wav',b0,usig);j2=hcorr(c,z);

c=proses('enamc.wav',b0,usig);j3=hcorr(c,z);

c=proses('enamd.wav',b0,usig);j4=hcorr(c,z);

c=proses('ename.wav',b0,usig);j5=hcorr(c,z);

c=proses('enamf.wav',b0,usig);j6=hcorr(c,z);

c=proses('enamg.wav',b0,usig);j7=hcorr(c,z);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 130: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L12

c=proses('enamh.wav',b0,usig);j8=hcorr(c,z);

c=proses('enami.wav',b0,usig);j9=hcorr(c,z);

c=proses('enamj.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_enam_out={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10}

c=proses('tujuha.wav',b0,usig);j1=hcorr(c,z);

c=proses('tujuhb.wav',b0,usig);j2=hcorr(c,z);

c=proses('tujuhc.wav',b0,usig);j3=hcorr(c,z);

c=proses('tujuhd.wav',b0,usig);j4=hcorr(c,z);

c=proses('tujuhe.wav',b0,usig);j5=hcorr(c,z);

c=proses('tujuhf.wav',b0,usig);j6=hcorr(c,z);

c=proses('tujuhg.wav',b0,usig);j7=hcorr(c,z);

c=proses('tujuhh.wav',b0,usig);j8=hcorr(c,z);

c=proses('tujuhi.wav',b0,usig);j9=hcorr(c,z);

c=proses('tujuhj.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_tujuh_out={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10}

c=proses('delapana.wav',b0,usig);j1=hcorr(c,z);

c=proses('delapanb.wav',b0,usig);j2=hcorr(c,z);

c=proses('delapanc.wav',b0,usig);j3=hcorr(c,z);

c=proses('delapand.wav',b0,usig);j4=hcorr(c,z);

c=proses('delapane.wav',b0,usig);j5=hcorr(c,z);

c=proses('delapanf.wav',b0,usig);j6=hcorr(c,z);

c=proses('delapang.wav',b0,usig);j7=hcorr(c,z);

c=proses('delapanh.wav',b0,usig);j8=hcorr(c,z);

c=proses('delapani.wav',b0,usig);j9=hcorr(c,z);

c=proses('delapanj.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_delapan_out={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10}

c=proses('sembilana.wav',b0,usig);j1=hcorr(c,z);

c=proses('sembilanb.wav',b0,usig);j2=hcorr(c,z);

c=proses('sembilanc.wav',b0,usig);j3=hcorr(c,z);

c=proses('sembiland.wav',b0,usig);j4=hcorr(c,z);

c=proses('sembilane.wav',b0,usig);j5=hcorr(c,z);

c=proses('sembilanf.wav',b0,usig);j6=hcorr(c,z);

c=proses('sembilang.wav',b0,usig);j7=hcorr(c,z);

c=proses('sembilanh.wav',b0,usig);j8=hcorr(c,z);

c=proses('sembilani.wav',b0,usig);j9=hcorr(c,z);

c=proses('sembilanj.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_sembilan_out={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10}

c=proses('nola.wav',b0,usig);j1=hcorr(c,z);

c=proses('nolb.wav',b0,usig);j2=hcorr(c,z);

c=proses('nolc.wav',b0,usig);j3=hcorr(c,z);

c=proses('nold.wav',b0,usig);j4=hcorr(c,z);

c=proses('nole.wav',b0,usig);j5=hcorr(c,z);

c=proses('nolf.wav',b0,usig);j6=hcorr(c,z);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 131: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L13

c=proses('nolg.wav',b0,usig);j7=hcorr(c,z);

c=proses('nolh.wav',b0,usig);j8=hcorr(c,z);

c=proses('noli.wav',b0,usig);j9=hcorr(c,z);

c=proses('nolj.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_nol_out={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10}

% Hitung tingkat pengenalan

h1=cekout(in_satu_out,1);

h2=cekout(in_dua_out,2);

h3=cekout(in_tiga_out,3);

h4=cekout(in_empat_out,4);

h5=cekout(in_lima_out,5);

h6=cekout(in_enam_out,6);

h7=cekout(in_tujuh_out,7);

h8=cekout(in_delapan_out,8);

h9=cekout(in_sembilan_out,9);

h10=cekout(in_nol_out,10);

jumlah_dikenali = h1+h2+h3+h4+h5+h6+h7+h8+h9+h10

%=================================================================

=========

% INTERNAL FUNCTION

%=================================================================

=========

function wx=proses(fwav,b0,usig)

% Baca file wav

x0=wavread(fwav);

% Preemphasis

alpha=0.95; % nilai alpha (referensi: 0.9-1)

for k=2:length(x0)

x0(k)=x0(k)-alpha*(x0(k-1));

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 DFT

wx=dftzz(x3);

%=================================================================

function x2=potong(x1,b0)

% Memotong data yang perlu

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 132: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L14

% 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=dftzz(x0)

% Ekstraksi ciri DFT

% x0 : data masukan

% x2 : data keluaran

pjseg=512;

ovlseg=128;

h=hamming(pjseg);

n=1;k=1;

while n==1

pjx0=length(x0);

if pjx0>=pjseg

xseg=x0(1:pjseg);

xseg=xseg.*h'

segmtx(:,k)=xseg;

x0(1:pjseg-ovlseg)=[];

k=k+1;

elseif pjx0==0

n=0;

else

x0(pjseg)=0;

xseg=x0.*h';

segmtx(:,k)=xseg;

n=0;

end

end

% Ektraksi ciri menggunakan DFT

[baris,kolom]=size(segmtx);

for k=1:kolom

hdft=abs(dftx(segmtx(:,k)));

x1(:,k)=hdft(:);

end

x1=x1(:);

x1=x1(1:length(x1)/2,:);

% Segment averaging

x2=reshape(x1,8,[]);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 133: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L15

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,100);

for k=1:100

z(k)=corrx(x,y(:,k));

end

% Penentuan keluaran dengan kNN

k=1;

m=10;

[s1,s2]=sort(z,'descend');

kj=s1(1:k);

kn=s2(1:k);

hk=ceil(kn/m);

z=mode(hk);

%=================================================================

===

function z=corrx(x,y)

% Perhitungan korelasi

% x, y : data masukan

% z : data keluaran

mx=mean(x);

my=mean(y);

k1=(x-mx).*(y-my);

k2=sum(k1);

k3=sum((x-mx).^2);

k4=sum((y-my).^2);

k5=sqrt(k3.*k4);

z=k2/k5;

%=================================================================

function y=dftx(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(-j*2*pi*(k-1)*(n-1)/N);

a=x(n)*w;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 134: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L16

y(k)=y(k)+a;

end

end

%=================================================================

====

function y=pout(x)

% Penentuan keluaran

kel={'satu';'dua';'tiga';'empat';'lima';

'enam';'tujuh';'delapan';'sembilan';'nol'};

y=kel{x};

%=================================================================

====

function z=cekout(x,y)

% Penghitungan keluaran yang benar

kel={'satu';'dua';'tiga';'empat';'lima';

'enam';'tujuh';'delapan';'sembilan';'nol'};

z=0;

for k=1:10

if length(x{k})==length(kel{y})

if x{k}==kel{y}

z=z+1;

end

end

end

%

==================================================================

PROGRAM PENGENALAN UCAPAN SECARA REAL TIME

function varargout = guico(varargin)

% GUICO M-file for guico.fig

% GUICO, by itself, creates a new GUICO or raises the existing

% singleton*.

%

% H = GUICO returns the handle to a new GUICO or the handle to

% the existing singleton*.

%

% GUICO('CALLBACK',hObject,eventData,handles,...) calls the local

% function named CALLBACK in GUICO.M with the given input arguments.

%

% GUICO('Property','Value',...) creates a new GUICO or raises the

% existing singleton*. Starting from the left, property value pairs

are

% applied to the GUI before guico_OpeningFcn gets called. An

% unrecognized property name or invalid value makes property

application

% stop. All inputs are passed to guico_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

Pengenalan : guico.fig

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 135: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L17

% Edit the above text to modify the response to help guico

% Last Modified by GUIDE v2.5 09-Jun-2015 23:08:53

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @guico_OpeningFcn, ...

'gui_OutputFcn', @guico_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

% --- Executes just before guico is made visible.

function guico_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 guico (see VARARGIN)

% Choose default command line output for guico

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes guico wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = guico_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

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 136: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L18

% 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 popupmenu1.

function popupmenu1_Callback(hObject, eventdata, handles)

% hObject handle to popupmenu1 (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 popupmenu1 contents as

cell array

% contents{get(hObject,'Value')} returns selected item from

popupmenu1

indeks=get(handles.popupmenu1,'Value');

switch indeks

case 1

user=1;

case 2

user=2;

case 3

user=3;

end

handles.xuser=user;

guidata(hObject,handles);

% --- Executes during object creation, after setting all properties.

function popupmenu1_CreateFcn(hObject, eventdata, handles)

% hObject handle to popupmenu1 (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 popupmenu2.

function popupmenu2_Callback(hObject, eventdata, handles)

% hObject handle to popupmenu2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 137: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L19

% handles structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu2 contents as

cell array

% contents{get(hObject,'Value')} returns selected item from

popupmenu2

segav=get(handles.popupmenu2,'Value');

switch segav

case 1

frame=8;

case 2

frame=16;

case 3

frame=32;

case 4

frame=64;

end

handles.varse=frame;

guidata(hObject,handles);

% --- Executes during object creation, after setting all properties.

function popupmenu2_CreateFcn(hObject, eventdata, handles)

% hObject handle to popupmenu2 (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 popupmenu3.

function popupmenu3_Callback(hObject, eventdata, handles)

% hObject handle to popupmenu3 (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 popupmenu3 contents as

cell array

% contents{get(hObject,'Value')} returns selected item from

popupmenu3

nknn=get(handles.popupmenu3,'Value');

switch nknn

case 1

knn=1;

case 2

knn=3;

case 3

knn=5;

case 4

knn=7;

end

handles.varknn=knn;

guidata(hObject,handles);

% --- Executes during object creation, after setting all properties.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 138: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L20

function popupmenu3_CreateFcn(hObject, eventdata, handles)

% hObject handle to popupmenu3 (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 pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

sample_length=2;

sample_freq=6000;

sample_time=(sample_length*sample_freq);

x=wavrecord(sample_time, sample_freq);

%wavwrite(x, sample_freq, 's.wav');

%x=wavread('s.wav');

axes(handles.axes1);

plot(x);

% Preemphasis

varuser=handles.xuser;

varse=handles.varse;

vark=handles.varknn;

b0=0.3;

x0=x;

usig=4096;

alpha=0.95;

for k=2:length(x0)

x0(k)=x0(k)-alpha*(x0(k-1));

end

% Normalisasi

x1=x0/max(abs(x0));

% 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);

% Penyesuaian ukuran sinyal

x2(usig)=0;

x3=x2(1:usig);

% Segmentasi dan windowing hamming

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 139: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L21

pjseg=512;

ovlseg=128;

h=hamming(pjseg);

n=1;k=1;

while n==1

pjx0=length(x3);

if pjx0>=pjseg

xseg=x3(1:pjseg); % segmentasi

xseg=xseg.*h'; % proses windowing

segmtx(:,k)=xseg; % simpan hasil windowing

x3(1:pjseg-ovlseg)=[]; % potong yang tidak dipakai lagi

k=k+1;

elseif pjx0==0

n=0;

else

x3(pjseg)=0; % penyesuaian panjang segmen

xseg=x3.*h'; % proses windowing

segmtx(:,k)=xseg; % simpan hasil windowing

n=0;

end

end

% Ektraksi ciri menggunakan DFT

[baris,kolom]=size(segmtx);

for k=1:kolom

hdft=abs(dftx(segmtx(:,k)));

x4(:,k)=hdft(:);

end

x4=x4(:); %jika dihapus untuk pengucapan lebih mudah dikenal

x4=x4(1:length(x4)/2,:);

% Segment averaging

x5=reshape(x4,varse,[]); % hasil max:16

x5=mean(x5);

x=x5(:);

axes(handles.axes2)

plot(x);

if (varse==8) && (varuser==1)

load db01dseg8;

elseif (varse==16) && (varuser==1)

load db01dseg16;

elseif (varse==32) && (varuser==1)

load db01dseg32;

elseif (varse==64) && (varuser==1)

load db01dseg64;

elseif (varse==8) && (varuser==2)

load db02dseg8;

elseif (varse==16) && (varuser==2)

load db02dseg16;

elseif (varse==32) && (varuser==2)

load db02dseg32;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 140: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L22

elseif (varse==64) && (varuser==2)

load db02dseg64;

elseif (varse==8) && (varuser==3)

load db03dseg8;

elseif (varse==16) && (varuser==3)

load db03dseg16;

elseif (varse==32) && (varuser==3)

load db03dseg32;

elseif (varse==64) && (varuser==3)

load db03dseg64;

end

%korelasi

sz=size(z);

%jarak=zeros(1,10);

for n=1:100

jarak(n)=korelasi(x,z(:,n));

end

%knn

kk=vark;

m=10;

[s1,s2]=sort(jarak,'descend');

kj=s1(1:kk);

kn=s2(1:kk);

hk=ceil(kn/m);

kout=mode(hk);

idx=find(hk==kout);

lokth=idx(1);

nilai=kj(idx);

th=s1(lokth);

jarakk=th

if (kout == 1) && (varuser==1) && (th < 0.7207)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 1) && (varuser==1) && (th >0.7207)

korout = {'satu'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','a')

fclose(s);

delete(s);

clear s;

elseif (kout == 2) && (varuser==1) && (th < 0.7539)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 141: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L23

elseif (kout == 2) && (varuser==1) && (th > 0.7539)

korout = {'dua'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','b')

fclose(s);

delete(s);

clear s;

elseif (kout == 3) && (varuser==1) && (th <0.7030)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 3) && (varuser==1) && (th >0.7030)

korout = {'tiga'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','c')

fclose(s);

delete(s);

clear s;

elseif (kout == 4) && (varuser==1) && (th < 0.7206)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 4) && (varuser==1) && (th > 0.7206)

korout = {'empat'}

kirim = 'd';

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','d')

fclose(s);

delete(s);

clear s;

elseif (kout == 5) && (varuser==1) && (th < 0.7760)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 5) && (varuser==1)&& (th > 0.7760)

korout = {'lima'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','e')

fclose(s);

delete(s);

clear s;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 142: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L24

elseif (kout == 6) && (varuser==1) && (th < 0.6100)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 6) && (varuser==1) && (th > 0.6100)

korout = {'enam'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','f')

fclose(s);

delete(s);

clear s;

elseif (kout == 7) && (varuser==1) && (th < 0.7592)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 7) && (varuser==1) && (th > 0.7592)

korout = {'tujuh'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','g')

fclose(s);

delete(s);

clear s;

elseif (kout == 8) && (varuser==1) && (th < 0.7414)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 8) && (varuser==1) && (th > 0.7414)

korout = {'delapan'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','h')

fclose(s);

delete(s);

clear s;

elseif (kout == 9) && (varuser==1) && (th < 0.8503)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 9)&& (varuser==1) && (th > 0.8503)

korout = {'sembilan'}

kirim = 'i';

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 143: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L25

fopen(s);

fprintf(s,'%c','i')

fclose(s);

delete(s);

clear s;

elseif (kout == 10) && (varuser==1) && (th <0.7340)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 10) && (varuser==1) && (th >0.7340)

korout = {'nol'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','j')

fclose(s);

delete(s);

clear s;

elseif (kout == 1) && (varuser==2) && (th < 0.7351)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 1) && (varuser==2) && (th > 0.7351)

korout = {'satu'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','a')

fclose(s);

delete(s);

clear s;

elseif (kout == 2) && (varuser==2) && (th < 0.7627)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 2) && (varuser==2) && (th > 0.7627)

korout = {'dua'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','b')

fclose(s);

delete(s);

clear s;

elseif (kout == 3) && (varuser==2) && (th < 0.6859)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 3) && (varuser==2) && (th > 0.6859)

korout = {'tiga'}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 144: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L26

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','c')

fclose(s);

delete(s);

clear s;

elseif (kout == 4) && (varuser==2) && (th < 0.7197)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 4) && (varuser==2) && (th > 0.7197)

korout = {'empat'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','d')

fclose(s);

delete(s);

clear s;

elseif (kout == 5) && (varuser==2) && (th < 0.7551)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 5) && (varuser==2) && (th > 0.7551)

korout = {'lima'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','e')

fclose(s);

delete(s);

clear s;

elseif (kout == 6) && (varuser==2) && (th < 0.6721)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 6)&& (varuser==2) && (th > 0.6721)

korout = {'enam'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','f')

fclose(s);

delete(s);

clear s;

elseif (kout == 7) && (varuser==2) && (th < 0.7600)

korout = {'ERROR'}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 145: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L27

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 7) && (varuser==2) && (th > 0.7600)

korout = {'tujuh'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','g')

fclose(s);

delete(s);

clear s;

elseif (kout == 8) && (varuser==2) && (th < 0.7090)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 8) && (varuser==2) && (th > 0.7090)

korout = {'delapan'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','h')

fclose(s);

delete(s);

clear s;

elseif (kout == 9) && (varuser==2) && (th < 0.7298)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 9) && (varuser==2) && (th > 0.7298)

korout = {'sembilan'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','i')

fclose(s);

delete(s);

clear s;

elseif (kout == 10) && (varuser==2) && (th < 0.6567)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 10) && (varuser==2) && (th > 0.6567)

korout = {'nol'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','j')

fclose(s);

delete(s);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 146: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L28

clear s;

elseif (kout == 1) && (varuser==3) && (th < 0.6768)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 1) && (varuser==3) && (th > 0.6768)

korout = {'satu'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','a')

fclose(s);

delete(s);

clear s;

elseif (kout == 2) && (varuser==3) && (th < 0.7212)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 2) && (varuser==3) && (th > 0.7212)

korout = {'dua'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','b')

fclose(s);

delete(s);

clear s;

elseif (kout == 3) && (varuser==3) && (th < 0.7053)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 3) && (varuser==3) && (th > 0.7053)

korout = {'tiga'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','c')

fclose(s);

delete(s);

clear s;

elseif (kout == 4) && (varuser==3) && (th < 0.6860)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 4) && (varuser==3)&& (th > 0.6860)

korout = {'empat'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 147: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L29

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','d')

fclose(s);

delete(s);

clear s;

elseif (kout == 5) && (varuser==3) && (th < 0.7928)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 5) && (varuser==3)&& (th > 0.7928)

korout = {'lima'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','e')

fclose(s);

delete(s);

clear s;

elseif (kout == 6) && (varuser==3) && (th < 0.6841)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 6)&& (varuser==3) && (th > 0.6841)

korout = {'enam'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','f')

fclose(s);

delete(s);

clear s;

elseif (kout == 7) && (varuser==3) && (th < 0.7794)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 7) && (varuser==3) && (th > 0.7794)

korout = {'tujuh'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','g')

fclose(s);

delete(s);

clear s;

elseif (kout == 8) && (varuser==3) && (th < 0.7556)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 148: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L30

elseif (kout == 8) && (varuser==3) && (th > 0.7556)

korout = {'delapan'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','h')

fclose(s);

delete(s);

clear s;

elseif (kout == 9) && (varuser==3) && (th < 0.7783)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 9)&& (varuser==3) && (th > 0.7783)

korout = {'sembilan'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','i')

fclose(s);

delete(s);

clear s;

elseif (kout == 10) && (varuser==3) && (th < 0.7721)

korout = {'ERROR'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

elseif (kout == 10) && (varuser==3) && (th > 0.7721)

korout = {'nol'}

hasilout=korout;

set(handles.edit1,'string',hasilout)

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none');

fopen(s);

fprintf(s,'%c','j')

fclose(s);

delete(s);

clear s;

end

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton2 (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 button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton3 (see GCBO)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 149: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L31

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

delete(figure(guico));

function y=dftx(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

function dbxciri

b0 = 0.3; segin =8;

z1=proses ('satu',b0,segin);%sz1=size(z1) z2=proses ('dua',b0,segin);%sz2=size(z2) z3=proses ('tiga',b0,segin);%sz3=size(z3) z4=proses ('empat',b0,segin);%sz4=size(z4) z5=proses ('lima',b0,segin);%sz5=size(z5) z6=proses ('enam',b0,segin);%sz6=size(z6) z7=proses ('tujuh',b0,segin);%sz7=size(z7) z8=proses ('delapan',b0,segin);%sz8=size(z8) z9=proses ('sembilan',b0,segin);%sz9=size(z9) z10=proses ('nol',b0,segin);%sz10=size(z10)

z=[z1 z2 z3 z4 z5 z6 z7 z8 z9 z10];

save db01dseg8 z %======================================= %INTERNAL FUNCTION %=======================================

function z=proses (fwav,b0,segin) x1=wavread([fwav '1.wav']);y=potong(x1,b0);k1=xdft(y,segin);%sk1=size(k1) x2=wavread([fwav '2.wav']);y=potong(x2,b0);k2=xdft(y,segin);%sk2=size(k2) x3=wavread([fwav '3.wav']);y=potong(x3,b0);k3=xdft(y,segin);%sk3=size(k3) x4=wavread([fwav '4.wav']);y=potong(x4,b0);k4=xdft(y,segin);%sk4=size(k4) x5=wavread([fwav '5.wav']);y=potong(x5,b0);k5=xdft(y,segin);%sk5=size(k5) x6=wavread([fwav '6.wav']);y=potong(x6,b0);k6=xdft(y,segin);%sk6=size(k6) x7=wavread([fwav '7.wav']);y=potong(x7,b0);k7=xdft(y,segin);%sk7=size(k7)

Pengenalan: dftx.m

Pengenalan : dbxciri.m

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 150: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L32

x8=wavread([fwav '8.wav']);y=potong(x8,b0);k8=xdft(y,segin);%sk8=size(k8) x9=wavread([fwav '9.wav']);y=potong(x9,b0);k9=xdft(y,segin);%sk9=size(k9) x10=wavread([fwav

'10.wav']);y=potong(x10,b0);k10=xdft(y,segin);%sk10=size(k10) z=[k1 k2 k3 k4 k5 k6 k7 k8 k9 k10]; %===================================== function bp=potong(x0,b0);

alpha=0.95; for k=2:length(x0) x0(k)=x0(k)-alpha*(x0(k-1)); end

% Normalisasi x1=x0/max(abs(x0));

% 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);

% Penyesuaian ukuran sinyal usig=4096; x2(usig)=0; x3=x2(1:usig); bp=x3;

%================================== function x1=xdft(x0,segin)

% Framing dan windowing pjseg=512; % panjang frame (referensi: 512) ovlseg=128; % segmen yang overlap: 128 (referensi: 100) h=hamming(pjseg);

n=1;k=1; while n==1 pjx0=length(x0); if pjx0>=pjseg xseg=x0(1:pjseg); xseg=xseg.*h'; segmtx(:,k)=xseg; x0(1:pjseg-ovlseg)=[];

k=k+1; elseif pjx0==0 n=0; else x0(pjseg)=0;

xseg=x0.*h'; segmtx(:,k)=xseg; n=0; end end

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 151: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L33

% Ektraksi ciri menggunakan FFT [baris,kolom]=size(segmtx); for k=1:kolom hdft=abs(dftx(segmtx(:,k))); x1(:,k)=hdft(:); end x1=x1(:); x1=x1(1:length(x1)/2,:);

% Segment averaging x2=reshape(x1,segin,[]); x2=mean(x2); x2=x2(:); x1=x2; %================================= function f=dftx(x) % Perhitungan DFT % Hitung panjang x N=length(x);

% Hitung DFT f=zeros(1,N); for k=1:N for n=1:N w=exp(-j*2*pi*(k-1)*(n-1)/N); a=x(n)*w; f(k)=f(k)+a; end end %=================================

option='n'; option_rec='n'; sample_len=2; 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

Pengenalan : perekaman.m

Pengenalan : seri1.m

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 152: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L34

s=serial('COM15','BaudRate',9600,'DataBits',8,'parity','none','StopBits',

1,'FlowControl','none'); fopen(s); fprintf(s,'%c',kirim) fclose(s); delete(s); clear s;

function k=korelasi(x,z)

mx=mean(x);

my=mean(z);

k1=(x-mx).*(z-my);

k2=sum(k1);

k3=sum((x-mx).^2);

k4=sum((z-my).^2);

k5=sqrt(k3.*k4);

k=k2/k5;

Pengenalan: Korelasi.m

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 153: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L35

Listing Program Mikrokontroler

/*****************************************************

Chip type : ATmega32

Program type : Application

AVR Core Clock frequency: 11.059200 MHz

Memory model : Small

External RAM size : 0

Data Stack size : 512

*****************************************************/

#include <mega32.h>

// Alphanumeric LCD Module functions

#include <alcd.h>

// Standard Input/Output functions

#include <stdio.h>

#define servo1 PORTB.0

#define servo2 PORTB.1

#define servo3 PORTB.2

signed int i=0,data1=0,data2=0,data3=0;

int a;

unsigned char b[16];

// Timer 0 overflow interrupt service routine

interrupt [TIM0_OVF] void timer0_ovf_isr(void)

{

if (i>864)

{i=0;}

else

{i++;}

if (i<data1)

{servo1=1;}

else

{servo1=0;}

if (i<data2)

{servo2=1;}

else

{servo2=0;}

if (i<data3)

{servo3=1;}

else

{servo3=0;}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 154: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L36

}

// Declare your global variables here

#include <delay.h>

void komunikasi()

{

a=getchar();

lcd_gotoxy(0,0);

//sprintf(b,"komunikasi= %d" ,a);

lcd_puts(b);

delay_ms(3000);

lcd_clear();delay_ms(10);

}

void siaga_robot()

{

data1=64; //90

delay_ms(100);

data2=69; //80

delay_ms(100);

data3=75; //90

delay_ms(100);

}

void siaga2_robot()

{

data1=64;

delay_ms(100);

data2=50;

delay_ms(100);

data3=75;

delay_ms(100);

}

void angka_nol()

{

//12

for (data1=64;data1<=69;data1++) //100

{

delay_ms(100);

};

data2=69; //90

delay_ms(100);

data3=75; //90

delay_ms(100);

//23

data2=64; //90

delay_ms(100);

data1=69; //100

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 155: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L37

delay_ms(100);

for (data3=75;data3<=80;data3++) //100

{

delay_ms(100);

};

//34

data2=68; //90

delay_ms(100);

for (data1=69;data1>=64;data1--) //90

{

delay_ms(100);

};

data3=80; //90

delay_ms(100);

//41

data2=69; //90

delay_ms(100);

data1=64; //90

delay_ms(100);

for (data3=80;data3>=75;data3--)//90

{

delay_ms(100);

};

//mundur

for (data2=69;data2>=50;data2--)

{

delay_ms(100);

};

siaga2_robot();

delay_ms(100);

for (data2=50;data2<=69;data2++)

{

delay_ms(100);

};

}

void angka_satu()

{

//12

data1=64; //90

delay_ms(100);

data2=69; //90

delay_ms(100);

for (data3=75;data3<=80;data3++) //100

{

delay_ms(100);

};

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 156: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L38

//mundur

for (data2=69;data2>=50;data2--)

{

delay_ms(100);

};

siaga2_robot();

delay_ms(500);

for (data2=50;data2<=69;data2++)

{

delay_ms(100);

};

}

void angka_dua()

{

//12

for (data1=64;data1<=69;data1++)//100

{

delay_ms(100);

};

data2=69; //90

delay_ms(100);

data3=75; //100

delay_ms(100);

//23

data1=69; //100

delay_ms(100);

data2=69; //90

delay_ms(100);

for (data3=75;data3<=78;data3++) //100

{

delay_ms(100);

};

//34

for (data1=69;data1>=63;data1--)

{

delay_ms(100);

};

data2=69; //90

delay_ms(100);

data3=78; //90

delay_ms(100);

//45

data2=70; //90

delay_ms(100);

data1=64; //90

delay_ms(100);

for (data3=78;data3<=81;data3++) //110

{

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 157: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L39

delay_ms(100);

};

//56

data2=70; //90

delay_ms(100);

for (data1=64;data1<=69;data1++) //100

{

delay_ms(100);

};

data3=81; //110

delay_ms(100);

//mundur

for (data2=70;data2>=50;data2--)

{

delay_ms(100);

};

siaga2_robot();

delay_ms(500);

for (data2=50;data2<=69;data2++)

{

delay_ms(100);

};

}

void angka_tiga()

{

//12

for (data1=64;data1<=69;data1++)//100

{

delay_ms(100);

};

data2=69; //90

delay_ms(100);

data3=75; //90

delay_ms(100);

//23

data1=69; //100

delay_ms(100);

data2=69; //90

delay_ms(100);

for (data3=75;data3<=78;data3++) //100

{

delay_ms(100);

};

//34

for (data1=69;data1>=64;data1--) //90

{

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 158: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L40

delay_ms(100);

};

data2=69; //90

delay_ms(100);

data3=78; //100

delay_ms(100);

//43

for (data1=64;data1<=69;data1++) //100

{

delay_ms(100);

};

data2=69; //90

delay_ms(100);

data3=78; //100

delay_ms(100);

//35

data1=69; //100

delay_ms(100);

data2=70; //90

delay_ms(100);

for (data3=78;data3<=81;data3++) //110

{

delay_ms(100);

};

//56

for (data1=69;data1>=64;data1--) //90

{

delay_ms(100);

};

data2=70; //90

delay_ms(100);

data3=81; //110

delay_ms(100);

//mundur

for (data2=70;data2>=50;data2--)

{

delay_ms(100);

};

siaga2_robot();

delay_ms(500);

for (data2=50;data2<=69;data2++)

{

delay_ms(100);

};

}

void angka_empat()

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 159: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L41

{

//12

data1=64; //90

delay_ms(100);

data2=69; //90

delay_ms(100);

for (data3=75;data3<=78;data3++)//100

{

delay_ms(100);

};

//23

for (data1=64;data1<=69;data1++) //100

{

delay_ms(100);

};

data2=69 ; //90

delay_ms(100);

data3=78; //100

delay_ms(100);

//34

data1=69; //90

delay_ms(100);

data2=69; //90

delay_ms(100);

for (data3=78;data3>=75;data3--) //100

{

delay_ms(100);

};

//45

data2=64; //100

delay_ms(100);

data1=69; //90

delay_ms(100);

for (data3=75;data3<=81;data3++)//110

{

delay_ms(100);

};

//mundur

for (data2=65;data2>=50;data2--)

{

delay_ms(100);

};

siaga2_robot();

delay_ms(500);

for (data2=50;data2<=69;data2++)

{

delay_ms(100);

};

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 160: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L42

}

void angka_lima()

{

//12

data2=68; //90

delay_ms(100);

for (data1=64;data1>=60;data1--) //80

{

delay_ms(100);

};

data3=75; //90

delay_ms(100);

//23

data1=60; //80

delay_ms(100);

data2=68; //90

delay_ms(100);

for (data3=75;data3<=78;data3++) //100

{

delay_ms(100);

};

//34

data2=62; //90

delay_ms(100);

for (data1=60;data1<=66;data1++) //90

{

delay_ms(100);

};

data3=78; //100

delay_ms(100);

//45

data2=69; //90

delay_ms(100);

data1=64; //90

delay_ms(100);

for (data3=78;data3<=81;data3++) //110

{

delay_ms(100);

};

//56

data2=72; //90

delay_ms(100);

for (data1=64;data1>=60;data1--) //80

{

delay_ms(100);

};

data3=81; //110

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 161: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L43

delay_ms(100);

//mundur

for (data2=70;data2>=50;data2--)

{

delay_ms(100);

};

siaga2_robot();

delay_ms(500);

for (data2=50;data2<=69;data2++)

{

delay_ms(100);

};

}

void angka_enam()

{

//12

data1=64; //90

delay_ms(100);

data2=69; //90

delay_ms(100);

for (data3=75;data3<=78;data3++) //100

{

delay_ms(100);

};

//23

for (data1=64;data1<=69;data1++) //100

{

delay_ms(100);

};

data2=69 ; //90

delay_ms(100);

data3=78; //100

delay_ms(100);

//34

data2=69; //90

delay_ms(100);

data1=69; //100

delay_ms(100);

for (data3=78;data3<=81;data3++) //110

{

delay_ms(100);

};

//45

data2=69; //90

delay_ms(100);

for (data1=69;data1>=64;data1--) //90

{

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 162: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L44

delay_ms(100);

};

data3=81; //110

delay_ms(100);

//52

data1=64; //90

delay_ms(100);

data2=69; //90

delay_ms(100);

for (data3=81;data3>=78;data3--) //100

{

delay_ms(100);

}

//mundur

for (data2=69;data2>=50;data2--)

{

delay_ms(100);

};

siaga2_robot();

delay_ms(500);

for (data2=50;data2<=69;data2++)

{

delay_ms(100);

};

}

void angka_tujuh()

{

//12

for (data1=64;data1<=69;data1++)//100

{

delay_ms(100);

};

data2=69; //90

delay_ms(100);

data3=75; //100

delay_ms(100);

//23

data1=69; //100

delay_ms(100);

data2=69; //90

delay_ms(100);

for (data3=75;data3<=81;data3++) //100

{

delay_ms(100);

};

//mundur

for (data2=69;data2>=50;data2--)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 163: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L45

{

delay_ms(100);

};

siaga2_robot();

delay_ms(500);

for (data2=50;data2<=69;data2++)

{

delay_ms(100);

};

}

void angka_delapan()

{

//12

for (data1=64;data1<=69;data1++)//100

{

delay_ms(100);

};

data2=69; //90

delay_ms(100);

data3=75; //90

delay_ms(100);

//23

data1=69; //100

delay_ms(100);

data2=69; //90

delay_ms(100);

for (data3=75;data3<=78;data3++) //100

{

delay_ms(100);

};

//34

for (data1=69;data1>=64;data1--) //90

{

delay_ms(100);

};

data2=69; //90

delay_ms(100);

data3=78; //100

delay_ms(100);

//43

for (data1=64;data1<=69;data1++) //100

{

delay_ms(100);

};

data2=69; //90

delay_ms(100);

data3=78; //100

delay_ms(100);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 164: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L46

//35

data1=69; //100

delay_ms(100);

data2=70; //90

delay_ms(100);

for (data3=78;data3<=81;data3++) //110

{

delay_ms(100);

};

//56

for (data1=69;data1>=64;data1--) //90

{

delay_ms(100);

};

data2=70; //90

delay_ms(100);

data3=81; //110

delay_ms(100);

//67

data1=64; //90

delay_ms(100);

data2=67; //90

delay_ms(100);

for (data3=81;data3>=75;data3--) //90

{

delay_ms(100);

};

//mundur

for (data2=67;data2>=50;data2--)

{

delay_ms(100);

};

siaga2_robot();

delay_ms(500);

for (data2=50;data2<=69;data2++)

{

delay_ms(100);

};

}

void angka_sembilan()

{

//12

for (data1=64;data1>=60;data1--) //80

{

delay_ms(100);

};

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 165: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L47

data2=69; //90

delay_ms(100);

data3=75; //90

delay_ms(100);

//23

data2=71; //90

delay_ms(100);

data1=60; //80

delay_ms(100);

for (data3=75;data3>=70;data3--) //80

{

delay_ms(100);

}

//34

data2=71; //90

delay_ms(100);

for (data1=60;data1<=64;data1++) //90

{

delay_ms(100);

};

data3=70; //80

delay_ms(100);

//45

data2=69; //90

delay_ms(100);

data1=64; //90

delay_ms(100);

for (data3=70;data3<=78;data3++) //100

{

delay_ms(100);

};

//mundur

for (data2=69;data2>=50;data2--)

{

delay_ms(100);

};

siaga2_robot();

delay_ms(500);

for (data2=50;data2<=69;data2++)

{

delay_ms(100);

};

}

void main(void)

{

PORTB=0x00;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 166: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L48

DDRB=0xFF;

TCCR0=0x01;

TCNT0=0x00;

OCR0=0x00;

// External Interrupt(s) initialization

// INT0: Off

// INT1: Off

// INT2: Off

MCUCR=0x00;

MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=0x01;

// 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=0x47;

// Analog Comparator initialization

// Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off

ACSR=0x80;

SFIOR=0x00;

// ADC initialization

// ADC disabled

ADCSRA=0x00;

// SPI initialization

// SPI disabled

SPCR=0x00;

// TWI initialization

// TWI disabled

TWCR=0x00;

// Alphanumeric LCD initialization

// Connections specified in the

// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:

// RS - PORTC Bit 0

// RD - PORTC Bit 1

// EN - PORTC Bit 2

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 167: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L49

// D4 - PORTC Bit 4

// D5 - PORTC Bit 5

// D6 - PORTC Bit 6

// D7 - PORTC Bit 7

// Characters/line: 8

lcd_init(16);

// Global enable interrupts

#asm("sei")

while (1)

{

siaga_robot();

delay_ms(500);

komunikasi();

delay_ms(30);

if(a==97)

{

lcd_gotoxy(0,1);lcd_putsf("ANGKA SATU");delay_ms(1000);

angka_satu();delay_ms(500);

lcd_clear();delay_ms(10);

}

else if(a==98)

{

lcd_gotoxy(0,1);lcd_putsf("ANGKA DUA");delay_ms(1000);

angka_dua();delay_ms(500);

lcd_clear();delay_ms(10);

}

else if(a==99)

{

lcd_gotoxy(0,1);lcd_putsf("ANGKA TIGA");delay_ms(1000);

angka_tiga();delay_ms(500);

lcd_clear();delay_ms(10);

}

else if(a==100)

{

lcd_gotoxy(0,1);lcd_putsf("ANGKA EMPAT");delay_ms(1000);

angka_empat();delay_ms(10);

lcd_clear();delay_ms(10);

}

else if(a==101)

{

lcd_gotoxy(0,1);lcd_putsf("ANGKA LIMA");delay_ms(1000);

angka_lima();delay_ms(10);

lcd_clear();delay_ms(10);

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 168: APLIKASI PENGENALAN UCAPAN UNTUK LENGAN ROBOT … · pada tanggal_____ dan dinyatakan memenuhi syarat Susunan Panitia Penguji ... parameter best in the value segment averaging 8 and

L50

else if(a==102)

{

lcd_gotoxy(0,1);lcd_putsf("ANGKA ENAM");delay_ms(1000);

angka_enam();delay_ms(10);

lcd_clear();delay_ms(10);

}

else if(a==103)

{

lcd_gotoxy(0,1);lcd_putsf("ANGKA TUJUH");delay_ms(1000);

angka_tujuh();delay_ms(10);

lcd_clear();delay_ms(10);

}

else if(a==104)

{

lcd_gotoxy(0,1);lcd_putsf("ANGKADELAPAN");delay_ms(1000

);

angka_delapan();delay_ms(10);

lcd_clear();delay_ms(10);

}

else if(a==105)

{

lcd_gotoxy(0,1);lcd_putsf("ANGKASEMBILAN");delay_ms(1000);

angka_sembilan();delay_ms(10);

lcd_clear();delay_ms(10);

}

else if(a==106)

{

lcd_gotoxy(0,1);lcd_putsf("ANGKA NOL");delay_ms(1000);

angka_nol();delay_ms(10);

lcd_clear();delay_ms(10);

}

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI