Tugas IF4150 Rekayasa Perangkat Lunak Spesifik Domain
Domain Kantin
Disusun oleh:
13514006 Adi Purnama
13514020 Ikhwanul Muslimin
13514052 Naufal Malik Rabbani
Program Studi Teknik Informatika
Sekolah Teknik Elektro dan Informatika
Institut Teknologi Bandung
2017
Run Contoh Program
groovy kantin.groovy
Contoh bahasa yang dibuat silakan cek file kantin.groovy
Kantin
Kantin adalah sarana untuk menjual makanan. Manusia membutuhkan makanan untuk sumber energi, zat pembangun, dan pengatur tubuh agar tubuh dapat tetap beroperasi dengan optimal. Cara manusia mendapatkan makanan, antara lain:
- Makan langsung dari bahan yang disediakan oleh alam
- Mengambil bahan yang disediakan oleh alam, lalu mengolahnya sebelum dimakan
- Membeli bahan makanan, lalu mengolahnya sebelum dimakan
- Membeli makanan jadi
Kantin biasa ditemukan di daerah tempat orang sibuk beraktivitas atau bekerja karena mereka tidak memiliki waktu untuk mengumpulkan bahan makanan ataupun memasaknya. Orang membeli makanan yang tersedia di kantin.
Entitas
- Petugas Kantin
Orang yang bekerja di kantin, penggolongannya sebagai berikut:
- Tukang Masak
Orang yang mengolah bahan makanan mentah menjadi makanan jadi
- Pelayan
Orang yang menerima pesanan pelanggan, dan mengantarkan masakan ke pelanggan
- Petugas Kebersihan
Orang yang membersihkan peralatan masak, peralatan makan, dan wilayah kantin
- Kasir
Orang yang melayani proses pembayaran dari pelanggan
- Petugas Supplier
Orang yang mengelola dan mensuplai stok bahan makanan
- Hidangan
Sebuah kantin terdiri dari 1 atau lebih jenis hidangan yang bisa dipesan oleh pelanggan. Daftar hidangan yang bisa dipesan pelanggan dalam sebuah kantin biasa disebut juga dengan Menu. Hidangan dapat berupa makanan atau minuman. Hidangan dapat diproduksi dengan syarat:
- Tersedianya bahan hidangan untuk memproduksi
- Tersedianya tukang masak yang memiliki pengetahuan mengenai cara memproduksi hidangan tersebut
- Tersedianya alat masak yang diperlukan untuk memproduksi hidangan tersebut
Jenis-jenis hidangan diantaranya sebagai berikut:
- Hidangan sudah jadi
Hidangan yang telah diproduksi sehingga siap saji, contoh: ayam goreng, nasi, dll.
- Hidangan setengah jadi
Hidangan yang perlu diramu dari berbagai bahan hidangan yang sudah diproduksi, contoh: soto ayam, nasi kuning, dll.
- Hidangan belum jadi.
Hidangan yang perlu diproduksi tiap ada pesanan, contoh: nasi goreng, mie instant rebus, dll. Pelanggan yang memesan hidangan jenis ini harus menunggu proses produksi selesai.
- Bahan Hidangan
Bahan-bahan yang diperlukan untuk memproduksi hidangan, misalnya bawang merah, cabai, garam, syuran, tempe, daging, buah-buahan, dan sebagainya.
- Alat Masak
Alat-alat yang diperlukan untuk memproduksi hidangan, misalnya wajan, spatula, kompor, dan sebagainya.
- Alat Makan
Adalah alat-alat yang digunakan oleh pelanggan untuk makan, seperti piring, sendok, mangkuk.
- Pembungkus Hidangan
Untuk membungkus hidangan agar bisa dibawa pulang oleh pelanggan.
- Wilayah Kantin
Wilayah yang mendefinisikan perbatasan suatu kantin. Seseorang dianggap telah memasuki kantin apabila telah masuk ke dalam wilayah ini. Beberapa komponen penting, antara lain:
- Wilayah Tempat Makan Konsumen
Daerah tempat konsumen mengkonsumsi hidangan yang telah dipesan. Atribut pada wilayah ini adalah Kapasitas Pelanggan. Beberapa tipe diantaranya:
- Meja & Kursi
- Kursi saja
- Tanpa meja dan tanpa kursi (lesehan)
- Wilayah Produksi Hidangan
Tempat hidangan diproduksi.
- Wilayah Kasir
Tempat konsumen melakukan proses pembayaran.
- Wilayah Hidangan Jadi
Tempat hidangan yang sudah jadi ditampilkan agar dapat dipilih pelanggan.
Fungsi
- Tukang Masak
- Memasak
Adalah kegiatan membuat hidangan dari bahan hidangan dengan peralatan masak.
- Pelayan
- Menerima order
Adalah kegiatan menerima daftar pesanan dari pelanggan yang hendak makan di kantin atau membungkusnya.
- Melayani order
Adalah kegiatan melayani pesanan pelanggan, dapat diimplementasikan dengan menyuruh tukang masak, atau mengambil hidangan yang sudah jadi, atau mengolah dari bahan setengah jadi (seperti soto ayam dan sebagainya)
- Memberi makanan ke pelanggan
Memberikan hidangan di piring apabila pelanggan ingin makan di tempat atau membungkusnya.
- Kasir
- Melayani transaksi
Adalah kegiatan melayani pembayaran hidangan pelanggan, meliputi menghitung harga hidangan, menghitung uang yang dibayarkan, dan juga memberikan uang kembalian jika uang yang dibayar lebih dari harga makanan.
- Petugas Kebersihan
- Membersihkan
Adalah kegiatan membersihkan alat masak dan alat makan ketika kotor dan tidak sedang digunakan.
- Supplier
- Menyediakan bahan hidangan
Adalah kegiatan menyediakan bahan hidangan dari agen penyedia ke dapur, terutama ketika stok bahan makanan hampir habis.
- Memantau stok
Adalah kegiatan memantau ketersediaan bahan hidangan di dapur.
- Pelanggan
- Pesan
Adalah kegiatan memilih hidangan yang ingin dikonsumsi atau dibungkus kepada pelayan dengan cara menuliskannya di kertas atau langsung menyebutkannya ke pelayan
- Menunggu
Adalah kegiatan yang dilakukan saat makanan sedang disiapkan oleh pelayan hingga makanan telah siap
- Bayar makanan
Adalah kegiatan memberikan sejumlah uang yang sesuai dengan harga makanan kepada kasir setelah makanan siap atau setelah makanan selesai dimakan di tempat
- Memakan
Adalah kegiatan mengonsumi makanan yang telah dipesan
- Bungkus sisa
Adalah kegiatan membungkus hidangan yang tidak habis dikonsumsi di tempat.
Event
- Pelanggan masuk kantin
Adalah kejadian saat koordinat pelanggan memasuki batas koordinat kantin, kemudian koordinatnya berada di dalam koordinat kantin
- Pelanggan memesan makanan
Adalah kejadian saat pelanggan melakukan fungsi Pesan makanan.
- Makanan pesanan telah siap
Adalah kejadian saat pelayan selesai menyiapkan makanan yang dipesan pelanggan
- Pelanggan meninggalkan kantin
Adalah kejadian saat koordinat pelanggan memasuki batas koordinat kantin, kemudian koordinatnya berada di luar koordinat kantin
- Stok bahan makanan habis
Adalah kejadian saat ketersediaan bahan makanan tertentu di dapur sama sangat mendekati nol..
- Stok makanan habis
Adalah kejadian saat ketersediaan makanan di showcase menu sangat mendekati nol.
- Waktu istirahat tiba
Adalah kejadian saat waktu kerja pegawai kantin diberhentikan sesaat yang telah terjadwal.
- Kantin buka
Adalah kejadian saat telah ada pegawai kantin, terutama tukang masak, kasir, dan pelayan, dan beberapa makanan telah tersaji di showcase menu (untuk kantin yang tidak dengan sistem masakan baru dimasak setelah dipesan)
- Kantin tutup
Adalah kejadian saat pegawai tidak lagi bekerja berdasarkan jadwal yang telah ditentukan.
Behavior
- Ketika pelanggan masuk kantin, ia akan segera menuju bagian showcase makanan untuk pesan makanan
- Ketika pelanggan memesan makanan, pelayan akan menerima order dan melayani order, sedangkan pelanggan menunggu makanan
- Ketika makanan telah siap, pelayan akan memberikan makanan ke pelanggan, kemudian pelanggan membayar makanan ke kasir. Kasir melayani transaksi.
- Ketika pelanggan meninggalkan kantin, petugas kebersihan akan membersihkan meja dan membereskan piring
- Ketika stok makanan habis, kantin tidak menerima pesanan makanan tersebut
- Ketika waktu istirahat tiba, kantin tidak menerima pesanan sampai waktu istirahat berakhir
- Ketika kantin buka, kantin menerima pesanan
- Ketika waktu tutup tiba, kantin tidak menerima pesanan sehingga semua pelanggan selesai makan, kemudian kantin ditutup
Aksioma
- Selalu tersedia uang kembalian
- Mata uang yang digunakan dalam transaksi adalah rupiah
- Harga yang dibayar antara dibungkus dan makan di tempat sama
- Seseorang dapat melakukan lebih dari 1 peran sebagai petugas kantin. Sebagai contoh, seseorang dapat bertugas sebagai tukang masak sekaligus kasir.
- Terdapat 2 mekanisme pemesanan makanan yang dapat dipilih , yaitu
- Dilayani oleh pelayan
Jika mekanisme ini dipilih oleh kantin. Pelanggan dapat melakukan aksi "pesan", namun tidak dapat melakukan aksi "ambil prasmanan".
- Prasmanan
Jika mekanisme ini dipilih oleh kantin. Pelanggan dapat melakukan aksi "ambil prasmanan", namun tidak dapat melakukan aksi "pesan".
- Apabila mekanisme pemesanan makanan yang dipilih adalah "prasmanan", hidangan yang dapat disediakan hanya hidangan jadi dan hidangan setengah jadi.
- Zona produksi makanan bisa berlokasi di luar wilayah kantin.
- Waktu tunggu saat pelanggan melakukan aksi "menunggu" bergantung pada jenis hidangan yang dipesan. Urutan dari waktu tercepat hingga terlama :
- Hidangan jadi
- Hidangan setengah jadi
- Hidangan belum jadi
- Kantin yang memiliki pembungkus hidangan dapat menyediakan opsi pesan bungkus dan bungkus sisa. Hidangan tidak dapat dibungkus apabila kantin tidak memiliki pembungkus hidangan.
- Pembungkus hidangan , bahan makanan bersifat habis pakai. Alat masak bersifat berulang kali pakai selama masih bisa digunakan.
- Alat makan dapat bersifat berulang kali pakai dan ada yang bersifat habis pakai.
- Alat makan yang bersifat berulang kali pakai dapat digunakan dalam keadaan bersih.
- Alat makan berulang kali pakai yang sudah digunakan bersifat kotor. Harus dibersihkan oleh petugas kebersihan sebelum dapat digunakan lagi.
- Seorang tukang masak dapat memiliki satu atau lebih pengetahuan mengenai cara memproduksi hidangan.
- Hidangan dapat diproduksi dengan syarat:
- Tersedianya bahan hidangan untuk memproduksi.
- Tersedianya tukang masak yang memiliki pengetahuan mengenai cara memproduksi hidangan tersebut.
- Tersedianya alat masak yang diperlukan untuk memproduksi hidangan tersebut.
- Zona hidangan jadi bersifat optional. Dapat ada ataupun tidak ada pada suatu kantin.
- Pelanggan yang mendapatkan makanan/minuman dari kantin wajib melakukan transaksi pembayaran.
- Terdapat 2 mekanisme transaksi pembayaran yang dapat dipilih oleh kantin, yaitu :
- Pembayaran dilakukan di awal pemesanan.
- Pembayaran dilakukan setelah makanan/minuman selesai dikonsumsi atau diterima oleh pelanggan (jika dibungkus) .
Diagram Kelas
Penjelasan:
- Tukang masak, petugas kebersihan, kasir, dan supplier adalah kelas turunan dari kelas pegawai. Sehingga, masing-masing memiliki atribut yang sama dengan pegawai.
- Dalam memasak, tukang masak melibatkan satu atau lebih alat masak dan satu atau lebih bahan makana.
- Tukang masak dapat memasak beberapa makanan atau tidak masak sama sekali sebuah makanan.
- Pelanggan dapat memesan satu atau lebih makanan atau tidak memesan sama sekali sebuah makanan.
- Dalam kegiatan makan, pelanggan dapat menggunakan beberapa alat makan.
- Satu kasir melayani banyak pelanggan, sedangkan satu pelanggan pasti hanya dilayani satu kasir.
Use Case dalam Pemesanan Makanan
Penjelasan:
- Pelanggan melakukan pemesanan ke pelayan.
- Ketika menerima pesanan, pelayan dapat meminta tukang masak untuk memasakkan makanan yang dipesan jika tidak terdapat di showcase menu.
- Ketika masak, tukang masak pasti akan mengambil alat masak dan bahan makanan
- Setelah makanan siap, pelayan memberikan hidangan ke pelanggan.
Penjelasan:
- Pelanggan melakukan pembayaran ke kasir.
- Kasir akan menerima pembayaran dengan menghitung uang bayar.
- Kasir akan memberikan uang kembalian ketika uang yang dibayarkan lebih dari harga makanan.
Sequence Diagram : Pembayaran Setelah Hidangan Dikonsumsi
Pelanggan memesan hidangan ke pelayan. Pelayan lalu akan menyiapkan hidangan (jika tersedia). Lalu, pelanggan makan di tempat , dan melakukan pembayaran. Pembayaran dilakukan setelah pelanggan selesai makan.
Sequence Diagram : PembayaranSetelah Hidangan Dipesan
Setelah pelanggan melakukan pemesanan ke pelayan, pelanggan harus membayar terlebih dahulu. Setelah pembayaran, pesanan baru diproses , lalu pelanggan mendapatkan makanan yang dipesan.
Log Activity
Nama | Tugas | Waktu |
---|---|---|
Adi Purnama | Definisi kantin, entitas, fungsi, aksioma | 24 – 26 September 2017 |
Ikhwanul Muslimin | Diagram UML, fungsi, event, behavior | 25 – 26 September 2017 |
Naufal Malik Rabbani | Entitas, fungsi, event | 25 – 26 September 2017 |