Anda di halaman 1dari 20

LAPORAN PRAKTIKUM MODUL IVB

“Class, Object, Elemen dalam Class Pada Java”

MATA KULIAH PRAKTIKUM PEMROGRAMAN BERORIENTASI OBYEK KELAS B

Oleh:

I Made Wardana (1608561029)

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS UDAYANA

2018
BAB I

LANDASAN TEORI

1.1 Class
Class merupakan suatu blueprint atau cetakan untuk menciptakan
suatu instant dari object. Class juga merupakan grup suatu object dengan
kemiripan attributes/properties, behaviour dan relasi ke object lain. Contoh
sintaknya:

[modifier1] class NamaKamar [modifier2]{

Class body;

1.2 Method
Method merupakan suatu operasi berupa fungsi-fungsi yang dapat
dikerjakan oleh suatu object. Method didefinisikan pada class akan tetapi
dipanggil melalui object. Metode menentukan perilaku objek, yakni apa
yang terjadi ketika objek itu dibuat serta berbagai operasi yang dapat
dilakukan objek sepanjang hidupnya. Ada 4 (Empat) bagian dasar yang
dimiliki metode antara lain Nama metode, Tipe Objek atau tipe primitive
yang dikembalikan metode, Daftar parameter, dan Badan atau isi metode.
Tiga bagian pertama mengindikasikan informasi penting tentang
metode itu sendiri. Dengan kata lain, nama metode tersebut=metode lain
dalam program. Dalam java kita dapat memiliki metode-metode berbeda
yang memiliki nama sama tetapi berbeda tipe kembalian atau daftar
argumennya, sehingga bagian-bagian definisi metode ini menjadi penting.
Ini disebut overloading metode(proses yang berlebihan pada suatu metode).
Untuk menjalankan program yang memiliki sifat polymorphism
tersebut, diperlukan suatu kemampuan overloading, yaitu suatu kemampuan
untuk menentukan fungsi yang mana yang harus digunakan atau dijalankan
jika terdapat nama fungsi yang sama. Polimorfisme bisa diartikan seperti
kemampuan suatu variable untuk mengubah perangai sesuai dengan objek
hasil instansiasi yang digunakan. Polimorfisme membiarkan lebih dari 1
objek dari sub class sub class dan diperlakukan sebagai objek dari super
class tunggal.

Contoh:
Mahasiswa cowok = new anakSI();

cowok.methodKU( Bernaz );

Mahasiswa cewek = new anakTI();

cewek.mothodKU( Amelia );

1.3 Constructor
Construktor adalah Constructor merupakan suatu method yang akan
memberikan nilai awal pada saat suatu objek dibuat. Pada saat program
dijalankan, constructor akan bekerja dengan constructor, hal mendasar yang
perlu diperhatikan, yaitu :

1. Nama Constructor sama dengan nama Class.


2. Tidak ada return type yang diberikan kedalam Constructor Signature.
3. Tidak ada return stetement, didalam tubuh constructor.

1.4 Modifier
Modifier adalah kata, frasa, atau klausa yang berfungsi sebagai
adjective atau adverb yang menerangkan kata atau kelompok kata lain.
Sebagai adjective dan adverb ketika berfungsi sebagai adjective (dapat
berupa simple adjective, adjective phrase, clause participle, infinitive),
modifier menerangkan noun, sedangkan ketika berfungsi sebagai adverb
(dapat berupa simple adverb, adverb phrase, clause, preposition phrase,
infinitive), kata ini menerangkan verb, adjective atau adverb lain.

1.5 Object
Object adalah instance dari class. Jika class secara umum
merepresentasikan (template) sebuah object, sebuah instance adalah
representasi nyata dari class itu sendiri. Contoh : Dari class Fruit kita dapat
membuat object Mangga, Pisang, Apel dan lainlain.Untuk membuat object,

3
kita menggunakan perintah new dengan sebuah nama class yang akan dibuat
sebagai instance dari class tersebut.

String str = new String();


Random r = new Random();
Pegawai p2 = new PEgawai();
Date hari = new Date();

Dengan hari adalah object reference dari class Date yang akan
digunakan untuk mengakses class Date. Sedangkan operator new adalah
operator yang akan menghasilkan hari sebagai reference ke instance dari
class Date().

4
BAB II

PERMASALAHAN

2.1 Latihan 3

Buatlah program yang mengimplementasikan/mentransformasikan


UML class diagram berikut ini ke dalam class Truk.

Truk
- muatan : double
- muatanmaks : double
+ Truk(beratmaks : double)
+ getMuatan() : double
+ getMuatanMaks() : double
+ tambahMuatan(berat : double)
Lalu tulislah listing program berikut ini sebagai pengetesan, lalu
jalankan dan perlihatkan hasilnya.

public class TesLatihan3 {


public static void main(String args[]) {
Truk truk=new Truk(1000);
System.out.println("Muatan maksimal : " + truk.getMuatanMaks());
truk.tambahMuatan(500.0);
System.out.println("Tambah muatan : 500");
truk.tambahMuatan(350.0);
System.out.println("Tambah muatan : 350");
truk.tambahMuatan(100.0);
System.out.println("Tambah muatan : 100");
truk.tambahMuatan(150.0);
System.out.println("Tambah muatan : 150");
System.out.println("Muatan sekarang = " + truk.getMuatan());
}
}

2.2 Tugas 2

Buatlah program yang mengimplementasikan/mentransformasikan


UML class diagram berikut ini ke dalam class Truk.

5
Truk
- muatan : double
- muatanmaks : double
+ Truk(beratmaks : double)
+ getMuatan() : double
+ getMuatanMaks() : double
+ tambahMuatan(berat : double)
Keterangan : 1 kilogram = 9,8 newtons

Lalu tulislah listing program berikut ini sebagai pengetesan, lalu


jalankan dan perlihatkan hasilnya.

public class TesTugas2 {


public static void main(String args[]) {
Truk truk = new Truk(900);
boolean status;
System.out.println("Muatan maksimal : " + truk.getMuatanMaks());
status = truk.tambahMuatan(500.0);
System.out.print("Tambah muatan : 500");
if (status)
System.out.println(" ok");
else
System.out.println(" gagal");
status = truk.tambahMuatan(300.0);
System.out.print("Tambah muatan : 300");
if (status)
System.out.println(" ok");
else
System.out.println(" gagal");
}
}

2.3 Tugas Tambahan

Buatlah sebuah program permainan dadu, di mana terdapat ketentuan


seperti berikut ini.

 Permainan berjenis multiplayer game, dimana terdapat dua pemain.


 Permainan diawali dengan memasukkan jumlah putaran permainan yang
diinginkan.
 Kemudian permainan berlanjut dengan kedua pemain tersebut (dimisalkan
pemain dan lawan–keduanya user) bergiliran melempar dadu. Angka yang
keluar ditentukan dari hasil pemanggilan fungsi random angka 1 sampai 6.

6
 Jumlah kemenangan dari pemain dan lawan serta jumlah seri dalam permainan
akan diakumulasikan dan ditampilkan pada akhir permainan. Pemenangnya
adalah pemain yang memiliki total kemenangan terbanyak.

Berikut ini contoh tampilan permainan tersebut.

7
BAB III

PEMBAHASAN

3.1 Latihan 3

Berikut ini source code dan tampilan program yang


mengimplementasikan atau mentransformasikan UML class diagram pada
soal ke dalam class Truk.

public class Truk {


double muatan = 0.0;
double muatanmax = 0.0;

public Truk(double muatanmax){


this.muatanmax = muatanmax;
}

public double getMuatan(){


return muatan;
}
public double getMuatanMaks(){
return muatanmax;
}
public String tambahMuatan(double berat){

if ((muatan + berat) > muatanmax) {


System.out.println("Maaf, muatan melebihi kapasitas maksimal.");
return "";
}
else {
muatan = muatan + berat;
return "";
}
}
}

8
Berikut ini tampilan listing program yang berguna sebagai
pengetesan, beserta hasilnya saat dijalankan.

9
Pada program ini, pertama-tama melakukan inisialisasi nilai variabel
muatan dan muatanmax menjadi 0. Kemudian melakukan pembuatan objek
baru bernama “truk” dari class Truk dengan angka 1000 sebagai nilai
variabel muatanmax, dan mencetaknya dengan bantuan method
getMuatanMaks. Selanjutnya pada saat melakukan penambahan muatan
sebanyak 500, program memanggil method tambahMuatan yang terdapat
dalam object truk disertai parameter nilai muatan yang ingin ditambah, yaitu
500. Dalam method tersebut, dilakukan pengecekan terlebih dahulu apakah
muatan saat ini ditambah muatan yang akan dimasukkan akan lebih besar
daripada muatan maksimal. Jika ya, program akan mencetak pesan
kesalahan dan muatan tidak jadi ditambah. Namun jika tidak, muatan saat
ini akan ditambahkan nilai tadi. Begitu pula saat melakukan penambahan
muatan lainnya.
Pada akhirnya progam akan menampilkan total muatan saat ini
setelah dilakukan operasi-operasi penambahan sebelumnya dengan

10
memanggil method getMuatan. Program akan dianggap benar apabila nilai
muatan akhir lebih kecil atau sama dengan nilai muatan maksimal, dalam
hal ini bernilai 1000.

3.2 Tugas 2

Berikut ini source code dan tampilan program yang


mengimplementasikan atau mentransformasikan UML class diagram pada
soal ke dalam class Truk2.

public class Truk2{


private double muatan = 0.0;
private double muatanmaks = 0.0;
public Truk2 (double beratmaks){
this.muatanmaks = beratmaks;
}
public double getMuatan(){
return muatan;
}
public double getMuatanMaks(){
return muatanmaks;
}
public boolean tambahMuatan(double berat){
berat = kiloToNewts(berat);
double muatanLocal = getMuatan();
if((muatanLocal + berat) > kiloToNewts(getMuatanMaks())){
return false;
}
else{
muatan = muatan + berat;
return true;
}
}
public double newtsToKilo(double berat){
berat = berat / 9.8;
return berat;
}
public double kiloToNewts(double berat){
berat = berat * 9.8;
return berat;
}
}

11
Berikut ini tampilan listing program yang berguna sebagai
pengetesan, beserta hasilnya saat dijalankan.

12
Pada program ini, pertama-tama melakukan inisialisasi nilai variabel
muatan dan muatanmax menjadi 0. Kemudian melakukan pembuatan objek
baru bernama “truk” dari class Truk2 dengan angka 900 sebagai nilai
variabel muatanmax, dan mencetaknya dengan bantuan method
getMuatanMaks. Selanjutnya pada saat melakukan penambahan muatan
sebanyak 500, program memanggil method tambahMuatan yang terdapat
dalam object truk disertai parameter nilai muatan yang ingin ditambah, yaitu
500. Perbedaan dengan soal sebelumnya adalah bahwa method ini berjenis
boolean, bukan String seperti sebelumnya, karena hasilnya akan digunakan
dalam percabangan status. Dalam method tersebut, dilakukan pengecekan
terlebih dahulu apakah muatan saat ini ditambah muatan yang akan
dimasukkan akan lebih besar daripada muatan maksimal (yang telah
dikonversi ke Newton). Jika ya, program akan melakukan return false.
Namun jika tidak, muatan saat ini akan ditambahkan nilai tadi dan
melakukan return true. Kemudian diikuti dengan pengecekan status, untuk
memilih bilamana akan mencetak “ok” jika muatan berhasil ditambahkan
atau mencetak “gagal” jika muatan tidak jadi ditambahkan. Begitu pula saat
melakukan penambahan muatan lainnya.

13
Pada akhirnya progam akan menampilkan total muatan saat ini
setelah dilakukan operasi-operasi penambahan sebelumnya dengan
memanggil method getMuatan yang digunakan sebagai parameter method
konversi Newton ke kilogram. Program akan dianggap benar apabila nilai
muatan akhir lebih kecil atau sama dengan nilai muatan maksimal, dalam
hal ini bernilai 900.

3.3 Tugas Tambahan: Permainan Dadu

Berikut ini source code dan tampilan program yang


mengimplementasikan permainan dadu, beserta hasilnya saat dijalankan.

import java.util.Random;
import java.util.Scanner;

public class Dadu


{
int gamePemain, gameLawan, gameSeri;
public int random()
{
Random acak = new Random();
int dadu = acak.nextInt(6)+1;
return dadu;
}
public void setPemain()
{
this.gamePemain++;
}
public void setLawan()
{
this.gameLawan++;
}
public void setSeri()
{
this.gameSeri++;
}
public int getPemain()
{
return gamePemain;
}
public int getLawan()
{
return gameLawan;
}
public int getSeri()
{
return gameSeri;
}
public void garis(){
System.out.println("____________________________________");
}
public static void main(String[] args)

14
{
Scanner input = new Scanner (System.in);
Dadu dadu = new Dadu();
char pil;
int dadu1 = 0, dadu2 = 0;
System.out.print("Masukan jumlah putaran permainan : ");
int putaran = Integer.parseInt(input.nextLine());
dadu.garis();
for(int m=0; m<putaran; m++){
System.out.println("Putaran ke-" + (m+1));
System.out.println("Giliran pemain 1");
System.out.print("Lempar dadu sekarang? (Y/N) : ");
pil = input.nextLine().charAt(0);

if(pil == 'y' || pil =='Y')


{
dadu1 = dadu.random();
System.out.println("Dadu pemain 1 : "+dadu1);
dadu.garis();
}
else
{
System.out.println("Pemain 2 menang secara aklamasi!");
break;
}
System.out.println("Giliran pemain 2");
System.out.print("Lempar dadu sekarang? (Y/N) : ");
pil = input.nextLine().charAt(0);
if(pil == 'y' || pil =='Y')
{
dadu2 = dadu.random();
System.out.println("Dadu pemain 2 : "+dadu2);
dadu.garis();
}
else
{
System.out.println("Pemain 1 menang secara aklamasi!");
break;
}
if(dadu1>dadu2)
{
dadu.setPemain();
}
if(dadu1<dadu2)
{
dadu.setLawan();
}
if(dadu1==dadu2)
{
dadu.setSeri();
}
}
System.out.println("Hasil :");
System.out.println("Jumlah menang pemain 1 : "+dadu.getPemain());
System.out.println("Jumlah menang pemain 2 : "+dadu.getLawan());
System.out.println("Jumlah seri : "+dadu.getSeri());
dadu.hasilAkhir();
}
public void hasilAkhir()

15
{
if(gamePemain > gameLawan)
System.out.println("Pemain 1 menang!");
if(gamePemain < gameLawan)
System.out.println("Pemain 2 menang!");
if(gamePemain == gameLawan)
System.out.println("Draw!");
else
System.out.println("");
}
}

Program ini mengimplementasikan penggunaan class dan method


dalam pemrograman berorientasi objek ke dalam suatu kasus, yang mana
dalam hal ini kasus program permainan dadu di mana maksimal 2 user dapat
ikut bermain sebagai pemain 1 dan pemain 2.

16
Contoh kasus permainan 2 putaran dengan hasil pemain 2 menang

Dalam program ini, pertama memasukkan inputan integer jumlah


putaran permainan yang diinginkan. Lalu, program masuk ke dalam
perulangan putaran permainan sesuai yang dimasukkan, kemudian berlanjut
dengan menampilkan putaran permainan saat ini, giliran pemain saat ini,
dan meminta pemain pertama untuk menentukan apakah ingin melanjutkan
melempar dadu atau tidak. Jika masukan nilai diterima, program akan
menampilkan hasil pelemparan dadu yang memanfaatkan fungsi random
angka 1 sampai 6. Program berlanjut dengan menampilkan giliran pemain
selanjutnya (pemain kedua), dan meminta pemain kedua untuk menentukan
apakah ingin melanjutkan melempar dadu atau tidak. Jika masukan nilai
diterima, program akan menampilkan hasil pelemparan dadu. Karena kedua
pemain telah menyelesaikan putaran pertama, maka program akan
melakukan operasi perbandingan nilai dadu pemain manakah yang terbesar,
untuk kemudian dilakukan perhitungan skor sementara dengan
memanfaatkan method setPemain (untuk melakukan increment jumlah

17
kemenangan pemain 1), setLawan (untuk melakukan increment jumlah
kemenangan pemain 2), setSeri (untuk melakukan increment jumlah seri).
Jumlah kemenangan pemain 1 ditampung pada variabel getPemain, jumlah
kemenangan pemain 2 ditampung pada variabel getLawan, sedangkan
jumlah seri ditampung pada variabel getSeri. Kemudian putaran permainan
akan bertambah secara otomatis, kemudian proses di atas pun diulang
kembali sampai putaran terakhir.

Contoh kasus permainan 3 putaran dengan hasil seri (draw)

18
Contoh kasus permainan 3 putaran dengan hasil pemain 1 menang secara
aklamasi.

Begitu pula seterusnya sampai perulangan putaran permainan berakhir,


kemudian program akan menampilkan hasil akhir permainan yang terdiri dari
jumlah kemenangan pemain pertama, jumlah kemenangan pemain kedua, jumlah
seri, dan pernyataan pemain siapakah yang menang atau hanya draw. Proses
tersebut dilakukan dengan memanggil method hasilAkhir.
Yang menarik adalah ketika program menanyakan keputusan lempar dadu,
pemain memasukkan N atau n, maka pemain tersebut dianggap mengundurkan
diri dari permainan dan pemenang diberikan kepada lawan mainnya secara
aklamasi.

19
BAB IV

PENUTUP

1.1 Kesimpulan

Berdasarkan permasalahan yang telah dibahas, dapat disimpulkan sebagai


berikut.

Seperti bahasa pemrograman berorientasi objek pada umumnya, dalam


bahasa pemrograman Java juga memiliki konsep class, method, dan object.

Pada konsep pemrograman yang berorientasi pada objek, atribut-atribut


pada kelas dapat diturunkan pada objek sehingga kode-kode dapat digunakan
kembali pada sebuah objek yang memiliki kelas yang sama. Penggunaan method
atau fungsi membantu mengefisienkan pembuatan kode. Method pada
pemrograman Java terdapat dua buah, yakni void, dan non-void. Metode
menentukan perilaku objek, yakni apa yang terjadi ketika objek itu dibuat serta
berbagai operasi yang dapat dilakukan objek sepanjang hidupnya

1.2 Saran

Kepada pembaca disarankan untuk lebih banyak mencari referensi yang


berkaitan dengan bahasa pemrograman Java.

20

Anda mungkin juga menyukai