Professional Documents
Culture Documents
D1a210027 - Uts - Apsi Ii - Fatimah El Ramdini H.M
D1a210027 - Uts - Apsi Ii - Fatimah El Ramdini H.M
D1a210027 - Uts - Apsi Ii - Fatimah El Ramdini H.M
M
NPM : D1A210027
Kelas : 5 Reg A
Matkul : APSI II
Class: Department
- departmentID: int
- departmentName: String
+ getDepartmentInfo(): String
+ addEmployee(employee: Employee)
+ removeEmployee(employeeID: int)
Class: Address
- street: String
- city: String
- zipCode: String
+ getAddressInfo(): String
Class: HRSystem
- employeeRepository: List<Employee>
- departmentRepository: List<Department>
+ addEmployee(employee: Employee)
+ removeEmployee(employeeID: int)
+ getEmployeeList(): List<Employee>
Kelas ‘Employee’:
Atribut: ‘employeeID (int)’, ‘firstName (String)’, ‘lastName (String)’, ‘position (String)’, ‘salary
(double)’, dll.
Metode: ‘getEmployeeInfo()’: ‘String’, ‘calculateSalary()’: ‘double’, dll.
Kelas ‘Department’:
Atribut: ‘departmentID (int)’, ‘departmentName (String)’, dll.
Metode:‘getDepartmentInfo():String’, ‘addEmployee(employee:Employee)’,
‘removeEmployee(employeeID: int)’, dll.
Hubungan: Setiap Department dapat memiliki banyak Employee (relasi one-to-many).
Kelas Address:
Atribut: ‘street (String)’, ‘city (String)’, ‘zipCode (String)’, dll.
Metode: ‘getAddressInfo(): String’, dll.
Digunakan oleh Employee untuk menyimpan informasi alamat.
Kelas HRSystem:
Atribut: ‘employeeRepository (List<Employee>)’, ‘departmentRepository (List<Department>)’,
dll.
Metode: ‘addEmployee(employee:Employee)’,’removeEmployee(employeeID:int)’,
‘getEmployeeList(): List<Employee>’, dll.
Menyimpan repositori untuk karyawan dan departemen.
Hubungan Antar Kelas:
Antara ‘Employee’ dan ‘Department’:
‘Employee’ berada dalam satu ‘Department’ (relasi many-to-one).
Antara ‘Address’ dan ‘Employee’:
‘Employee’ memiliki objek ‘Address’ sebagai atribut (relasi composition).
Antara ‘HRSystem’ dan ‘Department’:
‘HRSystem’ menyimpan informasi departemen dan karyawan.
Antara ‘HRSystem’ dan ‘Employee’:
‘HRSystem’ dapat menambah, menghapus, dan mengambil daftar karyawan.
Class: Customer
- customerID: int
- firstName: String
- lastName: String
- contactInfo: String
+ getCustomerInfo(): String
+ placeOrder(products: List<Product>): Order
+ viewOrderHistory(): List<Order>
Class: Order
- orderID: int
- orderDate: Date
- totalAmount: double
- status: String
+ getOrderInfo(): String
+ calculateTotal(products: List<Product>): double
+ updateStatus(newStatus: String)
Class: SalesSystem
- productCatalog: List<Product>
- customerDatabase: List<Customer>
- orderRepository: List<Order>
+ processOrder(customer: Customer, products: List<Product>): Order
+ generateSalesReport(): String
Kelas ‘Product’:
Atribut:
- ‘productID’: int
- ‘productName’: String
- ‘price’: double
- ‘stock’: int
Metode:
- ‘getProductInfo(): String’
- ‘updateStock(quantity: int)’
Kelas ‘Customer’:
-Atribut:
- ‘customerID’ : int
- ‘firstName’ : String
- ‘lastName’ : String
- ‘contactInfo ‘ : String
Metode:
‘getCustomerInfo(): String’
‘placeOrder(products: List<Product>): Order’
‘viewOrderHistory(): List<Order>’
Kelas ‘Order’:
Atribut:
‘orderID’: int
‘orderDate’: Date
‘totalAmount’: double
‘status’: String
Metode:
‘getOrderInfo(): String’
‘calculateTotal(products: List<Product>): double’
‘updateStatus(newStatus: String)’
Kelas ‘SalesSystem’:
Atribut:
‘productCatalog’: List<Product>
‘customerDatabase’: List<Customer>
‘orderRepository’: List<Order>
Metode:
‘processOrder(customer: Customer, products: List<Product>): Order’
‘generateSalesReport(): String’
2. Kelas Transaksi:
- Atribut:
- idTransaksi: String
- tanggal: Date
- jumlah: Double
- keterangan: String
- Metode:
- getDetailTransaksi(): String
3. Kelas Jurnal:
- Atribut:
- idJurnal: String
- tanggal: Date
- keterangan: String
- daftarTransaksi: List<Transaksi>
- Metode:
- tambahkanTransaksi(transaksi: Transaksi): void
- buatLaporanJurnal(): String
4. Kelas LaporanKeuangan:
- Atribut:
- periode: String
- totalPendapatan: Double
- totalPengeluaran: Double
- labaRugi: Double
- Metode:
- generateLaporanKeuangan(): String
5. Kelas Pelanggan:
- Atribut:
- idPelanggan: String
- namaPelanggan: String
- alamat: String
- Metode:
- getHistoriTransaksi(): List<Transaksi>
6. Kelas Pemasok:
- Atribut:
- idPemasok: String
- namaPemasok: String
- alamat: String
- Metode:
- getHistoriTransaksi(): List<Transaksi>
7. Kelas KategoriAkun:
- Atribut:
- idKategori: String
- namaKategori: String
- Metode:
- getListAkunByKategori(): List<Akun>
8. Kelas Pengguna:
- Atribut:
- idPengguna: String
- namaPengguna: String
- kataSandi: String
- Metode:
- autentikasi(username: String, password: String): boolean
2. Kelas ItemPembelian:
- Atribut:
- idItemPembelian: String
- namaItem: String
- jumlah: int
- hargaSatuan: Double
- Metode:
- getTotalHarga(): Double
3. Kelas Pembelian:
- Atribut:
- idPembelian: String
- tanggalPembelian: Date
- supplier: Supplier
- daftarItemPembelian: List<ItemPembelian>
- Metode:
- getTotalPembelian(): Double
- generateNotaPembelian(): String
4. Kelas Pembayaran:
- Atribut:
- idPembayaran: String
- metodePembayaran: String
- jumlah: Double
- Metode:
- konfirmasiPembayaran(): String
5. Kelas KategoriItem:
- Atribut:
- idKategoriItem: String
- namaKategori: String
- Metode:
- getListItemByKategori(): List<ItemPembelian>
6. Kelas User:
- Atribut:
- idUser: String
- namaUser: String
- username: String
- password: String
- Metode:
- autentikasi(username: String, password: String): boolean
1.MarketingModule:
Deskripsi: Kelas utama yang mengelola modul pemasaran.
Atribut:
‘marketingCampaigns: List[MarketingCampaign]’ - Daftar kampanye pemasaran yang sedang
berjalan atau telah selesai.
Metode:
‘createMarketingCampaign(name: str, startDate: Date, endDate: Date) -> MarketingCampaign’ -
Membuat kampanye pemasaran baru.
‘endMarketingCampaign(campaign: MarketingCampaign)’ -> None - Mengakhiri kampanye
pemasaran yang sedang berjalan.
2.MarketingCampaign:
Deskripsi: Merepresentasikan kampanye pemasaran.
Atribut:
‘campaignID: str’ - ID unik kampanye.
‘campaignName: str’ - Nama kampanye.
‘startDate: Date’ - Tanggal mulai kampanye.
‘endDate: Date’ - Tanggal akhir kampanye.
‘marketingChannels:’ List[MarketingChannel] - Daftar saluran pemasaran yang terlibat dalam
kampanye.
Metode:
‘addMarketingChannel(channel: MarketingChannel)’ -> None - Menambahkan saluran pemasaran
ke kampanye.
‘removeMarketingChannel(channel: MarketingChannel)’ -> None - Menghapus saluran pemasaran
dari kampanye.
MarketingChannel:
Deskripsi: Merepresentasikan saluran pemasaran (misalnya, iklan TV, iklan online, email).
Atribut:
‘channelID: str’ - ID unik saluran pemasaran.
‘channelName: str’ - Nama saluran pemasaran.
‘campaigns: List[MarketingCampaign]’ - Daftar kampanye yang menggunakan saluran ini.