Friday, November 15, 2024

Pertemuan 12 - Plane Ticketing System

 Nama: Muhammad Risyad Himawan Putra

NRP: 5025231205

Kelas: Pemrograman Berbasis Obyek (G)


Plane Ticketing System
Implementation in BlueJ

 Source Code: MRHP1/Pertemuan_12

Class Ticket

Ticket(String passengerName, String flightNumber, double baseFare)

    • Menginisialisasi objek Ticket dengan nama penumpang, nomor penerbangan, dan tarif dasar.

abstract double calculateFare()

    • Metode abstrak yang harus diimplementasikan di setiap subclass.
    • Digunakan untuk menghitung tarif tiket berdasarkan kebijakan masing-masing kelas (seperti diskon atau biaya tambahan).

abstract String getPolicy()

    • Metode abstrak yang harus diimplementasikan di setiap subclass untuk mengembalikan kebijakan tiket sesuai dengan kelas (seperti fasilitas, batas bagasi, dll).

String getPassengerName()

    • Mengembalikan nama penumpang dari objek tiket.

String getFlightNumber()

    • Mengembalikan nomor penerbangan dari objek tiket.

double getBaseFare()

    • Mengembalikan tarif dasar tiket yang digunakan untuk menghitung tarif final.

Class EconomyTicket

EconomyTicket(String passengerName, String flightNumber, double baseFare)

    • Konstruktor untuk membuat objek tiket kelas Ekonomi dengan nama penumpang, nomor penerbangan, dan tarif dasar.

double calculateFare()

    • Menghitung tarif tiket kelas Ekonomi dengan memberikan diskon 10% dari tarif dasar.

String getPolicy()

    • Mengembalikan kebijakan tiket kelas Ekonomi, seperti bagasi 20kg, fasilitas standar, dan diskon 10%.

Class BusinessTicket

BusinessTicket(String passengerName, String flightNumber, double baseFare)

    • Konstruktor untuk membuat objek tiket kelas Bisnis dengan nama penumpang, nomor penerbangan, dan tarif dasar.

double calculateFare()

    • Menghitung tarif tiket kelas Bisnis dengan menambahkan biaya tambahan 25% pada tarif dasar.

String getPolicy()

    • Mengembalikan kebijakan tiket kelas Bisnis, seperti bagasi 30kg, fasilitas tambahan, dan biaya tambahan 25%.

Class FirstClassTicket

FirstClassTicket(String passengerName, String flightNumber, double baseFare)

    • Konstruktor untuk membuat objek tiket kelas First Class dengan nama penumpang, nomor penerbangan, dan tarif dasar.

double calculateFare()

    • Menghitung tarif tiket kelas First Class dengan menambahkan biaya tambahan 50% pada tarif dasar.

String getPolicy()

    • Mengembalikan kebijakan tiket kelas First Class, seperti bagasi 40kg, fasilitas premium, dan biaya tambahan 50%.

Class Main & Testing









Thursday, November 14, 2024

Pertemuan 11 - Inheritance Network dan Rental System

Nama: Muhammad Risyad Himawan Putra

NRP: 5025231205

Kelas: Pemrograman Berbasis Obyek (G)


Inheritance Network
Implementation in BlueJ


 Source Code: MRHP1/Pertemuan_11

Class Network

  • Network()

    • Menginisialisasi list users dan posts sebagai arraylist kosong.
  • User addUser(String username)

    • Menerima parameter username dan membuat objek User baru dengan nama pengguna baru tersebut.
    • Menambahkan objek User ke dalam list users.
    • Menampilkan pesan penambahan pengguna ke network.
    • Mengembalikan objek User yang baru dibuat.

  • void addPost(Post post)

    • Menerima objek Post dan menambahkannya ke dalam list posts.
    • Fungsi ini digunakan untuk menambahkan postingan baru ke dalam jaringan.

  • void showAllPosts()

    • Menampilkan semua postingan yang ada dalam list posts, menampilkan nama user yang memposting, konten postingan, dan jumlah like yang diterima oleh postingan tersebut.

Class User

  • User(String username)

    • Konstruktor untuk membuat objek User dengan username tertentu.
    • Menginisialisasi list posts sebagai ArrayList kosong untuk menampung objek Post yang dibuat oleh pengguna.
  • String getUsername()

    • Mengembalikan nama pengguna (username) dari objek User.
  • void addPost(String content)

    • Menerima parameter content (isi postingan) dan membuat objek Post baru yang dikaitkan dengan pengguna ini.
    • Postingan tersebut kemudian ditambahkan ke dalam list posts milik pengguna.
    • Menampilkan pesan ke konsol yang memberi tahu bahwa pengguna telah memposting konten tertentu.
  • void likePost(Post post)

    • Menerima objek Post yang ingin dilike dan menambahkan pengguna ini ke dalam daftar likes dari postingan tersebut.
    • Fungsi ini mengasumsikan bahwa objek Post memiliki metode addLike() yang menangani penambahan pengguna ke dalam daftar likes.
  • List<Post> getPosts()

    • Mengembalikan daftar (List) yang berisi objek-objek Post yang telah diposting oleh pengguna ini.

Class Post

  • Post(User author, String content)

    • Konstruktor untuk membuat objek Post baru dengan parameter author dan content.
    • Menginisialisasi atribut author, content, dan likes.

  • String getContent()

    • Mengembalikan konten dari postingan. Ini memberikan akses kepada pengguna untuk melihat isi dari postingan.
  • User getAuthor()

    • Mengembalikan objek User yang merupakan penulis dari postingan. Fungsi ini memberikan akses untuk mengetahui siapa yang membuat postingan tersebut.
  • List<User> getLikes()

    • Mengembalikan list likes, berisi users yang menyukai postingan tersebut.
  • void addLike(User user)

    • Menerima objek User dan menambahkan pengguna tersebut ke dalam list likes, jika pengguna tersebut belum memberi like pada postingan ini.
    • Jika pengguna berhasil menambahkan like, maka akan ditampilkan pesan yang menunjukkan bahwa pengguna tersebut telah memberi like pada postingan.
  • int getLikeCount()

    • Mengembalikan jumlah pengguna yang telah memberi like pada postingan ini, yaitu ukuran dari list likes.

Class Main & Testing



Rental System
Implementation in BlueJ

 Source Code: MRHP1/Pertemuan_11

Class Penyewa

  • Penyewa(String nama)

    • Construct untuk membuat objek Penyewa dengan nama yang diberikan.

  • void setKendaraan(Kendaraan kendaraan)

    • Menetapkan kendaraan yang disewa oleh penyewa.

  • String getNama()

    • Mengembalikan nama penyewa.

  • Kendaraan getKendaraan()

    • Mengembalikan kendaraan yang disewa oleh penyewa.

Class Kendaraan

  • Kendaraan(String merk, String model, int tahunProduksi)

    • Konstruktor untuk membuat objek Kendaraan dengan atribut merk, model, dan tahunproduksi.
  • abstract String getInfo()

    • Metode abstrak yang harus diimplementasikan oleh subclass untuk mengembalikan informasi tentang kendaraan.

Class RentalSystem

  • void tambahKendaraan(Kendaraan kendaraan)

    • Menambahkan objek Kendaraan ke dalam list kendaraanList.
  • void sewaKendaraan(Penyewa penyewa, Kendaraan kendaraan)

    • Menambahkan objek Penyewa ke dalam list penyewaList dan menetapkan kendaraan yang disewa oleh penyewa.
  • void tampilkanKendaraanTersedia()

    • Menampilkan informasi semua kendaraan yang tersedia dalam kendaraanList.
  • void tampilkanDaftarPenyewa()

    • Menampilkan daftar penyewa beserta kendaraan yang mereka sewa.


Class Main & Testing














PPB EAS - Aplikasi Member Timezone

Manajemen Keanggotaan & Loyalty Program Timezone dengan Room Database dan Jetpack Compose Aryaka Leorgi Epridaka - 5025231117 Muhammad ...