import tkinter as tk
from tkinter import simpledialog, messagebox import numpy as np
import locale
# Set menjadi mata uang Indonesia
locale.setlocale(locale.LC_MONETARY, 'id_ID') tkinter : untuk membuat GUI
simpledialog : untuk membuat dialog input messagebox : untuk membuat pesan dialog numpy : untuk operasi numerik
locale : untuk mengatur mata uang
def northwest_corner(supply, demand, costs):
Untuk menerima input dari pasokan, permintaan, dan biaya
def run_nwc():
Untuk menjalankan tombol run nwc ketika ditekan, memanggil fungsi noerthwestcorner dan menjalankan hasilnya
root = tk.Tk()
root.title("Northwest Corner Method")
untuk menampilkan jendela utama dari GUI dengan judul northwest corner method
instructions = tk.Label(
root, text="Enter the supply, demand, and shipping costs values:")
instructions.pack()
untuk menambahkan label instruksi dan meminta input dari pengguna
num_supply = simpledialog.askinteger("Input", "Enter number of supply points:")
num_demand = simpledialog.askinteger("Input", "Enter number of demand points:")
if num_supply is None or num_demand is None:
root.destroy()
untuk memasukkan jumlah pasokan dan permintaan melalui dialog simpledialog. Jika pengguna membatalkan dialog, maka aplikasi akan ditutup dengan “root.destroy()”
input_frame = tk.Frame(root)
input_frame.pack(fill=tk.BOTH, expand=True) canvas = tk.Canvas(input_frame)
scroll_y = tk.Scrollbar(input_frame, orient="vertical", command=canvas.yview)
scroll_x = tk.Scrollbar(input_frame, orient="horizontal", command=canvas.xview)
scrollable_frame = tk.Frame(canvas)
agar suatu area dapat di scroll dan menampilkan semua kotak input
Untuk membuat struktur data bertingkat, jdi pengguna memiliki daftar supply entries yg berisi daftar demand entries, dan demand entries memiliki daftar cost entries
Untuk mwmbuat tombol run nwc dan menjalankan GUI Ketika menjalankan GUI menggunakan root mainloop