Metode Information Dispersal Algorithm
2.4. Metode Information Dispersal Algorithm
(IDA)
Information Dispersal Algorithm (IDA) adalah sebuah algoritma yang baik untuk menyimpan dan transmisi sebuah file (Li, 2013). Gambar 2.1 menunjukkan skema dari algoritma ini. Pada dasarnya, Information Dispersal Algorithm (IDA) menyebar informasi dalam sebuah file F ke dalam potongan atau lokasi n. File akan direkonstruksi dari beberapa potongan m. Masing-masing potongan ukurannya adalah |F| � dimana |F| adalah ukuran
(jumlah karakter) dari F.
ISBN: 979-458-766-4 KeTIK 2014 Konferensi Nasional Pengembangan Teknologi Informasi dan Komunikasi
Total jumlah karakter adalah n . |F|. Jumlah n
harus dipilih sehingga m ~ 1 dalam urutan untuk
A= a 3
memperoleh kedua ruang dan efisiensi komputasi (3) selama penyebaran dan rekonstruksi.
... m a
Mengandaikan i – th baris dari A -1 adalah (α i1 ,..., α im ), maka untuk 1 ≤ k ≤ N/m,
(4) dimana 1 ≤ k ≤ N/m dan i = j mod m Sehingga, diperoleh
j =α b i1 C 1k +...+α im C mk
F=(b 1 ,...,b m ),(b m+1 ,...,b 2m ),...,(b ((N/m)-1)m+1 ,...,b N ) (5)
2.4.2. Implementasi Penyebaran dan Gambar 2.1. Penyimpanan dan transmisi file
Rekonstruksi
Misalkan sebuah file F akan disimpan atau menggunakan Information ditransmisikan menggunakan Information Dispersal Dispersal Algorithm (IDA). Algorithm (IDA). IDA akan menandai dengan
Sumber : Li (2013)
mengikuti parameter:
a) Sebuah bidang Z p , untuk memilih nomor utama Sehubungan dengan masalah penyimpanan,
p.
sebuah file F akan dibagi ke dalam n potongan Semua elemen data dari F adalah elemen dari
F 1 ,...,F n dan masing-masing F i akan disimpan dalam bidang Z p dan semua perhitungan algoritma sebuah node yang berbeda (Li, 2013). Untuk
akan selesai dalam bidang ini. perbaikan, pengguna dapat menggunakan potongan m
b) Sebuah integer m.
untuk merekonstruksi F, dengan asumsi bahwa tidak m adalah jumlah elemen data dari F yang akan lebih dari (n – m) node yang rusak. Demikian juga,
di representasi oleh masing-masing pasangan masalah transmisi sebuah file F akan dibagi ke dalam
(α,β). m juga adalah jumlah dari pasangan
potongan n dan masing-masing potongan ditransmisi sangat perlu untuk merekonstruksi data elemen
melalui n jalur yang berbeda π 1 ,...,π n . Sebagai tempat
ini.
tujuan, F dapat di rekonstruksi menggunakan
c) Sebuah integer n.
potongan m mana saja dari F i , dengan asumsi tidak n adalah jumlah dari pasangan (α,β) dihitung lebih dari (n – m) jalur yang dipecah.
untuk masing-masing elemen data. n harus setidaknya sama besar dengan m, karena jika m
> n maka data tidak dapat direkonstruksi, seperti m adalah jumlah dari elemen data.
2.4.1 Pemisahan dan Rekonstruksi File
Ada dua komponen dasar dari teknik ini yaitu
pemecahan dan rekonstruksi (Li, 2013). Misalkan Implementasi dari Information Dispersal sebuah file F adalah sebuah elemen string dalam
Algorithm (IDA) dapat dicapai dengan mengikuti ruang terbatas Z p , untuk memilih angka utama p. Pilih
langkah berikut (Li, 2013). Misal F = f 0 ,f 1 ,...,f m-1 sebuah integer m sehingga n = m + k dengan m ≤1+ menjadi file yang akan kita sebarkan, dimana masing-
� , 1 masing f i ∈Z p . Proses penyebaran adalah dilakukan ≤ i ≤ n, sehingga setiap bagian dari m vektor yang
e , dimana e > 0. Pilih n vektor a i = (a i1 ,...,a im )
melalui mengikuti langkah-langkah berikut: berbeda adalah bebas linear.
1) Dipilih α = α 1 ,α 2 ,..., α n , sehingga α i ∈Z p dan α i = Dalam fase pemisahan, panjang sebuah N file F
α j jika dan hanya jika i = j.
2) Dihitung β = β 1 ,β 2 ,..., β n dengan rumus:
akan tersegmentasi ke dalam urutan panjang m.
Sehingga, β � = � � =0 f � .( � � ) � (6) F=(b 1 ,...b m ),(b m+1 ,...b 2m ),...,(b ((N/m)-1)m+1 ,...,b n ) (1)
Perhitungan dilakukan dalam Z p , maka masing-
Urutan ini akan dinamai masing-masing dengan S 1 ,
masing β ∈Z p .
S 2 ,...,S n/m. Untuk i = 1,...,n.
3) Disebarkan masing- masing (α i ,β i ).
F i =c i1 ,c i2 ,...,c iN/m =a i S 1 ,a i S 2 ,..., a i S n/m
Memberikan n potongan dari file F masing-masing Dalam merekonstruksi dari algoritma dapat dengan panjang N/m.
diimplementasikan dengan mengikuti langkah Dalam fase rekonstruksi, setiap potongan m dari
berikut. Diambil nilai m mana saja yang berbeda dari
F dipilih, misalnya F 1 ,...,F m . Setiap vektor a i dipilih pasangan (α i ,β i ) dari proses penyebaran untuk dan digunakan untuk membangun matriks A mxm.
merekonstruksi F asli. Sebagai catatan yang perlu digarisbawahi dari pasangan alpha atau beta
digunakan sebagai input dalam algoritma rekonstruksi. Diambil α = α 1 ,..., α m menjadi sebuah
KeTIK 2014 ISBN: 979-458-766-4 Konferensi Nasional Pengembangan Teknologi Informasi dan Komunikasi
3) Dihitung F = A daftar dari semua alpha yang dipilih dan ambil β= -1 .b β 1 ,..., β m menjadi sebuah daftar dari semua beta yang dipilih.
1 0 0 3 -1 A = 1 1 5 x 3
a) Bentuk sebuah matriks A
1 � � ... � � Urutan F diperoleh dengan cara:
b) Dihitung � −1 a) 3 diperoleh dengan melakukan lompatan
c) Dihitung F = � −1 b (8)
sebanyak 3 kali pada urutan nilai α = 0,1,2,3,4,5,6 yang dimulai dari angka 0 dan
Untuk lebih jelasnya, berikut akan dibuat dalam akan berhenti pada angka 3.
b) 4 diperoleh dengan melakukan lompatan sebuah contoh. sebanyak 11 kali pada urutan nilai α = Misalkan diambil F = 3,4,5. Untuk memisahkan dan
0,1,2,3,4,5,6 yang dimulai dari angka 0 dan
menggabung file ini, kita menggunakan bidang Z 7 .
apabila lompatan sudah jatuh di angka 6, maka
Maka semua perhitungan dapat dilakukan dalam Z 7 .
lompatan ini akan diulangi lagi dari angka 0. Dan jika proses ini terus dilakukan, maka
Proses penyebaran:
lompatan terakhir akan berhenti pada angka 4.
1) Dipilih α = 0,1,2,3,4,5,6 maka n = 7 dan m = 3.
c) 5 diperoleh dengan melakukan lompatan Dimana nilai m diperoleh dari banyaknya anggota
sebanyak 19 kali pada urutan nilai α = angka-angka F.
0,1,2,3,4,5,6 yang dimulai dari angka 0 dan 2)
i menggunakan rumus: Dihitung β apabila lompatan sudah jatuh di angka 6, maka
lompatan ini akan diulangi lagi dari angka 0. β � f � .( � � ) � � = � =0 =3+4
Dan jika proses ini terus dilakukan, maka Maka diperoleh:
lompatan terakhir akan berhenti pada angka 5. β 2
1 = 3 + 4.0 + 5.0 =3 Sehingga diperoleh urutan F = 3, 4, 5 β 2
= 3 + 4.2 + 5.2 2 2.5. β Metode Algoritma Huffman 3 =3
2 Penjelasan dari langkah-langkah algoritma β 4 = 3 + 4.3 + 5.3 =4
2 Huffman akan diuraikan seperti pada penjelasan β 5 = 3 + 4.4 + 5.4 =1
berikut ini.
2.5.1. Pembuatan Pohon Huffman
3) Sehingga, F disebarkan ke dalam 7 pasangan Pohon Huffman ini dibentuk berdasarkan kode (α i ,β i ):
prefiks (Sutoyo, 2009). Kode biner dibentuk secara (0,3),(1,5),(2,3),(3,4),(4,1),(5,1),(6,4)
prefiks dan kode biner ini tidak mungkin terbentuk sama satu sama lainnya. Karakter-karakter yang akan
direpresentasikan dalam biner, dipisahkan ke dalam Dipilih 3 pasangan secara bebas dari (α cabang pohon biner dan diberi frekuensinya. Cabang
Proses rekonstruksi:
i ,β i ), misalkan:
sebelah kiri diberi bit 0 sebagai identitas, dan bit (0,3),(2,3),(4,1)
kanan diberi angka 1. Dan pada akhirnya bit ini akan
dibaca dari akar hingga simpul dari suatu karakter itu dan b = 3,3,1
Sehingga α 1 = 0, β 1 = 3, α 2 = 2, β 2 = 3, α 3 = 4, β 3 =1
sehingga terbentuk angka biner identitas untuk
1) Bentuk sebuah matriks A 3x3 : meringkas memori sehingga menjadi efisien. Langkah dalam membentuk pohon Huffman ini dapat
diringkas menjadi sebagai berikut (Sutoyo, 2009) : A=
1) Dihitung semua frekuensi kemunculan tiap
karakternya. Hal ini dapat dilakukan hanya dengan menghitung (memproses) semua karakter
2) Dicari A -1 :
dari awal hingga akhir.
2) Kemudian pada pembentukan pohon di sini yaitu
dengan membagi dua pohon menjadi frekuensi
A = 1 1 5 yang lebih kecil, kemudian hubungkan pada
sebuah akar. Akar tersebut kemudian dipisah kembali dan digabung dengan akar yang berada di
atasnya (akar baru).
ISBN: 979-458-766-4 KeTIK 2014 Konferensi Nasional Pengembangan Teknologi Informasi dan Komunikasi
3) Proses berikutnya yaitu proses rekursif dari proses kedua sehingga akar utama pohon memiliki
SQRP (10/10)
frekuensi bernilai 1.
4) Kemudian pada setiap sisi pohon di sebelah kiri
S (4/10)
diberi label “0” dan sisi di sebelah kanan diberi
QRP (6/10)
label “1”. 0 1
Q (3/10) RP (3/10) Proses-proses ini akan lebih jelas apabila dijelaskan dalam bentuk gambar.
Misalkan terdapat karakternya adalah Gambar 2.4. Pembentukan pohon dari empat simpul PPQQQRSSSS. Yang pertama dilakukan dalam menbentuk pohon
2.5.2. Proses Encoding
Huffman yaitu hitung frekuensi dari tiap-tiap Setelah melihat hasil dari pohon, dapat dibuat sebuah karakter.
tabel yang berisi identitas dari tiap-tiap karakter berdasarkan biner (Sutoyo, 2009). Dalam proses
Tabel 2.1. Jenis karakter dan frekuensinya
encoding ini, prosesnya adalah dibaca urutan biner Karakter
tiap karakter hingga sampai edge dari pohon yang P
Frekuensi
berisi karakter yang dicari. Misalkan, apabila akan Q
dicari huruf R, maka dibaca R(1/10) urutan karakter R
dari akar hingga huruf R yaitu 110. Demikian juga S
untuk seluruh karakter-karakter lainnya.
Kemudian lakukan proses kedua dari proses-
2.5.3. Proses Decoding
proses di atas yaitu dibuat simpul dan akar dari Proses decoding ialah kebalikan dari proses encoding. frekuensi yang terkecil. Pembentukan pohon Dalam sistem kerjanya tidak ada perbedaan yang Huffman tersebut dapat dijelaskan seperti pada signifikan dengan sistem kerja encoding. Hanya kalau
gambar berikut ini. Proses pembentukan pohon encoding membaca pohon dari bawah (edge) hingga Huffman tersebut ditunjukkan pada gambar 2.2,
akar, kalau decoding dari akar hingga ketemu edge gambar 2.3 dan gambar 2.4.
atau dalam hal ini karakter (Sutoyo, 2009). Analoginya adalah seperti ini, decoding adalah jalur yang dilewati untuk menemukan sebuah benda. Misalkan diberikan jalur 110, maka diurutkan jalur
RP (3/10) tersebut pada pohon sehingga menemukan isi dalam
1 0 simpul (dalam hal ini karakter).
R (1/10)
P (2/10)
3. Metodologi Penelitian
Dalam bab ini penulis akan menganalisis tentang watermarking citra digital dengan Information Dispersal Algorithm (IDA) dan Algoritma Huffman. Gambar 2.2. Pembentukan pohon dari dua simpul Skema watermarking dalam penelitian ini terdiri dari proses pembangkitan watermark, penyisipan
QRP (6/10) watermark , pendeteksian watermark dan ekstraksi watermark .