Selasa, 22 Oktober 2013

Contoh Program switch case

Versi ramah cetakVersi ramah cetak
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)
        }
    }
}
Berikut ini adalah contoh keluaran program
Listing program di atas dapat Anda unduh melalui zip file atau pada gudang SVN di alamathttp://belajarjava.googlecode.com/svn/trunk/MainSuit
SisipanUkuran
MainSuit-src.zip1.95 KB

KOMENTAR

Tanya

Begini mas....
jika program sudah berjalan hingga selesai.. nah bagaimana codenya untuk menanyakan kepada user untuk bermain lg...
ini kan program diatas,
Permainan suit
==============
Masukkan salah satu dari 3 kemungkinan :
J untuk Jempol
T untuk Telunjuk
K untuk Kelingking

Masukkan suit Anda t
Suit komputer = Telunjuk
Seri
setelah menemukan seri, kalah, dan menang,,,,
kita tanyakan ke user "apakah ingin bermain lg"...
tentunyakan balik ke perintah-perintah diatas....
code nya mas.....
heheheeeee...
belum nemu-nemu...
Thanks....

cara menanyakan kepada user apa ingin main lagi

Caranya adalah dengan melakukan pengulangan sebelum program dijalankan, dan memberikan notifikasi untuk bermain lagi atau keluar di akhir code. Berikut code yang sudah gw edit untuk menanyakan apa user ingin main lagi. Catatan: nama package dan nama class ubah sesuai nama package dan class tempat kamu copy paste code ini
package terserah;

import java.io.*;

public class terserah {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        boolean ulang = false;
        while(!ulang){
        // 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() == 1) {
                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)
        }
            //inisialisasi String mainlagi untuk mengecek apakah user ingin main lagi atau tidak
            String mainlagi = null;
            //inisialisasi boolean karakterinput untuk mengulang menanyakan kepada user apakah ingin main lagi
            boolean karakterinput = false;
            //ketika karakter input user bukan Y, y, N, atau n, maka while akan terus diulang
            while(!karakterinput){
                System.out.println("Apakah ingin bermain lagi?\nTekan Y untuk bermain lagi atau N untuk keluar");
                //membaca input user yang dimasukkan ke String mainlagi
                try {
                    mainlagi = br.readLine();
                } catch (IOException ioe) {
                    System.out.println("Kesalahan IO, program berhenti");
                    System.exit(1);
                }
                //verifikasi String mainlagi agar hanya y, Y, n, atau N saja, selain itu perulangan while akan dilakukan lagi
                if (mainlagi.length() == 1) {
                    switch (mainlagi.charAt(0)) {
                    case 'y' :
                    case 'Y' :
                        karakterinput = true;  // untuk keluar dari perulangan while jika karakter y atau Y dimasukkan
                        ulang = false; // untuk mengulang lagi permainan
                        break;
                    case 'n' :
                    case 'N' :
                        karakterinput = true;  // untuk keluar dari perulangan while jika karakter n atau N dimasukkan
                        ulang = true; // untuk keluar dari permainan
                        break;
                    }
                }
            }   
        }
    }
}

Tidak ada komentar:

Posting Komentar