Results 1 to 3 of 3
http://idgs.in/455136
  1. #1
    SCHATZKEVIN's Avatar
    Join Date
    Jun 2011
    Location
    Asli dari Pontianak
    Posts
    130
    Points
    171.10
    Thanks: 0 / 6 / 5

    Default 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 :

    Spoiler untuk gambar :


    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

  2. Hot Ad
  3. #2
    koker123's Avatar
    Join Date
    Jan 2007
    Location
    Somewhere on Earth
    Posts
    838
    Points
    993.90
    Thanks: 1 / 2 / 2

    Default

    Iseng2 gw buat pake c#

    tinggal di compile aja.

    Spoiler untuk SourceCode :

    Code:
    using System;
    using System.Text;
    
    namespace MorseApplication
    {
        class Program
        {
            private static string TextToTranslate { get; set; }
            private static string[] Temp;
            private static bool loop = true;
    
            static void Main(string[] args)
            {
                while (loop)
                {
                    Console.WriteLine("Please input only Text or Morse code at a time");
                    Console.WriteLine("Give white space for each morse if you want to translate morse code");
                    Console.WriteLine();
                    Console.Write("Input Text To Translate:");
                    TextToTranslate = Console.ReadLine();
                    Temp = TextToTranslate.Split(' ');
    
                    bool Check = false;
                    bool Valid = true;
    
                    foreach (string str in Temp)
                    {
                        Check = IsAlphabet(str);
                        if (Check == true)
                            break;
                    }
    
                    string TranslatedText = "";
    
                    if (Check)
                    {
                        char[] store = TextToTranslate.ToCharArray();
    
                        foreach (char ch in store)
                        {
                            string hold = AlphabetToMorse(ch.ToString());
                            if (hold != "")
                                TranslatedText += hold;
                            else
                            {
                                Valid = false;
                                break;
                            }
                        }
                    }
                    else
                    {
                        foreach (string str in Temp)
                        {
                            string hold = MorseToAlphabet(str);
                            if (hold != "")
                                TranslatedText += hold;
                            else
                            {
                                Valid = false;
                                break;
                            }
                        }
                    }
    
                    if (Valid)
                    {
                        Console.WriteLine();
                        Console.WriteLine("Translated Input:" +TranslatedText);
                    }
                    else
                    {
                        Console.WriteLine();
                        Console.WriteLine("Unsupported Format, Please Enter Morse code only or Alphabet only at a time");
                    }
    
                    Console.WriteLine();
                    Console.Write("Do you want to continue?(Y/N):");
                    string answer = Console.ReadLine().ToLower();
                    while(answer != "y" && answer != "n")
                    {
                        Console.WriteLine();
                        Console.WriteLine("Please Enter Y for Yes or N for No");
                        Console.Write("Do you want to continue?(Y/N):");
                        answer = Console.ReadLine().ToLower();
                    }
    
                    if (answer == "y")
                    {
                        loop = true;
                        Console.Clear();
                    }
                    if(answer == "n")
                        loop = false;
                }
    
                Console.WriteLine();
                Console.WriteLine("Thank you for using this program :D");
                Console.WriteLine("Press any key to close this program");
                Console.ReadKey();
    
            }
    
            private static bool IsAlphabet(string str)
            {
                char[] checking = str.ToCharArray();
                string hold;
                foreach (char ch in checking)
                {
                    hold = AlphabetToMorse(ch.ToString());
                    if (hold != "")
                        return true;
                }
                return false;
            }
    
            private static string AlphabetToMorse(string str)
            {
                switch (str)
                {
                    case "a":
                        return ".- ";
                    case "b":
                        return "-... ";
                    case "c":
                        return "-.-. ";
                    case "d":
                        return "-.. ";
                    case "e":
                        return ". ";
                    case "f":
                        return "..-. ";
                    case "g":
                        return "--. ";
                    case "h":
                        return ".... ";
                    case "i":
                        return ".. ";
                    case "j":
                        return ".--- ";
                    case "k":
                        return "-.- ";
                    case "l":
                        return ".-.. ";
                    case "m":
                        return "-- ";
                    case "n":
                        return "-. ";
                    case "o":
                        return "--- ";
                    case "p":
                        return ".--. ";
                    case "q":
                        return "--.- ";
                    case "r":
                        return ".-. ";
                    case "s":
                        return "... ";
                    case "t":
                        return "- ";
                    case "u":
                        return "..- ";
                    case "v":
                        return "...- ";
                    case "w":
                        return ".-- ";
                    case "x":
                        return "-..- ";
                    case "y":
                        return "-.-- ";
                    case "z":
                        return "--.. ";
                    case "1":
                        return "---- ";
                    case "2":
                        return ".---- ";
                    case "3":
                        return "...-- ";
                    case "4":
                        return "....- ";
                    case "5":
                        return "..... ";
                    case "6":
                        return "-.... ";
                    case "7":
                        return "--... ";
                    case "8":
                        return "---.. ";
                    case "9":
                        return "----. ";
                    case "0":
                        return "----- ";
                    case " ":
                        return "/ ";
                    default:
                        return "";
                }
            }
    
            private static string MorseToAlphabet(string str)
            {
                switch (str)
                {
                    case ".-":
                        return "A";
                    case "-...":
                        return "B";
                    case "-.-.":
                        return "C";
                    case "-..":
                        return "D";
                    case ".":
                        return "E";
                    case "..-.":
                        return "F";
                    case "--.":
                        return "G";
                    case "....":
                        return "H";
                    case "..":
                        return "I";
                    case ".---":
                        return "J";
                    case "-.-":
                        return "K";
                    case ".-..":
                        return "L";
                    case "--":
                        return "M";
                    case "-.":
                        return "N";
                    case "---":
                        return "O";
                    case ".--.":
                        return "P";
                    case "--.-":
                        return "Q";
                    case ".-.":
                        return "R";
                    case "...":
                        return "S";
                    case "-":
                        return "T";
                    case "..-":
                        return "U";
                    case "...-":
                        return "V";
                    case ".--":
                        return "W";
                    case "-..-":
                        return "X";
                    case "-.--":
                        return "Y";
                    case "--..":
                        return "Z";
                    case "----":
                        return "1";
                    case ".----":
                        return "2";
                    case "...--":
                        return "3";
                    case "....-":
                        return "4";
                    case ".....":
                        return "5";
                    case "-....":
                        return "6";
                    case "--...":
                        return "7";
                    case "---..":
                        return "8";
                    case "----.":
                        return "9";
                    case "-----":
                        return "0";
                    case "/":
                        return " ";
                    default:
                        return "";
                }
            }
        }
    }
    Last edited by koker123; 07-10-11 at 05:04.

  4. #3
    SCHATZKEVIN's Avatar
    Join Date
    Jun 2011
    Location
    Asli dari Pontianak
    Posts
    130
    Points
    171.10
    Thanks: 0 / 6 / 5

    Default

    Quote Originally Posted by koker123 View Post
    Iseng2 gw buat pake c#

    tinggal di compile aja.

    Spoiler untuk SourceCode :

    Code:
    using System;
    using System.Text;
    
    namespace MorseApplication
    {
        class Program
        {
            private static string TextToTranslate { get; set; }
            private static string[] Temp;
            private static bool loop = true;
    
            static void Main(string[] args)
            {
                while (loop)
                {
                    Console.WriteLine("Please input only Text or Morse code at a time");
                    Console.WriteLine("Give white space for each morse if you want to translate morse code");
                    Console.WriteLine();
                    Console.Write("Input Text To Translate:");
                    TextToTranslate = Console.ReadLine();
                    Temp = TextToTranslate.Split(' ');
    
                    bool Check = false;
                    bool Valid = true;
    
                    foreach (string str in Temp)
                    {
                        Check = IsAlphabet(str);
                        if (Check == true)
                            break;
                    }
    
                    string TranslatedText = "";
    
                    if (Check)
                    {
                        char[] store = TextToTranslate.ToCharArray();
    
                        foreach (char ch in store)
                        {
                            string hold = AlphabetToMorse(ch.ToString());
                            if (hold != "")
                                TranslatedText += hold;
                            else
                            {
                                Valid = false;
                                break;
                            }
                        }
                    }
                    else
                    {
                        foreach (string str in Temp)
                        {
                            string hold = MorseToAlphabet(str);
                            if (hold != "")
                                TranslatedText += hold;
                            else
                            {
                                Valid = false;
                                break;
                            }
                        }
                    }
    
                    if (Valid)
                    {
                        Console.WriteLine();
                        Console.WriteLine("Translated Input:" +TranslatedText);
                    }
                    else
                    {
                        Console.WriteLine();
                        Console.WriteLine("Unsupported Format, Please Enter Morse code only or Alphabet only at a time");
                    }
    
                    Console.WriteLine();
                    Console.Write("Do you want to continue?(Y/N):");
                    string answer = Console.ReadLine().ToLower();
                    while(answer != "y" && answer != "n")
                    {
                        Console.WriteLine();
                        Console.WriteLine("Please Enter Y for Yes or N for No");
                        Console.Write("Do you want to continue?(Y/N):");
                        answer = Console.ReadLine().ToLower();
                    }
    
                    if (answer == "y")
                    {
                        loop = true;
                        Console.Clear();
                    }
                    if(answer == "n")
                        loop = false;
                }
    
                Console.WriteLine();
                Console.WriteLine("Thank you for using this program :D");
                Console.WriteLine("Press any key to close this program");
                Console.ReadKey();
    
            }
    
            private static bool IsAlphabet(string str)
            {
                char[] checking = str.ToCharArray();
                string hold;
                foreach (char ch in checking)
                {
                    hold = AlphabetToMorse(ch.ToString());
                    if (hold != "")
                        return true;
                }
                return false;
            }
    
            private static string AlphabetToMorse(string str)
            {
                switch (str)
                {
                    case "a":
                        return ".- ";
                    case "b":
                        return "-... ";
                    case "c":
                        return "-.-. ";
                    case "d":
                        return "-.. ";
                    case "e":
                        return ". ";
                    case "f":
                        return "..-. ";
                    case "g":
                        return "--. ";
                    case "h":
                        return ".... ";
                    case "i":
                        return ".. ";
                    case "j":
                        return ".--- ";
                    case "k":
                        return "-.- ";
                    case "l":
                        return ".-.. ";
                    case "m":
                        return "-- ";
                    case "n":
                        return "-. ";
                    case "o":
                        return "--- ";
                    case "p":
                        return ".--. ";
                    case "q":
                        return "--.- ";
                    case "r":
                        return ".-. ";
                    case "s":
                        return "... ";
                    case "t":
                        return "- ";
                    case "u":
                        return "..- ";
                    case "v":
                        return "...- ";
                    case "w":
                        return ".-- ";
                    case "x":
                        return "-..- ";
                    case "y":
                        return "-.-- ";
                    case "z":
                        return "--.. ";
                    case "1":
                        return "---- ";
                    case "2":
                        return ".---- ";
                    case "3":
                        return "...-- ";
                    case "4":
                        return "....- ";
                    case "5":
                        return "..... ";
                    case "6":
                        return "-.... ";
                    case "7":
                        return "--... ";
                    case "8":
                        return "---.. ";
                    case "9":
                        return "----. ";
                    case "0":
                        return "----- ";
                    case " ":
                        return "/ ";
                    default:
                        return "";
                }
            }
    
            private static string MorseToAlphabet(string str)
            {
                switch (str)
                {
                    case ".-":
                        return "A";
                    case "-...":
                        return "B";
                    case "-.-.":
                        return "C";
                    case "-..":
                        return "D";
                    case ".":
                        return "E";
                    case "..-.":
                        return "F";
                    case "--.":
                        return "G";
                    case "....":
                        return "H";
                    case "..":
                        return "I";
                    case ".---":
                        return "J";
                    case "-.-":
                        return "K";
                    case ".-..":
                        return "L";
                    case "--":
                        return "M";
                    case "-.":
                        return "N";
                    case "---":
                        return "O";
                    case ".--.":
                        return "P";
                    case "--.-":
                        return "Q";
                    case ".-.":
                        return "R";
                    case "...":
                        return "S";
                    case "-":
                        return "T";
                    case "..-":
                        return "U";
                    case "...-":
                        return "V";
                    case ".--":
                        return "W";
                    case "-..-":
                        return "X";
                    case "-.--":
                        return "Y";
                    case "--..":
                        return "Z";
                    case "----":
                        return "1";
                    case ".----":
                        return "2";
                    case "...--":
                        return "3";
                    case "....-":
                        return "4";
                    case ".....":
                        return "5";
                    case "-....":
                        return "6";
                    case "--...":
                        return "7";
                    case "---..":
                        return "8";
                    case "----.":
                        return "9";
                    case "-----":
                        return "0";
                    case "/":
                        return " ";
                    default:
                        return "";
                }
            }
        }
    }
    keren kk

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •