CryptoGrapy Morse [dev003] (CM 110)
Kali ini kita akan membuat criptographi sederhana, yaitu programming persandian yang sering kita gunakan saat pramuka yaitu sandi morse.
A : .- J : .--- S : ... 2 : .----
B : -... K : -.- T : - 3 : ...--
C : -.-. L : .-.. U : ..- 4 : ....-
D : -.. M : -- V : ...- 5 : .....
E : . N : -. W : .-- 6 : -....
F : ..-. O : --- X : -..- 7 : --...
G : --. P : .--. Y : -.-- 8 : ---..
H : .... Q : --.- Z : --.. 9 : ----.
I : .. R : .-. 1 : .---- 0 : -----
atau untuk lebih jelas dapat melihat gambar berikut :
Kita akan berlatih membuat program kriptographi sederhana ini :
bagi yang ingin mencoba hasilnya bisa ke situs :
Code:
http://morsecode.scphillips.com/jtranslator.html
Sekarang kita coba membuat dengan bahasa pemprograman java sendiri :
Code:
/*
* WhiteMrse.java
* by CyberMuttaqin
* Created On 5, January 2010
*/
import java.util.*;
public class WhiteMorse{
private String asciiText= "";
private String morseText = "";
//True konfersi dai ascii ke morse
// konfersi dai morse ke ascii
private boolean fDirect = true;
private static int NR_CHARS = 36;
private static char[] ch = {
' ','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
'1','2','3','4','5','6','7','8','9','0'};
private static String[] mc = {
null,
".-", //A
"-...", //B
"-.-", //C
"-..", //D
".", //E
"..-", //F
"--.", //G
"....", //H
"..", //I
".---", //J
"-.-", //K
".-..", //L
"--", //M
"-.", //N
"---", //O
".--.", //P
"--.-", //Q
".-.", //R
"...", //S
"-", //T
"..-", //U
"...-", //V
".--", //W
"-..-", //X
"-.--", //Y
"--..", //Z
".----", //1
"..---", //2
"...--", //3
"....-", //4
".....", //5
"-....", //6
"--...", //7
"---..", //8
"----.", //9
"-----", //0
};
//buat instance
public WhiteMorse(String s, boolean fDirect){
if (fDirect) {
this.asciiText = s;
convertToMorse();
} else {
this.morseText = s;
convertToAscii();
}
}
public String getMorse(){
return morseText;
}
public String getAscii(){
return asciiText;
}
public String toString(){
String str =
"Text ASCII = " +getAscii()+"\n"+
"Text Morse = " +getMorse()+"\n";
return str;
}
static void test(){
System.out.println(new WhiteMorse("CYBERMUTTAQIN",true));
System.out.println(new WhiteMorse((new WhiteMorse("CYBERMUTTAQIN",true)).getMorse(),false));
}
public static void main(String[] args){
test();
}
private int searchMorse(String s){
int i = NR_CHARS-1;
mc[0] = s;
while (!mc[i].equals(s)) i--;
return i;
}
private int searchChar(char ch){
int i = NR_CHARS-1;
while (this.ch[i]!=ch)i--;
return i;
}
private void convertToMorse(){
morseText="";
for(int i=0;i<asciiText.length(); i++){
int idx = searchChar(asciiText.charAt(i));
if (idx ==0){
morseText += "\t";
} else {
morseText += mc[idx];
morseText += "";
}
}
}
private void convertToAscii(){
asciiText = "";
StringTokenizer TokensA = new StringTokenizer(morseText);
while (TokensA.hasMoreTokens()){
String morseWord = TokensA.nextToken("\t");
StringTokenizer TokensB = new StringTokenizer(morseWord);
while (TokensB.hasMoreTokens()) {
int idx = searchMorse(TokensB.nextToken());
if (idx ==0) {
asciiText += "";
} else {
asciiText += ch[idx];
}
}
asciiText += "";
}
}
}
yups... jadi dech...
selamat mencoba dan berkreasi semoga bermanfaat...
spesial thanks buat guru saya Behindhack ( Adit ) Dari BatamHacker