Pengembangan Konverter

  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Pengembangan Konverter as PDF for free.

More details

  • Words: 11,413
  • Pages: 106
PENGEMBANGAN KONVERTER DARI TEKS KE FONEM PADA MIKROKONTROLER UNTUK APLIKASI ALAT BANTU WICARA Oleh : PUTU RIO ADITYA DARMA 7103 030 047 Proyek Akhir ini Diajukan Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Ahli Madya (A.Md.) di Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember Surabaya

Disetujui Oleh: Tim Penguji Proyek Akhir :

Dosen Pembimbing:

1. Ir. Ratna Adil, MT NIP. 131 756 642

1. Arif Irwansyah, ST NIP. 132 296 752

2. Ir. Rika Rokhana, MT NIP. 132 206 863

3. Madyono SST NIP. 132 008 580

Mengetahui: Ketua Jurusan Teknik Elektronika

Ir. Dedid Cahya Happyanto, MT NIP: 131 694 603

viii

ABSTRAK Proyek akhir ini adalah tentang konverter teks ke fonem sebagai bagian dari text to speech konverter. Konverter teks ke fonem berfungsi untuk memecah sebuah kalimat atau kata menjadi bentuk pecahan terkecil dari sebuah pengucapan atau sering dinamakan bentuk fonem (suku kata). Output berupa fonem yang dihasilkan konverter ini akan menjadi input dari sistem konverter selanjutnya. Konverter teks ke fonem menggunakan mikrokontroler (ATMEGA 16L) sebagai penyimpan dan pemroses program, masukan berupa teks diketikkan melalui keypad 3x4. Hasil keluaran dari konverter ini(berupa fonem) akan ditampilkan pula ke LCD serta ditransfer menuju konverter selanjutnya (konverter fonem ke wicara) melalui komunikasi serial. Algoritma program yang dipakai untuk memecah kata menjadi fonem berdasarkan referensi dari teknik automata. Pola fonem yang telah dapat dikenali adalah pola fonem regular atau dasar dari pola suku kata dalam bahasa Indonesia. Sehingga untuk kata-kata asing/serapan yang telah dimasukkan tetap akan dipecah berdasar pola fonem ejaan bahasa Indonesia. Konverter teks ke fonem ini telah dapat mengenali bentuk karakter berupa angka(normalisasi angka). Konverter teks ke fonem juga memiliki sifat portable, karena bentuknya yang tergolong kecil dan mudah untuk dibawa kemana mana (mobile). Kelemahan dari konverter ini adalah belum tersedianya pengenalan karakter berupa tanda baca. Kata kunci: fonem, mikrokontroler, LCD, keypad, automata, komunikasi serial, portable.

ix

ABSTRACT This Final Project is about text converter to phoneme as part of text to speech converter. Text converter to phoneme function to break a word or sentence become smallest fraction form from a uttering or often named a phoneme form (syllable). Output in the form of phoneme yielded by this converter will become input from converter system hereinafter. Text converter to phoneme use microcontroller (ATMEGA 16L) as process taker and depositor program, input in the form of text typed [by] through keypad 3x4. Output result from this converter (phoneme) will be presented also to LCD and also transferred to go to converter hereinafter (phoneme to speech converter) through serial communications. Algorithm program that wear to break word become phoneme pursuant get reference from technique automata. Phoneme pattern earned recognized is phoneme with regular pattern or elementary syllable pattern in Indonesian. So that for words foreign which have been entered will remain be broken based on Indonesian spelling phoneme pattern. Text converter to this phoneme have earned to recognize character form in the form of number (normalization of number process) Text converter to phoneme also measure up to portable, because its for pertained minimize and easy to be brought (mobile). Feebleness from this converter is not yet made available of character recognition in the form of punctuation mark. Keyword: phoneme, microcontroller, LCD, keypad, automata, serial communications, portable.

KATA PENGANTAR x

Alhamdulillah, segala puji syukur bagi Allah SWT karena atas berkat rahmat dan hidayah-Nya, saya berhasil menyelesaikan buku laporan Proyek Akhir saya yang berjudul:

Pengembangan Konverter dari Teks ke Fonem Pada Mikrokontroler Untuk Aplikasi Alat Bantu Wicara ”Development of Text to Foneme Converter On Microcontroller for the Appliance Assistive of Speech” Proyek kahir ini disusun untuk melengkapi persyaratan akademik dalam menyelesaikan kuliah pogram D3 di Politeknik Elektronka Negeri Surabaya Jurusan Teknik Elektronika. Semoga hasil Tugas Akhir yang telah dilakukan ini dapat memberikan suatu nilai tambah dan pengalaman tersendiri bagi dunia pendidikan yang berkecimpung dibidang sains dan teknologi. Kami menyadari bahwa buku ini masih jauh dai kesempurnaan, oleh karena itu kritik dan saran dari pembaca yang bersifat membangun sangat saya harapkan. Akhirnya kami berharap semoga buku ini dapat bermanfaat bag mahasiswa Politeknik Elektronika Negeri Surabaya pada khususnya dari para pembaca pada umumnya.

Surabaya, 28 Juli 2006

Penyusun

UCAPAN TERIMAKASIH

xi

Assalamu’alaikum Wr.Wb. Atas berkah rahmat Allah SWT serta dengan segala hormat dan kerendahan hati, Saya selaku penyusun dan penulis tak lupa mengucapkan banyak terima kasih, kepada semua pihak yang banyak memberi masukan dan bantuan kepada saya sehingga proyek akhir ini dapat terselesaikan dengan baik. Sujud syukur dihaturkan kepada Allah SWT karena atas berkah rahmatnya sehingga saya selaku penyusun telah diberikan kesempatan untuk menyelesaikan proyek akhir ini, juga tak lupa kami ucapkan terima kasih kepada : 1.

Ibundaku (Sugihartie), yang selalu kubanggakan kapanpun dimanapun, yang telah memberikan dukungan doa, motivasi, materiel, kasih sayang dan segala-galanya yang tidak akan pernah bisa terukur nilainya. Tak ada kata yang pantas diucapkan dan budi yang dilakukan untuk membalas meskipun setetes dari lautan pengorbanan kasih sayang, materi, dukungan, wejangan serta doa yang selama ini diberikan kepadaku. 2. Adikku tersayang Kadek, yang selalu setia dan sabar menemaniku, dan mau mendengar segala ”wejangan”ku. 3. Bapak Arif Irwansyah, ST selaku dosen pembimbing, atas segala motivasi dan kepercayaan yang diberikan pada saya. 4. Ibu Ir. Ratna Adil, MT, Ibu Ir. Rika Rokhana, MT, dan Bapak Madyono SST selaku dosen penguji atas segala saran dan kritik yang membangun, hingga buku ini terselesaikan. 5. Bapak Dr. Ir. Titon dutono, M.ENG selaku Direktur Politeknik Elektronika Negeri Surabaya 6. Bapak Drs. Dedid Cahya H, selaku Kepala Jurusan Teknik Elektronika yang selalu memberikan yang terbaik bagi kami. 7. Bapak Ibu Dosen PENS-ITS yang tidak bisa saya sebutkan satupersatu, terimakasih atas ilmu yang telah diberikan. 8. Bapak Hari Oktavianto, ST., terima kasih atas ilmu, arahan dan masukan-masukan kepada penulis. 9. Sahabatku Faisal Amir, terima kasih yang sebesar-besarnya atas bantuan tenaga dan pikiran dalam pengerjaan buku proyek akhir saya. 10. Teman-teman kontrakan Asem Payung, Ardianto, Irfan, Aris, Rokman, Kontap, Yohan, Ali, Yono, Gita, Sony, Bang Jarot dan Bang Hendrik, atas segala bantuan, ilmu, arahan dan masukanmasukan tentang arti perjuangan dalam hidup kepada penulis.

xii

11. Teman-teman M2, Fadlur, Bayu, Rizqy, dan Dicki, terima kasih atas wejangan dan persahabatannya. 12. Teman-Teman TIENS, Widen, Diah, Eka, Mujur, atas dukungannya, serta bimbingannya menuju jalan yang benar. 13. Terima kasih sebesar-besarnya kepada Mufidha Zulfia, serta keluarga besarnya yang telah menjadi motivasi dalam perjalanan hidup saya. 14. Teman-teman EB, tanpa kalian sekalian tiada keindahan dalam hidup ini. 15. Teman-teman IPA3, tanpa kalian tiada keindahan perjalanan nostalgia dalam hidup ini. 16. Cewek-cewek yang telah datang dan pergi dari hidupku, tanpa kalian tiada keindahan dalam pencarian pelabuhan terakhir hatiku. 17. Semua pihak yang telah membantu kami dalam penyelesaian Tugas akhir ini yang tidak dapat kami sebutkan satu persatu. Semoga Allah S.W.T senantiasa memberikan perlindungan dan memberikan balasan yang lebih di kemudian hari.

DAFTAR ISI

xiii

HALAMAN JUDUL ................................................................... i HALAMAN PENGESAHAN...................................................... ii ABSTRAK................................................................................... iii ABSTRACT ................................................................................ iv KATA PENGANTAR ................................................................. v UCAPAN TERIMA KASIH ....................................................... vi DAFTAR ISI ............................................................................... viii DAFTAR GAMBAR................................................................... xi DAFTAR TABEL ....................................................................... xii BAB I. PENDAHULUAN ........................................................... 1.1 Latar belakang.......................................................... 1.2 Tujuan...................................................................... 1.2.1 Tujuan Umum......................................................... 1.2.2 Tujuan Khusus........................................................ 1.3 Perumusan Masalah ................................................. 1.3.1 Batasan Masalah .................................................... 1.3.2 Uraian Masalah ...................................................... 1.4 Metodologi............................................................... 1.5 Sistematika Pembahasan...........................................

1 1 1 1 1 2 2 2 2 3

BAB II TEORI PENUNJANG........................................................ 5 2.1 Mikrokontroller ATMega 16(L).................................... 5 2.1.1 Gambaran Umum ATMega 16(L).............................. 5 2.1.2 Konfigurasi pin-pin ATMega 16(L)........................... 6 2.1.3 Program Memori........................................................ 7 2.1.3.1 Flash Memori............................................................ 7 2.1.3.2 Memori SRAM............................................................ 8 2.1.3.3 Memori EEPROM..................................................... 9 2.1.4 Interrupt..................................................................... 11 2.1.5 Port I/O...................................................................... 11 2.2 Teori Bahasa.................................................................. 12 2.2.1 Teori Bahasa Formal.................................................. 13 2.2.2 Teori Automata.......................................................... 13 2.2.3 Klasifikasi Bahasa menurut Chomsky....................... 14 2.2.4 FSA............................................................................ 15 2.2.5 Deterministic FSA (DFSA)........................................ 16 2.2.6 Bahasa Indonesia....................................................... 16 2.2.7 Pemengalan Kata........................................................ 17 2.2.8 Persukuan................................................................... 18

xiv

2.3 Licuid Crystal Display (LCD)....................................... 2.4 Keypad (3X4)................................................................ 2.5 Komunikasi Serial......................................................... 2.5.1 Komunikasi Serial RS232............................................ 2.6 Port Serial DB9............................................................. 2.7 Bahasa C........................................................................ 2.7.1 Sejarah dan Standart C................................................. 2.7.2 Tipe Data...................................................................... 2.7.3 Statemen Bahasa C...................................................... 2.7.3.1 Statemen If................................................................ 2.7.3.1.1 Bentuk If Tunggal Sederhana................................ 2.7.3.1.2 Bentuk If-Else........................................................ 2.7.3.1.3 Bentuk If-Else-If-Else............................................ 2.7.3.1.4 Bentuk If Bersarang............................................... 2.7.3.2 Statemen Swich........................................................ 2.7.3.2.1 Statemen Switch Tunggal...................................... 2.7.3.2.2 Statemen Switch Bersarang................................... 2.7.3.3 Perulangan................................................................ 2.7.3.3.1 Statemen For......................................................... 2.7.3.3.2 Perulangan While.................................................. 2.7.3.3.3 Perulangan Do-While............................................ 2.7.3.3.4 Lompatan................................................................

23 23 25 25 27 28 28 29 30 30 30 30 30 31 31 31 32 32 32 32 32 32

BAB III PERENCANAAN DAN PEMBANGUNAN SISTEM...... 33 3.1 Konfigurasi..................................................................... 33 3.2 Perencanaan Perangkat Keras......................................... 31 3.2.1 Sistem Minimum ATMega 16(L)................................. 34 3.2.2 LCD............................................................................... 36 3.2.3 Keypad.......................................................................... 36 3.2.4 Downloader................................................................... 38 3.3 Perencanaan Perangkat Lunak........................................ 38 3.4

BAB IV PENGUJIAN DAN ANALISA.............................................47 4.1 Pengujian sistem minimum modul ..............................47 4.1.1 Modul ATMEGA 16L..................................................47 4.1.2 Modul LCD.................................................................. 47 4.1.3 Modul Keypad..............................................................47 4.1.4 Komunikasi serial........................................................ 48

xv

4.2

Pengujian sistem minimum modul secara keseluruhan................................................................. 48 4.2.1 Pengujian .....................................................................49 4.3 Pengujian integrasi sistem konverter teks ke fonem Dengan konverter fonem ke wicara.............................53 4.4 Pengujian kenyamanan penggunaan keypad...............54

BAB V PENUTUP............................................................................. 55 5.1 Kesimpulan...................................................................... 55 5.2 Saran................................................................................ 55 DAFTAR PUSTAKA.......................................................................... 57

xvi

DAFTAR GAMBAR Gambar 2.1 Blok Diagram ATMega 16(L)...................................... 5 Gambar 2.2 IC 16(L)........................................................................ 6 Gambar 2.3 Peta Memori Flash........................................................ 8 Gambar 2.4 Peta Memori SRAM........................................................ 8 Gambar 2.5 Bit 15-8......................................................................... 10 Gambar 2.6 Bit 7-0........................................................................... 10 Gambar 2.7 Skematik Pin I/O........................................................... 12 Gambar 2.8 Sistem Text To Speech................................................... 13 Gambar 2.9 Diagram Transisi FSA tingkatan pertama.................... 20 Gambar 2.10 Diagram Transisi FSA tingkatan kedua.................... 21 Gambar 2.11 Diagram Transisi FSA tingkatan ketiga.................... 22 Gambar 2.12 Rangkaian Keypad...................................................... 23 Gambar 2.13 Aliran aris saat keypad tidak ditekan............................ 24 Gambar 2.14 Konstruksi Keypad....................................................... 24 Gambar 2.15 Blok Diagram Sistem................................................... 26 Gambar 2.16 Level Tegangan RS232................................................ 27 Gambar 2.17 DB9 RS232.................................................................. 28 Gambar 3.1 Blok Diagram Sistem..................................................... 33 Gambar 3.2 Minimum Sistem ATMega 16(L).................................. 34 Gambar 3.3 LCD................................................................................ 36 Gambar 3.4 Ketpad............................................................................ 36 Gambar 3.5 Peta Keypad................................................................... 37 Gambar 3.6 ISP.................................................................................. 38 Gambar 3.7 Algo Keypad.................................................................. 39 Gambar 3.8 Algo LCD...................................................................... 40 Gambar 3.9 1st Grade........................................................................ 41 Gambar 3.10 2nd Grade..................................................................... 42 Gambar 3.11 3nd Grade..................................................................... 43 Gambar 3.12 tampilan output............................................................. 44 Gambar 3.13 normalisasi angka......................................................... 46

17

DAFTAR TABEL Tabel 2.1 Waktu pemograman EEPROM.......................................... 10 Tabel 2.2 Vektor Interrupt................................................................. 11 Tabel 2.3 Tipe-tipe Data Dasar…...................................................... 30 Tabel 3.1 Tabel Pembagian Port-port pada AVR ATMega 16(L)..... 35 Tabel 3.2 Pengujian pola vocal.......................................................... 49 Tabel 3.3 Pengujian pola vokal-konsonan......................................... 49 Tabel 3.4 Pengujian pola konsonan-vokal......................................... 49 Tabel 3.5 Pengujian pola konsonan-vokal-konsonan......................... 49 Tabel 3.6 Pengujian pola konsonan-konsonan-vokal......................... 50 Tabel 3.7 Pengujian pola konsonan-konsonan-vokal-konsonan........ 50 Tabel 3.8 Pengujian pola vokal-konsonan-konsonan......................... 50 Tabel 3.9 Pengujian pola konsonan-vokal-konsonan-konsonan........ 50 Tabel 3.10 Pengujian pola konsonan-konsonan-vokal-konsonankonsonan.......................................................................... 51 Tabel 3.11 Pengujian pola konsonan-konsonan-konsonan –vokal.... 51 Tabel 3.12 Pengujian pola konsonan-konsonan-konsonan -vokalkonsonan.......................................................................... 51 Tabel 3.13 Pengujian normalisasi angka............................................ 51 Tabel 3.14 Pengujian kata serapan/asing........................................... 52 Tabel 3.15 Pengujian kombinasi kata dan angka............................... 52 Tabel 3.16 Pengujian sistem integrasi antar konverter...................... 53 Tabel 3.17 Pengujian kenyamanan penggunaan keypad................... 54

18

BAB I PENDAHULUAN 1.1

LATAR BELAKANG Komunikasi adalah faktor yang penting demi terjalinnya kerjasama yang baik antara manusia yang satu dengan yang lain maupun dengan perangkat pembantu disekitarnya. Komunikasi dapat berjalan lancar apabila kedua belah pihak saling mengerti informasi yang diberikan maupun yang diterima, sehingga komunikasi aktif dua arah. Namun pada kenyataannya dalam berkomunikasi terdapat beberapa hambatan misalnya saja cacat (tuna netra,tuna wicara), lansia ataupun buta huruf. Untuk itu dalam proyek akhir ini kami ingin memberikan suatu solusi, sebagai langkah meminimalkan hambatan dalam berkomunikasi, yaitu suatu perangkat yang berfungsi untuk mengkonversikan teks kedalam suara. Istilah umumnya adalah Text to Speech Converter. Sistem konversi yang dibuat sebelumnya masih bersifat software semata yang masih tergantung dengan PC sebagai pemroses utama. Yang notabene PC kurang portable (segi ukuran), melihat adanya kekurangan inilah jugalah yang mendorong dilakukannya proyek akhir ini. Pada rangkaian text to speech konverter terdapat 2 bagian konverter utama yaitu konverter teks ke fonem dan konverter fonem ke suara namun, dalam buku ini hanya akan dijelaskan mengenai konverter teks ke fonem sebagai bagian dari Konverter text to speech.

1.2

TUJUAN Tujuan Proyek Akhir Pengembangan Konverter Teks ke Fonem Pada Mikrokontroler Untuk Alat Bantu Wicara meliputi : 1.2.1

Tujuan Umum Membantu dan mempermudah para tuna wicara dalam berkomunikasi dengan orang lain (bukan tuna wicara). 1.2.2

Tujuan Khusus Membantu mahasiswa dalam mengaplikasikan ilmu mikrokontroler dengan membuat alat pada proyek akhir yang dapat digunakan untuk membantu kegiatan di dunia komunikasi dan informasi.

19

1.3 1.3.1

PERUMUSAN MASALAH Batasan Masalah • • • •

Dalam pengkonversian, jumlah teks atau fonem yang dapat di inputkan terbatas oleh kapasitas memori. Hanya suku kata yang terstruktur saja yang dapat di konversi. Sistem algoritma ini tidak menampilkan pilihan untuk mengubah pitch (frekuensi dasar) dan prosody (intonasi). Bentuk normalisasi yang dapat dilakukan adalah normalisasi penulisan angka, namun hanya terbatas hingga 4 digit saja (ribuan) .

1.3.2

Uraian Masalah Permasalahan yang timbul adalah sebagai berikut : 1. Pola ejaan yaitu, pola diftong (gabungan dua buah huruf vokal yang menghasilkan bunyi rangkap) yang sulit dikenali, kata serapan yg tidak mengikuti pola EYD, pemenggalan suku kata pada bahasa lisan tidak selalu sama dengan bahasa tulisan. 2. Bentuk normalisasi angka menjadi suku kata, baik dalam bentuk satuan, puluhan, ratusan, dsb. 3. Tampilan display LCD harus dapat memudahkan pemakai (user friendly) dalam melihat teks yang telah diinputkan. 4. Fungsi keypad memiliki format yang sama dengan keypad pada handphone, yaitu 1 tombol dapat merepresentasikan lebih dari 1 karakter. 5. Penggunaan algoritma yang seefisien mungkin, mengingat memori yang digunakan sangat terbatas. 6. Bentuk hardware dari konverter harus bersifat user friendly, efisien, dan efektif. Sehingga bersifat portable, dan tidak mengganggu atau menghambat aktivitas lainnya. 7. Penentuan protokol antar mikrokontroler pada komunikasi serial.

1.4

METODOLOGI 1. Studi literatur tentang permasalahan yang dihadapiu melalui perpustakaan maupun melalui sumber-sumber yang terkait.

20

2. 3. 4. 5. 6. 7.

Perencanaan dan pembuatan perangkat keras berdasar teori penunjang. Pengujian perangkat keras. Pembuatan program berdasar referensi dan teori penunjang. Downloading program pada hardware. Pengujian hardware dan program (konverter teks ke fonem) secara keseluruhan, serta analisis data. Pengujian sistem konverter teks ke fonem dengan konverter fonem ke suara secara keseluruhan melalui komunikasi serial.

1.5

SISTEMATIKA PEMBAHASAN Sistem pembahasan proyek akhir ini disusun dengan kerangka pembahasan sebagai berikut : 1.

Bab I :

PENDAHULUAN Berisi mengenai latar belakang, tujuan, batasan masalah, dan sistematika pembahasan.

2.

Bab II :

TEORI PENUNJANG Berisi mengenai teori-teori yang berkaitan dengan proses proyek akhir.

3.

Bab III :

PERENCANAAN DAN PEMBUATAN ALAT SERTA PROGRAM Berisi mengenai perancangan dan pembuatan hardware, program, dan komunikasi data.

4.

Bab IV :

PENGUJIAN DAN ANALISA Pada bab ini akan dilakukan pengujian sekaligus analisa proses kerja dari sistem hardware dan software secara keseluruhan untuk mengetahui apakah sistem telah bekerja sesuai dengan yang kita inginkan.

5.

Bab V :

PENUTUP Berisi kesimpulan dari keseluruhan pengerjaan proyek akhir dan saran-saran untuk memperbaiki kelemahan sistem pengontrolan dengan menggunakn software pada mikrokontroler yang telah dibuat demi pengembangan dan penyempurnaan di waktu mendatang.

21

22

BAB II TEORI PENUNJANG Pada bab ini akan dijelaskan mengenai teori-teori yang digunakan dalam “Pengembangan Konverter Teks ke Fonem Pada Mikrokontroler Untuk Alat Bantu Wicara”, teori-teori yang digunakan meliputi Mikrokontroler (AVR16L), Komunikasi Serial, Bahasa C(Code Vision AVR), Ejaan Bahasa Indonesia (EYD), LCD, Keypad . 2.1 2.1.1

MIKROKONTROLER ATmega16(L) Gambaran Umum ATmega16(L) Mikrokontroler atau mikroprosesor adalah suatu piranti yang digunakan untuk mengolah data-data biner (digital) yang didalamnya merupakan gabungan dari rangkaian-rangkaian elektronik yng dikemas dalam bentuk suatu chip (IC). Pada umumnya mikrokontroler tediri dari bagian-bagian sebagai berikut: Alamat (address), Data, Pengendali, Memori (RAM atu ROM), dan bagian input-Output. Arsitektural ATmega16(L) adalah sebagai berikut:

gambar 2.1 Blok Diagram ATmega16(L)

23

2.1.2 o

o o

Konfigurasi pin-pin ATmega16(L) VCC Sebagai tegangan penyuplai. Ground Sebagai ground. Port A (PA7 PA0) Port A sebagai input analog ke A/D konverter. Port A juga sebagai 8-bit bi-directional port I/O, jika A/D konverter tidak digunakan. Pin-pin port dapat menyediakan resistor-resistor internal pull-up. Ketika port PA0…PA7 digunakan sebagai

24

Gambar 2.2 IC ATmega16(L)

o

o

dan pull eksternal yang rendah akan menjadi sumber arus jika resistor-resistor pull-up diaktifkan. Pin-pin port A adalah tristate ketika kondisi reset menjadi aktif sekalipun clock tidak aktif. Port B (PB7 PB0) Port B adalah port I/O 8-bit bi-directional dengan resistorresistor internal pull-up. Buffer output port B mempunyai karaketristik drive yang simetris dengan kemampuan keduanya sink dan source yang tinggi. Sebagai input, port B yang mempunyai pull eksternal yang rendah akan menjadi sumber arus jika resistor-resistor pull-up diaktifkan. Pin-pin port B adalah tri-state ketika kondisi reset menjadi aktif seklipun clock tidak aktif. Port C (PC7 PC0) Port C adalah port I/O 8-bit bi-directional dengan resistorresistor internal pull-up. Buffer output port C mempunyai karaketristik drive yang simetris dengan kemampuan keduanya sink dan source yang tinggi. Sebagai input, port C yang mempunyai pull eksternal yang rendah akan menjadi sumber arus jika resistor-resistor pull-up diaktifkan. Pin-pin port C adalah tri-state ketika kondisi reset menjadi aktif seklipun clock tidak aktif. Jika antarmuka JTAG enable, resistor-resistor pull-

25

o

o

o o o

up pada pin-pin PC5(TDI), PC3(TMS), PC2(TCK) akan diktifkan sekalipun terjadi reset. Port D (PD7 PD0) Port D adalah port I/O 8-bit bi-directional dengan resistorresistor internal pull-up. Buffer output port D mempunyai karaketristik drive yang simetris dengan kemampuan keduanya sink dan source yang tinggi. Sebagai input, port D yang mempunyai pull eksternal yang rendah akan menjadi sumber arus jika resistor-resistor pull-up diaktifkan. Pin-pin port D adalah tri-state ketika kondisi reset menjadi aktif seklipun clock tidak aktif. Reset Input Reset, pulsa akan menjadi minimum sekalipun clock bekerja. XTAL1 Input ke Inverting Oscillator Amplifier. XTAL2 Output dari Inverting Oscillator Amplifier. AREF AREF adalah referensi analog ke A/D converter.

2.1.3 Program Memori 2.1.3.1 Flash Memori ATmega16(L) memiliki 16K byte flash memori dengan lebar 16 atau 32 bit. Kapasitas memori itu sendiri terbagi manjadi dua bagian yaitu bagian boot program dan bagian aplikasi program.

26

Gambar 2.3 Peta Memori Flash Flash memori memiliki kemampuan mencapai 10.000 write dan erase 2.1.3.2 Memori SRAM Penempatan memori data yang lebih rendah dari 1120 menunjukkan register, I/O memori, dan data internal SRAM. 96 alamat memori pertama untuk file register dan memori I/O, dan 1024 alamat memori berikutnya untuk data internal SRAM. Lima mode pengalamatan yang berbeda pada data memori yaitu direct, indirect, indirect dis-placement, indirect pre-decreament dan indirect post-increament .Pada file register, mode indirect mulai dari register R26-R31. Pengalamatan mode direct mencapai keseuruhan kapasitas data. Pengalmatan mode indirect dis-placement mencapai 63 alamat memori dari register X atau Y. Ketika meggunakan mode pengalamatan indirect dengan pre-decrement dan post increment register X, Y, dan Z akan di-dicrement-kan atau di-increment-kan. Pada ATmega16(L) memiliki 32 register, 64 register I/O dan 1024 data internal SRAM yang dapat mengakses semua mode-mode pengalamatan.

27

Gambar 2.4 Peta Memori SRAM 2.1.3.3 Memori EEPROM Pada EEPROM ATmega16(L) memiliki memori sebesar 512 byte dengan daya tahan 100.000 siklus write/read. Register-register pada memori EEPROM : o Bit 15 9 Bit ini sebagai bit-bit bank pada Atmega16(L) dan akan selalu membaca

28

zero.

o o

o o o o

gambar 2.5 Bit 15 8 Bit 8 0 Bit-bit ini sebagai alamat EEPROM. Bit 7 4 Bit-bit ini sebagai data EEPROM.

gambar 2.6 Bit 7 0 Bit 3 Bit ini sebagai Enable Interupt Ready pada EEPROM. Bit 2 Bit ini sebagai Enable Interupt Master pada EEPROM. Bit 1 Bit ini sebagai write enable pada EEPROM. Bit 0 Bit ini sebagai read enable pada EEPROM.

Tabel 2.1 Waktu pemrograman EEPROM

29

2.1.4

Interupt

Tabel 2.2 Vektor Interupt Port I/O Semua port-port AVR mempunyai Read-Modify-Write fungsional sebagai port-port I/O digital. Ini berarti bahwa arah dari pin port dapat diubah secara tidak disengaja dengan menggunakan instruksi SBI dan CBI. Aplikasi yang sama dengn pengubahan nilai drive atau enable/disable pada resistor-resistor pull-up. Masing-msing output penyangga memiliki karakateristik simetris drive yang sama keduanya memiliki kemampuan sink dan source yang tinggi. Driver pin cukup kuat sebagai pengarah tampilan led secara langsung. Semua pin-pin port memiliki resistor-resistor pull-up yang dapat dipilih dengan sebuah tegangan supply tahanan invariant. Semua pin-pin I/O memiliki pelindung diode keduanya Vcc dan Ground seperti pada gambar 2.7. 2.1.5

30

Gambar 2.7 Skematik Pin I/O 2.2

TEORI BAHASA Bagian Konverter Teks ke Fonem berfungsi untuk mengubah kalimat masukan dalam suatu bahasa tertentu yang berbentuk teks menjadi rangkaian kode-kode bunyi yang biasanya direpresentasikan dengan kode fonem. Bagian ini bersifat sangat language dependant. Untuk suatu bahasa baru, bagian ini harus dikembangkan secara lengkap khusus untuk bahasa tersebut. Konversi dari teks ke fonem sangat dipengaruhi oleh aturan-aturan yang berlaku dalam suatu bahasa. Pada prinsipnya proses ini melakukan konversi dari simbol-simbol tekstual menjadi simbol-simbol fonetik yang merepresentasikan unit bunyi terkecil dalam suatu bahasa. Setiap bahasa memiliki aturan cara pembacaan dan cara pengucapan teks yang sangat spesifik. Hal ini menyebabkan implementasi unit konverter teks ke fonem menjadi sangat spesifik terhadap suatu bahasa.

31

Gbr.2.8 sistem text to speech

2.2.1

TEORI BAHASA FORMAL Bahasa dalam bentuk tulisan sebenarnya terdiri atas simbolsimbol satuan yang jika dikombinasikan akan mempunyai arti yang berbeda-beda. Simbol-simbol yang bisa dipergunakan dalam sebuah bahasa tentunya terbatas jumlahnya, yang membentuk sebuah himpunan dan disebut sebagai abjad (alphabet). Kadangkala digunakan istilah karakter yang maknanya sama dengan simbol. Deretan karakter membentuk string. Bahasa (language) didefinisikan sebagai himpunan semua string yang dapat dibentuk dari suatu abjad. Kaidah/aturan pembentukan kata/kalimat disebut tata bahasa (grammar). 2.2.2

TEORI AUTOMATA Berasal dari bahasa Yunani automatos, yang berarti sesuatu yang bekerja secara otomatis (mesin). Dalam tulisan ini akan dipergunakan istilah automaton sebagai bentuk tunggal dan automata sebagai bentuk jamak. Teori Automata adalah teori tentang mesin abstrak yang : • bekerja sekuensial • menerima input • mengeluarkan output Pengertian mesin di tulisan ini, bukan hanya mesin elektronis/mekanis saja melainkan segala sesuatu (termasuk perangkat lunak) yang memenuhi ketiga ciri di atas. Penggunaan automata pada perangkat lunak terutama pada pembuatan kompiler bahasa pemrograman. Setelah kita mengetahui definisi bahasa dan

32

automata, pertanyaan selanjutnya adalah apakah hubungan antara teori automata dan bahasa formal ? Secara garis besar ada dua fungsi automata dalam hubungannya dengan bahasa, yaitu : • fungsi automata sebagai pengenal (RECOGNIZER) string-string dari suatu bahasa, dalam hal ini bahasa sebagai masukan dari automata. • fungsi automata sebagai pembangkit(GENERATOR) string-string dari suatu bahasa, dalam hal ini bahasa sebagai keluaran dari automata. Dalam tulisan ini, pembahasan akan ditekankan pada fungsi pertama dari automata. Untuk mengenali string-string dari suatu bahasa, akan dimodelkan sebuah automaton yang memiliki komponen sebagai berikut : • pita masukan, yang menyimpan string masukan yang akan dikenali; • kepala pita (tape head), untukmembaca/menulis ke pita masukan; • Finite State Controller (FSC), yang berisi status-status dan aturanaturan yang mengatur langkah yang dilakukan oleh automaton berdasarkan status setiap saat dan simbol masukan yang sedang dibaca oleh kepala pita; • pengingat (memory), untuk tempat penyimpanan dan pemrosesan sementara Automaton pengenal, setelah membaca string masukan dan melakukan langkahlangkah pemrosesan yang diperlukan, akan mengeluarkan keputusan apakah string tersebut dikenali atau tidak. Konfigurasi adalah suatu mekanisme untuk menggambarkan keadaan suatu mesin pengenal , yang terdiri atas : § status FSC § isi pita masukan dan posisi kepala pita § isi pengingat Mesin pengenal bersifat deterministik bila dalam setiap konfigurasi, hanya ada satu kemungkinan yang dapat dilakukan mesin, jika tidak mesin pengenal bersifat non deterministik. 2.2.3 KLASIFIKASI BAHASA MENURUT CHOMSKY Untuk menyelesaikan suatu masalah, mula mula harus dikenali dulu dengan baik masalah yang sebenarnya dihadapi. Salah satu caranya adalah dengan mengklasifikasikan masalah tersebut. Dengan demikian dapat dikenali ciri-ciri masalah tersebut, dan dapat lebih difokuskan penyelesaian masalah tersebut pada ciri-ciri yang berhasil dikenali. Pada masalah bahasa, klasifikasi tersebut sudah pernah dilakukan. Chomsky membagi bahasa menjadi 4 kelas berdasarkan tata bahasanya. Keempat kelas tersebut adalah :

33

1. Regular Grammar/Regular Language (RG/RL) Mesin Pengenal : Finite State Automata (FSA) Dapat dibagi menjadi dua subkelas : a) left linear grammar/left linear language (LLG/LLL), jika P berbentuk A Bx|x b) right linear grammar/right linear language (RLG/RLL), jika P berbentuk A xB|x, di mana A,B N dan x T* 2. Context Free Grammar/Context Free Language (CFG/CFL) Mesin Pengenal : Push Down Automata (PDA) Ciri-ciri : bentuk produksi P A , di mana A N dan (T N) * 3. Context Sensitive Grammar/Context Sensitive (CSG/CSL) Mesin Pengenal : Linear Bounded Automata (LBA) Ciri-ciri : bentuk produksi P , (T N) +, | | | |

Language

4. Unrestricted Grammar/Unrestricted Language (UG/UL) Mesin Pengenal : Turing Machine ™ Ciri-ciri : bentuk produksi P , (T N) + Pada tulisan ini hanya akan menerapkan Bahasa Reguler (kelas bahasa yang pertama), yang merupakan kelas bahasa yang paling sederhana, beserta mesin pengenalnya (FSA). Dengan menggunakan FSA sudah cukup mampu mengenali suku-suku kata Bahasa Indonesia. 2.2.4 FSA Setiap jenis automata mempunyai keunikan yang membuatnya berbeda fungsinya dengan automata yang lain. Berikut ini akan dibahas sifat-sifat FSA : • pita masukan hanya bisa dibaca, berisi string yang berasal dari suatu abjad, • setelah membaca satu simbol pada pita, kepala pita akan maju ke posisi simbol berikutnya, • kepala pita tidak bisa mundur, • mempunyai sejumlah berhingga status, setiap saat FSA berada pada status tertentu. Setiap FSA bisa diasosiasikan dengan sebuah diagram transisi, yaitu suatu geraf berarah sebagai berikut : • setiap simpulnya mewakili setiap status pada FSA • jika ada transisi dari status p ke status q pada input a, maka ada busur dari p ke q berlabel .a

34



status awal ditandai dengan kata START, status akhir ditandai dengan 2 lingkaran. Jadi fungsi dari diagram transisi adalah untuk menggambarkan cara kerja suatu FSA. 2. 2. 5. DETERMINISTIC FSA (DFSA) Sudah disebutkan bahwa sebuah automaton bisa bekerja secara deterministik ataupun non deterministik. Setiap bahasa reguler bisa dikenali oleh DFSA. Secara formal suatu DFSA dinyatakan dengan (Q ,q0,F) di mana : Q = himpunan berhingga status = himpunan berhingga simbol masukan (alfabet) = fungsi transisi yang memetakan Q X ke Q q0 = status awal, q0 Q F = himpunan status akhir, F Q Cara kerja : • mula-mula DFSA akan berada pada status q0, kepala pita pada simbol pertama pada pita, • selanjutnya kepala pita akan membaca simbol-simbol dari pita dan bergeser maju, • untuk setiap simbol, DFSA akan berpindah status sesuai dengan fungsi , • proses akan berakhir bila simbol masukan pada pita sudah habis, • bila pada akhir proses dicapai status akhir maka string masukan diterima (dikenali sebagai string dari bahasa regular), dan bila tidak maka string masukan ditolak (tidak dikenali). 2. 2. 6. BAHASA INDONESIA Dalam Bahasa Indonesia, Huruf dibagi menjadi empat kelompok, yakni : 1. Huruf Vokal atau Huruf Hidup Huruf Vokal adalah bunyi ujaran akibat adanya udara yang keluar dari paru-paru tidak terkena hambatan atau halangan. Jumlah huruf vokal ada 5, yaitu a, i, u, e, dan o. 2. Huruf Konsonan atau Huruf Mati

35

Huruf Konsonan adalah bunyi ujaran akibat adanya udara yang keluar dari paru-paru mendapatkan hambatan atau halangan. Jumlah huruf konsonan ada 21 buah, yaitu b, c, d, f, g, h, j, k, l, m, n, p, q, r, s, t, v, w, x, y, dan z. 3. Huruf Diftong atau Huruf vokal Rangkap Huruf diftong adalah gabungan dua buah huruf vokal yang menghasilkan bunyi rangkap. Dalam Bahasa Indonesia huruf diftong berbentuk ai, au, dan oi. Contoh : Bangau, Pakai, Sengau, Perangai, dsb. . 4. Huruf Konsonan Rangkap Gabungan dua huruf konsonan ada 4 buah dalam bahasa indonesia, yaitu : kh, ng, ny, dan sy. Contohnya : nyamuk, syarat, kumbang, khawatir, dsb. 2.2.7 Pemenggalan Kata Dalam penulisan kita selalu dibatasi oleh bidang yang disyaratkan, oleh karena itu kata kadang-kadang tidak dapat ditulis secara utuh. Kata-kata yang demikian harus dipenggal menurut suku katanya. Berikut beberapa cara pemenggalan kata1 : 1. Kata dasar a. Jika di tengah kata ada vokal berurutan, pemenggalan dilakukan di antara kedua vokal itu (-V/V-). Misalnya :ma-af, ba-ik, duet. Apabila vokal berurutan tersebut berupa diftong, maka pemenggalan tidak dilakukan di antara vokal tersebut (-VV/--). Misalnya : sau-da-ra bukan sa-u-da-ra, pan-tai bukan pan-ta-i. b. Jika di tengah kata ada huruf konsonan dan gabungan konsonan di antara dua buah huruf vokal maka pemenggalan dilakukan sebelum konsonan (KV - KV). Misalnya:pe-rut, to-bu, to-nya, su-nyi. c. Jika di tengah kata ada konsonan yang berurutan, pemenggalan dilakukan di antara dua konsonan tersebut (-K/KV-). Misalnya : mak-lum, ger-tak, mik-ro, mig-ra-si. Kecuali ng, kh, sy, dan ny yang berupa satu bunyi dianggap sebagai satu suku kata, misal : dengan, makh-luk, i-sya-rat, bu-nyi.

1 Nizwar Syafa’at1, ”PANDUAN PEMBUATAN RENCANA STRATEGIS BALAI PENGKAJIAN TEKNOLOGI PERTANIAN”, 2005-2009.hal 77-78

36

d. Jika konsonan berurutan lebih dari dua buah, pemenggalan dilakukan sesudah konsonan pertama (-K/KK-). Misalnya : in-struk-si, kon-kret, kon-kre-si. 2. Semua imbuhan dan partikel dianggap satu suku kata, termasuk pada imbuhan awalan yang mengalami perubahan bentuk, sehingga imbuhan dapat dipenggal dari kata dasarnya. Misalnya : meramu, me-nyapu, men-coba, pem-belah-an.

Catatan: a. Akhiran -i dan kata yang diawali vokal sebaiknya tidak dipenggal. Contoh yang salah misalnya : mengakhir-i, a-nak, i-kan. b. Kata yang berimbuhan sisipan pemenggalannya dilakukan sebagai berikut : te-lun-juk, ge-ri-gi, ge-me-tar. c. Imbuhan yang berasal dari bahasa asing tidak dianggap sebagai imbuhan melainkan sebagai suku kata itu sendiri sehingga pemenggalannya mengikuti aturan pemenggalan kata dasar. Misalnya : spor-ti-vi-tas, bukan sportiv-itas, ak-li-ma-ti-sa-si bukan ak-li-mat-isasi atau peng-ak-li-mat-an. 3. Jika suatu kata terdiri atas lebih dari satu unsur dan salah satu unsur itu dapat digabung dengan unsur lain, pemenggalan dilakukan a. di antara unsur-unsur itu, atau b. pada unsur gabungan itu sesuai kaidah-kaidah di atas. Misal : bio-logi, bi-o-lo-gi, mikro-biologi, mik-ro-bi-o- to-gi, pasca-sarjana, pas-ca-sar ja-na, budi daya, bu-di da-ya. 2.2.8 Persukuan Menurut Kamus Besar Bahasa Indonesia suku kata adalah struktur yang terjadi dari satu atau urutan fonem yang merupakan bagian kata. Setiap suku kata ditandai dengan sebuah vokal (termasuk diftong). Bahasa Indonesia mengenal beberapa pola umum suku kata, ialah2 : •

V misalnya pada kata : a nak, a – dik, i – sap, dan sebagainya.

2

Totok Sulistiyanto, Tri Broto Harsono, ST, Suyanto, ST Teknik Informatika, STT Telkom, ”TEXT TO SPEECH PROGRAM UNTUK KATA DAN KALIMAT BAHASA INDONESIA”

37

• • • • • • • • • •

VK misalnya pada kata : an – da, un – ta, as – ma, dan sebagainya. KV misalnya pada kata : da – ri, ha – aru, li – ma, dan sebagainya. KVK misalnya pada kata : ma – kan, pin – tu, o – tak, dan sebagainya. KKV misalnya pada kata : in – fra, pra – ja, sas – tra, dan sebagainya. KKVK misalnya pada kata : blok, prak – tek, trak – tor, dan sebagainya. VKK misalnya pada kata : eks, ons, dan sebagainya. KVKK misalnya pada kata : kam –pung, kon – teks, dan sebagainya. KKVKK misalnya pada kata : kom –pleks, dan sebagainya. KKKV misalnya pada kata : stra – tegi, in - stru – men, dan sebagainya. KKKVK misalnya pada kata :struk – tur, in – struk –si

FSA yang akan digunakan dirancang dalam tiga tingkatan. Pada tingkatan pertama yang akan dikenali adalah pola-pola :V,K atau KV. Hasil pengenalan FSA pada suatu tingkatan menjadi masukan bagi FSA tingkatan berikutnya. Pada tingkatan kedua FSA akan mengenali suku kata dengan pola V, VK, VKK, KV, KVK, KKV, KKVK, KKKV, KKKVK. Dari kelakuan FSA tingkatan kedua, tampak bahwa pola suku kata VKK, KVKK dan KKVKK belum bisa dikenali. Untuk itu diperlukan FSA tingkatan ketiga yang mampu mengenalinya. Jika FSA ini menemukan pola VK-K, KVK-K dan KKVK-K, dia akan mengenalinya sebagai pola suku kata VKK, KVKK dan KKVKK. Selain itu FSA pada tingkatan 3 dapat mengenali diftong. Dalam Bahasa Indonesia dikenal 3 macam diftong yaitu : ‘au’,’ai’ da ‘oi’. Namun kemunculan dua vokal tersebut secara berturutan belum tentu berupa diftong. Kata-kata seperti ‘kacau’,’pantai’,’sepoi’ adalah contoh kata yang mengandung diftong. Sedang kata ’kaidah, ’yaitu’, dan ’bau’ yang tidak mengandung diftong. Karena ketidak konsistenan ini maka tidak mungkin mengenali diftong secara sempurna tanpa melakukan analisis semantik. Analisis semantik tidak dapat dimodelkan dengan FSA. Bentuk Diagram FSA untuk mengenali bahasa reguler :

38

Gbr.2.9 Diagram Transisi FSA tingkatan pertama

39

Gbr.2.10 Diagram Transisi FSA tingkatan kedua

40

Gbr.2.11 Diagram Transisi FSA tingkatan ketiga Diagram diatas dalam realitanya masih diperlukan beberapa penambahan dan pengurangan agar dapat mendekati pola suku kata yang sesuai(EYD), meskipun bahasa tulisan terus mengalami perkembangan. Dengan mulai bermunculannya kata serapan yang sangat berbeda dengan pola EYD yang terdahulu.

41

2.3

Licuid Crystal Display (LCD) LCD yang digunakan merupakan LCD tipe karakter karena LCD ini dapat menampilkan data. Keuntungan yang dapat diperoleh dengan menggunakan LCD adalah : 1. Dapat menampilkan karakter ASCII, sehingga memudahkan untuk membuat program tampilannya. 2. Mudah dihubungkan dengan port I/O karena hanya menggunakan 8 bit data dan 3 bit control. 3. Ukuran dari modul yang proporsional. 4. Penggunaan daya yang kecil. LCD yang digunakan dalam tugas akhir ini merupakan tipe karakter 16x2 baris, dan dapat menampilkan 16 karakter perbaris dan mempunyai 2 baris. ROM pembangkit karakter sebanyak 192 tipe karakter dengan font 5x7 dot matris. Kapasitas internalnya sebanyak 80x8 bit data (maksimum 80 karakter). Instruksi-instruksi yang berguna yang dimiliki oleh LCD ini terdiri atas : Display Clear, Cursor Home, Display ON/OFF, Cursor ON/OFF, Display Character Blink, Cursor Shift dan Display Shift. Sedangkan pengoperasian LCD ini mempunyai temperatur dengan range antara 0oC sampai dengan 50 oC. 2.4

KEYPAD(3X4) Keypad yang digunakan sebagai inputan data berukuran 3x4 atau 3 kolom 4 baris. Setiap tombolnya memiliki adalah semacam saklar yang akan short bila ditekan(bernilai ‘0’).

PORT OUTPUT

PORT INPUT

1

2

3

4

5

6

7

8

9

*

0

#

Gbr.2.12 Rangkaian keypad

42

Baris

Kolom

Gbr.2.13 Aliran aris saat keypad tidak ditekan.

common Gbr.2.14 Konstruksi keypad Pada proyek akhir ini tombol keypad memiliki fungsi yang sama dengan keypad pada handphone. Yaitu 1 tombol dapat merepresentasikan lebih dari 1 nilai atau karakter.

43

2.5 KOMUNIKASI SERIAL 2.5.1 Komunikasi Serial RS232 Nama resmi dari standart interface ini adalah interface between data terminal equipment and data communication employing serial binary data interchange, yaitu suatu terminal yang menghubungkan antara terminal data dari suatu peralatan dan peralatan komunikasi data yang yang menjalankan pertukaran data biner secara serial, oleh industri komunikasi data disebut RS-232. Sejak dipublikasikan pertama kali pada tahun 1962 , interface ini telah mengalami beberapa revisi dan sekarng yang banyak dipergunakan adalah RS-232 revisi kelima yang dipergunakan pada tahun 1991 dan disebut RS-232E atau EIA-232-E. Awalan “RS” pada RS-232 merupakan singkatan dari recommended standart yang berarti standart yang dianjurkan, yang berarti standart yang dianjurkan, karena selama ini dalam publikasi EIA tidak pernah memiliki ketetapan hukum yang mengharuskan untuk digunakan dalam dunia komunikasi data. Ada beberapa standart sederhana yang dikembangkan sendiri oleh pembuat peralatan elektronik yang mungkin dapat diikuti, agar secara umum ada kecocokan. Standart lain yang menyangkut referensi aspek fungsi dan prosedur interface secara mekanikal dan elektrikal yang dipublikasikan oleh ITU-T pada tahun 1993 adalah standart V.25 dan V.28, sehingga RS-232E sebenarnya menyakup empat aspek, yaitu : ü Mechanical : ISO21110 ü Electrical : V.28 ü Functional : V.24 ü Prosedural : V.24 Terdapat beberapa macam cara untuk menerapkan interface data biner pada komunikasi secara serial, salah satunya adalah RS-232 yang merupakan salah satu dari standart yang dipilih dan sekarang telah dipakai secara luas dan dalam komunikasi data umumnya digunakan untuk menghubungkan DTE (Data Terminal Equipment) ke DCE (Data Communication Equipment) yang berupa peralatan sistem komunikasi analog

44

.

a MIKROKONTROLER ATMega 16L

data

MIKROKONTROLER

acknowledge Gambar 2.15 Blok Diagram Sistem Pada proyek akhir ini RS 232 akan digunakan untuk komunikasi antar mikrokontroler.Yaitu mikrokontroler didalam converter teks ke fonem dengan mikrokontroler yang ada pada converter fonem ke suara. Acknowledge yaitu penerima (receiver) menerima data dengan benar dan memberi informasi/mengirim data yang terkirim ke pengirim (trasmitter). RS232 merupakan salah satu standart interface dalam proses transfer data ntar kmputer terutama dalam bentuk serial transfer. RS232 merupakan kependekan dari Recommended Standart number 232. Standart ini disebut oleh Elektronic Industri Association (EIA), untuk interface antara peralatan terminal data dan komunikasi data, dengan munggunakan data biner sebagai data yang ditransmisi. RS232 adalah suatu data Serial Data Interface Standart yang dikeluarkan oleh EIA. Standarisasi meliputi konektor, fungsi serta posisi tiap per timming (pewaktu) dan level tegangan/arus. Standart ini juga berisikan karakteristik sinyal listrik, karakteristik mekanik dan cara operasional rangkaian fungsioanal . Beberapa karakteristik rangkaian fungsionalnya adalah sebagai berikut : 1. Tegangan terbuka maksimum 25 volt. 2. Keadaan logika `1` ditandai dengan tegangan antara -5 volt sampai dengan -15 volt. 3. Keadaan logika `0` ditandai dengan tegangan antara +5 volt sampai dengan +15 volt. 4. Hambatan keluran DC harus dikurangi dari 700 ohm jika diberi tegangan 3 volt dan 15 volt, dan harus lebih besar 3000 ohm jika tegangan kurang dari 25 volt.

45

5.

Slew rate harus lebih kecil dari 30 volt/detik. Waktu yang dipergunkan untuk melewati daerah peralihan -3 volt sampai dengan +3 volt tidak boleh melebihi 1mdetik.

+15V

+15V ‘0’

‘0’

+5V

+3V Noise Margin 2 V

-3V -5V ‘1’

‘1’

-15V

-15V

Saluran RS232 Line Driver Line Receiver Gambar 2.16 Level Tegangan RS232 Beda tegangan 2 volt disebut sebagai noise margin dari RS232 2.6

PORT SERIAL DB9 Salah satu pelengkap penunjang proses komunikasi data serial pada tereminal komputer pada dunia luar adalah port serial. Seperti halnya port paralel yang digunakan untuk keperluan interfacing, maka port serial juga merupakan gerbang I/O dari sebuah computer. Hanya saja didalam port serial akan dilakukan perubahan bentuk data paralel menjadi data serial pada jalur keluaran dan sebaliknya data serial menjadi data parelel pada jalur masukkan. Jadi pada komunikasi serial hanya ada satu bit informasi yang ditransmisikan melalui port serial pada suatu saat. Dengan demikian secara otomatis hanya ada satu kabel yang diperlukan dalam satu proses transmisi data ini. Dikatakan pula bahwa komunikasi data secara serial

46

memiliki kesederhanaan dalam hal pengkabelannya. Hal tersebut dapat terwujud tidak lain karena adanya port serial yang merupakan piranti dari sebuah komputer yang sanggup mengubah bentuk data paralel menjadi data serial dan sebaliknya dari data serial menjadi data peralel. Pemasangan pin-pin pad DB9 tidak sama dimana pemasangan pada kabel PC menggunakan pin 2,3 dan 5 dimana pin 2 sebagai RX dan pin 3 sebagai TX, sedangkan pada sistem minimumnya pin yang digunakan juga pin 2,3 dan 5 tetapi pin 2 sebagai TX dan pin 3 sebagai RX ini dilakukan agar data bisa terkirim bentuk dari DB9 ini bias dilihat pada gambar dibawah ini ;

Gambar 2.17 DB9 RS232 2.7 2.7.1

BAHASA C Sejarah dan Standar C Akar dari bahasa C adalah dari bahasa BCPL yang dikembangkan oleh Mrtin Richards pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thomson yang kemudian mengembangkan bahasa yang disebut dengan B pada tahun 1970. Perkembangan selanjutnya dari bahasa B adalah Bahasa C oleh Dennis Ricthie sekitar tahun 1970-an di Bell Telephone Laboratories Inc. (sekarang adalah AT dan T Bell Laboratories). Bahasa C pertama kali digunakan di komputer Digital Equipment Corporation PDP-11 yang menggunakan sistem opersi UNIX

47

C adalah bahasa yang standar, artinya suatu program yang ditulis dengan bahasa C tertentu akan dapat dikonversi dengan bahasa C yang lain dengan sedikit modifikasi. Standar bahasa C yang asli adalah standar dari UNIX. Patokan dari standar UNIX ini diambil dari buku yang ditulis oleh Brian Kerningan dan Dennis Ritchie berjudul “The C Programming Language”, diterbitkan oleh Prentice-Hall tahun 1978. Deskripsi C dari Kerninghan dan Ritchie ini kemudian kemudian dikenal secara umum sebagai “K dan R C”. 2.7.2

Tipe Data Didalam bahasa pemrograman computer, data yang digunakan umumnya dibedakan menjadi data nilai numerik dan nilai karakter. Nilai numerik dapat dibedakan lagi menjadi nilai numerik integer dan nilai numerik pecahan. Nilai numeric pecahan dapat dibedakan lagi menjadi nilai numerik pecahan ketetapan tungga dan nilai numerik pecahan ketetapan ganda. Bahasa-bahasa pemrograman computer membedakan data ke dalam beberapa tipe dengan tujuan supaya data menjadi efisien dan efektif. C menyediakan lima macam tipe data dasar, yaitu tipe data integer (nilai numerik bulat yang dideklarasikan dengan int), floatingpoint (nilai numerik pecahan ketetapan tunggal yang dideklarasikan dengan float), double-precision (nilai numerik pecahan ketetapan ganda yang dideklarasikan dengan double), karakter (dideklarasikan dengan char), dan kosong (dideklarasikan dengan void). Int,float, double dan char dapat dikombinasikan dengan pengubah (modifier) signed, unsigned, long dan short. Hasil dari kombinasi tipe data ini dapat dilihat pada tabel.

48

Tabel 2.3 Tipe-tipe Data Dasar 2.7.3 Statemen Bahasa C 2.7.3.1 Statemen if 2.7.3.1.1 Bentuk if Tunggal Sederhana Sintak dari bentuk if tunggal sederhana adalah sebagai berikut: if(kondisi) statement; 2.7.3.1.2 Bentuk if –else Sintak dari bentuk statemen if –else adalah sebagai berikut: if(kondisi) statemen; Else statemen; 2.7.3.1.3 Bentuk if –else-if…else Bentuk ini disebut dengan if-else-if tangga,karena memiliki bentuk seperti tangga. Sintakdari bentuk ini adalah sebgai berikut: if(kondisi1) statemen;

49

else if(kondisi2) statemen; ekse if(kondisi3) statemen; . . else statemen; 2.7.3.1.4 Bentuk if Bersarang Statemen if bersarang (nested if) merupkan statemen if yang berada di dalam (merupakan bagian dari) statemen if lainnya. Bentuk dari sttemen ini adalah sebagai berikut: If(kondisi1) If(kondisi2) . . if(kondisin) statemen; else statemen; . . else statemen; else statemen; 2.7.3.2 Statemen switch 2.7.3.2.1 Statemen switch Tunggal Bentuk sintak dari statement switch tunggal adalah sebagai berikut: switch(kondisi) { case konstanta1: statemen-statemen; break; case konstanta2: statemen-statemen;

50

break; . . default; statemen-statemen; } 2.7.3.2.2 Statemen switch Bersarang Statemen switch bersarang adalah statemen switch yang satu berada didalam statemen switch yang lain: 2.7.3.3 Perulangan 2.7.3.3.1 Statemen for Statemen for mempunyai bentuk umum sebagai berikut: for(awal, akhir, peningkatan) statemen; 2.7.3.3.2 Perulangan while Bentuk umum dari statemen while adalah sebagai berikut: while(kondisi) statemen; 2.7.3.3.3 Perulangan do - while Bentuk umum dari perulangan ini adalah sebagai berikut: do statemen while (kondisi); 2.7.3.4 Lompatan Statemen goto dapat digunakan untuk melompati dari suatu proses ke bagian proses yang lainnya di dalam program. Bentuk umum dari statemen goto adalah sebagai berikut: goto label;

51

BAB III PERENCANAAN DAN PEMBUATAN SISTEM 3.1

KONFIGURASI SISTEM Sistem yang terdapat pada Konverter teks ke fonem ini terbagi menjadi dua bagian dasar, yaitu bagian perangkat keras (hardware) dan bagian perangkat lunak (software). Perangkat keras yang digunakan adalah mikrokontroler AVR, LCD, keypad, dan serial.komunikasi serial disini mempunyai peranan yang sangat penting, yaitu sebagai penghubung antara Mikrokontroler pada Konverter teks ke fonem dengan Mikrokontroler pada Konverter fonem speech. fonem PROGRAM KOMUNIKASI SERIAL

AVR 16L

LCD KEYPAD

Gambar 3.1 Blok Diagram Sistem Keypad akan menginputkan suatu teks atau karakter tertentu, input akan ditampilkan oleh LCD. Jika teks telah diinputkan maka teks tersebut menjadi suatu nilai data yang nantinya akan diproses oleh program algoritma yang telah dibuat . Output dari proses ini adalah pecahan terkecil dari teks yang tadi telah diinputkan atau nama lainnya adalah dalam bentuk suku kata/fonem. Fonem – fonem ini kemudian akan segera dikirimkan ke mikrokontroler tahap berikut melalui media komunikasi serial.

52

3.2 3.2.1

PERENCANAAN PERANGKAT KERAS Sistem Minimum ATmega16(L) Minimum system ini merupakan sistem kontrol dari keseluruhan system kerja (menggunakan tiga minimum sistem). Pada proyek akhir ini digunakan sistem minimum yang berbasis pada mikrokontroler ATmega16(L), digunakan ATmega16(L) karena bahasa pemrograman AVR tersebut adalah bahasa C yaitu bahasa pemrograman tingkat menengah (bahasa instruksi program mendekati bahasa manusia) sehingga lebih mudah untuk membuat atau menerapkan suatu algoritma program. Kelebihan lainnya adalah setiap pin dalam satu port dapat kita tentukan sebagai input atau output secara mudah karena didalamnya sudah dilengkapi fasilitas tersendiri untuk inisialisasi..

Gambar 3.2 Minimum Sistem ATmega16(L) Mikrokontroler ATMEL ATmega16(L) mempunyai 32 bit jalur I/O yang terbagi menjadi 4 port, yaitu portA, portB, portC dan portD, dan alokasi penggunaan port dijelaskan sebagai berikut : • Port A Port A merupakan port I/O 8 bit bi-directional yang masingmasing pinnya dikonfigursikan sebagai ADC. Masing-masing pin dlm port ini juga memiliki fasilitas berupa resistor pull-up internal yang

53

berguna untuk memberikan kondisi yang tentu (tidak ngambang) pada saat dikonfigursikan sebagai input, tanpa harus memberikan pull-up eksternal. • Port B Port B merupakan port I/O 8 bit bi-directional yang masingmasing pinnya dikonfigursikan secara individual. Masing-masing pin dlm port ini juga memiliki fasilitas berupa resistor pull-up internal yang berguna untuk memberikan kondisi yang tentu (tidak ngambang) pada saat dikonfigursikan sebagai input, tanpa harus memberikan pull-up eksternal. Untuk mendukung alamat port ini terdapat tiga buah alamat mermori khusus yang digunakan untuk menangani fungsi dari port B. • Port C Sebgaimana penjelasan seperti Port B, tetapi Port C memiliki pin-pin khusus yaitu antarmuka JTAG enable, resistor-resistor pull-up pada pin-pin PC5(TDI), PC3(TMS), PC2(TCK) akan diaktifkan sekalipun terjadi reset. • Port D Sebagaimana Port B, Port D juga memiliki tiga buah lokasi memori yang berkitan dengan penggunanya sebaga port I/O. Memori tersebut yaitu PORTD, DDRD, dan PIND. Pada proyek akhir ini untuk pembagian port-port sebagai I/O dapat ditunjukkan pada tabel 3.1 berikut: Tabel 3.1 TabelPembagian port-port pada AVR ATmega 16(L) PORT KEPERLUAN PortD.0

Sebagai receive data

PortD.1

Sebagai transmit data

Port A.0-2

Sebagai input(Keypad)

Port A.3-7

Sebagai output(Keypad)

Port C.

Sebagai output(LCD)

54

3.2.2

LCD VCC D7 D6 D5 D4

7 ````````````

VCC Vlcd GND

E R/W RS GND

Gambar 3.3 LCD

RS R/W E DB4 DB5 DB6 DB7

= Port C.1 = Port C.2 = Port C.3 = Port C.4 = Port C.5 = Port C.6 = Port C.7

3.2.3

KEYPAD

1

2

3

4

5

6

7

8

9

*

0

#

Gambar 3.4 keypad Terlebih dahulu dilakukan pengecekan terhadap jalur jalur keypad agar kita mengetahui dan dapat menentukan konfigurasi dari keypad tersebut.

55

Pengecekan dapat dilakukan dengan menggunakan multitester, karena keypad tidak jauh beda halnya dengan sebuah saklar. Bila saklar ditekan maka rangkaian akan menjadi short, bila tidak ditekan maka keypad berada dalam kondisi open. • Arahkan kursor multitester ke nilai R. Cek masing masing jalur(kombinasi) dan kemudian tekan tombol pada keypad satu persatu hingga ada yang berada dalam kondisi short atau saling terhubung, hal ini dapat kita lihat dengan multitester, jika jarum tidak bergerak maka kondisi saklar open. Sedangkan bila dicek, jarum pada multitester bergerak maka saklar berada dalam kondisi short.. • Bila jarum multitester tidak bergerak meski semua tombol pada keypad sudah ditekan maka, segera ganti ke kombinasi yang lain karena diperkirakan kedua jalur tersebut tidak saling berpotongan, atau berada pada kolom yang sama, mungkin juga berada pada baris yang sama. Dari hasil pengecekan keypad yang digunakan pada proyek akhir ini didapat konfigurasi sebagai berikut: Pin 3 + Pin 2= Tombol 1 Pin 3 + Pin 7= Tombol 4 Pin 3 + Pin 6= Tombol 7 Pin 3 + Pin 4= Tombol * Pin 1 + Pin 2= Tombol 2 Pin 1 + Pin 7= Tombol 5 Pin 1 + Pin 6= Tombol 8 Pin 1 + Pin 4= Tombol 0 Pin 5 + Pin 2= Tombol 3 Pin 5 + Pin 7= Tombol 6 Pin 5 + Pin 6= Tombol 9 Pin 5 + Pin 4= Tombol # PETA KEYPAD PIN 2

1

2

3

4

5

6

7

8

9

PIN 7 PIN 6 PIN 4

56

* PIN 3

0

#

PIN 1

PIN 5

Gambar 3.5 Peta Keypad 3.2.4

DOWNLOADER

Gambar 3.6 ISP Gambar 3.6 adalah gambar isp downloader (in-system programming), IC yang digunakan sebagai isolate dan buffer pararel adalah IC 74HCT51. Untuk interfacing dengan komputer menggunakan kabel dan port pararel DB25. Pada rangkaian diatas SPI port dihubungkan dengan port-port yang ada pada sistem minimum AVR 16L . 3.3

PERENCANAAN PERANGKAT LUNAK Dalam proyek akhir ini, software yang digunakan adalah meenggunakan pemrograman Code Vision AVR. Code Vision adalah suatu compiler program software yang menggunakan bahasa pemrograman C. Sehingga lebih memudahkan dalam menjalankan algoritma program yang telah dibuat. 1. Algoritma Keypad: Keypad yang nantinya digunakan harus memiliki karakteristik yang hampir sama dengan keypad pada hand phone, dimana 1 tombol

57

dapat merepresentasikan satu atau lebih dari satu nilai karakter. Untuk itu dibuat algoritma sebagai berikut. • setiap penekanan 1 tombol maka user diberi kesempatan waktu sebesar kurang lebih 15x50ms. • penekanan pada tombol yang sama menyebabkan nilai tampilan berbeda dan user kembali diberi kesempatan waktu kurang lebih 15x50ms, dengan syarat waktu sebelumnya belum habis. • penekanan tombol lain atau jika waktu yang diberikan pada user untuk tiap penekanan sudah habis maka karakter terakhir itulah yang menjadi nilai akhir(fix).

58

Gambar 3.7 algoritma keypad 2. Algoritma tampilan LCD: Input keypad nantinya akan ditampilkan pada modul LCD, oleh karena LCD yang dipakai berukuran 16x2 maka bila karakter yang diinputkan lebih dari ukuran tersebut tidak akan tampil, sehingga

59

diperlukan suatu algoritma untuk dapat mendisplaykan semua inputan karakter secara tak terbatas. Untuk itu dibuat algoritma sebagai berikut. • jika penulisan karakter telah sampai pada akhir kolom 15 baris 0 maka karakter selanjutnya akan dituliskan pada kolom 0 baris1. • jika penulisan karakter telah sampai pada akhir kolom 15 baris 1 maka karakter selanjutnya akan dituliskan pada kolom 0 baris1. dimana rangkaian huruf yang sebelumnya ada di baris 1 ditulis kembali di baris 0 dan pada baris 1 dikosongkan untuk penulisan karakter yang baru.

Gambar 3.8 algoritma LCD

3. Algoritma teks ke fonem:

60

Gambar 3.9 1st grade

61

62

Gambar 3.10 2nd grade

Gambar 3.11 3rd grade Hasil inputan dari keypad yang bernilai karakter akan dimasukkan sebagai rangkaian karakter yang nantinya dipisah pisah dalam beberapa tingkatan (dapat dilihat pada state automata) agar menjadi sebuah rangkaian fonem. Teknik automata masih memiliki

63

beberapa kekurangan untuk itu dalam proyek akhir ini memgalami beberapa modifikasi agar output yang dihasilkan mendekati dengan apa yang diinginkan. 4. Algoritma output fonem: Hasil output ditampilkan dalan 2 cara yaitu dapat dilihat melalui LCD dan melalui Hyper Terminal. • Untuk mengirim data secara serial ke Hyper Terminal cukup dengan perintah ‘putchar(value)’ sebagai fasilitas dari codevision dalam mengirimkan data secara serial. • Untuk memulai penulisan baru maka digunakan tombol quit(tombol 2) agar kembali ke menu penulisan awal. • Untuk melihat seluruh tampilan output pada LCD digunakan tombol scroll up dan scroll down(tombol 1&3).

Gambar 3.12 tampilan output 5. Algoritma normalisasi angka: • Hitung angka yang berurutan, jadikan 1 segmen. • Jika angka hanya 1, atau angka lebih dari 4digit, atau penulisan angka dimulai dengan angka 0 maka tiap angka dibaca persatuan angka.

64

• Jika rangkaian angka berjumlah 2 hingga 4digit maka dibaca serangkai. Maksimum pembacaan adalah ribuan.(4digit).

65

66

Gambar 3.13 normalisasi angka

67

BAB IV PENGUJIAN SISTEM DAN ANALISA 4.1 Pengujian sistem minimum modul: 4.1.1 Modul ATMEGA 16L Pengujian dilakukan untuk mengetahui apakah sistem minimum bekerja dengan baik, maka diadakan pengetesan pada jalur-jalur port yang dimiliki oleh mikrokontroler ATmega 16L. Prosedur pengetesan : 1. Menghubungkan modul dengan perangkat rangkaian simulasi 32 buah LED(8 LED masing masing port). 2. Membuka program yang akan dites, kemudian meng-compile-nya. 3. Mendownload program ke dalam mikrokontroler ATmega 16L dengan menggunakan ISP downloader. Listing program menyalakan semua LED (set tiap port sebagai output). PORTA=PORTB=PORTC=PORTD=255; Hasil yang diperoleh adalah semua LED aktif , sehingga bisa dipastikan modul bekerja degan baik. 4.1.2 Modul LCD Pengetesan ini bertujuan untuk mengetahui apakah LCD tersebut dapat menampilkan pesan-pesan sesuai dengan proses yang diharapkan. Listing program pengetesan LCD : lcd_gotoxy(0,0); lcd_putsf(”FINAL PROJECT”); lcd_gotoxy(0,1); lcd_putsf(”success”); Analisa Pengetesan LCD : Setelah program pengetesan LCD didownload ke modul, maka pada layar LCD akan menghasilkan tampilan sebagai berikut : Pad baris 1 tampil ‘ FINAL PROJECT‘ dan baris 2 tampil ‘success’. 4.1.3 Modul Keypad Pengetesan ini bertujuan untuk mengetahui apakah keypad dapat bekerja dengan baik. Pengetesan ini tidak jauh beda dengan proses

68

penentuan baris dan kolom dari sebuah tombol pada keypad. Keterangan lebih lengkap dapat dilihat pada bab sebelumnya. Analisa pengetesan keypad: Tombol yang ditekan sesuai dengan yang diinginkan sehingga dapat dipastikan keypad dapat bekerja dengan baik. 4.1.4 Komunikasi serial Pengujian dilakukan untuk mengetahui apakah sistem minimum dapat berkomunikasi secara serial dengan PC baik dalam menerima data maupun mengirim data,.

1.

Prosedur pengetesan : 1. Menghubungkan modul dengan perangkat serial RS232 dengan PC menggunakan konektor DB-9. 2. Membuka program yang akan dites, kemudian meng-compile-nya. 3. Mendownload program ke dalam mikrokontroler ATmega 16L dengan menggunakan ISP downloader. 4. Cek melalui Hyper Terminal. Listing program pengetesan komunikasi serial : char n; while(1) { n=getchar(); //recieve data from PC putchar(n); // transmit data back(echo) }; Analisa pengetesan komunikasi serial: Data yang tampil pada hyper terminal sesuai dengan data yang diketikkan pada keyboard. Sehingga modul Atmega dapat bekerja dengan baik dalam proses komunikasi secara serial. 4.2 Pengujian sistem minimum modul secara keseluruhan: Pengujian dilakukan untuk melihat sesuai atau tidaknya output yang diperoleh dengan yang diinginkan. Pengujian dilakukan dengan cara merangkai modul sistem minimum Atmega 16L dengan keypad, lcd, dan konektor DB9 yang dihubungkan dengan PC. Pengujian dicek melalui 2 cara yitu melihat melalui tampilan LCD maupun melalui tampilan hyper terminal.

69

4.2.1 Pengujian : Membuat kata dari fonem yang sesuai dengan EYD bahasa Indonesia.Keterangan : ‘V’ = vocal, ‘K’ = konsonan, ‘- ‘ = pemisah antar suku kata, ‘--‘ = pemisah antar kata, ‘#‘ = akhir kirim data, Disp LCD = tampilan pada LCD, Disp Hyper = tampilan pada hyper terminal.

V

VK

KV

KVK

Tabel 3.2 Pengujian pola vokal Kata Disp LCD Disp Hyper AJANG A-JANG-A-JANG--# AYAK A-YAK-A-YAK--# IKAN I-KAN-I-KAN-- # ASOI A-SOI-A-SOI--# ULAR U-LAR-U-LAR--# Tabel 3.3 Pengujian pola vokal-konsonan Kata Disp LCD Disp Hyper ANDA AN-DA-AN-DA--# DAUN DA-UN-DA-UN--# UNTUK UN-TUK-UN-TUK--# UMBI UM-BI-UM-BI--# KAIL KA-IL-KA-IL--# Tabel 3.4 Pengujian pola konsonan-vokal Kata Disp LCD Disp Hyper SILAU SI-LAU-SI-LAU--# APA A-PA-A-PA--# KELAPA KE-LA-PA-KE-LA-PA--# KUPANG KU-PANG-KU-PANG--# KRUSIAL KRU-SI-AL-KRU-SI-AL--# Tabel 3.5 Pengujian pola konsonan-vokal-konsonan Kata Disp LCD Disp Hyper LANTAI LAN-TAI-LAN-TAI--# MAKAN MA-KAN-MA-KAN--# IRAK I-RAK-I-RAK--# AKAN A-KAN-A-KAN--# RAMAH RA-MAH-RA-MAH--#

70

KKV

Tabel 3.6 Pengujian pola konsonan-konsonan-vokal Kata Disp LCD Disp Hyper PRAMUKA PRA-MU-KA-- PRA-MU-KA-# SUTRA SU-TRA-SU-TRA--# SASTRA SAS-TRA-SAS-TRA--# PRAHARA PRA-HA-RA-PRA-HA-RA-# KHUSYUK KHU-SYUK-KHU-SYUK--#

Tabel 3.7 Pengujian pola konsonan-konsonan-vokalkonsonan Kata Disp LCD Disp Hyper KKVK FRIKSI FRIK-SI-FRIK-SI--# KONTRAK KON-TRAK-KON-TRAK--# KHAS KHAS-KHAS--# KROM KROM-KROM--# TRIK TRIK-TRIK--#

VKK

Tabel 3.8 Pengujian pola vokal-konsonan-konsonan Kata Disp LCD Disp Hyper EKS EKS-EKS--# ONS ONS-ONS--# ANGKA ANG-KA-ANG-KA--# BUANG BU-ANG-BU-ANG--# AKHMAD AKH-MAD-AKH-MAD--#

Tabel 3.9 Pengujian pola konsonan-vokal-konsonankonsonan Kata Disp LCD Disp Hyper KVKK ABANG A-BANG-A-BANG--# PERS PERS-PERS--# KONTEKS KON-TEKS-KON-TEKS--# SANGKURIANG SANG-KU-RI- SANG-KU-RIANG-ANG--# MAKHLUK MAKH-LUK-- MAKH-LUK-#

71

Tabel 3.10 Pengujian pola konsonan-konsonan-vokalkonsonan-konsonan Kata Disp LCD Disp Hyper KKVKK KOMPLEKS KOM-PLEKS-- KOM-PLEKS-# BLINGSATAN BLING-SABLING-SATAN-TAN--# BRANGKAS BRANG-KAS- BRANG-KAS-# PLONG PLONG-PLONG--# TRANS TRANS-TRANS--# Tabel 3.11 Pengujian pola konsonan-konsonan-konsonan vokal Kata Disp LCD Disp Hyper KKKV INSTRUMEN IN-STRUIN-STRUMEN-MEN--# STRATA STRA-TA-STRA-TA--# STRATEGI STRA-TE-GI-- STRA-TE-GI-#

Tabel 3.12 Pengujian pola konsonan-konsonan-konsonan vokal-konsonan Kata Disp LCD Disp Hyper KKKVK STRUKTUR STRUK-TUR-- STRUK-TUR-# ABSTRAK AB-STRAK-AB-STRAK--# STRIPTIS STRIP-TIS-STRIP-TIS--#

Angka 0

Tabel 3.13 Pengujian normalisasi angka Disp LCD Disp Hyper NOL-NOL--#

72

1 2 3 4 5 6 7 8 9

SA-TU-DU-A-TI-GA-EM-PAT-LI-MA-E-NAM-TU-JU-DE-LA-PAN-SEM-BI-LAN--

SA-TU--# DU-A--# TI-GA--# EM-PAT--# LI-MA--# E-NAM--# TU-JU--# DE-LA-PAN--# SEM-BI-LAN--#

12 25

DU-A--BELAS-DU-A--PU-LUH--LIMA-TI-GA--RA-TUS--DUA--PU-LUH--LIMA-SE-RI-BU--DU-A-RA-TUS--TI-GA--PULUH--SA-TU-SA-TU--SA-TU--DUA--DU-A--TI-GA-NOL--SA-TU--

DU-A--BELAS--# DU-A--PU-LUH--LIMA--# TI-GA--RA-TUS--DUA--PU-LUH--LIMA--# SE-RI-BU--DU-A-RA-TUS--TI-GA--PULUH--SA-TU--# SA-TU--SA-TU--DUA--DU-A--TI-GA--# NOL--SA-TU--#

325 1231

11223 01

MENCLOK AUTO BIBLIOGRAFI STRING EXPENSIVE

Tabel 3.14 Pengujian kata serapan/asing MEN-CLOK-MEN-CLOK--# A-U-TO-A-U-TO--# BIB-LI-OG-RA-FI-BIB-LI-OG-RA-FI--# STRI-NG-STRI-NG--# EX-PEN-SI-VE-EX-PEN-SI-VE--#

Tabel 3.15 Pengujian kombinasi kata dan angka SELAMAT TAHUN BARU 2007 SE-LA-MAT--TA-HUN--BA-RU-DU-A--RI-BU--TU-JUH--# NOMOR TELEPON SAYA NO-MOR--TE-LE-PON--SA-YAADALAH 08563173726 -A-DA-LAH--NOL--DE-LAPAN--LI-MA--E-NAM--TI-GA-SA-TU-TU-JUH--TI-GA--TU-JUH--DUA--E-NAM--# 08563173726 08563973726 NOL--DE-LA-PAN--LI-MA--E-

73

NAM--TI-GA--SA-TU--TU-JUH-TI-GA--TU-JUH--DU-A--ENAM--NOL--DE-LA-PAN--LIMA--E-NAM--TI-GA--SEM-BILAN--TU-JUH--#

Analisa : 1. Dari data-data yang telah dihasilkan terdapat kesalahan ejaan(Tabel3.14), hal ini disebabkan sebenarnya kata yang dimasukkan adalah kata asing/serapan yang memiliki pola yang berbeda dengan pola fonem pada bahasa Indonesia, namun oleh konverter ini tetap diterjemahkan menurut pola fonem pada bahasa Indonesia. 2. Dalam bentuk kalimat, batasan pemecahan teks ke fonem bukan dibatasi oleh banyak karakter yang diinputkan tetapi oleh banyak karakter yang dihasilkan sesudah dipecah, yaitu sebesar 138 karakter. Bila hasil pecahan fonem terakhir menghasilkan jumlah karakter lebih dari 138 karakter maka data yang dihasilkan tidak valid(Tabel 3.15). 4.3 Pengujian integrasi sistem konverter teks ke fonem dengan konverter fonem ke wicara. Pengujian diakukan untuk mengetahui kelemahan dari sistem secara keseluruhan. Tabel 3.16 menunjukkan hubungan antara panjang karakter yang dimasukkan pada konverter teks ke fonem dengan waktu suara mulai terdengar pada konverter fonem ke wicara, serta tingkat jelas atau tidaknya suara yang terdengar. Tabel 3.16 Pengujian sistem integrasi antar konverter Panjang Karakter Jeda waktu(s) Suara jelas/tidak 1 1.5 jelas 5 2.5 jelas 10 4 tidak 15 5 jelas 20 6,5 tidak Analisa :

74

1.

2.

Tabel 3.16 menunjukkan bahwa panjang karakter yang menjadi input berbanding lurus dengan waktu yang dibutuhkan untuk mengubahnya menjadi keluaran berupa suara. Hal ini disebabkan semakin banyak rangkaian karakter maka semakin banyak pula waktu yang dibutuhkan untuk menyelesaikan suatu proses(program software) memecah kata menjadi suku kata. Output suara yang dihasilkan digolongkan menjadi 2 macam yaitu jelas dan tidak jelas. Parameter yang digunakan untuk menilai tingkat jelas atau tidaknya suara yang dihasilkan adalah sesuai atau tidaknya pengucapan yang dihasilkan dengan fonem yang telah dikirim. Dari tabel diatas dapat dilihat bahwa terdapat data yang menyatakan bahwa output suara tidak terdengar jelas. Hal ini disebabkan oleh fonem yang dikirim dari konverter pertama tidak dapat didefinisikan oleh konverter kedua, hal ini terkait erat dengan terbatasnya fonem yang telah direkam pada database pada konverter fonem ke wicara. Sehingga ketika konverter ini menemui bentuk fonem yang tidak ada didalam database maka otomatis konverter ini menghasilkan suara yang kurang sesuai (kurang signifikan).

4.4

Pengujian kenyamanan penggunaan keypad: Pengujian dilakukan dengan menggunakan user yang berbeda untuk melihat kenyamanan keypad pada saat digunakan untuk mengetik data masukan.

User DITA KEVIN VINA ARDIANTO DINO SAMSUL ANDIK FAISAL BAGUS AULIA

Tabel 3.17 Pengujian kenyamanan penggunaan keypad Delay(15ms) Delay(2ms) Delay(1ms) Delay(0,9ms) Lambat&error Cepat &pas Cepat &pas Cepat&error Lambat&error Cepat&error Cepat &pas Cepat&error Lambat&error Cepat&error Cepat &pas Cepat&error Lambat&error Cepat&error Cepat &pas Cepat&error Lambat&error Cepat&error Cepat&eror Cepat&error Lambat&error Cepat &pas Cepat &pas Cepat&error Lambat&error Cepat &pas Cepat &pas Cepat&error Lambat&error Cepat&error Cepat &pas Cepat&error Lambat&error Cepat&error Cepat &pas Cepat&error Lambat&error Cepat&error Cepat &pas Cepat&error

75

Keterangan: Kondisi = error atau pas. Respon = lambat atau cepat. Error = karakter terlalu cepat pindah kolom, karakter yang tampil tidak sesuai dengan yang diketik. Analisa: Berdasar data polling didapat bahwa program keypad yang menggunakan delay sebesar 1ms memiliki prosen error (10%) yang paling sedikit. Sehingga dalam proyek akhir ini keypad diatur dengan delay sebesar 1ms. BAB V PENUTUP 5.1 Kesimpulan: 1.

2.

3.

Kesalahan ejaan pada pengujian disebabkan kata yang dimasukkan memiliki pola fonem yang asing atau kata yang dimasukkan berupa kata serapan. Dalam proyek ini masih sulit menentukan batasan jumlah karakter yang dipakai. Sehingga tidak ada ukuran standar karena yang dipakai adalah batasan ukuran hasil karakter (fonem) yang dihasilkan terakhir. Tingkat keakurasian keypad ditentukan oleh penggunaan delay untuk meminimkan kondisi error, misalnya karakter yang muncul tidak sesuai dengan karakter yang diinginkan. Hal ini disebabkan oleh program keypad yang belum baik dalam menentukan waktu delay unuk meminimkan debouncing hingga 0%. Pada proyek akhir ini digunakan delay sebesar 1ms dengan tingkat error sebesar 10%.

5.2 Saran: Algoritma pada proyek ini sebaiknya dapat mengantisipasi adanya kata kata serapan, dan tanda baca sehingga tidak terpaku pada struktur EYD, meskipun nantinya program yang akan dibuat pasti sangat kompleks. Untuk memperbesar jumlah karakter yang dapat dimasukkan dan dapat diproses secara valid maka sebaiknya menggunakan suatu mikrokontroler yang memiliki memori internal yang cukup besar.

76

Halaman ini sengaja dikosongkan

77

DAFTAR PUSTAKA [1] Akhmad, Arman, Arry, [2004], “Penelitian Konversi dari Teks ke Ucapan”,Departemen teknik Elektro ITB. [2] Akhmad, Arman, Arry, [2004], “Pidato Ilmiah pada Sidang Terbuka PMB ITB 2004 ”,Departemen teknik Elektro ITB. [3] Anung,Thomas,[2000], ”Pengenalan Suku Kata bahasa Indonesia Menggunakan Finite State Automata ”, Jurusan Ilmu Komputer, Universitas Katolik Parahyangan. [4] Dutiot, Thierry, [1997], “An Introducing to Text to Speech Synthesis , Hardbound. [5] Ide, Nancy, dkk, [1997], “Text, Speech and Language Technology. [6] Sulistiyanto, Totok, dkk, [2004], “Text To Speech Program Untuk Kata dan Kalimat Bahasa Indonesia”, Teknik Informatika, STT Telkom. [7] Syafa’at, Nizwar, [2005],”Panduan Pembuatan Rencana Strategis Balai Pengkajian Pertanian” [8] www.globalkomputer.com

78

/*********Listing Program******** This program was produced by the CodeWizardAVR V1.24.7d Evaluation Automatic Program Generator © Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com e-mail:[email protected] Project : Version : Date : 6/20/2006 Author : Freeware, for evaluation and non-commercial use only Company : Comments:

Chip type : ATmega16L Program type : Application Clock frequency : 8.000000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 256 *************************************************** **/ #include <mega16.h> #include <delay.h> #include <stdio.h> //#include <stdarg.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x15 ;PORTC #endasm #include // Declare your global variables here

void main(void) {

79

// Declare your local variables here

PORTA=0xFF; DDRA=0xF8; PORTB=0x00; DDRB=0x00; PORTC=0x00; DDRC=0x00; PORTD=0x00; DDRD=0x00; TCCR0=0x00; TCNT0=0x00; OCR0=0x00; TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; MCUCR=0x00; MCUCSR=0x00; TIMSK=0x00;

80

UCSRA=0x00; UCSRB=0x08; UCSRC=0x86; UBRRH=0x00; UBRRL=0x33; ACSR=0x80; SFIOR=0x00; lcd_init(16); lcd_gotoxy(2,0); lcd_putsf("Text2Phoneme"); lcd_gotoxy(3,1); lcd_putsf("Converter"); delay_ms(1000); delay_ms(1000); //delay_ms(1000); lcd_clear(); k=0; while (1) { _lcd_ready(); _lcd_write_data(0xf); // Place your code here PORTA.3=0; PORTA.4=1; PORTA.5=1; PORTA.6=1; PORTA.7=1; pencet=0; n=350; a=PINA; delay_ms(1); while(a==0xF6) { coba: n--; a=PINA; delay_ms(1); if(n!=0&&(a==0xF6||a==0xF7)) {

81

if (a==0xF6) { //delay_ms(50); pencet++; lcd_gotoxy(k,br); if (pencet==1) { val='1'; lcd_putchar(val); } if (pencet>1) { pencet=0; } delay_ms(150); n=350; } goto coba; } if((n==0&&a==0xF7)||(n!=0&&(a!=0xF6||a!=0xF7))) { suku[L]=val; L++; k++; //delay_ms(100); } break; } while(a==0xF5) { coba1: n--; a=PINA; delay_ms(1); if(n!=0&&(a==0xF7||a==0xF5)) { if (a==0xF5) { //delay_ms(50);

82

pencet++; lcd_gotoxy(k,br); if (pencet==1) { val='A'; lcd_putchar(val); } if (pencet==2) { val='B'; lcd_putchar(val); } if (pencet==3) { val='C'; lcd_putchar(val); } if (pencet==4) { val='2'; lcd_putchar(val); } if (pencet>4) { pencet=0; } delay_ms(150); n=350; } goto coba1; } if(((n==0)&&((a==0xF7)||(a==0xF5)))||((n!=0)&&((a!=0xF5)|| (a!=0xF7)))) { suku[L]=val; L++; k++; } break;

83

} while(a==0xF3) { coba2: n--; a=PINA; delay_ms(1); if(n!=0&&(a==0xF7||a==0xF3)) { if (a==0xF3) { //delay_ms(50); pencet++; lcd_gotoxy(k,br); if (pencet==1) { val='D'; lcd_putchar(val); } if (pencet==2) { val='E'; lcd_putchar(val); } if (pencet==3) { val='F'; lcd_putchar(val); } if (pencet==4) { val='3'; lcd_putchar(val); } if (pencet>4) { pencet=0; } delay_ms(150); n=350; } goto coba2;

84

} if (((n==0)&& ((a==0xF7)||(a==0xF3))) || ((n!=0)&&((a!=0xF3)||(a!=0xF7)))) { suku[L]=val; L++; k++; } break; } // BARIS xxxxxxxxxxxxxxxxxxxxx2: PORTA.3=1; PORTA.4=0; PORTA.5=1; PORTA.6=1; PORTA.7=1; pencet=0; n=350; a=PINA; delay_ms(1); while(a==0xEE) { coba3: n--; a=PINA; delay_ms(1); if(n!=0&&((a==0xEE)||(a==0xEF))) { if (a==0xEE) { //delay_ms(50); pencet++; lcd_gotoxy(k,br); if (pencet==1) { val='G'; lcd_putchar(val); } if (pencet==2) { val='H'; lcd_putchar(val);

85

} if (pencet==3) { val='I'; lcd_putchar(val); } if (pencet==4) { val=0x34; lcd_putchar(val); } if (pencet>4) { pencet=0; } delay_ms(150); n=350; } goto coba3; } if (((n==0)&& ((a==0xEF)||(a==0xEE))) || ((n!=0)&&((a!=0xEE)||(a!=0xEF)))) { suku[L]=val; L++; k++; } break; } while(a==0xED) { coba4: n--; a=PINA; delay_ms(1); if(n!=0&&((a==0xED)||(a==0xEF))) { if (a==0xED) { //delay_ms(50); pencet++; lcd_gotoxy(k,br);

86

if (pencet==1) { val='J'; lcd_putchar(val); } if (pencet==2) { val='K'; lcd_putchar(val); } if (pencet==3) { val='L'; lcd_putchar(val); } if (pencet==4) { val='5'; lcd_putchar(val); } if (pencet>4) { pencet=0; } delay_ms(150); n=350; } goto coba4; } if (((n==0)&& ((a==0xEF)||(a==0xED))) || ((n!=0)&&((a!=0xED)||(a!=0xEF)))) { suku[L]=val; L++; k++; //delay_ms(100); } break; } while(a==0xEB) {

87

coba5: n--; a=PINA; delay_ms(1); if(n!=0&&((a==0xEB)||(a==0xEF))) { if (a==0xEB) { //delay_ms(50); pencet++; lcd_gotoxy(k,br); if (pencet==1) { val='M'; lcd_putchar(val); } if (pencet==2) { val='N'; lcd_putchar(val); } if (pencet==3) { val='O'; lcd_putchar(val); } if (pencet==4) { val='6'; lcd_putchar(val); } if (pencet>4) { pencet=0; } delay_ms(150); n=350; } goto coba5; } if (((n==0)&& ((a==0xEF)||(a==0xEB))) || ((n!=0)&&((a!=0xEB)||(a!=0xEF))))

88

{ suku[L]=val; L++; k++; //delay_ms(100); } break; } // BARIS xxxxxxxxxxxxxxxxxxxxx3: PORTA.3=1; PORTA.4=1; PORTA.5=0; PORTA.6=1; PORTA.7=1; pencet=0; n=350; a=PINA; delay_ms(1); while(a==0xDE) { coba6: n--; a=PINA; delay_ms(1); if(n!=0&&((a==0xDE)||(a==0xDF))) { if (a==0xDE) { //delay_ms(50); pencet++; lcd_gotoxy(k,br); if (pencet==1) { val='P'; lcd_putchar(val); } if (pencet==2) { val='Q'; lcd_putchar(val); } if (pencet==3)

89

{ val='R'; lcd_putchar(val); } if (pencet==4) { val='S'; lcd_putchar(val); } if (pencet==5) { val='7'; lcd_putchar(val); } if (pencet>5) { pencet=0; } delay_ms(150); n=350; } goto coba6; } if (((n==0)&& ((a==0xDF)||(a==0xDE))) || ((n!=0)&&((a!=0xDE)||(a!=0xDF)))) { suku[L]=val; L++; k++; } break; } while(a==0xDD) { coba7: n--; a=PINA; delay_ms(1); if(n!=0&&((a==0xDD)||(a==0xDF))) {

90

if (a==0xDD) { //delay_ms(50); pencet++; lcd_gotoxy(k,br); if (pencet==1) { val='T'; lcd_putchar(val); } if (pencet==2) { val='U'; lcd_putchar(val); } if (pencet==3) { val='V'; lcd_putchar(val); } if (pencet==4) { val='8'; lcd_putchar(val); } if (pencet>4) { pencet=0; } delay_ms(150); n=350; } goto coba7; } if (((n==0)&& ((a==0xDF)||(a==0xDD))) || ((n!=0)&&((a!=0xDD)||(a!=0xDF)))) { suku[L]=val; L++; k++;

91

//delay_ms(100); } break; } while(a==0xDB) { coba8: n--; a=PINA; delay_ms(1); if(n!=0&&((a==0xDB)||(a==0xDF))) { if (a==0xDB) { //delay_ms(50); pencet++; lcd_gotoxy(k,br); if (pencet==1) { val='W'; lcd_putchar(val); } if (pencet==2) { val='X'; lcd_putchar(val); } if (pencet==3) { val='Y'; lcd_putchar(val); } if (pencet==4) { val='Z'; lcd_putchar(val); } if (pencet==5) { val='9'; lcd_putchar(val); }

92

if (pencet>5) { pencet=0; } delay_ms(150); n=350; } goto coba8; } if (((n==0)&& ((a==0xDF)||(a==0xDB))) || ((n!=0)&&((a!=0xDB)||(a!=0xDF)))) { suku[L]=val; L++; k++; //delay_ms(100); } break; } // BARIS xxxxxxxxxxxxxxxxxxxxx4: PORTA.3=1; PORTA.4=1; PORTA.5=1; PORTA.6=0; PORTA.7=1; pencet=0; n=350; a=PINA; delay_ms(1); while(a==0xBE)//BACK SPACE { } while(a==0xBD) { coba10: n--; a=PINA; delay_ms(1); if(n!=0&&((a==0xBD)||(a==0xBF))) { if (a==0xBD)

93

{

//delay_ms(50); pencet++; lcd_gotoxy(k,br); if (pencet==1) { val=' '; lcd_putchar(val); } if (pencet==2) { val='0'; lcd_putchar(val); } if (pencet>2) { pencet=0; } delay_ms(150); n=350;

} goto coba10; } if (((n==0)&& ((a==0xBF)||(a==0xBD))) || ((n!=0)&&((a!=0xBD)||(a==0xBF)))) { suku[L]=val; L++; k++; } break; } while(a==0xBB) { lcd_gotoxy(k,br); val=' '; lcd_putchar(val); suku[L]=val; end=1; { r=0;first=0; for(m=0;m
94

{ BYK=0; for(j=first;j0x39&&masuk==0)||(suku[j]==' '&&masuk==0)) { //print spasi dah huruf ke nix nix[r]=suku[j]; r++; nix[r]=' '; j=L-1; first++; masuk=1; } if(suku[j]>=0x30&&suku[j]<=0x39&&masuk==0) { BYK++; if (suku[j+1]==' '||suku[j+1]>0x39) { j++; akhir=j; first=akhir; j=L-1; } } masuk=0; } awali=akhir-BYK; awal=0; if (BYK>0) { plong=0;//awali=0;akhir=L; pol=0;muter=0;n=0;b=0; for(i=awali;i4)) {

95

nix[r]='S';

r++;

nix[r]='A';

r++;

nix[r]='T';

r++;

nix[r]='U';

r++;

nix[r]=' ';

r++;

plong=1; } if (suku[i]=='2'&&plong==0) { nix[r]='D';

r++;

nix[r]='U';

r++;

nix[r]='A';

r++;

nix[r]=' ';

r++;

plong=1; } if (suku[i]=='3'&&plong==0) { nix[r]='T';

r++;

nix[r]='I';

r++;

nix[r]='G';

r++;

nix[r]='A';

r++;

nix[r]=' ';

r++;

plong=1; }

96

if (suku[i]=='4'&&plong==0) { nix[r]='E';

r++;

nix[r]='M';

r++;

nix[r]='P';

r++;

nix[r]='A';

r++;

nix[r]='T';

r++;

nix[r]=' ';

r++ ;

plong=1; } if (suku[i]=='5'&&plong==0) { nix[r]='L';

r++;

nix[r]='I';

r++;

nix[r]='M';

r++;

nix[r]='A';

r++;

nix[r]=' ';

r++;

plong=1; } if (suku[i]=='6'&&plong==0) { nix[r]='E';

r++;

nix[r]='N';

r++;

nix[r]='A';

r++;

97

nix[r]='M';

r++;

nix[r]=' ';

r++;

plong=1; } if (suku[i]=='7'&&plong==0) { nix[r]='T';

r++;

nix[r]='U';

r++;

nix[r]='J';

r++;

nix[r]='U';

r++;

nix[r]='H';

r++;

nix[r]=' ';

r++;

plong=1; } if (suku[i]=='8'&&plong==0) { nix[r]='D';

r++;

nix[r]='E';

r++;

nix[r]='L';

r++;

nix[r]='A';

r++;

nix[r]='P';

r++;

nix[r]='A';

r++;

nix[r]='N';

r++;

98

nix[r]=' '; r++; plong=1; } if (suku[i]=='9'&&plong==0) { nix[r]='S';

r++;

nix[r]='E';

r++;

nix[r]='M';

r++;

nix[r]='B';

r++;

nix[r]='I';

r++;

nix[r]='L';

r++;

nix[r]='A';

r++;

nix[r]='N';

r++;

nix[r]=' ';

r++;

plong=1; } if ((plong==0&&suku[awali]=='0'&&b==0)||(suku[i]=='0'&&b== 1)) { nix[r]='N';

r++;

nix[r]='O';

r++;

nix[r]='L';

r++;

nix[r]=' ';

r++ ;

99

plong=1; muter=1; b=1; BYK=1; } plong=0; if (BYK>4&&muter==0) { BYK=1; muter=1; } if (BYK==4&&muter==0) //ribuan { if (suku[i]=='1') { nix[r]='S'; r++; nix[r]='E'; r++; } if (suku[i]=='0') { lanjut=1; } if(lanjut==0) { nix[r]='R';

r++;

nix[r]='I';

r++;

nix[r]='B';

r++;

nix[r]='U';

r++;

nix[r]=' ';

r++;

} BYK--;

100

lanjut=0; muter=1; } if (BYK==3&&muter==0) //ratusan { if (suku[i]=='1') { nix[r]='S'; nix[r]='E'; lanjut=0;

r++; r++;

} if (suku[i]=='0') { lanjut=1; } if(lanjut==0) { nix[r]='R';

r++;

nix[r]='A';

r++;

nix[r]='T';

r++;

nix[r]='U';

r++;

nix[r]='S';

r++;

nix[r]=' ';

r++;

} BYK--; lanjut=0; muter=1; } if (BYK==2&&muter==0) //puluhan { if (suku[i]=='1') { nix[r]='S'; r++;

101

nix[r]='E';

r++;

muter=0; i++; n=1; } if(suku[i]!='1'&&suku[i]!='0'&&n==0) { nix[r]='P';

r++;

nix[r]='U';

r++;

nix[r]='L';

r++;

nix[r]='U';

r++;

nix[r]='H';

r++;

nix[r]=' '; r++; } if (suku[i]=='0'&&n==0) { lanjut=1; muter=1; } BYK--; lanjut=0; } if (BYK==1&&muter==0) //puluhan { if(suku[i]=='0'&&n==1) { nix[r]='P';

r++;

nix[r]='U';

r++;

nix[r]='L';

r++;

nix[r]='U';

r++;

102

nix[r]='H';

r++;

nix[r]=' ';

r++;

BYK=0; } if(suku[i]=='1'&&n==1) { nix[r]='B';

r++;

nix[r]='E';

r++;

nix[r]='L';

r++;

nix[r]='A';

r++;

nix[r]='S';

r++;

nix[r]=' ';

r++;

BYK=0; } if(suku[i]=='0'&&n!=0) BYK=0; if ((suku[i]!='1'&&suku[i]!='0'&&n==1)) if(pol==1&&muter==0) { nix[r]='B';

r++;

nix[r]='E';

r++;

nix[r]='L';

r++;

nix[r]='A';

r++;

nix[r]='S';

r++;

103

nix[r]=' '; r++; BYK=0; pol=0; } } muter=0; if(i==akhir-1) {r--;} awal=batas; r=awal;//array untuk suku next=0; next2=0; for(j=0;j<slide;j++) { for(i=awal;i<segmen[j];i++) { if(phon[i]==0x56 && next==0) { onem[r]=nix[i]; //i++; r++; onem[r]='-'; next=1; } if(nix[i]==0x4E && next2==0) { onem[r]=nix[i]; //i++; r++; onem[r]='-'; next=1; if((nix[i+1]==0x47||nix[i+1]==0x59)&& next2==0) { i++; onem[r]=nix[i];

104

if(phon[i]==0x4B&& (nix[i]!=0x4E||nix[i]!=0x4B||nix[i]!=0x53 )&& next==0) { onem[r]=nix[i]; //i++; r++; onem[r]='-'; next=1; // V if(phon[i+1]==0x56&& next2==0) { i++; onem[r]=nix[i]; //i++; r++; onem[r]='-'; next2=1; } } if(phon[i]!=0x4B && phon[i]!=0x56) { onem[r]=nix[i]; r++; onem[r]='-'; } next=0; next2=0; if(i==(segmen[j]-1)) { r++; onem[r]='-'; } r++; } awal=segmen[j]; awal++; } slide=0; if(r>170) {r=170;}

105

for(i=batas;i<=r;i++) { if (onem2[i]=='-'&&onem2[i+1]=='-') { segmen[slide]=i+1; //batas segmen pembagian kata phon[i]=onem2[i]; phon[i+1]=onem2[i]; slide++; } } awal=batas; for(j=0;j<slide;j++) { for(i=awal;i<segmen[j];i++) { if(onem2[i]==0x41||onem2[i]==0x49||onem2[i]==0x55 ||onem2[i]==0x45||onem2[i]==0x4F) { phon[i]=0x56; } else { if(onem2[i]!='-') { phon[i]=0x4B; } } } awal=segmen[j]; awal++; } next=0; next2=0; next3=0; awal=batas; r=awal; for(j=0;j<slide;j++) { for(i=awal;i<segmen[j];i++)

106

{ if(phon[i]=='V'&&phon[i+1]=='K'&&onem2[i+2]==''&&next==0) { onem3[r]=onem2[i]; i++; r++; onem3[r]=onem2[i]; i++; r++; onem3[r]='-'; next=1; next2=0; if (phon[i+1]=='K'&&onem2[i+2]=='-'&&next2==0) { i++; onem3[r]=onem2[i]; i++; r++; onem3[r]='-'; next2=1; } } if(phon[i]=='K'&&phon[i+1]=='V'&&phon[i+2]=='K' &&onem2[i+3]=='-'&&next==0) { onem3[r]=onem2[i]; i++; r++; onem3[r]=onem2[i]; i++; r++; onem3[r]=onem2[i]; i++; r++; onem3[r]='-'; next=1;

107

next2=0; if (phon[i+1]=='K'&&onem2[i+2]=='-'&&next2==0) { i++; onem3[r]=onem2[i]; i++; r++; onem3[r]='-'; next2=1; } } if (phon[i]=='K'&&phon[i+1]=='K'&&phon[i+2]=='V'&&phon[i+ 3]=='K'&&onem2[i+4]=='-'&&next==0) { onem3[r]=onem2[i]; i++; r++; onem3[r]=onem2[i]; i++; r++; onem3[r]=onem2[i]; i++; r++; onem3[r]=onem2[i]; i++; r++; onem3[r]=onem2[i]; next=1; next2=0; if (phon[i+1]=='K' && onem2[i+2]=='-' && next2==0) { i++; onem3[r]=onem2[i]; i++; //spasi r++; onem3[r]='-'; next2=1;

108

} } if(phon[i]=='V'&&onem2[i+1]=='-'&&next==0) { onem3[r]=onem2[i]; i++; r++; onem3[r]=onem2[i]; next=1; } if( phon[i]=='K' phon[i+1]=='V'&& onem2[i+2]=='-' && next==0) { onem3[r]=onem2[i]; i++; r++; onem3[r]=onem2[i]; i++; r++; onem3[r]='-'; next=1; next2=0; if( phon[i+1]=='V'&& onem2[i+2]=='-' && next2==0 ) {if(( (onem2[i-1]=='A'&&onem2[i+1]=='I') || (onem2[i-1]=='O'&&onem2[i+1]=='I'))|| (onem2[i-1]=='A'&&onem2[i+1]=='U')) { i++; onem3[r]=onem2[i]; i++; r++; onem3[r]='-'; next2=1; } } }

109

&&

if( phon[i]=='K' && phon[i+1]=='K'&& phon[i+2]=='V'&& onem2[i+3]=='-' && next==0) { onem3[r]=onem2[i]; i++; r++; onem3[r]=onem2[i]; i++; r++; onem3[r]=onem2[i]; i++; r++; onem3[r]='-'; next=1; next2=0; if( phon[i+1]=='V'&& onem2[i+2]=='-' && next2==0 ) {if((onem2[i-1]=='A'&&onem2[i+1]=='I')|| (onem2[i-1]=='O'&&onem2[i+1]=='I'))|| (onem2[i-1]=='A'&&onem2[i+1]=='U')) { i++; onem3[r]=onem2[i]; i++; r++; onem3[r]='-'; next2=1; } } if( phon[i+1]=='K'&& phon[i+2]=='K' && onem2[i+3]=='-' && next2==0) { i++; onem3[r]=onem2[i]; i++; r++;

110

onem3[r]=onem2[i]; i++; r++; onem3[r]='-'; next2=1; } } if( phon[i]=='K' && phon[i+1]=='K'&& phon[i+2]=='K'&& phon[i+3]=='V'&&onem2[i+4]=='-' && next==0) { onem3[r]=onem2[i]; i++; r++; onem3[r]=onem2[i]; i++; r++; onem3[r]=onem2[i]; i++; r++; onem3[r]=onem2[i]; i++; r++; onem3[r]='-'; next=1; next2=0; if( phon[i+1]=='V'&& onem2[i+2]=='-' && next2==0 ) {if((onem2[i-1]=='A'&&onem2[i+1]=='I')|| (onem2[i-1]=='O'&&onem2[i+1]=='I'))|| (onem2[i-1]=='A'&&onem2[i+1]=='U')) { i++; onem3[r]=onem2[i]; i++; r++; onem3[r]='-'; next2=1; } } }

111

if (next==0) { for(next3=i;next3<=(segmen[j]-1);next3++) { onem3[i]=onem2[i]; } } next=0; next2=0; next3=0; if(i==(segmen[j]-1)) { r++; onem3[r]='-'; } r++; } awal=segmen[j]; awal++; } lcd_clear(); if(r>170) {r=170;} for(i=batas;i=32) {i=r-1;} } for(i=batas;i
112

RIWAYAT HIDUP PENULIS

Nama Tgl Lahir Alamat Telp

: Putu Rio Aditya Darma : 18 September 1985 : Gayung Kebonsari 06/25, Surabaya, Jatim : (031)8293080

Riwayat Pendidikan 1991-1994 1994-1997 1997-2000 2000-2003 2003-2006

SDN Sisir 05 Batu SDN Negeri Keputran I Surabaya SMP Negeri 06 Surabaya SMU Negeri 5 Surabaya Jurusan Teknik Elektronika D3 Politeknik Elektronika Negeri Surabaya – ITS

Pada Hari Rabu, 2 Agustus 2006 jam 09.15 mengikuti Ujian Proyek Akhir di Lab. SPP sebagai salah satu persyaratan memperoleh gelar Ahli Madya (A.Md.) di Politeknik Elektronika Negeri SurabayaITS.

113

Related Documents