RANCANGAN PERANGKAT LUNAK PENGKODEAN SANDI MORSE DENGAN METODE BST (BINARY SEARCH TREE)
SKRIPSI
HERMIATY HONGGO 041401022
PROGRAM STUDI S-1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA MEDAN 2009
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
RANCANGAN PERANGKAT LUNAK PENGKODEAN SANDI MORSE DENGAN METODE BST (BINARY SEARCH TREE) SKRIPSI Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer HERMIATY HONGGO 041401022
PROGRAM STUDI S-1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2009
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
PERSETUJUAN
Judul
Kategori Nama Nomor Induk Mahasiswa Program Studi Departemen Fakultas
: RANCANGAN PERANGKAT LUNAK PENGKODEAN SANDI MORSE DENGAN METODE BST (BINARY SEARCH TREE) : SKRIPSI : HERMIATY HONGGO : 041401022 : SARJANA (S1) ILMU KOMPUTER : ILMU KOMPUTER : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA Diluluskan di Medan, 17 Maret 2009
Komisi Pembimbing
:
Pembimbing 2
Pembimbing 1
Syahriol Sitorus, S.Si, MIT NIP. 132 174 687
Prof. Dr. Muhammad Zarlis NIP. 131 570 434
Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua,
Prof. Dr. Muhammad Zarlis NIP 131 570 434
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
PERNYATAAN
RANCANGAN PERANGKAT LUNAK PENGKODEAN SANDI MORSE DENGAN METODE BST (BINARY SEARCH TREE)
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 17 Maret 2009
Hermiaty Honggo 041401022
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa, dengan limpahan karunia-Nya kertas kajian ini berhasil diselesaikan dalam waktu yang telah ditetapkan. Ucapan terima kasih penulis sampaikan kepada Bapak Prof. Dr. Muhammad Zarlis selaku Ketua Program Studi Ilmu Komputer sekaligus pembimbing utama pada penyelesaian skripsi ini, serta Bapak Syahriol Sitorus, S.Si, MIT, selaku Sekretaris Program Studi Ilmu Komputer dan pembimbing kedua yang telah memberikan panduan kepada penulis untuk menyelesaikan kajian ini. Panduan ringkas, padat dan profesional telah diberikan kepada penulis agar penulis dapat menyelesaikan skripsi ini. Selanjutnya kepada Bapak Drs. Muhammad Firdaus M.Si selaku pembimbing akademik. Ucapan terima kasih juga ditujukan kepada semua dosen pada Program Studi Ilmu Komputer FMIPA USU serta pegawai di FMIPA USU. Ucapan terima kasih juga ditujukan kepada Bapak Syahril Efendi, S.Si, MIT dan Bapak Ir. Arman Sani, MIT sebagai Dosen Pembanding. Akhirnya, tidak terlupakan kepada yang tersayang kedua orangtua yang selalu sabar dalam mendidik serta memotivasi penulis. Serta seluruh keluarga tercinta yang berjasa dalam memberikan dorongan kepada penulis selama menyelesaikan skripsi ini serta teman-teman yang telah banyak memberikan bantuan kepada penulis terutama Anti, Baby, Cinthya, Eileen, Gita, Henny, Ririn, Stanley dan Venisa serta rekan-rekan kuliah yang lain.
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
ABSTRAK
Pengiriman berita yang digunakan dalam komunikasi jarak jauh berawal dari penggunaan Sandi Morse yang digunakan pada kegiatan kepramukaan. Pada jaman dahulu masyarakat juga telah mengenal penggunaan Sandi Morse untuk komunikasi jarak jauh, yang mana berita disampaikan dengan bantuan sejumlah media, mulai dari asap, bunyi klakson, sinar lampu, sampai menggunakan arus listrik analog maupun digital. Sandi Morse adalah suatu sistem yang menggunakan radiotelegrafi pada sistem telegraf. Sistem ini adalah adaptasi dari Sandi Morse, alphabet telegrafik asli oleh Samuel F. B. Morse dibuat berdasar bantuan dari ahli sains kontemporari. Untuk menghafalkan kode ini digunakan metode yang mengelompokkan huruf-huruf berdasarkan bagaimana huruf ini diwakili oleh Sandi Morse-nya. Pengelompokan tersebut antara lain alphabet dengan Sandi Morse yang berkebalikan antara titik dan garis, misalnya huruf K yang diwakili oleh -.- berkebalikan dengan huruf R yang diwakili oleh .-. Melihat pentingnya penggunaan Sandi Morse, maka pada skripsi ini penulis membahas topik yang berhubungan dengan proses konversi Sandi Morse baik menjadi teks ataupun sebaliknya dengan memanfaatkan Binary Search Tree. Penggunaan metode Binary Search Tree (BST) di dalam penelusuran Sandi Morse yang terdiri dari lambang garis dan titik dapat dilakukan dengan mudah, dimana pencarian dengan metode BST akan dilakukan dengan mencari tree dari sebelah kiri dan kanan. Agar pencarian dapat dilaksanakan dengan cara yang mudah dan cepat, maka pengkodean Sandi Morse tersebut harus disusun menggunakan suatu bentuk struktur data seefisien mungkin yang akan mendukung cepatnya waktu akses, waktu telusur dan waktu cari sandi pada saat dibutuhkan. Pada implementasi tulisan ini dirancang suatu program yang mampu mengubah teks menjadi kode morse dan sebaliknya dengan memanfaatkan BST agar proses pencarian kode dan pengubahan kode menjadi lebih cepat.
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
DESIGN OF SOFTWARE IN CODING MORSE CODE WITH BINARY SEARCH TREE METHOD ABSTRACT
Message sending in communication was started from the use of Morse code that used in scouting activities. For the first time in the long distance communication, people have already known how to use Morse code in which the used was delivered with the help of a number of media such as smoke, horn, light rays, and sending long distance messages by using analog or digital current. Morse code is a system that used radiotelegraphy on the telegraph system. This system is adapted from Morse code, the original telegraphic alphabet by Samuel F.B Morse made based on help from expert contemporary science. To memorize this code, a certain method is used by grouping the letters based on how the letter is represented by its Morse Code. Grouping among alphabet with Morse Code is reverse between the line and dot symbol, for example the letter K is represented by -.- and it is reverse with the letter R which is represented by .-. Seeing the importance of the use of Morse Code, then in this paper the author discusses a topic about the conversion process of Morse Code to text or vice versa by using Binary Search Tree. The use of methods Binary Search Tree (BST) in the Morse code of the symbol consists of lines and dots can be done easily, where the searching by using BST method will be conducted by seeking a tree from the left section to right. In order to make the searching procedure easier and faster, then Morse code coding must be arranged by using a form data structure as efficient as possible that will support the rapid access time, search time and time to decode the code when it is required. In the implementation of this paper, the writer designs a program that is able to convert the text into Morse code and vice versa by using BST in order to process the search code and code conversation to be faster.
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
DAFTAR ISI
Halaman
Persetujuan ............................................................................................................... ii Pernyataan ............................................................................................................... iii Penghargaan .............................................................................................................iv Abstrak ...................................................................................................................... v Abstract ....................................................................................................................vi Daftar Isi................................................................................................................. vii Daftar Tabel..............................................................................................................ix Daftar Gambar ........................................................................................................... x
Bab 1
Pendahuluan ................................................................................................ 1 1.1. Latar Belakang ................................................................................... 1 1.2. Identifikasi Permasalahan .................................................................. 2 1.3. Batasan Masalah ................................................................................ 2 1.4. Tujuan................................................................................................ 2 1.5. Manfaat .............................................................................................. 2 1.6. Metode Penelitian .............................................................................. 3 1.7. Sistematika Penulisan ......................................................................... 3
Bab 2
Landasan Teori............................................................................................ 5 2.1. Pohon (Tree) ..................................................................................... 5 2.2. Istilah Dasar pada suatu Pohon (Tree) ................................................ 6 2.3. Pohon Biner (Binary Tree) ................................................................. 8 2.4. Kunjungan pada Binary Tree ............................................................ 11 2.5. Penyajian Binary Tree ...................................................................... 13 2.5.1. Deklarasi Pohon ................................................................... 13 2.5.2. Membuat Pohon Biner.......................................................... 15
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
2.6. Pohon Pencarian Biner (Binary Search Tree) ................................... 15 2.7. Sandi Morse..................................................................................... 16
Bab 3
PERANCANGAN PERANGKAT LUNAK .............................................. 19 3.1. Proses Konversi Sandi Morse ke Teks dengan BST .......................... 19 3.1.1. Algoritma ............................................................................. 21 3.1.2. Arsitektur Program ............................................................... 23 3.2. Perancangan ..................................................................................... 24 3.2.1. Perancangan Tree untuk Kode Morse ................................... 24 3.2.2. Perancangan Perangkat Lunak .............................................. 25 3.2.2.1. Perancangan Tampilan Menu ................................. 25 3.2.2.2. Perancangan Tampilan Perangkat lunak ................. 26 3.2.3. Perancangan Suara ............................................................... 29 3.2.3. Pengujian Program ............................................................... 29
Bab 4
Implementasi Dan Pembahasan ................................................................. 31 4.1. Implementasi.................................................................................... 31 4.2. Pembahasan .................................................................................... 35
Bab 5
Kesimpulan dan Saran ............................................................................... 36 5.1. Kesimpulan ...................................................................................... 36 5.2. Saran ................................................................................................ 36
Daftar Pustaka ........................................................................................................ 37 Lampiran A
Listing Program ............................................................................... 38
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
DAFTAR TABEL
Tabel 2.1
Sandi Morse .................................................................................. 18
Tabel 3.1
Pengujian Hasil.............................................................................. 30
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
DAFTAR GAMBAR
Gambar 2.1
Pohon Sembarang ........................................................................... 5
Gambar 2.2
Binary Tree beserta Cabangnya ....................................................... 8
Gambar 2.3
Contoh aplikasi Binary Tree............................................................ 9
Gambar 2.4
Aplikasi Binary Tree untuk Pohon Ekspresi ...................................10
Gambar 2.5
Binary Tree Lengkap Tingkat 4......................................................11
Gambar 2.6
Contoh Binary Tree Miring ............................................................11
Gambar 2.7
Traversal pada Binary Tree ............................................................13
Gambar 2.8
Node pada Binary Tree ..................................................................14
Gambar 2.9
Senarai Berantai.............................................................................14
Gambar 2.10
Pohon Biner ...................................................................................15
Gambar 2.11
Syarat sebuah Binary Search Tree ..................................................16
Gambar 3.1
Konversi Sandi Morse Huruf “A” ..................................................19
Gambar 3.2
Konversi Sandi Morse Huruf “B”...................................................20
Gambar 3.3
Konversi Sandi Morse Huruf “C”...................................................21
Gambar 3.4
Flow Chart Konversi Sandi Morse ke Teks ....................................22
Gambar 3.5
Flow Chart Konversi Teks ke Sandi Morse ....................................23
Gambar 3.6
Arsitektur Program ........................................................................24
Gambar 3.7
Rancangan Tree Sandi Morse.........................................................25
Gambar 3.8
Tampilan Menu Aplikasi................................................................26
Gambar 3.9
Rancangan Morse Code Tree .........................................................27
Gambar 3.10
Kunjungan Pohon Morse................................................................27
Gambar 3.11
Konversi Morse To Text .................................................................28
Gambar 3.12
Konversi Text To Morse .................................................................28
Gambar 3.13
Konversi Morse To Text .................................................................29
Gambar 4.1
Tampilan Menu Perangkat Lunak ..................................................32
Gambar 4.2
Tampilan Layar Morse Code Tree ..................................................32
Gambar 4.3
Kunjungan Pohon Tree ..................................................................33
Gambar 4.4
Kunjungan Morse To Text ..............................................................33
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Gambar 4.5
Konvesi Text To Morse ..................................................................34
Gambar 4.6
Konversi Morse To Text .................................................................34
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
BAB 1 PENDAHULUAN
1.1 Latar Belakang Pengiriman berita yang digunakan dalam komunikasi berawal dari penggunaan Sandi Morse yang digunakan pada kegiatan kepramukaan, pada jaman dahulu untuk komunikasi jarak jauh masyarakat telah mengenal penggunaan Sandi Morse yang mana berita disampaikan dengan bantuan sejumlah media berupa asap, bunyi klakson, sinar lampu, sampai pengiriman berita jarak jauh menggunakan arus listrik analog maupun digital. Hal ini digunakan untuk menggantikan isyarat Semaphore (isyarat yang menggunakan dua buah bendera) sebagai media penyampaian berita dimana pemakaian Semaphore hanya bisa sebatas pandangan mata saja. Penggunaan Sandi Morse yang sering digunakan selama ini biasanya terdiri dari garis “-“ dan titik “” dimana penggabungan beberapa titik dan garis akan melambangkan suatu karakter tertentu sehingga bagi orang awam akan kesulitan untuk membaca ataupun menyandikan sandi yang akan digunakan. Untuk mempermudah penggunaan Sandi Morse sebagai salah satu media penyampaian berita yang masih digunakan saat ini, maka di era baru ini dilibatkanlah penggunaan komputer beserta perangkat lunaknya sebagai alat yang paling efisien untuk penyusunan dan penerjemah data. Penggunaan metode BST di dalam penelusuran Sandi Morse yang terdiri dari lambang garis dan titik dapat dilakukan dengan mudah, dimana pencarian dengan metode BST akan dilakukan dengan mencari tree dari sebelah kiri dan kanan. Agar pencarian dapat dilaksanakan dengan cara yang mudah dan cepat, maka pengkodean Sandi Morse tersebut harus disusun menggunakan suatu bentuk struktur data seefisien mungkin yang akan mendukung cepatnya waktu akses, waktu telusur dan waktu cari sandi pada saat dibutuhkan.
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
1.2 Identifikasi Permasalahan Dalam penelitian ini akan dibangun perangkat lunak pengkodean Sandi Morse dengan Binary Search Tree yang seimbang. Pada pencarian/penelusuran Sandi Morse yang akan disajikan dalam struktur data berantai (link list), dimana dalam pencarian/penelusuran tersebut data terlebih dahulu diurutkan sesuai dengan kode ASCII. Dalam pohon pengkodean Sandi Morse dengan metode Binary Search Tree yang akan dibuat, suatu tanda akan bergerak ke arah sandi yang akan dituju setelah terjadi proses perbandingan. Akan terdapat dua buah pointer yang menunjukkan cabang suatu pohon yaitu cabang kiri dan cabang kanan. Informasi yang dikirim atau diterima berupa sandi atau karakter dimana sandi dinyatakan sebagai kombinasi garis dan titik.
1.3 Batasan Masalah Agar penulisan penelitian ini tidak terlalu luas serta tidak menyimpang dari pokok permasalahan yang diketengahkan penulis, maka penulis membuat batasan pada: 1. Perangkat lunak yang dibuat hanya menampilkan urutan karakter Sandi Morse berdasarkan urutan ASCII dan menampilkan pohon BST nya. 2. Program yang dibuat mulai mencari dari pohon sebelah kiri dan selanjutnya akan mencari ke sebelah kanan. 3. Tidak menggunakan sistem jaringan komputer.
1.4 Tujuan Tujuan yang ingin diperoleh adalah untuk menerapkan penggunaan Binary Search Tree untuk penelusuran Sandi Morse agar operasi sisip, hapus dan cari dapat dilakukan dengan efisien.
1.5 Manfaat Adapun manfaat dari penyusunan penelitian ini adalah mempermudah pencarian dan penerjemahan Sandi Morse.
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
1.6 Metode Penelitian Untuk menyusun skripsi ini, penulis mengadakan dua pendekatan dalam mengumpulkan metodologi penelitian yang berhubungan dalam menyelesaikan metode penelitian skripsi ini yaitu : a. Penelitian Kepustakaan (Library Research) Penelitian kepustakaan adalah metode penelitian yang dilakukan untuk memperoleh data yang bersumber dari buku-buku atau literatur-literatur yang tersedia di perpustakaan, baik berupa bahan-bahan kuliah, brosur, majalah maupun bahan bacaan lainnya untuk menunjang pembuatan alat, baik pada perangkat lunak maupun perangkat keras. b. Penelitian Lapangan (Field Research) Penelitian lapangan adalah penelitian yang dilakukan di lapangan secara langsung untuk mengumpulkan beberapa keterangan atau data yang diperlukan untuk penulisan skripsi ini.
1.7 Sistematika Penulisan Langkah-langkah yang ditempuh dalam penulisan penelitian ini adalah: BAB 1
PENDAHULUAN Pada Bab 1 ini menyajikan latar belakang, identifikasi masalah, batasan masalah, tujuan, manfaat, metode penelitian dan sistematika penulisan.
BAB 2
LANDASAN TEORI Pada Bab 2 ini membahas tentang teori tree/pohon, binary tree, Kunjungan pada binary tree, Sandi Morse, pengaturan suara yang terdapat dalam pemrograman Visual Basic 6.0.
BAB 3
PERANCANGAN PERANGKAT LUNAK Pada Bab 3 akan dijelaskan analisis permasalahan dan analisis struktur perangkat lunak yang dipakai.
BAB 4
IMPLEMENTASI DAN PEMBAHASAN Pada Bab 4 ini akan menjelaskan perancangan perangkat lunak serta pembahasan atas perangkat lunak yang penulis rancang serta implementasi perangkat lunak.
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
BAB 5
KESIMPULAN DAN SARAN Pada Bab 5 ini berisi kesimpulan dan saran untuk tahap pengembangan perangkat lunak selanjutnya.
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
BAB 2 LANDASAN TEORI
2.1 Pohon (Tree) Dalam kehidupan sehari-hari banyak sekali ditemukan persoalan yang bila digambarkan dengan suatu diagram akan terbentuk sebuah pohon atau tree secara umum. Secara sederhana struktur data pohon dapat didefenisikan sebagai kumpulan elemen-elemen yang mana salah satu elemen merupakan akar dari elemen yang lain. Dan elemen yang tersisa adalah simpul yang nantinya akan terpecah lagi menjadi sejumlah simpul lain yang tidak berhubungan antara satu dengan yang lainnya. Simpul tersebut dikatakan cabang (branch) dari satu pohon. Tapi masingmasing cabang akan selalu berhubungan dengan simpul yang diatasnya, seperti layaknya hubungan antar orangtua dan anak. Agar lebih jelasnya dapat digambarkan suatu struktur pohon sembarang pada Gambar 2.1.
Gambar 2.1 Pohon Sembarang Banyak contoh yang menggambarkan pohon, yang mana menjelaskan Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
kepada user tentang hubungan logis antar data dalam bentuk hubungan bertingkat (hierarchi). Contoh umum terlihat pada silsilah keluarga atau struktur organisasi sebuah perusahaan. (Sumantri Slamet I.S, dkk 1989, 53)
2.2 Istilah Dasar pada suatu Pohon (Tree) Sebelum melangkah lebih jauh mengenai pohon, akan dijelaskan beberapa istilah dasar yang mendukung terbentuknya suatu pohon. Istilah tersebut adalah : a. Simpul (Node) Yang dimaksud dengan node atau simpul pada sebuah pohon yaitu sejumlah elemen-elemen dari pohon yang akan terisi oleh data atau informasi beserta pointer percabangannya. Pohon pada Gambar 2.1 terlihat bahwa yang merupakan simpul adalah 1, 2, 3, 4, 5, 6, 7, 8, 9 dan 10. Terlihat ada 10 simpul yang berisi data / informasi beserta pointer percabangannya. Pada simpul disini terdapat 2 istilah yaitu simpul luar (external node) dan simpul dalam (internal node). (Sumantri Slamet I.S, dkk, 1989, 54) External node (daun) yaitu simpul yang tidak memiliki anak atau tidak mempunyai turunan di bawahnya. Yang merupakan daun pada Gambar 2.1 adalah simpul 5, 6, 8, 9 dan 10. Internal node adalah semua simpul yang bukan merupakan akar dan simpul luar. Atau dengan kata lain yaitu simpul yang bukan daun. Pada Gambar 2.1 yang menunjukkan node internal yaitu pada node 2, 3, 4 dan 7. b. Akar (Root) Pada suatu pohon keberadaan akar sangatlah penting. Awal dari pohon dengan suatu simpul itulah yang disebut akar. Atau dengan kata lain akar adalah simpul paling atas dari suatu struktur tree. Pada Gambar 2.1 akar dinyatakan dengan simpul 1. Bila suatu simpul mempunyai cabang di bawahnya baik itu satu, dua atau lebih maka simpul tersebut dikatakan mempunyai anak. Jadi simpul 1 disebut sebagai orangtua dari cabang pointer yang di bawahnya. Orangtua/parent dapat dikatakan juga sebagai hubungan antara simpul yang satu dengan simpul yang lainnya, yang ada di bawahnya satu tingkat. Pada Gambar 2.1 dapat dilihat bahwa simpul 1 adalah orangtua dari simpul 2 dan simpul 3. sedangkan simpul 2 dan simpul 3 adalah saudara. Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Dan simpul 2 merupakan orang tua dari simpul 4, 5 dan 6 begitulah seterusnya. (Sumantri Slamet I.S, dkk, 1989, 54) c. Tingkat (Level) Level dari suatu tree juga disebut dengan tingkat. Suatu simpul ditentukan dengan pertama kali menentukan akar sebagai tingkat 1. jika suatu simpul dinyatakan sebagai tingkat N, maka simpul-simpul yang merupakan anaknya dikatakan berada dalam tingkat N + 1. Dengan melihat Gambar 2.1 tersebut level 1 terletak pada simpul 1. Yang diikuti dengan level 2 di bawahnya yang terdiri dari simpul 2 dan simpul 3. Level 3 terletak pada simpul 4, 5, 6, 7 dan 8., sedangkan level 4 yang merupakan level terakhir dari gambar terletak pada simpul 9 dan 10. (Sumantri Slamet I.S, dkk, 1989, 54-55) d. Derajat (Degree) Derajat dari suatu pohon yaitu banyaknya pointer percabangan yang menunjukkan turunan dari simpul tersebut. Dari Gambar 2.1 dapat dikatakan bahwa: - Simpul 1 berderajat 2 - Simpul 2 berderajat 3 - Simpul 3 berderajat 2 - Simpul 4 dan 7 berderajat 1 - Simpul 5, 6, 8, 9 dan 10 berderajat 0 (Sumantri Slamet I.S, dkk, 1989, 55) e. Tinggi / kedalaman (height / depth) Tinggi / kedalaman atau sering disebut juga dengan height / depth dari suatu pohon yaitu tingkat maksimum (level maksimum) dari simpul yang ada pada pohon tersebut dikurangi dengan 1, karena akar pada pohon tidak termasuk pada hitungan tinggi / kedalaman. Dengan melihat Gambar 2.1 maka pohon tersebut dapat dikatakan memiliki kedalaman 3 yang berakar pada simpul 1.(Ir. P. Insap Santosa, M.Sc, 1992, 25) f.
Ancestor Ancestor adalah semua simpul yang terletak satu jalur dengan simpul yang dicari, dari akar sampai kepada simpul yang ditinjau. Contoh pada Gambar 2.1 ancestor terdapat pada simpul 1, 3, 7 dan 10. (Ir. P. Insap Santosa, M.Sc, 1992, 25)
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
g. Hutan (Forest) Hutan (forest) adalah kumpulan sejumlah pohon yang tidak saling berhubungan, karena jika pada Gambar 2.1 sebagai contoh, simpul 1 dihapus maka anak-anak dibawahnya akan membentuk suatu pohon yang baru. Dimana antar pohon yang baru tidak akan saling ada hubungan. Dan dari itulah terbentuk hutan. (Ir. P. Insap Santosa, M.Sc, 1992, 25)
2.3 Pohon Biner (Binary Tree) Binary tree dapat didefinisikan sebagai pohon yang mempunyai akar dengan jumlah cabang (anak) maksimum dua, yang saling terpisah yang nantinya disebut dengan cabang kiri dari orangtua dan cabang kanan dari orangtua. Dalam binary tree antara cabang kiri dan cabang kanan sangat dibedakan, sedangkan pada tree sembarang secara umum urutan ini tidaklah penting. Sesuai dengan definisi di atas, maka dapat ditemukan karakteristik yang dimiliki binary tree, yaitu pada sebuah simpul yang merupakan orang tua (parent) atau yang disebut juga dengan akar hanya boleh memiliki 0, 1 atau maksimum 2 anak. Secara umum untuk menjelaskan lebih lanjut dapat digambarkan sebuah tree yang diperlihatkan pada Gambar 2.2. (Ir. P. Insap Santosa, M.Sc, 1992, 253-254)
Gambar 2.2 Binary Tree beserta Cabangnya Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Binary banyak diterapkan dalam berbagai aplikasi. Sebagai contoh Gambar 2.3 yang akan menunjukkan struktur organisasi suatu kelas. Terdiri dari simpul Andi, Budi, Cika, Diana, Elita, Farid, Garin, Hera, Ina dan Jaka. Dimana pada gambar tersebut Andi sebagai ketua kelas yang merupakan akar, memiliki dua simpul lain di bawahnya yaitu Cika dan Elita. Untuk simpul Elita mempunyai cabang sebelah kiri yaitu Garin dan cabang sebelah kanan pada simpul Farid. Pada Diana terdapat sebuah cabang sebelah kanan yaitu pada simpul Ina, sedangkan untuk simpul Garin hanya terdapat satu simpul sebelah kiri yaitu Hera. Pada simpul Hera terdapat juga sebuah simpul pada sebelah kanannya yaitu Jaka. Sedangkan Budi, Ina, Jaka dan Farid tidak memiliki anak (cabang) lagi.
Gambar 2.3 Contoh aplikasi Binary Tree
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Pada Gambar 2.4 menyatakan contoh aplikasi lainnya dari binary tree yaitu pohon ekspresi dengan persamaan ( A + B ) * (( B – C ) + D ).
Gambar 2.4 Aplikasi Binary Tree untuk Pohon Ekspresi
Dari pengertian-pengertian di atas maka dapat diambil masukan bahwa pengertian ayah (orangtua/akar), anak, tingkat, tinggi dan derajat yang pada umumnya berlaku pada sebuah pohon juga berlaku pada pohon biner. Selain itu, pada binary tree dikenal dengan 2 istilah yakni pohon biner lengkap (complete binary tree) dan istilah pohon biner miring. -
Pada pohon biner lengkap (complete binary tree) bertingkat N, yang sering didefinisikan sebagai sembarang pohon biner yang semua daunnya terdapat pada tingkat N dan semua simpul yang bertingkat lebih kecil dari N selalu mempunyai cabang kiri dan cabang kanan. Gambar 2.5 berikut menunjukkan contoh binary tree lengkap tingkat 4, tetapi bukan binary tree lengkap tingkat 5.
-
Istilah pohon biner miring yaitu suatu pohon biner yang banyaknya simpul dalam cabang kiri tidak seimbang dengan banyaknya simpul pada cabang kanannya. Pada Gambar 2.6 menunjukkan pohon biner miring kiri pohon biner miring ke kanan.
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Gambar 2.5 Binary Tree Lengkap Tingkat 4
Gambar 2.6 Contoh Binary Tree Miring 2.4 Kunjungan pada Binary Tree Kunjungan pada binary tree disebut juga Binary Tree Traversal yaitu proses melakukan kunjungan setiap simpul, pada pohon biner tepat hanya satu kali. Dengan adanya proses tersebut secara lengkap diharapkan akan diperoleh urutan informasi secara linier yang ada pada pohon biner. Dan hal tersebut akan dilakukan pada setiap simpul dan cabang-cabang pada binary tree yang ditelusuri. Perlu diperhatikan bahwa urutan informasi yang tersimpan dalam binary tree akan berbeda jika letak simpul-simpulnya ditukar. Dengan alasan kunjungan tersebut ditelusuri dengan 3 cara yaitu Pre Order, In Order dan Post Order. Ketiga Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
kunjungan ini dapat dilakukan dengan rekursif, karena dengan cara ini akan lebih memudahkan pencarian dan lebih efisien. Selain itu, berdasarkan kedudukan setiap simpul dalam tree, akan dapat dilakukan suatu kunjungan lain yaitu secara Level Order. Untuk lebih jelasnya lagi mengenai kunjungan-kunjungan yang akan dilakukan berikut akan diterangkan tentang keempat cara tersebut. 1. Kunjungan secara Pre Order, yang juga disebut dengan Depth First Order. Kunjungan ini dilakukan dengan cara mencetak isi simpul yang dikunjungi, lalu kunjungi cabang kiri dan berikutnya kunjungi cabang kanan. (Ir. P. Insap Santosa, M.Sc, 1992, 246) 2. Kunjungan In Order, yang juga disebut Symetric Order. Kunjungan In Order dimulai dengan mengunjungi cabang kiri, kemudian cetak isi simpul yang dikunjungi dan diteruskan dengan mengunjungi cabang kanan. (Ir. P. Insap Santosa, M.Sc, 1992, 272) 3. Kunjungan Post Order Kunjungan Post Order ini dimulai mengunjungi cabang kiri, kemudian kunjungi cabang kanan dan mencetak isi simpul yang dikunjungi. (Ir. P. Insap Santosa, M.Sc, 1992, 279) 4. Kunjungan Level Order Dari kunjungan ini, kunjungan dimulai dari simpul yang ada pada tingkat 1 (akar), kunjungan diteruskan pada tingkat 2, tingkat 3 dan seterusnya. Pada ketiga dari empat kunjungan di atas, kunjungan ke cabang kiri dilakukan lebih dahulu baru kunjungan ke cabang kanan. (Ir. P. Insap Santosa, M.Sc, 1992, 279) Dengan orientasi semacam ini, ketiga kunjungan diatas disebut dengan Left to Right Oriented (LRO). Dengan LRO, maka kunjungan Pre Order sama dengan kunjungan Post Order pada LRO dan sebaliknya. Pada contoh pohon biner berikut akan ditelusuri secara pre order, in order, post order dan level order seperti diperlihatkan pada Gambar 2.7.
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Gambar 2.7 Traversal pada Binary Tree Traversal Pre Order : A, B, D, E, C, F, I, K, J Traversal In Order : D, B, E, A, K, I, F, J, C Traversal Post Order : D, E, B, K, I, J, F, C, A
2.5 Penyajian Binary Tree Penyajian Binary Tree dapat dilakukan dengan dua cara yaitu: Cara pertama adalah dengan menggunakan senarai berantai (link list) dan cara yang kedua dengan cara berurutan (array). Tapi yang penting dalam penggambaran dan mengilustrasikan suatu binary tree adalah bagaimana membuatnya ke bentuk implementasi memory suatu binary tree yang sudah digambarkan.
2.5.1 Deklarasi Pohon Binary tree terdiri atas dua simpul dan didalam suatu simpul terdapat dua pointer yang menunjukkan cabang kiri dan cabang kanan, dan informasi yang disimpan tersebut diletakkan ditengah-tengah antara pointer kiri dan pointer kanan tersebut. Penyimpanan proses pointer tidak luput dari masalah memory dinamik. Penyimpanan dengan memory dinamik ini sangat menguntungkan, karena besar dari memory yang digunakan akan selalu berubah sesuai dengan banyaknya data yang akan disimpan. Jika diperhatikan setiap simpul dalam Binary Tree, maka struktur data Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
dapat disusun dengan tepat dari simpul-simpul tersebut. Bisa diperhatikan bahwa dalam setiap simpul akan selalu berisi 2 buah pointer untuk menunjuk kecabang kiri dan cabang kanan, dan informasi yang akan disimpan dalam simpul tersebut. Dengan itu simpul dalam binary tree bisa disajikan sebagai:
Gambar 2.8 Node pada Binary Tree Dengan menggunakan simpul seperti tersaji pada Gambar 2.8 dapat dijelaskan senarai berantai pada binary tree. Apabila simpul kiri tidak mempunyai cabang maka simpul yang menunjukkan cabang kiri dibuat suatu tanda yang artinya kosong atau tidak bercabang. Begitu juga simpul kanan tidak mempunyai cabang maka akan dibuat juga suatu tanda yang menunjukkan bahwa simpul kosong, dan jika suatu simpul sudah tidak memiliki cabang kiri dan cabang kanan lagi, maka kedua cabang tersebut diberi tanda, yang artinya tidak ada lagi cabang kiri dan cabang kanan. Untuk lebih jelasnya lagi penyajian binary tree dengan cara senarai berantai dapat dilihat pada Gambar 2.9.
Gambar 2.9 Senarai Berantai
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
2.5.2 Membuat Pohon Biner Sebuah pohon biner bisa dibuat dengan dua cara. Cara pertama adalah dengan cara non rekursif, dan cara kedua adalah dengan cara rekursif. Untuk yang pertama keedua cara ini akan dicoba supaya kedua cara tersebut dapat dibandingkan. Tetapi untuk seterusnya menggunakan rekursif karena lebih singkat. Selain kedua cara di atas, perlu juga memperhatikan kapan suatu simpul akan dipasang sebagai cabang kiri dan kapan sebagai cabang kanan. Dalam algoritma cabang kiri dan cabang kanan ditentukan dengan cara simpul yang berisi informasi yang nilainya lebih besar dari simpul ayah akan ditempatkan sebagai cabang kanan, jika lebih kecil akan ditempatkan pada cabang kiri. Proses untuk memperoleh pohon biner seperti pada Gambar 2.10. dari untai ‘HAKCBL’ adalah sebagai berikut. Karakter pertama, ‘H’, ditempatkan sebagai akar. Karakter ‘K’, karena lebih besar dari ‘H’akan menempati cabang kanan. Karakter ‘A’, karena lebih kecil dari ‘H’, akan menempati cabang kiri dari ‘H’. kemudian karakter’C’ lebih kecil dari ‘H’ dan lebih besar dari ‘A’ maka diletakkan sebagai cabang kanan dari’A’. Demikian seterusnya sampai semua masukan diproses.
Gambar 2.10 Pohon Biner
2.6 Pohon Pencarian Biner (Binary Search Tree) Binary search tree (BST) adalah salah satu contoh penggunaan struktur data untuk menunjukkan bagaimana pengurutan sejumlah data yang diberikan akan mempengaruhi algoritma yang digunakan untuk menyelesaikan suatu persoalan Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
yang lengkap dengan kelebihan dan kekurangannya. Dimana tujuan pengurutan data adalah untuk lebih mempermudah pencarian data kelak dikemudian hari. Dalam hal pengurutan data ini nilai data dikatakan lebih kecil atau lebih besar dari yang lain didasarkan pada urutan relatif seperti dinyatakan dalam Tabel ASCII. Binary search tree adalah sebuah pohon pencarian yang berisi hanya dua buah cabang yang mana akan dicari simpul sebagai data yang dibutuhkan. Pada penelusuran binary tree ini ada kriteria tertentu yang penting yaitu suatu simpul akan diketakkan dalam cabang kiri apabila isi informasi yamg dikirimkan lebih kecil dibanding informasi pada akar, atau sebagai cabang kanan jika isi informasinya dinyatakan lebih besar dari akar. Dengan cara ini pencarian suatu data bisa dilakukan dengan cepat dan mudah. Dan persyartan tersebut dapat diperlihatkan pada Gambar 2.11.
Gambar 2.11 Syarat sebuah Binary Search Tree
2.7 Sandi Morse Sandi Morse adalah sistem representasi huruf, angka, dan tanda baca dengan menggunakan sinyal kode. Sandi Morse diciptakan oleh Samuel F. B. Morse dan Alfred Vail pada tahun 1835. (http://id.wikipedia.org/wiki/Morse) Sandi Morse juga digunakan dan dipelajari di dunia kepramukaan atau kepanduan. Dalam dunia kepramukaan Sandi Morse disampaikan menggunakan senter atau peluit pramuka. Sandi Morse disampaikan dengan cara menuip peluit dengan durasi pendek untuk mewakili titik dan meniup peluit dengan durasi panjang untuk mewakili garis. Untuk menghafalkan kode ini digunakan metode yang mengelompokkan huruf-huruf berdasarkan bagaimana huruf ini diwakili oleh Sandi Morse-nya. Pengelompokan tersebut antara lain alphabet dengan Sandi Morse yang Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
berkebalikan antara titik dan garis, misalnya huruf K yang diwakili oleh -.berkebalikan dengan huruf R yang diwakili oleh .-. dan alfabet dengan Sandi Morse berlawanan. Misalnya, huruf A yang diwakili oleh .- dan huruf N yang diwakili oleh -.. Kemampuan menerima dan mengirimkan Sandi Morse merupakan salah satu dari kecakapan yang dapat menerima Tanda Kecakapan Khusus. Sandi Morse juga digunakan sebagai kunci dalam memecahkan Sandi Rumput. Sandi Morse adalah contoh bentuk komunikasi digital awal. Sandi Morse juga digunakan dan dipelajari di dunia kepramukaan atau kepanduan. Dalam dunia kepramukaan Sandi Morse disampaikan menggunakan senter atau peluit pramuka. Sandi Morse disampaikan dengan cara menuip peluit dengan durasi pendek untuk mewakili titik dan meniup peluit dengan durasi panjang untuk mewakili garis. Sandi yang paling terkenal dalam Sandi Morse adalah SOS (... --- ...), yaitu kode yang biasanya digunakan untuk memanggil bantuan oleh para pelaut jika kapal mereka terjebak dalam bahaya. Huruf-huruf Morse terdiri dari dua macam tanda yaitu titik dan garis yang mengandung arti. Apabila menggunakan suara, titik itu dengan tiupan pendek dan garis tiupan panjang yang lamanya tiupan itu tiga kali titik. Antara titik dan garis untuk satu huruf adalah satu bilangan dan antara huruf dengan huruf tiga bilangan. Tabel 2.1 memperlihatkan sejumlah Sandi Morse yang dinyatakan sebagai kombinasi garis dan titik:
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Tabel 2.1 Sandi Morse Huruf
Sandi
Huruf
Sandi
Huruf
Sandi
Huruf
Sandi
A
.-
B
-…
C
-.-.
D
-..
E
.
F
..-.
G
--.
H
….
I
..
J
.---
K
-.-
L
.-..
M
--
N
-.
O
---
P
.--.
Q
--.-
R
.-.
S
…
T
-
U
..-
V
…-
W
.--
X
-..-
Y
-.--
Z
--..
.
.-.-.-
,
--..--
:
---…
-
-….-
/
-..-.
1
.----
2
..---
3
…--
4
….-
5
…..
6
-….
7
--…
8
---..
9
----.
0
-----
Sumber: Wikipedia Indonesia, Ensiklopedia Bebas Berbahasa Indonesia
Dari sejumlah sandi di atas bahwa struktur data yang dipakai adalah pohon biner. Dalam hal ini bisa ditentukan jika sandi yang dibaca adalah garis, maka bergerak ke cabang kanan dan jika yang dibaca adalah titik, maka bergerak ke cabang kiri. Dengan cara demikian maka dapat disusun sebuah pohon biner yang bisa menyajikan semua sandi.
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
BAB 3 PERANCANGAN PERANGKAT LUNAK
3.1 Proses Konversi Sandi Morse ke Teks dengan BST Untuk keperluan konversi dari teks ke dalam bentuk Sandi Morse, pada program yang dirancang hanya berdasarkan atas pengubahan setiap karakter teks yang diinput menjadi Sandi Morse seperti yang telah ditunjukkan pada Tabel 2.1. Sebagai contoh dapat diberikan seperti contoh berikut ini: Misalkan terdapat suatu teks berupa “ABC” maka hasil konversinya menjadi Sandi Morse sesuai dengan Tabel 2.1 adalah sebagai berikut: .- -… -.-. Sedangkan untuk proses sebaliknya yaitu proses konversi dari bentuk Sandi Morse menjadi teks kembali dilakukan dengan menggunakan BST dimana setiap karakter Sandi Morse akan dipisahkan oleh spasi yang berarti spasi ini dijadikan sebagai kode pemisah setiap karakter dan proses penelusuran dengan BST akan berakhir dan mencetak karakter output setiap kali menjumpai karakter spasi. Setiap kali menjumpai titik pada sandi input maka arah gerakan penelusuran pohan BST akan bergerak ke arah kiri sebaliknya jika terbaca karakter garis maka pola penelusuran akan bergerak kanan hingga pembacaan menjumpai spasi yang berarti pembacaan telah selesai dan karakter output akan dicetak. ..
E -
A
Gambar 3.1 Konversi Sandi Morse Huruf “A” Pada Gambar 3.1 memperlihatkan pola penelusuran dari Sandi Morse .Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
dimana pada pembacaan terhadap tanda titik maka dimulai dari root penelusuran akan bergerak ke arah kiri sehingga dijumpai karakter E. Karakter masih terdapat satu tanda lagi yaitu garis maka penelusuran akan dilanjutkan bergerak ke arah kanan dan dijumpai huruf A. Karena selanjutnya merupakan spasi pemisah antara Sandi Morse maka ini merupakan akhir dari tanda Sandi Morse sehingga huruf A akan di-output. -… -
T .
N .
D .
B
Gambar 3.2 Konversi Sandi Morse Huruf “B” Pada Gambar 3.2 memperlihatkan pola penelusuran untuk Sandi Morse -… - dimana pada pembacaan terhadap tanda garis maka dimulai dari root
penelusuran akan bergerak ke arah kanan sehingga dijumpai karakter T. Karakter masih terdapat satu tanda lagi yaitu titik maka penelusuran akan dilanjutkan bergerak ke arah kiri dan dijumpai huruf N. Selanjutnya pembacaan mendapatkan tanda titik lagi maka penelusuran dilanjutkan ke arah kiri dan dijumpai karakter D. Selanjutnya pembacaan mendapatkan tanda titik maka arah penelusuran bergerak ke arah kiri dan menjumpai karakter B. Karena selanjutnya merupakan spasi pemisah antara Sandi Morse maka ini merupakan akhir dari tanda Sandi Morse sehingga huruf B akan di-output.
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
-.-. -
T .
N -
K .
C Gambar 3.3 Konversi Sandi Morse Huruf “C” Pada Gambar 3.3 memperlihatkan pola penelusuran dari Sandi Morse -.-. dimana pada pembacaan terhadap tanda garis maka dimulai dari root penelusuran akan bergerak ke arah kanan sehingga dijumpai karakter T. Karakter masih terdapat satu tanda lagi yaitu titik maka penelusuran akan dilanjutkan bergerak ke arah kiri dan dijumpai huruf N. Selanjutnya pembacaan mendapatkan tanda garis sehingga arah penelusuran pohon akan bergerak ke kanan dan dijumpai karakter K. Selanjutnya pembacaan mendapatkan tanda titik sehingga arah penelusuran akan bergerak ke kanan sehingga dijumpai karakter C. Karena selanjutnya merupakan spasi pemisah antara Sandi Morse maka ini merupakan akhir dari tanda Sandi Morse sehingga huruf C akan di-output.
3.1.1 Algoritma Algoritma merupakan langkah-langkah maupun urutan bertahap dan spesifik dari suatu masalah. Secara umum algoritma pengaturan proses konversi program ini diperlihatkan pada Gambar 3.4. Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Start
Input Simbol Morse
Jika Tanda = “-”
Tidak
Arahkan Penelusuran ke Kiri dan Baca Karakter yang Ditemukan
Ya Arahkan Penelusuran ke Kanan dan Baca Karakter yang Ditemukan
Tidak
Jika Tanda = Spasi
Ya Output Karakter Terakhir Hasil Pembacaan
Stop
Gambar 3.4 Flow Chart Konversi Sandi Morse ke Teks Pada flow chart konversi Sandi Morse menjadi teks dilakukan dengan menginput setiap simbol dari Sandi Morse. Bila dijumpai tanda garis maka proses penelusuran terhadap pohon BST akan diarahkan ke sisi kanan dan setiap karakter yang dijumpai akan dibaca dan bila dijumpai karakter spasi maka hasil pembacaan terakhir akan di-output dan bila tidak proses akan dilanjutkan seperti pada bagian awal hingga tidak terdapat lagi Sandi Morse. Adapun bentuk flow chart dari proses ini diperlihatkan pada Gambar 3.5. Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Start
Input Karakter
Bentuk Pohon BST
Lakukan Pencarian Secara BST
Simpan Setiap Kode yang Ditelusuri
Karakter Terakhir dari Teks
Tidak
Ya
Ouput Hasil
Stop
Gambar 3.5 Flow Chart Konversi Teks ke Sandi Morse Pada flow chart konversi dari teks menjadi Sandi Morse dilakukan dengan menginput dan membaca setiap karakter pada teks setelah itu karakter tersebut akan diubah menjadi pola titik dan garis sesuai dengan tabel karakter – Sandi Morse. Setelah proses sebelumnya selesai maka hasilnya akan di-output dan pembacaan kemudian dilanjutkan dimana jika proses sebelumnya merupakan karakter terakhir dari teks maka proses akan berhenti jika tidak maka proses pembacaan dan konversi akan dilanjutkan kembali pada karakter berikutnya hingga semua karakter dalam teks selesai diproses. Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
3.1.2 Arsitektur Program Struktur program menggambarkan hubungan antara program dengan user, bagaimana interaksi user dengan user interface program. Gambar 3.6 merupakan diagram yang menggambarkan struktur program ini dengan user.
Form Tree
Form Kunjungan Pohon Morse
Form Kunjungan Morse ke Text
Form Konversi Teks ke Morse
Form About
Form Utama
Operating System
Form Help
Form Konversi Morse ke Teks
Gambar 3.6 Arsitektur Program
3.2 Perancangan Pada bagian perancangan ini akan dijelaskan mengenai perancangan tree untuk Sandi Morse, pembahasan mengenai perancangan perangkat lunak yang meliputi: perancangan tampilan menu dan perancangan tampilan perangkat lunak.
3.2.1 Perancangan Tree untuk Sandi Morse Pada sistem yang akan penulis rancang perlu didefinisikan suatu tree yang berisikan Sandi Morse dan karakter yang mewakilinya. Rancangan tree yang akan digunakan sistem pencarian dengan metode binary search tree yang akan digunakan pada program dapat dilihat pada Gambar 3.7.
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Gambar 3.7 Rancangan Tree Sandi Morse Dengan adanya rancangan tree dari Sandi Morse untuk pencarian metode binary search tree, menyebabkan pencarian lebih terstruktur dan seimbang. Dalam pengkodean Sandi Morse dengan metode Binary Search Tree yang akan dibuat, suatu tanda yang akan bergerak ke arah sandi yang dituju setelah lebih dahulu terjadi proses perbandingan. Akan terdapat dua buah pointer yang menunjukkan cabang suatu pohon yaitu cabang kiri dan cabang kanan. Informasi yang diterima atau yang dikirimkan baik itu berupa sandi atau karakter yang diletakkan ditengah-tengah informasi tersebut dibandingkan dengan simpul yang bertindak sebagai akar. Jika ditemukan, akan terjadi proses penterjemahan dan pencatatan.
3.2.2 Perancangan Perangkat Lunak Pada bagian perancangan perangkat lunak ini, penulis akan menguraikan mengenai bentuk tampilan menu yang dirancang dan ditempatkan pada perangkat lunak dan perancangan form dalam lingkungan Visual Basic 6.0.
3.2.2.1 Perancangan Tampilan Menu Pada aplikasi yang akan penulis rancang terdapat 4 (empat) bagian penting dalam penulusuran Sandi Morse melalui metode Binary Search Tree. Dimana masingmasing bagian berfungsi
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
1. Morse Code Tree Berfungsi untuk melihat langsung pergerakan pencarian karakter yang ada dan kunjungan yang dilakukan aplikasi pada Morse serta melihat konversi dari karakter yang ada. 2. Kunjungan Pohon Morse Berfungsi untuk melihat melihat daftar kunjungan tree tiap karakter dan mengetahui Sandi Morse yang berhasil dikonversikan. 3. Search Morse To Text Berfungsi melakukan melakukan search Sandi Morse yang ada menjadi text dan sekaligus melihat pergerakan Sandi Morse 4. Conversion Text To Morse Berfungsi mengkonversi suatu kalimat menjadi Sandi Morse secara langsung tanpa melihat kunjungan yang dilakukan. 5. Conversion Morse To Text Berfungsi untuk mengkonversi suatu Sandi Morse menjadi text secara langsung tapa melihat kunjungan yang dilakukan. Adapun tampilan rancangan menu dari aplikasi yang akan penulis buat dapat dilihat pada Gambar 3.8. Morse
About
Help
Quit
Morse Code Tree Kunjungan Pohon Morse Kunjungan Morse To Text Conversion Text To Morse Conversion Morse To Text
Gambar 3.8 Tampilan Menu Aplikasi
3.2.2.2 Perancangan Tampilan Perangkat lunak Adapun tampilan dari perangkat lunak yang penulis rancang terdiri dari 4 (empat) bagian penting dimana tampilan dari program yang akan penulis rancang dapat dilihat pada Gambar 3.9 sampai Gambar 3.13. Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Gambar 3.9 Rancangan Morse Code Tree
Gambar 3.10 Kunjungan Pohon Morse
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Gambar 3.11 Kunjungan Morse To Text
Gambar 3.12 Konversi Text To Morse
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Gambar 3.13 Konversi Morse to Text
3.2.3 Perancangan Suara Agar dapat menghasilkan suara dimana digunakan untuk membedakan antara titik dan garis pada saat pembacaan Sandi Morse, maka digunakan format file dalam bentuk wav yang akan dimainkan pada saat penelusuran setiap karakter dari Sandi Morse. Terdapat tiga jenis file wav yang digunakan dalam program ini yaitu: 1. File wav ”Titik.wav” digunakan untuk memainkan suara yang mewakili tanda titik. 2. File wav ”Kurang.wav” digunakan untuk memainkan suara yang mewakili tanda garis. 3. File wave ”Space.wav” digunakan untuk memainkan suara yang mewakili karakter pemisah spasi.
3.2.4 Pengujian Program Pengujian program ini menggunakan metode black box dimana setiap form dan tombol serta event diuji secara terpisah melalui proses debugging dan bila terdapat kesalahan maka akan dilakukan koreksi pada kode program hingga program dapat berjalan dengan benar dan sesuai hasil rancangan yang diinginkan. Metode prosedur yang diterapkan adalah error dan trial dimana setiap contoh input Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
masukkan akan dicocokkan dengan output apakah telah memberikan hasil yang diinginkan. Dimana pendefinisian implementasi adalah dapat melakukan proses konversi dari teks ke dalam Sandi Morse ataupun sebaliknya dan juga dapat melakukan penelusuran dimana pada bagian penelusuran kompleksitas dari algoritma BST adalah O(n) sesuai dengan jumlah kedalaman dari pohon BST. Pada proses pengujian yang dilakukan ternyata semua proses telah berjalan dengan baik dan telah memberikan hasil sesuai dan benar. Kontribusi dari BST pada program konversi teks ke Sandi Morse ini berfungsi sebagai pohon pencarian (searching tree) sehingga proses konversi dengan BST khususnya untuk mengubah teks ke dalam Sandi Morse menjadi lebih cepat dan mudah. Hasil kesimpulan dari pengujian dapat diperlihatkan pada Tabel 3.1. Tabel 3.1 Pengujian Hasil No Jenis Pengujian
Hasil
1.
Teks dan Sandi
Dari hasil pengujian teks dan Sandi Morse dapat
Morse dapat
dibedakan.
dibedakan 2.
Jenis Teks (Kode)
Alphanumerik dan karakter lain seperti: titik, koma,
yang diujikan
titik dua, kurang dan slash dapat diganti menjadi sandi morse dan sebaliknya .
3.
Jenis Kode ASCII
Kode ASCII untuk alphanumerik dan karakter lain
yang diuji
seperti: titik, koma, titik dua, kurang dan slash adalah jenis-jenis kode ASCII yang berhasil diuji.
4.
Jenis Karakter Lain
Tidak tersedia opsi seperti ini.
5.
Input dan Output
Hasil pengujian telah benar dan sesuai standar
sudah sesuai yang diharapkan
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
BAB 4 IMPLEMENTASI DAN PEMBAHASAN
4.1 Implementasi Pada implementasi aplikasi yang dirancang untuk dijalankan maka diperlukan spesifikasi perangkat lunak dan perangkat keras. Perangkat keras minimum dibutuhkan untuk menjalankan program ini adalah sebagai berikut: 1. Prosesor Pentium IV 2.0 MHz atau yang lebih tinggi 2. Harddisk dengan kapasitas 40 GB, dengan kapasitas minimum yang dipakai hanya sekitar 3 MB 3. Memori 256 MB 4. PCI sound card 5. VGA Card 4 MB dengan resolusi minimum 800 × 600, 16 bit 6. Monitor SVGA 7. Keyboard 9. Speaker Multimedia 8. Mouse Perangkat lunak yang dibutuhkan untuk menjalankan aplikasi ini adalah: 1. Windows 98/XP sebagai sistem operasi. 2. Driver VGA card 3. Driver sound card Tampilan Menu dari perangkat lunak Pengkodean Sandi Morse yang penulis kerjakan terdapat 4 menu utama yaitu Morse, About, Help dan Quit. Pada menu Morse terdapat 5 sub menu yang terdiri dari : Morse Code Tree, Kunjungan Pohon Morse, Kunjungan Morse to Text, Conversion Text To Morse, Conversion Morse to Text Untuk lebih jelasnya dapat dilihat pada Gambar 4.1.
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Gambar 4.1 Tampilan Menu Perangkat Lunak Pada tampilan layar Morse Code Tree yang ada berfungsi untuk melihat kunjungan yang dilakukan dengan menggunakan metode binary search tree yang dapat dilihat dari pergerakan pada tree yang ada jika pemakai memasukkan karakter yang akan dikonversikan. Untuk lebih jelas melihat pergerakan Morse dapat dilihat pada Gambar 4.2.
Gambar 4.2 Tampilan Layar Morse Code Tree Pada tampilan kunjungan pohon Morse pemakai dapat Sandi Morse dari suatu kata yang dimasukkan selain itu juga dapat dilihat pohon dari tiap karakter yang telah dikonversikan. Contoh tampilan ini diperlihatkan pada Gambar 4.3.
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Gambar 4.3 Kunjungan Pohon Tree Untuk melihat Sandi Morse yang ada dapat dilakukan pada form konversi Morse menjadi teks, dimana pemakai tinggal memasukkan Morse yang ada dan perangkat lunak yang ada akan langsung mengkonversi Morse yang dimasukkan dan menampilkan hasil konversi yang ada menjadi karakter yang dikenal. Contoh tampilan konversi Morse menjadi teks diperlihatkan pada Gambar 4.4.
Gambar 4.4 Kunjungan Morse To Text Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Pada
form
Konversi
Text
To
Morse
perangkat
lunak
akan
mengkonversikan tulisan yang dimasukkan pemakai dalam bentuk kalimat, dan langsung akan dikonversikan serta menampilkan Morse yang dimaksud, tampilan untuk konversi text to Morse dapat dilihat pada Gambar 4.5.
Gambar 4.5 Konvesi Text To Morse Pada
form
Konversi
Morse
To
Text
perangkat
lunak
akan
mengkonversikan Sandi Morse yang dimasukkan pemakai dalam bentuk kalimat, dan langsung akan dikonversikan serta menampilkan bentuk teks yang dimaksud, tampilan untuk konversi Morse To Text dapat dilihat pada Gambar 4.6.
Gambar 4.6 Konversi Morse To Text Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
4.2 Pembahasan Pemakaian Sandi Morse boleh jadi sudah dikatakan jarang digunakan pada zaman sekarang ini karena kemajuan teknologi yang mengakibatkan komunikasi dapat dilakukan jauh lebih mudah dan cepat dengan alat-alat komunikasi canggih seperti internet, telepon genggam, dan sebagainya. Namun, penggunaan Sandi Morse sebagai alat komunikasi tidak boleh dilupakan begitu saja. Penulis merancang perangkat lunak ini dengan tujuan agar dapat digunakan sebagai alat pembelajaran dan juga diharapkan dapat memberikan kemudahan bagi orang-orang awam yang belum mengerti Sandi Morse. Untuk menerapkan dan mengoptimalkan pemakaian perangkat lunak yang sudah dibuat, maka tidak hanya diperlukan adanya perangkat keras dan perangkat lunak sebagaimana telah dijelaskan dalam subbab sebelumnya, tetapi juga diperlukan kebutuhan perangkat manusia (brainware). Dalam segi perangkat ini lebih ditekankan pada kemampuan user (pemakai). Pemakai adalah orang yang memakai program aplikasi yang telah dibuat oleh programmer yang ada di dalam persekutuan atau berasal dari luar. Untuk memastikan bahwa program yang penulis rancang dapat dijalankan dengan baik, pastikan bahwa komputer telah berada dalam lingkungan Windows dan pastikan juga bahwa di komputer itu sendiri telah di-install Microsoft Visual Basic 6.0.
BAB 5 KESIMPULAN DAN SARAN
5.1 Kesimpulan Dari pembahasan yang penulis lakukan pada penulisan skripsi ini dapat ditarik beberapa kesimpulan antara lain : 1. Pengkodean Sandi Morse dengan Metode Binary Search Tree dapat menyajikan data hasil yang akurat dimana hasil pengkodean sesuai dengan Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
sistem Sandi Morse karena penerapan dari pola pencarian dari BST. 2. Penerjemahan dari kata/huruf ke Sandi Morse maupun dari Sandi Morse ke kata/huruf dapat menggunakan pohon/tree yaitu Binary Search Tree. 3. BST digunakan dalam aplikasi konversi Sandi Morse ini karena pola pencarian dari BST lebih terstruktur sehingga proses pencarian Sandi Morse menjadi lebih mudah dan cepat dimana hasil akhir dari suatu BST adalah node yang berupa setiap pola karakter teks dan setiap penelusuran melalui sisi kiri dapat direpresentasikan dengan titik dan penelusuran ke sisi kanan dapat direpresentasikan sebagai garis. Hal ini sesuai dengan Sandi Morse yang semuanya hanya terdiri atas kombinasi dari titik dan garis.
5.2 Saran Adapun saran yang dapat penulis berikan untuk mengembangkan perancangan perangkat lunak pengkodean Sandi Morse ini adalah: 1. Pada program yang dirancang hendaknya melakukan sinkronisasi suara sehingga suara untuk titik dan garis serta jeda antara karakter pemisah dapat didengar dengan jelas. 2. Dapat melakukan pengiriman data dengan jarak yang cukup jauh. 3. Menggunakan metode lain selain BST seperti algoritma genetik, depth first search, variable depth search sehingga dapat dilakukan perbandingan metode mana yang lebih baik untuk kasus pengkodean Sandi Morse. 4. Merancang program yang mampu menerjemahkan suara / bunyi menjadi teks ataupun Sandi Morse. DAFTAR PUSTAKA
Davis, G.B., 2001, Management Development, Mc Graw Hill International Book Company Dermawan Rizky, SE, MM, 2004, Pengambilan Keputusan Landasan Filosofis, Konsep dan Aplikasi. Hariyanto Bambang, 2000, Struktur Data, CV. Informatika, Bandung. Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
I.S. Slamet Sumantri, Nursalim FX, 1989, Pengantar Struktur data, PT Elex Media Komputindo, Jakarta Kadir Abdul, 1987, Pemrograman Dasar Turbo Pascal, Andi Offset, Yogyakarta. Kenneth E. Kendall dan Julie E. Kendall, 2003, Analisa Dan Perancangan Sistem, Jilid I Dan Jilid II. Edisi-5. Alih Bahasa Thamrin Abdul Hafedh. Jakarta: Penerbit P.T. Indeks. Kode Morse - Wikipedia Indonesia, ensiklopedia bebas berbahasa Indonesia.mht. 26 Juli 2008. Rahmat Putra, 2005, The Best Source Code Visual Basic, Penerbit PT. Elex Media Komputindo, Jakarta Santoso Insap, P. Ir, M. Sc, 1992, Struktur Data menggunakan Turbo Pascal 6.0, Andi Offset, Yogyakarta.
LISTING PROGRAM ********************* * File: frmHelp.frm * ********************* Private Sub Form_Load() Label1(2).Caption = "a. & Chr(10) & Chr(13) & _ "b. Chr(10) & Chr(13) & _ "c. Chr(13) & _ "d.
Mengubah kalimat menjadi sandi morse" Mengubah sandi menjadi suara " & Melakukan kunjungan" & Chr(10) & Mengubah sandi morse menjadi kalimat"
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
End Sub
************************ * File: frmKunjung.frm * ************************ Private Sub Command1_Click() For I = 0 To 19 If Text1(I).Text <> "" Then For J = 1 To 64 '48 If Text1(I) = Mid(Huruf, J, 1) Then Label1(I) = Kode(J) Label1(I).BackStyle = 1 End If Next End If Next End Sub Private Sub Command2_Click() For I = 0 To 19 If Text1(I).Text <> "" Then If Text1(I) >= "A" And Text1(I) <= "Z" Then Image1(I).Picture = LoadPicture(App.Path & "\Picture\" & Text1(I) & ".BMP") If Text1(I) >= "0" And Text1(I) <= "9" Then Image1(I).Picture = LoadPicture(App.Path & "\Picture\" & Text1(I) & ".BMP") If Text1(I) = "!" Then Image1(I).Picture = LoadPicture(App.Path & "\Picture\Seru.BMP") If Text1(I) = " " Then Image1(I).Picture = LoadPicture(App.Path & "\Picture\Space.BMP") 'If Text1(I) = "(" Then Image1(I).Picture = LoadPicture(App.Path & "\Picture\BK.BMP") 'If Text1(I) = ")" Then Image1(I).Picture = LoadPicture(App.Path & "\Picture\TK.BMP") If Text1(I) = "/" Then Image1(I).Picture = LoadPicture(App.Path & "\Picture\TK.BMP") 'If Text1(I) = """" Then Image1(I).Picture = LoadPicture(App.Path & "\Picture\K2.BMP") If Text1(I) = "," Then Image1(I).Picture = LoadPicture(App.Path & "\Picture\Koma.BMP") If Text1(I) = "-" Then Image1(I).Picture = LoadPicture(App.Path & "\Picture\Kurang.BMP") If Text1(I) = "." Then Image1(I).Picture = LoadPicture(App.Path & "\Picture\Titik.BMP") If Text1(I) = ":" Then Image1(I).Picture = LoadPicture(App.Path & "\Picture\DTitik.BMP") 'If Text1(I) = ";" Then Image1(I).Picture = LoadPicture(App.Path & "\Picture\TitikKoma.BMP") 'If Text1(I) = "?" Then Image1(I).Picture = LoadPicture(App.Path & "\Picture\Tanya.BMP") End If Next End Sub Private Sub Command3_Click() Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
For I = 0 To 19 Text1(I).Text = "" Image1(I).Picture = LoadPicture("") Label1(I) = "" Label1(I).BackStyle = 0 Next End Sub Private Sub Command4_Click() Unload Me End Sub Private Sub Form_Load() Command3_Click End Sub
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii >= vbKeyA And KeyAscii <= vbKeyZ Or _ KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Or _ KeyAscii = Asc("!") Or KeyAscii = Asc("""") Or _ KeyAscii = Asc("`") Or _ KeyAscii = Asc(" ") Or KeyAscii = Asc("(") Or _ KeyAscii = Asc(")") Or KeyAscii = Asc("'") Or _ KeyAscii = Asc("-") Or KeyAscii = Asc(".") Or _ KeyAscii = Asc(":") Or KeyAscii = Asc(";") Or _ KeyAscii = Asc("?") Then If Index < 19 Then Text1(Index + 1).SetFocus Exit Sub End If If KeyAscii = vbKeyBack Then If Index > 0 Then Text1(Index - 1).SetFocus Exit Sub End If KeyAscii = 0 End Sub
********************** * File: frmMTtoT.frm * **********************
Private Sub Command1_Click() For I = 0 To 19 Text2(I) = "" Next For I = 0 To 99 Text1(I) = "" If I > 0 And I < 49 Then Label1(I) = "" Label1(I).BackColor = vbWhite Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
End If Next End Sub Private Sub Command2_Click() Unload Me End Sub Private Sub Form_Load() Command1_Click For I = 0 To 99 Text1(I).TabIndex = I + 1 Next End Sub Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer) If KeyAscii = Asc(".") Or KeyAscii = Asc("-") Then If Index < 100 Then Text1(Index + 1).SetFocus If KeyAscii = Asc(".") Then sndPlaySound App.Path & "\Sound\Windows XP Ding.wav", SND_LOOP Else sndPlaySound App.Path & "\Sound\SOUND20.WAV", SND_LOOP End If Exit Sub End If If KeyAscii = vbKeyBack Then If Index > 0 Then Text1(Index - 1).SetFocus Exit Sub End If If KeyAscii = vbKeyReturn Then Text1(((Index \ 5 + 1) * 5)).SetFocus Exit Sub End If KeyAscii = 0 End Sub Private Sub Text1_LostFocus(Index As Integer) For J = 0 To 19 morse = Text1(J * 5) + Text1(J * 5 + 1) + Text1(J * 5 + 2) + Text1(J * 5 + 3) + Text1(J * 5 + 4) For I = 1 To 64 '48 If morse = Kode(I) Then Text2(J) = Mid(Huruf, I, 1) End If Next Next For I = 1 To 64 '48 Label1(I) = "" Next For J = 0 To 19 morse = Text1(J * 5) + Text1(J * 5 + 1) + Text1(J * 5 + 2) + Text1(J * 5 + 3) + Text1(J * 5 + 4) For I = 1 To 64 '48 If morse = Kode(I) Then If morse <> "" Then Label1(I).BackColor = vbCyan Label1(I) = Mid(Huruf, I, 1) End If Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Next Next End Sub Private Sub Timer1_Timer() Dim str As String str = lblRunningText.Caption str = Mid$(str, 2, Len(str)) + Left(str, 1) lblRunningText.Caption = str End Sub ********************* * File: frmTree.frm * *********************
Private Sub Command1_Click() For A = 0 To 19 If Text1(A).Text <> "" Then For J = 1 To 64 '48 If Text1(A) = Mid(Huruf, J, 1) Then morse = Kode(J) Exit For End If Next If Text1(A) >= "A" And Text1(A) <= "Z" Or Text1(A) >= "0" And Text1(A) <= "9" Then sndPlaySound App.Path & "\Sound\" & Text1(A) & ".wav", SND_LOOP Else Select Case Text1(A) Case "!": sndPlaySound App.Path & "\Sound\Seru.wav", SND_LOOP Case " ": sndPlaySound App.Path & "\Sound\Space.wav", SND_LOOP Case """": sndPlaySound App.Path & "\Sound\K2.wav", SND_LOOP Case "`": sndPlaySound App.Path & "\Sound\seru.wav", SND_LOOP Case "(": sndPlaySound App.Path & "\Sound\BK.wav", SND_LOOP Case ")": sndPlaySound App.Path & "\Sound\TK.wav", SND_LOOP Case "'": sndPlaySound App.Path & "\Sound\K1.wav", SND_LOOP Case "-": sndPlaySound App.Path & "\Sound\Kurang.wav", SND_LOOP Case ".": sndPlaySound App.Path & "\Sound\Titik.wav", SND_LOOP Case ":": sndPlaySound App.Path & "\Sound\DTitik.wav", SND_LOOP Case ";": sndPlaySound App.Path & "\Sound\TitikKoma.wav", SND_LOOP Case "?": sndPlaySound App.Path & "\Sound\Tanya.wav", SND_LOOP End Select Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
End If sndPlaySound App.Path & "\Sound\MORSE.wav", SND_LOOP For K = 1 To Len(morse) If Mid(morse, K, 1) = "." Then sndPlaySound App.Path & "\Sound\Windows XP Ding.wav", SND_LOOP Else sndPlaySound App.Path & "\Sound\SOUND20.WAV", SND_LOOP End If Next ' Sleep 500 End If Next End Sub Private Sub Command2_Click() For I = 0 To 19 Text1(I).Text = "" Next For I = 1 To 64 '48 Label1(I).BackColor = vbWhite Next I Label4 = "" Label5 = "" Label6 = "" End Sub Private Sub Command3_Click() Unload Me End Sub Private Sub Form_Load() For I = 1 To 64 '48 Label1(I).Caption = Mid(Huruf, I, 1) Next I ' Player1.Visible = False ' kode(1) = ".": kode(2) = "-": kode(3) = "..": kode(4) = ".-": kode(5) = "-.": kode(6) = "--": kode(7) = "...": kode(8) = "..-": kode(9) = ".-." ' kode(10) = ".--": kode(11) = "-..": kode(12) = "-.-": kode(13) = "--.": kode(14) = "---": kode(15) = "....": kode(16) = "...-": kode(17) = "..-.": kode(18) = "..--": kode(19) = ".-.." ' kode(20) = ".-.-": kode(21) = ".--.": kode(22) = ".---": kode(23) = "-...": kode(24) = "-..-": kode(25) = "-.-.": kode(26) = "-.--": kode(27) = "--..": kode(28) = "--.-": kode(29) = "---." ' kode(30) = "----": kode(31) = ".....": kode(32) = "....-": kode(33) = "...-.": kode(34) = "...--": kode(35) = "..-..": kode(36) = "..-.-": kode(37) = "..--.": kode(38) = "..---": kode(39) = ".-..." ' kode(40) = ".-..-": kode(41) = ".-.-.": kode(42) = ".-.--": kode(43) = ".--..": kode(44) = ".--.-": kode(45) = ".---.": kode(46) = ".----": kode(47) = "-....": kode(48) = "-...-" Command2_Click End Sub
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii >= vbKeyA And KeyAscii <= vbKeyZ Or _ KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Or _ KeyAscii = Asc("!") Or KeyAscii = Asc("""") Or _ KeyAscii = Asc("`") Or _ KeyAscii = Asc(" ") Or KeyAscii = Asc("(") Or _ KeyAscii = Asc(")") Or KeyAscii = Asc("'") Or _ KeyAscii = Asc("-") Or KeyAscii = Asc(".") Or _ KeyAscii = Asc(":") Or KeyAscii = Asc(";") Or _ KeyAscii = Asc("?") Then If Index < 19 Then Text1(Index + 1).SetFocus Exit Sub End If If KeyAscii = vbKeyBack Then If Index > 0 Then Text1(Index - 1).SetFocus Exit Sub End If KeyAscii = 0 End Sub Private Sub Text1_LostFocus(Index As Integer) Label4 = "" Label5 = "" Label6 = "" For J = 1 To 64 '48 Label1(J).BackColor = vbWhite Next For I = 0 To 19 If Text1(I).Text <> "" Then For J = 1 To 64 '48 If Text1(I) = Mid(Huruf, J, 1) Then morse = Kode(J) Label1(J).BackColor = vbCyan End If Next Label4 = Label4 + morse + Chr(10) + Chr(13) Label5 = Label5 + Text1(I) + Chr(10) + Chr(13) Label6 = Label6 + "=" + Chr(10) + Chr(13) End If Next End Sub Private Sub Timer1_Timer() Dim str As String str = lblRunningText.Caption str = Mid$(str, 2, Len(str)) + Left(str, 1) lblRunningText.Caption = str End Sub
********************* * File: frmTToM.frm * ********************* Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Private Sub Command1_Click() Label1 = "" For I = 1 To Len(Text1) For J = 1 To 64 '48 If Mid(Text1, I, 1) = Mid(Huruf, J, 1) Then Label1 = Label1 + " " + Kode(J) Next Next End Sub Private Sub Command2_Click() I = 1 For K = 1 To Len(Label1) If Mid(Label1, K, 1) = "." Then sndPlaySound App.Path & "\Sound\Windows XP Ding.wav", SND_LOOP ElseIf Mid(Label1, K, 1) = "-" Then sndPlaySound App.Path & "\Sound\SOUND20.WAV", SND_LOOP Else Sleep 300 txt = Mid(Text1, I, 1) I = I + 1 If txt >= "A" And txt <= "Z" Or txt >= "0" And txt <= "9" Then sndPlaySound App.Path & "\Sound\" & txt & ".wav", SND_LOOP Else Select Case txt Case "!": sndPlaySound App.Path & "\Sound\Seru.wav", SND_LOOP Case " ": sndPlaySound App.Path & "\Sound\Space.wav", SND_LOOP Case """": sndPlaySound App.Path & "\Sound\K2.wav", SND_LOOP Case "`": sndPlaySound App.Path & "\Sound\seru.wav", SND_LOOP Case "(": sndPlaySound App.Path & "\Sound\BK.wav", SND_LOOP Case ")": sndPlaySound App.Path & "\Sound\TK.wav", SND_LOOP Case "'": sndPlaySound App.Path & "\Sound\K1.wav", SND_LOOP Case "-": sndPlaySound App.Path & "\Sound\Kurang.wav", SND_LOOP Case ".": sndPlaySound App.Path & "\Sound\Titik.wav", SND_LOOP Case ":": sndPlaySound App.Path & "\Sound\DTitik.wav", SND_LOOP Case ";": sndPlaySound App.Path & "\Sound\TitikKoma.wav", SND_LOOP Case "?": sndPlaySound App.Path & "\Sound\Tanya.wav", SND_LOOP End Select End If sndPlaySound App.Path & "\Sound\MORSE.wav", SND_LOOP End If Next End Sub Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Private Sub Command3_Click() Text1 = "" Label1.Caption = "" End Sub Private Sub Command4_Click() Unload Me End Sub Private Sub Form_Load() Command3_Click End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii >= vbKeyA And KeyAscii <= vbKeyZ Or _ KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Or _ KeyAscii = Asc("!") Or KeyAscii = Asc("""") Or _ KeyAscii = Asc("`") Or KeyAscii = vbKeyBack Or _ KeyAscii = Asc(" ") Or KeyAscii = Asc("(") Or _ KeyAscii = Asc(")") Or KeyAscii = Asc("'") Or _ KeyAscii = Asc("-") Or KeyAscii = Asc(".") Or _ KeyAscii = Asc(":") Or KeyAscii = Asc(";") Or _ KeyAscii = Asc("?") Then Exit Sub End If If KeyAscii = vbKeyReturn Then Command1_Click KeyAscii = 0 End Sub
****************** * File: Menu.frm * ****************** Private Sub MnAbout_Click() FmAbout.Show vbModal End Sub Private Sub MnHelp_Click() FmHelp.Show vbModal End Sub Private Sub MnKunjung_Click() FmKunjung.Show End Sub Private Sub MnMorseToText_Click() FmMToT.Show End Sub Private Sub MnMorseToText2_Click() frmmain.Show End Sub Private Sub MnQuit_Click() End Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
End Sub Private Sub MnTextToMorse_Click() FmTToM.Show End Sub Private Sub MnTree_Click() FmTree.Show End Sub ******************** * File:frmMain.frm * ******************** Private Sub cmdcode_Click() txtmorse = textnaarmorse(txttext.Text) End Sub Private Sub cmdcopy_Click() Clipboard.SetText (txtmorse.Text) End Sub Private Sub cmddecode_Click() txtmorse.Text = morsenaartext(txttext.Text) End Sub Private Sub cmdend_Click() Unload Me End Sub Private Sub cmdHapus_Click() txttext.Text = "" txtmorse.Text = "" End Sub
********************* * File: Module1.bas * ********************* Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal _ lpszSoundName As String, ByVal uFlags As Long) As Long Public Kode(64) As String Public Huruf As String Sub Main() 'Huruf = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 !""`()'-.:;?" 'Huruf = "ETIANMSURWDKGOHVF?L;PJBXCYZQ:-/1234567890 !""`()'" Huruf = "ETIANMSURWDKGOHVF L PJBXCYZQ 54 3 2 16 7 8 90/ : - . ," Kode(1) Kode(2) Kode(3) Kode(4) Kode(5)
= = = = =
"." "-" ".." ".-" "-."
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Kode(6) = "--" Kode(7) = "..." Kode(8) = "..-" Kode(9) = ".-." Kode(10) = ".--" Kode(11) = "-.." Kode(12) = "-.-" Kode(13) = "--." Kode(14) = "---" Kode(15) = "...." Kode(16) = "...-" Kode(17) = "..-." Kode(18) = "..--" Kode(19) = ".-.." Kode(20) = ".-.-" Kode(21) = ".--." Kode(22) = ".---" Kode(23) = "-..." Kode(24) = "-..-" Kode(25) = "-.-." Kode(26) = "-.--" Kode(27) = "--.." Kode(28) = "--.-" Kode(29) = "---." Kode(30) = "----" Kode(31) = "....." '5 Kode(32) = "....-" '4 Kode(33) = "" Kode(34) = "...--" '3 Kode(35) = "" Kode(36) = "" Kode(37) = "" Kode(38) = "..---" '2 Kode(39) = "" Kode(40) = "" Kode(41) = "" Kode(42) = "" Kode(43) = "" Kode(44) = "" Kode(45) = "" Kode(46) = ".----" '1 Kode(47) = "-...." '6 Kode(48) = "" Kode(49) = "--..." '7 Kode(50) = "" Kode(51) = "---.." '8 Kode(52) = "" Kode(53) = "----." '9 Kode(54) = "-----" '0 Kode(55) = "-..-." '/ Slash Kode(56) = "" Kode(57) = "---..." ': titik dua Kode(58) = "" Kode(59) = "" Kode(60) = "-....-" 'Tanda kurang Kode(61) = "" Kode(62) = ".-.-.-" 'Tanda titik . Kode(63) = "" Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Kode(64) = "--..--" Menu.Show End Sub
'Tanda koma ,
********************* * File: mdlmorx.bas * ********************* Public Function textnaarmorse(welketext As String) Dim start2 As Integer Dim lengte As Integer Dim letter As String Dim omgezet As String lengte = Len(welketext) Do While start2 <= lengte DoEvents start2 = start2 + 1 letter = Mid(LCase(welketext), start2, 1) Select Case letter 'lower case Case "a" letter = ".-/" Case "b" letter = "-.../" Case "c" letter = "-.-./" Case "d" letter = "-../" Case "e" letter = "./" Case "f" letter = "..-./" Case "g" letter = "--./" Case "h" letter = "..../" Case "i" letter = "../" Case "j" letter = ".---/" Case "k" letter = "-.-/" Case "l" letter = ".-../" Case "m" letter = "--/" Case "n" letter = "-./" Case "o" letter = "---/" Case "p" letter = ".--./" Case "q" letter = "--.-/" Case "r" letter = ".-./" Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Case "s" letter = Case "t" letter = Case "u" letter = Case "v" letter = Case "w" letter = Case "x" letter = Case "y" letter = Case "z" letter = Case " " letter = 'numbers Case "1" letter = Case "2" letter = Case "3" letter = Case "4" letter = Case "5" letter = Case "6" letter = Case "7" letter = Case "8" letter = Case "9" letter = Case "0" letter =
' '
' '
".../" "-/" "..-/" "...-/" ".--/" "-..-/" "-.--/" "--../" "/"
".----/" "..---/" "...--/" "....-/" "...../" "-..../" "--.../" "---../" "----./" "-----/"
'caps Case "A" letter = "$)c" 'Special characters Case "!" letter = "\" & Chr(34) & "]" End Select omgezet = omgezet & letter
DoEvents Loop textnaarmorse = omgezet & "/" End Function Public Function morsenaartext(welketext As String) Dim start2 As Integer Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Dim lengte As Integer Dim letter As String Dim omgezet As String Dim sp As Integer start2 = start2 + 1 lengte = Len(welketext) Do While start2 <= lengte DoEvents sp = 6 letter = Mid(welketext, start2, sp) Select Case letter 'numbers Case ".----/" letter = "1": Case "..---/" letter = "2": Case "...--/" letter = "3": Case "....-/" letter = "4": Case "...../" letter = "5": Case "-..../" letter = "6": Case "--.../" letter = "7": Case "---../" letter = "8": Case "----./" letter = "9": Case "-----/" letter = "0": End Select
GoTo mor GoTo mor GoTo mor GoTo mor GoTo mor GoTo mor GoTo mor GoTo mor GoTo mor GoTo mor
sp = 5 letter = Mid(welketext, start2, sp) Select Case letter 'lower case Case "-.../" letter = "b": GoTo mor Case "-..-/" letter = "x": GoTo mor Case "-.-./" letter = "c": GoTo mor Case "-.--/" letter = "y": GoTo mor Case "--../" letter = "z": GoTo mor Case "--.-/" letter = "q": GoTo mor Case "..../" letter = "h": GoTo mor Case "...-/" letter = "v": GoTo mor Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
Case "..-./" letter = "f": Case ".---/" letter = "j": Case ".--./" letter = "p": Case ".-../" letter = "l":
GoTo mor GoTo mor GoTo mor GoTo mor
End Select sp = 4 letter = Mid(welketext, start2, sp) Select Case letter Case "-../" letter = "d": Case "-.-/" letter = "k": Case "--./" letter = "g": Case "---/" letter = "o": Case ".--/" letter = "w": Case "..-/" letter = "u": Case ".../" letter = "s": Case ".-./" letter = "r": End Select
GoTo mor GoTo mor GoTo mor GoTo mor
GoTo mor GoTo mor GoTo mor GoTo mor
sp = 3 letter = Mid(welketext, start2, sp) Select Case letter Case "-./" letter = "n": GoTo mor Case "--/" letter = "m": GoTo mor Case ".-/" letter = "a": GoTo mor Case "../" letter = "i": GoTo mor End Select sp = 2 letter = Mid(welketext, start2, sp) Select Case letter Case "-/" letter = "t": GoTo mor Case "./" letter = "e": GoTo mor End Select sp = 1 Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009
letter = Mid(welketext, start2, sp) Select Case letter Case "/" letter = " ": GoTo mor End Select mor: omgezet = omgezet & letter start2 = start2 + sp DoEvents Loop morsenaartext = omgezet End Function
Hermiaty Honggo : Rancangan Perangkat Lunak Pengkodean Sandi Morse Dengan Metode BST (Binary Search Tree), 2009. USU Repository © 2009