TUGAS AKHIR
SIMULASI PENGKODEAN HAMMING UNTUK MENGHITUNG BIT ERROR RATE Diajukan untuk memenuhi salah satu persyaratan dalam menyelesaikan pendidikan sarjana (S-1) pada Departemen Teknik Elektro
Oleh :
IRSAN NIM : 040402074
DEPARTEMEN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS SUMATERA UTARA MEDAN 2009
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
ABSTRAK
Pada sistem komunikasi digital, kendala yang paling berat adalah adanya bit error yang terjadi akibat adanya noise yang timbul disepanjang saluran transmisi. Akibat adanya bit error ini maka data-data yang diterima pada sistem penerima akan rusak dan tidak bisa diterjemahkan. Ada berbagai metode penanganan error dengan cara mengurangi dampak noise terhadap data maupun pengurangan noise pada saluran transmisi. Akan tetapi data yang diterima masih terjadi error. Sehingga dicari solusi metode penanganan error dengan pemeriksaan bit. Metode yang digunakan adalah dengan backward error control(BEC) dan forward error control(FEC). Pada FEC digunakan teknik pengkodean untuk menangani masalah error pada data. Dalam sistem komunikasi digital ada banyak kode-kode yang dapat digunakan dalam melakukan pengkodean, seperti Kode Hamming, Kode Reed-Solomon, Kode BCH dan lain-lain. Pada Tugas Akhir ini akan dibuat simulasi Pengkodean Hamming untuk menghitung Bit Error Rate. Dari simulasi pengkodean Hamming diperoleh bahwa probabilitas error kanal sebelum digunakan pengkodean Hamming dapat diperkecil setelah menggunakan pengkodean Hamming, misalnya probabilitas error kanal sebelum digunakan pengkodean Hamming adalah 5,3x10-2, maka setelah digunakan pengkodean Hamming diperoleh Bit Error Rate hasil simulasi adalah 7,25x10-3.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas kasih dan karunia sehingga penulis dapat menyelesaikan Tugas Akhir yang berjudul : “Simulasi Pengkodean Hamming untuk Menghitung Bit Error Rate” Penulisan Tugas Akhir ini dibuat sebagai salah satu syarat untuk menyelesaikan pendidikan sarjana di Departemen Teknik Elektro, Fakultas Teknik, Universitas Sumatera Utara. Tugas Akhir ini penulis persembahkan kepada orang tua penulis serta saudara – saudari penulis yang selalu memberikan dukungan kepada penulis. Penulis juga ingin menyampaikan ucapan terima kasih yang sebesar-besarnya kepada : 1. Bapak Ir. Nasrul Abdi, MT selaku Ketua Departemen Teknik Elektro, Fakultas Teknik, Universitas Sumatera Utara. 2. Bapak Rahmad Fauzi, ST, MT selaku Sekretaris Departemen Teknik Elektro, Fakultas Teknik, Universitas Sumatera Utara. 3. Bapak Ir. M. Zulfin, MT selaku dosen pembimbing Tugas Akhir penulis yang telah
memberikan
bimbingan,
pengarahan,
dan
motivasi
dalam
menyelesaikan Tugas Akhir ini. 4. Seluruh staf pengajar Departemen Teknik Elektro, khususnya Konsentrasi Teknik Telekomunikasi yang telah membekali penulis di bidang Teknik Telekomunikasi.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
5. Kepada seluruh teman – teman di Departemen Teknik Elektro USU angkatan 2004 yang selama ini telah menjadi teman seperjuangan dalam hari kuliah. 6. Serta
semua
pihak
yang
telah
banyak
membantu
penulis
dalam
menyelesaikan Tugas Akhir ini yang tidak dapat disebutkan satu persatu. Penulis menyadari bahwa Tugas Akhir ini masih jauh dari sempurna. Oleh karena itu, penulis mengharapkan saran dan kritik yang bersifat membangun untuk Tugas Akhir ini. Akhir kata penulis berharap semoga penulisan Tugas Akhir ini bermanfaat bagi kita semua.
Medan, 12 Februari 2009
Penulis
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
DAFTAR ISI
ABSTRAK ..........................................................................................................i KATA PENGANTAR ........................................................................................ii DAFTAR ISI .......................................................................................................iv DAFTAR GAMBAR ..........................................................................................vii DAFTAR TABEL ..............................................................................................viii
I.
II.
PENDAHULUAN .................................................................................1 1.1
Latar Belakang ...................................................................................1
1.2
Rumusan Masalah ..............................................................................2
1.3
Tujuan Penulisan ................................................................................2
1.4
Batasan Masalah.................................................................................2
1.5
Metode Penulisan ...............................................................................3
1.6
Sistematika Penulisan.........................................................................3
PENGKODEAN DAN KODE HAMMING .......................................5 2.1. Sistem Komunikasi Digital ................................................................5 2.1.1. Elemen Dasar Sistem Komunikasi Digital.............................6 2.2. Konsep Dasar Sistem Pengkodean.....................................................7 2.2.1. Pengkodean Hamming ...........................................................8 2.2.2. Pendekodean Hamming..........................................................11 2.2.3. Contoh Sederhana Proses Pengkodean Hamming..................12
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
III.
PEMODELAN DAN SIMULASI ........................................................16 3.1. Umum.................................................................................................16 3.2. Keunggulan dan kelemahan simulasi.................................................17 3.3. Klasifikasi Model ...............................................................................19 3.4. Bilangan Acak ....................................................................................21 3.4.1. Bilangan Acak Normal...........................................................23 3.4.2. Bilangan Acak Poisson...........................................................23
IV.
PERANCANGAN DAN ANALISA PROGRAM SIMULASI..........26 4.1
Umum.................................................................................................26
4.2
Asumsi................................................................................................26
4.3
Model .................................................................................................27 4.3.1. Sumber data............................................................................27 4.3.2. Enkoder ..................................................................................28 4.3.3. Kanal ......................................................................................29 4.3.4. Dekoder ..................................................................................30 4.3.5. Data yang Diterima ................................................................31
4.4
Diagram Alir ......................................................................................31 4.4.1. Diagram Alir Sumber data .....................................................31 4.4.2. Diagram Alir Enkoder ............................................................33 4.4.3. Diagram Alir Kanal ................................................................35 4.4.4. Diagram Alir Dekoder............................................................37 4.4.5. Diagram Alir Data yang Diterima ..........................................39
4.5
Implementasi Program Simulasi ........................................................40
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
V.
4.6
Analisa Bit Error Rate dengan Program Simulasi .............................44
4.7
Analisa Bit Error Rate secara Analisis ..............................................49
4.8
Grafik Hubungan antara BER kanal dan BER data ...........................49
KESIMPULAN DAN SARAN .............................................................50
DAFTAR PUSTAKA LAMPIRAN
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
DAFTAR GAMBAR
Gambar 2.1
Blok Diagram Komunikasi Digital................................................6
Gambar 2.2
Gambar Diagram Bit pariti dan data .............................................9
Gambar 3.1
Cara Mempelajari Sistem ..............................................................16
Gambar 4.1
Model Simulasi..............................................................................27
Gambar 4.2
Diagram Alir Sumber Data............................................................32
Gambar 4.3
Diagram Alir Enkoder ...................................................................34
Gambar 4.4
Diagram Alir Kanal .......................................................................36
Gambar 4.5
Diagram Alir Dekoder...................................................................38
Gambar 4.6
Diagram Alir Data yang Diterima .................................................39
Gambar 4.7
Tampilan Program Simulasi ..........................................................40
Gambar 4.8
Tampilan Hasil Simulasi ...............................................................42
Gambar 4.9
Grafik Probabilitas Error Kanal Vs Bit Error Rate .......................49
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
DAFTAR TABEL
Tabel 4.1.
Hasil Simulasi Untuk BER kanal 10-1 ...........................................45
Tabel 4.2.
Hasil Simulasi Untuk BER kanal 10-2 ...........................................46
Tabel 4.3.
Hasil Simulasi Untuk BER kanal 10-3 ...........................................48
Tabel 4.4
Tabel Hubungan BER kanal dan BER data secara Analisis..........49
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
BAB I PENDAHULUAN 1.1
Latar Belakang Pada saat ini perkembangan di bidang Telekomunikasi sangat pesat, khususnya
dalam komunikasi digital. Disamping itu perkembangan pemakaian komputer yang pesat juga mendorong pemakaian komunikasi digital, bahkan banyak jaringan komunikasi analog yang mulai beralih ke komunikasi digital. Komunikasi digital memiliki tingkat ketahanan yang lebih tinggi terhadap noise, karena memiliki metode pengendalian error yang hanya bisa diterapkan pada sistem komunikasi digital. Metode itu adalah BEC dan FEC. Kedua metode di atas hanya bisa diterapkan pada sistem komunikasi yang memanfaatkan binary digit (bit), dimana data yang dikirimkan diubah ke dalam bitbit terlebih dahulu. Bit-bit data ini akan diperiksa pada sisi penerima untuk mengetahui data yang diterima terdapat error atau tidak. Dengan adanya kedua metode ini maka error pada data yang diterima lebih sedikit. Pada sistem telekomunikasi, hal yang paling penting adalah bagaimana cara mengirimkan suatu informasi dari satu tempat ke tempat yang lain, dimana informasi yang diterima sesuai dengan informasi yang dikirimkan, dengan kata lain informasi yang diterima adalah bebas error. Untuk itu sangat diperlukan pemahaman terhadap metode penanganan error, diketahui kemampuan suatu metode dalam menangani error dan diketahui metode yang paling cocok digunakan pada suatu sistem telekomunikasi agar sistem tersebut bebas dari error. Oleh karena itu pada Tugas Akhir ini akan dibahas salah satu dari metode penanganan error yaitu FEC yang memiliki kemampuan untuk mengoreksi kesalahan. Pada FEC terdapat beberapa teknik pengkodean yang dapat digunakan
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
untuk mengkoreksi error pada data yang diterima, seperti Kode Hamming, Kode BCH, Kode Reed Solomon, dan lain-lain. Pada Tugas Akhir ini akan dibahas tentang Kode Hamming.
1.2
Rumusan Masalah Dari latar belakang di atas, maka dapat dirumuskan beberapa permasalahan
antara lain :
1.3
1.
Bagaimana prinsip kerja sistem komunikasi digital ?
2.
Bagaimana prinsip kerja pengkodean Hamming ?
3.
Bagaimana pembuatan simulasi pengkodean Hamming ?
4.
Bagaimana pembangkitan bilangan acak untuk data dan noise ?
5.
Bagaimana menghitung bit error rate(BER) ?
Tujuan Penulisan Adapun tujuan dari Tugas Akhir ini adalah : 1. Membuat suatu program yang mampu mensimulasikan proses Pengkodean Hamming. 2. Mencari BER pada Pengkodean Hamming. 3. Menggunakan simulasi untuk menganalisa BER pada Pengkodean Hamming.
1.4
Batasan Masalah Untuk menghindari pembahasan menjadi terlalu luas maka penulis perlu
membatasinya. Adapun batasan masalah dalam Tugas Akhir ini adalah : 1. Hanya membahas tentang Kode Hamming(7,4).
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
2. Data dan noise dibangkitkan dengan menggunakan Bilangan Acak. 3. Program dibuat dengan menggunakan aplikasi Microsoft Visual Basic 6.0. 4. Noise kanal dimodelkan dengan probabilitas error kanal yang diinput oleh pengguna. 5. Tidak membahas tentang probabilitas error kanal untuk berbagai kanal. 6. Tidak membahas tentang teknik modulasi dan filter. 7. Hanya membahas tentang BER pada pengkodean Hamming dengan simulasi. 8. Tidak membahas tentang Analisa bit error rate Pengkodean Hamming secara matematis.
1.5
Metode Penulisan Metode penulisan yang digunakan dalam penulisan Tugas Akhir ini adalah : 1. Studi Literatur, berupa studi kepustakaan dan kajian dari buku-buku teks pendukung. 2. Studi Simulasi, berupa studi dari hasil simulasi dengan menggunakan simulasi Pengkodean Hamming.
1.6
Sistematika Penulisan Penulisan Tugas Akhir ini disajikan dengan sistematika penulisan sebagai berikut :
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
BAB I
Pendahuluan Bab ini merupakan pendahuluan
yang berisikan tentang latar
belakang masalah, tujuan penulisan, batasan masalah, metode penulisan dan sistematika penulisan. BAB II
Pemodelan dan Simulasi Bab ini merupakan pengenalan kepada dasar-dasar dalam merancang suatu model dan membuat simulasi dari sebuah sistem, sebagai dasar dalam melakukan pemodelan dan simulasi.
BAB III
Pengkodean dan Kode Hamming Bab ini membahas tentang metode pengkodean dan Kode Hamming. Bab ini berisi tentang dasar sistem komunikasi digital, teori-teori pengkodean dan bagaimana pengkodean pada Kode Hamming.
BAB IV
Perancangan dan Analisa Program Simulasi Bab ini berisi tahapan perancangan program simulasi dan analisa program simulasi yang telah dibuat.
BAB V
Kesimpulan dan Saran Bab ini berisi Kesimpulan dan Saran
Lampiran
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
BAB II PENGKODEAN DAN KODE HAMMING
2.1.
Sistem Komunikasi Digital Dalam sistem telekomunikasi terdapat dua jenis sistem komunikasi yaitu
sistem komunikasi analog dan sistem komunikasi digital. Perbedaan keduanya adalah pada sinyal yang digunakan untuk melakukan komunikasi. Pada sistem komunikasi analog, sinyal yang dikirimkan berupa sinyal yang bervariasi dan tidak tetap, sedangkan pada sistem komunikasi digital, sinyal yang dikirimkan adalah sinyal tertentu yang sudah tetap bentuknya. Pada sistem telekomunikasi, meskipun sistem komunikasi analog masih digunakan, akan tetapi perkembangan dan penggunaan sistem komunikasi digital lebih banyak bila dibandingkan sistem komunikasi digital. Hal ini karena sistem komunikasi digital mempunyai beberapa keuntungan sebagai berikut[1][2] : 1. Sinyal digital lebih mudah untuk diregenerasi menjadi bentuknya yang semula, dibandingkan dengan sinyal analog. 2. Rangkaian digital memiliki tingkat distorsi dan interferensi yang lebih rendah bila dibandingkan dengan rangkaian analog. 3. Sistem komunikasi digital memiliki teknik deteksi kesalahan dan koreksi, sehingga dapat mengurangi tingkat kesalahan, sedangkan pada sistem komunikasi analog tidak. 4. Biaya produksi dari rangkaian digital lebih rendah bila dibandingkan dengan rangkaian analog.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
5. Perangkat
dari
sistem
komunikasi
digital
lebih
mudah
untuk
dikombinasikan dengan perangkat lainnya bila dibandingkan dengan perangkat dari sistem komunikasi analog.
2.1.1. Elemen Dasar Sistem Komunikasi Digital Pada Gambar 2.1 ditunjukkan elemen-elemen dasar dari sistem komunikasi digital. Blok yang pertama menunjukkan Input dari sistem komunikasi digital yang dapat berupa sinyal analog maupun sinyal digital. Dalam sistem komunikasi digital sinyal yang digunakan adalah sinyal digital, sehingga, sinyal analog harus dikonversi menjadi sinyal digital terlebih dahulu. Selain itu sinyal digital juga perlu dikompresi atau diminimalisasi ukuran informasinya untuk menyesuaikan dengan bandwith transmisi yang tersedia. Proses konversi dan kompresi ini biasa disebut juga source coding atau data compression, yang ditunjukkan pada blok kedua[2].
Information Source and Input Transducer
Source Encoder
Channel Encoder
Digital Modulator
Channel
Output Transducer
Source Decoder
Channel Decoder
Digital Demodulator
Gambar 2.1 Blok Diagram Komunikasi Digital
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Setelah diproses pada blok kedua, maka dihasilkan deretan digit biner yang biasa disebut juga deretan informasi. Deretan informasi ini kemudaian masuk ke blok ketiga yaitu channel encoder, yang berfungsi untuk mengkodekan sinyal agar pada sisi penerima dapat dilakukan dekode untuk mendeteksi error dan memperbaiki error yang timbul. Sinyal yang telah dikodekan kemudian di modulasi pada blok keempat dengan menggunakan digital modulator. Tujuan dari proses modulasi ini adalah supaya sinyal dapat disesuaikan dengan kondisi dari kanal transimisi yang digunakan. Pada kanal transmisi yang ditunjukkan pada blok kelima, sinyal yang dikirimkan akan dipengaruhi oleh noise ataupun interferensi. Kemudian pada sisi pengirim sinyal didemodulasikan oleh digital demodulator, seperti yang ditunjukkan pada blok keenam. Setelah didemodulasikan, kemudian sinyal didekodekan sesuai dengan teknik yang digunakan pada enkoder di sisi pengirim untuk diperiksa dan dikoreksi error-nya. Kemudian sinyal didekoder lagi oleh source decoder sesuai dengan teknik yang digunakan oleh source encoder pada sisi pengirim untuk mendapatkan sinyal informasi aslinya.
2.2.
Konsep Dasar Sistem Pengkodean Kesalahan (error) merupakan masalah dalam sistem komunikasi,sebab dapat
mengurangi kinerja dari sistem. Untuk mengatasi masalah tersebut diperlukan suatu sistem yang dapat mengoreksi error. Sehingga dicari solusi metode penanganan error dengan pemeriksaan bit.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Metode yang digunakan ada dua yaitu [3]: 1. Backward Error Control Pada Backward Error Control, apabila pada data yang diterima terjadi error, maka penerima akan mengirimkan sinyal kepada pengirim untuk melakukan pengiriman ulang. 2. Forward Error Control Pada Forward Error Control, sebelum data dikirimkan data akan dikodekan dengan suatu pembangkit kode(enkoder), dan kemudian dikirimkan ke penerima. Pada penerima akan terdapat sebuah penerjemah kode (dekoder) yang mendekodekan data tersebut, dan apabila terjadi error pada data akan dilakukan pengkoreksian data. Bit stream dari sumber data masuk ke enkoder untuk dikodekan, kemudian bit stream yang telah dikodekan dikirimkan melalui kanal. Kemudian bit itu dikodekan oleh dekoder dan data tersebut dikirimkan ke user.
2.2.1. Pengkodean Hamming Bit stream dari sumber data yang masuk ke enkoder dikodekan dengan menggunakan suatu generator. Oleh karena itu dalam proses pengkodean Kode Hamming diperlukan suatu generator matriks. Kode Hamming diperoleh dari hasil perkalian antara bit stream dengan generator matriks kode Hamming. Generator matriks kode Hamming yang dipilih adalah generator matriks Kode Hamming yang sistematik. Kode Hamming ini
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
disimpan dalam matriks array 2 dimensi. Sebagai contoh Kode Hamming(7,4) yang mengkodekan 4 bit stream menjadi 7 bit kode yang akan dikirimkan yaitu sbb:
0111000 G=
1010100 1100010 1110001
Matriks generator diatas diperoleh dari operasi sebagai berikut : Misalkan p1,p2,p3 adalah bit parity dari Kode Hamming, dan d1,d2,d3,d4 adalah bit data yang akan ditransmisikan. Hubungan antara bit pariti dan bit data dapat dilihat dalam Gambar 2.2.
Gambar 2.2 Gambar Diagram Bit pariti dan data Dari gambar diatas dapat dilihat bahwa bit pariti p1 melakukan pengoperasian dan pengecekan terhadap bit data d2,d3,d4, bit pariti p2 melakukan pengoperasian dan pengecekan terhadap bit data d1,d3,d4, dan bit pariti p3
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
melakukan pengoperasian dan pengecekan terhadap bit data d2,d1,d4. Dimana operasi bitnya sebagai berikut [4]: p1 = d2 + d3 + d4 p2 = d1 + d3 + d4 p3 = d1 + d2 + d4 Untuk mencari bit-bit pariti dari data tersebut, misalkan data yang dikirimkan adalah : d1 =
1
d2 =
0
d3 =
0
d4 =
0
0
1
0
0
0
0
1
0
0
0
0
1
maka diperoleh matriks untuk p1 adalah sebagai berikut :
p1 =
P2 =
0+0+0
=
0
1+0+0
=
1
0+1+0
=
1
0+0+1
=
1
1+0+0
=
1
0+0+0
=
0
0+1+0
=
1
0+0+1
=
1
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
P3 =
1+0+0
=
1
0+1+0
=
1
0+0+0
=
0
0+0+1
=
1
Dari pariti bit diatas, dapat dibentuk matriks generator yang sistematis dengan menggunakan rumus sebagai berikut [1]: G = [ P | I]........................................................................(3.1) dimana G merupakan matriks generator, P merupakan matriks kolom pariti yang sudah dibuat diatas, dan I merupakan matriks identitas.
2.2.2
Pendekodean Hamming Pendekodean Kode Hamming dilakukan dengan cara menghitung sindrom
yang dihasilkan dengan cara mengalikan bit Kode Hamming yang diterima dengan matriks cek pariti yang
disesuaikan dengan generator kode Hamming yang
digunakan pada sisi penerima. Sebagai contoh, matriks cek pariti yang sesuai dengan contoh generator matriks untuk Kode Hamming(7,4) diatas adalah sbb:
1000111 H= 0101011 0011101
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Matriks untuk cek pariti ini dapat diperoleh dari rumus sebagai berikut [1]: H = [ I | PT ] .....................................................................(3.2) dimana H merupakan matriks cek pariti, I merupakan matriks Identitas, dan PT merupakan hasil transpose dari matriks pariti P Dari matriks Pariti cek diatas dapat dihitung sindrom dengan rumus [1]: S = r . HT ..........................................................................(3.3) Dimana : S = Sindrom r = bit Kode Hamming yang diterima HT = transposisi dari matiks cek pariti Setelah didapat sindromnya, maka dapat diketahui apakah kode yang diterima ada error atau tidak dan dimana letak error-nya bila ada. Jika sindrom yang dihasilkan adalah 0, maka berarti tidak terjadi error,selain itu, berarti ada terjadi error. Untuk mengetahui letak error-nya, maka sindrom yang sudah diperoleh harus disesuaikan dengan matriks HT, bila sindrom sesuai dengan salah satu kode pada matriks HT, berarti pada posisi tersebut telah terjadi error. Lalu ubahlah posisi yang error tersebut dengan menginvertkan kode yang diterima. Kemudian ambillah 4 bit kode yang terakhir sebagai bit stream data.
2.2.3
Contoh Sederhana Proses Pengkodean Hamming Berikut ini adalah contoh sederhana proses pengkodean Hamming dengan
Kode Hamming (7,4) dan generator matriks,serta matriks cek pariti yang digunakan sama seperti yang telah disebutkan diatas. Misalnya : bit informasi yang dikirimkan adalah 1000
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
•
Proses enkode adalah sebagai berikut :
0111000 G=
1010100 1100010 1110001
Kode yang dikirimkan = bit informasi x matriks G
0111000 =[1 0 0 0] 1 0 1 0 1 0 0 1100010 1110001 =[0 1 1 1 0 0 0] Jadi kode yang dikirimkan adalah 0111000 •
Proses dekode adalah sebagai berikut 1. Untuk kanal tanpa noise, maka data yang dikirimkan sama dengan data yang diterima. Sehingga data yang diterima adalah 0111000
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
100 1000111 H=
0101011
010 maka HT =
0011101
001 011 101 110 111
Dengan adanya HT dan r = 1101000, maka kita dapat menggunakan rumus sindrom untuk menghitung sindrom yaitu : S = r . HT
100 010 001 S = [0 1 1 1 0 0 0]
011 101 110 111
S = [0 0 0] Karena Sindrom bernilai 0, maka tidak terjadi error, sehingga tidak perlu dilakukan koreksi. Bit informasi yang dikirimkan diambil dari 4 bit terakhir dari bit yang diterima yaitu 1000
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
2. Untuk kanal dengan noise kita misalkan data yang diterima adalah 0111010
100 010 001 S = [0 1 1 1 0 1 0]
011 101 110 111
S = [1 1 0] Karena sindrom bukan bernilai 0, berarti terjadi error, sehingga perlu dilakukan pengecekan ulang dengan mencocokkan bit sindrom dengan bit-bit pada matriks HT dan diperoleh kecocokan pada baris ke 6 pada matriks HT, berarti terjadi kesalahan bit pada bit ke 6. Sehingga bit ke6 dari bit yang diterima yaitu 11010[1]0 yang bernilai 1(dikurung siku) diubah menjadi 0, sehingga data yang benar adalah 1101000.Dari bit data yang sudah dikoreksi diambil 4 bit terakhir sebagai bit informasi yaitu 1000 Dari proses no 2 tersebut dapat dilihat bahwa Kode Hamming mempunyai kemampuan untuk mengoreksi kesalahan.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
BAB III PEMODELAN DAN SIMULASI 3.1
Umum Dalam mempelajari perilaku suatu sistem perlu diterapkan sejumlah asumsi
tentang bagaimana sistem tersebut bekerja. Asumsi-asumsi tersebut akan membentuk model sistem yang bisa dimanfaatkan untuk mempelajari perilaku sistem dan bisa dinyatakan dalam bentuk hubungan matematis atau hubungan logis. Apabila hubungan-hubungan
yang
membentuk
model
tersebut
sederhana,
maka
dimungkinkan untuk menerapkan metode matematis untuk mendapatkan informasi atau jawaban yang eksak terhadap pernyataan atau permasalahan yang ingin diketahui. Informasi semacam itu disebut sebagai penyelesaian secara analitik. Namun demikian, sistem riil pada umumnya terlalu kompleks dan sulit untuk dimodelkan serta dievaluasi secara analitik. Untuk mengatasi permasalahan tersebut digunakanlah metode simulasi. Tahapan dalam menganalisa sebuah sistem dapat dilihat dalam Gambar 3.1[5].
Gambar 3.1 Cara Mempelajari Sistem
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Simulasi merupakan pendekatan yang digunakan untuk memecahkan berbagai masalah dalam dunia nyata yang mengandung ketidakpastian dan kemungkinan terjadi dalam jangka waktu yang panjang yang tidak dapat diperhitungkan secara pasti. Dengan simulasi para analis dimungkinkan untuk mengambil kesimpulan tentang sistem tersebut tanpa harus membangunnya terlebih dahulu atau melakukan perubahan pada sistem yang ada tanpa mengganggu kegiatan yang sedang berjalan[5].
3.2
Keunggulan dan kelemahan Simulasi Meskipun model analitik sangat berguna dan sering digunakan, namun masih
terdapat keterbatasan, yaitu model analitik tidak mampu menelusuri sifat suatu sistem pada masa lalu dan masa mendatang melalui pembagian waktu. Model analitik hanya memberikan penyelesaian secara menyeluruh, suatu jawaban yang mungkin tunggal dan optimal tetapi tidak menggambarkan prosedur operasional untuk masa lebih singkat dari perencanaan. Penyelesaian masalah dengan menggunakan simulasi memiliki beberapa keuntungan yaitu[6] : 1. Dapat menerapkan peraturan, prosedur operasi, tata cara pengambilan keputusan, aliran data, dan hal lain yang baru tanpa harus menganggu operasional sistem yang nyata. 2. Perancangan perangkat, tampilan fisik, sistem transportasi dan lainnya dapat dilakukan dan dicoba tanpa memerlukan objek yang nyata atau asli. 3. Hipotesis tentang terjadinya suatu fenomena dapat dicoba untuk mengetahui kebenarannya.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
4. Dapat melebar-luaskan waktu untuk mempercepat dan memperlambat fenomena yang sedang diteliti. 5. Dapat mengamati interaksi antar variabel dengan jelas. 6. Dapat mengamati pentingnya peran sebuah variabel dalam performansi sebuah sistem. 7. Analisis bottleneck dapat dilakukan untuk mengindikasikan dimana proses berlangsung, informasi, material dan yang lainnya mengalami delay. 8. Studi simulasi dapat membantu dalam memahami bagaimana sistem berjalan sebenarnya, bukan berdasarkan pemikiran perorangan. Namun, model simulasi juga memiliki beberapa kelemahan, yaitu : 1. Perancangan model memerlukan latihan khusus. Perancangan model merupakan seni yang dipelajari melalui pengalaman. Oleh sebab itu, perancangan model antara dua individu dapat mirip, tapi pastilah berbeda satu dengan yang lain. 2. Hasil simulasi sulit untuk diinterpretasikan. Karena hasil keluaran simulasi banyak yang berupa variabel acak(diperoleh dari masukan yang acak), sehingga sangat sulit untuk menentukan apakah hasilnya adalah berdasarkan hubungan antar komponen sistem atau hanya berupa keacakan. 3. Analisis dan pemodelan simulasi dapat memakan banyak waktu dan biaya. Pengurangan materi untuk analisa dan pemodelan dapat mengakibatkan model simulasi atau analisa yang tidak sesuai dengan perannya. 4. Simulasi
digunakan
dalam beberapa
kasus
dimungkinkan, atau mungkin lebih disukai.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
dimana
solusi
analisis
3.3
Klasifikasi Model Model merupakan suatu pendekatan terhadap objek-objek nyata, yang
memiliki sifat seperti objek-objek nyata tersebut, serta memiliki fungsi yang sama dengan objek-objek nyata. Pengelompokkan model akan mempermudah upaya pemahaman
akan
makna
dan
kepentingannya.
Jenis-jenis
model
dapat
diklasifikasikan sebagai berikut[5] : 1.
Pembagian menurut struktur model, yaitu : a. Model Ikonik (Model Fisik) Model ikonik pada hakekatnya merupakan perwakilan fisik dari beberapa hal, baik dalam bentuk ideal maupun dalam skala yang berbeda. Model ikonik ini mempunyai karakteristik yang sama dengan hal yang diwakilinya, dan terutama amat sesuai untuk menerangkan kejadian pada waktu yang spesifik. Model ikonik dapat berdimensi dua (foto, peta, cetak-biru) atau tiga dimensi (prototipe mesin, alat, dan lainnya). Apabila model berdimensi lebih dari tiga tidak mungkin lagi dikonstruksi secara fisik sehingga diperlukan kategori model simbolik. b. Model Analog (Model Diagramatik) Model analog dapat digunakan untuk mewakili situasi dinamik, yaitu keadaan yang berubah menurut waktu. Model ini lebih sering digunakan daripada model ikonik karena kemampuannya untuk mengetengahkan karakteristik dari kejadian yang dikaji. Model analog sangat sesuai dengan penjabaran hubungan kuantitatif antara sifat dari berbagai komponen. Dengan melalui transformasi sifat menjadi analognya, maka kemampuan untuk membuat perubahan dapat ditingkatkan. Contoh dari model analog ini
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
adalah kurva permintaan, kurva distribusi frekuensi pada statistik, dan diagram alir.
Model analog digunakan karena kesederhanaannya namun
efektif pada situasi yang khas. c. Model Simbolik (Model Matematik) Format model simbolik dapat berupa bentuk angka, simbol dan rumus. Jenis model simbolik yang umum dipakai adalah suatu persamaan (equation). Bentuk persamaan adalah tepat, singkat dan mudah dimengerti. Simbol persamaan tidak saja mudah dimanipulasi dibandingkan dengan kata-kata, namun juga lebih cepat dapat ditanggap maksudnya. Suatu persamaan adalah bahasa yang universal pada penelitian operasional dan ilmu sistem, dimana di dalamnya digunakan suatu logika simbolis. 2. Pembagian menurut fungsinya, yaitu : a. Model Deskriptif Model ini hanya menggambarkan situasi suatu sistem tanpa gambaran tentang miniature objek yang dipelajari. b. Model Prediktif Model yang hanya menggambarkan apa yang akan terjadi (prediksi), bila sesuatu terjadi. c. Model Normatif Model ini adalah merupakan gambaran model terhadap permasalahan yang dihadapi. Model ini disebut juga model simulasi. 3. Pembagian menurut referensi waktu, yaitu a. Model statis Model yang tidak memasukkan faktor waktu dalam perumusannya.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
b. Model Dinamis Model yang mempunyai unsur waktu dalam perumusannya dan menunjukkan perubahan setiap saat akibat aktivitasnya. 4. Pembagian menurut sifatnya, yaitu a. Model deterministik Model yang mempunyai keluaran atau output yang unik dari setiap input yang berbeda-beda. Artinya model tersebut keluarannya sudah dapat ditentukan secara pasti melalui suatu prosedur yang sudah ditentukan. b. Model probabilistik Model yang mencakup distribusi probabilitas/kemungkinan dari input atau proses dan menghasilkan suatu deretan harga bagi paling tidak satu variabel output disertai dengan kemungkinan dari harga tersebut.
3.4. Bilangan acak Bilangan Acak merupakan kumpulan bilangan yang dihasilkan oleh sebuah pembangkit bilangan acak dan memiliki keacakan tertentu. Pembangkit bilangan acak berupa sebuah algoritma atau urutan langkah yang digunakan untuk menghasilkan angka-angka yang muncul secara acak mengikuti distribusi yang digunakan. Bilangan acak ini biasanya digunakan untuk memodelkan sebuah objek dalam sistem yang dalam bentuk matematisnya bersifat acak atau nilainya tidak pasti, bisa berupa sebuah probabilitas[5] .
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
3.4.1. Bilangan Acak Normal Bilangan acak berdistribusi normal ini bisa dibangkitkan dengan beberapa cara. Salah satunya adalah dengan polar method. Langkah-langkah untuk membangkitkan bilangan acak berdistribusi normal adalah sebagai berikut[2] : 1. Bangkitkan U1 dan U2 sebagai IID U(0,1); hitung Vi = 2Ui – 1 untuk i=1,2; dan W=V12+V22. 2. Jika W>1, kembali ke langkah pertama. Jika tidak, hitung Y=√(-2lnW)/W, X1=V1Y, dan X2=V2Y. Maka X1 danX2 adalah bilangan acak berdistribusi Normal.
3.4.2. Bilangan Acak Poisson Bilangan acak berdistribusi Poisson didapat dari hubungan antara Poisson(λ) dan expo(1/λ). Algoritmanya adalah sebagai berikut[2] : 1. Hitung a=e-λ, b=1, dan i=0. 2. Bangkitkan Ui+1~U(0,1) dan ubah nilai b menjadi bUi+1. Jika b>a, balikkan nilai X=i. Selain itu lanjut ke langkah 3. Ubah i menjadi i+1 dan kembali ke langkah 2.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
BAB IV PERANCANGAN DAN ANALISA PROGRAM SIMULASI
4.1
Umum Pada sistem komunikasi digital masalah yang muncul pada umumnya adalah bit
error rate dari data yang diterima, yang diakibatkan oleh noise dan interferensi yang timbul sepanjang kanal transmisi. Untuk mengatasi bit error rate ini, maka digunakan teknik pengkodean yang dapat meminimalisasi terjadinya bit error rate yang timbul. Ada berbagai teknik pengkodean dalam sistem komunikasi digital, salah satunya adalah Kode Hamming. Teknik ini memiliki keunggulan dimana dapat tepat mengoreksi satu kesalahan bit yang timbul. Untuk menganalisa bit error rate pada suatu sistem komunikasi digital dapat dilakukan dengan cara menggunakan metode analitik maupun simulasi. Akan tetapi dengan metode analitik, hasil yang diperoleh hanya berupa probabilitas yang belum pasti. Sehingga perlu digunakan metode simulasi, dimana hasil yang diperoleh lebih mendekati kondisi nyata.
4.2
Asumsi Beberapa asumsi yang berhubungan dengan program simulasi Pengkodean
Hamming adalah sebagai berikut : 1. Sumber data yang digunakan berupa sumber data digital yang dibangkitkan dengan menggunakan bilangan acak Poisson.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
2. Probabilitas error kanal yang diinput merupakan probabilitas error yang masih muncul setelah dilakukan berbagai teknik modulasi maupun filterisasi. 3. Noise transmisi dibangkitkan dengan membandingkan bilangan acak Normal dengan probabilitas error kanal. 4.
Sumber data yang dikirimkan terdiri dari 4 bit.
5. Dianggap tidak ada error yang disebabkan oleh noise dalam rangkaian digital pembangkit sumber data, enkoder maupun dekoder.
4.3
Model Model yang digunakan dalam merancang program simulasi ini dapat dilihat dalam Gambar 4.1.
Gambar 4.1 Model Simulasi
4.3.1. Sumber data Sumber data dimodelkan dalam bentuk bilangan acak Poisson dan akan dibangkitkan menurut metode pembangkitan bilangan acak Poisson, kemudian diubah dalam bentuk biner, dengan asumsi sumber data berupa sinyal digital yang siap dienkodekan. Sinyal digital yang dihasilkan berupa 4 bit stream data. Bilangan acak Poisson yang akan dibangkitkan dengan menggunakan algoritma pada bagian subbab 3.4.2, dengan menggunakan nilai λ=8. Sehingga bilangan acak yang dihasilkan memiliki rata-rata nilai 8.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Kode program untuk melakukan pembangkitan sumber data ini dapat dilihat dalam Lampiran kode program halaman 2.
4.3.2. Enkoder Pada bagian ini sinyal digital yang dibangkitkan akan dienkode dengan matriks generator Kode Hamming(7,4) sebagai berikut :
0111000 G=
1010100 1100010 1110001
Bit-bit data digital dalam bentuk biner yang sudah dibangkitkan pada bagian sumber data akan dibentuk menjadi matriks 1x4. Matriks tersebut akan dikalikan dengan matiks generator yang telah tersedia dan dihasilkan matriks 1x7, sehingga dihasilkan bit-bit data yang telah terenkode sebanyak 7 bit. Kode program untuk melakukan pengkodean ini dapat dilihat dalam Lampiran kode program halaman 3 dan 4.
4.3.3. Kanal Pada bagian ini akan dibangkitkan noise dengan menggunakan pembangkit bilangan acak Normal, dengan menggunakan algoritma yang terdapat pada subbab 3.4.2. Kemudian bilangan acak Normal ini akan disubstitusikan ke dalam persamaan (3.2) untuk menghasilkan probabilitasnya. Bilangan acak ini akan dibangkitkan sebanyak 7 buah, sesuai dengan jumlah bit dari sinyal yang dikirimkan.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Setiap bilangan acak yang telah dibangkitkan tersebut akan dibandingkan dengan probabilitas error kanal. Jika bilangan acak tersebut lebih kecil dari probabilitas error kanal, maka akan dibangkitkan bit noise 1, apabila bilangan acak tersebut lebih besar dari probabilitas error kanal, maka akan dibangkitkan bit noise 0. Sehingga terbentuk deretan noise sebanyak 7 digit dalam bentuk biner. Setelah itu sinyal yang sudah dienkode tersebut akan ditambahkan dengan noise menurut aturan gerbang XOR sebagai berikut : 0+0=0 0+1=1 1+0=1 1+1=0 apabila pada noise yang dibangkitkan terdapat bit bernilai 1, maka sinyal yang terenkode akan berubah nilainya akibat penjumlahan dari sinyal tersebut dengan noise. Kode program untuk melakukan pembangkitan noise kanal ini dapat dilihat dalam Lampiran kode program halaman 2 dan 3.
4.3.4. Dekoder Pada bagian ini sinyal yang diterima akan dihitung sindromnya dan dilakukan pengecekan dan pengoreksian kesalahan bila ada. Perhitungan Sindrom dilakukan dengan menggunakan rumus S = r . HT, dimana r merupakan sinyal data yang diterima dan HT adalah transpose dari matriks pengecek error. Matriks H yang digunakan adalah matriks H untuk Kode Hamming (7,4) yaitu :
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
1000111 H= 0101011 0011101
Sinyal yang berasal dari kanal yang sudah ditambah dengan noise,yang terdiri dari 14 bit akan dikelompokkan menjadi 2 bagian,lalu disimpan kedalam 2 buah matriks yang berukuran 1x7. Kemudian masing-masing matriks tersebut akan dihitung sindromnya menggunakan rumus untuk menghitung sindrom yang sudah dibahas pada BAB II. Apabila sindromnya tidak sama dengan 0, maka telah terjadi error, jika sama dengan 0 maka tidak terjadi error. Bila terjadi error, maka dilakukan pencocokan sindrom dengan matriks HT, dimana posisi data pada matriks HT yang sama dengan sindrom adalah lokasi bit kesalahan pada data. Setelah mengetahui lokasi kesalahan, kemudian dilakukan koreksi dengan menginversikan bit data, yaitu data yang bernilai 0 menjadi 1 dan sebaliknya data yang bernilai 1 menjadi 0. Setelah selesai dilakukan pengkoreksian, diambil 4 bit terakhir dari bit data sebagai data informasi yang dikirimkan, lalu kedua data tersebut digabungkan dan dihasilkan bit stream data yang terdekode. Kode program untuk melakukan pendekodean ini dapat dilihat dalam Lampiran kode program halaman 4 dan 5.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
4.3.5. Data yang diterima Data yang diterima ini akan dibandingkan dengan sumber data, apabila terdapat bit yang berbeda, maka jumlah error akan bertambah. Setelah semua bit dibandingkan, maka akan dihitung bit error rate(BER) dengan membagikan jumlah error dengan jumlah bit yang dikirimkan seluruhnya. BER =
Jumlah Error Jumlah bit yang dikirimkan
Kode program untuk melakukan perhitungan BER ini dapat dilihat dalam Lampiran kode program halaman 5.
4.4
Diagram Alir Dari model-model yang sudah ditentukan diatas dan keterangan tentang
prosesnya masing-masing, maka dirancang diagram alir dari proses yang dilakukan oleh setiap model tersebut. Adapun masing-masing diagram alir diperlihatkan pada Gambar 4.2 sampai dengan Gambar 4.6.
4.4.1 Diagram Alir Sumber data Proses pembangkitan sumber data dimulai dengan melakukan pembangkitan bilangan acak terlebih dahulu. Bilangan acak tersebut diubah kedalam bentuk biner dengan cara melakukan pembagian terhadap 2 secara terus menerus hingga terbentuk deretan bilangan biner dan deretan tersebut disimpan didalam sebuah variabel bernama sinyal. Urutan langkahnya dapat dilihat pada Gambar 4.2.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Gambar 4.2 Diagram Alir Sumber Data
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
4.4.2
Diagram Alir Enkoder Proses pengkodean dilakukan dengan cara menggunakan dua masukan yaitu
data dan generator. Data tersebut berupa deretan biner yang disimpan dalam bentuk matriks 1x4, dan generator disimpan dalam bentuk matriks 4x7. Matriks data dan matriks generator dikalikan dan dihasilkan matriks data yang telah dikodekan dalam bentuk matriks 1x7. Urutan langkahnya dapat dilihat dalam Gambar 4.3.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Mulai
Masukkan (generator,data)
i=1 J=1
Datae(j)=Datae(j)+data(i)* generator(i,j)
i>4?
Tidak
i=i+1
J=j+1
Ya
Datae(j)=Datae(j) mod 2
J>7?
Ya
Selesai
Gambar 4.3 Diagram Alir Enkoder
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Tidak
4.4.3
Diagram Alir Kanal Proses yang dilakukan adalah pembangkitan noise dan penjumlahan noise
dengan data yang telah dikodekan. Dalam melakukan pemrosesan di dalam kanal diperlukan data yang telah dikodekan dan probabilitas error kanal. Pembangkitan noise dilakukan dengan cara melakukan pembangkitan bilangan acak Normal, kemudian bilangan acak ini dibandingkan dengan probabilitas error kanal. Bila bilangan acak lebih kecil atau sama dengan probabilitas error kanal, maka sinyal noise berupa 1, dan sebaliknya bila lebih besar, maka sinyal noise berupa 0. Sinyal noise ini kemudian dijumlahkan dengan data yang telah dikodekan. langkahnya dapat dilihat pada Gambar 4.4.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Urutan
Mulai
Masukkan (Sinyal, error kanal)
Acak=Normal()
J>7 Ya Acak > error kanal
Tidak
Noise(j)=1
Ya Tidak Noise(j)=0
J=j+1
Sinyal=sinyal +noise
Selesai
Gambar 4.4 Diagram Alir Kanal
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
4.4.4
Diagram Alir Dekoder Proses dekoder memerlukan masukan berupa data yang diterima, yaitu data
yang telah dikodekan dan dijumlahkan dengan noise, dan matriks untuk mendekodekan data yang diterima. Data yang diterima berupa matriks 1x7, data ini dikalikan dengan matriks dekoder berukuran 7x3 dan dihasilkan sindrom dalam bentuk matriks berukuran 1x3. Apabila sindrom dari hasil perkalian adalah 0, berarti data yang diterima tidak terdapat error, sebaliknya bila sindrom tidak nol, maka akan dilakukan pengoreksian dengan membandingkan matriks sindrom dengan matriks dekoder untuk melakukan pengecekan. Apabila matriks sindrom sama dengan matriks dekoder, berarti pada posisi bit tersebut terdapat error dan data pada posisi tersebut akan diubah nilainya dari 0 menjadi 1 atau 1 menjadi 0. Urutan langkahnya dapat dilihat dalam Gambar 4.5.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Mulai
Masukkan (r,HT)
S= r * HT
S=0?
Tidak J=1
S= HT?
Tidak
J=j+1
Tidak
i=i+1
Ya
Ya
Pos=j i=1
i=pos? Ya R(i)=(r(i)+1) mod 2
Selesai
Gambar 4.5 Diagram Alir Dekoder
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
4.4.5 Diagram Alir Data yang Diterima Pada blok ini dilakukan perbandingan data yang diterima dengan data yang dikirimkan untuk mendapatkan jumlah error yang terdapat dalam data yang diterima. Urutan langkahnya dapat dilihat pada Gambar 4.6. Mulai
Masukkan (Data diterima ,data dikirim)
J=1
Terima(j)=kirim(j)
Ya
Error=error+1
Tidak
Tidak
J=4
Ya Selesai Gambar 4.6 Diagram Alir Data yang Diterima
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
4.5
Implementasi Program Simulasi Program Simulasi ini dirancang dengan menggunakan Aplikasi pemrograman
Microsoft Visual Basic 6.0 yang menggunakan bahasa pemrograman Basic. Program Simulasi yang dirancang memiliki interface yang ditunjukkan pada Gambar 4.7.
Gambar 4.7 Tampilan Program Simulasi Program Simulasi ini memiliki input-input sebagai berikut : 1. Jumlah pengiriman untuk menentukan jumlah pengiriman yang akan dilakukan oleh program. Jika jumlah simulasi diisi 1, maka akan dilakukan satu kali simulasi saja, dimana satu kali simulasi berarti melakukan pengiriman data sebesar 4 bit sebanyak satu kali. 2. Kecepatan Simulasi untuk menentukan kecepatan berlangsungnya simulasi, sehingga memungkinkan pemakai untuk mengamati setiap simulasi dengan baik. 3. Probabilitas error kanal untuk menentukan error yang timbul sepanjang perjalanan dari enkoder ke dekoder.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
4. Tombol Simulasi untuk menjalankan simulasi baru dengan data yang sudah diinput. 5. Tombol Hentikan/Lanjutkan untuk menghentikan dan melanjutkan simulasi, supaya pemakai dapat mengamati dan mengambil data simulasi. 6.
Tombol Keluar untuk keluar dan menutup program simulasi.
Sedangkan untuk outputnya adalah sebagai berikut : 1. Sinyal pertama untuk menandakan sinyal yang dibangkitkan dengan menggunakan bilangan acak. 2. Enkoder menampilkan matriks generator yang digunakan untuk melakukan enkode terhadap sinyal yang dibangkitkan. 3. Sinyal kedua untuk menampilkan sinyal setelah dienkodekan. 4. Noise untuk menendakan noise yang timbul dalam kanal transmisi yang dibangkitkan dengan menggunakan bilangan acak. 5. Sinyal ketiga untuk menandakan sinyal setelah melewati kanal transmisi dan sudah dipengaruhi oleh noise. 6. Dekoder untuk menampilkan matrik yang digunakan untuk melakukan proses dekoder. 7. Sinyal keempat untuk menandakan sinyal yang dihasilkan setelah dilakukan proses dekoder dan pengkoreksian error. 8. Daftar bilangan acak yaitu berisi daftar bilangan acak yang dibangkitkan. 9. Error kanal untuk menampilkan jumlah error yang muncul pada kanal. 10. Bit error rate(BER) kanal untuk menampilkan BER dari kanal. 11. Error untuk menampilkan jumlah kesalahan bit dari data yang diterima. 12. Bit error rate untuk menampilkan bit error rate dari hasil simulasi.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Misalnya untuk mencari bit error rate pada sistem komunikasi digital yang menggunakan Kode Hamming(7,4), dan memiliki probabilitas error sepanjang perjalanan dari enkoder ke dekoder sebesar 10-1, dengan jumlah pengiriman sebanyak 1 kali. Maka hasil akhirnya dapat dilihat pada Gambar 4.8.
Gambar 4.8 Tampilan Hasil Simulasi Dari hasil simulasi diperoleh bahwa bit yang dikirimkan sebanyak 4 bit, jumlah bit error pada kanal adalah 1 dan bit error rate(BER) kanal adalah 0,142857, jumlah bit error yang timbul pada waktu data diterima adalah 0 bit, dan BER setelah dilakukan pengkodean dengan Kode Hamming adalah 0.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Tahapan jalannya program adalah sebagai berikut : 1. Ketika tombol simulasi ditekan, komputer akan membangkitkan bilangan acak Poisson yang hasilnya adalah 5. Kemudian bilangan acak ini akan diubah kedalam bentuk biner yaitu 0101. 2. Bilangan biner tersebut akan dikalikan dengan enkoder sehingga dihasilkan sinyal dalam bentuk 7 bit yaitu 0100101. 3. Selanjutnya program melakukan pembangkitan bilangan acak Poisson seperti terlihat pada Gambar 4.8 dan setiap bilangan acak tersebut akan dibandingkan dengan probabilitas error kanal yang dimasukkan yaitu 0,1. Jika bilangan acak lebih kecil dari probabilitas error kanal, maka noise bernilai 1, selain itu bernilai 0. Sehingga terbentuk deretan noise yaitu 0001000. 4. Deretan noise tersebut ditambahkan menurut gerbang XOR sehingga terbentuk sinyal yang diterima yaitu 0101101. 5. Sinyal yang diterima ini dikalikan dengan dekoder dan dihasilkan sindrom 011. Sindrom ini kemudian dibandingkan dengan deretan bit dekoder dan didapatkan error pada posisi bit ke 4, sehingga sinyal tersebut diubah menjadi 0100101 dan data yang dikirimkan diambil dari 4 bit terakhir yaitu 0101. 6. Data yang diterima ini dibandingkan dengan data semula dan hasilnya sama, sehingga jumlah error adalah 0 dan bit error rate adalah 0
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
4.6
Analisa bit error rate dengan Program Simulasi Program simulasi yang telah selesai dirancang akan digunakan untuk
melakukan analisa terhadap hubungan antara probabilitas error kanal dengan bit error rate setelah menggunakan Kode Hamming(7,4). Parameter yang digunakan adalah probabilitas error kanal yang berubah-ubah dan jumlah pengiriman yang disesuaikan dengan probabilitas error kanal. Dari Hasil Simulasi diperoleh data sebagai berikut : 1. Untuk probabilitas error kanal 10-1 dan jumlah pengiriman 80 Dengan menggunakan simulasi diperoleh data seperti pada Tabel 4.1. Karena menggunakan jumlah percobaan sebanyak 30 kali maka hasil simulasi merupakan distribusi normal. Dengan menggunakan derajat kepercayaan 99,02%
maka
probabilitas yang digunakan adalah ½(0,9902) = 0,4951. Untuk probabilits 0,4951 nilai z adalah 2,58. Selang kepercayaan untuk hasil simulasi akan dihitung dengan menggunakan rumus[8] :
μ = X ± zσX
(4.1)
Dari Tabel 4.1 diperoleh hasil perhitungan : •
Selang
kepercayaan
untuk
bit
error
bit
error
rate(BER)
kanal
adalah
data
adalah
8,1607 x 10-2 ± 4,744 x 10-3. •
Selang
kepercayaan
untuk
4,84375 x 10-2 ± 7,328059 x 10-3.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
rate(BER)
Tabel 4.1. Hasil Simulasi Untuk BER kanal 10-1 No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Waktu BER Kanal Simulasi (X) 1 detik 8,57E‐02 1 detik 8,04E‐02 1 detik 7,14E‐02 1 detik 0,075 1 detik 7,68E‐02 1 detik 8,04E‐02 1 detik 7,68E‐02 2 detik 0,0875 1 detik 0,0875 1 detik 7,32E‐02 2 detik 9,82E‐02 1 detik 0,0875 2 detik 6,43E‐02 1 detik 8,57E‐02 1 detik 7,14E‐02 2 detik 6,43E‐02 1 detik 7,86E‐02 2 detik 8,93E‐02 1 detik 0,0875 1 detik 7,32E‐02 1 detik 8,57E‐02 1 detik 9,29E‐02 1 detik 7,68E‐02 2 detik 9,11E‐02 1 detik 0,10535714 1 detik 7,14E‐02 2 detik 9,82E‐02 2 detik 0,0875 1 detik 7,86E‐02 1 detik 6,61E‐02
BER Data (Y) 0,065625 0,04375 0,0375 0,046875 0,03125 0,046875 0,05625 0,04375 0,04375 0,053125 0,08125 0,046875 0,021875 0,03125 0,03125 0,034375 0,05625 0,0375 0,04375 0,03125 0,040625 0,059375 0,065625 0,065625 0,071875 0,040625 0,090625 0,04375 0,0375 0,053125
(X‐μX)2 Kanal
(Y‐μY)2 Data
1,68686E‐05 1,5625E‐06 0,000103603 4,36543E‐05 2,32462E‐05 1,5625E‐06 2,32462E‐05 3,47258E‐05 3,47258E‐05 7,04401E‐05 0,000275797 3,47258E‐05 0,000300032 1,68686E‐05 0,000103603 0,000300032 9,21556E‐06 5,89605E‐05 3,47258E‐05 7,04401E‐05 1,68686E‐05 0,000126563 2,32462E‐05 8,95727E‐05 0,000564063 0,000103603 0,000275797 3,47258E‐05 9,21556E‐06 0,000241358
0,00029541 2,19727E‐05 0,000119629 2,44141E‐06 0,00029541 2,44141E‐06 6,10352E‐05 2,19727E‐05 2,19727E‐05 2,19727E‐05 0,00107666 2,44141E‐06 0,000705566 0,00029541 0,00029541 0,000197754 6,10352E‐05 0,000119629 2,19727E‐05 0,00029541 6,10352E‐05 0,000119629 0,00029541 0,00029541 0,000549316 6,10352E‐05 0,001779785 2,19727E‐05 0,000119629 2,19727E‐05
2. Untuk probabilitas error kanal 10-2 dan jumlah pengiriman 800 Dengan menggunakan derajat kepercayaan dan jumlah percobaan yang sama dengan probabilitas error kanal 10-1 akan dihitung selang kepercayaan dari hasil simulasi yang ditunjukkan Tabel 4.2.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Tabel 4.2. Hasil Simulasi Untuk BER kanal 10-2 No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Waktu Simulasi 13 detik 12 detik 12 detik 12 detik 13 detik 12 detik 13 detik 12 detik 12 detik 12 detik 13 detik 12 detik 12 detik 12 detik 12 detik 13 detik 13 detik 12 detik 12 detik 12 detik 13 detik 13 detik 13 detik 13 detik 12 detik 13 detik 12 detik 12 detik 13 detik 12 detik
BER Kanal (X) 0,0171875 0,0178125 0,0175 0,0175 0,0178125 0,0175 0,0178125 0,0184375 0,0175 0,016875 0,0171875 0,0184375 0,0171875 0,0175 0,0175 0,0171875 0,018125 0,01875 0,0175 0,0175 0,016875 0,0171875 0,018125 0,0175 0,016875 0,01875 0,0175 0,01875 0,0171875 0,0175
BER Data (Y) 0 0,001875 0,0015625 0,0028125 0,0021875 0,001875 0,0021875 0,0028125 0 0 0,0015625 0,0025 0,001875 0,003125 0,0021875 0 0,0025 0,0028125 0,0025 0,0021875 0 0 0,001875 0 0 0,0028125 0 0,0028125 0 0,0025
(X‐μX)2 Kanal
(Y‐μY)2 Data
2,00629E‐07 3,13585E‐08 1,83377E‐08 1,83377E‐08 3,13585E‐08 1,83377E‐08 3,13585E‐08 6,43338E‐07 1,83377E‐08 5,78234E‐07 2,00629E‐07 6,43338E‐07 2,00629E‐07 1,83377E‐08 1,83377E‐08 2,00629E‐07 2,39692E‐07 1,2423E‐06 1,83377E‐08 1,83377E‐08 5,78234E‐07 2,00629E‐07 2,39692E‐07 1,83377E‐08 5,78234E‐07 1,2423E‐06 1,83377E‐08 1,2423E‐06 2,00629E‐07 1,83377E‐08
2,40896E‐06 1,04275E‐07 1,08507E‐10 1,58865E‐06 4,03754E‐07 1,04275E‐07 4,03754E‐07 1,58865E‐06 2,40896E‐06 2,40896E‐06 1,08507E‐10 8,98546E‐07 1,04275E‐07 2,47407E‐06 4,03754E‐07 2,40896E‐06 8,98546E‐07 1,58865E‐06 8,98546E‐07 4,03754E‐07 2,40896E‐06 2,40896E‐06 1,04275E‐07 2,40896E‐06 2,40896E‐06 1,58865E‐06 2,40896E‐06 1,58865E‐06 2,40896E‐06 8,98546E‐07
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Dari Tabel 4.2 diperoleh hasil perhitungan : •
Selang
kepercayaan
untuk
bit
error
bit
error
rate(BER)
kanal
adalah
data
adalah
8,101 x 10-3 ± 5,7 x 10-4. •
Selang
kepercayaan
untuk
rate(BER)
4,89583 x 10-4 ± 2,83613 x 10-4. 3. Untuk probabilitas error kanal 10-3 dan jumlah pengiriman 8000 Dengan menggunakan derajat kepercayaan dan jumlah percobaan yang sama dengan probabilitas error kanal 10-1 akan dihitung selang kepercayaan dari hasil simulasi yang ditunjukkan Tabel 4.3. Dari Tabel 4.3 diperoleh hasil perhitungan : •
Selang
kepercayaan
untuk
bit
error
bit
error
rate(BER)
kanal
adalah
data
adalah
7,91815 x 10-3 ± 9,19963 x 10-5. •
Selang
kepercayaan
untuk
3,125 x 10-6 ± 7,92699 x 10-6.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
rate(BER)
Tabel 4.3. Hasil Simulasi Untuk BER kanal 10-3 No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Waktu Simulasi 126 detik 127 detik 128 detik 126 detik 127 detik 127 detik 127 detik 126 detik 128 detik 127 detik 125 detik 125 detik 125 detik 126 detik 127 detik 128 detik 128 detik 126 detik 125 detik 126 detik 125 detik 126 detik 125 detik 125 detik 125 detik 125 detik 125 detik 126 detik 125 detik 125 detik
BER Kanal BER Data (X‐μX)2 Kanal (X) (Y) 7,14E‐04 0 6,01086E‐09 8,21E‐04 0,00009375 8,76935E‐10 7,86E‐04 0 3,72245E‐11 8,21E‐04 0 8,76935E‐10 8,93E‐04 0 1,02094E‐08 0,00075 0 1,74853E‐09 8,21E‐04 0 8,76935E‐10 9,11E‐04 0 1,41369E‐08 0,00075 0 1,74853E‐09 8,21E‐04 0 8,76935E‐10 0,00075 0 1,74853E‐09 5,89E‐04 0 4,10183E‐08 0,00171875 0 8,59208E‐07 5,71E‐04 0 4,85704E‐08 6,96E‐04 0 9,09866E‐09 6,43E‐04 0 2,21886E‐08 8,21E‐04 0 8,76935E‐10 7,68E‐04 0 5,74002E‐10 0,00075 0 1,74853E‐09 8,57E‐04 0 4,26767E‐09 7,68E‐04 0 5,74002E‐10 9,64E‐04 0 2,9746E‐08 6,61E‐04 0 1,71875E‐08 6,07E‐04 0 3,4104E‐08 7,68E‐04 0 5,74002E‐10 6,96E‐04 0 9,09866E‐09 8,21E‐04 0 8,76935E‐10 6,61E‐04 0 1,71875E‐08 7,14E‐04 0 6,01086E‐09 8,39E‐04 0 2,25342E‐09
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
(Y‐μY)2 Data 9,76563E‐12 8,21289E‐09 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12 9,76563E‐12
4.7
Analisa bit error rate secara Analisis Bit error rate secara analisis dapat dihitung dengan menggunakan rumus [1]: PB ≈ p – p ( 1 - p)n - 1 ..................................................(4.2) dimana p adalah probabilitas error kanal Hasil perhitungan BER secara analisis dapat dilihat pada Tabel 4.4. Tabel 4.4 Tabel Hubungan BER kanal dan BER data secara Analisis BER kanal 0,081607143 0,00810119 0,000791815
4.8
BER data Analisis 0,032640632 0,000385886 3,75439E‐06
Grafik Hubungan antara BER kanal dan BER data Hasil simulasi dan analisa yang tealah dihitung diatas akan digambarkan
dalam sebuah grafik untuk membandingkan BER yang dihitung secara analisis dan secara simulasi. Grafik tersebut dapat dilihat pada Gambar 4.9.
Gambar 4.9 Grafik Probabilitas Error Kanal Vs Bit Error Rate
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
BAB V KESIMPULAN DAN SARAN 5.1
Kesimpulan Dari hasil perancangan simulasi Pengkodean Hamming dapat diambil
kesimpulan : 1. Program ini dapat digunakan untuk mensimulasikan proses pengkodean dengan Kode Hamming(7,4) dan menghitung bit error rate. 2. Penggunaan simulasi dengan menggunakan jumlah simulasi yang lebih banyak akan menghasilkan hasil simulasi yang lebih akurat. 3. Pengkodean Hamming dapat mendeteksi tepat satu error dan dapat memperkecil bit error rate dalam sistem komunikasi digital.
5.2
Saran Dari kesimpulan yang diperoleh, maka saran yang dapat diberikan penulis
adalah : 1. Simulasi dapat dikembangkan dengan mengubah matriks generator untuk Kode Hamming lainnya . 2. Simulasi dapat dikembangkan dengan mengubah bilangan acak yang digunakan. 3. Simulasi dapat dikembangkan dengan menyertakan parameter-parameter sistem komunikasi digital lainnya.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
DAFTAR PUSTAKA
1. Sklar, Bernard. 2001. Digital Communications. New Jersey : Prentice Hall. Hal 2-11 dan hal 328-369. 2. Proakis, John G. 2001. Digital Communications. Singapore : McGraw-Hill. Hal 1-3 dan hal 416-425. 3. Couch,II.2001. Digital and Analog Communication Systems. United States of America : Prentice Hall. Hal 18-21. 4. Dipperstein,
Michael.2008.
Hamming
(7,4)
Code
Discussion
and
Implementation. http://michael.dipperstein.com/hamming/index.html. Hal 1. 5. Law, Averill M. and W. David Kelton. 2000. Simulation Modeling and Analysis. Singapore : Mc Graw Hill Book. Hal 1-6 dan hal 403-413. 6. Banks, dkk.1996. Discrete Event System Simulation. United States of America : Prentice Hall. Hal 1-6 dan hal 322-348. 7. Jeruchim, dkk. 1992. Simulation of Communication Systems. United States of America : Plenum Press. Hal 192-202 dan hal 275-282. 8. Walpole, Ronald E..1992. Pengantar Statistika. Jakarta : PT Gramedia Pustaka Utama. Hal 130-142 dan hal 237-247.
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
LAMPIRAN Listing Program Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim
str As String Gel(1 To 4) As Integer Gel1(1 To 7) As Integer gel2(1 To 7) As Integer Gen(1 To 4, 1 To 7) As Integer gen1(1 To 7, 1 To 3) As Integer Noise(1 To 7) As Integer cek(1 To 3) As Integer a As Integer error As Long error2 As Long percobaan As Long errorkanal As Double total As Long errorsim As Long nm As Boolean waktu As Date U1, U2, V1, V2, W, Y, X1, X2 As Variant
Private Sub Command1_Click() Randomize Dim errorkanal1 As Double percobaan = Text9.Text total = percobaan error2 = 0 k = 1 l = 1 errorkanal = CDbl(Text10.Text) Command3.Caption = "Hentikan" Timer1.Enabled = True List1.Clear List2.Clear Text11.Text = "0" Text12.Text = "0" errorsim = 0 Text14.Text = "0" Text13.Text = "0" waktu = Time() nm = False End Sub Private Sub Command2_Click() Unload Me End Sub Private Sub Command3_Click() If Command3.Caption = "Hentikan" Then Timer1.Enabled = False Command3.Caption = "Lanjutkan" Else Timer1.Enabled = True Command3.Caption = "Hentikan" End If End Sub
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Private Sub Form_Load() HScroll1.Value = Timer1.Interval End Sub Private Sub HScroll1_Change() Label4.Caption = HScroll1.Value Timer1.Interval = 10001 - HScroll1.Value End Sub Sub Sinyal() Call Biner(Poisson) str = "" For a = 1 To 4 str = str & Gel(a) Next a Text1.Text = str End Sub Function Normal() As Variant If nm = False Then Do U1 = Rnd() U2 = Rnd() V1 = 2 * U1 - 1 V2 = 2 * U2 - 1 W = V1 ^ 2 + V2 ^ 2 If (W <= 1) Then Exit Do Loop Y = Sqr((-2 * Log(W)) / W) X1 = Abs(V1 * Y) X2 = Abs(V2 * Y) List2.AddItem (X1) List2.AddItem (X2) Normal = X1 nm = True Else Normal = X2 nm = False End If End Function Function Poisson() As Integer Dim p, p1 As Variant Dim i As Integer p = Exp(-1 * 8) p1 = 1 i = 0 Do p1 = p1 * Rnd() If (p1 < p) Then Poisson = i List1.AddItem (i) Exit Do End If i = i + 1 Loop End Function
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Sub Biner(Angka As Integer) sisa = 2 For j = 4 To 1 Step j - 1 If Angka = 0 Then Gel(j) = 0 Else sisa = Angka / 2 Gel(j) = Angka Mod 2 If Gel(j) = 1 Then Angka = sisa - 0.5 Else Angka = sisa End If End If Next j End Sub Sub NoiseTrans() For j = 1 To 7 If Normal() <= errorkanal Then Noise(j) = 1 errorsim = errorsim + 1 Text14.Text = errorsim Text13.Text = errorsim / (Text9.Text * 7) Else Noise(j) = 0 End If Next j str = "" For a = 1 To 7 str = str & Noise(a) Next a Text3.Text = str End Sub Sub Encoding() Gen(1, 1) = 0 Gen(1, 2) = 1 Gen(1, 3) = 1 Gen(2, 1) = 1 Gen(2, 2) = 0 Gen(2, 3) = 1 Gen(3, 1) = 1 Gen(3, 2) = 1 Gen(3, 3) = 0 Gen(4, 1) = 1 Gen(4, 2) = 1 Gen(4, 3) = 1 For a = 1 To 4 For b = 4 To 7 If b - 3 = a Then Gen(a, b) = 1 Else Gen(a, b) = 0 End If Next b Next a For a = 1 To 7 Gel1(a) = perkalian(a) Mod 2
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Next a str = "" For a = 1 To 7 str = str & Gel1(a) Next a Text6.Text = str End Sub Function perkalian(d As Integer) As Integer For c = 1 To 4 perkalian = perkalian + (Gel(c) * Gen(c, d)) Next c End Function Sub sinyal_noise() For a = 1 To 7 gel2(a) = (Gel1(a) + Noise(a)) Mod 2 Next a str = "" For a = 1 To 7 str = str & gel2(a) Next a Text7.Text = str End Sub Sub decoding() For a = 1 To 3 For b = 1 To 3 If a = b Then gen1(a, b) = 1 Else gen1(a, b) = 0 End If Next b Next a gen1(4, 1) = 0 gen1(4, 2) = 1 gen1(4, 3) = 1 gen1(5, 1) = 1 gen1(5, 2) = 0 gen1(5, 3) = 1 gen1(6, 1) = 1 gen1(6, 2) = 1 gen1(6, 3) = 0 gen1(7, 1) = 1 gen1(7, 2) = 1 gen1(7, 3) = 1 For a = 1 To 3 cek(a) = perkalian1(a) Mod 2 Next a End Sub Function perkalian1(d As Integer) As Integer For c = 1 To 7 perkalian1 = perkalian1 + (gel2(c) * gen1(c, d)) Next c End Function
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Sub cek_error() koreksi = 0 error = 0 For a = 1 To 3 If cek(a) = 1 Then error = 1 End If Next a If error = 1 Then For a = 1 To 7 c = 0 For b = 1 To 3 If cek(b) = gen1(a, b) Then c = c + 1 End If Next b If c = 3 Then koreksi = a End If Next a End If For a = 1 To 7 If a = koreksi Then If gel2(a) = 1 Then gel2(a) = 0 Else gel2(a) = 1 End If End If Next a End Sub Sub Sinyal_output() str = "" For a = 4 To 7 str = str & gel2(a) Next a Text5.Text = str End Sub Sub analisa() For a = 1 To 4 If Not (Gel(a) = gel2(a + 3)) Then error2 = error2 + 1 End If Next a Text8.Text = error2 Text11.Text = Text8.Text / (Text9.Text * 4) End Sub Private Sub Timer1_Timer() If percobaan > 0 Then Call Sinyal Call NoiseTrans Call Encoding Call sinyal_noise Call decoding Call cek_error
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008
Call Sinyal_output Call analisa percobaan = percobaan - 1 Text12.Text = Text9.Text - percobaan Else waktu = Time() - waktu MsgBox "Simulasi sudah selesai" & vbCrLf & "Waktunya " & waktu, vbInformation, "Pesan" Timer1.Enabled = False End If End Sub
Irsan : Simulasi Pengkodean Hamming Untuk Menghitung Bit Error Rate, 2009 USU Repository © 2008