Sunday, October 2, 2016

CRC Card, Class Diagram dan Tabel Class Realization untuk Menu Management System

Dalam perancangan sebuah perangkat lunak, salah satu tahap yang paling penting adalah membuat CRC Card dan Class Diagram. CRC Card berguna untuk mendeskripsikan kelas apa saja yanng akan dipakai beserta fungsionalitas yang dibutuhkan dan hubungannya dengan kelas lain. Class Diagram tidak jauh berbeda dengan CRC Card, hanya saja terdapat penjelasan-penjelasan lebih detail seperti tipe data dan enkapsulasi fungsi serta atribut dari suatu kelas.

Berdasarkan post saya yang sebelumnya (di sini), kali ini kita akan membuat CRC Card dan Class Diagram untuk Menu Management System. Pertama kita akan mendefinisikan kelas-kelas yang akan digunakan. Berdasarkan Use Case Diagram pada post sebelumnya, dapat didefinisikan beberapa kelas. yaitu: Food, Menu, Table, Order, OrderQueue, Payment, dan Language.

1. Kelas Food

Kelas Food akan berhubungan dengan beberapa kelas, yaitu Order (karena Order (pesanan) terdiri dari makanan) dan Menu (karena sebuah menu berisikan daftar makanan. Sebuah objek Food memiliki beberapa atribut, yaitu name(nama), price(harga), explanation(penjelasan makanan), picture(gambar makanan) dan availability(ketersediannya untuk konsumen). Sementara untuk fungsinya, kelas Food terdiri dari fungsi konstruktor (membuat makanan baru), fungsi modifier atribut, dan fungsi display value atribut.

2. Kelas Menu

Kelas Menu akan berhubungan dengan kelas Food dan kelas Language untuk pengaturan bahasanya.. Kelas Menu terdiri dari atribut MenuItem yang bertipe data Food yang berupa array berisikan daftar makanan yang dapat dipesan dan Language untuk . Untuk fungsinya, Menu dapat terdiri dari fungsi konstruktor, addFood, deleteFood, dan displayMenu.

3. Kelas Table

Kelas Table adalah kelas yang akan menyimpan informasi pesanan suatu meja. Maka dari itu, kelas ini hanya akan berhubungan dengan kelas Order (untuk pemesanan makanan) dan kelas Payment (untuk pembayaran pesanan). Untuk atribut, kelas Table akan terdiri dari atribut TableNumber, OrderList dan PaymentStatus. Untuk fungsi, kelas Table akan terdiri dari fungsi konstruktor, addOrder, deleteOrder, dan changePaymentStatus.

4. Kelas Order

Seperti yang sudah dijelaskan sebelumnya, kelas Order akan berhubungan dengan kelas Table, Food, OrderQueue dan Payment. Namun kelas Order akan berhubungan juga dengan kelas Payment untuk pembayaran pesanan. Kelas Order akan terdiri dari atribut FoodList, TotalPrice, dan TableNumber, dan paymentStatus. Kelas Order akan terdiri dari fungsi konstruktor, dan atribute modifier saja.

5. Kelas OrderQueue

Kelas OrderQueue akan berhubungan dengan kelas Order karena hanya berupa antrian Order yang masuk. Kelas Order akan memiliki atribut OrderList dan memiliki fungsi konstruktor serta display OrderQueue

6. Kelas Payment

Kelas Payment akan berhubungan dengan kelas Order dan Table. Kelas Payment akan memiliki atribut grandTotal untuk total harga pesanan dan tableNumber. Kelas payment akan memiliki fungsi konstruktor dan displayPayment.

7. Kelas Language

Kelas Language akan mengatur penggunaan bahasa dalam sistem. Kelas ini akan  berhubungan dengan kelas Menu karena Language di sini hanya digunakan untuk bahasa dalam sistem interface dengan konsumen. Kelas language memiliki atribut LanguageData untuk menyimpan data bahasa. Untuk fungsinya, kelas Language memiliki fungsi changeLanguage, displayText (untuk menampilkan teks dalam bahasa tertentu), addLanguage dan deleteLanguage.

Untuk tahap selanjutnya, kita dapat langsung membuat CRC card dan Class Diagram berdasarkan definisi kelas-kelas di atas.

CRC Card:


Class Diagram + Relationship:
Selanjutnya dapat dibuat tabel Class Realization. Tabel ini berfungsi untuk memastikan apakah setiap use case sudah ditangani suatu kelas atau belum. Dari use case diagram dan class diagram yang ada, dapat dibuat tabel sebagai berikut:






  

1 comment: