Skip to main content

Soal 1 - Sekolah

Di sebuah sekolah, terdapat Siswa dan Guru. Setiap siswa memiliki beberapa informasi pribadi seperti nama, nomor induk siswa (NIS), dan kelas tempat mereka belajar. Sedangkan setiap guru memiliki beberapa informasi terkait identitas mereka, seperti nama, ID guru, dan mata pelajaran yang diajarkan.Tugas Anda adalah mendesain dua class, Siswa dan Guru, serta mengatur objek-objek tersebut di dalam class MainSekolah
1

Class Siswa

  • Properti:
    • nama (String): Nama lengkap siswa.
    • nis (String): Nomor Induk Siswa.
    • kelas (String): Kelas tempat siswa belajar (misalnya “10A”, “12B”).
2

Class Guru

  • Properti:
    • nama (String): Nama lengkap guru.
    • idGuru (String): ID unik untuk guru.
    • mataPelajaran (String): Mata pelajaran yang diajarkan oleh guru.
Buatlah sebuah Main Class bernama MainSekolah yang akan mendemonstrasikan pembuatan dan penggunaan objek dari class Siswa dan Guru. Ikuti instruksi berikut:
1

Membuat Objek Siswa

  • Buat objek pertama dari class Siswa dan ubah properti sebagai berikut:
    • Nama Siswa: “Budi Santoso”
    • NIS: “S12345”
    • Kelas: “10A”
  • Buat objek kedua dari class Siswa dan ubah properti sebagai berikut:
    • Nama Siswa: “Ani Wijaya”
    • NIS: “S67890”
    • Kelas: “12B”
2

Membuat Objek Guru

  • Buat objek pertama dari class Guru dan ubah properti sebagai berikut:
    • Nama Guru: “Pak Joko”
    • ID Guru: “G123”
    • Mata Pelajaran: “Matematika”
  • Buat objek kedua dari class Guru dan ubah properti sebagai berikut:
    • Nama Guru: “Bu Siti”
    • ID Guru: “G456”
    • Mata Pelajaran: “Bahasa Indonesia”
3

Menampilkan Informasi

  • Setelah objek-objek tersebut dibuat dan propertinya diatur, tampilkan informasi dari masing-masing objek ke layar dengan format berikut:
    • Untuk setiap objek siswa, tampilkan: Siswa [Nomor]: Nama: [nama], NIS: [nis], Kelas: [kelas]
    • Untuk setiap objek guru, tampilkan: Guru [Nomor]: Nama: [nama], ID Guru: [idGuru], Mata Pelajaran: [mataPelajaran]

Contoh Output yang Diharapkan:

Siswa 1: Nama: Budi Santoso, NIS: S12345, Kelas: 10A
Siswa 2: Nama: Ani Wijaya, NIS: S67890, Kelas: 12B
Guru 1: Nama: Pak Joko, ID Guru: G123, Mata Pelajaran: Matematika
Guru 2: Nama: Bu Siti, ID Guru: G456, Mata Pelajaran: Bahasa Indonesia

Soal 2 - Perpustakaan

Di sebuah perpustakaan, terdapat buku yang memiliki informasi seperti judul, penulis, dan harga. Perpustakaan ingin menampilkan informasi buku serta menghitung durasi peminjaman berdasarkan jumlah hari.Tugas Anda adalah membuat class untuk buku tersebut, menambahkan constructor untuk inisialisasi objek, serta method untuk menampilkan informasi buku dan menghitung biaya peminjaman berdasarkan jumlah hari pinjam.
1

Class Buku

  • Properti:
    • judul (String): Judul buku (misalnya “Harry Potter”).
    • penulis (String): Penulis buku (misalnya “J.K. Rowling”).
    • harga (double): Harga buku dalam satuan IDR (misalnya 100000).
  • Constructor:
    • Constructor untuk menginisialisasi semua properti objek (judul, penulis, harga).
  • Method:
    • tampilkanInformasi(): Menampilkan informasi lengkap tentang buku.
    • hitungBiayaPeminjaman(int jumlahHari): Menghitung biaya peminjaman buku per hari berdasarkan harga buku (biaya per hari adalah 5% dari harga buku).
Buatlah sebuah Main Class bernama MainPerpustakaan yang akan mendemonstrasikan pembuatan objek dan penggunaan method dari class BukuFiksi dan BukuNonFiksi. Ikuti instruksi berikut:
1

Membuat Objek Buku

  • Buat objek pertama dari class Buku dengan informasi berikut:
    • Judul: “Harry Potter”
    • Penulis: “J.K. Rowling”
    • Harga: 150000
  • Buat objek kedua dari class Buku dengan informasi berikut:
    • Judul: “The Hobbit”
    • Penulis: “J.R.R. Tolkien”
    • Harga: 120000
2

Menggunakan Method

  • Tampilkan informasi tentang setiap buku menggunakan method tampilkanInformasi().
  • Hitung dan tampilkan biaya peminjaman untuk setiap buku berdasarkan jumlah hari peminjaman (misalnya pinjam selama 7 hari) menggunakan method hitungBiayaPeminjaman(int jumlahHari)

Contoh Output yang Diharapkan:

Buku 1: Judul: Harry Potter, Penulis: J.K. Rowling, Harga: 150000
Biaya peminjaman untuk 7 hari: 52500.0

Buku 2: Judul: The Hobbit, Penulis: J.R.R. Tolkien, Harga: 120000
Biaya peminjaman untuk 7 hari: 42000.0

Soal 3 - Toko Online

Di sebuah toko online, setiap produk yang dijual memiliki informasi dasar seperti nama produk, harga, dan stok yang tersedia. Sistem toko harus mampu mengelola produk dengan mengubah harga, menambah atau mengurangi stok, dan menampilkan informasi produk.
  1. Nama Produk: Nama produk yang dijual di toko.
  2. Harga Produk: Harga dari setiap produk yang dijual.
  3. Stok Produk: Jumlah stok yang tersedia untuk produk tersebut.
Anda diminta untuk membuat class Produk dengan menggunakan access modifiers untuk melindungi data produk, dan menambahkan getter dan setter untuk mengakses dan mengubah informasi produk. Selain itu, sistem juga membutuhkan beberapa method untuk menghitung total harga berdasarkan jumlah produk yang dibeli serta menambah atau mengurangi stok produk.
1

Class Produk

  • Properti:
    • namaProduk (String): Nama produk (misalnya ”Laptop”, ”Headphone”).
    • harga (double): Harga produk dalam rupiah (misalnya 1000000).
    • stok (int): Jumlah stok yang tersedia untuk produk
  • Constructor:
    • Constructor untuk menginisialisasi namaProduk, harga, dan stok saat objek dibuat.
  • Method:
    • getNamaProduk(): Menampilkan nama produk (getter).
    • setNamaProduk(String namaProduk): Mengubah nama produk (setter).
    • getHarga(): Menampilkan harga produk (getter).
    • setHarga(double harga): Mengubah harga produk (setter).
    • getStok(): Menampilkan jumlah stok produk (getter).
    • setStok(int stok): Mengubah jumlah stok produk (setter).
    • hitungTotalHarga(int jumlahProduk): Menghitung total harga untuk pembelian sejumlah produk berdasarkan harga satuan produk.
    • tambahStok(int jumlah): Menambah jumlah stok produk.
    • kurangiStok(int jumlah): Mengurangi jumlah stok produk jika jumlah stok yang tersedia cukup, jika tidak tampilkan pesan error
Buatlah sebuah Main Class bernama MainTokoOnline yang akan mendemonstrasikan pembuatan objek Produk dan penggunaan method getter, setter, serta transaksi pembelian produk. Ikuti instruksi berikut:
1

Membuat Objek Produk

  • Buat objek pertama dari class Produk dengan informasi berikut:
    • Nama Produk: ”Laptop”
    • Harga: 1000000
    • Stok: 50
  • Buat objek kedua dari class Produk dengan informasi berikut:
    • Nama Produk: ”Headphone”
    • Harga: 200000
    • Stok: 100
2

Menggunakan Getter dan Setter

  • Tampilkan nama produk, harga, dan stok untuk kedua produk menggunakan method getter.
  • Ubah nama produk untuk produk pertama menjadi ”Gaming Laptop” menggunakan method setNamaProduk().
  • Ubah harga untuk produk kedua menjadi 180000 menggunakan method setHarga().
  • Tampilkan kembali nama produk, harga, dan stok setelah perubahan.
3

Transaksi Pembelian dan Stok

  • Hitung dan tampilkan total harga untuk membeli 3 produk ”Gaming Laptop” menggunakan method hitungTotalHarga().
  • Tambahkan stok untuk produk pertama sebanyak 20 menggunakan method tambahStok().
  • Kurangi stok untuk produk kedua sebanyak 5 menggunakan method kurangiStok().
  • Tampilkan kembali stok setelah dilakukan penambahan dan pengurangan.

Contoh Output yang Diharapkan:

Produk 1: Nama Produk: Laptop, Harga: 1000000, Stok: 50
Produk 2: Nama Produk: Headphone, Harga: 200000, Stok: 100

Setelah update nama dan harga:
Produk 1: Nama Produk: Gaming Laptop, Harga: 1000000, Stok: 50
Produk 2: Nama Produk: Headphone, Harga: 180000, Stok: 100

Total harga untuk 3 unit Gaming Laptop: 3000000

Setelah transaksi stok:
Produk 1: Nama Produk: Gaming Laptop, Harga: 1000000, Stok: 70
Produk 2: Nama Produk: Headphone, Harga: 180000, Stok: 95

Soal 4 - Sistem Manajemen Perpustakaan

Di sebuah perpustakaan, terdapat banyak koleksi buku yang perlu dikelola, di antaranya adalah informasi buku, pengarang, dan kategori buku. Setiap buku memiliki informasi seperti judul, tahun terbit, dan status ketersediaan (apakah buku tersedia atau dipinjam). Setiap pengarang dapat memiliki beberapa buku yang diterbitkan, dan setiap buku masuk dalam satu kategori tertentu (misalnya Fiksi, Non-Fiksi, Teknologi, dll.).Anda diminta untuk membuat sistem yang mengelola Buku, Pengarang, dan Kategori Buku dengan menggunakan konsep Object Composition, di mana setiap Buku akan memiliki referensi ke objek Pengarang dan objek Kategori Buku. Setiap Pengarang dapat memiliki banyak Buku, dan setiap Kategori Buku dapat berisi banyak Buku.
1

Class Pengarang

  • Properti:
    • namaPengarang (String): Nama pengarang buku (misalnya “J.K. Rowling”).
    • tahunLahir (int): Tahun lahir pengarang (misalnya 1965).
    • daftarBuku (List): Daftar buku yang ditulis oleh pengarang ini.
  • Constructor:
    • Constructor untuk menginisialisasi namaPengarang dan tahunLahir, serta menginisialisasi daftar daftarBuku
  • Method:
    • getNamaPengarang(): Mengambil nama pengarang (getter).
    • setNamaPengarang(String namaPengarang): Mengubah nama pengarang (setter).
    • getTahunLahir(): Mengambil tahun lahir pengarang (getter).
    • setTahunLahir(int tahunLahir): Mengubah tahun lahir pengarang (setter).
    • getDaftarBuku(): Mengambil daftar buku yang ditulis pengarang ini.
    • tambahBuku(Buku buku): Menambahkan buku baru yang ditulis oleh pengarang ini.
2

Class KategoriBuku

  • Properti:
    • namaKategori (String): Nama kategori buku (misalnya ”Fiksi”, ”Non-Fiksi”).
    • daftarBuku (List): Daftar buku yang termasuk dalam kategori ini.
  • Constructor:
    • Constructor untuk menginisialisasi namaKategori dan daftarBuku.
  • Method:
    • getNamaKategori(): Mengambil nama kategori buku (getter).
    • setNamaKategori(String namaKategori): Mengubah nama kategori buku (setter).
    • getDaftarBuku(): Mengambil daftar buku yang termasuk dalam kategori ini.
    • tambahBuku(Buku buku): Menambahkan buku baru ke dalam kategori ini.
3

Class Buku

  • Properti:
    • judul (String): Judul buku (misalnya ”Harry Potter and the Sorcerer’s Stone”).
    • tahunTerbit (int): Tahun penerbitan buku (misalnya 1997).
    • statusTersedia (boolean): Status ketersediaan buku (true jika buku tersedia, false jika dipinjam).
    • pengarang (Pengarang): Objek pengarang yang menulis buku ini.
    • kategori (KategoriBuku): Objek kategori buku yang terkait dengan buku ini.
  • Constructor:
    • Constructor untuk menginisialisasi judul, tahunTerbit, statusTersedia, pengarang, dan kategori.
  • Method:
    • getJudul(): Mengambil judul buku (getter).
    • setJudul(String judul): Mengubah judul buku (setter).
    • getTahunTerbit(): Mengambil tahun terbit buku (getter).
    • setTahunTerbit(int tahunTerbit): Mengubah tahun terbit buku (setter).
    • getStatusTersedia(): Mengambil status ketersediaan buku (getter).
    • setStatusTersedia(boolean statusTersedia): Mengubah status ketersediaan buku (setter).
    • getPengarang(): Mengambil pengarang buku (getter).
    • getKategori(): Mengambil kategori buku (getter).
    • pinjamBuku(): Mengubah status buku menjadi tidak tersedia (dipinjam).
    • kembalikanBuku(): Mengubah status buku menjadi tersedia kembali.
Buatlah sebuah Main Class bernama MainSistemPerpustakaan yang akan mendemonstrasikan pembuatan objek Buku, Pengarang, dan KategoriBuku, serta penggunaan method Object Composition untuk mengelola buku-buku yang ada di perpustakaan. Ikuti instruksi berikut:
1

Membuat Objek Pengarang

  • Buat objek Pengarang dengan informasi berikut:
    • Nama Pengarang: ”J.K. Rowling”
    • Tahun Lahir: 1965
2

Membuat Objek KategoriBuku

  • Buat objek KategoriBuku dengan informasi berikut:
    • Nama Kategori: ”Fiksi”
  • Buat objek KategoriBuku lainnya dengan nama kategori ”NonFiksi”.
3

Membuat Objek Buku

  • Buat beberapa objek Buku dengan informasi berikut:
    • Buku 1: Judul: ”Harry Potter and the Sorcerer’s Stone”, Tahun Terbit: 1997, Status: Tersedia, Pengarang: ”J.K. Rowling”, Kategori: ”Fiksi”
    • Buku 2: Judul: ”Harry Potter and the Chamber of Secrets”, Tahun Terbit: 1998, Status: Tersedia, Pengarang: ”J.K. Rowling”, Kategori: ”Fiksi”
    • Buku 3: Judul: ”The Intelligent Investor”, Tahun Terbit: 1949, Status: Tersedia, Pengarang: ”Benjamin Graham”, Kategori: ”Non-Fiksi”
4

Menambahkan Buku ke Pengarang dan Kategori

  • Tambahkan Buku 1 dan Buku 2 ke dalam daftar buku pengarang ”J.K. Rowling”.
  • Tambahkan Buku 3 ke dalam daftar buku kategori ”Non-Fiksi”.
5

Menggunakan Method

  • Tampilkan informasi tentang pengarang dan buku yang ditulis menggunakan method getter.
  • Tampilkan informasi tentang kategori dan daftar buku yang ada di kategori tersebut.
  • Lakukan peminjaman buku Buku 1 dan Buku 3, kemudian tampilkan status ketersediaan buku setelah dipinjam.
  • Kembalikan Buku 1 dan Buku 3, kemudian tampilkan status ketersediaan buku setelah dikembalikan.

Contoh Output yang Diharapkan:

Pengarang: J.K. Rowling, Tahun Lahir: 1965
Daftar Buku oleh J.K. Rowling:
- Harry Potter and the Sorcerer's Stone (1997), Status: Tersedia
- Harry Potter and the Chamber of Secrets (1998), Status: Tersedia

Kategori: Fiksi
Daftar Buku dalam Kategori Fiksi:
- Harry Potter and the Sorcerer's Stone (1997)
- Harry Potter and the Chamber of Secrets (1998)

Kategori: Non-Fiksi
Daftar Buku dalam Kategori Non-Fiksi:
- The Intelligent Investor (1949)

Peminjaman Buku:
Buku 1 dipinjam (Status: Tidak Tersedia)
Buku 3 dipinjam (Status: Tidak Tersedia)

Setelah Dikembalikan:
Buku 1 (Harry Potter and the Sorcerer's Stone) Status: Tersedia
Buku 3 (The Intelligent Investor) Status: Tersedia

Soal 5 - Sistem Manajemen Pegawai

Di sebuah perusahaan, terdapat berbagai jenis pegawai dengan peran yang berbeda-beda, seperti Manajer dan Karyawan. Setiap pegawai memiliki informasi dasar seperti nama, nomor induk karyawan (NIK), jabatan, dan gaji pokok. Namun, manajer memiliki atribut tambahan seperti departemen yang dipimpin dan bonus, sedangkan karyawan memiliki atribut tambahan seperti jam lembur yang mereka kerjakan.Anda diminta untuk membuat sistem manajemen pegawai yang menggunakan konsep Inheritance. Anda akan membuat class dasar Pegawai, yang memiliki atribut umum untuk semua pegawai, dan dua class turunan Manajer dan Karyawan yang menambahkan atribut khusus sesuai dengan jenis pegawai tersebut.
1

Class Pegawai (superclass)

  • Properti:
    • nama (String): Nama pegawai (misalnya ”Budi”).
    • nik (String): Nomor induk karyawan (misalnya ”12345”).
    • jabatan (String): Jabatan pegawai (misalnya ”Manajer” atau ”Karyawan”).
    • gajiPokok (double): Gaji pokok pegawai (misalnya 5000000).
  • Constructor:
    • Constructor untuk menginisialisasi nama, nik, jabatan, dan gajiPokok.
  • Method:
    • getNama(): Mengambil nama pegawai (getter).
    • setNama(String nama): Mengubah nama pegawai (setter).
    • getNik(): Mengambil nomor induk pegawai (getter).
    • setNik(String nik): Mengubah nomor induk pegawai (setter).
    • getJabatan(): Mengambil jabatan pegawai (getter).
    • setJabatan(String jabatan): Mengubah jabatan pegawai (setter).
    • getGajiPokok(): Mengambil gaji pokok pegawai (getter).
    • setGajiPokok(double gajiPokok): Mengubah gaji pokok pegawai (setter).
    • tampilkanInfo(): Menampilkan informasi dasar pegawai (nama, NIK, jabatan, gaji pokok).
2

Class Manajer (subclass dari Pegawai)

  • Properti:
    • departemen (String): Departemen yang dipimpin manajer (misalnya ”Keuangan” atau ”IT”).
    • bonus (double): Bonus yang diterima manajer (misalnya 2000000).
  • Constructor:
    • Constructor untuk menginisialisasi nama, nik, jabatan, gajiPokok, departemen, dan bonus.
  • Method:
    • getDepartemen(): Mengambil nama departemen yang dipimpin (getter).
    • setDepartemen(String departemen): Mengubah nama departemen yang dipimpin (setter).
    • getBonus(): Mengambil bonus manajer (getter).
    • setBonus(double bonus): Mengubah bonus manajer (setter).
    • tampilkanInfo(): Menampilkan informasi lengkap manajer, termasuk atribut dasar dari superclass Pegawai dan atribut tambahan manajer.
3

Class Karyawan (subclass dari Pegawai)

  • Properti:
    • jamLembur (int): Jumlah jam lembur yang dikerjakan oleh karyawan (misalnya 10 jam).
  • Constructor:
    • Constructor untuk menginisialisasi nama, nik, jabatan, gajiPokok, dan jamLembur.
  • Method:
    • getJamLembur(): Mengambil jumlah jam lembur karyawan (getter).
    • setJamLembur(int jamLembur): Mengubah jumlah jam lembur karyawan (setter).
    • tampilkanInfo(): Menampilkan informasi lengkap karyawan, termasuk atribut dasar dari superclass Pegawai dan atribut tambahan karyawan.
Buatlah sebuah Main Class bernama MainSistemManajemenPegawai yang akan mendemonstrasikan pembuatan objek Pegawai, Manajer, dan Karyawan, serta penggunaan konsep Inheritance. Ikuti instruksi berikut:
1

Membuat Objek Pegawai

  • Buat objek Pegawai dengan informasi berikut:
    • Nama: ”Rina”
    • NIK: ”12345”
    • Jabatan: ”Karyawan”
    • Gaji Pokok: 4500000
2

Membuat Objek Manajer

  • Buat objek Manajer dengan informasi berikut:
    • Nama: ”Andi”
    • NIK: ”23456”
    • Jabatan: ”Manajer”
    • Gaji Pokok: 7000000
    • Departemen: ”Keuangan”
    • Bonus: 3000000
3

Membuat Objek Karyawan

  • Nama: ”Siti”
  • NIK: ”34567”
  • Jabatan: ”Karyawan”
  • Gaji Pokok: 5000000
  • Jam Lembur: 15 jam
4

Menggunakan Method

  • Tampilkan informasi dari objek Pegawai, Manajer, dan Karyawan menggunakan method tampilkanInfo().
  • Ubah jam lembur dari objek Karyawan menjadi 20 jam dan tampilkan kembali informasi karyawan tersebut.
  • Ubah bonus dari objek Manajer menjadi 4000000 dan tampilkan kembali informasi manajer tersebut.

Contoh Output yang Diharapkan:

Pegawai: Nama: Rina, NIK: 12345, Jabatan: Karyawan, Gaji Pokok: 4500000

Manajer: Nama: Andi, NIK: 23456, Jabatan: Manajer, Gaji Pokok: 7000000, Departemen: Keuangan, Bonus: 3000000

Karyawan: Nama: Siti, NIK: 34567, Jabatan: Karyawan, Gaji Pokok: 5000000, Jam Lembur: 15

Setelah Perubahan:
Karyawan Baru: Nama: Siti, NIK: 34567, Jabatan: Karyawan, Gaji Pokok: 5000000, Jam Lembur: 20

Manajer Baru: Nama: Andi, NIK: 23456, Jabatan: Manajer, Gaji Pokok: 7000000, Departemen: Keuangan, Bonus: 4000000

Soal 6 - Sistem Pengiriman Barang

Di sebuah perusahaan logistik, terdapat beberapa jenis layanan pengiriman barang, seperti Pengiriman Ekspres dan Pengiriman Reguler. Masing-masing layanan pengiriman memiliki cara menghitung biaya pengiriman yang berbeda, bergantung pada berat barang, jarak pengiriman, dan jenis layanan yang dipilih. Sistem ini akan mendemonstrasikan penggunaan Polymorphism, di mana method hitungBiayaPengiriman() akan di-override pada subclass yang berbeda.
1

Class Pengiriman (superclass)

  • Properti:
    • beratBarang (double): Berat barang yang akan dikirim (misalnya 5.5 kg).
    • jarak (double): Jarak pengiriman dalam kilometer (misalnya 150 km).
  • Constructor:
    • Constructor untuk menginisialisasi beratBarang dan jarak.
  • Method:
    • getBeratBarang(): Mengambil berat barang (getter).
    • setBeratBarang(double beratBarang): Mengubah berat barang (setter).
    • getJarak(): Mengambil jarak pengiriman (getter).
    • setJarak(double jarak): Mengubah jarak pengiriman (setter).
    • hitungBiayaPengiriman(): Method umum untuk menghitung biaya pengiriman yang akan di-override pada subclass. Pada class ini, implementasinya kosong (akan di-override pada subclass).
2

Class PengirimanEkspres (subclass dari Pengiriman)

  • Properti:
    • Tidak ada properti tambahan, cukup menggunakan properti yang diwarisi dari Pengiriman.
  • Constructor:
    • Constructor untuk menginisialisasi beratBarang dan jarak.
  • Method:
    • hitungBiayaPengiriman(): Implementasi spesifik untuk Pengiriman Ekspres: Menghitung biaya pengiriman dengan rumus: biaya = (beratBarang * 2000) + (jarak * 1000).
      • Contoh: Jika berat barang 5 kg dan jarak 150 km, maka biaya ekspres adalah (5 * 2000) + (150 * 1000) = 10000 + 150000 = 160000.
3

Class PengirimanReguler (subclass dari Pengiriman)

  • Properti:
    • Tidak ada properti tambahan, cukup menggunakan properti yang diwarisi dari Pengiriman.
  • Constructor:
    • Constructor untuk menginisialisasi beratBarang dan jarak.
  • Method:
    • hitungBiayaPengiriman(): Implementasi spesifik untuk Pengiriman Reguler: Menghitung biaya pengiriman dengan rumus: biaya = (beratBarang * 1000) + (jarak * 500).
      • Contoh: Jika berat barang 5 kg dan jarak 150 km, maka biaya reguler adalah (5 * 1000) + (150 * 500) = 5000 + 75000 = 80000.
Buatlah sebuah Main Class bernama MainSistemPengiriman yang akan mendemonstrasikan penggunaan Polymorphism dengan cara memanggil method hitungBiayaPengiriman() pada objek dari berbagai jenis pengiriman. Ikuti instruksi berikut:
1

Membuat Objek Pengiriman Ekspres

  • Buat objek PengirimanEkspres dengan informasi berikut:
    • Berat Barang: 10 kg
    • Jarak: 200 km.
2

Membuat Objek Pengiriman Reguler

  • Buat objek PengirimanReguler dengan informasi berikut:
    • Berat Barang: 10 kg
    • Jarak: 200 km.
3

Menggunakan Polymorphism

  • Tampilkan informasi dan panggil method hitungBiayaPengiriman() untuk masing-masing objek (PengirimanEkspres dan PengirimanReguler).
  • Demonstrasikan polymorphism dengan memanggil hitungBiayaPengiriman() pada objek Pengiriman, PengirimanEkspres, dan PengirimanReguler secara bergantian, meskipun mereka memiliki tipe yang berbeda.

Contoh Output yang Diharapkan:

Pengiriman Ekspres: 
Biaya pengiriman ekspres untuk barang dengan berat 10 kg dan jarak 200 km adalah: 220000

Pengiriman Reguler:
Biaya pengiriman reguler untuk barang dengan berat 10 kg dan jarak 200 km adalah: 110000