Kelompok G
- 13521110 Yanuar Sano Nur Rasyid
- 13521123 William Nixon
- 13521135 Nicholas Liem
- 13521164 Akhmad Setiawan
- 13521165 Reza Pahlevi Ubaidillah
BNMO Simulator Masak merupakan salah satu tugas besar mata kuliah IF2110 Algoritma dan Struktur Data. Tugas ini ditujukan untuk mengimplementasikan seluruh tipe data abstrak (ADT) yang telah dipelajari di kelas.
Simulasi Masak BNMO merupakan program berbasis CLI (Command-line Interface) yang mensimulasikan bagaimana sebuah resep makanan dapat dibuat, dengan menjalankan command yang tersedia.
Pada mulanya, program simulator memiliki beberapa bahan makanan sesuai konfigurasi yang ada, untuk kemudian dapat diolah sesuai dengan resep yang bersesuaian.
Simulator dapat bergerak sepanjang peta untuk melakukan berbagai hal, mulai dari membeli tambahan bahan makanan, mengolah makanan seperti memotong, menggoreng, merebus, dan mencampurkan bahan makanan di tempat tertentu pada peta.
Program dibuat menggunakan bahasa C dengan mengimplementasikan ADT yang sudah dipelajari pada mata kuliah IF2110 - Algoritma dan Struktur Data.
- ADT Point
- ADT Time
- ADT Makanan
- ADT Simulator
- ADT List Statik
- ADT Matriks
- ADT Charmachine
- ADT Wordmachine
- ADT Prioqueuedinamik
- ADT Stack
- ADT Tree
- ADT Listlinier
- ADT Peta
- ADT Kulkas
- ADT Set
- ADT Word
Aksi yang dapat dilakukan oleh user di dalam program
- Simulasi pengguna dengan nama, waktu, dan posisi di peta
- Simulasi memasak makanan mulai dari delivery, pengolahan sesuai resep yang diberikan, dan sistem kadaluwarsa makanan tersebut
- Sistem inventory untuk menyimpan makanan dan kulkas agar makanan tidak kadaluwarsa
Contoh screenshot program
Program ini membutuhkan GCC (GNU Complier Collection) dengan versi C11 atau C17.
-
Clone project ini
> git clone https://github.com/NicholasLiem/IF2110_TugasBesar_BNMO-Simulator-Masak.git
-
Masuk ke dalam folder utama dan compile programnya
> cd IF2110_TugasBesar_BNMO-Simulator-Masak > gcc -std=c17 -I. src/ADT/{FOLDER}/*.c src/Helper/{FOLDER}/*.c -o bin/{{MAIN_FILENAME}} {MAIN_FILE} -lm
Command ini akan memasukkan semua file header ADT dan Helper.
-
Jalankan program yang sudah di-compile
> ./bin/{{MAIN_FILENAME}}
Example:
> gcc -std=c17 -I. src/adt/charmachine/*.c src/adt/kulkas/*.c src/adt/listlinier/*.c src/adt/liststatik/*.c src/adt/makanan/*.c src/adt/matrix/*.c src/adt/peta/*.c src/adt/point/*.c src/adt/prioqueuedinamik/*.c src/adt/set/*.c src/adt/stack/*.c src/adt/time/*.c src/adt/tree/*.c src/adt/word/*.c src/adt/wordmachine/*.c src/helper/command/*.c src/helper/configparser/*.c src/helper/simulator/*.c -o bin/time tests/time.c -lm
> ./bin/time
> gcc -std=c17 -I. src/adt/charmachine/*.c src/adt/kulkas/*.c src/adt/listlinier/*.c src/adt/liststatik/*.c src/adt/makanan/*.c src/adt/matrix/*.c src/adt/peta/*.c src/adt/point/*.c src/adt/prioqueuedinamik/*.c src/adt/set/*.c src/adt/stack/*.c src/adt/time/*.c src/adt/tree/*.c src/adt/word/*.c src/adt/wordmachine/*.c src/helper/command/*.c src/helper/configparser/*.c src/helper/simulator/*.c -o bin/main src/main.c -lm
> ./bin/main
Untuk menggunakan program user dapat memasukkan command di bawah ini
Daftar Command Tersedia
------------------------------------------------------------
Command Program
------------------------------------------------------------
1. CATALOG - Melihat daftar makanan tersedia
2. COOKBOOK - Melihat daftar resep tersedia
3. WAIT (X) (Y) - Menunggu selama X jam dan Y menit
4. MOVE NORTH/EAST/SOUTH/WEST - Bergerak satu langkah ke arah yang dituju
5. UNDO - Mengulang ke keadaan sebelumnya
6. REDO - Mengulangi apa yang sudah di UNDO
7. INVENTORY - Melihat isi inventory
7. REKOMENDASI - Melihat rekomendasi masak
------------------------------------------------------------
Command Aksi
------------------------------------------------------------
1. BUY - Melakukan aksi pembelian makanan
2. BOIL - Melakukan aksi perebusan makanan
3. CHOP - Melakukan aksi pemotongan makanan
4. MIX - Melakukan aksi pencampuran makanan
5. FRY - Melakukan aksi penggorengan makanan
6. KULKAS - Melakukan aksi pembukaan kulkas
------------------------------------------------------------
Command Lain
------------------------------------------------------------
1. HELP - Menampilkan daftar command tersedia
2. EXIT - Keluar dari program
------------------------------------------------------------
Example:
_________ .---""" """---.
:______.-': : .--------------. :
| ______ | | : : |
|:______B:| | | Selamat Datang | |
|:______B:| | | di | |
|:______B:| | |program simulasi| |
| | | | masak! | |
|:_____: | | | | |
| == | | : : |
| O | : '--------------' :
| o | :'---...______...---'
| o |-._.-i___/' \._
|'-.____o_| '-. '-...______...-' `-._
:_________: `.____________________ `-.___.-.
.'.eeeeeeeeeeeeeeeeee.'. :___:
.'.eeeeeeeeeeeeeeeeeeeeee.'.
:____________________________:
Hello? Siapa disitu? (tanpa spasi) :
> User
Silahkan Pilih Command Berikut:
START
EXIT
Command Prompt:
> START
Player Name: User
Time: 0
Notifikasi:
Map:
* * * * * * * * * * * *
* S *
* T K B T C X *
* M F X *
* X *
* X X X X *
* X *
* X C *
* X X X F *
* *
* B *
* * * * * * * * * * * *
Command Prompt:
> WAIT 0 1
Player Name: User
Time: 1 menit
Notifikasi:
Map:
* * * * * * * * * * * *
* S *
* T K B T C X *
* M F X *
* X *
* X X X X *
* X *
* X C *
* X X X F *
* *
* B *
* * * * * * * * * * * *
Command Prompt:
- 13521110 Yanuar Sano Nur Rasyid
ADT Stack (undo dan redo), melengkapi ADT yang belum, Inisiasi program, testing program. - 13521123 William Nixon
Menyatukan berbagai ADT agar koheren (command, simulator), Inventory/Delivery, ADT Set (bonus rekomendasi makanan), memperbaiki jika ada kekurangan/bug (undo/redo, parser, kulkas, dll). - 13521135 Nicholas Liem
ADT Makanan (Catalogue, etc), ADT Kulkas, ADT Time, Parsing File (Makanan, Peta). - 13521164 Akhmad Setiawan
Notulensi Rapat, Laporan. - 13521165 Reza Pahlevi Ubaidillah
ADT Peta, Pengolahan makanan (boil, fry, chop, dan mix) beserta waktunya
Project is: complete
Program ini bisa dikembangkan dengan:
- Memperbaiki bug yang ada
- Menambah fitur Auto-BNMO (intelegensi buatan)