Skip to content

Commit f3f2915

Browse files
committed
Updates + main
1 parent d7c6dac commit f3f2915

File tree

5 files changed

+93
-45
lines changed

5 files changed

+93
-45
lines changed

.gitattributes

Lines changed: 0 additions & 2 deletions
This file was deleted.

src/Genetic_Algorithm.py

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,17 @@
88
MESIN = []
99
JOB_DONE = []
1010
SCHEDULE = []
11+
CJ = []
12+
TJ = []
13+
RJ = []
14+
ST = []
1115

1216
# 3. Prosedur untuk melakukan pembacaan data dari file
1317
def read_data():
1418
# Menggunakan variabel global
15-
global ROUTING, PROCESSING_TIME, MESIN
19+
global ROUTING, PROCESSING_TIME, MESIN, CJ, TJ, RJ, ST
1620
print("============ PEMILIHAN FOLDER ============")
17-
folder = input("Masukkan nama folder yang akan dianalisis\n>> ")
21+
folder = input("Masukkan nama folder yang akan dianalisis\n[Gunakan test2 dan test3 sebagai contoh]\n>> ")
1822
print("\n============= PEMBACAAN DATA =============")
1923
print("Sedang membaca data...")
2024

@@ -81,6 +85,23 @@ def read_data():
8185
ROUTING.append(row)
8286

8387
print("Data time dan routing berhasil dibaca!")
88+
89+
# Pendefinisian kondisi awal
90+
# a. Mendefinisikan posisi melalui routing
91+
CJ = [MESIN[0][ROUTING[i][0] - 1] for i in range(len(ROUTING))]
92+
93+
# b. Mendefinisikan waktu pemrosesan
94+
TJ = [PROCESSING_TIME[i][0] for i in range(len(ROUTING))]
95+
96+
# c. Mendefinisikan waktu berakhir
97+
RJ = [0 for i in range(len(ROUTING))]
98+
for i in range (len(ROUTING)):
99+
RJ[i] = CJ[i] + TJ[i]
100+
101+
# d. Mendefinisikan id st (job, operasi, mesin)
102+
ST = [[i + 1, 1, ROUTING[i][0]] for i in range(len(ROUTING))]
103+
104+
print("Kondisi awal pemrosesan telah siap diproses")
84105

85106
# 4. Prosedur Eksekusi
86107
def do_genetic_algo(count):
@@ -298,35 +319,21 @@ def print_schedule(schedule=SCHEDULE, lateness=None):
298319
print(f'---\nmakespan: {round(makespan,2)}')
299320

300321
# 6. Program utama
301-
if __name__ == '__main__':
322+
def main():
302323
# xx. Membaca data
303324
read_data()
304-
305-
# a. Mendefinisikan posisi melalui routing
306-
CJ = [MESIN[0][ROUTING[i][0] - 1] for i in range(len(ROUTING))]
307-
308-
# b. Mendefinisikan waktu pemrosesan
309-
TJ = [PROCESSING_TIME[i][0] for i in range(len(ROUTING))]
310-
311-
# c. Mendefinisikan waktu berakhir
312-
RJ = [0 for i in range(len(ROUTING))]
313-
for i in range (len(ROUTING)):
314-
RJ[i] = CJ[i] + TJ[i]
315-
316-
# d. Mendefinisikan id st (job, operasi, mesin)
317-
ST = [[i + 1, 1, ROUTING[i][0]] for i in range(len(ROUTING))]
318325

319-
# e. Melakukan pemrosesan pembuatan jadwal
326+
# a. Melakukan pemrosesan pembuatan jadwal
320327
# Proses selesai dilaksanakan jika semua job selesai terjadwal
321328
print("\nPemrosesan sedang dilakukan...")
322329
count = 1 # Instansiasi untuk menunjukkan jumlah iterasi yang telah dilakukan
323330
while do_genetic_algo(count) != []:
324331
count += 1
325332
pass
326333

327-
# f. Semua job seledai dan hasil dicetak pada terminal
334+
# b. Semua job seledai dan hasil dicetak pada terminal
328335
print("\n============ HASIL PEMROSESAN ============")
329336
print("Berikut adalah hasil pemrosesan penyusunan jadwal :\n")
330337
print_schedule()
331338

332-
input("\nTekan Enter untuk keluar dari program")
339+
input("\nTekan Enter untuk keluar dari program")

src/Job-Insertion_Algorithm.py renamed to src/Job_Insertion_Algorithm.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
def read_data():
1515
global SCHEDULE, ROUTING, PROCESSING_TIME, MESIN, DUE_DATES
1616
print("============ PEMILIHAN FOLDER ============")
17-
folder = input("Masukkan nama folder yang akan dianalisis\n>> ")
17+
folder = input("Masukkan nama folder yang akan dianalisis\n[Gunakan test1, test2, dan test3 sebagai contoh]\n>> ")
1818
print("\n============= PEMBACAAN DATA =============")
1919
print("Sedang membaca data...")
2020

@@ -433,11 +433,11 @@ def print_results(iterations, due_dates):
433433
print_schedule(iterations[i][1][0], lateness[iterations[i][0]])
434434

435435
# 6. Program utama
436-
if __name__ == '__main__':
436+
def main():
437437
read_data()
438438
print("Data telah dibaca!")
439439
print("\nPemrosesan sedang dilakukan...")
440440
iterations = insert_job()
441441
print_results(iterations, DUE_DATES)
442442

443-
input("\nTekan Enter untuk keluar dari program")
443+
input("\nTekan Enter untuk keluar dari program")

src/Non-delay_Algorithm.py renamed to src/Non_delay_Algorithm.py

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,17 @@
88
MESIN = []
99
JOB_DONE = []
1010
SCHEDULE = []
11+
CJ = []
12+
TJ = []
13+
RJ = []
14+
ST = []
1115

1216
# 3. Prosedur untuk melakukan pembacaan data dari file
1317
def read_data():
1418
# Menggunakan variabel global
15-
global ROUTING, PROCESSING_TIME, MESIN
19+
global ROUTING, PROCESSING_TIME, MESIN, CJ, TJ, RJ, ST
1620
print("============ PEMILIHAN FOLDER ============")
17-
folder = input("Masukkan nama folder yang akan dianalisis\n>> ")
21+
folder = input("Masukkan nama folder yang akan dianalisis\n[Gunakan test1, test2, dan test3 sebagai contoh]\n>> ")
1822
print("\n============= PEMBACAAN DATA =============")
1923
print("Sedang membaca data...")
2024

@@ -82,6 +86,23 @@ def read_data():
8286

8387
print("Data time dan routing berhasil dibaca!")
8488

89+
# Pendefinisian kondisi awal
90+
# a. Mendefinisikan posisi melalui routing
91+
CJ = [MESIN[0][ROUTING[i][0] - 1] for i in range(len(ROUTING))]
92+
93+
# b. Mendefinisikan waktu pemrosesan
94+
TJ = [PROCESSING_TIME[i][0] for i in range(len(ROUTING))]
95+
96+
# c. Mendefinisikan waktu berakhir
97+
RJ = [0 for i in range(len(ROUTING))]
98+
for i in range (len(ROUTING)):
99+
RJ[i] = CJ[i] + TJ[i]
100+
101+
# d. Mendefinisikan id st (job, operasi, mesin)
102+
ST = [[i + 1, 1, ROUTING[i][0]] for i in range(len(ROUTING))]
103+
104+
print("Kondisi awal pemrosesan telah siap diproses")
105+
85106
# 4. Prosedur Eksekusi
86107
def state_check():
87108
# xx. Menggunakan variabel global
@@ -217,33 +238,19 @@ def print_schedule(schedule=SCHEDULE, lateness=None):
217238
print(f'---\nmakespan: {round(makespan,2)}')
218239

219240
# 6. Program utama
220-
if __name__ == '__main__':
241+
def main():
221242
# xx. Membaca data
222243
read_data()
223-
224-
# a. Mendefinisikan posisi melalui routing
225-
CJ = [MESIN[0][ROUTING[i][0] - 1] for i in range(len(ROUTING))]
226-
227-
# b. Mendefinisikan waktu pemrosesan
228-
TJ = [PROCESSING_TIME[i][0] for i in range(len(ROUTING))]
229-
230-
# c. Mendefinisikan waktu berakhir
231-
RJ = [0 for i in range(len(ROUTING))]
232-
for i in range (len(ROUTING)):
233-
RJ[i] = CJ[i] + TJ[i]
234-
235-
# d. Mendefinisikan id st (job, operasi, mesin)
236-
ST = [[i + 1, 1, ROUTING[i][0]] for i in range(len(ROUTING))]
237244

238-
# e. Melakukan pemrosesan pembuatan jadwal
245+
# a. Melakukan pemrosesan pembuatan jadwal
239246
# Proses selesai dilaksanakan jika semua job selesai terjadwal
240247
print("\nPemrosesan sedang dilakukan...")
241248
while state_check() != []:
242249
pass
243250

244-
# f. Semua job seledai dan hasil dicetak pada terminal
251+
# b. Semua job seledai dan hasil dicetak pada terminal
245252
print("\n============ HASIL PEMROSESAN ============")
246253
print("Berikut adalah hasil pemrosesan penyusunan jadwal :\n")
247254
print_schedule()
248255

249-
input("\nTekan Enter untuk keluar dari program")
256+
input("\nTekan Enter untuk keluar dari program")

src/main.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Implemenetasi program utama yang menyatukan algoritma penjadwalan
2+
# 0. Mengimpor fungsionalitas dari masing-masing algoritma
3+
import Genetic_Algorithm as ga
4+
import Job_Insertion_Algorithm as ji
5+
import Non_delay_Algorithm as nd
6+
7+
# 1. Program utama
8+
if __name__ == '__main__':
9+
print("Selamat datang pada sistem algoritma penjadwalan")
10+
print("\n========== PEMILIHAN ALGORITMA ===========")
11+
print("Pilih algoritma yang ingin dijalankan :")
12+
print(" 1. Algoritma Penjadwalan Non-delay")
13+
print(" 2. Algoritma Job-Insertion")
14+
print(" 3. Algoritma Genetik (Genetic Algorithm)")
15+
print("Masukkan pilihan")
16+
nums = int(input(">> "))
17+
while (nums < 0 or nums > 3):
18+
print("Masukan Anda salah, ulangi!\n")
19+
print("Pilih algoritma yang ingin dijalankan :")
20+
print(" 1. Algoritma Penjadwalan Non-delay")
21+
print(" 2. Algoritma Job-Insertion")
22+
print(" 3. Algoritma Genetik (Genetic Algorithm)")
23+
print("Masukkan pilihan")
24+
nums = int(input(">> "))
25+
26+
# Masukan pengguna sudah valid
27+
print(" ")
28+
if (nums == 1) :
29+
print(">>>>> Algoritma Penjadwalan Non-delay <<<<<")
30+
nd.main()
31+
elif (nums == 2):
32+
print(">>>>>>> Algoritma Job-Insertion <<<<<<<")
33+
ji.main()
34+
else :
35+
print(">> Algoritma Genetik (Genetic Algorithm) <<")
36+
ga.main()

0 commit comments

Comments
 (0)