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


File yang   ada setelah perbaikan dan penyempurnaan  adalah sebagai berikut: 

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

Popular posts from this blog

Isi Menu "Setting"

Isi Menu "Riwayat Aktivitas" (Bagian 2)