TUGAS AKHIR
APLIKASI REKOMENDASI MENU MAKANAN BERDASARKAN PREFERENSI RASA MENGGUNAKAN
BAHASA C++
Dosen pengampuh:
Khairul Fuady
Disusun oleh :
DWI SEKAR RENGGOWATI
(2040124012)
PROGRAM STUDI DIPLOMA III TEKNOLOGI ELEKTROMEDIS
STIKes MUHAMMADIYAH ACEH 2025
BANDA ACEH
BAB I - PENDAHULUAN
1.1 Latar Belakang
Memilih makanan terkadang menjadi hal yang sulit, terutama saat banyak pilihan tersedia.
Dengan bantuan program komputer, kita bisa mendapatkan rekomendasi secara acak
berdasarkan selera. Oleh karena itu, dibuatlah aplikasi sederhana ini untuk membantu
merekomendasikan makanan sesuai dengan rasa yang diinginkan.
1.2 Tujuan
• Membuat program rekomendasi menu makanan berdasarkan rasa.
• Menerapkan penggunaan struktur data map dan vector di C++.
• Melatih penggunaan input, percabangan, dan randomisasi data.
1.3 Manfaat
Mahasiswa memahami konsep dasar pemrograman, penggunaan struktur data, serta
pengembangan aplikasi berbasis teks.
BAB II - LANDASAN TEORI
2.1 Bahasa Pemrograman C++
C++ adalah bahasa pemrograman yang mendukung pendekatan prosedural dan OOP.
Digunakan luas untuk pengembangan aplikasi karena fleksibel dan cepat.
2.2 Struktur Data map dan vector
• map menyimpan pasangan kunci-nilai.
• vector menyimpan kumpulan data secara dinamis.
2.3 Fungsi rand() dan srand()
Digunakan untuk menghasilkan nilai acak. srand() diisi dengan time(0) agar hasil random tidak
berulang setiap eksekusi.
BAB III - ALGORITMA DAN FLOWCHART
3.1 Algoritma Program
1. Mulai
2. Inisialisasi daftar menu berdasarkan kategori rasa (manis, pedas, asin, gurih)
3. Tampilkan semua pilihan rasa kepada pengguna
4. Input pilihan rasa dari pengguna
5. Jika input tidak valid, tampilkan pesan kesalahan dan keluar
6. Ambil daftar menu dari rasa yang dipilih
7. Pilih salah satu menu secara acak
8. Tampilkan hasil rekomendasi kepada pengguna
9. Selesai
3.2 Flowchart
Berikut flowchart-nya dalam deskripsi (karena tidak bisa gambar langsung di sini):
Less
[Mulai]
[Inisialisasi menu berdasarkan rasa]
[Tampilkan daftar rasa]
[Input pilihan user]
[Apakah valid?] --> Tidak --> [Tampilkan error & keluar]
|
Ya
[Ambil menu dari kategori rasa]
[Pilih salah satu menu secara acak]
[Tampilkan hasil rekomendasi]
[Selesai]
BAB IV - IMPLEMENTASI PROGRAM
4.1 Kode Program (C++)
#include <iostream>
#include <vector>
#include <cstdlib> // rand, srand
#include <ctime> // time
#include <map>
using namespace std;
int main() {
// Inisialisasi menu berdasarkan kategori rasa
map<string, vector<string>> menuMap = {
{"manis", {"Es Teh Manis", "Pisang Coklat", "Martabak", "Roti Bakar Coklat", "Kolak"}},
{"pedas", {"Ayam Geprek", "Seblak", "Mie Pedas Korea", "Sate Padang", "Bakso
Mercon"}},
{"asin", {"Telur Asin", "Tahu Isi", "Ikan Asin", "Kerupuk", "Kacang Goreng"}},
{"gurih", {"Nasi Uduk", "Soto Ayam", "Rendang", "Bakwan", "Ayam Bakar"}}
};
// Daftar rasa
vector<string> rasaList = {"manis", "pedas", "asin", "gurih"};
// Seed untuk angka acak
srand(time(0));
cout << "===== APLIKASI REKOMENDASI MENU MAKAN =====\n";
cout << "Silakan pilih preferensi rasa:\n";
for (int i = 0; i < rasaList.size(); i++) {
cout << i + 1 << ". " << rasaList[i] << endl;
int pilihan;
cout << "\nMasukkan nomor pilihan rasa (1-" << rasaList.size() << "): ";
cin >> pilihan;
// Validasi input
if (pilihan < 1 || pilihan > rasaList.size()) {
cout << "Pilihan tidak valid.\n";
return 1;
string rasaDipilih = rasaList[pilihan - 1];
vector<string> menuPilihan = menuMap[rasaDipilih];
// Pilih menu secara acak
int indeks = rand() % menuPilihan.size();
string menuRekomendasi = menuPilihan[indeks];
cout << "\nRekomendasi menu rasa " << rasaDipilih << ": " << menuRekomendasi << "\n";
cout << "Selamat makan!\n";
return 0;
BAB V - HASIL DAN PEMBAHASAN
5.1 Contoh Output
===== APLIKASI REKOMENDASI MENU MAKAN =====
Silakan pilih preferensi rasa:
1. manis
2. pedas
3. asin
4. gurih
Masukkan nomor pilihan rasa (1-4): 3
Rekomendasi menu rasa asin: Kerupuk
Selamat makan!
5.2 Pembahasan
Program ini berhasil memberikan rekomendasi makanan sesuai preferensi rasa. Fungsi
random bekerja baik dan struktur map mempermudah pemetaan kategori rasa ke daftar
makanan.
BAB VI - PENUTUP
6.1 Kesimpulan
Aplikasi ini berhasil dibuat menggunakan C++ dan berjalan sesuai fungsinya. Mahasiswa
juga belajar menggunakan tipe data koleksi seperti vector dan map.
6.2 Saran
Pengembangan berikutnya dapat menambahkan fitur:
• Simpan riwayat rekomendasi.
• Tampilan berbasis GUI.
• Kategori menu tambahan seperti minuman, cemilan, dan makanan berat.
LAMPIRAN: Screenshot Program
(Tambahkan screenshot saat program dijalankan di IDE-mu seperti Code::Blocks, VS Code,
atau terminal)