3 HASIL DAN PEMBAHASAN

dokumen-dokumen yang mirip
BAB III HASIL DAN PEMBAHASAN

BAB IV HASIL DAN PEMBAHASAN

BAB II LANDASAN TEORI

KONSTRUKSI KODE LINEAR BINER OPTIMAL KUAT BERJARAK MINIMUM 5 DAN 7 ASRIZA RAHMA

KONSTRUKSI KODE LINEAR BINER OPTIMAL KUAT BERJARAK MINIMUM 13 DAN 15 HENDRAWAN

BAB II TINJAUAN PUSTAKA

Table of Contents. Table of Contents 1

BAB II KAJIAN PUSTAKA. operasi matriks, determinan dan invers matriks), aljabar max-plus, matriks atas

1 PENDAHULUAN 1.1 Latar Belakang

Sandi Blok. Risanuri Hidayat Jurusan Teknik Elektro dan Teknologi Informasi FT UGM

Kode, GSR, dan Operasi Pada

BAB II KAJIAN TEORI. definisi mengenai grup, ring, dan lapangan serta teori-teori pengkodean yang

G a a = e = a a. b. Berdasarkan Contoh 1.2 bagian b diperoleh himpunan semua bilangan bulat Z. merupakan grup terhadap penjumlahan bilangan.

Pertama, daftarkan kedua himpunan vektor: himpunan yang merentang diikuti dengan himpunan yang bergantung linear, perhatikan:

GARIS-GARIS BESAR PROGRAM PEMBELAJARAN

BAB 5 RUANG VEKTOR A. PENDAHULUAN

BAB I PENDAHULUAN. Penyampaian pesan dapat dilakukan dengan media telephone, handphone,

MATRIKS A = ; B = ; C = ; D = ( 5 )

III PEMBAHASAN. enkripsi didefinisikan oleh mod dan menghasilkan siferteks c.

Aljabar Linear Elementer

BAB II TEORI KODING DAN TEORI INVARIAN

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

Minggu II Lanjutan Matriks

Pelabelan matriks menggunakan huruf kapital. kolom ke-n. kolom ke-3

BAB I PENDAHULUAN A. Latar Belakang B. Rumusan Masalah C. Tujuan

Definisi : det(a) Permutasi himpunan integer {1, 2, 3,, n}:

Aljabar Linear. & Matriks. Evangs Mailoa. Pert. 5

BAB II LANDASAN TEORI. yang biasanya dinyatakan dalam bentuk sebagai berikut: =

Kode Sumber dan Kode Kanal

BAB III HASIL DAN PEMBAHASAN

Ruang Baris, Ruang Kolom, dan Ruang Null (Kernel)

02-Pemecahan Persamaan Linier (1)

BAB II TINJAUAN PUSTAKA

III. BILANGAN KROMATIK LOKASI GRAF. Bilangan kromatik lokasi graf pertama kali dikaji oleh Chartrand dkk.(2002). = ( ) {1,2,3,, } dengan syarat

BAB II TINJAUAN PUSTAKA

ALJABAR LINEAR BASIS RUANG BARIS DAN BASIS RUANG KOLOM SEBUAH MATRIKS. Dosen Pengampu: DARMADI, S.Si, M.Pd. Oleh: Kelompok III

BAB II LANDASAN TEORI

KONSTRUKSI LEXICOGRAPHIC UNTUK MEMBANGUN KODE HAMMING (7, 4, 3)

BAB II TINJAUAN PUSTAKA. tegak, perlu diketahui tentang materi-materi sebagai berikut.

SATUAN ACARA PERKULIAHAN MATA KULIAH : ALJABAR LINIER JURUSAN : TEKNIK KOMPUTER JUMLAH SKS : Definisi, Notasi, dan Operasi Vektor 2.

KONSTRUKSI KODE BCH SEBAGAI KODE SIKLIK Indrawati, Loeky Haryanto, Amir Kamal Amir.

ALJABAR LINIER MAYDA WARUNI K, ST, MT ALJABAR LINIER (I)

1.1. Definisi, Notasi, dan Operasi Vektor 1.2. Susunan Koordinat Ruang R n 1.3. Vektor di dalam R n 1.4. Persamaan garis lurus dan bidang rata

IV. MATRIKS PEMADANAN MAKSIMAL

Proses Decoding Kode Reed Muller Orde Pertama Menggunakan Transformasi Hadamard

BAB II LANDASAN TEORI

Matriks - 1: Beberapa Definisi Dasar Latihan Aljabar Matriks

2 BILANGAN PRIMA. 2.1 Teorema Fundamental Aritmatika

BAB III ANALISIS, ALGORITMA, DAN CONTOH PENERAPAN

III. BILANGAN KROMATIK LOKASI GRAF. ini merupakan pengembangan dari konsep dimensi partisi dan pewarnaan graf.

BAB II KERANGKA TEORITIS. komposisi biner atau lebih dan bersifat tertutup. A = {x / x bilangan asli} dengan operasi +

BAB 2 DEGREE CONSTRAINED MINIMUM SPANNING TREE. Pada bab ini diberikan beberapa konsep dasar seperti beberapa definisi dan teorema

Deteksi dan Koreksi Error

TINJAUAN PUSTAKA. Pada bagian ini akan diberikan konsep dasar graf dan bilangan kromatik lokasi pada

8 MATRIKS DAN DETERMINAN

BAB II DETERMINAN DAN INVERS MATRIKS

METODE HAMMING PENDAHULUAN. By Galih Pranowo ing

II. TINJAUAN PUSTAKA. Suatu matriks didefinisikan dengan huruf kapital yang dicetak tebal, misalnya A,

SATUAN ACARA PERKULIAHAN MATA KULIAH : ALJABAR LINIER KODE / SKS : IT / 2 SKS

BAB II TEORI DASAR. untuk setiap e G. 4. G mengandung balikan. Untuk setiap a G, terdapat b G sehingga a b =

1. Ubahlah pernyataan ke dalam berikut ke dalam bentuk Jika p maka q.

Syarat Fritz John pada Masalah Optimasi Berkendala Ketaksamaan. Caturiyati 1 Himmawati Puji Lestari 2. Abstrak

UJI KINERJA FACE RECOGNITION MENGGUNAKAN EIGENFACES

BAB II TINJAUAN PUSTAKA

1. PENDAHULUAN 2. METODE PENELITIAN 3. HASIL DAN PEMBAHASAN. Abstrak

SEKILAS TENTANG KONSEP. dengan grup faktor, dan masih banyak lagi. Oleh karenanya sebelum

Bab 4 RUANG VEKTOR. 4.1 Ruang Vektor

RENCANA KEGIATAN PERKULIAHAN Kode Mata Kuliah : MAA 526 Nama Mata Kuliah : Analisis Fungsional

KONSTRUKSI METRIK EINSTEIN SELFDUAL PADA

Model Optimisasi dan Pemrograman Linear

Analisis Fungsional. Oleh: Dr. Rizky Rosjanuardi, M.Si Jurusan Pendidikan Matematika UNIVERSITAS PENDIDIKAN INDONESIA

LEMBAR AKTIVITAS SISWA MATRIKS

Lampiran 1 Pembuktian Teorema 2.3

UNIVERSITAS PENDIDIKAN INDONESIA

MA Analisis dan Aljabar Teori=4 Praktikum=0 II (angka. 17 Juli

LEMBAR AKTIVITAS SISWA MATRIKS

BAB III OPERATOR LINEAR TERBATAS PADA RUANG HILBERT. Operator merupakan salah satu materi yang akan dibahas dalam fungsi

2.3 Algoritma Tidak Berhubungan dengan Bahasa Pemrograman Tertentu

BAB 2 GRAF PRIMITIF. 2.1 Definisi Graf

BAB II KAJIAN TEORI. yang diapit oleh dua kurung siku sehingga berbentuk empat persegi panjang atau

Aljabar Linier. Kuliah 2 30/8/2014 2

TINJAUAN PUSTAKA Analisis Biplot Biasa

Modul 2.2 Matriks dan Sistem Persamaan Linear (Topik 3) A. Pendahuluan Matriks dan Sistem Persamaan Linear

KONSTRUKSI BARISAN HITUNG SERAGAM SEIMBANG BERBASIS BARISAN TRANSISI KODE GRAY

II. TINJAUAN PUSTAKA. Pada bab ini diberikan beberapa definisi mengenai teori grup yang mendukung. ke. Untuk setiap, dinotasikan sebagai di

03-Pemecahan Persamaan Linier (2)

6 Sistem Persamaan Linear

MATRIKS. 3. Matriks Persegi Matriks persegi adalah matriks yang mempunyai baris dan kolom yang sama.

Aljabar Linier & Matriks

MATRIKS SATUAN ACARA PERKULIAHAN

KATEGORI TEORI SELEKSI TINGKAT PROVINSI OSN PERTAMINA 2014 BIDANG MATEMATIKA

Chapter 5 GENERAL VECTOR SPACE Row Space, Column Space, Nullspace 5.6. Rank & Nullity

PROGRAM STUDI PENDIDIKAN MATEMATIKA FAKULTAS KEGURUAN DAN ILMU PENDIDIKAN UNIVERSITAS VETERAN BANGUN NUSANTARA SUKOHARJO

MUH1G3/ MATRIKS DAN RUANG VEKTOR

Ruang Vektor Euclid R 2 dan R 3

BAB 2 DIGRAPH. Representasi dari sebuah digraph D dapat dilihat pada contoh berikut. Contoh 2.1. Representasi dari digraph dengan 5 buah verteks.

BAB 2 GRAF PRIMITIF. Gambar 2.1. Contoh Graf

Matriks. Contoh matriks simetri. Matriks zero-one (0/1) adalah matriks yang setiap elemennya hanya bernilai 0 atau 1. Contoh matriks 0/1:

PERMUTASI DENGAN PANJANG YANG TIDAK MEMUAT POLA DENGAN PANJANG EMPAT

BAB III TENSOR. Berdasarkan uraian bab sebelumnya yang telah menjelaskan beberapa

Transkripsi:

3 HASIL DAN PEMBAHASAN 3.1 Formulasi Masalah Sejauh ini telah diperkenalkan bahwa terdapat tiga parameter yang terkait dengan konstruksi suatu kode, yaitu panjang, dimensi, dan jarak minimum. Jika C adalah kode linear biner yang mempunyai panjang n, berdimensi k, dan berjarak minimum d, maka C dikatakan baik jika n kecil, k besar dan d besar. Makna fisiknya, n harus kecil terkait dengan kecepatan proses enkoding dan dekoding, dan juga terkait dengan besarnya memori yang digunakan dalam proses itu. Sementara itu k harus besar terkait dengan banyaknya pesan yang dapat diubah menjadi kata kode, sedangkan d harus besar terkait dengan banyaknya galat yang dapat dikoreksi. Misalkan diberikan sembarang dua parameter, yaitu n dan k. Permasalahannya, apakah ada suatu kode [ nkd,, ] untuk nilai d yang sebesarbesarnya? Pertanyaan tersebut mengarah pada pendefinisian fungsi (, ) max { kode [,, ] ada} D n k = d n k d. Dalam hal ini, suatu kode C dengan parameter [ nkd,, ] disebut optimal D (optimal jarak minimum), jika C ada (telah berhasil dikonstruksi) dan tidak ada kode dengan parameter [ nkd+,, 1] (telah pula dibuktikan). Batas bawah l dan batas atas u dari fungsi D( n, k ) diartikan sebagai berikut. Misalnya D( n, k ) terletak di antara l dan u ( l D( n, k) u), artinya telah berhasil dikonstruksi kode dengan parameter [ nkd,, l] dan telah berhasil pula dibuktikan bahwa tidak ada kode dengan parameter [ nkd,, u] [ nkd,, ] dengan l < d u merupakan masalah terbuka (open problem). >, sedangkan ada atau tidaknya kode dengan parameter Untuk memperbaiki satu langkah batas bawah dari fungsi D( n, k ), perlu dikonstruksi kode dengan parameter [ nkl+,, 1], sedangkan untuk perbaikan satu langkah batas atas dari fungsi D( n, k ) sama dengan membuktikan bahwa tidak ada kode dengan parameter [ nku,, ]. Informasi terkini untuk batas fungsi

22 D( n, k ) dapat dilihat di dalam Tabel Brouwer dan bisa diakses secara on-line pada alamat http://codetables.de (cuplikan dari Tabel Brouwer dapat dilihat pada Lampiran 1). Jika berhasil diperbaiki satu saja batas (bawah atau atas) dari Tabel Brouwer, berarti telah berhasil "dipecahkan satu rekor dunia". Secara analog (ekivalen), untuk optimalisasi dimensi (optimal-k) dapat didefinisikan fungsi K( n, k ) atau fungsi (, ) N nk untuk optimalisasi panjang kode (optimal-n), dan sekaligus memformulasikan masalahnya. K( n, d) : max { k kode [ n, k, d] ada} N( k, d) : = min { n kode [ n, k, d] ada}. =. Berdasarkan formulasi umum problem di atas, pada penelitian ini akan didefinisikan kode optimal kuat (strongly optimal codes) beserta formula konstruksinya berlandaskan teorema-teorema yang telah didefinisikan pada tinjauan pustaka. Kode linear C dengan parameter [ nkd,, ] disebut kode optimal kuat jika kode linear-[ nkd,, ] ada dan telah berhasil dibuktikan bahwa kode linear-[ n+ 1, k+ 1, d] tidak ada, sedangkan suatu kode disebut optimal- D jika kode linear-[ nkd,, ] ada dan telah berhasil dibuktikan bahwa kode linear- [ nkd+,, 1] tidak ada. Jika kode linear-[ nkd,, ] ada dan telah berhasil dibuktikan bahwa kode linear-[ n 1, k, d] tidak ada, maka kode tersebut disebut optimal- N. Selanjutnya, jika kode linear-[ nkd,, ] ada dan telah berhasil dibuktikan bahwa kode linear-[ nk, + 1, d] tidak ada, maka kode tersebut disebut optimal- K. Berdasarkan dasar-dasar konstruksi kode, dalam penelitian ini juga dianalisis hubungan antara kode yang memiliki sifat optimal-d, optimal-k, optimal-n, dan optimal kuat. Konstruksi kode yang dilakukan dalam penelitian ini dilakukan atas dasar teori konstruksi langsung (direct constructions). Ide dasarnya adalah sebagai berikut. Jika suatu kode memenuhi pertaksamaan Gilber-Varshamov, maka kode tersebut dapat diperluas [Brouwer, 1997]. Dalam penelitian ini, konstruksi kode dibatasi hanya untuk jarak minimum d = 9 dan d = 11. Selain itu, kode yang akan dikonstruksi hanya untuk kode linear

23 n biner, yaitu kode yang ada dalam ruang vektor F 2. Pemilihan kasus cukup untuk d ganjil, hal ini didasarkan pada salah satu sifat kode linear yang dinyatakan sebagai berikut. 3.1.1 Teorema 11 Jika kode dengan parameter [ nkd,, ] ada untuk d ganjil, maka dapat dikonstruksi kode dengan parameter [ n 1, k, d 1] berbobot genap. Bukti: + + dan setiap anggotanya Misalkan telah dikonstruksi kode linear dengan parameter [ nkd,, ], dengan d ganjil. Dengan melakukan penambahan pada matriks cek paritas (dasar konstruksi kode yang pertama) akan diperoleh kode dengan parameter [ n 1, k, d 1] + +. 3.2 Analisis Teori Diberikan kode linear C dengan parameter [ nk, ]. Misalkan H merupakan matriks cek paritas untuk C. Dari definisi matriks cek paritas, n T { q 0} = =, atau dengan kata lain, C ker ( H) C x F Hx =. Hal ini karena barisbaris dari matriks H merupakan basis untuk C, komplemen orthogonal bagi C. Karena kode linear C merupakan kernel dari matriks cek paritasnya, maka mengonstruksi suatu kode linear C sama dengan mengonstruksi matriks cek paritasnya. 3.2.1 Teorema 12 Diberikan kode linear C dengan panjang n. Jika H adalah matriks cek paritas untuk C, maka kode tersebut mempunyai dimensi ( n r) jika dan hanya jika ada r kolom dari H yang bebas linear tetapi tidak ada r + 1 kolom dari H yang bebas linear ( r adalah rank dari H ). Bukti:

24 Diberikan kode linear C dengan panjang n. Didefinisikan r = n-k. Misalkan H adalah matriks cek paritas bagi kode linear C. Misalkan pula G adalah matriks generator bagi kode linear C. n r jika dan hanya jika Kode linear C memiliki pangkat ( ) rank ( G) = ( n k ). [Karena G adalah basis, dan banyaknya baris di G menunjukkan dimensi suatu kode]. Karena G dan H saling orthogonal, maka rank H = r. rank ( G) ( n r) = jika dan hanya jika ( ) 3.2.2 Teorema 13 Diberikan kode linear C dengan panjang n. Jika H adalah matriks cek paritas untuk C, maka kode tersebut mempunyai jarak minimum d jika dan hanya jika setiap d 1 kolom dari H yang bebas linear dan ada d kolom dari H yang tidak bebas linear. Bukti: Diberikan kode linear C dengan panjang n. Misalkan H adalah matriks cek paritas bagi kode linear C. Kode linear C berbobot minimum d jika dan hanya jika kedua butir berikut terpenuhi n T T i. Ada vektor v F2 dengan wt ( v) = d sehingga Hv = 0. T T T T ii. Hw 0 untuk setiap w F2 < d. (Jika Hw = 0, maka w C. Kontradiksi dengan fakta bahwa wt ( w) < d ). Di sisi lain, kedua butir di atas (i dan ii) dapat terjadi jika dan hanya jika ada n dengan wt ( w) d kolom dari H yang tidak bebas linear dan setiap d 1 kolom dari H bebas linear. 3.2.3 Teorema 14: The Singleton Bound Diberikan kode linear C. Jika C adalah kode dengan parameter [ nkd,, ] maka ( n k) ( d 1. )

25 Bukti: Misalkan diberikan kode linear C dengan parameter [ nkd,, ], maka kode linear C memiliki matriks cek paritas H berukuran ( ) rank ( H ) ( n k ). n k n, sehingga Dari Teorema 13, matriks H memiliki d 1 kolom yang bebas linear, sehingga rank ( H ) = ( d 1), dengan kata lain ( d 1) ( n k). 3.2.4 Teorema 15: The Gilbert-Varshamov Bound Diberikan kode linear C dengan parameter [ nkd,, ]. Jika ketaksamaan n n n n k 1+ + + + < 2 berlaku, maka dapat dikonstruksi kode dengan 1 2 d 2 parameter [ n 1, k 1, d] Bukti: + +. Misalkan diberikan kode linear yang memiliki parameter [ nkd,, ]. Berdasarkan Teorema 5, ada matriks cek paritas berordo ( ) ( ) H = c c c yang setiap 1 1 2... n d vektor dari { } n k n, yaitu c1, c2,..., c n adalah bebas n k linear dalam ruang vektor F 2. Jika ada vektor x F n k 2 yang bukan i kombinasi linear dari vektor-vektor kolom H, untuk i = 1, 2,..., d 2, maka ( ) H' = c c c x adalah matriks cek paritas untuk kode linear yang 1 2 memiliki parameter [ n 1, k 1, d] dan setiap 1 n k vektor F 2. n + +. Hal ini karena ' d vektor dari { c, c,...,, } 1 2 n H berorde ( n k) ( k+ 1) c x adalah bebas linear dalam ruang Jika banyaknya kombinasi linear yang mungkin dari kolom-kolom sehingga tidak ada d 1 kolom yang bergantung linear lebih besar atau sama n k dengan jumlah vektor tak nol dalam F 2, maka untuk kode linear dengan parameter [ n 1, k 1, d] H ' H ' bukan matriks cek paritas + +. Banyaknya vektor-vektor tak-

26 n k nol dalam F n 2 yang mungkin dipilih untuk x adalah 2 k 1, sedangkan banyaknya kombinasi linear yang mungkin dari kolom-kolom n n n 1 2 d 2 H ' adalah + + +. Dengan demikian, jika ada kode linear C dengan parameter [ nkd,, ] dan pertaksamaan n n n n k 1+ + + + < 2 berlaku, maka dapat 1 2 d 2 dikonstruksi kode baru dengan parameter [ n 1, k 1, d] + + berdasarkan kode linear C tersebut. 3.2.5 Lema 3 Misalkan C adalah suatu kode linear dengan panjang n, maka jumlah unsur satu pada setiap kata kode di posisi ke-i sama dengan nol atau setengah dari jumlah kata kode yang ada di C. Bukti: Misalkan X adalah himpunan kata kode yang memiliki unsur nol pada koordinat ke-i dan Y adalah himpunan kata kode yang memiliki unsur satu pada koordinat ke-i, maka C = X Y. Jika Y =, maka C= X, sehingga tidak ada kata kode yang memiliki unsur satu pada posisi ke-i. Namun demikian, jika Y, ambil c Y sembarang, karena c+ Y X, maka Y X. Selanjutnya, karena c+ X Y, maka X Y. Oleh karena itu, dapat diambil kesimpulan bahwa Y = X. 3.2.6 Proposisi 1 i. Jika ada kode linear dengan parameter [ nkd,, ], maka ada kode linear dengan parameter [ n 1, k, d 1], di di manamana d > 1. ii. Jika ada kode linear dengan parameter [ nkd,, ], maka ada kode linear dengan parameter [ n 1, k, d] +.

27 iii. Jika ada kode linear dengan parameter [ nkd,, ], maka ada kode linear dengan parameter [ nk, 1, d], di mana k > 1. iv. Jika ada kode linear dengan parameter [ nkd,, ], maka ada kode Bukti: linear dengan parameter [ n 1, k 1, d], di mana k > 1. i. Misalkan C adalah kode linear dengan parameter [ nkd,, ] dengan d > 1. Karena C memiliki jarak minimal d, maka ada kata kode c C dimana wt ( c) = wt ( C) = d. Misalkan kata kode c memiliki unsur satu pada koordinat ke-i. Dengan menghapus unsur ke-i pada semua kata kode dalam C, akan diperoleh kode linear panjang ( n 1) dan c berubah menjadi c '. Karena wt ( c ) maka wt ( C ') = d 1. Untuk menunjukkan dim ( C' ) dim ( C' ) C ' dengan ' = d 1, = k, misalkan < k, maka ada x, y C, sehingga x + c= y di mana wt ( c ) = 1. Kontradiksi dengan 1 d >. Haruslah dim ( C' ) = k. Dengan demikian, C ' memiliki parameter [ n 1, k, d 1]. ii. Misalkan G k nadalah matriks generator untuk kode linear C dengan parameter [ nkd,, ]. Tambahkan vektor nol pada kolom terakhir G sehingga membentuk matriks G ' yang berukuran k ( n+ 1). Karena yang ditambahkan adalah vektor nol, maka banyaknya kombinasi linear dari baris-barisnya tidak akan berubah, sehingga jarak minimumnya tidak berubah. Dengan kata lain, telah diperoleh kode linear dengan parameter [ n 1, k, d] +. iii. Misalkan C adalah kode linear dengan parameter [ nkd,, ] dengan k > 1. Karena C memiliki jarak minimal d, maka ada kata kode c C di mana wt ( c) = wt ( C) = d. Misalkan G k n adalah matriks generator untuk C dan c ada di salah satu baris dari G. Misalkan

28 pula baris ke- r dari G yang tidak sama dengan c dihapus sehingga membentuk kode baru, yaitu C ' dengan matriks generator Karena baris-baris di G saling bebas linear, maka semua baris di juga saling bebas linear, sehingga ( C ) G '. G ' dim ' = k 1. Karena wt ( C) = wt ( c) = d dan kata kode c tetap ada di C ', maka wt ( C ') [ nk, 1, d] = d, sehingga kode linear C ' memiliki parameter. iv. Misalkan C adalah kode linear dengan parameter [ nkd,, ] dengan k > 1. Karena C memiliki jarak minimal d, maka ada kata kode c C di mana wt ( c) = wt ( C) = d. Misalkan G dan H adalah matriks generator dan matriks cek paritas untuk C. Misalkan pula kata kode c memiliki unsur nol pada koordinat ke-i. Ada dua kasus yang mungkin terjadi, kasus pertama adalah semua kata kode di C memiliki unsur nol pada koordinat ke-i, sedangkan kasus kedua tidak semua kata kode memiliki unsur nol pada koordinat ke-i. Jika kasus pertama yang terjadi, maka koordinat ke-i pada semua kata kode dapat dihapus sehingga menghasilkan kode dengan parameter [ n 1, k, d] (Proposisi 1 butir i), selanjutnya dengan menghapus satu baris dari matriks generator untuk kode dengan parameter [ n 1, k, d] tersebut, akan diperoleh kode dengan parameter [ n 1, k 1, d] (Proposisi 1 butir ii). Seandainya kasus kedua yang terjadi, yaitu ada beberapa kata kode yang memiliki unsur satu pada koordinat ke-i, maka berdasarkan Lema 3, setengah dari kata kode yang ada di C memiliki unsur satu pada koordinat ke-i. Dengan menghapus koordinat ke-i pada setiap kata kode yang ada di C, akan diperoleh kode C ' yang meniliki panjang ( n 1). Misalkan kata kode c berubah menjadi c ', karena yang dihapus pada koordinat kei adalah unsur nol, maka wt ( c' ) = d, sehingga wt ( C ') = d.

29 Selanjutnya dengan menghapus satu baris dari matriks generator untuk kode dengan parameter [ n 1, k, d] kode dengan parameter [ n 1, k 1, d] tersebut, akan diperoleh (Proposisi 1 butir ii). 3.2.7 Proposisi 2 Diberikan kode linear C dengan parameter [ nkd,, ]. i. Jika C optimal kuat, maka C optimal- K. ii. Jika C optimal- N, maka C optimal- D. iii. Jika C optimal- K, maka belum tentu C optimal kuat. iv. Jika C optimal- D, maka belum tentu C optimal- N. v. Jika C optimal- D, maka belum tentu C optimal- K. vi. Jika C optimal- D, maka belum tentu C optimal kuat. vii. Jika C optimal- N, maka belum tentu C optimal kuat. Bukti: i. Andaikan C tidak optimal- K, maka ada kode linear C ' dengan parameter [ nk, 1, d] +. Karena ada kode C ' ada, maka dari Proposisi 1 bagian ii, akan ada kode linear dengan parameter [ n 1, k 1, d] Hal ini kontradiksi dengan fakta bahwa kode C optimal kuat. + +. ii. Andaikan C tidak optimal- D, maka ada kode linear C ' dengan parameter [ nkd+,, 1]. Karena kode C ' ada, maka dari Proposisi 1 bagian i, akan ada kode linear dengan parameter [ n 1, k, d]. Hal ini kontradiksi dengan fakta bahwa kode C optimal-n. iii. Dari Tabel Brouwer, ada kode dengan parameter [ 13,9,3 ] dan tidak ada kode dengan parameter [ 13,10,3 ]. Tetapi kode dengan parameter [ 14,10,3 ] ada.

30 iv. Dari Tabel Brouwer, ada kode dengan parameter [ 14,7,4 ] dan tidak ada kode dengan parameter [ 14,7,5 ]. Tetapi kode dengan parameter [ 13,7,4 ] ada. v. Dari Tabel Brouwer, ada kode dengan parameter [ 15,4,8 ] dan tidak ada kode dengan parameter [ 15,3,9 ]. Tetapi kode dengan parameter [ 15,4,8 ] ada. vi. Dari Tabel Brouwer, ada kode dengan parameter [ 17,8,6 ] dan tidak ada kode dengan parameter [ 17,8,9 ]. Tetapi kode dengan parameter [ 18,9,6 ] ada. vii. Dari Tabel Brouwer, ada kode dengan parameter [ 15,4,8 ] dan tidak ada kode dengan parameter [ 14,4,8 ]. Tetapi kode dengan parameter [ 16,5,8 ] ada. 3.3 Metode Komputasi Dalam penelitian ini, software yang digunakan untuk mengonstruksi kode optimal kuat adalah MAPLE. Dari analisis teori, diturunkan algoritme-algoritme untuk mengonstruksi kode optimal kuat. Dalam subbab-subbab berikut ini, dibahas algoritme konstruksi dan deskripsi program konstruksi. 3.3.1 Ide dasar konstruksi kode Untuk mengkonstruksi suatu kode, sama saja artinya dengan mengonstruksi matriks cek paritas H. Berlandaskan teorema-teorema yang telah disebutkan di landasan teori, cukup dikonstruksi bentuk standar dari H, yaitu H ( B T Ir ) =. Berdasarkan pertimbangan efisiensi komputasi, cukup dikonstruksi matriks B berukuran k r. Setelah mempelajari teorema-teorema sebelumnya, terutama teorema Gilbert-Varshamov, dapat dibuat teorema baru yang berkaitan dengan konstruksi kode linear biner, yaitu:

31 berikut. maka Teorema 16 Jika matriks B berukuran k r dikonstruksi berdasarkan sifat sebagai 1. Semua vektor baris dari B berbeda, dan 2. Jumlah setiap i vektor baris dari B berbobot paling sedikit ( d i) i = 2,3,..., s di mana s min{ d 1, k} =, dan ( d 1) T ( ) = dan G= ( I B) H B I r k r, untuk secara berturut-turut merupakan matriks cek paritas dan matriks generator untuk kode linear C dengan parameter [ k r, k, d] +. Bukti: Misalkan telah dikonstruksi matriks B berukuran k r sebagaimana disyaratkan teorema. Akan ditunjukkan bahwa H t ( B I r ) cek paritas untuk kode linear C dengan parameter [ k r, k, d] = merupakan matriks +. Karena H berukuran r ( k+ r), maka C memiliki panjang k + r. Karena jumlah baris matriks B sama dengan k, maka kode linear C berdimensi k. Selanjutnya, akan ditunjukkan bahwa kode linear C memiliki jarak minimum kurang dari atau sama dengan d. Andaikan ada v C dengan wt ( v) < d dan dituliskan v= ( vm, vc) di mana v m merupakan vektor pesan dengan wt ( vm ) dan = i dan c v adalah vektor cek dengan wt ( v ) ( ) c c = j, maka berlaku i+ j< d j< d i wt v < d i (1) T v m Hv = 0 ( B I) 0 Bv Iv 0 Bv v T = + = = vc Karena wt ( vm ) T T T T T T T T T T T r m r c m c T T ( m ). (2) = i, dan berdasarkan pada syarat 2 dari konstruksi B, maka wt B v d i. (3)

32 Dari persamaan 2, diperoleh bahwa B T v T = v T, sehingga persamaan 3 ekivalen dengan wt ( vc ) d i. Hal ini kontradiksi dengan persamaan 1. Sehingga dapat disimpulkan bahwa kode linear C memiliki jarak minimum Dari Teorema 16, untuk mengonstruksi kode linear C-[ k r, k, d] m c d. +, sama artinya dengan mengonstruksi matriks B yang berukuran k r yang semua baris dari B berbeda dan jumlah setiap i vektor baris dari B berbobot paling sedikit ( d i), untuk i 1, 2,3,..., s =, dengan s= min{ d 1, k}, dan ( d ) 1 r. Misalkan diberikan matriks B untuk kode C dengan parameter [ nkd,, ], G= I B adalah matriks generator untuk C. Akan dicari vektor k r dengan [ ] x F yang bisa ditambahkan ke matriks B sehingga diperoleh kode r 2 [ n 1, k 1, d] + +. Untuk memilih vektor x, pertama-tama dipilih salah satu baris dari matriks B. Misalkan pula banyaknya unsur satu dari baris tersebut sama dengan v, dan banyaknya unsur nol sama dengan r v. Dari Teorema 16, salah satu syarat suatu vektor dapat ditambahkan adalah memiliki bobot paling sedikit sebesar d 1, sehingga dipilih vektor memiliki ( v i) yang memiliki ( j i) x= x x dengan x 1 merupakan vektor biner yang 1 v 21 ( r v) unsur satu dengan i = 0,1, 2,..., v dan x 2 merupakan vektor biner unsur satu dengan j = d 2, d 1,... r yang memenuhi ketaksamaan v+ j 2i d 1 (karena bobot dari x sama dengan banyaknya unsur satu dalam x, yaitu sama dengan ( v i) ( j i) +, atau v j 2i). Pemilihan vektor dengan cara di atas dilakukan untuk mengefisiensikan r komputasi yang dilakukan, sehingga tidak semua vektor anggota F 2 diuji berdasarkan Teorema 16. Setelah diperoleh vektor x, langkah selanjutnya adalah menguji apakah vektor x dapat ditambahkan ke matriks B dengan menguji bobot vektor wt x b d i sedemikian sehingga ( ) 1 + i, dengan i x + b b adalah anggota dari semua i

33 kombinasi i vektor baris di B untuk i 1, 2,..., s =, dan s min{ d 1, k} =. Apabila x lulus uji, maka diperoleh satu vektor yang dapat ditambahkan ke matriks B. Jika semua langkah untuk memperoleh satu vektor diulangi sampai tidak r ada vektor anggota F 2 yang bisa ditambahkan ke matriks B, maka akan diperoleh himpunan satu vektor yang dapat ditambahkan ke matriks B. Misalkan L 1 adalah himpunan satu vektor yang dapat ditambahkan ke matriks B. Dari L 1, dapat dicari pasangan dua vektor yang dapat ditambahkan ke matriks B sehingga diperoleh kode linear dengan parameter [ n 2, k 2, d] + +. Caranya adalah dengan menjumlahkan setiap kemungkinan dua vektor yang berbeda yang ada di L 1. Misalkan hasil penjumlahannya adalah vektor y. Apabila bobot y lebih besar dari ( d 2), proses dilanjutkan dengan menguji bobot vektor ( y+ b i ) sedemikian sehingga ( i ) 2 wt y + b d i, dengan b i adalah anggota dari semua kombinasi i vektor baris di B untuk i = 1, 2,..., s, dan { } s= min d 1, k. Apabila vektor y tersebut lulus uji, maka diperoleh dua vektor yang dapat ditambahkan ke matriks B. Jika semua langkah untuk memperoleh dua vektor diulangi sampai tidak ada pasangan dua vektor anggota L 1 yang bisa ditambahkan ke matriks B, maka akan diperoleh himpunan dari kumpulan dua vektor yang dapat ditambahkan ke matriks B. Secara serupa, untuk memperoleh pasangan m + 1 vektor yang bisa ditambahkan ke matriks B, dapat dicari dari himpunan dari kumpulan m vektor yang bisa ditambahkan ke matriks B. Misalkan L m adalah himpunan dari r kumpulan m vektor anggota F 2 yang dapat ditambahkan ke matriks B. Dari L m, dapat dicari ( m + 1) vektor yang bisa ditambahkan ke matriks B dengan cara mencari dua anggota L m yang jika digabung memiliki m + 1 vektor yang berbeda. Misalkan dua kumpulan m vektor tersebut adalah y 1 dan y 2. Selanjutnya dilakukan pengujian sebagai berikut.

34 1. Menguji apakah kedua vektor anggota ( y y ) ( y y ) ditambahkan ke matriks B. dapat 1 2 1 2 2. Menguji apakah kedua vektor anggota ( y y ) ( y y ) yang jika 1 2 1 2 ditambahkan dengan setiap i vektor dalam ( y y ) bisa ditambahkan ke matriks B., i = 1, 2,... m 1 1 2 Untuk menguji j vektor bisa ditambahkan ke matriks B, caranya adalah dengan menjumlahkan j vektor tersebut, misalkan hasil penjumlahannya adalah vektor y. Apabila bobot y lebih besar dari ( d j) menguji bobot vektor ( y+ b i ) sedemikian sehingga ( i ) i, proses dilanjutkan dengan wt y + b d j i, dengan b adalah anggota dari semua kombinasi i vektor baris di B untuk i = 1, 2,..., s, dan s min{ d 1, k} =. Apabila vektor y tersebut lulus uji, maka diperoleh m + 1 vektor yang dapat ditambahkan ke matriks B. Misalkan r L m adalah himpunan dari kumpulan m vektor anggota F 2 yang dapat ditambahkan ke matriks B. Untuk mencari pasangan ( m + 1) vektor yang bisa ditambahkan ke matriks B, dapat diilustrasikan pula dengan menggunakan r teori graf, yaitu dengan memisalkan vektor xi F2 sebagai suatu verteks. Jika ada j verteks yang membentuk graf lengkap, maka j vektor yang berkaitan dengan verteks tersebut dapat ditambahkan ke matriks B. Dengan demikian, untuk memperoleh pasangan ( m + 1) vektor yang bisa ditambahkan ke matriks B, dipilih graf lengkap (complete graph) yang terdiri atas ( m + 1) verteks. Dari penjabaran di atas, proses ekstensi kode [ nkd,, ] tersebut dilakukan tahap demi tahap. Hal tersebut dilakukan sampai diperoleh suatu kode C dengan parameter [ ', ', '] n k d yang sudah tidak bisa diperluas lagi. Jika telah dibuktikan bahwa kode dengan parameter [ n' 1, k' 1, d] + + tidak ada, maka C merupakan kode optimal kuat yang telah berhasil dikonstruksi. Akan tetapi, ketika diperoleh informasi bahwa ada kode dengan parameter[ n' + 1, k' + 1, d], berarti kode optimal kuat tersebut telah gagal dikonstrusi. Dalam hal ini, harus dilakukan rekonstruksi

35 ulang dengan strategi memilih kode dasar yang lain yang berpeluang besar dapat diperluas menjadi kode optimal kuat C. 3.3.2 Struktur data himpunan Untuk membangun metode konstruksi yang efisien, perlu didefiiniskan n struktur data yang baru, yang merepresentasikan ruang vektor F 2, yaitu himpunan kuasa atas A { 0,1, 2,..., n 1} =. Untuk itu, perlu didefinisikan korespondensi satusatu antara suatu vektor di Misalkan diberikan x F2 dengan x { 0,1} i dengan aturan/cara sebagai berikut. n F q dengan suatu himpunan bilangan bulat tak negatif. n sembarang, katakanlah x ( x0, x1, x2,..., xn 1) =,, maka x akan direpresentasikan dalam bentuk himpunan - Definisikan A = { Z, n}, dengan { } Z =, - Jika x i = 1, maka Z = Z i, i = 0,1, 2,..., n 1. Maka, x akan sama dengan A (dalam representasi himpunan). Sebagai contoh: - x = ( 0,0,0,0 ) A= {{ }, 4}. - x ( 1, 0,1,1, 0) A {{ 0, 2, 3 }, 5} = =. Selanjutnya, operasi penjumlah dalam representasi himpunan didefinisikan sebagai operasi xor/selisih simetri, yang akan dilambangkan dengan. Sebagai contoh, misalkan A 1 = {{ 1, 3, 5 }, 6}, dan A 2 = {{ 0,3, 4 },6}, maka A1+ A2 = {{ 0,1, 4,5 }, 6 }, atau dalam representasi vektor biner, ( 0,1,0,1,0,1) + ( 1,0,0,1,1,0) = ( 1,1,0,0,1). Akan ditunjukkan bahwa dengan struktur data yang baru tersebut, ruang vektor biner dengan operasi penjumlahan yang direpresentasikan dengan himpunan bilangan bulat dengan operasi xor juga merupakan grup. Dengan kata lain, perlu ditunjukkan - bersifat asosiatif, - ada unsur identitas (I), n n - setiap anggotanya punya inverse, ( A F2 )( A' F2 ) A A' = I. sehingga

36 Akan dibuktikan bersifat asosiatif. Misalkan diberikan 3 vektor biner (dalam representasi himpunan) dengan panjang n sembarang, yaitu A 1, A 2, A 3, A = a, a,..., a, n, a {0,1, 2,... n 1} dan k n 1. Akan dengan j {{ 0 1 k} } i ditunjukkan ( A A ) A = A ( A A ) 1 2 3. Ambil sembarang unsur pada A 1, 1 2 3 misalkan yang diambil adalah digit ke- l. Selanjutnya, ambil unsur pada A 2 dan A 3 di urutan digit yang sama. Misalkan unsurnya adalah x, y, dan z. Dengan menggunakan tabel kebenaran, dapat dilihat bahwa untuk sembarang unsur di A 1, A 2, dan A 3 (pada koordinat yang sama), bersifat asosiatif. Tabel 1. Tabel kebenaran untuk sifat asosiatif pada operasi xor (5) (7) (1) (2) (3) (4) (5) (6) (7) (8) x y z ( x y) ( x y) z ( y z) x ( y z) 1 1 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 0 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 Untuk menunjukkan adanya unsur identitas dan adanya invers, misalkan diberikan vektor biner (dalam representasi himpunan) dengan panjang n sembarang, yaitu A {{ a0, a1,..., ak}, n} I {{ }, n} contoh, {{ 0, 2,3 }, 4 } {{ },4} {{ 0, 2,3 }, 4} =, dengan a {0,1, 2,... n 1} dan k n 1. = merupakan untuk identitas, karena I A= A I = A. Sebagai A' sehingga i =. Selanjutnya akan ditunjukkan ada A A' = I, karena A A= I, maka pilih A' n setiap unsur di F 2 memiliki invers, yaitu dirinya sendiri. = A. Oleh karena itu, Selanjutnya suatu matriks biner juga akan direpresentasikan sebagai list/daftar dari sejumlah himpunan bilangan bulat tak negatif. Misalkan diberikan matriks biner sembarang. karena suatu matriks dapat dianggap sebagai kumpulan vektor-vektor kolom atau sebagai kumpulan dari vektor-vektor baris, maka ada dua cara untuk mendefinisikan matriks dalam representasi himpunan, yaitu

37 sebagai representasi matriks baris jika matriks tersebut dianggap sebagai kumpulan vektor-vektor baris atau sebagai representasi matriks kolom jika matriks tersebut dianggap sebagai kumpulan vektor-vektor kolom. Apabila suatu matriks dianggap sebagai representasi matriks kolom, maka informasi tentang banyaknya baris diletakkan sebelum list vektor-vektor, sebaliknya jika suatu matriks dianggap sebagai representasi matriks baris, maka informasi tentang banyaknya kolom diletakkan setelah list dari vektor-vektor. Sebagai contoh, 1 0 0 1 misalkan diberikan matriks M = 0 1 1 1. M dapat dianggap sebagai 1 1 1 0 representasi matriks baris, yaitu 1 {{ 0,3 },{ 1, 2,3}{ 0,1, 2 },3} L = atau sebagai representasi matriks kolom, yaitu 2 { 4, { 0,2 },{ 1,2 },{ 1,2 },{ 0,1} } L =. Dengan didefinisikannya struktur data yang baru tersebut, maka perlu disusun suatu program untuk melakukan perhitungan aritmatik aljabar matriks. 3.3.3 Algoritme Kostruksi Pada bab-bab ini, akan dideskripsikan algoritme-algoritme yang diperlukan untuk mengontruksi suatu kode linear biner. 3.3.3.1 Algoritme tentang fungsi aritmetik aljabar matriks Karena struktur data yang digunakan adalah struktur data khusus, maka perlu didefinisikan terlebih dahulu program-program tentang aritmatik aljabar matriks dalam representasi himpunan, sebagai berikut.

38 1. Menghitung penjumlahan dua vektor. Misalkan diberikan vektor x dan y, jumlah antara vektor x dan y dapat dihitung dengan mencari selisih simetrik antara kedua himpunan tersebut. 2. Mengubah tampilan dari matriks kolom ke bentuk matriks baris (atau sebaliknya). Misalkan diberikan matriks B berukuran m n (dalam representasi kolom). Untuk mengubah tampilan menjadi matriks baris, dapat dilakukan dengan cara sebagai berikut. 1. Untuk setiap himpunan vektor-vektor kolom yang ada di dalam list, periksa apakah ada bilangan i, i = 0, 1, 2,, m-1. 2. Jika ada, simpan indeks (urutan himpunan dalam list), yang dimulai dari nol, ke dalam himpunan baru, katakanlah himpunan s i. 3. Akan diperoleh diperoleh m himpunan vektor baris. Untuk mengubah tampilan dari matriks baris ke matriks kolom, dapat dilakukan dengan cara yang serupa. 3. Menentukan transpose dari suatu matriks. Misalkan diberikan matriks B dalam representasi kolom. Untuk menentukan transpose dari matriks B, tampilan matriks B diubah menjadi representasi matriks baris. Selanjutnya, informasi tentang banyaknya kolom dipindahkan ke bagian depan list (banyaknya kolom menjadi banyaknya baris).

39 4. Menukar baris ke-i dan ke- j. Misalkan diberikan matriks B dengan ukuran m n dalam representasi kolom. Misalkan yang akan ditukar adalah baris ke-i dan ke-j, dengan indeksnya dimulai dari 0 sampai dengan m-1. Untuk menukar, dilihat semua himpunan yang ada di dalam list, apabila ada himpunan yang mengandung unsur i dan j atau tidak mengandung kedua unsur tersebut, maka himpunan tersebut dibiarkan (tidak berubah). Namun apabila himpunan tersebut mengandung unsur i saja, maka unsur tersebut diganti dengan unsur j. Begitu pula sebaliknya. 5. Menambahkan baris ke- j dengan baris ke-i di baris ke-j. Misalkan diberikan matriks B dengan ukuran m n dalam representasi kolom. Misalkan misalkan baris ke-i akan ditambahkan ke dalam baris i. dengan indeksnya dimulai dari 0 sampai dengan m-1. Untuk semua himpunan dalam list, apabila di dalam himpunan tersebut terkandung unsur i dan j, maka unsur j dihapus. Apabila hanya ada unsur j, atau tidak mengandung kedua unsur tersebut, maka himpunan tersebut dibiarkan (tidak berubah). Namun, apabila hanya mengandung unsur i, maka unsur j ditambahkan pada himpunan tersebut. 6. Menentukan bentuk kanonik dari suatu matriks. Misalkan diberikan matriks A dengan ukuran m n. Akan dicari bentuk kanonik dari matriks A. Dilakukan OBD (menukar baris, menambahkan suatu baris dengan baris yang lain, dan mengalikan suatu baris dengan skalar) pada matriks A sehingga anak matriks persegi m m di bagian kiri matriks merupakan matriks identitas.

40 7. Menjumlahkan dua matriks. Misalkan diberikan matriks A dan matriks B (dalam representasi yang sama, misalkan representasi baris). Untuk menjumlahkan dua matriks, dij Jumlahkan vektor-vektor dari A dan vektor-vektor dari B (dalam posisi yang sama). 8. Menentukan hasil kali skalar (dot product) dari dua vektor. Misalkan diberikan vektor x dan y. dot product dari x dan y dapat dihitung dengan menghitung banyaknya unsur dari irisan antara himpunan x dan y, yang selanjutnya dimodulokan dengan bilangan 2. 9. Mengalikan matriks A berukuran m n dengan matriks B berukuran n p (A dan B dalam representasi kolom). Misalkan diberikan matriks A dan B. Langkah-langkah untuk mengalikan kedua matriks tersebut adalah: 1. Mengubah format matriks A ke dalam representasi matriks baris. 2. Untuk setiap vektor yang ada pada matriks A, dilakukan hasil kali skalar dengan vektor-vektor matriks B. Selanjutnya, disimpan indeksnya pada himpunan baru, misalkan s. 3. Setelah diperoleh sebanyak p himpunan s, dikumpulkan jadi satu ke dalam suatu list. 10. Menambahkan satu baris vektor v ke matriks B di posisi/baris terakhir. (B dalam representasi baris). Misalkan diberikan matriks B dan vektor v. untuk menambahkan v ke dalam baris terakhir matriks B, ditambahkan himpunan vektor v pada list dari vektor-vektor baris B di posisi terakhir.

41 11. Menghapus baris ke-i pada matriks B. (B dalam representasi kolom). Misalkan diberikan matriks B. Untuk menghapus baris ke-i, dihapus angka i- 1 pada list dari vektor-vektor kolom B. 3.3.3.2 Algoritme tentang pelacakan kode linear biner Setelah dibangun program-program dasar untuk proses aritmatik aljabarnya, selanjutnya akan dikonstruksi program pelacakan kode linear biner. Berikut diberikan deskripsi singkat tentang program-program tersebut. 1. Mengubah matriks generator yang sudah dalam bentuk standar menjadi matriks cek paritas (dalam representasi matriks kolom). Diberikan kode linear dengan matriks generator. Maka, matriks cek paritas untuk kode linear adalah. 2. Mengkoding suatu pesan p menjadi vektor kata kode c menggunakan matriks generator G, G dalam bentuk umum. Diberikan matriks generator dan vektor pesan. Kata kode untuk vektor pesan dapat diperoleh dengan cara mengalikan vektor dengan matriks. 3. Mengkoding suatu vektor pesan p menjadi kata kode c menggunakan matriks B, di mana G [ I B] = merupakan matriks generator. k Diberikan matriks dan vektor pesan. Kata kode untuk vektor pesan dapat diperoleh dengan cara menghitung vektor, kemudian disusun vektor.

42 4. Menentukan jarak Hamming dari dua vektor. Misalkan diberikan dua vektor x dan y. Untuk menentukan jarak Hamming antara vektor x dan y, ditambahkan x dan y (dengan operasi ). Misalkan hasilnya adalah vektor z. Selanjutnya, jarak antara vektor x dan y adalah banyaknya unsur dari vektor z. dengn kata lain, banyaknya unsur 1 di vektor z. 5. Menentukan bobot tak-nol dari suatu kode berdasakan matriks generatornya. Untuk menentukan bobot tak nol dari suatu kode berdasarkan matriks generatornya, perlu dicari semua kata kode yang ada dalam kode tersebut dengan cara menghitung, dengan adalah dimensi dari kode tersebut. Selanjutnya dihitung bobot Hamming (atau jarak Hamming) dari setiap dua vektor yang berbeda. 6. Menentukan list dari semua kombinasi j vektor dari matriks B (representasi baris), dengan j 1, 2,3,..., t =, dan t min { k, d 1} =. List dari semua kombinasi j vektor dari matriks B dapat diperoleh dengan cara: 1. Menyimpan list 1 vektor (list awal dari matriks B) 2. Untuk memperoleh list dari semua kombinasi 2 vektor, dijumlahkan setiap dua vektor yang berbeda dalam list 1 vektor. Hasilnya digabungkan dengan hasil poin 1. 3. Dengan cara yang serupa, untuk memperoleh list dari semua kombinasi j vektor, di jumlahkan setiap j vektor yang berbeda dalam list 1 vektor. Selanjutnya, gabungkan hasilnya dalam list yang sebelumnya.

43 k 7. Melacak/mencari satu vektor baris dalam F yang bisa ditambahkan ke x 2 matriks B berdasarkan teorema Gilbert-Vashamov. Misalkan diberikan vektor, selanjutnya diuji bobot vektor sedemikian sehingga, dengan adalah anggota dari semua kombinasi vektor baris di untuk, dan. Apabila lulus uji, maka diperoleh satu vektor yang dapat ditambahkan ke matriks. k 8. Menghimpun semua vektor-vektor baris anggota F yang bisa ditambahkan ke matriks B. Misalkan diberikan matriks B yang merepresentasian kode linear biner 2 dengan parameter. Untuk menghimpun semua vektor-vektor baris yang bisa ditambahkan ke matriks B, perlu di cek semua vektor di dalam, apakah bisa ditambahkan atau tidak. Namun, untuk menghemat waktu komputasi, cukup dipilih vektor, dengan merupakan vektor biner yang memiliki unsur satu dengan dan merupakan vektor biner yang memiliki yang memenuhi ketaksamaan unsur satu dengan, dengan v adalah banyaknya unsur satu dari baris pertama pada matriks B.

44 9. Menguji apakah dua vektor x dan y bisa ditambahkan ke matriks B berdasarkan teorema Gilbert-Varshamov. Misalkan adalah himpunan satu vektor yang dapat ditambahkan ke matriks. Dari, dapat dicari pasangan dua vektor yang dapat ditambahkan ke matriks. Caranya adalah dengan menjumlahkan setiap kemungkinan dua vektor yang berbeda yang ada di. Misalkan hasil penjumlahannya adalah vektor. Apabila bobot lebih besar dari, proses dilanjutkan dengan menguji bobot vektor sedemikian sehingga, dengan adalah anggota dari semua kombinasi vektor baris di untuk, dan. Apabila vektor tersebut lulus uji, maka diperoleh dua vektor yang dapat ditambahkan ke matriks. 10. Menghimpun semua pasangan vektor-vektor x dan y yang bisa ditambahkan ke B. Misalkan matriks adalah himpunan satu vektor yang dapat ditambahkan ke. Untuk mencari semua pasangan 2 vektor yang bisa ditambahkan ke matriks B, perlu dicek semua 2 vektor yang berbeda.

45 11. Menguji apakah m+1 vektor bisa ditambahkan ke matriks B Misalkan adalah himpunan dari kumpulan vektor anggota yang dapat ditambahkan ke matriks. Dari, dapat dicari vektor yang bisa ditambahkan ke matriks dengan cara mencari dua anggota yang jika digabung memiliki vektor yang berbeda. Misalkan dua kumpulan vektor tersebut adalah dan. Selanjutnya dilakukan pengujian sebagai berikut. 1. Menguji apakah kedua vektor anggota dapat ditambahkan ke matriks. 2. Menguji apakah kedua vektor anggota yang jika ditambahkan dengan setiap vektor dalam, bisa ditambahkan ke matriks. Untuk menguji j vektor bisa ditambahkan ke matriks B, caranya adalah dengan menjumlahkan j vektor tersebut, misalkan hasil penjumlahannya adalah vektor. Apabila bobot lebih besar dari, proses dilanjutkan dengan menguji bobot vektor sedemikian sehingga, dengan adalah anggota dari semua kombinasi vektor baris di untuk, dan. Apabila vektor tersebut lulus uji, maka diperoleh vektor yang dapat ditambahkan ke matriks.

46 12. Menghimpun semua m+1 vektor yang bisa ditambahkan ke matriks B berdasarkan teorema Gilbert-Varshamov. Analog dengan algoritme untuk menghimpun semua pasangan 2 vektor, Untuk menghimpun semua m+1 vektor, perlu di cek semua himpunan dari kumpulan vektor anggota yang dapat ditambahkan ke matriks. 13. Mereduksi himpunan pasangan vektor-vektor baris dengan cara membuang pasangan vektor yang saling ekivalen. Misalkan dari hasil eksplorasi diperoleh matriks. Selanjutnya, setiap dua pasang matriks tersebut di cek, apakah saling ekivalen atau tidak, apabila kedua matriks tersebut saling ekivalen, maka salah satunya dapat dihapus, sehingga nantinya hanya diperoleh matriks-matriks yang tidak saling ekivalen. Implementasi dari algoritme-algoritme di atas dapat dilihat pada Lampiran 2. Algoritme tersebut ditulis dalam bahasa pemograman MAPLE. 3.3.4 Eksplorasi kode linear untuk jarak minimum 9 Pada subbab ini, akan diceritakan proses diperolehnya (konstruksi) kode optimal kuat dengan jarak minimum 9. Konstruksi kode linear tersebut dilakukan dengan menggunakan software MAPLE. Dari Tabel Brouwer, dapat dilihat bahwa untuk d = 9, kode [ 14,2,9 ], [ 17,3,9], [ 20,5,9 ], [ 23,7,9 ], dan [ 27,10,9 ] merupakan kode optimal kuat. Konstruksi dimulai dari kode [ 14,2,9 ], yaitu dengan mendefinisikan matriks B yang berukuran 2 12sebagai berikut 1 1 1 1 1 1 1 1 0 0 0 0 B = 1 1 1 1 0 0 0 0 1 1 1 1 Matriks tersebut dipakai sebagai matriks dasar untuk diperluas menjadi matriks B 1 yang berukuran 3 14 (yang mendefinisikan kode [ 17,3,9 ] ) dengan cara menambahkan dua vektor kolom nol pada B, dilanjutkan dengan menambah satu vektor baris berukuran 13 bit yang memenuhi syarat strategi berdasarkan

47 algoritme konstruksi. Dari hasil komputasi yang dilakukan, diperoleh 8 kode linear dengan parameter [ 17,3,9 ] yang tidak saling ekivalen, salah satunya: 1 1 1 1 1 1 1 1 0 0 0 0 0 0 B 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 = 1 1 1 0 1 1 1 0 1 1 1 0 1 1 Selanjutnya, B akan diperluas ke matriks yang berukuran 5 15 (yang mendefinisikan kode ) dengan cara: 1. Menambahkan satu vektor kolom nol pada, 2. Mencari dua vektor baris berukuran 15 bit yang dapat ditambahkan ke berdasarkan algoritme konstruksi. Dari hasil eksplorasi, diperoleh 128 matriks yang tidak saling ekivalen yang merepresentasikan kode liner dengan parameter. Salah satunya adalah: 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 B2 = 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0. 1 1 0 0 1 1 0 0 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 1 1 1 Dengan cara yang serupa, yaitu dengan menambahkan satu vektor nol pada kolom terakhir dari dan mencari dua vektor baris yang bisa ditambahkan ke, diperoleh 5040 kode linear dengan parameter 23,7,9 yang tidak saling ekivalen. Salah satunya adalah B 3 B 1 1 [ 20,5,9] B 2 [ 20,5,9] B [ ] 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 0 = 1 1 0 0 1 1 0 0 1 0 0 1 1 0 1 0. 1 0 1 0 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 0 1 0 0 0 1 0 1 1 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 Dari matriks B 3, akan dikonstruksi kode linear dengan parameter [ 27,10,9 ]. Setelah ditambahkan satu vektor nol pada kolom terakhir dari matriks B 3 dan B 1

48 dicari tiga vektor baris yang bisa ditambahkan, diperoleh delapan matriks yang berukuran 10 17 yang tidak saling ekivalen. Salah satunya adalah B 4 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 =. 1 0 0 1 0 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 Setelah ditambahkan vektor nol pada kolom terakhir dari matriks, akan dicari vektor-vektor baris yang dapat ditambahkan. Harapannya, ingin diperoleh [ ] matriks 14 18 yang merepresentasikan kode baru yang berparameter 32,14, 9, B 4 Namun hasil komputasi menunjukkan bahwa matriks B 4 yang telah ditambahkan vektor kolom hanya dapat diperluas menjadi matriks yang berukuran [ ] merepresentasikan kode dengan parameter 30,12,9. 12 17 yang 3.3.5 Eksplorasi kode linear untuk jarak minimum 11 Identik dengan eksplorasi untuk kode dengan jarak minimum 9, konstruksi kode optimal kuat untuk d =11 dilakukan dengan menggunakan software MAPLE dan dimulai dari kode optimal dengan dimensi dua, yang direpresentasikan dengan matriks 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 B =. 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 Karena kode optimal kuat berikutnya berparameter 20,3,11, matriks B perlu ditambahkan dua vektor nol sebelum dicari satu vektor yang dapat ditambahkan sehingga diperoleh dengan parameter. Hasil komputasi menunjukkan ada dua matriks yang tidak saling ekivalen yang merepresentasikan kode dengan parameter [ 20,3,11], salah satunya adalah: [ 20,3,11] [ ]

49 B 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 B1 = 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0. 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 Selanjutnya, dengan menambahkan satu vektor nol pada kolom terakhir dari dan mencari dua vektor baris yang bisa diambahkan, diperoleh 128 macam matriks yang merepresentasikan kode linear dengan parameter. Salah satunya adalah: 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 B2 = 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0. 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 Dengan cara yang serupa untuk memperoleh kode dengan parameter [ 23,5,11 ], yaitu dengan menambahkan satu vektor nol pada kolom terakhir dari matriks B 2 dan mencari dua vektor baris yang bisa ditambahkan, diperoleh 4032 macam matriks yang merepresentasikan kode linear dengan parameter [ 26,7,11 ]. Salah satunya adalah: B 3 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 = 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0. 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 0 1 Selanjutnya, B 3 akan diperluas menjadi matriks yang berukuran yang merepresentasikan kode dengan parameter [ 31,11,11] [ 23,5,11] 11 20 dengan cara menambahkan satu vektor nol pada kolom terakhir dari B 3 dan mencari empat vektor yang dapat ditambahkan. Akan tetapi, dari hasil komputasi yang dilakukan, matriks tersebut hanya dapat diperluas menjadi matriks yang berukuran 8 20, sehingga hanya diperoleh kode dengan parameter [ 28,8,11]. Gagalnya konstruksi

50 kode [ 31,11,11 ] disebabkan oleh pemilihan kode awal yang kurang baik, dalam kasus ini kode awal tersebut adalah kode [ 26, 7,11] yang direpresentasikan oleh matriks B 3. Salah satu cara untuk mengatasi hal tersebut adalah dengan cara menghapus baris ke-3 dan ke-4 dari matriks B 3.Dilanjutkan dengan rekonstruksi ulang, yaitu dengan menambahkan vektor nol pada kolom terakhirnya. Kemudian dicari 6 vektor yang dapat ditambahkan, sehingga diperoleh empat matriks berukuran 11 20 yang tidak saling ekivalen yang merepresentasikan kode dengan parameter [ 31,11,11]. Salah satunya adalah 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 0 1 0 B 4 = 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1. 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 1 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 Pemilihan baris dan banyaknya baris yang dihapus berkaitan dengan peluang perluasan matriks dasar tersebut, namun tidak ada aturan yang pasti mengenai penghapusan tersebut agar diperoleh kode dengan dimensi terbesar. Yang pasti hanyalah peluang untuk memperluas kode dengan menghapus dua baris lebih besar jika dibandingkan dengan menghapus satu baris, tapi waktu komputasinya menjadi jauh lebih lambat. Dengan cara yang serupa, kode linear dengan parameter [ 33,12,11] diperoleh dengan menghapus beberapa baris dari matriks B 4, dan dilakukan rekonstruksi ulang. Hasil komputasi menunjukkan ada 2 matriks yang tidak saling ekivalen, salah satunya

51 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 0 B 5 =. 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 Agar dapat memperoleh kode baru yang belum diperoleh orang lain, yaitu kode dengan parameter [ ] 37,15,11, matriks harus dapat diperluas menjadi matriks berukuran 15 22. Namun, matriks tersebut gagal dikonstruksi, dari hasil komputasi yang dilakukan, hanya diperoleh kode dengan parameter yang direpresentasikan oleh matriks yang berukuran 14 22 sebagai berikut. 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 1 1 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 B 6 =. 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 0 0 1 1 0 1 1 1 0 0 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 1 B 5 [ 36,14,11]

52 3.3.6 Fakta tentang komputasi untuk dua representasi data yang berbeda Dalam melakukan konstruksi kode linear biner, dapat dilakukan dengan dua representasi data yang berbeda, yaitu dengan representasi himpunan dan dengan representasi matriks/vektor. Proses pengerjaan dengan representasi himpunan delakukan dengan menggunakan software MAPLE, sedangkan untuk representasi matriks dilakukan dengan software MATLAB Dari kedua representasi tersebut, dibandingkan waktu komputasinya dengan PC berprosessor Intel Core i3, 2.93 GHz, 6 GB RAM. Dalam melakukkan perbandingan ini, diambil contoh untuk d =11. Berikut hasil perbandingan komputasi yang dilakukan. Kode Basis [ ] Tabel 2. Perbandingan komputasi antara dua representasi data Kode yang dihasilkan Waktu eksekusi (detik) Himpunan Matriks 17,2,11 20,3,11 0.787 36.917 [ ] [ ] [ ] 20,3,11 23,5,11 219.590 1985.293 [ 23,5,11 ] [ 26,7,11 ] 25.156 938.301 3.4 Hasil yang Diperoleh Dari eksplorasi dengan menggunakan software MAPLE, telah berhasil dikonstruksi kode optimal sebagai berikut. Tabel 3. Hasil konstruksi untuk kode untuk d = 9 dan d = 11 Panjang dan Dimensi dari nk, Suatu Kode - [ ] d = 9 [ 14,2] [ 17,3] [ 20,5] [ 23,7] [ 27,10] - Jarak Minimal d =11 [ 17,2 ] [ 20,3 ] [ 23,5 ] [ 26,7 ] [ 31,11 ] [ 33,12]

53 Dari Tabel Brouwer, dapat diketahui bagaimana cara mengontruksi suatu kode pada saat pertama kali ditemukan. Pada umumnya, kode-kode tersebeut diperoleh dengan cara menggabungkan 2 kode yang memiliki dimensi yang sama. Sebagai contohnya, kode [ 14,2,9 ] diperoleh dengan cara menggabungkan kode [ 2, 2,1 ] dan kode [ 12,2,8 ]. Begitu pula kode [ 17,3, 9], kode tersebut diperoleh dengan cara menggabungkan kode [ 3,3,1 ] dan kode [ 13,3,8 ]. Selain penggabungan, suatu kode juga dapat diperoleh dengan cara memotong kode yang lebih besar, seperti untuk memperoleh kode [ 26,7,11 ], yang diperoleh dengan cara: [ ] 1. mengontruksi kode 50,8, 23 dengan memotong (puncturing) matriks generator dari kode [ 51,8,24 ] di kolom ke 51. 2. mengontruksi kode 27,7,12 dengan memotong (puncturing) matriks generator dari kode [ 51,8,24 ] di kolom ke 1, 9, 13, 14, 16, 19, 21, 22, 25, 26, 28, 29, 30, 31, 34, 35, 36, 38, 39, 42, 45, 46, 50. 3. mengontruksi kode 26,7,11 dengan memotong (puncturing) matriks generator dari kode [ 27,7,12 ] di kolom ke 27. Kelebihan dari metode konstruksi tersebut adalah lebih mudah dan lebih cepat, terutama untuk kode dengan dimensi besar. Namun, jika dibandingkan dengan metode konstruksi yang dilakukan pada penelitian ini, metode tersebut memiliki kelemahan, yaitu tidak dapat mengoleksi kode-kode yang memiliki parameter yang sama sebanyak-banyaknya. Sebagai contoh, diperoleh 4048 kode dengan parameter [ 27,7,11] [ ] [ ] yang tidak saling ekivalen. Dari dari penelitian yang dilakukan, waktu komputasi dengan menggunakan struktur data himpunan jauh lebih cepat bila dibandingkan dengan menggunakan struktur data ruang vektor. Dua hal yang berpengaruh terhadap kecepatan tersebut adalah: 1. Program yang digunakan dalam struktur data himpunan lebih ramping, artinya, program tersebut didesain hanya untuk masalah ini.

54 2. Banyaknya memori yang digunakan akan berkurang jika menggunakan struktur data himpunan, karena sebagian besar dari himpunan dalam list memiliki panjang yang kurang dari panjang vektor ketika merepresentasikan suatu matriks biner. Dari hasil penelitian yang dilakukan, ternyata sangat sulit untuk memperbaiki batas bawah dari Tabel Brouwer. Salah satu faktor yang paling berpengaruh dalam ketidak berhasilan tersebut adalah faktor hardware, yaitu keterbatasan komputer yang digunakan.