Anda di halaman 1dari 14

Nama : Elexi Violletta Zidomi

NIM/Kelas: 2242101998/2

Laporan Praktikum
Modul

Defining Classes and Objects

A. Landasan Teori

Pada praktikum kali ini kelas ini masih memberi materu untuk memberikan
pemahaman dasar tentang konsep dasar pemrograman berorientasi objek (OOP)
kepada para praktikan. Pemrograman berorientasi objek adalah paradigma
pemrograman yang sangat penting dan umum digunakan dalam pengembangan
perangkat lunak modern. Dalam paradigma ini, program dibangun menggunakan
kelas dan objek sebagai komponen utama untuk mengorganisasi dan mengelola kode
(Danny Poo, 2007)Oleh karena itu, memahami konsep dasar kelas, objek, dan
hubungan di antara mereka adalah langkah awal yang sangat penting bagi para
pemula dalam dunia pemrograman.
Menurut (Aman, 2021)Class dapat diartikan deskripsi secara umum (template,
pattern atau blueprint) yang menggambarkan sekumpulan object yang serupa. satu
perbedaan utama antara objek dan kelas dalam cara atribut dan metode diperlakukan
dalam objek dan kelas. Kelas adalah definisi suatu objek; atribut dan metode di kelas
adalah deklarasinya yang tidak mengandung nilai. Namun, objek dibuat sebagai
turunan dari sebuah kelas. setiap kelas memiliki atributnya sendiri yang
menggambarkan keadaan objek (Danny Poo, 2007).
Praktikum juga mencakup konsep penting lainnya seperti konstruktor, variabel
instance, metode, dan penggunaan ekspresi logis untuk membuat keputusan dalam
program. konstruktor adalah metode yang memiliki nama yang sama dengan kelas
dan digunakan untuk menginisialisasi. variabel instan adalah variabel yang
dideklarasikan di dalam kelas tetapi di luar cakupan metode apa pun.Variabel instan
diinisialisasi pada saat kelas dimuat atau ketika objek kelas dibuat. Operator logika
digunakan untuk melakukan operasi logika “AND”, “OR” dan “NOT”, yaitu fungsi
yang mirip dengan gerbang AND dan gerbang OR dalam elektronik digital. Mereka
digunakan untuk menggabungkan dua atau lebih kondisi/kendala atau untuk
melengkapi evaluasi kondisi awal berdasarkan pertimbangan tertentu.
Semua konsep ini bersama-sama membantu para pembelajar dalam membangun
fondasi yang kuat dalam pemrograman berorientasi objek, yang akan menjadi dasar
bagi pengembangan perangkat lunak yang lebih kompleks di masa depan. Dengan
pemahaman yang baik tentang konsep ini, para pembelajar akan memiliki
kemampuan untuk merancang dan mengembangkan aplikasi yang lebih canggih dan
efisien dalam bahasa pemrograman yang mendukung OOP, seperti Java.
B. Pembahasan Unguided
Nama : Elexi Violletta Zidomi
NIM/Kelas: 2242101998/2

a. Keterkaitan judul modul dengan unguided.


1. Konsep Dasar Pemrograman Berorientasi Objek (OOP): Modul membahas
konsep dasar OOP, seperti kelas, objek, atribut, methods, dan hubungan di
antara mereka. Kaitannya adalah semua kelas yang ada mulai dari kelas
EnergiKinetik, EnergiKinetikDemo, kelas Kecepatan, dan Kelas Kecepatan
Demo adalah penerapan prinsip dasar OOP itu sendiri. Misalnya, kelas
`EnergiKinetik` dan `Kecepatan` adalah kelas-kelas yang menggambarkan
objek-objek dengan atribut dan metode yang sesuai.
2. Kelas dan Objek: Di modul dijelaskan bahwa kelas adalah deskripsi umum
atau template untuk objek. Dalam kode saya, kelas `EnergiKinetik` dan
`Kecepatan` adalah deskripsi umum atau template yang digunakan untuk
membuat objek-objek spesifik, seperti `ek1` dan `k1`.

3. Atribut dan Metode: Modul menjelaskan bahwa kelas memiliki atribut


(variabel) dan metode (fungsi). Dalam kode saya, setiap kelas memiliki
atribut-atribut seperti `m998`, `v998`, `jarak998`, dan `waktu998`, serta
metode-metode seperti `energiKinetik()`, `kecepatan()`, dan `percepatan()`.
Atribut dan metode ini digunakan untuk mengelola data dan perilaku objek.

4. Konstruktor:Modul membahas konstruktor sebagai metode khusus dalam


sebuah kelas yang digunakan untuk menginisialisasi objek. Dalam kode saya,
terdapat konstruktor dalam kelas `EnergiKinetik` dan `Kecepatan` yang
digunakan untuk menginisialisasi objek `ek1` dan `k1` dengan nilai awal.

5. Penggunaan Ekspresi Logis: Di modul ada penggunaan ekspresi logis dalam


membuat keputusan dalam program. Meskipun ekspresi logis tidak secara
langsung terkait dengan kode dalam kelas-kelas yang ada, konsep ini masih
ada kaitannya dalam pemrograman secara umum, dan praktikum ini dapat
membantu para praktikan dalam memahami cara menggunakan logika dalam
pemrograman.

b. Langkah-langkah penyelesaian.
• Kelas EnergiKinetik
1. Deklarasikan variabel massa (m998) dan kecepatan (v998).
Nama : Elexi Violletta Zidomi
NIM/Kelas: 2242101998/2

2. Buat konstruktor untuk menginisialisasi nilai massa dan kecepatan saat


objek dibuat.

3. Buat method `getM()` dan `getV()` untuk mengambil nilai massa dan
kecepatan.(g (Nair, 2009(1956))etter)

4. Buat method `energiKinetik()` untuk menghitung energi kinetik


dengan rumus (m * v^2) / 2.

5. Buat method `writeOutput()` untuk mencetak hasil perhitungan ke


layar.

• Kelas EnergiKinetikDemo
Kelas ini digunakan untuk menguji kelas `EnergiKinetik` dengan membuat
objek dan mencetak hasil perhitungan.
1. Di dalam metode `main`, buat objek `ek1` dari kelas
`EnergiKinetik` dengan memberikan nilai massa dan kecepatan.

2. Panggil metode `writeOutput()` pada objek `ek1` untuk mencetak


hasil perhitungan ke layar.

• Kelas Kecepatan
1. Deklarasikan variabel jarak (jarak998) dan waktu (waktu998).
Nama : Elexi Violletta Zidomi
NIM/Kelas: 2242101998/2

2. Buat konstruktor untuk menginisialisasi nilai jarak dan waktu saat objek
dibuat.

3. Buat metode `getJarak998()` dan `getWaktu998()` untuk mengambil nilai


jarak dan waktu.(getter)

4. Buat metode `kecepatan()` untuk menghitung kecepatan dengan rumus


jarak / waktu.

5. 5.Buat metode `percepatan()` untuk menghitung percepatan dengan rumus


jarak / (waktu^2).

6. Buat metode `writeOutput()` untuk mencetak hasil perhitungan ke layar.

• Kelas Kecepatan Demo


1. Di dalam metode `main`, buat objek `k1` dari kelas `Kecepatan`
dengan memberikan nilai jarak dan waktu.
Nama : Elexi Violletta Zidomi
NIM/Kelas: 2242101998/2

2. Panggil metode `writeOutput()` pada objek `k1` untuk mencetak


hasil perhitungan ke layar.

c. Penjelasan tentang kode-kode program khusus yang dipakai dalam unguided.


Jika mencantumkan potongan code gunakan spasi 1 dan font courier new ukuran
10 normal.

Menurut saya ada dua kelas yang mempunyai kode khusus yang harus saya
jelaskan karena mungkin tidak semua memahami nya. Yaitu getter yang ada
di kelas Energi Kinetik dan Kecepatan.

public double getM() {


return m998;
}

public double getV() {


return v998;
dan

public double getJarak998() {


return jarak998;
}

public double getWaktu998() {


return waktu998;
}

Getter adalah metode dalam kelas yang digunakan untuk mengambil (membaca) nilai
variabel instance (atribut) yang bersifat private. Mereka membantu dalam mengatur
akses dan perlindungan data, serta memungkinkan perubahan implementasi internal
tanpa mempengaruhi kode pengguna. Getter adalah bagian penting dari konsep
encapsulation dalam pemrograman berorientasi objek.

C. Pembahasan Tugas (Take Home):

a. permasalahan dan kaitannya judul modul.


Nama : Elexi Violletta Zidomi
NIM/Kelas: 2242101998/2

Penggunaan Kelas dan Objek: Modul memberikan pemahaman dasar


tentang konsep dasar pemrograman berorientasi objek (OOP), yang
melibatkan penggunaan kelas dan objek. Dalam tugas take home , ada kelas
seperti Kerucut998, KerucutDemo998, Pegawai998, dan Kecepatan, serta
membuat objek dari kelas-kelas ini.
Konstruktor: Modul juga membahas konstruktor, yang merupakan metode
yang digunakan untuk menginisialisasi objek. Saya telah menggunakan
konstruktor dalam kelas-kelas saya untuk menginisialisasi atribut objek saat
objek dibuat.
Variabel Instance: Modul menjelaskan tentang variabel instance yang
digunakan untuk menyimpan atribut objek. Saya telah mendeklarasikan
variabel instance seperti radius998, tinggi998, gajiPokok998, jumlahAnak998,
dan punyaIstri998 dalam kelas-kelas saya.
Metode: Telah dibuat metode dalam kelas , seperti luasSelimut998(),
luasAlas998(), luasPermukaan998(), volumeKerucut998(), hitungBonus998(),
hitungGaji998(), dan writeOutput().

Ekspresi Logis: Modul juga menyebutkan penggunaan ekspresi logis untuk


membuat keputusan dalam program. Dalam kelas Pegawai998, saya
menggunakan ekspresi logis dalam metode hitungBonus998() untuk
menghitung bonus berdasarkan kondisi tertentu.
Hampir sama saja dengan keterkaitan unguided dengan judul modul.

b. Pembahasan mengenai konsep yang dipakai dalam kode pemrograman dalam


kaitannyadengan kasus.
1. Kelas (Class)

• Kelas mirip dengan cetakan atau blueprint untuk objek. Ini adalah
tempatmendefinisikan bagaimana suatu objek harus dibuat dan apa yang
dapat dilakukan oleh objek tersebut.
• Misalnya, dalam kasus Kerucut, kita punya "kelas Kerucut" yang
memberi tahu komputer cara membuat kerucut.
2. Atribut (Fields)
• Atribut adalah variabel yang digunakan untuk menyimpan informasi
tentang objek. Mereka seperti kotak tempat kita menyimpan data.
• Misalnya, dalam kasus Pegawai, kita punya atribut seperti "gajiPokok"
untuk menyimpan gaji dasar pegawai.
3. Konstruktor
• Konstruktor adalah metode khusus dalam kelas yang digunakan untuk
menginisialisasi objek. Ini seperti instruksi untuk menyiapkan objek saat
Nama : Elexi Violletta Zidomi
NIM/Kelas: 2242101998/2

pertama kali dibuat.


• Misalnya, dalam kasus Kerucut, kita punya konstruktor yang memberi tahu
cara mengatur jari-jari dan tinggi kerucut.
4. Metode (Methods)
• Metode adalah tindakan yang bisa dilakukan oleh objek. Mereka adalah cara
objek berperilaku atau melakukan sesuatu.
• Misalnya, dalam kasus Pegawai, kita punya metode "hitungBonus" untuk
menghitung bonus pegawai.
5. Penggunaan Atribut dan Metode
• Atribut digunakan untuk menyimpan informasi tentang objek, dan
metode digunakan untuk melakukan perhitungan atau tindakan
berdasarkan informasi itu.
• Misalnya, dalam kasus Kerucut, kita menggunakan atribut "radius998"
dalam metode "luasSelimut998" untuk menghitung luas selimut kerucut.
6. Logika
• Ini adalah bagian penting dari kode yang mengikuti soal atau
perhitungan tertentu. Misalnya, dalam kasus Pegawai, kita
menggunakan logika bisnis untuk menghitung bonus dan gaji total
berdasarkan situasi pegawai
c. Penjelasan tentang kode program khusus dan langkah yang dipakai dalam
menyelesaikan tugas(10)
Pada Pembahasan tugas sangat tidak disarankan membahas kembali hal yang pernah
dibahas dalamunguided, lakukan pembahasan tugas sesuai dengan kasusnya jangan hanya
teori dasarnya.
1. Kelas 1: `Kerucut998`

1. Kerucut998(): Konstruktor default untuk menginisialisasi radius dan tinggi


dengan nilai 0.0.
2. Kerucut998(double radius998, double tinggi998): Konstruktor khusus untuk
menginisialisasi radius dan tinggi dengan nilai yang diberikan.
3. luasSelimut998(): Menghitung luas selimut kerucut.
4. luasAlas998(): Menghitung luas alas kerucut.
5. luasPermukaan998(): Menghitung luas permukaan total kerucut.
6. volumeKerucut998(): Menghitung volume kerucut.
7. writeOutput(): Menampilkan informasi tentang kerucut, termasuk jari-jari,
tinggi, luas selimut, luas alas, luas permukaan, dan volume.
Nama : Elexi Violletta Zidomi
NIM/Kelas: 2242101998/2

Jadinya seperti ini:


package Minggu2.takehome2_998;

public class Kerucut998 {

private double radius998;

private double tinggi998;

public Kerucut998() {

radius998 = 0.0;

tinggi998 = 0.0;

public Kerucut998(double radius998, double tinggi998) {

this.radius998 = radius998;

this.tinggi998 = tinggi998;

public double luasSelimut998() {

double sisiMiring998 = Math.sqrt(Math.pow(radius998, 2) +


Math.pow(radius998, 2));

return Math.PI * radius998 * sisiMiring998;

public double luasAlas998() {

return Math.PI * Math.pow(radius998, 2);

public double luasPermukaan998() {

return luasAlas998() + luasSelimut998();

}
Nama : Elexi Violletta Zidomi
NIM/Kelas: 2242101998/2

public double volumeKerucut998() {

return (1.0 / 3.0) * Math.PI * Math.pow(radius998, 2) *


tinggi998;

public void writeOutput() {

System.out.println("Jari-jari : " + radius998);

System.out.println("Tinggi : " + tinggi998);

System.out.println("Luas Selimut : " +


luasSelimut998());

System.out.println("Luas Alas : " + luasAlas998());

System.out.println("Luas Permukaan : " +


luasPermukaan998());

System.out.println("Volume Kerucut : " +


volumeKerucut998());

2. Kelas 2: `KerucutDemo998
1. main(String[] args): Metode main untuk membuat objek Kerucut998 dengan
nilai jari-jari dan tinggi tertentu, kemudian memanggil writeOutput() untuk
menampilkan informasi tentang kerucut.
Kode:
package Minggu2.takehome2_998;

public class KerucutDemo998 {

public static void main(String[] args) {

Kerucut998 k998 = new Kerucut998(5, 6);

k998.writeOutput();

}
Nama : Elexi Violletta Zidomi
NIM/Kelas: 2242101998/2

3. Kelas 3: `Pegawai998
1. Pegawai998(double gajiPokok998, int jumlahAnak998, boolean punyaIstri998):
Konstruktor untuk menginisialisasi data pegawai.
2. setGajiPokok998(double gajiPokok998): Mengatur gaji pokok pegawai.
3. setJumlahAnak998(int jumlahAnak998): Mengatur jumlah anak pegawai.
4. setPunyaIstri998(boolean punyaIstri998): Mengatur status memiliki istri.
5. hitungBonus998(): Menghitung bonus berdasarkan aturan tertentu.
6. hitungGaji998(): Menghitung gaji total pegawai berdasarkan gaji pokok dan
bonus.
7. writeOutput(): Menampilkan informasi tentang pegawai, termasuk gaji pokok,
jumlah anak, status memiliki istri, bonus gaji, dan gaji total.
Kode:
package Minggu2.takehome2_998;

public class Pegawai998 {

private double gajiPokok998;

private int jumlahAnak998;

private boolean punyaIstri998;

public Pegawai998(double gajiPokok998, int jumlahAnak998,


boolean punyaIstri998) {

this.gajiPokok998 = gajiPokok998;

this.jumlahAnak998 = jumlahAnak998;

this.punyaIstri998 = punyaIstri998;

public void setGajiPokok998(double gajiPokok998) {

this.gajiPokok998 = gajiPokok998;

public void setJumlahAnak998(int jumlahAnak998) {


Nama : Elexi Violletta Zidomi
NIM/Kelas: 2242101998/2

this.jumlahAnak998 = jumlahAnak998;

public void setPunyaIstri998(boolean punyaIstri998) {

this.punyaIstri998 = punyaIstri998;

public double hitungBonus998() {

double bonus998 = 0.0;

if (!punyaIstri998 && jumlahAnak998 == 0) {

bonus998 = 500000;

} else if (punyaIstri998 && jumlahAnak998 == 0) {

bonus998 = 1000000;

} else if (punyaIstri998 && jumlahAnak998 >= 1) {

bonus998 = 1000000;

if (jumlahAnak998 == 1) {

bonus998 += 400000; // Tambahan bonus untuk 1 anak

} else if (jumlahAnak998 == 2) {

bonus998 += 350000 * 2; //

} else {

bonus998 += 300000 * jumlahAnak998; // Tambahan


bonus untuk >= 3 anak

return bonus998;

public double hitungGaji998() {

double bonus998 = hitungBonus998();

return gajiPokok998 + bonus998;

}
Nama : Elexi Violletta Zidomi
NIM/Kelas: 2242101998/2

public void writeOutput() {

System.out.println("Gaji Pokok : " + gajiPokok998);

System.out.println("Jumlah Anak : " + jumlahAnak998);

System.out.println("punya istri?true or false : " +


punyaIstri998);

System.out.println("Bonus Gaji : " +


hitungBonus998());

System.out.println("Gaji Total : " +


hitungGaji998());

4. Kelas 4: ‘PegawaiDemo998’
Sama seperti kelas Demo Sebelumya:
Kode:

package Minggu2.takehome2_998;

public class PegawaiDemo998 {

public static void main(String[] args) {

Pegawai998 p998 = new Pegawai998(2000000, 3 ,true);

p998.writeOutput();

}
Nama : Elexi Violletta Zidomi
NIM/Kelas: 2242101998/2

D. Daftar Pustaka

Aman, M. (2021). PEMANFAATAN E-COMMERCE DALAM MENINGKATKAN PENJUALAN


DENGAN. JURNAL IPSIKOM Vol. 9 No.1, 34.
Danny Poo, D. K. (2007). Object-Oriented Programming and Java. Singapore: Springer.
Nair, P. S. (2009(1956)). Java Programming Fundamental. France: CRC Press.

Anda mungkin juga menyukai