Anda di halaman 1dari 7

ISU & PROTEKSI TEKNOLOGI INFORMASI ( C )

Program Subtitusi Box 1

Oleh :
A.A.NGR.AG.ADITYAWINATA (1504505099)

JURUSAN TEKNOLOGI INFORMASI


FAKULTAS TEKNIK UNIVERSITAS UDAYANA
2017
1. Kode Program Subtitusi Box 1

Tabel di bawah merupakan kode program Subtitusi Box 1. Pembuatan kode


program menggunakan Java Netbeans.

package s.box;

import java.util.Scanner;
public class SBox
{

private static int[][] s;

public static void main(String[] args)


{
Scanner input = new Scanner(System.in);
String biner;

System.out.println(" ");
System.out.println("---------------------------------------
----------------");
System.out.println("--- Algoritma Transposisi Kolom
---");
System.out.println("--- A.A.NGR.AG.ADITYAWINATA
---");
System.out.println("--- 1504505099
---");
System.out.println("--- Isu & Proteksi Teknologi
Informasi ( C ) ---");
System.out.println("---------------------------------------
----------------");
System.out.println(" ");
System.out.print("Masukkan binner 6 digit : ");
biner=input.next();
//MENGUBAH TIPE DATA CHAR MENJADI TIPE DATA STRING
String first = String.valueOf(biner.charAt(0));
String last = String.valueOf(biner.charAt(5));

//MENGUBAH TIPE DATA STRING MENJADI TIPE DATA INT


int cl = Integer.parseInt(first);
int cr = Integer.parseInt(last);

int desimal=ConversiBin_Des(biner.substring(1,5));
int control=control(cl,cr);
int hasilperpotongan=S[control][desimal];

System.out.println(" ");
System.out.println("Hasil perpotongan dalam bentuk DESIMAL
adalah : "+hasilperpotongan);
System.out.println("Hasil perpotongan dalam bentuk BINNER
adalah : "+ConversiDes_Bin(hasilperpotongan));
}

//DI BAWAH INI MERUPAKAN ISI DI DALAM SUBTITUSIBOX MATRIK 3X15


public static int[][]S =
{
{14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7},
{0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3,
8},
{4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5,
0},
{15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6,
13}
};

// DI BAWAH INI MERUPAKAN METODE UNTUK MENENTUKAN BIT CONTROL


public static int control(int controlleft, int controlright)
{
if((controlleft==0) && (controlright==0))
return 0;
else if((controlleft==0) && (controlright==1))
return 1;
else if((controlleft==1) && (controlright==0))
return 2;
else
return 3;
}

// di bawah ini merupakan metode konversi dari binner ke desimal


public static int ConversiBin_Des(String bin)
{
int i, a=0;

for (i=0; i < bin.length(); i++)


{
if (bin.charAt(i)=='1')
a+=Math.pow(2,(bin.length()-1)-i);
else
a+=0;
}
return a;
}

//DI BAWAH INI MERUPAKAN METODE KONVERSI DESIMAL KE BINNER


public static String ConversiDes_Bin(int des)
{
if(des==1)
return Character.toString('1');
else if ((des%2)==1)
return ConversiDes_Bin(des/2)+ConversiDes_Bin(1);
else
return ConversiDes_Bin(des/2)+Character.toString('0');
}
}
Kode Program 1. Program Subtitusi Box
Pembuatan kode program subtitusi box tersebut menggunakan bahasa
pemrograman adalah Java.

2. Screenshot Program Subtitusi Box 1


Gambar di bawah ini merupakan hasil dari dijalankannya program subtitusi box
1.

Gambar 1 Screenshot program subtitusi box

Gambar 2 Screenshot program subtitusi box

3. Algoritma Pseudocode Program Subtitusi Box 1


Berikut merupakan algoritma pseudocode dari program subtitusi box.
Program Utama
1. Mulai
2. Scanner input = new Scanner(System.in);
3. Deklarasi binner
4. Write Masukkan binner 6 digit :
5. Set biner=input.next()
6. Set String first = String.valueOf(biner.charAt(0))
7. Set String last = String.valueOf(biner.charAt(5))
8. Set int cl = Integer.parseInt(first)
9. Set int cr = Integer.parseInt(last)
10. Set int desimal=ConversiBin_Des(biner.substring(1,5))
11. Set int control=control(cl,cr)
12. Set int hasilperpotongan=S[control][desimal]
13. Write Hasil perpotongan dalam bentuk DESIMAL adalah :
14. Write Hasil perpotongan dalam bentuk BINNER adalah :

Isi dalam subtitusi box


1. Set S = {14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6,
12, 5, 9, 0, 7},
{0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5,
3, 8},
{4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3,
10, 5, 0},
{15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0,
6, 13}

Menentukan Bit Control


1. Method control
2. Parameter controlleft, controlright
3. if((controlleft==0) && (controlright==0)) then
4. return 0
5. else if((controlleft==0) && (controlright==1)) then
6. return 1
7. else if((controlleft==1) && (controlright==0)) then
8. return 2 else
9. then return 3

Metode Konversi dari Binner ke Desimal


1. Method ConversiBin_Des
2. Parameter bin
3. Deklarasi int i, a=0

4. for i bin.length do
5. if (bin.charAt(i)=='1')a+=Math.pow(2,(bin.length()-1)-i)
6. else a+=0
7. end for
8. return a

Metode Konversi dari Desimal ke Binner


1. Method ConversiDes_Bin
2. Parameter des
3. if(des==1)
4. return Character.toString('1')
5. else if ((des%2)==1)
6. return ConversiDes_Bin(des/2)+ConversiDes_Bin(1)
else return ConversiDes_Bin(des/2)+Character.toString('0')
Kode Program 2 Subtitusi box

Berdasarkan kode program subtitusi box 1, algoritma program tersebut adalah


sebagai berikut.
Pertama, memasukkan 6 digit binner yang kemudian akan diproses. Setelah itu, 6
digit binner tersebut akan diubah dari tipe char menjadi tipe data string, selanjutnya tipe
data string akan diubah menjadi tipe data int. Kedua, setelah memasukkan 6 digit binner
tersebut maka harus menentukan bit control dari masukkan 6 digit tadi dengan kode
if((controlleft==0) && (controlright==0))return 0; else
if((controlleft==0) && (controlright==1)) return 1; else
if((controlleft==1) && (controlright==0)) return 2; else return 3;
Ketiga, setelah menentukan bit control tersebut, maka langkah selanjutnya adalah
mencari hasil perpotongan pada posisi tabel subtitusi box dari bit control yang sudah
didapatkan tadi dengan kode int hasilperpotongan=S[control][desimal];.

Kemudian, hasil dari sisa 6 digit setelah menentukan bit control, akan diubah menjadi
desimal dengan kode public static int ConversiBin_Des(String bin){int
i, a=0; for (i=0; i < bin.length(); i++){if (bin.charAt(i)=='1')

a+=Math.pow(2,(bin.length()-1)-i);else a+=0;}return a;}.

Keempat, setelah mendapat hasil perpotongan yang hasilnya desimal, selanjutnya


akan diubah kembali menjadi biner dengan kode public static String
ConversiDes_Bin(int des){if(des==1) return Character.toString('1');
else if ((des%2)==1) return ConversiDes_Bin(des/2)+ConversiDes_Bin(1);
else return ConversiDes_Bin(des/2)+Character.toString('0');}

Anda mungkin juga menyukai