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

Wednesday, July 21, 2010

Menghitung Jumlah Pola String Pada Java

Program ini dapat membuat pola dari suatu kalimat dan menghitung pola tersebut. Langsung saja kita ke source code.

import java.util.Scanner;

public class JmlPola{
    public static void main(String [] args){
        Scanner sc = new Scanner(System.in);
        System.out.print("masukkan string : ");
        String input = sc.nextLine();
        System.out.println("Ada "+input.length()+" pola");
        int pisah = 0;
        int jml=0;
        int jmlKata = 0;
        String[] temp = new String[input.length()];
        String[] tampung;
        while(pisah<=0||pisah>input.length()){
            System.out.print("Pilih pola pisah berapa huruf?: ");
            pisah = sc.nextInt();
        }
        System.out.println ("");
        System.out.println ("Pola Yang dihasilkan adalah :");
        for(int j = 0; j <= input.length() - pisah; j++){
            temp[j]= input.substring(j,j+pisah);
            System.out.print(temp[j]+" ");
            jmlKata++;
        }
      
        System.out.println (" ");
        System.out.println (" ");
        System.out.println ("Dengan Frekwensi :");
        tampung = new String [jmlKata];
        for (int i=0; i
        boolean ketemu = false;
        int j=0;
        for(j=0; j
            if (temp[i].equals(tampung[j]))
                ketemu=true;
        }
        if (!ketemu){
            tampung[jml]=temp[i];
            jml++;   
        }   
    }
   
        for (int i=0; i
        int sum = 0;
        for(int j=0; j
            if(tampung[i].equals(temp[j]))
                sum++;
        }
        System.out.println (tampung[i]+" = "+sum);   
    }   
}
}


Untuk Source Code Lengkap bisa didownload di sini : DOWNLOAD

Sunday, July 18, 2010

Program Menghitung Jarak Tembakan

Ini adalah program yang bisa menghitung jarak dari sebuah peluru yang ditembakkan.

import java.util.Scanner;
import javax.swing.JOptionPane;

public class Jarak_Lintasan{
    public static void main (String[] args) {
        Scanner input = new Scanner(System.in);
        int lagi=0;
        String lagi_str;
       
        String pesan5 = "=======SELAMAT DATANG======\n"+
                        "   PROGRAM MENGHITUNG JARAK \n"+
                        "              SEBUAH TEMBAKAN\n";
        JOptionPane.showMessageDialog(null,pesan5,"AwalProgram",                                                              JOptionPane.INFORMATION_MESSAGE);
       
        do{
        String pesan3 = "Sudut Tembakan : ";
        String sudut_str = JOptionPane.showInputDialog(null, pesan3, "Input Sudut", JOptionPane.QUESTION_MESSAGE);
        int sudut = Integer.parseInt(sudut_str);
        double radian = (double)sudut*Math.PI/180;
       
        String pesan4 = "Kecepatan Tembakan : ";
        String kecepatan_str = JOptionPane.showInputDialog(null, pesan4, "Input Kecepatan", JOptionPane.QUESTION_MESSAGE);
        int  kecepatan = Integer.parseInt(kecepatan_str);
       
        double jarak = 2*Math.pow(kecepatan,2)*Math.sin(radian)*Math.cos(radian)/9.8;
       
        String pesan2 = "Peluru Jatuh Pada Jarak "+jarak+" meter\n\n"+
                        "Coba lagi? ( 1:ya    2:tidak ) : ";
            lagi_str = JOptionPane.showInputDialog(null, pesan2," Input Program", JOptionPane.QUESTION_MESSAGE);
        lagi = Integer.parseInt(lagi_str);
        }while (lagi==1);
       
        if (lagi==0){
            String pesan = "Terima Kasih";
            JOptionPane.showMessageDialog(null,pesan,"Akhir Program",JOptionPane.INFORMATION_MESSAGE);
        }
}
}

untuk lebih jelasnya bisa didownload di sini : SOURCE CODE

Wednesday, July 14, 2010

program bunga pinjaman

Source Code

import java.util.Scanner;

public class pinjaman{
//ini merupakan fungsi jumlah bunga yang didapat.
    public double JmlBunga(int pinjam, double bunga)
    {
        double Total;
        Total=pinjam+(pinjam*(bunga/100));
        return Total;
    }
   

//ini adalah main dari program. Disini semua data yang dimasukkan
    public static void main (String[] args)
    {
        Scanner y = new Scanner(System.in);
        pinjaman x = new pinjaman();
       
        System.out.print ("jumlah uang yang ingin di pinjam (Rupiah) : ");
        int uang = y.nextInt();
       
        System.out.print ("Besar Bunga (%) : ");
        double bunga = y.nextDouble();
       
        double a=x.JmlBunga(uang,bunga);
        System.out.println ("Jumlah uang yang harus dikembalikan adalah : "+a+" Rupiah");
    }
}

Semoga bermanfaat untuk kalian semua,,,, hehehehehe,,,

Untuk program bisa di download di sini : SOURCE CODE

Monday, July 12, 2010

Program Searching Pada Bilangan Acak

Sebelumnya saya coba memebuat program searching menggunakan algoritma binary search dengan data yang sudah terurut. Kali ini saya mencoba menggabungkan algoritma pengurutan Buble Sort dan algoritma Binary search untuk mencari bilangan acak atau belum terurut.

contoh programnya adalah sebagai berikut :

import java.util.Scanner;
import javax.swing.JOptionPane;

public class BinarySearch{
    public static void main (String[] args) {
    Scanner x = new Scanner(System.in);
    System.out.print("Masukan jumlah data : ");
    int jmlData = x.nextInt();
    int[] bil = new int [jmlData];
  
    //memasukkan data
    for (int i=0; i
        System.out.print("Data ke- "+(i+1)+" : ");
        bil[i]=x.nextInt();
    }
  
    //menampilkan data yang diimputkan
    System.out.print ("Data yang dimasukkan adalah :");
    for (int j=0; j
        System.out.print (bil[j]+" ");
    }
  
    //Proses pengurutan
    System.out.println ("");
    System.out.println ("");
    for (int a=0; a
        {
        System.out.println ("Iterasai ke- "+(a+1)+" : ");
        for (int b=bil.length-1; b>0; b--)
            {
            if (bil[b]
                int temp = bil[b];
                    bil[b]=bil[b-1];
                    bil[b-1]=temp;
            }
        }
        for (int c=0; c
            System.out.print (bil[c]+" ");  
        }
        System.out.println (" ");
        System.out.println (" ");
    }
  
    //menampilkan data setelah diurutkan
    System.out.println ("");
    System.out.print ("Data Setelah Diurutkan adalah :");
    for (int a=0; a
        System.out.print (bil[a]+" ");
    }
  
    //proses pencarian  
    System.out.println (" ");
    System.out.println (" ");
    System.out.print ("Angka yang akan dicari : ");
    int angka = x.nextInt();
  
    int kanan = bil.length-1;
    int kiri = 0;
    int tengah = -1;
    boolean ketemu = false;
  
    while (!ketemu && kiri <= kanan){
    tengah = (kiri+kanan)/2;
    if (bil[tengah]==angka){
        ketemu=!ketemu;
    }  
        else{
            if (angka < bil[tengah]){
                kanan = tengah-1;
            }
            else{
                kiri=tengah+1;
            }
        }
    }
  
    if (bil[tengah]==angka){
  
    System.out.println (" ");
    System.out.println ("Data ditemukan pada index ke- "+(tengah+1));  
    }
    else
    System.out.println("data tidak ada");
}
}

Untuk outputnya adalah sebagai berikut :














Untuk programnya bisa di download di sini : SOURCE CODE

Source Code Binary Search Pada Java

Pada kali ini saya akan memberikan coding tentang binary search. Niat saya cuma ingin share aja, jadi saya bukan ahli pemrograman yang bisa membuat program-program yang bagus. hehehe,,,
ini dia source code binary search pada java.

import java.util.Scanner;

public class BinarySearch{
    public static void main (String[] args) {
    Scanner x = new Scanner(System.in);
    System.out.print("Masukan jumlah data : ");
    int jmlData = x.nextInt();
    int[] bil = new int [jmlData];
   
    for (int i=0; i
        System.out.print("Data ke- "+(i+1)+" : ");
        bil[i]=x.nextInt();
    }
   
    System.out.print ("Angka yang akan dicari : ");
    int angka = x.nextInt();
   
    int kanan = bil.length-1;
    int kiri = 0;
    int tengah = -1;
    boolean ketemu = false;
   
    while (!ketemu && kiri <= kanan){
    tengah = (kiri+kanan)/2;
    if (bil[tengah]==angka){
        ketemu=!ketemu;
    }   
        else{
            if (angka < bil[tengah]){
                kanan = tengah-1;
            }
            else{
                kiri=tengah+1;
            }
        }
    }
    System.out.println ("Data ditemukan pada index ke- "+(tengah+1));   
}
}

untuk programnya bisa di download di sini : BINARY SEARCH

Wednesday, July 7, 2010

Asal Patung Soccer Man

Pulau Bali memang terkenal dengan hasil seni dan budayanya. Tidak hanya di Indonesia, melainkan di seluruh dunia. Salah satu hasil seni Pulau dewata yang mampu berbicara di Internasional saat ini adalah patung Soccer man yang menajadi oleh-oleh piala dunia di Afrika Selatan.

Patung Soccer man itu berasal dari desa Tegal Alang, Gianyar. Patung soccer man dibuat oleh Made Sena yang dibantu 35 karyawannya.
Piala dunia memang menjadi berkah bagi Sena karena 4 bulan sebelum piala dunia, dia ditunjuk FIFA untuk membuat 60000 patung yang harus diimport ke Afrika Selatan. Harga patung-patung itu bervariasi tergantung ukuran tinggi patungnya. Ada tiga ukuran yang dijual yakni ukuran tinggi 80 sentimeter (cm) seharga 795 rand (sekitar Rp 954.000) per patung. Lalu ukuran 135 cm seharga R 1.495 atau sekitar Rp 1,74 juta. Kemudian ukuran terbesar adalah 185 cm atau setinggi orang dewasa harganya R 2.495 atau sekitar Rp 2,99 juta per patung.

Patung-patung itu dilukis lengkap dengan seragam tim peserta Piala Dunia. Di bawah patung terdapat bola disertai logo Piala Dunia 2010. Para pembeli tidak perlu bingung bagaimana cara mengangkut patung itu sampai ke pesawat. Sebab, semua patung adalah knock-down atau terdiri dari berbagai potongan, sehingga bisa dilipat untuk dimasukkan dalam kotak kecil.

Timnas Indonesia memang tidak berbicara banyak di Internasional, tetapi soccer man yang di ciptakan oleh Indonesia boleh menjadi kebanggaan tersendiri bagi masyarakat indonesia.