Permainan Remi Sederhana

dokumen-dokumen yang mirip
Praktikum tentang Collection Permainan Remi

B.1 Mengurutkan Objek String Terdapat array dengan tipe String, untuk mengurutkan data String pada array gunakan Arrays.sort().

MATCH GAME. Yuliana Setiowati Politeknik Elektronika Negeri Surabaya D4 PENS-ITS

MODUL III ARRAYLIST TUGAS PENDAHULUAN

Gambar 1. Single Linked List

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

Politeknik Elektronika Negeri Surabaya

Metode Binnary Searching di Java Console

Belajar ArrayList di Java

Operator, Statement kondisional, dan Iterasi pada Java

Gambar 1. Langkah-langkah pengurutan metode Insertion Sort (1)

KENDALI PROSES. Untuk mengatur arus program, pemrograman java menyediakan struktur perulangan (looping), kondisional, percabangan, dan lompatan.

Pemrograman Berorientasi. Class dan Obyek 2

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

IF PEMROGRAMAN LANJUT PERULANGAN. Oleh : Andri Heryandi, M.T.

B.1 Mengurutkan Obyek String Terdapat array dengan tipe String, untuk mengurutkan data String pada array gunakan Arrays.sort().

B.1 Mengurutkan Objek String Terdapat array dengan tipe String, untuk mengurutkan data String pada array gunakan Arrays.sort().

Percabangan & Perulangan

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

Perulangan / Looping

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

Gambar 1. Single Linked List

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Input Nilai tanpa Case String di Java

Pengenalan OOP. Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program.

Politeknik Elektronika Negeri Surabaya

Chapter 6 Konsep OOD with Java

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Modul Praktikum Bahasa Pemrograman 1

Array Sebagai Parameter Method

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

PEWARISAN D E W I S A R T I K A, M. K O M

Bubble Sort dan Selection Sort di Java Console

A. Judul Percobaan/praktikum Tipe Data, Keyword, Variabel, Operator dan Teknik Konfersi

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

MODUL II STRING TUGAS PENDAHULUAN. 2. String mempunyai beberapa fungsi, sebutkan dan jelaskan ( Minimal 5 )!

C. TUGAS PENDAHULUAN Buatlah resume 1 halaman mengenai Priority Queue dan berikan penjelasannya.!

Praktikum JTable. Gambar 1

Membuat dan Menggunakan Class

Modul Praktikum 3 Pemograman Berorientasi Objek

TUGAS 1: WIN OR LOSE. package kartu; import java.util.random; public class kartu { /** args the command line arguments

Arrays. Misalkan kita ingin menyimpan 100 buah integer Buat 100 variabel bertipe integer. Tidak efisien!

BAB 7 Java Array. Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier yang berbeda untuk tiap variabel.

BAB 4 ARRAY. number1 = 10; number2 = 20; number3 = 30;

Pertemuan 3 Struktur Perulangan pada Java

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

Praktikum Stack. A. Stack Collection di java.util.collection. Percobaan 1. Percobaan 2. import java.util.iterator; import java.util.

Array Multidimensi. Pemrograman Dasar. Java

A. TUJUAN PEMBELAJARAN 1. Memahami konsep dan operasi pada Stack. 2. Mampu mengimplementasikan struktur data Stack pada array dan List.

Percabangan dan Perulangan

BAB 7. Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier berbeda untuk tiap variabel.

PEMROGRAMAN JAVA. Yoannita, S.Kom. Input Kondisi (IF-ELSE, SWITCH)

TIPE DATA Pertemuan (K-03/L-03)

Metode Sequential Searching di Java Console

Gambar 1. Single Linked List

2 TIPE DATA DAN VARIABEL

Array Pendeklarasian Array

Array 1 Dimensi pada Java

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

Tipe data primitif adalah tipe data dasar yang dikenali oleh Java dan bukan merupakan class. Tipe data primitif ini dapat dikenali dengan ciri

PERCOBAAN 1 : Ketik program di bawah ini, bila terjadi kasalahan waktu compile dan runtime, betulkan!

Politeknik Elektronika Negeri Surabaya

Pada akhir pertemuan ini, diharapkan mahasiswa memiliki kemampuan untuk: Menggunakan struktur kendali pencabangan bersyarat dalam bahasa pemrograman.

Modul 3 Flow Control dan Input

Pertemuan 2 Struktur Kontrol Percabangan

Enum. Yuliana Setiowati

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR TIPE-TIPE FUNGSI ATAU METHOD

Anonymous Inner Class

Latihan Ujian Pemrograman Berorientasi Objek. Semester Genap 2016/2017

1. Latar Belakang Didalam pembuatan game java sering kali kita mendefinisikan banyak object seperti gambar, dan grafik geometri yang begitu banyak,

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

BAB VI ARRAY Mendeklarasikan Variabel Array int[ ] bilangan; int bilangan[ ]; Mendefinisikan Array Bilangan = new int[5]; Latihan 21. ArrSatu.

Bahasa Pemrograman :: Dasar Pemrograman Java

Jobsheet 09. Overloading and Overriding Method

I. Tujuan Instruksional Umum Mengenal konsep dasar berorientasi objek Memahami dan dapat mengimplementasikan Kelas dan Objek pada java.

MODUL PRAKTIKUM BERORIENTASI OBJEK NINF615 SEMESTER GASAL 2016/2017 PROGRAM STUDI S1 TEKNIK INFORMATIKA

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

Dasar Pemrograman Java

String. String merupakan tipe data untuk menyimpan nilai berupa teks.

6 Modul Praktikum Pemrograman Berorientasi Objek Common Laboratory 2009/2010

Algoritma dan Pemrograman FUNGSI

A. TUJUAN PEMBELAJARAN 1. Memahami konsep Class LinkedList di Collection 2. Memahami penggunaan method-method pada Class LinkedList.

Objek Data, Variabel, dan Konstanta. Konsep Bahasa Pemrograman Materi 4 Yudianto Sujana, M.Kom

Pemrograman Lanjut. Class, dan Instance Variable. Aryo Pinandito, ST, M.MT Team Teaching Pemrograman Lanjut

Modul Praktikum 4 Pemograman Berorientasi Objek

PRAKTIKUM 8 FILE INPUT OUTPUT

Grouping Object. Viska Mutiawani, M.Sc

String. Berikut perbedaan antara deklarasi char dan deklarasi String:

BAB II VARIABEL DAN TIPE DATA

Pemrograman Berorientasi Obyek. Operator & Assignment

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

Topik. 1. Statement if 2. Statement if..else.. 3. Statement if..else.. If (bertingkat ) 4. Penggunaan Input Keyboard

Penerapan Algoritma Greedy dalam Pembuatan Klasemen Kompetisi

length() dipakai untuk

Penggunaan Netbeans IDE, Hello World, variable dan Operator aritmetika.

Struktur Kontrol Pemrograman Java : PERCABANGAN

Array. Adharul Muttaqin Universitas Brawijaya Malang. Array

Var-arg Cornelius Mellino / Cornelius Koo JavaSchool of Object Technology

subclass class manapun private default protected public package yang sama

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

Transkripsi:

Permainan Remi Sederhana Permainan Remi ini dimainkan oleh n orang dan masing-masing menerima sebanyak m kartu. Nilai n dan m ini diinputkan oleh user. Pada permainan remi terdapat : KartuAcuan Masing-masing pemain diawal permainan mempunyai m kartu. Tumpukan kartu adalah kartu yang tersisa setelah kartu dibagikan ke pemain dan sebuah kartu yang digunakan untuk kartuacuan Setiap pemain harus mengeluarkan kartu yang sejenis dengan kartuacuan, jika tidak mempunyai kartu yang sejenis maka pemain harus mengambil dari tumpukan kartu, sampai menemukan kartu yang sejenis. Selanjutnya ditentukan siapakah pemenangnya. Class-class yang kita gunakan untuk menyelesaikan permasalahan ini adalah: Class Kartu : digunakan untuk membuat objek kartu Terdapat variabel bagianmuka dan jenis, contoh sebuah kartu 8 Waru maka kartu tersebut mempunyai bagianmuka = 8 dan jenis = Waru. Class TumpukanKartu : untuk membuat objek tumpukan kartu. Terdapat variabel kartu2 dengan tipe List. Class Pemain : untuk membuat objek Pemain, berisi variabel nama dan kartu-kartu yang dimiliki oleh pemain (dengan tipe TumpukanKartu). Class PermainanRemi : untuk membuat objek pada saat permainan remi dilakukan. Variabel apa saja yang harus ada? o List pemain2 : untuk menyimpan data pemain. o int jumpemain : untuk menyimpan jumlah pemain. o int jumkartu : untuk menyimpan jumlah kartu yang diterima pemain pada saat awal permainan. o TumpukanKartu kk : untuk sisa kartu setelah kartu dibagikan ke pemain-pemain dan sebuah kartu Acuan. o o Kartu kartuacuan : untuk memyimpan kartuacuan TumpukanKartu win : kartu-kartu yang dikeluarkan oleh pemain, disimpan dalam variabel win, selanjutnya ditentukan siapakah pemenangnya. Fungsi penting yang terdapat pada Class Kartu: public boolean equals(object o) : untuk membandingkan antara Kartu 1 dengan Kartu 2 berdasarkan jenisnya. Jika kartu 1 dan kartu 2 mempunyai jenis yang berbeda maka fungsi akan mengembalikan nilai true, jika tidak sejenis maka mengembalikan nilai false. kartu1 = 8 Hati, kartu2 = king Hati, kartu3 = ace Waru. boolean test = kartu1.equals(kartu2); hasil test = true ; test = kartu1.equals(kartu3); hasil test = false ;

public boolean equals2(object o) : untuk membandingkan antara kartu1 dan kartu2 berdasarkan bagianmuka dan jenisnya. Sehingga kartu1 dan kartu2 dikatakan sesuai jika mempunyai bagianmuka dan jenis yang sama. kartu1 = 8 Hati, kartu2 = 8 Hati, kartu3 = ace Waru. boolean test = kartu1.equals2(kartu2); hasil test = true ; test = kartu1.equals2(kartu3); hasil test = false ; private int derajat(string str) : untuk memberikan derajat pada suatu kartu berdasarkan bagianmuka kartu, misal kartu ace mempunyai derajat yang lebih tinggi dibandingkan kartu king. public int compareto(object o) : Karena Class Kartu mengimplementasikan interface Comparable, maka pada Class Kartu harus mengimplementasikan fungsi compareto(object). Fungsi ini digunakan untuk melakukan pengurutan berdasarkan bagianmuka dari sebuah kartu. Sehingga pada fungsi compareto() ini akan memanggil fungsi derajat() untuk mengkonversi bagianmuka menjadi sebuah nilai integer. Sebuah kartu 8 Hati diberi nilai 8, sedangkan jenisnya diabaikan. (Kartu ini mempunyai bagianmuka = 8 dengan jenis= Hati ). Sedangkan untuk jack, queen, king dan ace diberi nilai 11, 12, 13 dan 14. Kartu sebelum diurutkan Sesudah diurutkan Dari contoh diatas kartu diurutkan berdasarkan bagianmuka kartu sehingga kartu yang mempunyai bagianmuka 2, ditampilkan terlebih dahulu dibandingkan kartu dengan bagianmuka 3 dst. Fungsi penting yang terdapat pada Class TumpukanKartu: public void acakkartu() : untuk mengacak tumpukan kartu. Fungsi penting yang terdapat pada Class PermainanRemi:

public PermainanRemi(int jumpemain, int jumkartu) : konstruktor ini menerima jumlah inputan jumlah pemain dan kartu yang diterima oleh masing-masing pemain. public Kartu ambilsatukartu(tumpukankartu tk) : mengambil satu kartu dari tumpukan kartu dari yang belakang. public Kartu ambilsatukartu(tumpukankartu tk, Kartu k) : mengambil satu kartu dari tumpukan kartu public void bagikartu() : fungsi untuk membagikan kartu ke masing-masing pemain. public int getpemenang() : untuk menentukan pemenang public int mainremi() : fungsi untuk main remi. public int mainremi(){ //bersihkan variable win. //lakukan iterasi pada pemain-pemain. ListIterator it = pemain2.listiterator() ; while(it.hasnext()){ //pemain mengeluarkan sebuah kartu yang sesuai dengan kartuacuan //jika kartu tersebut terdapat pada kartu yang dimiliki oleh pemain, maka tambahkan pada win. //jika pemain tidak mempunyai kartu yang sesuai dengan kartuacuan maka ambil pada tumpukan kartu sampai menemukan kartu yang sesuai dengan kartuacuan, selanjutnya kartu tersebut tambahkan pada win. //tentukan pemenang panggil fungsi pemenang(). import com.kartu; import com.tumpukankartu; import java.util.collections; import java.util.vector; public class TestKu { public static void main(string[] args) { String jenis[] = {"Hati","Waru" ; String urutan[] = {"2","3","4" ; Vector v = new Vector() ; for(int i=0; i<jenis.length ;i++) for(int j=0; j<urutan.length ;j++){ Kartu k = new Kartu(urutan[j],jenis[i]); v.add(k) ; TumpukanKartu kk = new TumpukanKartu(v) ; System.out.println("\nSebelum diacak") ; System.out.println(kk.toString()) ; Collections.shuffle(kk.getTumpukanKartu()) ; System.out.println("\nSesudah diacak") ; System.out.println(kk.toString()) ; Collections.sort(kk.getTumpukanKartu());

System.out.println("\nSesudah diurutkan") ; System.out.println(kk.toString()) ; Kartu k1 = new Kartu("ace","Waru") ; Kartu k2 = new Kartu("ace","Hati"); Kartu k3 = new Kartu("ace","Keriting"); int index = kk.gettumpukankartu().indexof(k1) ; System.out.println("Kartu : " + k1.tostring() + " pada index ke - :" + index) ; System.out.println("Kartu : " + kk.gettumpukankartu().get(index)) ; index = kk.gettumpukankartu().lastindexof(k2); System.out.println("Kartu : " + k2.tostring() + " pada index ke - :" + index) ; System.out.println("Kartu : " + kk.gettumpukankartu().get(index)) ; index = kk.gettumpukankartu().lastindexof(k3); System.out.println("Kartu : " + k3.tostring() + " pada index ke - :" + index) ; Penjelasan Program : Program diatas bertujuan untuk membuat tumpukan kartu dengan 3 jenis bagianmuka ( 2, 3, 4 ) dan 2 jenis kartu ("Hati","Waru"), sehingga tumpukan kartu mempunyai 6 kartu yaitu,,,, dan. Selanjutnya pada tumpukan kartu tersebut lakukan pengacakan, lalu lakukanlah pengurutan. Pengurutan pada tumpukan kartu berdasarkan bagianmuka. Output sebagai berikut : Sebelum diacak Sesudah diacak Sesudah diurutkan

Kartu : ace Waru pada index ke - :0 Kartu : Kartu : ace Hati pada index ke - :5 Kartu : Kartu : ace Keriting pada index ke - :-1 BUILD SUCCESSFUL (total time: 0 seconds) Fungsi indexof() ini akan mengembalikan indeks dari Objek yang pertama kali sesuai dengan Objek yang diinginkan. Objek yang sesuai ini berdasarkan kriteria yang didefinisikan pada fungsi equals(object). Sehingga pada class Kartu definisikan fungsi equals(object) berdasarkan jenis dari kartu. Kartu k1 = new Kartu("ace","Waru") ; int index = kk.gettumpukankartu().indexof(k1) ; Contoh program diatas mengembalikan indek ke 0 karena pada indeks tersebut indeks yang pertama kali sesuai dengan kartu yang dengan jenis Waru. Fungsi lastindexof() ini akan mengembalikan indeks dari Objek yang terakhir kali sesuai dengan Objek yang diinginkan. Objek yang sesuai ini berdasarkan kriteria yang didefinisikan pada fungsi equals(object). Kartu k2 = new Kartu("ace","Hati"); int index = kk.gettumpukankartu().lastindexof(k2) ; Contoh program diatas mengembalikan indek ke 5 karena pada indeks tersebut indeks yang terakhir kali sesuai dengan kartu yang dengan jenis Hati.

Gambar UML