D1a210027 - Uts - Apsi Ii - Fatimah El Ramdini H.M

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 10

Nama : Fatimah El Ramdini H.

M
NPM : D1A210027
Kelas : 5 Reg A
Matkul : APSI II

JAWABAN UTS APSI II

1.Contoh Diagram Kelas untuk Modul SDM (SUMBER DAYA MANUSIA):


Class: Employee
- employeeID: int
- firstName: String
- lastName: String
- position: String
- salary: double
+ getEmployeeInfo(): String
+ calculateSalary(): double

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>

Diagram Kelas untuk Modul SDM:

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.

2. Diagram Kelas untuk Modul Penjualan (Sales)


Class: Product
- productID: int
- productName: String
- price: double
- stock: int
+ getProductInfo(): String
+ updateStock(quantity: int)

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’

Hubungan Antar Kelas:


 Antara ‘Customer’ dan ‘Order’:
- ‘Customer’ memiliki relasi one-to-many dengan ‘Order’.
 Antara ‘Order’ dan ‘Product’:
- ‘Order’ memiliki relasi many-to-many dengan ‘Product’.
 Antara ‘SalesSystem’ dan ‘Product’:
- ‘SalesSystem’ memiliki agregasi dengan ‘Product’ (katalog produk).
 Antara ‘SalesSystem’ dan ‘Customer’:
- ‘SalesSystem’ memiliki agregasi dengan ‘Customer’ (basis data pelanggan).
 Antara ‘SalesSystem’ dan ‘Order’:
- ‘SalesSystem’ memiliki agregasi dengan ‘Order’ (repositori pesanan).

3. Diagram Kelas untuk Modul Accounting


1. Kelas Akun:
- Atribut:
- idAkun: String
- namaAkun: String
- saldo: Double
- Metode:
- getDetailAkun(): String
- updateSaldo(jumlah: Double): void

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

Hubungan Antar Kelas:


- Kelas Akun dan Transaksi: Asosiasi (One-to-Many)
- Kelas Jurnal dan Transaksi: Agregasi/Komposisi (One-to-Many)
- Kelas Pelanggan dan Transaksi: Asosiasi (One-to-Many)
- Kelas Pemasok dan Transaksi: Asosiasi (One-to-Many)
- Kelas Akun dan KategoriAkun: Asosiasi (Many-to-One/One-to-Many)
- Kelas LaporanKeuangan dan Akun: Asosiasi (Many-to-Many)
- Kelas Pengguna dan Transaksi: Asosiasi (One-to-Many)

4. Diagram Kelas untuk Modul Purchase


1. Kelas Supplier:
- Atribut:
- idSupplier: String
- namaSupplier: String
- alamat: String
- Metode:
- getDetailSupplier(): String
- getDaftarPembelian(): List<Pembelian>

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

Hubungan Antar Kelas:


- Kelas Supplier dan Pembelian: Asosiasi (One-to-Many)
- Kelas ItemPembelian dan Pembelian: Komposisi (One-to-Many)
- Kelas Pembelian dan Pembayaran: Asosiasi (One-to-One)
- Kelas KategoriItem dan ItemPembelian: Asosiasi (One-to-Many)
- Kelas User dan Pembelian: Asosiasi (One-to-Many)

5. Diagram Kelas untuk Modul Pemasaran

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.

Hubungan antar kelas:


‘MarketingModule’ memiliki hubungan dengan banyak ‘MarketingCampaign’ (komposisi).
Setiap ‘MarketingCampaign’ memiliki banyak ‘MarketingChannel’ yang terlibat (komposisi).
Setiap ‘MarketingChannel’ terhubung dengan banyak ‘MarketingCampaign’ (relasi asosiasi).

You might also like