Pembangkit dan pengenal sinyal morse berbasis citra.
ix
INTISARI
Di zaman modern saat ini, alat komunikasi merupakan salah satu unsur penting dalam membangun relasi. Perkembangan alat komunikasi pun mengalami kemajuan yang sangat pesat. Kode morse yang juga merupakan salah satu media komunikasi dahulu sering digunakan di berbagai bidang, namun seiring berjalannya waktu penggunaan kode morse pun kurang diminati masyarakat. Berdasarkan hal tersebut maka dibuat suatu program sehingga komputer dapat mengenali citra berupa cahaya kedap-kedip sehingga nantinya dapat mengenali kode morse.
Sistem pengenal kode morse ini dilakukan secara real time menggunakan webcam dan laptop. Sistem pembangkit yang dibuat dapat dideskripsikan berdasarkan urutan dengan penampil citra berupa hitam dan putih yang menyala secara bergantian. Citra tersebut berupa karakter kode morse. Berikut ini urutan proses pengenal kode morse: rekaman citra berupa cahaya kedap-kedip menggunakan webcam, preprocessing, dan decoding. Sistem pembangkit dan pengenal kode morse ini memanfaatkan laptop untuk memproses sistem. Selain itu, proses tersebut melibatkan bahasa pemrograman matlab menggunakan GUI yang tersedia dalam matlab.
Hasil dari sistem pengenalan ini yaitu sistem dapat mengenali kode morse sesuai rancangan. Berdasarkan percobaan yang telah dilakukan, dapat diketahui bahwa batas jarak maksimum adalah 700 cm, serta batas sudut kemiringan antara laptop 1 dengan laptop 2 dapat mengenali kode morse.
Kata kunci: Citra berupa cahaya kedap-kedip, encoding dan decoding, Pembangkit dan Pengenal kode morse
(2)
x
ABSTRACT
In this modern era, communication media is an important element in building relationship. The progress of communication media has been made enormous gains. Morse code which is also one of communication media often used in various fields, but nowadays as time goes on the use of Morse Code is less attractive to the society. Based on it then the user made a program so the notebook can be recognize image in the form of blips so it can be recognize the Morse Code. The process of recognizing Morse Code conducted by real time with webcam and notebook. The generating system that has been made could be described based on the sequence of black and white image that flashing alternately. That imagery is the character of Morse Code. These are the sequence of Morse Code recognizing process: recording of light image blips with webcam, preprocessing, and decoding. Generating system and Morse Code recognizing utilizes notebook to process system. Furthermore, the process involves a programming language uses GUI that available in those matlab. The result of recognition system is a system that can recognize Morse Code in accordance design. Based on experiment that has been done, known that the maximum bounds is 700 cm and and limit angel of inclination between notebook 1 and 2 can recognize the Morse Code.
Keywords: The image of blips light, encoding and decoding, generating and recognizing Morse Code
(3)
TUGAS AKHIR
PEMBANGKIT DAN PENGENAL SINYAL MORSE
BERBASIS CITRA
Diajukan untuk memenuhi salah syarat memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Disusun oleh :
ANTHONIUS BERTYN DUA LEMBANG
NIM: 115114043
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
(4)
ii
FINAL PROJECT
GENERATOR AND MORSE CODE RECOGNIZER BASED
ON IMAGE
In partial fulfillment of the requirements for the degree of Sarjana Teknik in Electrical Engineering Study Program
ANTHONIUS BERTYN DUA LEMBANG
NIM: 115114043
ELECTRICAL ENGINEERING STUDY PROGRAM
ELECTRICAL ENGINEERING DEPARTMENT
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2015
(5)
(6)
(7)
(8)
vi
HALAMAN PERSEMBAHAN
Kupersembahkan karya tulis ini kepada…
Tuhan Yesus Kristus juru selamatku, pembimbingku yang setia dan selalu ada di setiap waktu.
Bunda Maria yang tidak pernah lelah dalam mendampingi anak-anaknya.
Bapak, Ibu, Kak Santi dan Kak Rose yang tak pernah putus memberiku doa dan semangat untuk menjalani hidup yang penuh tantangan. Kalian sumber semangatku.
(9)
vii
HALAMAN MOTTO
“Don’t put till tomorrow what you can
do today”
“J
anganlah takut, sebab Aku menyertai engkau, janganlah bimbang, sebab Aku ini
Allahmu; Aku akan meneguhkan, bahkan akan menolong engkau; Aku akan memegang
engkau dengan tangan kanan-Ku yang membawa kemenangan
”
Yesaya 41:10
(10)
(11)
ix
INTISARI
Di zaman modern saat ini, alat komunikasi merupakan salah satu unsur penting dalam membangun relasi. Perkembangan alat komunikasi pun mengalami kemajuan yang sangat pesat. Kode morse yang juga merupakan salah satu media komunikasi dahulu sering digunakan di berbagai bidang, namun seiring berjalannya waktu penggunaan kode morse pun kurang diminati masyarakat. Berdasarkan hal tersebut maka dibuat suatu program sehingga komputer dapat mengenali citra berupa cahaya kedap-kedip sehingga nantinya dapat mengenali kode morse.
Sistem pengenal kode morse ini dilakukan secara real time menggunakan webcam dan laptop. Sistem pembangkit yang dibuat dapat dideskripsikan berdasarkan urutan dengan penampil citra berupa hitam dan putih yang menyala secara bergantian. Citra tersebut berupa karakter kode morse. Berikut ini urutan proses pengenal kode morse: rekaman citra berupa cahaya kedap-kedip menggunakan webcam, preprocessing, dan decoding. Sistem pembangkit dan pengenal kode morse ini memanfaatkan laptop untuk memproses sistem. Selain itu, proses tersebut melibatkan bahasa pemrograman matlab menggunakan GUI yang tersedia dalam matlab.
Hasil dari sistem pengenalan ini yaitu sistem dapat mengenali kode morse sesuai rancangan. Berdasarkan percobaan yang telah dilakukan, dapat diketahui bahwa batas jarak maksimum adalah 700 cm, serta batas sudut kemiringan antara laptop 1 dengan laptop 2 dapat mengenali kode morse.
Kata kunci: Citra berupa cahaya kedap-kedip, encoding dan decoding, Pembangkit dan Pengenal kode morse
(12)
x
ABSTRACT
In this modern era, communication media is an important element in building relationship. The progress of communication media has been made enormous gains. Morse code which is also one of communication media often used in various fields, but nowadays as time goes on the use of Morse Code is less attractive to the society. Based on it then the user made a program so the notebook can be recognize image in the form of blips so it can be recognize the Morse Code. The process of recognizing Morse Code conducted by real time with webcam and notebook. The generating system that has been made could be described based on the sequence of black and white image that flashing alternately. That imagery is the character of Morse Code. These are the sequence of Morse Code recognizing process: recording of light image blips with webcam, preprocessing, and decoding. Generating system and Morse Code recognizing utilizes notebook to process system. Furthermore, the process involves a programming language uses GUI that available in those matlab. The result of recognition system is a system that can recognize Morse Code in accordance design. Based on experiment that has been done, known that the maximum bounds is 700 cm and and limit angel of inclination between notebook 1 and 2 can recognize the Morse Code.
Keywords: The image of blips light, encoding and decoding, generating and recognizing Morse Code
(13)
xi
KATA PENGANTAR
Puji syukur dan terima kasih saya ucapkan kepada Tuhan Yesus Kritus atas segala penyertaan dan pendampingan selama proses penyelesaian skripsi ini sehingga dapat terselesaikan dengan baik. Penulis menyadari bahwa skripsi ini dapat terselesaikan atas bantuan berbagai pihak, oleh karena itu dengan segala kerendahan hati, penulis ingin mengucapkan terima kasih kepada:
1. Ibu Paulina Heruningsih Prima Rosa, S.Si., M.Sc., selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma.
2. Bapak Petrus Setyo Prabowo, M.T., selaku Kepala Program Studi Teknik Elektro Universitas Sanata Dharma.
3. Bapak Dr. Linggo Sumarno, yang telah meluangkan waktunya untuk memberikan bimbingan, nasehat dan arahan selama proses penyusunan skripsi dari awal hingga akhir dengan penuh kesabaran. Semoga ilmu dari Bapak dapat saya jadikan bekal untuk masa depan.
4. Bapak Dr. Iswanjono dan ibu Wiwien Widyastuti, S.T., M.T., selaku dosen penguji yang telah memberikan masukkan, memberikan bimbingan dan saran dalam memperbaiki tugas akhir ini.
5. Ibu Ir. Theresia Prima Ari Setiyani, M.T., selaku Dosen Pembimbing Akademik yang senantiasa mendampingi saya dalam urusan akademik. Terima kasih banyak Bu prima atas masukan, nasehat, dan ilmunya. Semoga hal tersebut dapat bermanfaat bagi saya di masa depan.
6. Dosen-dosen Program Studi Teknik Elektro Universitas Sanata Dharma yang telah memberikan segala bekal ilmu pengetahuan tentang dunia elektro yang sangat bermanfaat dan menarik.
7. Seluruh staff Fakultas Sains dan Teknologi : Pak Tukija, Bu Sri, Pak Tri, Bu Titik dan Mba Yunita. Terima kasih atas segala bantuan dan pelayanan yang begitu ramah. Terima kasih telah bersedia direpotkan untuk urusan kuliah dan tidak pernah lelah menjawab pertanyaan yang mungkin tidak perlu dipertanyakan. Hehehe…
8. Seluruh staff laboratorium Program Studi Teknik Elektro: Pak Mardi, Pak Suryana, Pak Subrata, dan Pak Hardi. Terima kasih atas segala bantuan dan pelayanan yang begitu ramah. Terima kasih telah bersedia direpotkan untuk urusan membantu tugas
(14)
xii
alat pada saat perkuliahan dan menjawab setiap pertayaan dalam hal pembuatan tugas alat yang belum saya mengerti.
9. Bapak dan ibuku terkasih, kak Santi, dan kak Rosvita. Terima kasih atas doa yang tak pernah putus demi kelancaran studi saya, terutama Bapak dan Ibu yang tak pernah lelah membimbing dan menuntunku untuk menjadi garam dunia. Terima kasih kak Santi dan kak Rosvita yang telah memberi motivasi, meskipun dengan banyak perdebatan. Kalian berdua tetap kakak terbaik saya. Saya tak pernah berhenti mencintai Bapak, Ibu, kak Santi dan kak Rosvita. Teruslah menemaniku hingga akhir hayat. Saya sayang kalian semua.
10. Teman hidupku. Terima kasih karena selalu ada disaat suka maupun duka walupun banyak dukanya, dari awal pengerjaan skripsi ini hingga akhir. Terima kasih atas tawa bahagia dan tangis haru yang kita lewati bersama. Jangan pernah lelah untuk tetap tersenyum dan memperbaiki diri. Jangan pernah patah semangat untuk mengejar mimpimu karena Tuhan selalu ada besertamu. Maaf jika selama ini saya terlalu banyak mengeluh, minta mengubah sikap sesuai keinginanku dan merepotkanmu. Sekali lagi terima kasih.
11. Teman-teman dari awal masuk perkuliahan hingga saat menyelesaikan tugas akhir ini Yugo, Yoel, Adit, Heri, Ita, Monic, Agi. Terima kasih karena telah menjadi bumbu kehidupan yang sangat bermakna. 4 tahun yang kita lewati bersama tidak akan pernah saya lupakan. Terima kasih atas canda tawa, semangat, kritik, dan saran yang teman-teman berikan. Semoga teman-teman-teman-teman segera menggapai mimpi teman-teman-teman-teman.
12. Seluruh teman-teman jemari yang selalu ada untuk memberi semangat. Tanpa kalian, saya tidak akan se-semangat ini dalam mengerjakan skripsi. Saya tidak akan menyebutkan satu persatu tapi percayalah bahwa kalian akan selalu ada dihati saya. Terima kasih telah mengajarkan saya tentang arti persahabatan yang sesungguhnya. Teruslah menjadi inspirasi bagi banyak orang dan tetaplah menjadi sumber bagi banyak senyum. Terima kasih, sekali lagi.
13. Teman-teman angkatan 2011 Teknik Elektro. Terima kasih yang telah memberikan semangat pada saat menempuh pendidikan di Universitas Sanata Dharma.
(15)
xiii
14. Semua pihak yang tidak dapat disebutkan satu persatu atas semua dukungan yang telah diberikan dalam penyelesaian tugas akhir ini.
(16)
xiv
DAFTAR ISI
HALAMAN JUDUL ... i
HALAMAN PERSETUJUAN DOSEN PEMBIMBING ... iii
HALAMAN PENGESAHAN SKRIPSI ... iv
PERNYATAAN KEASLIAN KARYA ... v
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ... vi
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ... viii
INTISARI ... ix
ABSTRACT ... x
KATA PENGANTAR ... xi
DAFTAR ISI ... xiv
DAFTAR TABEL ... xvii
DAFTAR GAMBAR ... xviii
DAFTAR LAMPIRAN ... xx
BAB I PENDAHULUAN ... 1
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 ... 5
2.1. Kode Morse ... 5
2.2. Webcam ... 6
2.3. Citra ... 7
2.3.1. Definisi Citra ... 7
2.3.2. Pengolahan Citra ... 7
(17)
xv
BAB III PERANCANGAN PEMBANGKIT DAN PENGENAL KODE MORSE
BERBASIS CITRA ... 12
3.1. Sistem Keseluruhan Pembangkit dan Pengenal Kode Morse Berbasis Citra ... 12
3.2. Sistem Pembangkit dan Pengenal Kode Morse Berbasis Citra ... 14
3.3. Webcam ... 15
3.4. Proses Pembangkit Kode Morse ... 15
3.4.1. Masukan Kata (Teks)... 16
3.4.2. Pembangkit Citra Kode Morse ... 16
3.4.3. Citra berupa Cahaya Kedap-kedip ... 16
3.5. Proses Pengenal Kode Morse ... 16
3.5.1. Citra berupa Cahaya Kedap-kedip ... 17
3.5.2. Rekaman ... 17
3.5.3. Preprocessing ... 12
3.5.4. Decoding ... 18
3.5.5. Kata (Teks) ... 18
3.6. Perancangan Tampilan GUI Matlab ... 18
3.7. Perancangan Alur Program ... 20
BAB IV HASIL DAN PEMBAHASAN ... 29
4.1. Pengujian Program dan Tampilan Program Pembangkit Pengenal Kode Morse Berbasis Citra ... 29
4.2. Penjelasan Program ... 33
4.2.1. Pembangkit Kode Morse ... 33
4.2.2. Pengenalan Kode Morse ... 37
4.3. Pengujian dan Analisis Hasil Pengenalan Kode Morse ... 48
4.3.1. Pengujian Pengenalan Variasi Jarak ... 48
(18)
xvi
BAB V KESIMPULAN DAN SARAN ... 53
5.1. Kesimpulan ... 53
5.2. Saran ... 53
Daftar Pustaka ... 54
(19)
xvii
DAFTAR TABEL
Tabel 3.1. Spesifikasi Webcam Logitech c1701 ... 15
Tabel 3.2. Keterangan Tampilan Utama Sistem ... 19
Tabel 3.3. Look Up Table Deteksi Jumlah Nol ... 26
Tabel 3.4. Look Up Table Deteksi Jumlah Satu ... 26
Tabel 4.1. Pengujian Kode Morse ... 49
Tabel 4.2. Pengujian Kode Morse Dengan Jarak 100cm ... 51
(20)
xviii
DAFTAR GAMBAR
Gambar 2.1. Webcam Logitech c170 ... 6
Gambar 2.2. Pengaturan Citra RGB ... 9
Gambar 2.3. Intensitas Grayscale ... 9
Gambar 2.4. Citra Grayscale yang Diubah Menjadi Nilai Matriks ... 10
Gambar 2.5. Contoh Gambar Citra Biner ... 11
Gambar 3.1. Sistem Keseluruhan Pembangkit dan Pengenal Kode Morse Berbasis Citra . 13 Gambar 3.2. Blok Diagram Sistem Pembangkit dan Pengenalan Kode Morse Berbasis Citra ... 14
Gambar 3.3. Blok Diagram Proses Pembangkit Kode Morse ... 16
Gambar 3.4. Blok Diagram Proses Pengenalan Kode Morse ... 16
Gambar 3.5. Blok Diagram Proses Rekaman ... 17
Gambar 3.6. Blok Diagram Proses Preprocessing ... 17
Gambar 3.7. Blok Diagram Proses Decoding ... 18
Gambar 3.8. Tampilan Utama Sistem Pembangkit Kode Morse ... 19
Gambar 3.9. Tampilan Utama Sistem Pengenal Kode Morse ... 21
Gambar 3.10.Diagram Alir Utama Pembangkit Kode Morse ... 22
Gambar 3.11.Diagram Alir Utama Pengenal Kode Morse ... 23
Gambar 3.12.Diagram Alir Rekaman ... 25
Gambar 3.13.Diagram Alir Pemrosesan Citra (Preprocessing) ... 26
Gambar 3.14.Diagram Alir Decoding ... 27
Gambar 4.1. Icon Matlab R2012a ... 29
Gambar 4.2. Tampilan Matlab ... 30
Gambar 4.3. Tampilan Program Pembangkit Kode Morse ... 31
Gambar 4.4. Tampilan Pengenal Kode Morse ... 31
(21)
xix
Gambar 4.6. Tampilan Hasil Pengenal Kode Morse ... 32
Gambar 4.7. Program Tampilan Citra Berupa Cahaya Kedap-kedip ... 33
Gambar 4.8. Program Look Up Table Kode Morse ... 34
Gambar 4.9. Program Kode Karakter ... 36
Gambar 4.10.Program Rekaman Kode Morse... 38
Gambar 4.11.Program Penentuan Koordinat Autocropping ... 39
Gambar 4.12.Program Ekstrak Frame ... 41
Gambar 4.13.Program RGB ke Gray ... 41
Gambar 4.14.Program Histogram Proyeksi Vertikal ... 42
Gambar 4.15.Program Average Filtering ... 42
Gambar 4.16.Program Downsampling ... 42
Gambar 4.17.Program Thresholding ... 43
Gambar 4.18.Program Deteksi Jumlah Nol ... 44
Gambar 4.19.Program Deteksi Jumlah Satu ... 45
Gambar 4.20.Program Decoding Tahap Dua ... 46
Gambar 4.21.Program Tombol Reset ... 47
(22)
xx
DAFTAR LAMPIRAN
Lampiran 1 ... L1 Lampiran 2 ... L2 Lampiran 3 ... L5 Lampiran 4 ... L9 Lampiran 5 ... L11 Lampiran 6 ... L13 Lampiran 7 ... L25
(23)
1
BAB I
PENDAHULUAN
1.1.
Latar Belakang
Di zaman modern saat ini, alat komunikasi merupakan salah satu unsur penting dalam membangun relasi.Perkembangan alat komunikasi pun mengalami kemajuan yang sangat pesat. Kode morse yang juga merupakan salah satu media komunikasi dahulu sering digunakan di berbagai bidang, namun seiring berjalannya waktu penggunaan kode morse pun kurang diminati masyarakat.
Pengiriman berita yang digunakan dalam komunikasi berawal dari penggunaan kode morse yang digunakan pada kegiatan kepramukaan [1]. Pada zaman dahulu, masyarakat melakukan komunikasi jarak jauh dengan menggunakan kode morse dimana berita disampaikan dengan bantuan sejumlah media berupa asap, bunyi klakson, sinar lampu, hingga arus listrik analog maupun digital. Hal ini dilakukan untuk menggantikan isyarat Samaphore (isyarat yang menggunakan dua buah bendera) sebagai media penyampaian berita [2]. Dalam hal ini, pemakaian Samaphore hanya bisa sebatas pandangan mata saja. Penyampaian pesan melalui kode dimaksudkan agar orang lainyang tidak berkepentingan tetap mendapat pesan namun tidak dapat memahami pesan tersebut. Sejak saat itu dikenallah sistem kode [2].
Sistem kode yang pertama kali dipakai diseluruh dunia adalah kode morse. Penggunaan kode morse yang sering digunakan selama ini biasanya terdiri dari garis “
▬
”dan titik “●”. Penyampaiannya bisa dilakukan melalui cahaya maupun bunyi dimana sela
waktu yang singkat disimbolkan dengan titik “●” dan sela waktu yang sedikit lama disimbolkan dengan garis “
▬
” [3].Satuan sela waktu kemudian disebut saat perbandingan 1:3 (satu untuk titik “●” dan tiga untuk garis “▬
”). Kode morse mempunyai peranan penting dalam berbagai bidang yang digunakan untuk keperluan tertentu atau kebutuhan vital lainnya yang berhubungan dengan kode morse. Namun pada kenyataannya, mempelajari kode telegrafi atau kode morse sama dengan mempelajari bahasa baru, yaitu bahasa sandi. Bila diperhatikan, kode telegrafi ini sesungguhnya adalah bahasa suara yang terdiri dari berbagai kombinasi antara nada pendek dan nada panjang yang selanjutnya(24)
menjadi huruf, angka dan tanda baca, sehingga bagi para pemula yang ingin belajar kode morse tidak mudah dan membutuhkan waktu yang cukup panjang untuk dapat menginterpretasikan kode morse ke dalam karakter (huruf, angka dan tanda baca).
Banyaknya sumber daya manusia dan berbagai bidang yang membutuhkan penggunaan kode morse di Indonesia mendorong perlunya perangkat penunjang untuk meringankan pekerjaan manusia. Dengan kemudahan dan keefisienan waktu yang didapat dari perangkat penunjang tersebut, secara otomatis akan memberi kemudahan bagi masyarakat untuk lebih mengoptimalkan kemampuan mereka dalam bidang atau keperluan tertentu yang berhubungan dengan kode morse. Pentingnya peran kode morse pada berbagai bidang juga mendorong masyarakat untuk belajar dan menguasai kode morse dalam waktu yang singkat.
Pada dasarnya tidak banyak peneliti yang tertarik untuk mengembangkan alat yang berkaitan dengan kode morse, namun hal tersebut menjadi motivasi bagi penulis. Perkembangan teknologi juga menjadi salah satu faktor meningkatnya rasa keingintahuan masyarakat tentang penggunaan kode morse di berbagai bidang. Hal ini sesuai dengan beberapa hasil observasi yang menyatakan bahwa penggunaan kode morse kini mulai kembali diminati, sehingga dibutuhkan tenaga ahli yang mengembangkannya dan disesuaikan dengan teknologi yang ada. Dalam hal ini, penulis mengembangkan kode morse berbasis citra.
1.2.
Tujuan dan Manfaat Penelitian
Tujuan dari penulisan tugas akhir ini adalah untuk menghasilkan pembangkit dan pengenal kode morse berbasis citra. Secara lebih rinci, tujuan dari pembuatan alat ini adalah untuk menghasilkan variasi sistem pengiriman dan penerimaan dalam komunikasi, jarak jauh.
Penelitian ini diharapkan dapat bermanfaat bagi masyarakat yang ingin mengenal dan mempelajari kode morse secara lebih detil. Selain itu, penelitian ini juga diharapkan dapat menarik minat masyarakat terhadap penggunaan kode morse berbasis citra.
1.3.
Batasan Masalah
Sistem pembangkit dan pengenalan kode morse berbasis citra terdiri dari perangkat keras (hardware) dan perangkat lunak (software). Hardware yang digunakan berupa
(25)
webcam, sedangkan software yang digunakan adalah matlab. Matlab digunakan untuk mengatur seluruh proses pembangkit dan pengolahan data yang dicuplik oleh webcam.
Pada perancangan sistem ini, fokus pengerjaan pada pembuatan software komputer untuk memproses pembangkit dan pengenal sedangkan untuk hardware berupa webcam dengan merk Logitech C170. Berikut beberapa batasan masalah pada perancangan ini:
a. Masukkan data berasal dari display citra putih dan citra hitam pada laptop 1 dengan ukuran 14 inci.
b. Menggunakan webcam merk Logitech seri C170 yang diletakkan diatas laptop 2. c. Posisi laptop 1 sebagai pembangkit kode morse berhadapan dengan laptop 2
sebagai pengenal kode morse.
d. Intensitas cahaya sesuai dengan cahaya lampu yang terdapat di laboratorium TA. e. Laptop 1 dan laptop 2 untuk pengujian akan menggunakan variasi jarak.
f. Variasi sudut kemiringan antara 90° hingga -90°.
g. Pengambilan citra menggunakan webcam dengan waktu rekaman 1 menit. h. Proses bersifat realtime.
i. Menggunakan encoding dan decoding dengan display citra gelap dan citra terang yang ditampilkan secara bergantian berupa cahaya kedap-kedip sebagai pembangkit dan pengenal kode morse.
j. Pembangkit dan pengenalan kode morse berbasis citra ini dibuat dengan menggunakan software pemrograman matlab R2012a.
k. Keluarannya berupa satu kata kode morse huruf “A”–“Z” di layar monitor.
1.4.
Metodologi Penelitian
Berikut langkah-langkah pengerjaan tugas akhir: a. Studi literature
Pengumpulan bahan-bahan referensi berupa buku-buku dan jurnal-jurnal ilmiah mengenai pengenalan suatu objek, pemrograman matlab, encoding dan decoding.
b. Perancagan subsistem perangkat lunak
Perancangan subsistem software dan hardware. Tahap ini bertujuan untuk mencari bentuk model yang optimal dari sistem yang akan dibuat dengan mempertimbangkan berbagai faktor-faktor permasalahan dan kebutuhan-kebutuhan yang ditentukan.
(26)
c. Pembuatan subsistem perangkat lunak
Pembuatan subsistem software dan hardware. Sistem akan bekerja apabila user mengetikkan kata (teks) pada laptop 1 dan laptop 2 yang ditampilkan dalam tampilan visual yang disediakan dalam software. Setelah itu, sistem akan membangkitkan kode morse dengan display citra gelap dan citra terang yang secara bergantian yakni berupa cahaya kedap-kedip pada laptop 1, kemudian pada laptop 2 sistem akan melakukan pengenalan kode morse yang akan dilakukan dengan merekam citra gelap dan citra terang yang secara bergantian yakni berupa cahaya kedap-kedip menggunakan webcam. Setelah itu, matlab akan melakukan proses pengolahan video yang sudah direkam oleh webcam dan ditampilkan berupa kata pada layar monitor.
d. Analisa dan kesimpulan
Analisa data dilakukan dengan meneliti encoding dan decoding untuk pembangkit dan pengenal kode morse. Simbol kode morse titik dan garis merupakan kode biner 1 sebagai citra berupa cahaya putih sedangkan spasi antar putih dan spasi antar huruf kode biner 0 sebagai citra berupa cahaya hitam. Laptop 1 akan mengeluarkan cahaya kedap-kedip dan selanjutnya dikonversi oleh laptop 2 yang berfungsi sebagai pengenal. Proses tersebut diawali dengan memasukkan kata (teks) dan kemudian akan menghasilkan keluaran berupa kata (teks) pula.
(27)
5
BAB II
DASAR TEORI
2.1.
Kode Morse
Kode Morse adalah sistem representasi huruf, angka, dan tanda baca dengan menggunakan sinyal kode. Kode Morse diciptakan oleh Samuel F.B. Morse dan Alfred Vail pada tahun 1835 [4]. Pada dasarnya kode morse merupakan metode komunikasi jarak jauh. Kode Morse juga digunakan dan dipelajari dalam dunia kepramukaan atau kepanduan. Dalam dunia keperamukaan kode morse disampaikan menggunakan senter atau peluit pramuka [5]. Kode Morse dapat disampaikan dengan cara menghidupkan citra berupa cahaya putih untuk mewakili garis dan titik serta citra berupa cahaya hitam untuk spasi atau jeda antar karakter. Untuk menghafalkan kode ini digunakan metode yang mengelompokkan huruf-huruf berdasarkan bagaimana huruf ini diwakili oleh kode morsenya. Pengelompokan tersebut antara lain Alphabet dengan kode morse yang berkebalikan antara titik dan garis. Misalnya huruf K diwakili
▬●▬
berkebalikan dengan huruf R diwakili●▬●
[5].
Tanda-tanda morse menyimbolkan huruf-huruf, angka-angka dan sebagainya dan diungkapkan dalam tanda-tanda dasar yang berupa “TITIK-TITIK” (“PENDEK
-PENDEK”) dan “GARIS-GARIS” (“PANJANG-PANJANG”) diisyaratkan secara tunggal
atau secara kombinasi [6].
Tentang waktu pengirimnya, hendaknya memperhatikan dengan sungguh tentang
perimbangan jeda antara “TITIK” (“PENDEK”), “GARIS” (“PANJANG”), antara
“TITIK” dan “GARIS” atau antara karakter morse, antara jeda dengan karakter yang lain
atau antara huruf, serta jeda antara kata pertama dan kata selanjutnya. Perimbangan jeda dalam kode morse digunakan satuan “unit” [7].
Adapun ketentuan perimbangan waktu yang dimaksudkan itu adalah sebagai berikut:
a. “TITIK” atau “PENDEK” adalah 1 unit
b. “GARIS” atau “PANJANG” adalah 3 unit
c. Antara “ TITIK” dan “GARIS” atau antara karakter Morse adalah 1 unit.
Misalnya untuk menampilkan kode Morse A, yaitu: A= ●▬
(28)
d. Antara jeda dengan karakter yang lain atau antara huruf adalah 3 unit. Misalnya: U S A
e. Jeda antara kata pertama dan kata kedua adalah 7 unit. Misalnya:
KODE MORSE
Kelima ketentuan tersebut di atas merupakan pewaktuan yang dipergunakan dalam pembuatan pembaca kodemorse agar dapat menjadi sebuah huruf atau angka atau menjadi sederetan kata [7].
2.2.
Webcam
Webcam adalah sebuah kamera video digital kecil yang dihubungkan ke komputer melalui port USB. Sebuah webcam yang sederhana terdiri dari sebuah lensa standar, dipasang di sebuah papan sirkuit untuk menangkap sinyal gambar; casing (cover), termasuk casing depan dan casing samping untuk menutupi lensa standar dan memiliki sebuah lubang lensa di casing depan yang berguna untuk memasukkan gambar, video, kabel support, yang dibuat dari bahan yang fleksibel. Salah satu ujungnya dihubungkan dengan papan sirkuit dan ujung lainnya memiliki connector, kabel ini dikontrol untuk menyesuaikan ketinggian, arah dan sudut pandang webcam. Sebuah webcam biasanya dilengkapi dengan software, software ini mengambil gambar dari kamera digital secara terus menerus atau pun dalam interval waktu tertentu dan menyiarkannya melalui koneksi internet [8]. Contoh gambar webcam dapat dilihat pada Gambar 2.1.
(29)
2.3.
Citra
2.3.1. Definisi CitraCitra adalah gambar dua dimensi yang dihasilkan dari gambar analog dua dimensi yang kontinus menjadi gambar diskrit melalui proses sampling. Gambar analog dibagi menjadi N baris dan M kolom sehingga menjadi gambar diskrit. Persilangan antara baris dan kolom tertentu disebut juga dengan piksel. Contohnya adalah gambar/titik diskrit pada baris n dan kolom m disebut dengan piksel [n,m] [9].
Definisi lain dari citra menurut kamus Webster adalah “suatu representasi, kemiripan, atau imitasi dari suatu objek atau benda”. Secara harafiah, citra (image) adalah gambar pada bidang dwimatra (dua dimensi). Sedangkan ditinjau dari sudut pandang matematis, citra merupakan fungsi menerus (continue) dari intensitas cahaya pada bidang dwimatra. Sumber cahaya menerangi objek, objek memantulkan kembali sebagian dari berkas cahaya tersebut. Pantulan cahaya ini ditangkap oleh alat-alat optik, misalnya mata pada manusia, kamera pemindai (scanner), dan sebagainya, sehingga bayangan objek yang disebut citra tersebut terekam [10].
2.3.2. Pengolahan Citra
Pengolahan citra adalah kegiatan memperbaiki kualitas citra agar mudah diinterpretasi oleh manusia/mesin (komputer). Inputannya adalah citra dan keluarannya juga citra tapi dengan kualitas lebih baik dari pada citra masukan. Misal citra warnanya kurang tajam, kabur (blurr), mengandung noise (misal bintik-bintik putih), dll sehingga perlu ada pemrosesan untuk memperbaiki citra karena citra tersebut menjadi sulit diinterpretasikan karena informasi yang disampaikan menjadi berkurang.
Teknik-teknik pengolahan citra mentrasformasikan citra menjadi citra lain. Jadi, masukkannya adalah suatu citra dan keluarannya juga citra, namun citra keluaran mempunyai kualitas lebih baik dari pada citra masukkan [10].
2.3.3. Citra Digital
Citra (image) merupakan fungsi continue dari intensitas cahaya bidang dua dimensi. Secara matematis fungsi intensitas cahaya pada bidang dua dimensi dinotasikan sebagai f(x,y), dimana (x,y) merupakan koordinat pada bidang dua dimensi dan f(x,y) merupakan intensitas cahaya pada bidang dua dimensi [11].
(30)
Sedangkan menurut Darma [12] citra digital adalah citra kontinu yang diubah dalam bentuk diskrit, baik koordinat ruang maupun itensitas cahayanya. Pengolahan digitalisasi terdiri dari dua proses, yaitu pencuplikan (sampling) posisi, dan kuantisasi intensitas. Citra digital dapat dinyatakan dalam matriks dua dimensi f(x,y) dimana ‘x’ dan
‘y’ merupakan koordinat piksel dalam matriks dan ‘f’ merupakan derajat intensitas piksel
tersebut. Citra digital berbentuk matriks dengan ukuran M × N akan tersusun sebagai berikut:
� , =
[
� , � , � . … � , − � , � , � , … � , − � , � , � , … � , −
. . . . . : ∶ ∶ ∶ ∶ � − , � − , � − , … � − , −
]
(2.1)
Suatu citra f(x,y) dalam fungsi matematis dapat dituliskan sebagai berikut:
0≤x≤M-1
0≤y≤N-1
0≤f(x,y)≤G-1
Dimana :
M= banyaknya baris pada array citra N= banyaknya kolom pada array citra G= banyaknya skala keabuan (graylevel)
Interval (0,G) disebut skala keabuan (grayscale). Besar G tergantung pada proses digitalisasinya. Biasanya keabuan 0 (nol) menyatakan intensitas hitam dan G menyatakan intensitas putih untuk citra 8 bit, nilai G sama dengan 8 = warna (derajat keabuan) [12].
a. RGB
Suatu citra biasanya mengacu ke citra RGB. Sebenarnya bagaimana citra disimpan dan dimanipulasi dalam komputer diturunkan dari teknologi televisi, yang pertama kali mengaplikasikannya untuk tampilan grafis komputer. Jika dilihat dengan kaca pembesar, tampilan monitor komputer akan terdiri dari
(31)
sejumlah triplet titik warna merah (RED), hijau (GREEN) dan biru (BLUE). Tergantung pada pabrik monitornya untuk menentukan apakah titik tersebut merupakan titik bulat atau kotak kecil, tetapi akan selalu terdiri dari 3 triplet red, green dan blue.
Citra dalam komputer tidak lebih dari sekumpulan sejumlah triplet dimana setiap triplet terdiri atas variasi tingkat keterangan (brightness) dari elemen red, green dan blue. Representasinya dalam citra, triplet akan terdiri dari 3 angka yang mengatur intensitas dari Red (R), Green (G) dan Blue (B) dari suatu triplet. Setiap triplet akan merepresentasikan 1 pixel (picture element) dari suatu triplet. Setiap triplet dengan nilai 67, 228 dan 180 berarti akan mengeset nilai R ke nilai 67, G ke nilai 228 dan B ke nilai 180. Angka-angka RGB ini yang seringkali disebut dengan color values. Pada format bmp, citra pixel pada citra direpresentasikan dengan 24 bit, 8 bit untuk R, 8 bit untuk G dan 8 bit untuk B [13]. Pengaturan citra RGB dapat dilihat pada gambar 2.2.
Gambar 2.2. Pengaturan Citra RGB [13]
b. Citra Grayscale
Citra dikatakan sebagai citra grayscale apabila sebuah citra tidak memiliki warna RGB atau dapat dikatakan sebuah citra yang memiliki mulai dari putih yang memiliki intensitas paling besar sampai hitam yang memiliki intensitas paling rendah seperti yang dapat dilihat pada gambar 2.3. Citra Grayscale terdiri dari x dan y dalam spesial koordinat dan memiliki nilai intensitasnya masing-masing. Pada citra grayscale setiap gambar memiliki intensitas antara 0 (hitam) hingga 255 (putih) dalam citra bitnya [14].
(32)
Gambar 2.4.Citra grayscale yang diubah menjadi nilai matriks [15]
Dengan algoritma perhitungan tingkat keabuan, piksel dari suatu citra yang mengandung warna-warna RGB (red, green dan blue kemudian dibagi tiga sehingga didaptkan nilai rata-rata dari ketiga warna [14].
� =
�+�+�3 (2.2)
c. Citra Biner (Binary Images)
Dalam sebuah citra biner, setiap pixel hanya mempunyai dua kemungkinan nilai, seperti on dan off . Sebuah citra biner disimpan dalam matriks dengan nilai 0 (off) dan 1 (on). Sebuah citra biner dapat dianggap sebagai tipe khusus dari citra intensitas yang hanya berisi hitam dan putih. Selain itu, kita juga dapat menyatakan sebagai citra ber-indeks dengan hanya dua warna.
Sebuah citra biner dapat disimpen dengan tipe double atau unit8 (kakas pengolahan citra pada matlab tidak mendukug citra biner bertipe unit 16). Sebuah array bertipe unit8 menggunakan lebih sedikit memori [16]. Di bawah ini adalah Gambar 2.5. Contoh citra biner.
(33)
(34)
12
BAB III
PERANCANGAN PEMBANGKIT DAN PENGENAL
KODE MORSE BERBASIS CITRA
Dalam perancangan pembangkit dan pengenal kode morse berbasis citra, diperlukan acuan untuk membuatnya. Karena itu penulis memulai dengan membuat diagram kotak sebagai gambaran untuk pembuatannya. Setelah diagram kotak dibuat, penulis mulai membuat program pembangkit dan pengenal kode morse berbasis citra dengan software matlab. Penulis membutuhkan diagram alir yang biasa disebut dengan flow chart. Flow chart tersebut digunakan untuk memberi kemudahan serta menghindari kesalahan yang mungkin terjadi dalam proses pembuatan program ini. Fungsi dari flow chart benar-benar akan terlihat jika penulis atau disebut juga programmer melakukan kesalahan dalam membuat program tersebut. Jadi, dapat disimpulkan bahwa flow chart memiliki peran vital.
Dalam perancangan pembangkit dan pengenal kode morse berbasis citra, penulis juga menggunakan webcam C170 yang dihubungkan dengan komputer menggunakan port USB komputer. Webcam ini digunakan sebagai penangkap kode morse berbasis citra berupa terang dan gelap dengan proses merekam menggunakan software matlab yang berbentuk file avi.
3.1.
Sistem Keseluruhan Pembangkit dan Pengenal Kode Morse
Berbasis Citra
Sistem keseluruhan pembangkit dan pengenal kode morse berbasis cahaya secara umum dapat digambarkan sebagai berikut:
(35)
Gambar 3.1. Sistem keseluruhan pembangkit dan pengenal kode morse berbasis citra
Berikut penjelasan mengenai sistem keseluruhan (Gambar 3.1.). Pertama, pengguna yang menjalankan program ini, dapat memasukkan kata melalui program matlab dan membangkitkan citra berupa cahaya menggunakan software matlab memalui laptop 1. Dalam hal ini, pengguna membangkitkan citra berupa cahaya terang dan gelap menggunakan program matlab yang mengirim kode morse berupa citra berbentuk cahaya dengan kombinasi antara putih dan hitam. Pengguna memasukkan kata untuk mendapatkan keluaran data berbentuk cahaya yang diinginkan.
Pada proses pengolahan data oleh laptop 1 (bagian program matlab), program akan memproses kata yang dimasukkan oleh pengguna. Pengolahan kata tersebut akan menghasilkan kode morse dalam bentuk cahaya yang merupakan kombinasi tampilan hitam dan putih, sedangkan proses pengolahan data oleh laptop 2 akan mengenali cahaya (kombinasi tampilan hitam dan putih) yang menghasilkan kata (teks) kode morse yang diinginkan.
(36)
3.2.
Sistem Pembangkit dan Pengenal Kode Morse Berbasis Citra
Blok sistem pembangkit dan pengenal kode morse berbasis citra secara keseluruhan diperlihatkan pada Gambar 3.2.
Gambar 3.2. Blok diagram sistem pembangkit dan pengenalan kode morse berbasis citra
Sistem pembangkit dan pengenal kode morse berbasis citra terdiri dari software pada laptop yang berfungi sebagai user interface dalam proses pembangkit dan pengenal sandi morse berbasis citra. Software dibuat menggunakan program matlab yang berperan sebagai pusat pengaturan semua proses pembangkit dan pengenalan kode morse berbasis citra, seperti merekam cahaya morse dan mengenali cahaya morse yang terekam. Perekaman cahaya dilakukan oleh laptop memalui webcam. Berikut penjelasan mengenai diagram Blok (Gambar 3.2.):
a. Laptop 1
Laptop 1 pada pembangkit kode morse berbasis citra ini berguna untuk mengkodingkan kata (teks) kode morse yang menghasilkan citra berupa cahaya (putih dan hitam). Dalam proses pengkodingan kata morse ini menggunakan software matlab.
b. Webcam
Webcam yang digunakan adalah Logitech C170. Webcam berfungsi untuk merekam kode morse yang berupa citra berupa cahaya putih dan hitam dengan
(37)
menyalurkan ke port USB pada laptop 2 dengan proses merekam menggunakan software matlab.
c. Laptop 2
Laptop 2 pada pengenalan kode morse berbasis citra ini berguna untuk merekam kode morse yang dikirimkan dari laptop 1 yang berupa citra (putih dan hitam). Perekaman tersebut dilakukan dengan webcam yang menggunakan software matlab dan menghasilkan file avi, dari file avi ini melakukan proses dalam pengenalannya yang menghasilkan kata (teks) sebagai keluarannya.
3.3.
Webcam
Webcam yang digunakan dalam proses pengenalan kode morse adalah webcam dengan merk Logitech seri c170. Gambar terdapat pada BAB II. Webcam ini juga memiliki software pendukung seperti zoom in dan zoom out sehingga dapat mempermudah pengguna dalam melakukan pengaturan memalui laptop. Proses pengambilan citra kode morse menggunakan resolusi 320x240 piksel. Spesifikasi webcam dapat di lihat pada tabel 3.1.
Tabel 3.1. Spesifikasi Webcam Logitech c170
High definition video (HD) HD 170
Photo Quality 5 Megapixel
Video Quality VGA
Focus Type Always Focused
Auto light Correction -
Built-in mic Yes
3.4.
Proses Pembangkit Kode Morse
Proses pembangkit kode morse ini adalah proses citra berupa cahaya kedap-kedip dengan bentuk cahaya hitam dan putih yang diproses pada laptop 1 dan dikirim untuk dikenali kode morsenya. Tahap yang akan dilakukan dalam proses ini terdiri dari masukan kata (teks), proses pembangkit citra berupa cahaya kode morse, dan keluaran cahaya kedap-kedip dapat dilihat pada gambar 3.3.
(38)
Gambar 3.3. Blok diagram proses pembangkit kode morse
3.4.1. Masukan Kata (Teks)
Tahap pertama yang dilakukan pada proses ini adalah memasukkan kata (teks). User dapat memasukkan kata menggunakan laptop 1.
3.4.2. Pembangkit Citra Kode Morse
Proses pembangkit citrakode morse ini akan dilakukan dengan menggunakan laptop 1. Proses pembangkit kode morse ini berguna untuk menampilkan citra berupa cahaya hitam dan putih dengan menggunakan matriks 0 sebagai hitam dan matriks 1 sebagai putih. Dalam proses pembangkit kode morse ini menyamakan dengan look up table (lampiran 1) sebagai kode morsenya.
3.4.3. Citra berupa Cahaya Kedap-kedip
Proses pembangkit kode morse ini menampilkan citra berupa cahaya kedap-kedip yang merupakan hasil keluaran dari laptop 1 yang selanjutnya akan di proses pada laptop 2 sebagai proses pengenalan kode morse.
3.5.
Proses Pengenal Kode Morse
Proses pengenalan kode morse ini adalah proses alat stasioneri yang diambil atau direkam agar kode morsenya dapat dikenali. Tahap yang akan dilakukan dalam proses ini terdiri dari input citra berupa cahaya kedap-kedip, rekaman, preprocessing, decoding, dan output kata (teks) dapat dilihat pada gambar 3.4.
Gambar 3.4. Blok diagram proses pengenalan kode morse Pembangkit citra
kode morse
Citra berupa cahaya kedap-kedip Masukan kata
(teks)
Rekaman Preprocessing Decoding kata
(teks) Citra berupa
(39)
3.5.1. Citra berupa Cahaya Kedap-kedip
Citra berupa cahaya kedap-kedip ini merupakan cahaya kode morse yang di tampilkan pada laptop 1 yang sebagai awal untuk melakukan proses selanjutnya.
3.5.2. Rekaman
Tahap rekaman ini akan diambil menggunakan webcam dan kode morse yang direkam oleh webcam akan disimpan dalam format avi. Proses tersebut dapat dilihat pada gambar 3.5.
Gambar 3.5. Blok diagram proses rekaman 3.5.3. Preprocessing
Tahap ini terdiri dari input file avi, penentuan koordinat autocropping, ekstrak frame, cropping, RGB ke Gray, histogram proyeksi vertical, average filtering, downsampling, thresholding, dan kode biner sebagai keluarannya. Proses preprocessing dapat dilihat pada gambar 3.6. Tahap ini bertujuan untuk mempersiapkan citra yang akan dilakukan decoding agar selanjutnya dapat dilakukan proses berikutnya.
Gambar 3.6. Blok diagram proses preprocessing
Rekaman File avi Citra berupa
cahaya kedap-kedip
Ekstrak frame RGB ke Gray
Downsampling Thresholding
histogram proyeksi vertical
Autocropping
File avi
Kode biner
Penentuan koordinat autocropping
(40)
3.5.4. Decoding
Proses decoding bertujuan untuk mengubah kode morse yang direkam melalui webcam sebelumnya. Hasil dari proses decoding ini adalah kata(teks)yang merupakan hasil akhir dari proses pengenalan kode morse. Proses decoding dapat dilihat pada Gambar 3.7, sedangkan untuk proses decoding yang lebih terperinci dapat dilihat pada Gambar 3.13.
Gambar 3.7. Blok diagram proses decoding
3.5.5. Kata (teks)
Kata (teks) merupakan hasil terakhir pada proses pengenal kode morse. Pada tahap ini hasil dari proses decoding kode morse akan ditentukan berdasarkan look up table (lampiran 1).
3.6.
Perancangan Tampilan GUI Matlab
Tampilan utama untuk program pengenal kode morse dibuat dengan menggunakan GUI Matlab. Tampilan utama program pada GUI Matlab yang digunakan dalam penilitian ini ditunjukkan Gambar 3.8.
(41)
Gambar 3.8. Tampilan utama sistem pengenal kode morse
Tampilan utama program dibuat agar user dapat menggunakan sistem ini dengan mudah dan dapat mengerti hasil dari pengenal kode morse. Keterangan tampilan utama sistem pengenal kode morse ditunjukkan pada Tabel 3.3.
Tabel 3.2. Keterangan tampilan utama sistem
Nama Bagian Deskripsi
Tombol Terima Tombol ini digunnakan untuk memulai perekaman citra dari webcam
Tombol Selesai Tombol ini digunakan untuk mengakhiri program Tombol Reset Tombol ini digunakan mengembalikan ketampilan awal
program
Plot Camera Untuk menampilkan plot rekaman cahaya kedap-kedip kode morse pada webcam
Plot Sinyal Biner Untuk menampilkan plot hasil sinyal kotak dari perekaman citra kode morse
(42)
3.7.
Perancangan Alur Program
Tahap perancangan program pembangkit dan pengenalan kode morse berbasis citra ini dilakukan secara realtime yang akan dieksekusi pada user yang menjalankan program ini. Saat tampilan utama sudah terlihat, maka proses pembangkit dan pengenalan dapat dilakukan. Ketika program dijalankan maka akan mulai melakukan proses pembangkit cahaya kedap-kedip yang diproses melalui laptop 1. Setelah itu, pengenalan kode morse diproses melalui laptop 2 dengan melakukan proses perekaman dari webcam.
Pembangkit kode morse di proses pada laptop 1. Pada saat memasukkan kata (teks) maka program akan secara otomatis menyesuaikan dengan look up table (lampiran 1) sebagai kode karakter kode morse. Setelah mendapatkan huruf pada kata yang telah dimasukkan, maka program akan memproses huruf sesuai dengan kode karakter untuk menampilkan citra berupa cahaya hitam dan putih secara kedap-kedip sesuai dengan kode karakter pada huruf. Citra berupa cahaya hitam dan putih ini berupa matriks 0 dan matriks 1. Citra berupa cahaya putih ini diproses melalui kode karakter tiap huruf sedangkan citra berupa cahaya hitam ini diproses dengan spasi sinyal pada kode karakter tiap huruf, spasi antar huruf, dan spasi antar kata. Tampilan citra berupa cahaya putih dan hitam ini berupa kode biner 1 dan 0. Tampilan citra berupa cahaya putih berisi kode biner 1 dan cahaya hitam sendiri berisi kode biner 0.
Proses pembangkit citra berupa cahaya kode morse ini juga berupa pemberian kode karakter kode morse untuk ditampilkan dalam cahaya kedap-kedip. Tahap pemberian kode karakter ini menggunakan look up table (lampiran 1). Tahap ini memiliki tujuan untuk tampilan pembangkit kode morse dengan display pada cahaya hitam dan putih agar selanjutnya dapat mengirim untuk proses pengenalan kode morse selanjutnya. Hal ini dilakukan agar dapat mempermudah pengiriman kode morse untuk proses pengenalannya.
Karakter yang terdapat pada look up table (lampiran 1) ini adalah huruf berupa karakter yang terdiri dari pj sebagai panjang, pd sebagai pendek, ss sebagai spasi sinyal, sh sebagai spasi huruf, dan sk sebagai spasi kata. Adapun ketentuan perimbangan waktu yang dimaksudkan itu adalah “TITIK” atau “PENDEK” adalah 1 detik, “GARIS” atau
“PANJANG” adalah 3 detik, antara “ TITIK” dan “GARIS” atau antara karakter morse
adalah 1 detik. Antara jeda dengan karakter yang lain atau antara huruf adalah 3 detik. Jeda antara kata pertama dan kata kedua adalah 7 detik. Dalam look up table berupa kode morse pada huruf. Proses ini juga berupa simbol kode morse, dimana pj sebagai panjang berupa cahaya putih, pd sebagai pendek juga berupa cahaya putih, ss sebagai spasi sinyal berupa
(43)
cahaya hitam, sh sebagai spasi huruf berupa cahaya hitam, dan sk sebagai spasi kata berupa cahaya hitam. Alur program pembangkit kode morse ini dapat dilihat pada gambar 3.9.
Gambar 3.9. Diagram alir utama pembangkit kode morse
Pengenal kode morse ini diproses pada laptop 2. Alur pembuatan program pengenal kode morse ini melalui beberapa proses yaitu rekaman, preprocessing, dan decoding yang dapat dilihat pada gambar 3.10. Pada tahap perekaman atau pengambilan citra kode morse menggunakan webcam. Setelah proses record citra selesai dilakukan, selanjutnya citra yang didapat akan diproses melalui pemrosesan citra (preprocessing), dan citra tersebut akan di decoding. Pada proses decoding ini akan dilakukan pemrosesan kode biner ke kode karakter dengan mendeteksi jumlah nol dan deteksi jumlah satu. Decoding pada tahap pertama akan mendapatkan hasil kode karaktek. Proses selanjutnya akan di decoding tahap
Start
Pembangkit citra Kode morse
Stop Masukan: Kata (teks)
Keluaran: citra berupa cahaya kedap-kedip
(44)
ke dua dengan kode karakter ke kata(teks). Setelah hasil dari proses decoding pengenalan kode morse diperoleh, maka proses pengenalan kode morse selesai.
Gambar 3.10. Diagram Alir utama pengenal kode morse
Setelah proses pembangkit kode morse pada laptop 1, laptop 2 akan melakukan proses perekaman dan pengambilan citra kode morse yang dapat dilihat pada gambar 3.11. Saat menjalankan program maka webcam secara otomatis akan berstatus hidup atau sudah terkoneksi (terhubung) dengan program. Setelah camera hidup maka citra berupa cahaya kedap-kedip pada laptop 1 direkam untuk proses pengambilan citra. Untuk dapat
Start
Stop
Masukan: Citra berupa cahaya kedap-kedip
Keluaran: Kata (teks)
Rekaman
Preprocessing
(45)
mengambil citra pada laptop 1, User menjalankan proses rekaman. Proses pengambilan kode morse menggunakan webcam dilakukan dengan jarak. Jarak yang digunakan ini akan menghasilkan gambar yang fokus. Fokus yang digunakan pada webcam menggunakan fokus normal artinya pengaturan default yang sudah terpasang pada webcam.
Sebelum proses pengambilan kode morse menggunakan webcam, webcam harus dikomunikasikan dan diinisialisasi terlebih dahulu ke dalam program matlab yang dibuat. Proses inisialisasi dan komunikasi tersebut bertujuan untuk mengetahui nama adaptor dalam webcam tersebut. Setelah inisialisasi dilakukan sesuai nama adaptornya yaitu dengan resolusi kamera yang digunakan yaitu 320x240, proses komunikasi dan inisialisasi pada webcam pun selesai. Selanjutnya, dilakukan record untuk merekam.
Gambar 3.11. Diagram alir rekaman
Start
Camera ON
Rekaman
Stop
Masukan: Citra berupa cahaya kedap-kedip
Keluaran: File avi
(46)
Setelah semua tahap dalam melakukan proses pengambilan citra (record) terlaksana, citra yang didapat pada proses pengambilan gambaran memasuki tahap pemrosesan citra (preprocessing). Tahap preprocessing yang dilakukan meliputi proses penentuan koordinat autocropping, ekstrak frame, cropping, RGB ke Gray, histogram proyeksi vertikal, average filtering, downsampling dan thresholding. Penentuan koordinat autocropping merupakan suatu proses penentuan cropping untuk menggambil bagian tertentu untuk dilakukan proses selanjutnya.
Ekstrak frame dilakukan agar citra berupa cahaya kedap-kedip yang telah direkam menggunakan webcam menjadi jumlah frame untuk nomor framenya. Frame diambil hanya beberapa dari sejumlah frame yang terdapat pada hasil perekaman cahaya kedap-kedip. Hal ini dilakukan untuk mempermudah pengenalan kode morse (lampiran 2).
Cropping merupakan suatu proses pemotongan bagian-bagian dari citra yang diperlukan dalam suatu proses pengenalan kode morse, seperti background template. Dari percobaan tersebut didapatkan nilai 10×10 piksel yang sesuai untuk dapat dilakukan proses cropping (lampiran 2).
RGB ke Gray merupakan suatu proses perbaikan citra digital, citra digital yang diambil berupa citra RGB (red, green, blue) yang kemudian dikonversi kedalam bentuk citra grayscale. Citra digital yang sebelumnya berwarna harus diubah terlebih dahulu dalam format grayscale karena yang difilter adalah intensitas warna dari warna hitam dan putih pada citra digital.
Histogram proyeksi vertikal merupakan suatu tahap yang dilakukan untuk suatu citra yang akan diproses dalam rangka penyimpanan dari citra grayscale. Hal ini dilakukan agar dapat menyimpan citra untuk proses selanjutnya untuk kode biner pada pengolahan citra dalam proses ekstrak frame (lampiran 2).
Average filtering suatu tahap yang dilakukan untuk suatu gambar yang akan diproses untuk meratakan sinyal yang telah diproses dari histogram proyeksi vertikal. Proses tersebut bertujuan untuk memudahkan meratakan sinyal yang masih runcing. Hal ini dilakukan untuk mempermudah proses selanjutnya.
Downsampling dilakukan untuk proses histogram proyeksi vertikal yang telah disimpan dari proses RGB ke gray dan telah melalui proses average filtering. Proses downsampling ini bertujuan untuk memproses sinyal kotak yang tertangkap. Proses tersebut bertujuan pula untuk mengurangi sinyal dan tetap mempertahankan periodenya. Downsampling menghasilkan sinyal kotak yang lebih rapat (lampiran 2).
(47)
Thresholding merupakan suatu proses untuk menentukan kode biner 1 dan 0 dari sinyal kotak dengan mengatur nilai amplitudo semua sinyal kotak yang lebih besar dari nilai threshold sebagai latar depan dan lebih kecil dari nilai threshold. Proses thresholding ini bertujuan untuk menghasilkan kode biner yang diinginkan (lampiran 2). Diagram alir pemrosesan citra dapat dilihat pada gambar 3.12.
Gambar 3.12. Diagram alir pemrosesan citra (preprocessing)
Start
Ekstrak frame
Cropping
RGB ke Gray Masukan:
file avi
Keluaran: Kode biner Histogram proyeksi
vertikal
Stop Thresholding Downsampling Average filtering
Penentuan koordinat autocropping
(48)
Setelah selesai melakukan pemrosesan citra (preprocessing), langkah selanjutnya adalah proses decoding yang ditujukan untuk mengubah kode biner menjadi keluaran kata (teks) yang direkam dalam proses preprocessing. Proses decoding bertujuan untuk mengetahui kode biner dan kode karakter pada cahaya kedap-kedip. Secara keseluruhan, proses decoding ini terdiri dari dua tahap. Tahap yang pertama adalah mengubah kode biner menjadi kode karakter. Tahap pertama ini bertujuan untuk mengetahui kode biner yang terdapat pada cahaya kedap-kedip yang kemudian akan diproses menjadi kode karakter, sedangkan tahap yang kedua, program akan memproses kode karakter yang telah dihasilkan dari proses tahap pertama menjadi kata (teks). Pada tahap kedua, kode karakter akan diproses terlebi h dahulu dengan menyamakan kode karakter pada laptop 1 dengan menggunakan proses look up table (lampiran 1). Hal ini dilakukan untuk menggetahui huruf pada kode karakter. Lalu hasil dari decoding tahap kedua tersebut akan berupa kata (teks).
Secara lebih rinci, proses decoding dapat dijelaskan sebagai berikut. Tahap decoding yang pertama adalah melakukan proses deteksi jumlah nol dengan tujuan menentukan jumlah nol dari kode biner sebagai spasi berdasar jumlah nol (tabel3.4).
Tabel 3.3. Look up table deteksi jumlah nol Jumlah nol (n) Kode
n <n1 ss
n1≤n<n2 sh
n ≥n2 sk
Proses dilanjutkan dengan mendeteksi jumlah satu dengan tujuan menentukan jumlah satu dari kode biner sebagai kode karakter pd dan pj berdasar jumlah satu (tabel3.5). Nilai n dan s akan dibahas lebih lanjut di BAB IV. Berikut look up table deteksi jumlah satu.
Tabel 3.4.Look up table deteksi jumlah satu Jumlah satu (s) Kode
s <s1 pd
(49)
Setelah itu, dilanjutkan dengan pengolahan “data masih” untuk menentukan keluaran kode karakter. Tahap decoding yang kedua adalah melakukan proses deteksi spasi antar huruf. Selanjutnya proses decoding huruf yang bertujuan untuk mendeteksi huruf dengan menggunakan look up table (lampiran 1). Setelah itu, proses menyimpan huruf di array dan dilanjutkan dengan pengolahan “data masih” untuk menentukan keluaran kata (teks). Alur program decoding dapat di lihat pada gambar 3.13.
(50)
(51)
29
BAB IV
HASIL DAN PEMBAHASAN
Bab ini berisi tentang hasil uji coba sistem yang telah dirancang dan dibuat. Uji coba dilakukan untuk mengetahui apakah sistem dapat bekerja dengan sesuai dengan perancangan. Hasil pengujian berupa data-data yang menunjukkan bahwa sistem yang telah dirancang dapat bekerja dengan baik.
4.1.
Pengujian Program dan Tampilan Program Pembangkit dan
Pengenal Kode Morse Berbasis Citra
Pengujian program dan tampilan program bertujuan untuk memastikan apakah program yang sudah dibuat dapat bekerja sesuai dengan yang telah dirancang pada bab sebelumnya. Dalam pengujian program, user menggunakan 2 buah laptop dengan spesifikasi:
A. Prosesor : Intel® Core ™ i5-2410M CPU @ 2.30GHz RAM : 4.00 GB
Tipe : Sistem oprasi 32 bit
B. Prosesor : Intel® Core™ i3-2310M CPU @ 2.10GHz RAM : 2 GB
Tipe : Sistem operasi 32 bit
Proses pembangkit dan pengenal kode morse berbasis citra dapat dilakukan dengan menjalankan langkah-langkah di bawah ini:
1. Klik dua kali gambar ikon matlab pada layar desktop dengan gambar ikon seperti pada gambar 4.1.
(52)
2. Setelah ikon matlab di klik akan muncul tampilan awal seperti pada gambar 4.2. sebelum masuk ke tampilan utama program.
Gambar 4.2. Tampilan matlab
3. Sebelum membuka tampilan program, user harus memastikan terlebih dahulu apakah Current Directory sudah sesuai dengan tempat penyimpanan program yang telah dirancang sebelumnya.
4. Kemudian, user dapat mengetik perintah “transmit” pada laptop 1 di bagian command window untuk memunculkan tampilan program pembangkit kode morse. Maka akan muncul tampilan utama program seperti gambar 4.3.
(53)
Gambar 4.3. Tampilan program pembangkit kode morse
5. Setelah itu, user mengetik perintah “gui123” pada laptop 2 di bagian command window untuk memunculkan tampilan program pengenal kode morse. Setelah itu akan muncul tampilan program pengenal kode morse seperti pada gambar 4.4.
Gambar 4.4. Tampilan program pengenal kode morse
(54)
6. Setelah langkah 4 dilakukan dengan laptop 1, user dapat memasukkan kata terlebih dahulu pada command window. Proses tersebut dilakukan untuk mengirimkan kata yang menampilkan citra berupa penampil citra gelap dan citra terang secara bergantian yakni berupa cahaya kedap-kedip. Tampilan gambar dapat terlihat pada gambar 4.5.
Gambar 4.5. Citra Gelap
(55)
7. Selanjutnya, apabila laptop 1 sudah menampilkan citra berupa cahaya kedap-kedip, maka user dapat memulai pengenalan kode morse pada laptop 2. Proses tersebut didahului dengan langkah 5 untuk memulai pengenal kode morse dengan menekan
tombol “TERIMA” untuk menampilkan video webcam. Hasil pengenalan kode
morse terlihat pada gambar 4.6.
Gambar 4.6. Tampilan Hasil Pengenal Kode Morse
8. Pada laptop 2, user dapat mengulang kembali pengenalan kode morse dengan menkan tombol “RESET” dan mengulang kembali langkah 7.
9. Pada laptop 2, user dapat mengakhiri pengenalan kode morse dengan menekan tombol “SELESAI”.
4.2.
Penjelasan Program
4.2.1. Pembangkit Kode MorsePembangkit kode morse dapat dilakukan dengan melakukan langkah seperti yang dijelaskan di atas. Tampilan program pembangkit kode morse dapat dilihat pada gambar 4.3. Pada tampilan pembangkit kode morse terdapat “transmit” dan “kata yang akan
dikirim”. User dapat memulai pembangkit kode morse dengan menggetik perintah terlebih
dahulu pada command window. User dapat memastikan terlebih dahulu apakah current directory sudah sesuai dengan tempat penyimpanan program sebelum mengetik perintah
(56)
global putih hitam
putih=single(ones(730,1360)); hitam=single(zeros(730,1360));
yang perlu dilakukan. Setelah sesuai dengan tempat penyimpanan program, user dapat memulai pembangkit kode morse dengan menggetik perintah “transmit” dan menekan enter untuk menjalankan program. Setelah muncul perintah “kata yang akan dikirim”, user mengetik kata yang akan dikirim kemudian menekan enter. Hasil pembangkit kode morse yang ditampilkan adalah citra berupa cahaya kedap-kedip.
a. Tampilan Citra Berupa Cahaya Kedap-Kedip
Untuk menampilkan citra berupa cahaya kedap-kedip pada pembangkit kode morse, user dapat melakukan pembangkit kode morse dengan menjalankan proses. Proses tersebut diawali dengan menggunakan display putih dan hitam yang berupa matriks 1 dan matriks 0. Program yang digunakan untuk tampilan citra berupa cahaya kedap-kedip ditunjukan pada gambar 4.7.
Gambar 4.7. Program Tampilan Citra Berupa Cahaya Kedap-kedip b. Look up table kode morse
Look up table kode morse adalah proses pemberian kode karakter yang berguna untuk tampilan citra berupa cahaya kedap-kedip. Program look up table terlihat pada gambar 4.8.
Gambar 4.8. Program Look Up Table Kode Morse function mkode(huruf)
switch huruf
case 'A'
pd;ss;pj;
case 'B'
pj;ss;pd;ss;pd;ss;pd;
case 'C'
pj;ss;pd;ss;pj;ss;pd;
case 'D'
pj;ss;pd;ss;pd;
case 'E'
pd;
(57)
Gambar 4.8. Lanjutan Program Look Up Table Kode Morse case 'F' pd;ss;pd;ss;pj;ss;pd; case 'G' pj;ss;pj;ss;pd; case 'H' pd;ss;pd;ss;pd;ss;pd; case 'I' pd;ss;pd; case 'J' pd;ss;pj;ss;pj;ss;pj; case 'K' pj;ss;pd;ss;pj; case 'L' pd;ss;pj;ss;pd;ss;pd; case 'M' pj;ss;pj; case 'N' pj;ss;pd; case 'O' pj;ss;pj;ss;pj; case 'P' pd;ss;pj;ss;pj;ss;pd; case 'Q' pj;ss;pj;ss;pd;ss;pj; case 'R' pd;ss;pj;ss;pd; case 'S' pd;ss;pd;ss;pd; case 'T' pj; case 'U' pd;ss;pd;ss;pj; case 'V' pd;ss;pd;ss;pd;ss;pj; case 'W' pd;ss;pj;ss;pj; case 'X' pj;ss;pd;ss;pd;ss;pj; case 'Y' pj;ss;pd;ss;pj;ss;pj; case 'Z' pj;ss;pj;ss;pd;ss;pd; end
(58)
Proses look up table merupakan kode karakter yang berupa kode morse. Dalam prosesnya, kode karakter terdiri dari karakter pj sebagai panjang, pd sebagai pendek, ss sebagai spasi sinyal, sh sebagai spasi huruf dan sk sebagai spasi kata. Karakter yang terdapat pada look up table merupakan kode morse sebagai penampil pada citra berupa cahaya kedap-kedip. Tampilan citra berupa cahaya kedap-kedip, sedangkan karakter pj dan pd sebagai penampil putih dan karakter ss dan sh sebagai penampil hitam. Program tersebut tampak pada gambar 4.9.
Gambar 4.9. Program Kode Karakter
% ===============================================
function pj
% Menampilkan window putih 3 detik
global putih imshow(putih); pause(3);
% ===============================================
function pd
% Menampilkan window putih 1 detik
global putih imshow(putih); pause(1);
% ===============================================
function ss
% Menampilkan window hitam 1 detik % (spasi antar sinyal)
global hitam imshow(hitam); pause(1);
% ===============================================
function sh
% Menampilkan window hitam 3 detik % (spasi antar huruf)
global hitam imshow(hitam); pause(3);
(59)
Gambar 4.9. Lanjutan Program Kode Karakter
Program tersebut memiliki karakter dengan fungsinya masing-masing. Karakter pj menampilkan citra berupa putih dengan waktu 3 detik, karakter pd menampilkan citra berupa putih dengan waktu 1 detik, karakter ss menampilkan citra berupa cahaya kedap-kedip berupa hitam dengan waktu 1 detik, karakter sh menampilkan citra berupa cahaya kedap-kedip berupa hitam 3 detik, dan karakter sk menampilkan citra berupa cahaya kedap-kedip berupa hitam 7 detik.
4.2.2. Pengenalan kode morse
Pengenalan kode morse dapat dilakukan dengan melakukan berbagai langkah seperti yang telah dijelaskan pada 4.1. Tampilan program pengenalan kode morse dapat dilihat pada gambar 4.4. Pada tampilan pengenalan kode morse terdapat 2 axes, 3 push button, dan 1 static text. User dapat memulai pengenalan kode morse dengan menekan tombol “TERIMA”. Hasil pengenalan kode morse yang ditampilkan berupa kamera, sinyal biner, dan kata yang berasil dikenali. User dapat mengulang pengenalan kode morse dengan menekan tombol “RESET” dan mengakhiri pengenalan kode morse dengan menekan tombol “SELESAI” seperti yang telah dijelaskan di 4.1.
a. Tombol “TERIMA”
Tombol “TERIMA” ini adalah tombol yang berfungsi untuk melakukan pengenalan kode morse. User dapat melakukan pengenalan kode morse dengan menakan tombol tersebut. Tombol “TERIMA” memulai pengenalan kode morse dengan menjalankan beberapa subproses. Subproses yang dijalankan dimulai dari rekaman kode morse, preprosesing, decoding, dan penentuan hasil pengenalan
% ===============================================
function sk
% Menampilkan window hitam 7 detik % (spasi antar kata)
global hitam imshow(hitam); pause(7);
(60)
kode morse. Program yang digunakan untuk rekaman kode morse terlihat pada gambar 4.10.
Gambar 4.10. Program Rekaman Kode Morse
Perintah rekaman kode morse pada matlab menggunakan videoinput. Hal tersebut dilakukan untuk memulai perintah inisialisasi sesuai nama adaptornya yaitu “winvideo”. Resolusi kamera yang digunakan adalah 320 x 240. Setelah inisialisasi webcam berhasil, pengambilan gambar dilakukan dengan perintah “getsnapshot”. Kode morse yang telah terekam tersebut ditampilkan pada program pengenalan menggunakan perintah “axes” yang telah tersedia di dalam tampilan program penegenalan kode morse.
Proses preprosesing terdiri dari beberapa bagian program yang digabungkan. Program-program tersebut adalah program penentuan koordinat autocropping, ekstrak frame, RGB ke Gray, average filtering, downsampling,
vid1 = videoinput('winvideo',1, 'YUY2_320x240');
set(vid1, 'FramesPerTrigger', Inf);
set(vid1, 'ReturnedColorspace', 'rgb');
vid1.FrameGrabInterval = 1;% distance between captured
frames
start(vid1)
aviObject1 = avifile('morse700abc.avi'); % Create a new
AVI file
for iFrame = 1:900 % Capture 900 frames
% ...
% You would capture a single image I from your webcam here
% ...
I=getsnapshot(vid1); axes(handles.axes1) imshow(I);
F = im2frame(I); % Convert I to a movie frame
aviObject1 = addframe(aviObject1,F); % Add the frame to
the AVI file
end
aviObject1 = close(aviObject1); % Close the AVI file
stop(vid1); flushdata(vid1);
(61)
dan thresholding. Sebelum melakukan program preprosesing, proses program baca file avi yang telah direkam dilakukan terlebih dahulu.
Kode morse yang telah terekam dan tersimpan dipanggil kembali menggunakan perintah mmreader untuk melanjutkan ke preprosesing. Pada proses preprosesing, proses penentuan koordinat autocropping berfungsi untuk memotong bagian citra yang tidak memiliki informasi. Program penentuan koordinat autocropping dapat terlihat pada gambar 4.11.
Gambar 4.11. Program Penentuan Koordinat Autocropping
% Baca file avi
obj=mmreader('morse700abc.avi'); % ukuran avi: 320x240
piksel
% ================================================= % Preprosesing
% ================================================= % Penentuan koordinat autocropping
m=1; n=1; k=1;
k=31; % Mulai frame ke 16
% Frame 1-15 (1 detik pertama)diabaikan
thx=250;
while m==1
img1=double(rgb2gray(read(obj,k))); img2=double(rgb2gray(read(obj,k+n))); img3=abs(img1-img2)/1000;
sum1=sum(img3); sum2=sum(sum1);
if sum2>thx
m=0;
end
n=n+1;
if k+n>900
thx=200; n=1; end end
(62)
Gambar 4.11. Lanjutan Program Penentuan Koordinat Autocropping
Perintah double pada proses autocropping berfungsi untuk mengubah nilai pada gambar grayscale karena nilainya masih unsigninteger, sedangkan nilai hasil akhir dibagi 1000 sebagai normalisasi. Pada program penentuan koordinat terdapat perintah rgb2gray. Perintah tersebut merupakan perintah untuk mengubah format gambar rgb menjadi grayscale, sedangkan program di atas thx sebagai penentuan nilai atau evaluasi untuk mempermudah proses autocropping. Selanjutnya pada posisi autocropping (kiri atas) terdapat list program posx dan posy sebagai penentu posisi autocropping. Perintah nilai 5 dan 0 pada posx dan posy berfungsi sebagai nilai evaluasi karena nilai offset yang digunakan yaitu 10. Nilai offset berfungsi untuk menghilangkan efek border. Nilai tersebut digunakan karena hasil dari percobaan yang dilakukan lampiran (3). Nilai perintah [posx posy 10 10] berfungsi sebagai cropping. Nilai dari percobaan tersebut digunakan karena pada saat mengunakan nilai evaluasi lainnya hasil proses tersebut tidak dapat ditampilkan secara maksimal. Selanjutnya program ekstrak frame berfungsi untuk mengubah citra berupa cahaya kedap-kedip yang telah direkam menjadi jumlah frame untuk nomor framenya. Program ekstrak frame seperti terlihat pada gambar 4.12.
% Posisi autocropping (kiri atas) sum3=sum(img3');
th1=0.8*max(sum1); th3=0.8*max(sum3); x1=find(sum1>th1); y1=find(sum3>th3);
posx=x1(1)+5 % Nilai offset: 10
posy=y1(1)+0 % Nilai offset: 10
% Nilai offset --> menghilangkan efek
border
%figure(2)
img4=rgb2gray(read(obj,k-5)); img5=rgb2gray(read(obj,k));
(63)
Gambar 4.12. Program Ekstrak Frame
List program “img7” berfungsi untuk membaca frame. Setelah frame terbaca dilakukan proses cropping untuk pemotongan bagian dari citra yang diperlukan dalam proses pengenalan kode morse dengan nilai 10×10 piksel. Program RGB ke Gray merupakan suatu proses untuk citra digital yang diambil berupa citra RGB dan kemudian dikonversi ke dalam bentuk citra grayscale. Proses tersebut bertujuan untuk mengidentifikasi intensitas warna dari warna hitam dan putih pada citra digital. Program RGB ke Gray dapat terlihat pada gambar 4.13.
Gambar 4.13. Program RGB ke Gray
Perintah “double” pada program di atas berfungsi untuk mengubah nilai pada gambar grayscale karena nilainya masih unsigninteger, sedangkan nilai hasil akhir dibagi 3×255 sebagi normalisasi. Berikutnya program histogram proyeksi vertikal berfungsi untuk suatu citra yang akan diproses dalam rangka
% Ekstrak frame s/d histogram jumframe=obj.NumberOfFrames; vhist0=[];
for a=1:5:jumframe % downsampling
img7=read(obj,a); % baca frame
img8=imcrop(img7,[posx posy 10 10]); % crop 10x10
piksel
% RGB->Gray
r=double(img8(:,:,1)); % matriks r (red)
g=double(img8(:,:,2)); % matriks g (green)
b=double(img8(:,:,3)); % matriks b (blue)
(64)
penyimpanan dari citra grayscale. Program histogram proyeksi vertikal seperti terlihat pada gambar 4.14.
Gambar 4.14. Program histogram Proyeksi vertical
List program “vhist0” berfungsi untuk menyimpan citra untuk proses selanjutnya pada pengolahan citra dalam ekstrak frame. Berikutnya program average filtering berfungsi untuk meratakan sinyal yang terekam dengan mencari rata-rata. Program average filtering dapat terlihat pada gambar 4.15.
Gambar 4.15. Program Average Filtering
Fungsi program “avgfilter” adalah untuk memanggil fungsi average filtering, sedangkan fungsi average filtering adalah untuk meratakan sinyal puncak dengan menghitung nilai rata-rata. Proses dilakukan dengan memanggil fungsi yang sudah dibuat pada M-file dengan nama “avgfilter”. Berikutnya program downsampling berfungsi untuk memproses sinyal kotak yang tertangkap dan untuk mengurangi sinyal serta mempertahankan periodenya. Program downsampling dapat terlihat pada gambar 4.16.
Gambar 4.16. Program Downsampling
Perintah “vhist0” diproses setelah hasil dari proses average filtering yang menghasilkan sinyal kotak diproses untuk menghasilkan sinyal kotak yang lebih rapat. Berikutnya program thresholding berfungsi untuk menentukan kode biner 1 dan 0 dari sinyal kotak. Program thresholding dapat terlihat pada gambar 4.17.
vhist0=[vhist0 sum(img9)]; % simpan histogram proyeksi
vertikal
% Average filtering
vhist0=avgfilter(vhist0);
% Downsampling
(65)
Gambar 4.17. Program Thresholding
Nilai “0.75” yang terdapat pada program “thresholding” berfungsi sebagai nilai evaluasi pada sinyal kotak yang nantinya akan digunakan pada proses threshold biner. Nilai tersebut digunakan karena sinyal yang dihasilkan pada proses thresholding sesuai dengan kode karakter kode morse yang ditampilkan pada laptop 1. Namun, nilai evaluasi lainnya tidak sesuai dengan kode karakter kode morse yang ditampilkan pada laptop 1. Sinyal thresholding yang menggunakan nilai evaluasi lainnya dapat dilihat pada lampiran (4). List program katain berfungsi sebagai preallocation untuk katain. Dalam prosesnya terdapat perintah “vhist1 (k)>thbin” yang berfungsi untuk menentukan threshold biner yang nilainya lebih besar dari nilai evaluasi. Pada citra berupa cahaya kedap-kedip yang berwarna putih bernilai 1 sedangkan yang bewarna gelap bernilai 0 untuk menampilkan sinyal biner ditampilkan pada axes2.
Proses decoding terdiri dari dua tahap. Tahap yang pertama adalah mengubah kode biner menjadi kode karakter. Tahap pertama ini bertujuan untuk mengetahui kode biner yang terdapat pada citra berupa cahaya kedap-kedip yang
% Thresholding untuk kode biner
%thbin=0.75*max(vhist1); % threshold biner thbin=0.75*max(vhist1);
pjvhist1=length(vhist1);
katain=zeros(1,pjvhist1); % preallocation untuk
katain
for k=1:pjvhist1
if vhist1(k)>thbin
katain(k)=1;
end
end
katain
%tampilkan pada axes axes(handles.axes2);
(66)
kemudian diproses menjadi kode karakter. Dalam proses decoding tahap pertama terdapat program deteksi jumlah nol yang bertujuan untuk menentukan jumlah kode biner sebagai spasi berdasar jumlah nol. Program deteksi jumlah nol dapat terlihat pada gambar 4.18.
Gambar 4.18. Program Deteksi Jumlah Nol
Pada program di atas tertulis “kataout=[kataout ‘ss’]” yang bertujuan untuk menentukan kode karakter ss dengan menggunakan nilai evaluasi nol lebih kecil dari 7 maka akan dianggap sebagai kode karakter ss. Selanjutnya
“kataout=[kataout ‘sh’]” untuk menentukan kode karakter sh dengan
menggunakan nilai evaluasi nol lebih besar dari atau sama dengan 7 dan nol lebih kecil dari atau sama dengan 15 maka kode karakter berupa sh. Setelah itu, “kataout=[kataout ‘sk’]” untuk kode karakter berupa sk. Nilai-nilai evaluasi
% ---% Deteksi jumlah nol
% --- k=1;
m=1; nol=0;
while k==1
if katain(m)==0
nol=nol+1;
else
k=0;
end
m=m+1;
if length(katain)<m
k=0;
end
end
% Definisi spasi berdasar jumlah nol
if nol<7
kataout=[kataout 'ss'];
elseif nol>=7 && nol<=15
kataout=[kataout 'sh'];
else
kataout=[kataout 'sk'];
end
% Pemotongan data input berdasar jumlah nol
(1)
% Average filtering
vhist0=avgfilter(vhist0);
% Downsampling
vhist1=vhist0(1:10:length(vhist0));
% Thresholding untuk kode biner
%thbin=0.75*max(vhist1); % threshold biner thbin=0.75*max(vhist1);
pjvhist1=length(vhist1);
katain=zeros(1,pjvhist1); % preallocation untuk katain for k=1:pjvhist1
if vhist1(k)>thbin katain(k)=1; end
end
katain
%tampilkan pada axes axes(handles.axes2);
plot(katain);axis([1 pjvhist1 0 1.5]);xlabel('Data ke-');ylabel('Amplitudo')
% ================================================= % Dekoding
% ================================================= % Dekoding tahap 1 (kode biner --> kode karakter) a=1;
n=1;
kataout=[]; while a==1
if katain(1)==0
% --- % Deteksi jumlah nol
% --- k=1;
m=1; nol=0; while k==1
if katain(m)==0 nol=nol+1; else
k=0; end
m=m+1;
if length(katain)<m k=0;
(2)
end end
% Definisi spasi berdasar jumlah nol if nol<7
kataout=[kataout 'ss']; elseif nol>=7 && nol<=15 kataout=[kataout 'sh']; else
kataout=[kataout 'sk']; end
% Pemotongan data input berdasar jumlah nol katain(1:nol)=[];
% --- else
% --- % Deteksi jumlah satu
% --- k=1;
m=1; satu=0; while k==1
if katain(m)==1 satu=satu+1; else
k=0; end
m=m+1;
if length(katain)<m k=0;
end end
% Definisi spasi berdasar jumlah satu if satu<=6 && satu>=2
kataout=[kataout 'pd']; else satu>6
kataout=[kataout 'pj']; end
% Pemotongan data input berdasar jumlah satu katain(1:satu)=[];
% --- end
n=n+1;
pjkatain=length(katain); if pjkatain==0
a=0; end
end
kataout
(3)
% Hapus dua data yang tidak perlu di kiri kataout(1:2)=[]
% Dekoding tahap 2 (kode karakter --> teks) a=1;hurufin=[];katatxt=[];
while a==1
if strcmp(kataout(1:2),'sh')==0 && strcmp(kataout(1:2),'sk')==0
hurufin=[hurufin kataout(1:2)]; kataout(1:2)=[];
elseif strcmp(kataout(1:2),'sh')==0 && strcmp(kataout(1:2),'sk')==1
hurufout=kenalhuruf(hurufin); katatxt=[katatxt hurufout]; kataout=[];
elseif strcmp(kataout(1:2),'sh')==1 hurufout=kenalhuruf(hurufin); katatxt=[katatxt hurufout]; hurufin=[];
kataout(1:2)=[]; end
pjkataout=length(kataout); if pjkataout==0
a=0; end
end
katatxt
hasilout=katatxt
set(handles.text9,'string',hasilout)
%===================================================
% --- 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) close all;
clear all;
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
(4)
% handles structure with handles and user data (see GUIDATA) axes(handles.axes1);
plot(0);
axes(handles.axes2); plot(0);
set(handles.text9,'String',' ');
Program Avgfilter
function vhist1=avgfilter(vhist0) % Average filtering
for k=2:length(vhist0)-1 x1=vhist0(k-1);
x2=vhist0(k); x3=vhist0(k+1);
vhist0(k)=(x1+x2+x3)/3; end
vhist1=vhist0;
Program Kenalhuruf
function hurufout=kenalhuruf(hurufin) hurufin
switch hurufin case 'pdsspj'
hurufout='A'; case 'pjsspdsspdsspd'
hurufout='B'; case 'pjsspdsspjsspd'
hurufout='C'; case 'pjsspdsspd'
hurufout='D'; case 'pd'
hurufout='E'; case 'pdsspdsspjsspd'
hurufout='F'; case 'pjsspjsspd'
hurufout='G'; case 'pdsspdsspdsspd'
hurufout='H'; case 'pdsspd'
hurufout='I'; case 'pdsspjsspjsspj'
hurufout='J'; case 'pjsspdsspj'
(5)
case 'pdsspjsspdsspd'
hurufout='L'; case 'pjsspj'
hurufout='M'; case 'pjsspd'
hurufout='N'; case 'pjsspjsspj'
hurufout='O'; case 'pdsspjsspjsspd'
hurufout='P'; case 'pjsspjsspdsspj'
hurufout='Q'; case 'pdsspjsspd'
hurufout='R'; case 'pdsspdsspd'
hurufout='S'; case 'pj'
hurufout='T'; case 'pdsspdsspj'
hurufout='U'; case 'pdsspdsspdsspj'
hurufout='V'; case 'pdsspjsspj'
hurufout='W'; case 'pjsspdsspdsspj'
hurufout='X'; case 'pjsspdsspjsspj'
hurufout='Y'; case 'pjsspjsspdsspd'
hurufout='Z';
(6)
LAMPIRAN 7
Pengujian Jarak Maksimum dan MinimumJarak (cm) Hasil Percobaan
20 ×
30 √
40 √
60 √
80 √
100 √
140 √
160 √
180 √
200 √
240 √
260 √
280 √
300 √
340 √
360 √
380 √
400 √
440 √
460 √
480 √
500 √
520 √
540 √
560 √
580 √
600 √
620 √
640 √
680 √
700 √
720 ×
730 ×
keterangan: ×: kode morse dikenali dengan tidak benar
√: kode morse dikenali dengan benar Kode yang dikirim : “ABC”