Anda di halaman 1dari 31

Modul 1 Class dan Object

MODUL 1
CLASS DAN OBJECT

A. Tujuan
1. Mahasiswa dapat mendeklarasikan struktur kelas dalam java.
2. Mahasiswa dapat membedakan pemrograman terstruktur dan
berbasis objek tergantung pada cara pandang permasalahan dari
pemrogram.
3. Mahasiswa mengetahui cara deklarasi, instansiasi, inisialisasi, dan
mengakses kelas.
B. Dasar Teori
B.1 Perbedaan Pemrograman Terstruktur dengan Berbasis Objek
Hal yang mendasar jika menggunakan pemrograman berbasis objek
maka dalam melakukan pemecahan suatu masalah tidak melihat bagaimana
cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek
apa yang dapat melakukan pemecahan masalah tersebut. Sedangkan untuk
pemrograman terstruktur, menggunakan prosedur/tata cara yang teratur untuk
mengoperasikan data struktur.
Untuk tata nama, keduanya pun memiliki tatanan yang sama
walaupun memiliki pengertian tersendiri. Pemrograman Berbasis Objek
menggunakan “method” sedangkan Pemrograman Terstruktur menggunakan
“function”. Bila di berbasis obyek sering didengar mengenai “objects” maka
di terstruktur kita mengenalnya dengan ”modules”. Begitu pula halnya
dengan “message” pada berbasis objek dan “argument” pada terstruktur.
“attribute” pada berbasis objek juga memiliki tatanan nama yang sepadan
dengan “variabel” pada pemrograman terstruktur.

B.2 Kelas
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.
Perbedaan sebuah kelas dengan sebuah struktur adalah sebuah kelas dapat

Praktikum Pemrograman Berbasis Object 2023 Modul I - 1


Modul 1 Class dan Object
berdiri sendiri dan dapat digunakan untuk berbagai keperluan kelas-kelas
yang lain, sedangkan sebuah struktur tidak dapat berdiri sendiri. Sebuah kelas
lebih fleksibel untuk digunakan oleh kelas lain tanpa harus membongkar kode
program utama, sedangkan jika digunakan struktur maka kode program harus
dibongkar unuk disalin bagian strukturnya ke kode program utama yang lain.
Sebuah file dapat terdiri dari berbagai kelas, namun biasanya pada
bahasa pemrograman java sebuah file hanya terdiri dari satu kelas yang
disimpan dengan nama kelas, misal file list.java berisi kelas list. Namun jika
kelas yang dibuat misalnya public Class nama_kelas, maka kelas itu harus
disimpan dalam satu file hanya untuk satu kelas. Setelah dilakukan kompilasi
maka pada Java akan ada sebuah file .Class yang berisi bytecode dari setiap
kelas.
Jika sebuah file terdiri dari dua kelas, maka setelah dilakukan
kompilasi akan dihasilkan dua buah file .Class yang nantinya akan dibaca
oleh interpreter Java saat program dieksekusi. Sebuah kelas saat program
dieksekusi dan perintah new dijalankan, maka akan dibuat sebuah objek.
Class adalah template untuk pembuatan objek. Class juga memiliki anggota,
diantaranya : atribut dan method.

Pemahaman singkatnya :

 Class merupakan pola /template yang menggambarkan kumpulan object


yang mempunyai sifat dan perilaku yang sama.

 Class merupakan struktur data dari object (BluePrint dari sebuah ob-
ject), dan proses pembuatan object dari sebuah Class disebut juga den-
gan instantiation.

 Class merupakan definisi data dan fungsi dari suatu hal (benda, konsep,
dll).

 Di dalam Class dideklarasikan variabel dan method yang dimiliki oleh


objek

Praktikum Pemrograman Berbasis Object 2023 Modul I - 2


Modul 1 Class dan Object
Class memiliki beberapa karakteristik, diantaranya : anggota Class
terdiri dari atribut dan method. Tiap-tiap anggota Class memiliki control pen-
gaksesan tersendiri, maksudnya adalah apakah anggota Class tersebut dapat
diakses dengan bebas (dengan tipe public) atau hanya dapat diakses melalui
sebuah interface.

Dalam hal ini, interface adalah device yang digunakan untuk komu-
nikasi antar object berbeda yang tidak memiliki hubungan apapun. Interface
bisa dikatakan sebagai protokol komunikasi antar object tersebut.

B.3 Objek
Objek merupakan instance dari Class. Jika Class secara umum
merepresentasikan (template) sebuah object, sebuah instance adalah
representasi nyata dari Class itu sendiri. Object merupakan sesuatu yang
memiliki identitas (nama), pada umumnya juga memiliki data tentang dirinya
maupun object lain dan mempunyai kemampuan untuk melakukan sesuatu
dan bisa bekerja sama dengan objek lainnya. Pada dasarnya semua benda
yang ada di dunia dapat dianggap sebagai sebuah object. Rumah, mobil,
sepeda motor, meja, dan komputer merupakan contoh-contoh object yang ada
di dunia nyata. Object adalah implementasi dari Class. Secara sederhananya,
dapat dikatakan terdiri dari properti (atribut) dan method.

Pemahaman singkatnya :
 Objek merupakan sebuah objek khusus yang digunakan untuk
mengakses anggota objek (atribut atau method) dari dalam objek itu
sendiri.
 Apabila terdapat variabel lain yang memiliki nama yang sama dengan
nama atribut di dalam objek, “this” dapat digunakan untuk merujuk ke
atribut objek.
Setiap object memiliki dua karakteristik yang utama, yaitu atribut dan
behavior. Atribut merupakan status object dan behavior merupakan tingkah
laku dari object tersebut. Contoh sederhana adalah sepeda. Object sepeda
memiliki atribut : pedal, roda, dan gigi, kecepatan serta memiliki tingkah laku

Praktikum Pemrograman Berbasis Object 2023 Modul I - 3


Modul 1 Class dan Object
seperti pacu dan rem. Sama seperti penggambaran di dunia nyata,
pengembangan program dengan konsep PBO juga menggunakan model
object yang akan menyimpan atributnya dalam variabel dan tingkah lakunya
dalam method atau fungsi-fungsi/prosedur.
Contoh objek : Sepeda
 Sepeda memiliki atribut (state) : pedal, roda, jeruji, dan warna.
 Sepeda memiliki tingkah laku (behaviour) : kecepatannya menaik,
kecepatannya menurun, dan perpindahan gigi sepeda.
Dalam pengembangan perangkat lunak berorientasi objek, objek
dalam perangkat lunak akan menyimpan state-nya dalam variabel dan
menyimpan informasi tingkah laku (behaviour) dalam method-method atau
fungsi-fungsi/prosedur.
Untuk membuat sebuah objek atau sebuah instance pada sebuah Class.
Digunakan operator new. Sebagai contoh, jika ingin membuat instance dari
Class string, digunakan code berikut :

String str = new String();


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

B.3.1 Cara Menggunakan Objek


Setelah kita membuat object tentu kita ingin menggunakannya
dengan mengakses nilai, mengubahnya, atau menjalankan aksi yang
dapat dilakukan object tersebut. Disini kita akan mengakses,mengubah
dan menjalankan aksi dari salah satu object “Karyawan” yang telah kita
buat seperti berikut:
Karyawan driona = new Karyawan("001", "Driona", 23,
"supervisor");

System.out.println(driona.getJabatan());//mengakses jabatan
object menggunakan fungsi
// jabatan driona adalah "supervisor"

driona.setJabatan("manager"); // mengubah jabatan object

Praktikum Pemrograman Berbasis Object 2023 Modul I - 4


Modul 1 Class dan Object
menggunakan fungsi
// sekarang jabatan driona adalah "manager" di kantor
cabang perusahaan

driona.kenalan();//memanggil aksi perkenalan yang misalnya


akan dilakukan di kantor cabang

Dari contoh tersebut bisa kita ketahui kita perlu menggunakan


referesi object (driona) dan diikuti dengan tanda titik (.) untuk mengakses
method-nya. Sebenarnya kita juga kita bisa mengakses field dari sebuah
class yang umumnya class tersebut adalah static class untuk yang kita
bahas disini adalah class dinamis.

B.3.2 Bagaimana cara mendeklarasikan objek


Seperti yang telah dibahas sebelumnya setiap class di java adalah
turunan dari Object Class. Tapi tidak semua class diturunkan secara
langsung dari object class. Jika class yang dibuat tidak menggunakan
keyword extends berarti class tersebut secara langsung turunan dari
object class jika menggunakan extends berarti turunan dari class lainnya,
Tapi tetap saja class yang diatasnya tersebut alah turunan dari object
class secara tidak langsung. Umumnya deklarasi class contohnya seperti
berikut:
public class Orang {
// field
private String id;
private String nama;
private int umur;

//Constructor
public Orang(String id, String nama, int umur) {
this.id = id;
this.nama = nama;
this.umur = umur;
}

// deklarasi method
public String getId() {

Praktikum Pemrograman Berbasis Object 2023 Modul I - 5


Modul 1 Class dan Object
return id;
}

public void setId(String id) {


this.id = id;
}

public String getNama() {


return nama;
}

public void setNama(String nama) {


this.nama = nama;
}

public int getUmur() {


return umur;
}

public void setUmur(int umur) {


this.umur = umur;
}

public void kenalan(){


System.out.println("Halo nama saya "+ this.nama);
}
}

Disini kita membuat sebuah class “Orang” untuk mewakili orang


yang secara langsung merupakan turunan dari object class. Class tersebut
terdiri dari field yang menyediakan keadaan object, Contructor dengan
argumen untuk inisialisasi object, dan beberapa method yang
mengimplementasikan perilaku/fungsi object tersebut.
Pada class kita bisa memiliki lebih dari satu Constructor dengan
jumlah atau tipe data argumen berbeda, sama halnya dengan method
overloading, tapi kalau Constructor nama fungsinya harus sama dengan
nama Class-nya.

Praktikum Pemrograman Berbasis Object 2023 Modul I - 6


Modul 1 Class dan Object

B.3.3 Cara Menginstansiasi Objek


Di java object dibuat pada saat runtime atau saat program
dijalankan dengan mengalokasi memori dari template atau cetakan
(Object class) entah itu String Integer atau dari Object class kita sendiri.
Umumnya untuk membuat object kita menggunakan operator atau
keyword new. operator new menginstansiasi class dengan mengalokasi
memori untuk objek baru dan mengembalikan referensi ke memori
tersebut. referensi ini biasanya di tujukan ke variabel yang sesuai dengan
tipe objek yang dibuat. Contohnya:

Object object = new Object();

Disini kita menginisialsisai object dengan mereferesikan alokasi


memori dari template class Object atau simpelnya memberikan nilai
default ke variabel tersebut. Contoh diatas jika kita tidak tau object apa
yang akan di tujukan kepada variabel object tersebut. biasanya di
gunakan untuk mendapatkan nilai dari fungsi yang berasal dari generic
class atau generic method dalam class tersebut.

B.4 Method atau Fungsi


Method menentukan perilaku objek, yakni apa yang terjadi ketika
objek itu dibuat serta berbagai operasi yang dapat dilakukan objek sepanjang
hidupnya.
Metode memiliki 4 (empat) bagian dasar :
1. Nama metode
2. Tipe Objek atau tipe primitive yang dikembalikan metode.
3. Daftar parameter.
4. 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

Praktikum Pemrograman Berbasis Object 2023 Modul I - 7


Modul 1 Class dan Object
sama tetapi berbeda tipe kembalian atau daftar argumennya, sehingga bagian-
bagian definisi metode ini menjadi penting. Ini disebut overloading 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 );

B.5 Attribute Kelas


Atribut adalah sesuatu yang individual untuk membedakan satu object
dari yang lainnya, dan menentukan pemunculan/penyajian, keadaan, atau
kualitas dari object tersebut. Kembali untuk kelas Sepeda Motor, atributnya
mungkin meliputi:
 Warna: merah, hitam, hijau, putih, dst
 Tipe: penjelajah (cruiser), balap (sport bike), standar, dst
 Pabrikan: Honda, BMW, Suzuki, dst.
Atribut dari object dapat pula mencakup informasi keadaannya; Pada contoh
Sepeda Motor, dapat dibuat atribut untuk fitur kondisi mesin (hidup atau
mati), atau posisi gear yang terpilih. Atribut didefinisikan dengan variabel;
Hal ini dapat dianalogikan sebagai variabel global untuk object yang dibuat.
Setiap instance dari sebuah Class dapat memiliki nilai yang berbeda untuk
variabelnya yang disebut variabel instan (instance variable).
Sebuah atribut yang dinyatakan sebagai public dapat diakses secara
langsung oleh kelas lain di luar kelas yang membungkusnya. Sebuah atribut

Praktikum Pemrograman Berbasis Object 2023 Modul I - 8


Modul 1 Class dan Object
yang dinyatakan sebagai protected tidak dapat diakses secara langsung oleh
kelas lain di luar kelas yang membungkusnya, kecuali kelas yang
mengaksesnya adalah kelas turunan dari kelas yang membungkusnya. Atribut
juga biasa disebut state/properties/field merupakan bagian yang dimiliki oleh
sebuah Class yang tidak melakukan operasi, tetapi kepadanya dilakukan
operasi sehingga dapat merubah nilai dari attribute tersebut.
C. Permasalahan
1. Buatlah program hitung bangun ruang dengan 2 package yang terdiri dari
package perhitungan dan package utama.
2. Buatlah program penjualan dengan dua kelas yang terdiri dari kelas pen-
jualan dan kelas utama.

Praktikum Pemrograman Berbasis Object 2023 Modul I - 9


Modul 1 Class dan Object
D. Data Hasil
D.1 Program Hitung Bangun Ruang
1. Flowchart

Praktikum Pemrograman Berbasis Object 2023 Modul I - 10


Modul 1 Class dan Object
2. Script Program
package Srudikasus1;

public class BangunRuang{

double volumeKubus(double s){


double hasil = s * s * s;
return hasil;
}
double luasKubus(double s){
double hasil = 6 * s * s;
return hasil;
}
double volumeBalok(double p, double l, double t){
double hasil = p * l * t;
return hasil;
}
double luasBalok(double p, double l, double t){
double hasil = 2 * (p * l + p * t + l * t);
return hasil;
}
double volumeTabung(double r, double t){
final double PHI = 3.14;
double hasil = PHI * r * r * t;
return hasil;
}
double luasTabung(double r, double t){
final double PHI = 3.14;
double hasil = 2 * PHI * r * (r + t);
return hasil;
}
double volumeKerucut(double r, double t){
final double PHI = 3.14;
double hasil = 1 / 3 * PHI * r * r * t;
return hasil;
}
double luasKerucut(double r, double s){
final double PHI = 3.14;
double hasil = PHI * r * (r + s);

Praktikum Pemrograman Berbasis Object 2023 Modul I - 11


Modul 1 Class dan Object
return hasil;
}
double volumeBola(double r){
final double PHI = 3.14;
double hasil = 4 / 3 * PHI * r * r * r;
return hasil;
}
double luasBola(double r, double t){
final double PHI = 3.14;
double hasil = 4 * PHI * r * r;
return hasil;
}
}
package Srudikasus1;

import Srudikasus1.BangunRuang;

public class StudyCase1 {


public static void main(String args[]) {
BangunRuang bola = new BangunRuang();
double volume = bola.volumeBola(8);
double luasPermukaan = bola.luasBola(8, 14);
System.out.println("Volume bola dengan r = 8
adalah " + volume);
System.out.println("Luas permukaan bola dengan r
= 8 dan t = 12 adalah " + luasPermukaan);

BangunRuang kubus = new BangunRuang();


volume = kubus.volumeKubus(8);
luasPermukaan = kubus.luasKubus(8);

System.out.println("Volume kubus dengan s = 8


adalah " + volume);
System.out.println("Luas permukaan kubus dengan s
= 8 adalah " + luasPermukaan);

BangunRuang balok = new BangunRuang();


volume = balok.volumeBalok(12, 8, 2);
luasPermukaan = balok.luasBalok(12, 8, 2);

Praktikum Pemrograman Berbasis Object 2023 Modul I - 12


Modul 1 Class dan Object

System.out.println("Volume balok dengan p = 12 l


= 8 dan t = 2 adalah " + volume);
System.out.println("Luas permukaan balok dengan p
= 12 l = 8 dan t = 2 adalah " + luasPermukaan);

BangunRuang tabung = new BangunRuang();


volume = tabung.volumeTabung(8, 4);
luasPermukaan = tabung.luasTabung(8, 4);

System.out.println("Volume tabung dengan r = 8


dan t = 4 adalah " + volume);
System.out.println("Luas permukaan tabung dengan
r = 8 dan t = 4 adalah " + luasPermukaan);

BangunRuang kerucut = new BangunRuang();


volume = kerucut.volumeKerucut(8, 4);
luasPermukaan = kerucut.luasKerucut(8, 4);
System.out.println("Volume kerucut dengan r = 8
dan t = 4 adalah " + volume);
System.out.println("Luas permukaan kerucut dengan
r = 8 dan s = 4 adalah " + luasPermukaan);
}
}

Praktikum Pemrograman Berbasis Object 2023 Modul I - 13


Modul 1 Class dan Object
3. Hasil Runing

Praktikum Pemrograman Berbasis Object 2023 Modul I - 14


Modul 1 Class dan Object
D.2 Program Penjualan
1. Flowchart

Praktikum Pemrograman Berbasis Object 2023 Modul I - 15


Modul 1 Class dan Object
2. Script Program
package p1;
import java.util.Scanner;
class jual {
Scanner in = new Scanner(System.in);
String[]namaBarang={"kacang batu","tongkol","paus"};
double[] harga = {5000,10000,70000};
int jumlahBarang = namaBarang.length;int beli;int
banyak; double total; int konfir;

void terimakasih(){
System.out.println("\nTERIMAKASIHTELAH BERKUNJUNG");
System.out.println("DI TOKO KAMI");
}

void listMenu(){
System.out.println("\n\nList Barang\t\tHarga");
for (int i = 0; i < jumlahBarang; i++) {
System.out.println((i+1)+". "+namaBarang[i]+"\t\
t"+"Rp."+harga[i]);
}
}

void pilih(){
System.out.println("\nBeli : ");
beli = in.nextInt()-1; if (beli < jumlahBarang)
{
System.out.println("jumlah : ");
banyak = in.nextInt();
}
else {
System.out.println("Barang Tidak Tersedia");
pilih();
}
}

void konfir()
{
total = harga[beli]*banyak;

Praktikum Pemrograman Berbasis Object 2023 Modul I - 16


Modul 1 Class dan Object
System.out.println("\nAnda Akan Membeli :");
System.out.println(namaBarang[beli] + " X
"+banyak+"\t = Rp."+total);
System.out.println("Apakah anda yakin? ");
System.out.println("1. ya");
System.out.println("2. tidak");
System.out.println("pilih : ");
konfir = in.nextInt();
switch(konfir)
{
case 1 -> {
System.out.println("\nAnda telah membeli : ");
System.out.println(namaBarang[beli] + "X"+banyak);
System.out.println("total pembelian : Rp."+total);
terimakasih();
}
case 2 -> terimakasih();
default -> {
System.out.println("\nPILIHAN ANDA SALAH");
konfir();
}
}
}
}

public class sell {


public static void main(String[] args) {
jual me = new jual();
me.listMenu();
me.pilih();
me.konfir();
}

Praktikum Pemrograman Berbasis Object 2023 Modul I - 17


Modul 1 Class dan Object

3. Hasil Runing

Praktikum Pemrograman Berbasis Object 2023 Modul I - 18


Modul 1 Class dan Object
E. Analisa Data
E.1 Program Hitung Bangun Ruang
package Srudikasus1;

Script di atas mendefinisikan package dengan nama Srudiasus1.Dapat


dikatakan bahwa kita membungkus suatu program ke dalam satu paket yang
sama.
public class BangunRuang{

Script di atas mendefinisikan kelas dengan nama Perhitungan BangunRu-


ang, yang diberi modifier acces level dengan kata kunci public, yang digunakan
untuk memberikan akses yang lebih luas, sehingga kelas tersebut dapat diakses
dari package lain. Jika pada variabel, maka variabel tersebut dapat diakses dari
kelas lain.
double volumeKubus(double s){
double hasil = s * s * s;
return hasil;

Script di atas merupakan sebuah method yang bernama volumeKubus


dengan tipe data pengembalian double, dan memiliki satu parameter input ber-
tipe data double dengan nama s. Method ini berguna untuk menghitung
volume kubus dengan panjang sisi s.
double luasKubus(double s){
double hasil = 6 * s * s;
return hasil;

Script di atas adalah sebuah method luasKubus dengan tipe data pengem-
balian double yang menerima satu parameter input bertipe data double dengan
nama s, yang merepresentasikan panjang sisi kubus. Method ini berfungsi un-
tuk menghitung luas permukaan kubus dengan rumus 6s^2.
double volumeBalok(double p, double l, double t)
{
double hasil = p * l * t;
return hasil;

Script di atas adalah sebuah method volumeBalok dengan tipe data


pengembalian double yang menerima tiga parameter input bertipe data double
dengan nama p,l,t, yang merepresentasikan Panjang,lebar dan tinggi balok.
Method ini berfungsi untuk menghitung volume balok dengan rumus p x l x
t.
double luasBalok(double p, double l, double t){
double hasil = 2 * (p * l + p * t + l * t);
return hasil;

Script di atas adalah sebuah method luasBalok dengan tipe data pengem-
balian double yang menerima tiga parameter input bertipe data double dengan

Praktikum Pemrograman Berbasis Object 2023 Modul I - 19


Modul 1 Class dan Object
nama p, l, t, yang merepresentasikan panjang, lebar, dan tinggi balok.
Method ini berfungsi untuk menghitung luas permukaan balok dengan rumus 2
x (p x l + p x t + l x t).
double volumeTabung(double r, double t){
final double PHI = 3.14;
double hasil = PHI * r * r * t;
return hasil;

Script di atas merupakan method untuk menghitung volume tabung ber-


dasarkan nilai jari-jari dan tinggi tabung yang diberikan sebagai argumen pada
method double volumeTabung(double r, double t).Pertama, digunakan
nilai final dengan nama variabel PHI yang nilainya diset sebagai konstanta
3.14, yang merepresentasikan nilai π atau pi.Kemudian, rumus volume tabung
digunakan untuk menghitung volume tabung dengan menggunakan nilai r dan t
yang diberikan sebagai argumen pada method. Hasil perhitungan volume
tabung tersebut disimpan pada variabel hasil.Setelah perhitungan selesai, nilai
dari variabel hasil dikembalikan menggunakan statement return.
double luasTabung(double r, double t){
final double PHI = 3.14;
double hasil = 2 * PHI * r * (r + t);
return hasil;

Script tersebut merupakan method untuk menghitung luas permukaan


tabung dengan parameter input berupa nilai jari-jari r dan tinggi t.Pertama, nilai
phi (π) dideklarasikan sebagai konstanta dengan nilai 3.14 menggunakan
keyword "final". Kemudian, dilakukan perhitungan luas permukaan tabung
dengan rumus 2phir*(r+t) pada variabel "hasil" yang merupakan hasil dari
method tersebut. Terakhir, nilai variabel "hasil" dikembalikan sebagai output
dari method menggunakan keyword "return".
double volumeKerucut(double r, double t){
final double PHI = 3.14;
double hasil = 1 / 3 * PHI * r * r * t;
return hasil;

Script di atas merupakan sebuah fungsi yang digunakan untuk menghitung


volume kerucut. Fungsi ini memiliki 2 parameter yaitu r (jari-jari alas) dan t
(tinggi kerucut).Pada baris pertama, terdapat deklarasi konstanta PHI yang
bernilai 3.14, yang digunakan dalam perhitungan volume kerucut.Pada baris
kedua, terdapat sebuah variabel hasil yang digunakan untuk menyimpan hasil
perhitungan volume kerucut.Pada baris ketiga, dilakukan perhitungan volume
kerucut dengan menggunakan rumus 1/3 x PHI x r^2 x t.Pada baris
terakhir, nilai hasil kemudian dikembalikan oleh fungsi sebagai hasil perhitun-
gan volume kerucut.
double luasKerucut(double r, double s){

Praktikum Pemrograman Berbasis Object 2023 Modul I - 20


Modul 1 Class dan Object
final double PHI = 3.14;
double hasil = PHI * r * (r + s);
return hasil;

Script di atas merupakan implementasi rumus untuk menghitung luas per-


mukaan kerucut, dengan parameter input berupa jari-jari alas (r) dan garis pelu-
kis (s) pada kerucut.Pada baris pertama, dilakukan deklarasi variabel konstanta
PHI dengan nilai 3.14.Pada baris kedua, dilakukan deklarasi fungsi/method lu-
asKerucut yang mengambil dua parameter input berupa nilai r dan s, kemudian
dilakukan perhitungan luas permukaan kerucut menggunakan rumus PHI * r
* (r + s), yang disimpan dalam variabel hasil.Pada baris terakhir, dilakukan
pengembalian nilai hasil sebagai output dari fungsi/method luasKerucut.
double volumeBola(double r){
final double PHI = 3.14;
double hasil = 4 / 3 * PHI * r * r * r;
return hasil;

Script di atas adalah sebuah fungsi bernama volumeBola yang memiliki


satu parameter input, yaitu r, yang merepresentasikan jari-jari bola. Fungsi ini
menghitung volume bola berdasarkan rumus matematika yaitu (4/3) * phi *
r^3.Program ini menginisialisasi konstanta PHI dengan nilai 3.14 dan meng-
gunakan variabel hasil untuk menyimpan hasil perhitungan. Perhitungan dilak-
ukan dengan mengalikan jari-jari bola dengan dirinya sendiri tiga kali (rrr),
kemudian dikalikan dengan nilai PHI dan 4/3. Hasil perhitungan kemudian dis-
impan dalam variabel hasil dan di-return sebagai output fungsi.
double luasBola(double r, double t){
final double PHI = 3.14;
double hasil = 4 * PHI * r * r;
return hasil;

Script di atas merupakan sebuah fungsi bernama luasBola yang menerima


dua parameter berupa bilangan pecahan (double) yaitu r dan t.Fungsi ini ber-
tujuan untuk menghitung luas permukaan bola dengan jari-jari r. Untuk melak-
ukan perhitungan, fungsi menggunakan nilai konstanta phi yang didefinisikan
sebagai 3.14 dan menghitung luas permukaan bola dengan rumus 4 * PHI * r
* r.Setelah perhitungan selesai dilakukan, fungsi akan mengembalikan hasil
perhitungan tersebut dalam bentuk bilangan pecahan (double).
import Srudikasus1.BangunRuang;

Pada program “import Srudikasus1.BangunRuang;” untuk mengimpor


kelas BangunRuang yang ada di dalam paket Studikasus1. Dengan menggun-
akan perintah “import Srudikasus1.BangunRuang;” kita dapat mengakses
dan menggunakan kelas tersebut dan juga dapat membuat objek dari kelas Ban-

Praktikum Pemrograman Berbasis Object 2023 Modul I - 21


Modul 1 Class dan Object
gunRuang dan memanggil metodenya untuk menghitung luas permukaan atau
volume bangun ruang yang diinginkan.
public class StudyCase1 {

kelas StudyCase1 berisi metode main, yang berfungsi sebagai awal eksekusi
program. Metode main adalah metode khusus yang memiliki perintah khusus
(public static void main(String[] args).
public static void main(String args[]) {
BangunRuang bola = new BangunRuang();
double volume = bola.volumeBola(8);
double luasPermukaan = bola.luasBola(8, 14);
System.out.println("Volume bola dengan r = 8 adalah "
+ volume);
System.out.println("Luas permukaan bola dengan r = 8
dan t = 12 adalah " + luasPermukaan);

Pada bagian “BangunRuang bola = new BangunRuang();” kita


mendeklarasikan variabel bola yang merupakan objek dari kelas BangunRuang
dan diinisialisasi menggunakan "new". Inisialisasi objek menggunakan
konstruktor kelas BangunRuang tanpa parameter.
Selanjutnya terdapat pemanggilan metode volumeBola(8) dari objek bola
dengan parameter r = 8. Nilai yang dikembalikan dari metode tersebut disimpan
ke dalam variabel volume.
Pada program “double luasPermukaan = bola.luasBola(8, 14);”,
terdapat pemanggilan metode luasBola() dari objek bola dengan parameter r = 8
dan t = 14. Nilai yang dikembalikan dari metode tersebut disimpan ke dalam
variabel luasPermukaan.
Pada bagian program “System.out.println("Volume bola dengan r
= 8 adalah " + volume);” dan System.out.println("Luas permukaan
bola dengan r = 8 dan t = 12 adalah " + luasPermukaan); , terdapat
penggunaan fungsi println() untuk mencetak hasil perhitungan volume dan
luas permukaan bola.

BangunRuang kubus = new BangunRuang();


volume = kubus.volumeKubus(8);
luasPermukaan = kubus.luasKubus(8);

System.out.println("Volume kubus dengan s = 8 adalah


" + volume);
System.out.println("Luas permukaan kubus dengan s = 8
adalah " + luasPermukaan);

Pada bagian “BangunRuang kubus = new BangunRuang();” kita


mendeklarasikan variabel kubus yang merupakan objek dari kelas BangunRuang
dan diinisialisasi menggunadakan "new". Inisialisasi objek menggunakan
konstruktor kelas BangunRuang tanpa parameter.

Praktikum Pemrograman Berbasis Object 2023 Modul I - 22


Modul 1 Class dan Object
Selanjutnya terdapat pemanggilan metode volumeKubus(8) dari objek
bola dengan parameter s = 8. Nilai yang dikembalikan dari metode tersebut
disimpan ke dalam variabel volume.
Pada program “luasPermukaan = kubus.luasKubus(8);”, terdapat
pemanggilan metode luasKubus() dari objek kubus dengan parameter s = 8.
Nilai yang dikembalikan dari metode tersebut disimpan ke dalam variabel
luasPermukaan.
Pada bagian program “System.out.println("Volume kubus dengan s
= 8 adalah " + volume);” dan System.out.println("Luas permukaan
kubus dengan s = 8 adalah " + luasPermukaan); , terdapat penggunaan
fungsi println() untuk mencetak hasil perhitungan volume dan luas permukaan
kubus.
BangunRuang balok = new BangunRuang();
volume = balok.volumeBalok(12, 8, 2);
luasPermukaan = balok.luasBalok(12, 8, 2);

System.out.println("Volume balok dengan p = 12 l = 8


dan t = 2 adalah " + volume);
System.out.println("Luas permukaan balok dengan p =
12 l = 8 dan t = 2 adalah " + luasPermukaan);

Pada bagian “BangunRuang balok = new BangunRuang();” kita


mendeklarasikan variabel balok yang merupakan objek dari kelas BangunRuang
dan diinisialisasi menggunakan "new". Inisialisasi objek menggunakan
konstruktor kelas BangunRuang tanpa parameter.
Selanjutnya terdapat pemanggilan metode volumeBalok(12, 8, 2) dari
objek balok dengan parameter p = 12, l = 8, dan t = 2. Nilai yang dikembalikan
dari metode tersebut disimpan ke dalam variabel volume.
Pada program “luasPermukaan = balok.luasBalok(12, 8, 2);”,
terdapat pemanggilan metode luasBalok() dari objek balok dengan parameter p =
12, l = 8, t = 2. Nilai yang dikembalikan dari metode tersebut disimpan ke dalam
variabel luasPermukaan.
Pada bagian program “System.out.println("Volume balok dengan p
= 12 l = 8 t = 2 adalah " + volume);” dan
System.out.println("Luas permukaan balok dengan p = 12 l = 8 t =
2 adalah " + luasPermukaan);, terdapat penggunaan fungsi println() untuk
mencetak hasil perhitungan volume dan luas permukaan balok.

BangunRuang tabung = new BangunRuang();


volume = tabung.volumeTabung(8, 4);

Praktikum Pemrograman Berbasis Object 2023 Modul I - 23


Modul 1 Class dan Object
luasPermukaan = tabung.luasTabung(8, 4);

System.out.println("Volume tabung dengan r = 8 dan t


= 4 adalah " + volume);
System.out.println("Luas permukaan tabung dengan r =
8 dan t = 4 adalah " + luasPermukaan);

Pada bagian “BangunRuang tabung = new BangunRuang();” kita


mendeklarasikan variabel tabung yang merupakan objek dari kelas
BangunRuang dan diinisialisasi menggunakan "new". Inisialisasi objek
menggunakan konstruktor kelas BangunRuang tanpa parameter.
Selanjutnya terdapat pemanggilan metode volumeTabung( 8, 4) dari
objek balok dengan parameter r = 8 dan t = 4. Nilai yang dikembalikan dari
metode tersebut disimpan ke dalam variabel volume.
Pada program “luasPermukaan = tabung.luasTabung( 8, 4);”,
terdapat pemanggilan metode luasTabung() dari objek tabung dengan parameter
r = 8 dan t = 4. Nilai yang dikembalikan dari metode tersebut disimpan ke dalam
variabel luasPermukaan.
Pada bagian program “System.out.println("Volume tabung dengan
r = 8 t = 4 adalah " + volume);” dan System.out.println("Luas
permukaan tabung dengan r = 8 t = 4 adalah " + luasPermukaan); ,
terdapat penggunaan fungsi println() untuk mencetak hasil perhitungan volume
dan luas permukaan tabung.

BangunRuang kerucut = new BangunRuang();


volume = kerucut.volumeKerucut(8, 4);
luasPermukaan = kerucut.luasKerucut(8, 4);
System.out.println("Volume kerucut dengan r = 8 dan t
= 4 adalah " + volume);
System.out.println("Luas permukaan kerucut dengan r =
8 dan s = 4 adalah " + luasPermukaan);

Pada bagian “BangunRuang kerucut = new BangunRuang();” kita


mendeklarasikan variabel kerucut yang merupakan objek dari kelas
BangunRuang dan diinisialisasi menggunakan "new". Inisialisasi objek
menggunakan konstruktor kelas BangunRuang tanpa parameter.
Selanjutnya terdapat pemanggilan metode volumeKerucut( 8, 4) dari
objek balok dengan parameter r = 8 dan t = 4. Nilai yang dikembalikan dari
metode tersebut disimpan ke dalam variabel volume.
Pada program “luasPermukaan = kerucut.luasKerucut( 8, 4);”,
terdapat pemanggilan metode luasKerucut() dari objek tabung dengan parameter
r = 8 dan t = 4. Nilai yang dikembalikan dari metode tersebut disimpan ke dalam
variabel luasPermukaan.

Praktikum Pemrograman Berbasis Object 2023 Modul I - 24


Modul 1 Class dan Object
Pada bagian program “System.out.println("Volume kerucut dengan
r = 8 t = 4 adalah " + volume);” dan System.out.println("Luas
permukaan kerucut dengan r = 8 t = 4 adalah " + luasPermukaan); ,
terdapat penggunaan fungsi println() untuk mencetak hasil perhitungan volume
dan luas permukaan kerucut.

E.2 Program Penjualan


package p1;

Script di atas mendefinisikan package dengan nama p1. Dapat dikatakan


bahwa kita membungkus suatu program ke dalam satu paket yang sama.
import java.util.Scanner;

Program import java.util.Scanner digunakan untuk membaca


inputan dari user. Import ini berfungsi untuk membaca inputan dari keyboard
atau sumber input lainnya. Kita dapat menggunakan Scanner untuk membaca
inputan dalam berbagai format seperti angka, string, atau karakter. Scanner juga
memungkinkan kita untuk melakukan validasi input, sehingga kita dapat
memastikan bahwa input yang diterima adalah sesuai dengan yang diharapkan.

class jual {

Program “class jual {“ merupakan program yang digunakan untuk


menampilkan dan menjual beberapa jenis barang dengan harga yang kita sudah
tentukan.
Scanner in = new Scanner(System.in);
String[] namaBarang = {"kacang batu","tongkol","paus"};
double[] harga = {5000,10000,70000};
int jumlahBarang = namaBarang.length; int beli;int
banyak; double total; int konfir;

Pada program “Scanner in = new Scanner(System.in);”


mengimpor kelas Scanner dengan menggunakan perintah Scanner in = new
Scanner(System.in); untuk membaca inputan dari user.
Selanjutnya, pada program “String[] namaBarang = {"kacang
batu","tongkol","paus"};” mendefinisikan array namaBarang. Pada
program “double[] harga = {5000,10000,70000};” berisi harga dari
barang-barang yang akan dijual. Pada “int jumlahBarang” didefinisikan untuk
menyimpan jumlah barang yang yang akan dibeli.
Variabel “int beli;” kemudian didefinisikan untuk menyimpan indeks
barang yang dibeli oleh user. Variabel “int banyak;” digunakan untuk
menyimpan jumlah barang yang dibeli oleh user. Variabel “double total;”
digunakan untuk menyimpan total harga dari pembelian barang.
Program kemudian menampilkan daftar barang yang tersedia dan meminta
user untuk memilih barang yang ingin dibeli. Inputan dari user kemudian
disimpan di dalam variabel beli.

Praktikum Pemrograman Berbasis Object 2023 Modul I - 25


Modul 1 Class dan Object
Setelah itu, program meminta user untuk memasukkan jumlah barang
yang ingin dibeli. Inputan dari user kemudian disimpan di dalam variabel
banyak. Program kemudian menghitung total harga dari pembelian barang.
Harga barang yang dibeli diambil dari array harga menggunakan indeks yang
disimpan di dalam variabel beli.
Terakhir, program menampilkan total harga dari pembelian barang dan
meminta konfirmasi dari user untuk melanjutkan atau tidak. Inputan dari user
kemudian disimpan di dalam variabel konfir.

void terimakasih()
{
System.out.println("\nTERIMAKASIH TELAH BERKUNJUNG");
System.out.println(" DI TOKO KAMI");
}

Pada program “void terimakasih()” merupakan sebuah method yang


digunakan untuk menampilkan pesan terima kasih ketika user telah selesai
berbelanja.
Selanjutnya terdapat dua perintah “System.out.println()” yang
digunakan untuk mencetak pesan "TERIMAKASIH TELAH BERKUNJUNG"
dan "DI TOKO KAMI" ke layar.
Method ini memiliki tipe kembalian void, artinya method ini tidak
mengembalikan nilai apapun dan hanya digunakan untuk melakukan tindakan
atau aksi tertentu.

void listMenu()
{
System.out.println("\n\nList Barang \t\tHarga");
for (int i = 0; i < jumlahBarang; i++) {
System.out.println((i+1)+". "+namaBarang[i]+"\t\
t"+"Rp."+harga[i]);
}
}

Pada program void listMenu() merupakan sebuah method yang


digunakan untuk menampilkan daftar barang dan harga yang tersedia di toko.
Dalam method ini, terdapat perintah “System.out.println("\n\nList
Barang \t\tHarga");” yang digunakan untuk mencetak pesan "List Barang"
dan "Harga" ke layar, yang dipisahkan dengan tab.
Selanjutnya, terdapat sebuah perulangan for yang digunakan untuk
menampilkan daftar barang dan harga. Perulangan tersebut akan berjalan
sebanyak jumlahBarang kali, yang mana jumlahBarang merupakan jumlah
barang yang tersedia di toko.
Setiap kali perulangan dijalankan, program akan mencetak nomor urut
barang, nama barang, dan harganya menggunakan perintah
“System.out.println((i+1)+"."+namaBarang[i]+"\t\

Praktikum Pemrograman Berbasis Object 2023 Modul I - 26


Modul 1 Class dan Object
t"+"Rp."+harga[i]);”. Nomor urut barang diperoleh dengan menambahkan 1
ke variabel loop i, sedangkan nama barang dan harga barang diambil dari array
namaBarang dan harga menggunakan indeks yang sama dengan variabel loop i.
Method ini memiliki tipe kembalian void, artinya method ini tidak
mengembalikan nilai apapun dan hanya digunakan untuk melakukan tindakan
atau aksi tertentu.

void pilih()
{
System.out.println("\nBeli : ");
beli = in.nextInt()-1;
if (beli < jumlahBarang)
{
System.out.println("jumlah : ");
banyak = in.nextInt();
}
else {
System.out.println("Barang Tidak Tersedia");
pilih();
}
}

Pada program “void pilih()” merupakan sebuah method yang


digunakan untuk meminta user memilih barang dan menginput jumlah barang
yang akan dibeli.
Dalam method ini, terdapat perintah “System.out.println("\nBeli :
");” yang digunakan untuk mencetak pesan "Beli :" ke layar, yang
mengindikasikan bahwa program sedang meminta user untuk memilih barang.
Selanjutnya, terdapat “beli = in.nextInt()-1;” yang digunakan untuk
membaca input dari user tentang nomor urut barang yang ingin dibeli. Input
tersebut diambil menggunakan objek in yang merupakan objek dari class
Scanner yang sebelumnya telah dideklarasikan. Dalam program ini, input yang
dibaca akan dikurangi 1 agar sesuai dengan indeks array yang dimulai dari 0.
Setelah itu, terdapat sebuah kondisi if yang digunakan untuk memeriksa
apakah nomor urut barang yang dipilih oleh user kurang dari jumlahBarang,
yang mana jumlahBarang merupakan jumlah barang yang tersedia di toko. Lalu
terdapat program “System.out.println("jumlah : ");” yang akan
mencetak pesan "jumlah :" dan meminta user untuk menginput jumlah barang
yang ingin dibeli dengan perintah “banyak = in.nextInt();”. Jumlah barang
tersebut akan disimpan dalam variabel banyak.
Namun jika nomor urut barang yang dipilih oleh user lebih besar atau
sama dengan jumlahBarang, artinya barang tersebut tidak tersedia di toko,
program akan mencetak pesan "Barang Tidak Tersedia" dan memanggil kembali
untuk meminta user memilih barang yang lain.

Praktikum Pemrograman Berbasis Object 2023 Modul I - 27


Modul 1 Class dan Object
Method ini memiliki tipe kembalian void, artinya method ini tidak
mengembalikan nilai apapun dan hanya digunakan untuk melakukan tindakan
atau aksi tertentu. method pilih() hanya digunakan untuk meminta user memilih
barang dan menginput jumlah barang yang akan dibeli.

void konfir()
{
total = harga[beli]*banyak;
System.out.println("\nAnda Akan Membeli :");
System.out.println(namaBarang[beli] + " X "+banyak+"\
t = Rp."+total);
System.out.println("Apakah anda yakin? ");
System.out.println("1. ya");
System.out.println("2. tidak");
System.out.println("pilih : ");
konfir = in.nextInt();
switch(konfir)
{

Pada program “void konfir()” merupakan sebuah method yang


digunakan untuk memastikan apakah user yakin untuk membeli barang yang
dipilih dan menginputkan konfirmasi pembelian.
Dalam method ini terdapat sebuah perhitungan “total =
harga[beli]*banyak;” yang digunakan untuk menghitung total harga barang
yang akan dibeli. Perhitungan tersebut mengambil harga barang yang dipilih dari
array harga dan mengalikannya dengan jumlah barang yang dipilih yang
disimpan dalam variabel banyak.
Selanjutnya, pada program “System.out.println("\nAnda Akan
Membeli :");” mencetak pesan "Anda Akan Membeli :" dan menampilkan
nama barang, jumlah barang, dan total harga yang akan dibeli dengan perintah
“System.out.println(namaBarang[beli] + " X "+banyak+"\t =
Rp."+total);”.
Kemudian program “System.out.println("Apakah anda yakin? ");”
mencetak pesan "Apakah anda yakin? ", “System.out.println("1. ya");”
akan mencetak "1. ya", dan “System.out.println("2. tidak");” akan
mencetak "2. tidak" untuk meminta user memilih antara ya atau tidak sebagai
konfirmasi pembelian. Setelah itu, program meminta user untuk menginputkan
pilihan dengan perintah “konfir = in.nextInt();”.
Setelah user memilih konfirmasi pembelian, program akan mengevaluasi
pilihan tersebut menggunakan perintah “switch(konfir)”. Method ini
memiliki tipe kembalian void, artinya method ini tidak mengembalikan nilai
apapun.

Praktikum Pemrograman Berbasis Object 2023 Modul I - 28


Modul 1 Class dan Object
case 1 -> {
System.out.println("\nAnda telah membeli : ");
System.out.println(namaBarang[beli] +
"X"+banyak);
System.out.println("total pembelian :
Rp."+total);
terimakasih();
}
case 2 -> terimakasih();
default -> {
System.out.println("\nPILIHAN ANDA SALAH");
konfir();
}
}

Pada program “case 1 -> {“, “case 2 -> terimakasih();“,


“default -> {“ merupakan bagian dari method void konfir(), yang
digunakan untuk mengevaluasi konfirmasi pembelian yang diinputkan oleh user.
Jika user memilih konfirmasi pembelian dengan memilih angka 1 (ya), program
akan mengeksekusi yang terdapat pada case 1. program akan mencetak pesan
"Anda telah membeli : " dengan perintah “System.out.println("\nAnda
telah membeli :");”, pada “System.out.println(namaBarang[beli] +
"X"+banyak);” kemudian menampilkan nama barang, jumlah barang, dan total
harga yang dibeli. Setelah itu, program akan memanggil method
“terimakasih();” untuk mengucapkan terima kasih atas pembelian yang
dilakukan oleh user.
Jika user memilih konfirmasi pembelian dengan memilih angka 2 (tidak),
program akan mengeksekusi yang terdapat pada case 2. Pada aksi ini, program
hanya memanggil method “terimakasih();” untuk mengucapkan terima kasih
atas kunjungan user.
Jika user memilih konfirmasi pembelian dengan memilih angka selain 1
atau 2, program akan mengeksekusi yang terdapat pada default. Pada hal ini,
program akan mencetak pesan "PILIHAN ANDA SALAH" dan kemudian
memanggil method konfir() kembali untuk meminta user memilih konfirmasi
pembelian yang benar.

Praktikum Pemrograman Berbasis Object 2023 Modul I - 29


Modul 1 Class dan Object
public class sell {
public static void main(String[] args) {
jual me = new jual();
me.listMenu();
me.pilih();
me.konfir();
}

Pada program “public static void main(String[] args)” adalah


method utama dalam kelas sell. Method ini akan dieksekusi saat program
dijalankan.
Pada bagian “jual me = new jual();” digunakan untuk membuat
objek baru dari kelas jual dengan nama variabel me. Objek ini digunakan untuk
memanggil method yang sudah dibuat dalam kelas jual.
Pada bagian “me.listMenu();” memanggil method listMenu() dari objek
me yang sudah dibuat sebelumnya. Method ini berfungsi untuk menampilkan
daftar barang yang tersedia dalam toko.
Pada bagian “me.pilih();” memanggil method pilih() dari objek me.
Method ini berfungsi untuk meminta inputan dari user mengenai barang yang
akan dibeli dan jumlah barang yang akan dibeli.
Pada bagian “me.konfir();” memanggil method konfir() dari objek me.
Method ini berfungsi untuk mengevaluasi konfirmasi pembelian dari user dan
melakukan tindakan yang sesuai dengan pilihan user.

Praktikum Pemrograman Berbasis Object 2023 Modul I - 30


Modul 1 Class dan Object

DAFTAR PUSTAKA

Shalhudin, M. – Rosa A.S. ”Belajar Pemrograman Dengan Bahasa C++ dan Jawa dari Nol
Menjadi
Handal”, Informatika – Bandung, 2007

R. HUBBARD, Ph.D, JOHN. “Theory and Problems Of Programing With C++”, McGraw-Hill
– United
State of America, 1996

Utama, Didit N. Widayanti, Riya. 2005. Algoritma &Pemrograman dengan Borland C++ ,
Graha Ilmu Yogyakarta.

Praktikum Pemrograman Berbasis Object 2023 Modul I - 31

Anda mungkin juga menyukai