Kode Sementara Isi Semua Fie Aplikasi SmartNutriChiefAI
Kode Sementara Isi Semua Fie Aplikasi SmartNutriChiefAI
Applikasi yang digunakan dalam pembuatan applikasi SmartNutriChiefAI ini adalah Pydroid-3.
Semua file dan gambar sebagai Aset dalam pembuatan Applikasi SmartNutriChiefAI ini disimpan dalam HP Andoid pada direktori/folder yang sama yaitu di path: /Storage/Emulated/0/AppJadi/SmartNutriChefAI/.
Gambar atau logo yang ada setelah perbaikan dan penyempurnaan adalah sebagai berikut:
1.logo.png
1 splash_screen.py
Kode programnya berikut ini:
# splash_screen.py
import tkinter as tk
from tkinter import ttk
from PIL import Image, ImageTk
from menu_utama import tampilkan_halaman_utama
# Tahap 2: Splash dengan gambar & tombol
def tampilkan_splash_dengan_logo():
splash2 = tk.Tk()
splash2.title("SmartNutriChefAI")
splash2.geometry("690x1390")
splash2.configure(bg="#f0fff0")
label = ttk.Label(splash2, text="Selamat datang di\nSmartNutriChefAI", font=("Arial", 18, "bold"), background="#f0fff0")
label.pack(pady=20)
# Gambar logo
try:
logo_path = "/storage/emulated/0/AppJadi/SmartNutriChefAI/logo.png"
image = Image.open(logo_path)
image = image.resize((350, 400))
photo = ImageTk.PhotoImage(image)
logo_label = tk.Label(splash2, image=photo, bg="#f0fff0")
logo_label.image = photo # Simpan referensi
logo_label.pack(pady=10)
except Exception as e:
print("Gagal memuat logo:", e)
# Deskripsi
deskripsi = tk.Label(
splash2,
text="AI untuk saran resep sehat\nberbasis nutrisi Anda",
font=("Arial", 12),
bg="#f0fff0",
fg="#333",
justify="center"
)
deskripsi.pack(pady=20)
# Tombol "Mulai Sekarang"
def mulai_aplikasi():
splash2.destroy()
buka_menu_utama()
btn_mulai = tk.Button(
splash2,
text="Mulai Sekarang",
font=("Arial", 14),
bg="#4CAF50",
fg="white",
width=25,
height=2,
command=mulai_aplikasi
)
btn_mulai.pack(side="bottom", pady=30)
splash2.mainloop()
# Tahap 3: Buka halaman menu utama
def buka_menu_utama():
root = tk.Tk()
root.title("SmartNutriChefAI - Menu Utama")
root.geometry("690x1390")
root.configure(bg="#f0fff0")
main_frame = tk.Frame(root)
main_frame.pack(fill="both", expand=True)
tampilkan_halaman_utama(main_frame)
root.mainloop()
# Tahap 1: Splash loading awal 3 detik
def tampilkan_splash_awal():
splash = tk.Tk()
splash.title("SmartNutriChefAI - Loading...")
splash.geometry("670x1370")
splash.configure(bg="#4CAF50")
label = ttk.Label(
splash,
text="SmartNutriChefAI",
font=("Helvetica", 22, "bold"),
foreground="white",
background="#4CAF50"
)
label.place(relx=0.5, rely=0.5, anchor="center")
# Setelah 3 detik, tutup splash dan buka splash dengan logo
splash.after(3000, lambda: [splash.destroy(), tampilkan_splash_dengan_logo()])
splash.mainloop()
if __name__ == "__main__":
tampilkan_splash_awal()
2. menu_utama.py
Kode programnya berikut ini:
# menu_utama.py
import tkinter as tk
from menu_profil_kesehatan import show_menu_profil_kesehatan
from menu_data_bahan_makanan import show_menu_data_bahan_makanan
from menu_formula_mnag import show_menu_minyak_makanan_air_garam
from menu_rekomendasi_resep import show_menu_rekomendasi_resep
from menu_riwayat_aktivitas import show_menu_riwayat_aktivitas
from menu_pengaturan import show_menu_pengaturan
def tampilkan_halaman_utama(root_frame):
# Bersihkan frame
for widget in root_frame.winfo_children():
widget.destroy()
label_judul = tk.Label(root_frame, text="SmartNutriChefAI", font=("Arial", 20, "bold"), bg="light grey")
label_judul.pack(pady=20)
# Daftar menu
tombol_menu = [
("Profil Kesehatan", lambda: show_menu_profil_kesehatan(root_frame)),
("Data Bahan Makanan", lambda: show_menu_data_bahan_makanan(root_frame)),
("Formula MMAG", lambda: show_menu_minyak_makanan_air_garam(root_frame)),
("Rekomendasi Resep", lambda: show_menu_rekomendasi_resep(root_frame)),
("Riwayat Aktivitas", lambda: show_menu_riwayat_aktivitas(root_frame)),
("Pengaturan", lambda: show_menu_pengaturan(root_frame)),
]
for (label, action) in tombol_menu:
btn = tk.Button(root_frame, text=label, font=("Arial", 12), width=30, height=2, bg="#4CAF50", fg="white",command=action)
btn.pack(pady=10)
3. menu_profil_kesehatan.py
Kode programnya berikut ini:
# Menu Profil Kesehatan
import tkinter as tk
from tkinter import messagebox
def show_menu_profil_kesehatan(root_frame):
from menu_utama import tampilkan_halaman_utama # import lokal agar aman
# Bersihkan frame
for widget in root_frame.winfo_children():
widget.destroy()
# Judul halaman
title = tk.Label(root_frame, text="Profil Kesehatan", font=("Arial", 18, "bold"), bg="light grey")
title.pack(pady=10)
# Tombol-tombol sub menu
submenus = [
("Data Diri", lambda: messagebox.showinfo("Info", "Buka Data Diri")),
("Berat & Tinggi Badan", lambda: messagebox.showinfo("Info", "Buka Berat & Tinggi Badan")),
("Indeks Massa Tubuh (IMT)", lambda: messagebox.showinfo("Info", "Buka IMT")),
("Riwayat Kesehatan", lambda: messagebox.showinfo("Info", "Buka Riwayat Kesehatan")),
("Kebutuhan Kalori Harian", lambda: messagebox.showinfo("Info", "Buka Kebutuhan Kalori Harian")),
("Status Gizi", lambda: messagebox.showinfo("Info", "Buka Status Gizi")),
("Kondisi Khusus", lambda: messagebox.showinfo("Info", "Buka Kondisi Khusus")),
]
for submenu in submenus:
btn = tk.Button(root_frame, text=submenu[0], font=("Arial", 12), width=30, height=2, bg="light blue", fg="dark green", command=submenu[1])
btn.pack(pady=5)
# Tombol kembali ke Menu Utama
tombol_kembali = tk.Button(
root_frame,
text="Kembali ke Menu Utama",
font=("Arial", 12),
bg="#d9534f",
fg="white",
command=lambda: tampilkan_halaman_utama(root_frame)
)
tombol_kembali.pack(pady=30)
4 menu_rekomendasi_resep.py
Kode programnya berikut ini:
# Menu Rekomendasi Resep
import tkinter as tk
from tkinter import ttk
def show_menu_rekomendasi_resep(root_frame):
from menu_utama import tampilkan_halaman_utama # import lokal agar aman
# Bersihkan frame
for widget in root_frame.winfo_children():
widget.destroy()
# Judul
label_judul = tk.Label(
root_frame,
text="Rekomendasi Resep",
font=("Arial", 18, "bold"),
bg="light grey",
padx=10,
pady=0
)
label_judul.pack(pady=10, fill="x")
# Subjudul-subjudul (dibuat dinamis dari list)
sub_menu_texts = [
"Rekomendasi Resep Oleh AI",
"Buat Resep Sendiri",
"Simpan Resep Favorit",
"Resep Berdasarkan Nutrisi"
]
for text in sub_menu_texts:
label = tk.Label(
root_frame,
text=text,
font=("Arial", 12),
bg="light blue",
fg="dark green",
padx=10,
pady=5,
height=2,
anchor="center"
)
label.pack(pady=5, fill="x") # fill agar lebar penuh
# Tombol kembali
tombol_kembali = tk.Button(
root_frame,
text="Kembali ke Menu Utama",
font=("Arial", 12),
bg="#d9534f",
fg="white",
command=lambda: tampilkan_halaman_utama(root_frame)
)
tombol_kembali.pack(pady=30)
5. menu_data_bahan_makanan.py
Kode programnya berikut ini:
# Menu Data Bahan Makanan
import tkinter as tk
from tkinter import ttk
def show_menu_data_bahan_makanan(root_frame):
from menu_utama import tampilkan_halaman_utama # import lokal agar aman
# Bersihkan frame
for widget in root_frame.winfo_children():
widget.destroy()
# Judul
label_title = tk.Label(root_frame, text="Data Bahan Makanan", font=("Arial", 16, "bold"))
label_title.pack(pady=10)
# Submenu tombol
submenus = [
"Lihat Daftar Bahan",
"Cari Bahan Berdasarkan Gizi",
"Tambah Bahan Baru",
"Edit Data Bahan",
"Hapus Data Bahan"
]
for submenu in submenus:
btn = tk.Button(root_frame, text=submenu, font=("Arial", 12), width=30, height=2, bg="light blue",
fg="dark green")
btn.pack(pady=5)
# Tombol kembali
tombol_kembali = tk.Button(
root_frame,
text="Kembali ke Menu Utama",
font=("Arial", 12),
bg="#d9534f",
fg="white",
command=lambda: tampilkan_halaman_utama(root_frame)
)
tombol_kembali.pack(pady=30)
6. menu_riwayat_aktivitas.py
Kode programnya berikut ini:
# Menu Riwayat Aktivitas
import tkinter as tk
from tkinter import ttk
def show_menu_riwayat_aktivitas(root_frame):
from menu_utama import tampilkan_halaman_utama # import lokal agar aman
# Bersihkan frame
for widget in root_frame.winfo_children():
widget.destroy()
# Judul
label_title = tk.Label(root_frame, text="Riwayat Aktivitas", font=("Arial", 16, "bold"), bg="light grey")
label_title.pack(pady=10)
# Submenu tombol
submenus = [
"Lihat Riwayat Penggunaan",
"Riwayat Resep yang Pernah Dipilih",
"Riwayat Konsumsi Gizi Harian"
]
for submenu in submenus:
btn = tk.Button(root_frame, text=submenu, font=("Arial", 12), width=40, height=2, bg="light blue", fg="dark green")
btn.pack(pady=5)
# Tombol kembali
tombol_kembali = tk.Button(
root_frame,
text="Kembali ke Menu Utama",
font=("Arial", 12),
bg="#d9534f",
fg="white",
command=lambda: tampilkan_halaman_utama(root_frame)
)
tombol_kembali.pack(pady=30)
7. menu_pengaturan.py
Kode programnya berikut ini:
# Menu Pengaturan
# Menu Pengaturan
import tkinter as tk
from tkinter import ttk
def show_menu_pengaturan(root_frame):
from menu_utama import tampilkan_halaman_utama # import lokal agar aman
# Bersihkan frame
for widget in root_frame.winfo_children():
widget.destroy()
# Judul
label_title = tk.Label(root_frame, text="Pengaturan Aplikasi", font=("Arial", 16, "bold"), bg="light grey")
label_title.pack(pady=10)
# Submenu tombol
submenus = [
"Ubah Profil Pengguna",
"Setelan Preferensi Nutrisi",
"Bahasa Aplikasi",
"Tema Tampilan"
]
for submenu in submenus:
btn = tk.Button(root_frame, text=submenu, font=("Arial", 12), width=35, height=2, bg="#fce4ec", fg="dark green")
btn.pack(pady=5)
# Tombol kembali
tombol_kembali = tk.Button(
root_frame,
text="Kembali ke Menu Utama",
font=("Arial", 12),
bg="#d9534f",
fg="white",
command=lambda: tampilkan_halaman_utama(root_frame)
)
tombol_kembali.pack(pady=30)
8. menu_formula_mmag.py
Kode programnya berikut ini:
# Menu Rekomendasi Resep
import tkinter as tk
from tkinter import ttk
def show_menu_minyak_makanan_air_garam(root_frame):
from menu_utama import tampilkan_halaman_utama # import lokal agar aman
# Bersihkan frame
for widget in root_frame.winfo_children():
widget.destroy()
# Judul
label_judul = tk.Label(
root_frame,
text="Formula MMAG \n(Minyak-Makanan + \nAir-Garam)",
font=("Arial", 18, "bold"),
bg="light grey",
padx=10,
pady=0
)
label_judul.pack(pady=10, fill="x")
# Subjudul-subjudul (dibuat dinamis dari list)
sub_menu_texts = [
"Metode Formula MMAG",
"Rekomendasi Resep MMAG",
"Buat Resep MMAG Sendiri",
"Simpan Resep MMAG Favorit",
"Resep MMAG Berdasarkan Nutrisi"
]
for text in sub_menu_texts:
label = tk.Label(
root_frame,
text=text,
font=("Arial", 12),
bg="light blue",
fg="dark green",
padx=10,
pady=5,
height=2,
anchor="center"
)
label.pack(pady=5, fill="x") # fill agar lebar penuh
# Tombol kembali
tombol_kembali = tk.Button(
root_frame,
text="Kembali ke Menu Utama",
font=("Arial", 12),
bg="#d9534f",
fg="white",
command=lambda: tampilkan_halaman_utama(root_frame)
)
tombol_kembali.pack(pady=30)
Bersambung Ke: Konten Sub Menu "Data Diri"

Comments
Post a Comment