Open sevinurafni opened 3 weeks ago
### Project 2: Sistem Pemesanan Tiket Bioskop
Deskripsi:
Buatlah sebuah aplikasi sistem pemesanan tiket bioskop yang memungkinkan pengguna untuk melihat film yang sedang tayang, memilih jadwal tayang, dan memesan tiket. Aplikasi ini mensimulasikan fungsi-fungsi dasar dari sebuah sistem pemesanan tiket bioskop.
Spesifikasi:
Kelas-kelas yang Dibutuhkan:
Movie
: Representasi dari film dengan atribut seperti title
, duration
, genre
.
Showtime
: Representasi dari jadwal tayang dengan atribut seperti movie
, time
, availableSeats
.
Ticket
: Representasi dari tiket dengan atribut seperti showtime
, seatNumber
, buyer
.
Cinema
: Mengelola daftar film dan jadwal tayang serta pemesanan tiket.
Customer
: Representasi dari pelanggan dengan atribut seperti name
, customerId
.
Fitur Utama: Menambahkan dan menghapus film. Menambahkan dan menghapus jadwal tayang. Melihat daftar film yang sedang tayang. Memesan tiket untuk jadwal tayang tertentu. Melihat daftar tiket yang telah dipesan. Melihat riwayat pemesanan oleh pelanggan.
Implementasi: Gunakan konsep aggregation antara Movie dan Showtime. Pastikan untuk menerapkan prinsip encapsulation dengan membuat atribut kelas bersifat private dan menyediakan metode akses (getter dan setter) yang sesuai.
### Project 3: Sistem Email Chat Sederhana
Deskripsi: Buatlah sebuah aplikasi email client sederhana yang memungkinkan pengguna untuk mengirim, menerima, dan mengelola email. Aplikasi ini akan mensimulasikan fungsi-fungsi dasar dari sebuah sistem email client.
Spesifikasi:
Kelas-kelas yang Dibutuhkan:
Email
: Representasi dari email dengan atribut seperti sender
, recipient
, subject
, body
, timestamp
.
User
: Representasi dari pengguna dengan atribut seperti username
, emailAddress
, inbox
, sentItems
.
EmailClient
: Mengelola pengiriman, penerimaan, dan pengelolaan email untuk pengguna.
Fitur Utama: Membuat dan mengirim email. Menerima email dan menambahkannya ke inbox pengguna. Melihat daftar email yang diterima (inbox). Melihat daftar email yang dikirim (sent items). Membaca isi email (baik di inbox maupun sent items). Menghapus email dari inbox atau sent items.
Implementasi: Gunakan konsep inheritance jika diperlukan untuk tipe email yang berbeda (misalnya, PromotionalEmail, PersonalEmail). Pastikan untuk menerapkan prinsip encapsulation dengan membuat atribut kelas bersifat private dan menyediakan metode akses (getter dan setter) yang sesuai.
Deadline: 5 Juli 2024, 12:00.
Salah satu anggota membuat repository untuk project kemudian anggota lain fork respository tersebut. Laporan dibuat dalam format [paper Sains Data] (https://docs.google.com/document/d/1z5GCCWSf9rf_OurNziZytbmZDFv14FXG/edit) maksimal 10 halaman.
Referensi:
Kelompok 1: Rafid, Ariela, Musa, Ahmad, Yusuf, Kanaya Kelompok 2: Ryan, Najlia, Reva, Rizwar, Aji, Amelia Kelompok 3: Farhan, Nadine, Fitri, Fadhli, Budi
Project 1: Sistem Perbankan Sederhana
Deskripsi:
Buatlah sebuah aplikasi sistem perbankan sederhana yang memungkinkan pengguna untuk membuat akun, melakukan setoran, penarikan, dan memeriksa saldo. Aplikasi ini akan mensimulasikan beberapa fungsi dasar dari sebuah sistem perbankan.
Spesifikasi:
Kelas-kelas yang Dibutuhkan:
Account
: Representasi dari akun bank dengan atribut sepertiaccountNumber
,accountHolder
,balance
.Bank
: Mengelola koleksi akun dan menyediakan fungsi untuk menambah akun, setoran, penarikan, dan pemeriksaan saldo.Transaction
: Representasi dari transaksi bank dengan atribut sepertitransactionType
,amount
,date
.Fitur Utama: Membuat akun bank baru dengan nomor akun unik dan informasi pemilik akun. Melakukan setoran ke akun bank. Melakukan penarikan dari akun bank. Memeriksa saldo dari akun bank tertentu. Melihat riwayat transaksi untuk setiap akun bank.
Implementasi: Gunakan konsep inheritance untuk jenis akun yang berbeda (misalnya, SavingsAccount, CheckingAccount). Implementasikan polymorphism untuk metode transaksi yang berbeda pada berbagai jenis akun. Gunakan exception handling untuk mengelola situasi seperti penarikan melebihi saldo. Pastikan untuk menerapkan prinsip encapsulation dengan membuat atribut kelas bersifat private dan menyediakan metode akses (getter dan setter) yang sesuai.
Kelompok 1: Rafid, Ariela, Musa, Ahmad, Yusuf, Kanaya
### Project 2: Sistem Pemesanan Tiket Bioskop
Deskripsi:
Buatlah sebuah aplikasi sistem pemesanan tiket bioskop yang memungkinkan pengguna untuk melihat film yang sedang tayang, memilih jadwal tayang, dan memesan tiket. Aplikasi ini mensimulasikan fungsi-fungsi dasar dari sebuah sistem pemesanan tiket bioskop.
Spesifikasi:
Kelas-kelas yang Dibutuhkan:
Movie
: Representasi dari film dengan atribut sepertititle
,duration
,genre
.Showtime
: Representasi dari jadwal tayang dengan atribut sepertimovie
,time
,availableSeats
.Ticket
: Representasi dari tiket dengan atribut sepertishowtime
,seatNumber
,buyer
.Cinema
: Mengelola daftar film dan jadwal tayang serta pemesanan tiket.Customer
: Representasi dari pelanggan dengan atribut sepertiname
,customerId
.Fitur Utama: Menambahkan dan menghapus film. Menambahkan dan menghapus jadwal tayang. Melihat daftar film yang sedang tayang. Melihat jadwal tayang untuk film tertentu. Memesan tiket untuk jadwal tayang tertentu. Melihat daftar tiket yang telah dipesan. Melihat riwayat pemesanan oleh pelanggan.
Implementasi: Gunakan konsep aggregation antara Movie dan Showtime. Implementasikan exception handling untuk kasus seperti kursi yang sudah dipesan. Pastikan untuk menerapkan prinsip encapsulation dengan membuat atribut kelas bersifat private dan menyediakan metode akses (getter dan setter) yang sesuai.
Kelompok 2: Ryan, Najla, Reva, Rizwar, Aji, Amelia
### Project 3: Sistem Email Chat Sederhana
Deskripsi: Buatlah sebuah aplikasi email client sederhana yang memungkinkan pengguna untuk mengirim, menerima, dan mengelola email. Aplikasi ini akan mensimulasikan fungsi-fungsi dasar dari sebuah sistem email client.
Spesifikasi:
Kelas-kelas yang Dibutuhkan:
sender
,recipient
,subject
,body
,timestamp
.User
: Representasi dari pengguna dengan atribut sepertiusername
,emailAddress
,inbox
,sentItems
.EmailClient
: Mengelola pengiriman, penerimaan, dan pengelolaan email untuk pengguna.Fitur Utama: Membuat dan mengirim email. Menerima email dan menambahkannya ke inbox pengguna. Melihat daftar email yang diterima (inbox). Melihat daftar email yang dikirim (sent items). Membaca isi email (baik di inbox maupun sent items). Menghapus email dari inbox atau sent items.
Implementasi: Gunakan konsep inheritance jika diperlukan untuk tipe email yang berbeda (misalnya, PromotionalEmail, PersonalEmail). Implementasikan exception handling untuk situasi seperti pengiriman email ke alamat yang tidak valid. Pastikan untuk menerapkan prinsip encapsulation dengan membuat atribut kelas bersifat private dan menyediakan metode akses (getter dan setter) yang sesuai.
Kelompok 3: Farhan, Nadin, Fitri, Fadhli, Budi
Project dikumpulkan di issue ini dengan melampirkan link repository project.
Nama - NRP anggota link repository project
Project 1: Sistem Perbankan Sederhana
Deskripsi:
Buatlah sebuah aplikasi sistem perbankan sederhana yang memungkinkan pengguna untuk membuat akun, melakukan setoran, penarikan, dan memeriksa saldo. Aplikasi ini akan mensimulasikan beberapa fungsi dasar dari sebuah sistem perbankan.
Spesifikasi:
Kelas-kelas yang Dibutuhkan:
Account
: Representasi dari akun bank dengan atribut sepertiaccountNumber
,accountHolder
,balance
.Bank
: Mengelola koleksi akun dan menyediakan fungsi untuk menambah akun, setoran, penarikan, dan pemeriksaan saldo.Transaction
: Representasi dari transaksi bank dengan atribut sepertitransactionType
,amount
,date
.Fitur Utama: Membuat akun bank baru dengan nomor akun unik dan informasi pemilik akun. Melakukan setoran ke akun bank. Melakukan penarikan dari akun bank. Memeriksa saldo dari akun bank tertentu. Melihat riwayat transaksi untuk setiap akun bank.
Implementasi: Gunakan konsep inheritance untuk jenis akun yang berbeda (misalnya, SavingsAccount, CheckingAccount). Implementasikan polymorphism untuk metode transaksi yang berbeda pada berbagai jenis akun. Pastikan untuk menerapkan prinsip encapsulation dengan membuat atribut kelas bersifat private dan menyediakan metode akses (getter dan setter) yang sesuai.