• Tidak ada hasil yang ditemukan

BAB IV ANALISA DAN PERANCANGAN

5.2. Pembahasan

Algoritma yang digunakan dalam merancang Concoction Generator ini dapat dibagi menjadi 3 bagian yaitu :

1. Algoritma Proses LFSR 2. Algoritma Proses FCSR.

3. Algoritma Proses Concoction Generator.

5.2.1 Algoritma Proses LFSR

Concoction generator menggunakan dua jenis register yaitu LFSR dan FCSR. Output dari LFSR dan FCSR inilah yang digunakan untuk memproses nilai output. Namun, LFSR dan FCSR ini tidak selalu aktif. Kedua register ini hanya akan aktif apabila nilai clock dari register bernilai ‘1’. Jika register tidak aktif, maka nilai output-nya diambil dari hasil output pada clock sebelumnya. Jika

register LFSR aktif, maka nilai output-nya akan dihasilkan dengan menggunakan prosedur kerja berikut ini :

1. Aktifkan LFSR dengan men-set nilai dari array LFSR(nilai state, nomor LFSR, nilai putaran).Aktif = True.

2. Hitung nilai bit feedback dengan melakukan langkah-langkah berikut : a. Set nilai cFB = 0.

b. Untuk nI = 0 sampai jumlah elemen dari array cArrBitProses lakukan proses berikut :

1) Set nilai cBitNw = ambil sebuah nilai pada posisi (nBitReg – cArrBitProses(nI)) dari array ArrLFSR(nilai stage, nomor LFSR, nilai putaran).Isi.

2) Hitung nilai cFB = cFB XOR cBitNw.

c. Simpan nilai cFB pada array ArrLFSR(nilai stage, nomor LFSR, nilai putaran).Feedback.

3. Hitung nilai bit output dengan men-set nilai array ArrLFSR(nilai stage, nomor LFSR, nilai putaran).Output = ambil sebuah bit paling kanan dari array ArrLFSR(nilai stage, nomor LFSR, nilai putaran).Isi.

4. Tentukan isi LFSR sekarang dengan cara men-set nilai array ArrLFSR(nilai stage, nomor LFSR, nilai putaran).Isi = cFB digabungkan dengan ambil (nBitReg – 1) bit dari kiri pada array ArrLFSR(nilai stage, nomor LFSR, nilai putaran).Isi.

5.2.2 Algoritma Proses FCSR

Sama seperti LFSR, register FCSR ini tidak selalu aktif. Register ini hanya akan aktif apabila nilai clock dari register bernilai ‘1’. Jika register tidak aktif, maka nilai output-nya diambil dari hasil output pada clock sebelumnya. Jika register FCSR aktif, maka nilai output-nya akan dihasilkan dengan menggunakan prosedur kerja berikut ini :

1. Aktifkan FCSR dengan men-set nilai dari array FCSR(nilai state, nomor FCSR, nilai putaran).Aktif = True.

2. Hitung nilai operasi sum (penjumlahan) dengan melakukan langkah-langkah berikut :

a. Set nilai cFB = 0.

b. Untuk nI = 0 sampai jumlah elemen dari array cArrBitProses lakukan proses berikut :

1) Set nilai cBitNw = ambil sebuah nilai pada posisi (nBitReg – cArrBitProses(nI)) dari array ArrLFSR(nilai stage, nomor LFSR, nilai putaran).Isi.

2) Set nilai cFB = nilai cFB + cBitNw.

c. Set nilai cFB = nilai cFB + nilai array ArrFCSR(nilai stage, nomor FCSR, nilai putaran).Carry.

3. Hitung nilai carry dengan cara men-set nilai array ArrFCSR(nilai stage, nomor FCSR, nilai putaran).Carry = cFB div 2.

4. Hitung nilai bit feedback dengan cara men-set nilai array ArrFCSR(nilai stage, nomor FCSR, nilai putaran).Feedback = cFB mod 2.

5. Hitung nilai bit output dengan cara men-set nilai array ArrFCSR(nilai stage, nomor FCSR, nilai putaran).Output = ambil sebuah bit paling kanan dari array ArrFCSR(nilai stage, nomor FCSR, nilai putaran).Isi.

6. Tentukan isi FCSR sekarang dengan cara men-set nilai array ArrFCSR(nilai stage, nomor FCSR, nilai putaran).Isi = cFB mod 2 digabungkan dengan ambil (nBitReg – 1) bit dari kiri pada array ArrFCSR(nilai stage, nomor FCSR, nilai putaran).Isi.

5.2.3 Algoritma Proses Concoction Generator

Proses ini merupakan proses inti dari perangkat lunak bantu pemahaman ini. Proses ini akan menghasilkan bilangan acak dengan jumlah dan panjang bit sesuai dengan yang diinginkan. Prosedur kerja dari algoritma ini adalah sebagai berikut :

1. Inkremen jumlah step dengan cara men-set nilai nStep = nStep + 1.

2. Jika jumlah step lebih besar dari 5 maka : a. Set jumlah step = 1.

b. Inkremen jumlah stage dengan men-set nilai nSt = nSt + 1.

3. Jika jumlah stage lebih besar dari jumlah stage yang diinginkan, maka : a. Inkremen jumlah putaran dengan men-set nilai nPutaran = nPutaran + 1. b. Set jumlah step = 1.

4. Jika putaran = 1, stage = 1 dan step = 1 berarti proses baru akan dimulai (merupakan langkah awal), maka set semua nilai awal yang diperlukan yaitu mencakup nilai clock FLSR, keadaan awal dan posisi bit feedback dari setiap register. Rincian proses yang dilakukan adalah sebagai berikut :

a. Aktifkan clock LFSR dengan men-set nilai ClockLFSR = 1.

b. Aktifkan clock LFSR Awal (stage-1) dengan men-set nilai ClockLFSRA = 1.

c. Untuk nI = 0 sampai nStage – 1, dan untuk nP = 0 sampai nJlhReg – 1, lakukan proses berikut :

1) Set nilai keadaan awal (initial state) untuk semua LFSR dengan men-set nilai ArrLFSR(nI, nP, 0).Isi = nilai dari fungsi InitialState.

2) Set nilai ArrLFSR(nI, nP, 0).Feedback = 0. 3) Set nilai ArrLFSR(nI, nP, 0).Output = 0.

d. Untuk nI = 0 sampai nStage – 1, dan untuk nP = 0 sampai nJlhReg – 1, lakukan proses berikut :

1) Set nilai keadaan awal (initial state) untuk semua FCSR dengan men-set nilai ArrFCSR(nI, nP, 0).Isi = nilai dari fungsi InitialState.

2) Set nilai ArrFCSR(nI, nP, 0).Feedback = 0. 3) Set nilai ArrFCSR(nI, nP, 0).Output = 0.

e. Set nilai nCarry = 0. f. Set nilai nStep = 1. g. Set nilai nSuku = 0.

5. LFSR untuk step-1 dan stage-1 selalu aktif, maka jika nStep = 1 dan nSt = 1 maka set nilai ClockLFSR = ClockLFSRA.

6. Pilihlah step yang akan dijalankan yaitu dengan melihat nilai nStep.

a. Jika nStep = 1 maka lakukan langkah pertama ini. Langkah pertama berupa proses dari LFSR. Jika LFSR aktif, maka jalankan semua LFSR yang berada pada stage tersebut. Jika tidak, maka ambil nilai bit output

dari langkah sebelumnya. Rincian proses yang dilakukan adalah sebagai berikut :

1) Jika ClockLFSR = 1, maka untuk nP = 0 sampai nJlhReg – 1, jalankan semua LFSR dengan menggunakan algoritma proses LFSR diatas. 2) Jika tidak, maka untuk nP = 0 sampai nJlhReg – 1, lakukan proses

berikut:

a) Set nilai ArrLFSR(nSt – 1, nP, nPutaran).Aktif = False.

b) Set nilai ArrLFSR(nSt – 1, nP, nPutaran).Isi = ArrLFSR(nSt – 1, nP, nPutaran – 1).Isi.

c) Set ArrLFSR(nSt – 1, nP, nPutaran).Output = ArrLFSR(nSt – 1, nP, nPutaran – 1).Output.

d) Set ArrLFSR(nSt – 1, nP, nPutaran).Feedback = ArrLFSR(nSt – 1, nP, nPutaran).Feedback.

e) Set cBitOutLFSR(nP) = ArrLFSR(nSt – 1, nP, nPutaran).Output. b. Jika nStep = 2, maka lakukan langkah kedua ini. Langkah kedua berupa

proses dari adder with carry terhadap semua bit output dari LFSR. Rincian proses yang dilakukan adalah sebagai berikut :

1) Set nilai nCarry = cCarryAdder(nSt – 1). 2) Set nilai nResult = 0.

3) Untuk nP = 0 sampai nJlhReg – 1, set nilai nTmbh = nTmbh + cBitOutLFSR(nP).

4) Set nilai nResult = (nTmbh + nCarry) mod 2. 5) Set nilai nCarry = (nTmbh + nCarry) div 2.

6) Simpan nilai carry dari perhitungan ke array cCarryAdder(nSt – 1) dengan cara men-set nilai cCarryAdder(nSt – 1) = nCarry.

c. Jika nStep = 3, maka lakukan langkah ketiga ini. Langkah ketiga berupa proses dari operasi AND antara nilai bit output dari adder with carry dan clock dari LFSR awal (stage-1 dan step-1). Hasil operasi ini merupakan nilai clock untuk register FCSR. Proses yang dilakukan adalah sebagai berikut :

1) Set nilai nAnd = nResult And ClockLFSRA. 2) Set nilai ClockFCSR = nAnd.

d. Jika nStep = 4, maka lakukan langkah keempat ini. Langkah keempat berupa proses dari FCSR. Jika FCSR aktif, maka jalankan semua FCSR yang berada pada stage tersebut. Jika tidak, maka ambil nilai bit output dari langkah sebelumnya. Rincian proses yang dilakukan adalah sebagai berikut :

1) Jika ClockFCSR = 1, maka untuk nP = 0 sampai nJlhReg – 1, jalankan semua FCSR dengan menggunakan algoritma proses FCSR diatas. 2) Jika tidak, maka untuk nP = 0 sampai nJlhReg – 1, lakukan proses

berikut:

a) Set nilai ArrFCSR(nSt – 1, nP, nPutaran).Aktif = False.

b) Set nilai ArrFCSR(nSt – 1, nP, nPutaran).Isi = ArrFCSR(nSt – 1, nP, nPutaran – 1).Isi.

c) Set ArrFCSR(nSt – 1, nP, nPutaran).Output = ArrFCSR(nSt – 1, nP, nPutaran – 1).Output.

d) Set ArrFCSR(nSt – 1, nP, nPutaran).Feedback = ArrFCSR(nSt – 1, nP, nPutaran).Feedback.

e) Set cBitOutFCSR(nP) = ArrFCSR(nSt – 1, nP, nPutaran).Output. e. Jika nStep = 5, maka lakukan langkah kelima ini. Langkah kelima berupa

proses dari operasi XOR antara nilai bit output dari FCSR dan bit output dari adder with carry. Hasil operasi XOR ini merupakan nilai clock untuk register LFSR untuk stage selanjutnya. Rincian proses yang dilakukan adalah sebagai berikut :

1) Set nilai nXOR = 0.

2) Untuk nP = 0 sampai nJlhReg – 1, set nilai nXOR = nXOR XOR cBitOutFCSR(nP).

3) Set nilai nXOR = nXOR XOR nResult. 4) Set nilai ClockLFSR = nXOR.

7. Jika jumlah stage sama dengan jumlah stage yang diinginkan dan jumlah step sama dengan 5 maka nilai bit output dari operasi XOR merupakan nilai bit output dari generator. Kemudian gabungkan nilai bit output tersebut ke dalam bit bilangan. Jika panjang bit bilangan sama dengan panjang bit output maka inkremen nilai variabel suku dan lanjutkan ke bilangan selanjutnya. Rincian proses yang dilakukan adalah sebagai berikut :

a. Tambahkan jumlah baris dari tabel msBit.

b. Set nilai pada baris terakhir, kolom 1 pada msBit = nXOR.

c. Set nilai cOutput(nSuku) = cOutput(nSuku) digabungkan dengan nXOR. d. Jika panjang dari cOutput(nSuku) = nBitOut, maka :

2) Set nilai pada baris terakhir, kolom 1 pada msOutput = cOutput(nSuku).

3) Set nilai pada baris terakhir, kolom 2 pada msOutput = BinerToHex(cOutput(nSuku)).

4) Set nilai pada baris terakhir, kolom 3 pada msOutput = BinerToDec(cOutput(nSuku)).

5) Set nilai nSuku = nSuku + 1.

8. Jika nilai variabel suku lebih besar dari jumlah output dikurangi satu berarti semua bilangan output telah dihasilkan, maka hentikan proses dan proses selesai. Jika tidak, maka lanjutkan proses dan kembali ke langkah (1).

Beberapa informasi yang dapat diperoleh dari hasil konstruksi perangkat lunak, yaitu:

1. Metode Concoction Generator dapat digunakan untuk menghasilkan bilangan acak yang digunakan dalam game Drop7 yaitu untuk menentukan nilai piring baru ataupun nilai piring kosong yang berubah menjadi angka.

2. Aplikasi dapat digunakan untuk memainkan game Drop7 pada sebuah komputer.

Sedangkan, kelemahan dari Concoction Generator pada game Drop7 ini yaitu:

1. Software tidak dapat dimainkan pada jaringan komputer ataupun internet. 2. Software tidak menyediakan fasilitas perancangan tempat bermain (board),

69

KESIMPULAN DAN SARAN

6.1.Kesimpulan

Setelah selesai mengkonstruksi perangkat lunak, penulis dapat mengambil beberapa kesimpulan berikut:

1. Aplikasi menyediakan sebuah interface untuk bermain game Drop7 pada sebuah komputer yang dirancang dengan aplikasi Microsoft Visual Basic 2010 dengan menggunakan gambar yang diubah dan disimpan dengan aplikasi Adobe Photoshop CS.

2. Metode Concoction Generator dapat digunakan untuk menghasilkan bilangan acak yang digunakan dalam game Drop7 yaitu untuk menentukan nilai piring baru ataupun nilai piring kosong yang berubah menjadi angka.

3. Perangkat lunak permainan Drop7 dapat dibuat dengan merancang berbagai fungsi dan prosedur dari algoritma yang digunakan dengan menggunakan bahasa pemrograman Microsoft Visual Basic.NET 2010, namun animasi yang dihasilkan masih kurang bagus dan kurang menarik.

6.2.Saran

Penulis ingin memberikan beberapa saran sehubungan dengan pengembangan perangkat lunak, seperti:

1. Aplikasi dapat dikembangkan dengan merancang permainan agar dapat dimainkan pada jaringan komputer ataupun internet.

2. Aplikasi dapat dikembangkan dengan menambahkan fasilitas chatting sehingga pemain bisa saling berkomunikasi saat menunggu giliran.

3. Aplikasi dapat dikembangkan dengan memungkinkan pemain untuk mendesain sendiri papan permainannya.

Kamau, G.M., S. Kimani dan W. Mwangi, 2012, An Enhanced Least Significant Bit Steganographic Method for Information Hiding, Journal of Information Engineering and Applications.

Kurniawan, J., 2011, Kriptografi, Keamanan Internet dan Jaringan Komunikasi, Penerbit Informatika Bandung.

Munir, R., 2010, Pengantar Kriptografi, Penerbit Informatika Bandung. Munir, R., 2011, Matematika Diskrit, Penerbit Informatika Bandung.

Schneier, B., 2011, Applied Crytography : Protocols, Algorithm, and Source Code in C, Second Edition, John Willey and Sons Inc.

http://www.en.wikipedia.org/wiki/Game, tanggal akses 15 Desember 2014

Dokumen terkait