FadilAdz / Constructor

Praktikum Pertemuan Ke 7 Pemrograman Orientasi Objek.

Repository from Github https://github.comFadilAdz/ConstructorRepository from Github https://github.comFadilAdz/Constructor

Constructor

Praktikum Pertemuan Ke 7 Pemrograman Orientasi Objek.

img

img



File main.java

package AlfaMantul;
import java.util.Date;

public class main {
    public static void main(String[] args) {
        // Membuat beberapa produk
        elektronik laptop = new elektronik("Laptop", 8000000, 8, 2);
        pakaian kaos = new pakaian("Kaos", 110000, 7, "M", "Hitam");
        makanan kacang = new makanan("Kacang Pilus", 5000, 28, new Date());

        // Membuat keranjang belanja
        keranjangBelanja keranjang = new keranjangBelanja();

        // Menambahkan produk ke keranjang
        keranjang.tambahProduk(tv, 1);
        keranjang.tambahProduk(kaos, 2);
        keranjang.tambahProduk(roti, 5);

        // Menampilkan isi keranjang
        keranjang.displayKeranjang();
    }
}

Penjelasan

  1. Deklarasi package dan Impor
package AlfaMantul;
import java.util.Date;

Package AlfaMantul mengelompokkan semua kelas terkait dalam proyek ini agar terorganisir dan mudah diakses. Kelas Date dari pustaka Java diimpor untuk menangani tanggal kadaluarsa pada produk makanan.


  1. Kelas main
public class main {
    public static void main(String[] args) {
        // Kode di sini
    }
}

Kelas main adalah titik awal program dan berisi metode main, yang dijalankan pertama kali saat program dimulai.


  1. Membuat Objek Produk

Di sini, tiga objek produk dari berbagai jenis dibuat: elektronik, pakaian, dan makanan. Setiap produk memiliki properti yang relevan seperti harga, stok, dan atribut khusus untuk setiap jenis produk.

elektronik laptop = new elektronik("Laptop", 8000000, 8, 2);
pakaian kaos = new pakaian("Kaos", 110000, 7, "M", "Hitam");
makanan kacang = new makanan("Kacang Pilus", 5000, 28, new Date());

laptop : Objek elektronik dengan nama "Laptop", harga 8.000.000, stok 8 unit, dan garansi 2 tahun.
kaos : Objek pakaian dengan nama "Kaos", harga 110.000, stok 7 unit, ukuran "M", dan warna "Hitam".
kacang : Objek makanan dengan nama "Kacang Pilus", harga 5.000, stok 28 unit, dan tanggal kedaluwarsa yang diatur pada tanggal saat program dijalankan.


  1. Membuat Objek keranjangBelanja
keranjangBelanja keranjang = new keranjangBelanja();

Objek keranjang dari kelas keranjangBelanja dibuat untuk menyimpan produk yang dipilih pengguna. keranjangBelanja bertindak sebagai penyimpanan sementara untuk produk yang akan dibeli.


  1. Menambahkan Produk ke Keranjang
keranjang.tambahProduk(laptop, 1);
keranjang.tambahProduk(kaos, 2);
keranjang.tambahProduk(kacang, 5);

Metode tambahProduk pada objek keranjang menambahkan produk beserta kuantitasnya ke keranjang belanja. Di sini :

laptop ditambahkan dengan kuantitas 1 unit.
kaos ditambahkan dengan kuantitas 2 unit.
kacang ditambahkan dengan kuantitas 5 unit.


  1. Menampilkan Isi Keranjang
keranjang.displayKeranjang();

Metode displayKeranjang menampilkan semua produk yang telah ditambahkan ke keranjang belanja beserta detailnya, seperti nama produk, harga, kuantitas, dan total harga.



File Produk.java

package AlfaMantul;
public class Produk {
    private String namaProduk;
    private int harga;
    private int jumlahStok;

    public Produk(String namaProduk, int harga, int jumlahStok) {
        this.namaProduk = namaProduk;
        this.harga = harga;
        this.jumlahStok = jumlahStok;
    }

    // Setter NamaProduk
    public String getNamaProduk() {
        return namaProduk;
    }

    // Setter Harga
    public int getHarga() {
        return harga;
    }

    // Setter JumlahStok
    public int getJumlahStok() {
        return jumlahStok;
    }


    public void kurangiStok(int jumlah) {
        this.jumlahStok -= jumlah;
    }

    public void displayInfo(){
        System.out.println("Toko Alfa Mantul");
        System.out.println("Nama Produk : " + namaProduk);
        System.out.println("Harga Produk : " + harga);
        System.out.println("Jumlah Stok : " + jumlahStok);
    }
}

Penjelasan

  1. Deklarasi Package
package AlfaMantul;

Package AlfaMantul digunakan untuk mengelompokkan kelas ini bersama kelas-kelas lainnya yang berkaitan dalam satu modul atau direktori.


  1. Kelas Produk
public class Produk {
    // Kode di dalam kelas
}

Kelas Produk bersifat public, sehingga dapat diakses oleh kelas lain di luar paket ini. Kelas ini berisi atribut dan metode yang berkaitan dengan informasi dasar produk.


  1. Atribut (Properti Produk)
private String namaProduk;
private int harga;
private int jumlahStok;

Atribut namaProduk, harga, dan jumlahStok masing-masing digunakan untuk menyimpan :

namaProduk : Nama dari produk, misalnya "Laptop" atau "Kaos".

harga : Harga produk dalam bentuk bilangan bulat (integer).

jumlahStok : Jumlah stok produk yang tersedia.

Atribut-atribut ini dideklarasikan sebagai private, yang artinya hanya dapat diakses dari dalam kelas Produk saja, sehingga tidak bisa diakses langsung oleh kelas luar.


  1. Konstruktor Produk
public Produk(String namaProduk, int harga, int jumlahStok) {
    this.namaProduk = namaProduk;
    this.harga = harga;
    this.jumlahStok = jumlahStok;
}

Konstruktor ini digunakan untuk menginisialisasi objek Produk dengan nilai-nilai awal untuk namaProduk, harga, dan jumlahStok. Ketika objek Produk dibuat, nilai-nilai yang diberikan sebagai parameter akan disimpan ke dalam atribut kelas.


  1. Metode Getter
public String getNamaProduk() {
    return namaProduk;
}

public int getHarga() {
    return harga;
}

public int getJumlahStok() {
    return jumlahStok;
}

Ketiga metode di atas adalah metode "getter", yang berfungsi untuk mengakses nilai dari atribut namaProduk, harga, dan jumlahStok. Metode ini memungkinkan kelas lain untuk mengambil nilai atribut tersebut tanpa perlu mengaksesnya secara langsung.


  1. Metode kurangiStok
public void kurangiStok(int jumlah) {
    this.jumlahStok -= jumlah;
}

Metode kurangiStok digunakan untuk mengurangi jumlah stok produk. Metode ini menerima parameter jumlah, yang kemudian akan dikurangkan dari jumlahStok. Ini berguna, misalnya, ketika ada pembelian produk sehingga stoknya berkurang.


  1. Metode displayInfo
public void displayInfo(){
    System.out.println("Toko Alfa Mantul");
    System.out.println("Nama Produk : " + namaProduk);
    System.out.println("Harga Produk : " + harga);
    System.out.println("Jumlah Stok : " + jumlahStok);
}

Metode displayInfo digunakan untuk menampilkan informasi produk ke layar, termasuk nama toko, nama produk, harga produk, dan jumlah stok yang tersedia. Metode ini memberikan output yang informatif tentang produk ketika dipanggil.



File elektronik.java

package AlfaMantul;
public class elektronik extends Produk {
    private int garansi;

    public elektronik (String namaProduk, int harga, int jumlahStok, int garansi) {
        super(namaProduk, harga, jumlahStok);
        this.garansi = garansi;
    }

    // Setter dan Getter Garansi
    public int getGaransi() {
        return garansi;
    }

    public void setGaransi(int garansi) {
        this.garansi = garansi;
    }

    @Override
    public void displayInfo() {
        super.displayInfo();
        System.out.println("Garansi : " + this.garansi + " tahun");

    }
}

  1. Deklarasi package
package AlfaMantul;

Kelas elektronik dikelompokkan ke dalam package AlfaMantul, bersama kelas-kelas lain dalam sistem yang sama.


  1. Kelas elektronik dan Pewarisan
public class elektronik extends Produk {
    // Kode di dalam kelas
}

Kelas elektronik dideklarasikan sebagai public, sehingga dapat diakses oleh kelas lain. Kelas ini menggunakan konsep pewarisan (inheritance) dengan kata kunci extends, yang menunjukkan bahwa elektronik adalah turunan dari kelas Produk. Dengan pewarisan ini, kelas elektronik mewarisi semua atribut dan metode dari kelas Produk, seperti namaProduk, harga, jumlahStok, dan metode displayInfo.


  1. Atribut garansi
private int garansi;

Atribut garansi menyimpan informasi tambahan khusus untuk produk elektronik, yaitu lama garansi dalam tahun. Atribut ini bertipe int dan bersifat private, yang berarti hanya dapat diakses dalam kelas elektronik.


  1. Konstruktor elektronik
public elektronik (String namaProduk, int harga, int jumlahStok, int garansi) {
    super(namaProduk, harga, jumlahStok);
    this.garansi = garansi;
}

Konstruktor elektronik digunakan untuk menginisialisasi objek elektronik dengan nilai-nilai yang diperlukan :

namaProduk : Nama produk elektronik.
harga : Harga produk elektronik.
jumlahStok : Jumlah stok produk elektronik.
garansi : Lama garansi produk dalam tahun.

Kata kunci super digunakan untuk memanggil konstruktor dari kelas Produk, yang akan menginisialisasi atribut namaProduk, harga, dan jumlahStok. Setelah itu, atribut garansi diatur sesuai dengan parameter yang diterima.


  1. Metode Getter dan Setter garansi
public int getGaransi() {
    return garansi;
}

public void setGaransi(int garansi) {
    this.garansi = garansi;
}

getGaransi : Metode ini mengembalikan nilai garansi, yang memungkinkan kelas lain untuk membaca informasi garansi produk elektronik.

setGaransi : Metode ini mengubah nilai garansi, yang memungkinkan pengaturan ulang lama garansi jika dibutuhkan.


  1. Override Metode displayInfo
@Override
public void displayInfo() {
    super.displayInfo();
    System.out.println("Garansi : " + this.garansi + " tahun");
}

Metode displayInfo di-override (diubah) dari versi aslinya di kelas Produk. Dengan kata kunci @Override, metode ini akan menambahkan informasi garansi produk elektronik. Metode ini memanggil super.displayInfo() untuk menampilkan informasi dasar produk dari kelas Produk, lalu menambahkan detail garansi dengan output Garansi : <nilai garansi> tahun.



File pakaian.java

package AlfaMantul;

public class pakaian extends Produk {
    private String ukuran;
    private String warna;

    public pakaian (String namaProduk, int harga,int jumlahStok, String ukuran, String warna) {
        super(namaProduk, harga, jumlahStok);
        this.ukuran = ukuran;
        this.warna = warna;
    }

    // Setter Ukuran
    public String getUkuran() {
        return ukuran;
    }

    // Setter Warna
    public String getWarna() {
        return warna;
    }

    @Override
    public void displayInfo(){
        super.displayInfo();
        System.out.println("Ukuran : " + this.ukuran);
        System.out.println("Warna : " + this.warna);
    }

}

  1. Deklarasi Package
package AlfaMantul;

Package AlfaMantul digunakan untuk mengelompokkan kelas pakaian bersama dengan kelas lain dalam proyek yang sama.


  1. Kelas pakaian dan Pewarisan
public class pakaian extends Produk {
    // Kode di dalam kelas
}

Kelas pakaian adalah subclass dari Produk, yang artinya pakaian mewarisi semua atribut dan metode dari Produk. Dengan kata kunci extends, kelas ini memperoleh atribut dasar seperti namaProduk, harga, dan jumlahStok serta metode seperti displayInfo dari kelas induknya.


  1. Atribut ukuran dan warna
private String ukuran;
private String warna;

Kelas pakaian memiliki dua atribut tambahan :

ukuran : Menyimpan ukuran produk pakaian, misalnya "M", "L", atau "XL".
warna : Menyimpan warna produk pakaian, misalnya "Hitam" atau "Biru".

Kedua atribut ini bersifat private, sehingga hanya dapat diakses dan diubah melalui metode di dalam kelas pakaian.


  1. Konstruktor pakaian
public pakaian (String namaProduk, int harga, int jumlahStok, String ukuran, String warna) {
    super(namaProduk, harga, jumlahStok);
    this.ukuran = ukuran;
    this.warna = warna;
}

Konstruktor pakaian digunakan untuk menginisialisasi objek dengan atribut yang dibutuhkan :

namaProduk : Nama produk pakaian.
harga : Harga produk.
jumlahStok : Jumlah stok produk yang tersedia.
ukuran : Ukuran pakaian.
warna : Warna pakaian.

Konstruktor ini memanggil konstruktor kelas Produk dengan super, yang menginisialisasi namaProduk, harga, dan jumlahStok, sementara ukuran dan warna diatur di dalam konstruktor pakaian sendiri.


  1. Metode Getter ukuran dan warna
public String getUkuran() {
    return ukuran;
}

public String getWarna() {
    return warna;
}

Metode ini adalah getter yang mengembalikan nilai ukuran dan warna :

getUkuran : Mengembalikan ukuran pakaian.
getWarna : Mengembalikan warna pakaian.

Metode ini memungkinkan atribut ukuran dan warna diakses dari luar kelas pakaian.


  1. Override Metode displayInfo
@Override
public void displayInfo(){
    super.displayInfo();
    System.out.println("Ukuran : " + this.ukuran);
    System.out.println("Warna : " + this.warna);
}

Metode displayInfo di-override dari kelas Produk. Dengan @Override, metode ini memanggil super.displayInfo() untuk menampilkan informasi dasar dari Produk, seperti namaProduk, harga, dan jumlahStok. Setelah itu, informasi ukuran dan warna ditambahkan untuk melengkapi deskripsi produk pakaian.



File makanan.java

package AlfaMantul;

import java.util.Date;

public class makanan extends Produk {
    private Date exp;

    public makanan(String namaProduk,int harga,int jumlahStok, Date exp) {
        super(namaProduk, harga, jumlahStok);
        this.exp = exp;
    }

    @Override
    public void displayInfo(){
        super.displayInfo();
        System.out.println("Tanggal Exp : " + this.exp);
    }

}

  1. Deklarasi Package dan Impor Kelas
package AlfaMantul;
import java.util.Date;

Kode ini berada dalam package AlfaMantul, yang mengelompokkan kelas makanan bersama kelas-kelas lain dalam proyek ini. Kelas Date diimpor dari pustaka Java, digunakan untuk menyimpan data tanggal kedaluwarsa produk makanan.


  1. Kelas makanan dan Pewarisan
public class makanan extends Produk {
    // Kode di dalam kelas
}

Kelas makanan merupakan subclass dari kelas Produk. Dengan kata kunci extends, kelas ini mewarisi semua atribut dan metode dari kelas Produk, seperti namaProduk, harga, dan jumlahStok, serta metode displayInfo.


  1. Atribut exp
private Date exp;

Atribut exp adalah variabel bertipe Date yang menyimpan tanggal kedaluwarsa (expired) produk makanan. Atribut ini bersifat private, sehingga hanya dapat diakses melalui metode dalam kelas makanan.


  1. Konstruktor makanan
public makanan(String namaProduk, int harga, int jumlahStok, Date exp) {
    super(namaProduk, harga, jumlahStok);
    this.exp = exp;
}

Konstruktor makanan digunakan untuk menginisialisasi objek makanan dengan atribut yang diperlukan :

namaProduk : Nama produk makanan.
harga : Harga produk.
jumlahStok : Jumlah stok produk yang tersedia.
exp : Tanggal kedaluwarsa produk.

Kata kunci super digunakan untuk memanggil konstruktor kelas Produk, yang menginisialisasi namaProduk, harga, dan jumlahStok. Setelah itu, atribut exp diatur menggunakan nilai Date yang diberikan sebagai parameter.


  1. Override Metode displayInfo
@Override
public void displayInfo(){
    super.displayInfo();
    System.out.println("Tanggal Exp : " + this.exp);
}

Metode displayInfo di-override dari kelas Produk untuk menampilkan informasi tambahan mengenai tanggal kedaluwarsa. Dengan memanggil super.displayInfo(), metode ini menampilkan informasi dasar produk seperti namaProduk, harga, dan jumlahStok, kemudian menambahkan detail Tanggal Exp yang menunjukkan tanggal kedaluwarsa produk makanan.



File keranjangBelanja.java

package AlfaMantul;
import java.util.ArrayList;

public class keranjangBelanja {
    private ArrayList<Produk> keranjang;

    public keranjangBelanja() {
        keranjang = new ArrayList<>();
    }

    public void tambahProduk(Produk p, int jumlah) {
        if (p.getJumlahStok() >= jumlah) {
            p.kurangiStok(jumlah);
            keranjang.add(p);
            System.out.println("Produk " + p.getNamaProduk() + " ditambahkan sebanyak " + jumlah);
        } else {
            System.out.println("Stok tidak mencukupi untuk produk " + p.getNamaProduk());
        }
    }

    public int hitungTotalBelanja() {
        int total = 0;
        for (Produk item : keranjang) {
            total += item.getHarga();
        }
        return total;
    }

    public void displayKeranjang() {
        System.out.println("Isi Keranjang Belanja :");
        for (Produk item : keranjang) {
            System.out.println("- " + item.getNamaProduk() + " = Rp" + item.getHarga());
        }
        System.out.println("Total Belanja : Rp" + hitungTotalBelanja());
    }
}

  1. Deklarasi Package dan Impor Kelas
package AlfaMantul;
import java.util.ArrayList;

Kelas keranjangBelanja berada dalam paket AlfaMantul, dan kelas ArrayList diimpor dari pustaka Java untuk menyimpan daftar produk dalam bentuk list dinamis.


  1. Deklarasi Kelas keranjangBelanja dan Atribut keranjang
public class keranjangBelanja {
    private ArrayList<Produk> keranjang;
}

Kelas keranjangBelanja memiliki atribut keranjang, yang merupakan ArrayList berisi objek Produk. Dengan deklarasi private, atribut ini hanya dapat diakses dalam kelas keranjangBelanja.


  1. Konstruktor keranjangBelanja
public keranjangBelanja() {
    keranjang = new ArrayList<>();
}

Konstruktor ini menginisialisasi atribut keranjang sebagai objek ArrayList, siap untuk menyimpan produk-produk yang akan ditambahkan.


  1. Metode tambahProduk
public void tambahProduk(Produk p, int jumlah) {
    if (p.getJumlahStok() >= jumlah) {
        p.kurangiStok(jumlah);
        keranjang.add(p);
        System.out.println("Produk " + p.getNamaProduk() + " ditambahkan sebanyak " + jumlah);
    } else {
        System.out.println("Stok tidak mencukupi untuk produk " + p.getNamaProduk());
    }
}

Metode ini digunakan untuk menambahkan produk p ke dalam keranjang dengan jumlah tertentu :

Validasi Stok : Metode ini memeriksa apakah stok produk mencukupi untuk jumlah yang diminta. Jika stok mencukupi, stok produk dikurangi dengan kurangiStok, lalu produk ditambahkan ke keranjang.

Pesan Kesuksesan atau Kegagalan : Jika produk berhasil ditambahkan, pesan konfirmasi ditampilkan. Jika stok tidak mencukupi, pesan peringatan muncul.


  1. Metode hitungTotalBelanja
public int hitungTotalBelanja() {
    int total = 0;
    for (Produk item : keranjang) {
        total += item.getHarga();
    }
    return total;
}

Metode ini menghitung total belanja dalam keranjang dengan menjumlahkan harga setiap produk yang ada di dalam keranjang. Nilai total dikembalikan dalam bentuk integer.


  1. Metode displayKeranjang
public void displayKeranjang() {
    System.out.println("Isi Keranjang Belanja :");
    for (Produk item : keranjang) {
        System.out.println("- " + item.getNamaProduk() + " = Rp" + item.getHarga());
    }
    System.out.println("Total Belanja : Rp" + hitungTotalBelanja());
}

Metode ini digunakan untuk menampilkan daftar produk di keranjang beserta total harga belanja. Setiap produk dalam keranjang ditampilkan dengan nama dan harganya, diikuti dengan total keseluruhan yang dihitung melalui hitungTotalBelanja.

About

Praktikum Pertemuan Ke 7 Pemrograman Orientasi Objek.


Languages

Language:Java 100.0%