Jumat, 25 November 2011

Contoh Program switch case

Contoh Program switch case

         Kita akan membuat program untuk main suit. Permainan ini terdiri dari dua pemain. Dalam permainan real, biasanya dua pemain mengadu suit dengan saling menunjukkan jari. Hanya 3 jari yang boleh dipakai: jempol, telunjuk, dan kelingking.
Peraturannya : Jempol menang lawan Telunjuk, Telunjuk menang lawan Kelingking, dan Kelingking menang lawan Jempol.
           Dalam program ini, komputer adalah pemain pertama, sedangkan user adalah pemain kedua. Komputer akan menggunakan perintah random() untuk menghitung salah satu dari 3 pilihan. 0 berarti Jempol, 1 berarti Telunjuk, dan 2 berarti Kelingking.
User akan diberikan pertanyaan untuk memasukkan J untuk Jempol, T untuk Telunjuk dan K untuk Kelingking. Kemudian dengan pernyataan switch, J, T, dan K akan diubah menjadi angka 0, 1, dan 2 seperti pada komputer.
           Hasil perhitungan komputer dan hasil input dari user akan dibandingkan, kemudian hasilnya siapa yang menang akan ditampilkan di layar.

=========================================================================
package mainsuit;
 
import java.io.*;
 
public class MainSuit {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
 
        // cetak aturan main dan input dari user
        System.out.println("Permainan suit");
        System.out.println("==============");
        System.out.println("Masukkan salah satu dari 3 kemungkinan :");
        System.out.println("J untuk Jempol");
        System.out.println("T untuk Telunjuk");
        System.out.println("K untuk Kelingking");
        System.out.println(""); // baris kosong
 
        // variabel untuk mengambil input dari user
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String input = null;
 
        // Kita gunakan pernyataan while hingga user betul
        // memasukkan salah satu dari J, T, atau K
        boolean inputvalid = false;
 
        int suitKomputer = 0;
        int suitUser = 0;
 
        // selama input tidak valid, jalankan perulangan ini
        while (!inputvalid) {
            System.out.print("Masukkan suit Anda ");
            try {
                input = br.readLine();
            } catch (IOException ioe) {
                System.out.println("Kesalahan IO, program berhenti");
                System.exit(1);
            }
 
            // pastikan bahwa user memasukkan sesuatu dengan mengecek
            // apakah panjang input > 0
            // jika tidak, maka perulangan akan dilanjutkan
            if (input.length() > 0) {
                switch (input.charAt(0)) {
                    case 'j' :
                    case 'J' :
                        suitUser = 0;
                        inputvalid = true;  // kita ganti inputvalid agar perulangan selesai
                        break;
                    case 't' :
                    case 'T' :
                        suitUser = 1;
                        inputvalid = true;  // kita ganti inputvalid agar perulangan selesai
                        break;
                    case 'k' :
                    case 'K' :
                        suitUser = 2;
                        inputvalid = true;  // kita ganti inputvalid agar perulangan selesai
                        break;
                }
            }
        }
 
        // sekarang menghitung suit komputer
        // Math.random() menghasilkan nilai acak antara 0 dan 1
        // jika kita kali 3, berarti menghasilkan nilai acak antara 0 dan 3
        // perintah (int) untuk mengubah bilangan real menjadi bilangan bulat
        // dengan cara menghilangkan semua digit di belakang koma
        // misalnya 1.0232323 menjadi 1
        suitKomputer = (int)(Math.random()*3);
 
        // suatu saat "mungkin" nilai random bernilai 3
        // karena 3 tidak ada dalam suit kita, maka kita harus ubah menjadi
        // salah satu suit yang valid, yaitu 0, 1, atau 2
        // dalam hal ini kita ganti jadi 2
        if (suitKomputer == 3) {
            suitKomputer = 2;
        }
 
        // menghitung siapa yang menang
        switch (suitKomputer) {
            // jika komputer Jempol
            case 0:
                // cetak suit Komputer
                System.out.println("Suit komputer = Jempol");
                switch (suitUser) {
                    // jika user Jempol
                    case 0:
                        System.out.println("Seri");
                        break;
                    // jika user Telunjuk
                    case 1:
                        System.out.println("Anda kalah");
                        break;
                    // jika user Kelingking
                    case 2:
                        System.out.println("Anda menang");
                        break;
                }
                break; // dari switch(suitKomputer)
            // jika komputer Telunjuk
            case 1:
                // cetak suit Komputer
                System.out.println("Suit komputer = Telunjuk");
                switch (suitUser) {
                    // jika user Jempol
                    case 0:
                        System.out.println("Anda menang");
                        break;
                    // jika user Telunjuk
                    case 1:
                        System.out.println("Seri");
                        break;
                    // jika user Kelingking
                    case 2:
                        System.out.println("Anda kalah");
                        break;
                }
                break; // dari switch(suitKomputer)
            // jika komputer Kelingking
            case 2:
                // cetak suit Komputer
                System.out.println("Suit komputer = Kelingking");
                switch (suitUser) {
                    // jika user Jempol
                    case 0:
                        System.out.println("Anda kalah");
                        break;
                    // jika user Telunjuk
                    case 1:
                        System.out.println("Anda menang");
                        break;
                    // jika user Kelingking
                    case 2:
                        System.out.println("Seri");
                        break;
                }
                break; // dari switch(suitKomputer)
        }
    }
}
 
==============================================================================
 
 
 
Listing program di atas dapat Anda unduh melalui zip file atau pada gudang SVN di alamat  

0 komentar:

Posting Komentar

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by I Gede Putra - Premium Blogger Themes | Bluehost