Saturday, October 2, 2010

menghitung frekwensi huruf pada java

Ini adalah source code untuk menghitung frekwensi huruf pada suatu kata menggunakan bahasa pemrograman java. Untuk hasilnya adalah seperti berikut :
dan ini adalah source codenya :

import java.util.Scanner;

public class charCount{
    public static void main (String [] args){
        Scanner sc = new Scanner(System.in);
        String temp = "";
        System.out.print("Masukkan kata : ");
        String input = sc.nextLine().toLowerCase();
        for(int i = 0; i < input.length(); i++){
            boolean exist = false;
            for (int j = 0; j < temp.length(); j++){
                if(input.charAt(i)==temp.charAt(j)){
                    exist = true;
                }
            }
            if(!exist){
                temp = temp + input.charAt(i);   
            }
        }
        System.out.println();
        System.out.println("Himpunan huruf dari inputan : "+temp);
        System.out.println();
        System.out.println("Frekuensi @ huruf :");
        for (int i = 0; i < temp.length(); i++){
            int sum = 0;
            for(int j = 0; j < input.length(); j++){
                if(temp.charAt(i)==input.charAt(j)) sum++;
            }
            if(temp.charAt(i)==' ') System.out.println(" = "+sum);
            else System.out.println(temp.charAt(i)+" = "+sum);
        }
    }
}


source juga bisa di download di sini : DOWNLOAD

Saturday, July 31, 2010

Bermain Dengan Class Random

Pada kali ini saya mencoba membuat sebuah permainan sederhana menggunakan class random pada java. Jadi nanti pada hasil program akan muncul soal matematika sederhana yang diacak oleh program dan kita harus menjawab soal-soal tersebut. Jika jawaban benar maka akan di beri nilai 10. Jika salah, maka nilai 0. 

Ini dia hasil dari program.
Untuk Sourcenya sebagai berikut : 

import java.util.Random;
import java.util.Scanner;
public class GameMatematika{
    private static int x, y, hasil, jawaban;
    private static int nilai = 0, soal=0, JmlSoal=10;
   
    public static void kali(){
        x = new Random().nextInt(9);
        y = new Random().nextInt(9);
        hasil = x*y;
        System.out.print (x+" x "+y+" = ");
        jawaban = new Scanner(System.in).nextInt();
        if (jawaban == hasil){
            System.out.println ("JAWABAN BENAR");
            nilai = nilai + 10;
            soal = soal+1;
        }
        else{
            System.out.println ("JAWABAN SALAH");
            nilai = nilai + 0;
            soal = soal+0;
        }
        System.out.println ();
    }
   
    public static void tambah(){
        x = new Random().nextInt(9);
        y = new Random().nextInt(9);
        hasil = x+y;
        System.out.print (x+" + "+y+" = ");
        jawaban = new Scanner(System.in).nextInt();
        if (jawaban == hasil){
            System.out.println ("JAWABAN BENAR");
            nilai = nilai + 10;
            soal = soal+1;
        }
        else{
            System.out.println ("JAWABAN SALAH");
            nilai = nilai + 0;
            soal = soal+0;
        }
        System.out.println ();
    }
   
    public static void kurang(){
        x = new Random().nextInt(9);
        y = new Random().nextInt(9);
        hasil = x-y;
        System.out.print (x+" - "+y+" = ");
        jawaban = new Scanner(System.in).nextInt();
        if (jawaban == hasil){
            System.out.println ("JAWABAN BENAR");
            nilai = nilai + 10;
            soal = soal+1;
        }
        else{
            System.out.println ("JAWABAN SALAH");
            nilai = nilai + 0;
            soal = soal+0;
        }
        System.out.println ();
    }
   
    public static void main (String[] args) {
        int lagi;
        do{
            for(int i=0; i
                int pilihan = new Random().nextInt(3);
                switch (pilihan) {
                       case 0 : kali();
                           break;
                       case 1 : tambah();
                           break;
                       case 2 : kurang();   
                           break;
                }
            }
            System.out.println ("Jumlah benar = "+soal);
            System.out.println ("Nilai = "+nilai);
           
            if (soal<=5){
                System.out.println ("YA AMPUNNN... BISA NGITUNG GA SIEE????");
            }
            else if(soal>5 && soal <=7){
                System.out.println ("LUMAYAN... TAPI PERLU BELAJAR LAGI");
            }
            else if(soal >7 && soal <=9){
                System.out.println ("WAAAW,, KEREN NEE NILAIMU");
            }
            else if(soal==10){
                System.out.println ("FERFECT.... MANTAP BROWW!!");
            }
            else if(soal==0){
                System.out.println ("WOOOOEEEE.... KE LAUT Z DEH.....!!! BODOOOOHHH!!!");
            }
            System.out.println ();
            System.out.println ("Mau Lagi? (1 : ya   2 : tidak)");
            lagi = new Scanner(System.in).nextInt();
            System.out.println ();
        }while(lagi==1);
    }
}

Source bisa juga didownload di sini : DOWNLOAD

Tuesday, July 27, 2010

Single Linked List Pada Java

Linked List merupakan salah satu struktur data yang sangat fundamental dalam bidang ilmu komputer. Dengan menggunakan linked list, rogramer dapat menyipan datanya kapanpun dia mau. Linked list mirip dengan array, kecuali pada linked list data yang ingin disimpan dapat dialokasikan secara dinamis pada saat pengoprasian program.

Linked list ada 3 yaitu single linked list, double linked list, dan circular linked list. Di bawah ini merupakan contoh program sederhana dari single link list. Untuk hasil dari program ini adalah sebagai berikut : 

dan Untuk Source Codenya adalah sebagai berikut :

import java.util.Scanner;

class X{
    int data;
    X next;
   
    X(int input){
        this(input, null);
    }
   
    X(int input, X node){
        data = input;
        next = node;
    }
}

class list1{
    private X awal;
    private X akhir;
    private int bil;
   
    public list1(){
        this (0);
    }
   
    public list1(int datalist){
        bil = datalist;
        awal = akhir = null;
    }
   
    public boolean kosong(){
        return awal == null;
    }
   
    public void tambahdata(int input){
        if (kosong()){
            awal = akhir = new X(input);
        }
       
        else{
            akhir = akhir.next = new X(input);
        }
    }
   
    public void cetakLinked(){
        System.out.println ("Data yang ada di linked list adalah :");
        X cetak = awal;
        while (cetak!=null){
            System.out.print (cetak.data+" ");
            cetak = cetak.next;
        }
    }
}

public class Linked{
    public static void main (String[] args) {
        Scanner input = new Scanner(System.in);
            System.out.println ("Program single linked list");
            System.out.println ("");
           
            list1 xx = new list1();
            int data;
            System.out.print ("Masukan Jumlah Data :");
            int jml = input.nextInt();
           
            for (int i=0; i
                System.out.print ("Masukkan Data ke-"+(i+1)+" :");
                data = input.nextInt();
                xx.tambahdata(data);
            }
           
            System.out.println ("");
            xx.cetakLinked();
            System.out.println ("");
           
            boolean terus = false;
            while(!terus){
                System.out.print ("Ingin Tambah Data(Y/T) :");
                String jawab = input.next();
                char A = jawab.charAt(0);
                if ((A == 'T')||(A == 't')){
                    terus = true;
                }
                else{
                    System.out.print ("Tambah Berapa Data :");
                    int jml2 = input.nextInt();
                    System.out.println ("");
                    for (int i=0; i< jml2; i++){
                    System.out.print ("masukan data ke-"+(i+1+jml)+" :");
                    data = input.nextInt();
                    xx.tambahdata(data);
                    }
                    jml=jml+jml2;
                    System.out.println ("");
                    xx.cetakLinked();
                    System.out.println ("");
                }
            }
           
            System.out.println ("");
            xx.cetakLinked();
}
}

Supaya lebih jelas bisa didowload disini : DOWNLOAD

Saturday, July 24, 2010

Program menghitung IP

Program ini saya buat cuma untuk mengisi waktu kosong aja, program ini sangat sederhana, hehehe,,  program ini ditujukan untk para mahasiswa yang lagi menjalani kuliah. program ini berfungsi untuk menghitung IP. Jadi kalian tidak perlu mengoret-oret di kertas untuk menghitung IP kalian di kampus. Saya membuat program ini menggunakan bahsa pemrograman java.  Untuk hasil dari program ini adalah sebagai berikut : 



Naaaahhh,, untuk source codenya adalah sebagai berikut : 

import java.util.Scanner;

public class menghitungIP{
    public static void main (String[] args) {
        Scanner x = new Scanner(System.in);
       
        System.out.print ("Jumlah SKS : ");
        int JmlSks = x.nextInt();
        System.out.print ("Jumlah Mata Kuliah : ");
        int jmlMK = x.nextInt();
        System.out.println ("");
       
        double nilai=0;
        double totNilai=0;
        int totSKS2=0;
        for(int i=0; i
            System.out.print ("Nilai MK"+(i+1)+" :");
            String nilaiMK = x.next();
                       
            if(nilaiMK.equals("A"))
                nilai = 4;
            else if (nilaiMK.equals("B+"))
                nilai = 3.5;
            else if (nilaiMK.equals("B"))
                nilai = 3;
            else if (nilaiMK.equals("C+"))
                nilai = 2.5;
            else if (nilaiMK.equals("C"))
                nilai = 2;
            else if (nilaiMK.equals("D+"))
                nilai = 1.5;
            else if (nilaiMK.equals("D"))
                nilai = 1;
            else if (nilaiMK.equals("E"))
                nilai = 0;
            else
                System.out.println ("Nilai yang anda masukkan tidak ada");
               
            System.out.print ("Jml SKS :");
            int totSKS = x.nextInt();
            totSKS2 = totSKS2+totSKS;   
            totNilai = totNilai+(nilai*totSKS);
            System.out.println ("");
        }
       
        if(totSKS2
            System.out.println ("Heeeh,,, SKS mu kurang tu....!! Cek Lagi...!!!");
        else {
        System.out.println ("");
        System.out.println ("Jumlah Nilai : "+totNilai);
       
        double IP = totNilai/JmlSks;
       
        if (IP<2)
            System.out.println ("Waduuuhhh... IP mu "+IP+" Bahaya tu!!!!");
        else if(IP>=2 && IP<2.75)
            System.out.println ("Hmmmm... IP mu "+IP+" Tingkatkan lagi!!!");
        else if (IP>=2.75 && IP<3)
            System.out.println ("Lumayan.... IP mu "+IP+" Tingkatkan Semester Depan!!!");
        else if (IP>=3 && IP<3.5)
            System.out.println ("Good,,, good,, IP mu "+IP+" Semester depan jangan sampai turun!!");
        else if (IP>=3.5 && IP<4)
            System.out.println ("Waaaaaaaw,,,, IP mu "+IP+" Nice job");
        else if (IP==4)
            System.out.println ("IP mu "+IP+" GAAA BISAAA COMEENTTT!!!");
        else
            System.out.println ("IP ga ada tuuh");
        }       
}
}
hmmm,, untuk program yang lengkap bisa didownload di sini : DOWNLOAD

Program Kalkulator Sederhana Dengan Delphi

Iseng-iseng ga da kegiatan, q nyoba buat program kalkulator menggunakan Delphi. program kalkulator ini sangat sederhana, jadi tidak ada algoritma postfix. Hasil dari program ini adalah sebagai berikut : 

Untuk Source Code dan langkah pembuatan kalkulator ini bisa didownload di link ini : DOWNLOAD

Thursday, July 22, 2010

Program DFA pada Java

Deterministic Finite Automata (DFA) adalah satu jenis dari Finite Automata (FA) yang berguna sebagai pengenal Bahasa Regular. Karakteristik kunci dari DFA ini adalah tidak membolehkan membaca dari satu transisi untuk satu simbol masukan berisi string berupa karakter / abjad yang sama. Dengan kata lain untuk masukan simbol yang sama DFA tidak bisa mentrasisikannya ke beberapa state yang berbeda. Jika digunakan tabel trasisi untuk mempresentasikan fungsi DFA, maka masing-masing isian di tabel trasisi adalah satu state tunggal (berhingga) dan dapat berpindah ke state lain berdasarkan input dan fungsi transisi. Konsekuensinya, pada DFA lebih mudah mementukan apakah suatu string masukan diterima, karena hanya terdapat paling banyak satu jalur dari state awal. Arah pergerakan (Head) dari state awal hingga state akhir hanya bisa maju saja (ke kanan). Jika jalur simbol masukan dimisalkan sebagai 'pita', maka setelah membaca atau simbol pada pita, kepala pita akan maju ke posisi simbol berikutnya dengan kata lain bersifat otoatis. DFA tidak bisa mengingat, DFA hanya bisa membaca aau mengingat state terkini.

Dibawah ini akan doberikan Source code dari Program DFA pada bahasa Java. State DFA bisa diliha dari gambar.

Source code

import java.util.Scanner;
import java.io.*;

public class StringDFA{
    public static class dfa {
        private static final int A = 0;
        private static final int B = 1;
        private static final int C = 2;
        private int state;
       
        private int gambar(int x, char c){
            switch(x){
                case A: switch(c){
                    case '0': return B;
                    case '1': return A;
                }
                case B: switch(c){
                    case '0': return B;
                    case '1': return C;
                }
                case C: switch(c){
                    case '0': return C;
                    case '1': return C;
                }
                default: return C;
            }
        }
       
        public void awal(){
            state = A;
        }
       
        public void proses(String input){
            for (int i=0; i
                char c = input.charAt(i);
                state = gambar(state, c);
            }
        }
       
        public boolean akhir(){
            return state == C;
        }
    }
   
    public static void main (String[] args){
        dfa test = new dfa();
        Scanner scan = new Scanner(System.in);
        System.out.println ("********************************");
        System.out.println ("*        Program Mesin DFA        *");
        System.out.println ("*     Dengan RE : 1*00*1(0+1)*    *");
        System.out.println ("*                                *");
        System.out.println ("********************************");
        System.out.print ("Input String : ");
        String x = scan.nextLine();
       
        while (x!=null){
            test.awal();
            test.proses(x);
            if (test.akhir())
                System.out.println ("String "+x+" DITERIMA");
            else
                System.out.println ("String "+x+" DITOLAK");
            System.out.print ("\nInput String : ");
            x = scan.nextLine();
        }
    }
}


Untuk program bisa didownload di sini : DOWNLOAD