Dibuat Untuk Memenuhi Tugas Kecil-2 IF 2211 Strategi Algoritma Semester II 2020/2021.
Created by:
Reihan Andhika Putra 13519043
- Install Python 3
- Install library roman dengan command
pip install roman
- Clone/download project ini lalu buka folder src
- Langsung klik "13519043_app.py"
- Masukkan nama file yang berisi testcase yang ingin diuji, masukkan tanpa ekstensi
- Tunggu hasil keluar
- Clone/download project ini
- Buka folder hasil donwload/clone lalu masuk ke folder src
- Buka cmd dan ketikkan command
python 13519043_app.py ATAU python3 13519043_app.py (Mengikuti versi python yang anda install)
- Masukkan nama file yang berisi testcase yang ingin diuji, masukkan tanpa ekstensi
- Tunggu hasil keluar
- Pastikan anda ada di direktori yang sama dengan source code "../src/{13519043_app.py}" ❗
- Run program python sesuai cara yang code editor kalian lakukan
- Masukkan nama file yang berisi testcase yang ingin diuji, masukkan tanpa ekstensi
- Tunggu hasil keluar
Bukalah 13519043_app.py menggunakan editor bawaan python (IDLE). Run program dengan mengklik run lalu klik run module
- File testcase yang diterima hanya file dengan ekstensi .txt
- Untuk contoh file testcase yang benar silahkan contoh file yang ada di folder test
- Input yang boleh dimasukkan dalam testcase adalah singkatan/kode mata kuliah, lebih lanjut lihat "test/List Matkul.txt"(jangan sampai salah juga dalam menuliskan huruf besar dan huruf kecil saat membuat testcase)
- List Mata Kuliah bisa ditambah, dikurangi, maupun dirubah sesuka hati (Perhatikan bahwa formatnya adalah (Singkatan)-(Nama Mata Kuliah), tidak boleh ada "-" di nama mata kuliah)
- Selamat mencoba, tips : lebih mudah menggunakan code editor karena aplikasi tidak langsung close
- Apabila tidak bisa membaca file coba liat cara 3 langkah ke-1
- Output hanya akan ditampilkan di layar cmd
- Penjelasan singkat algoritma decrease and conquer yang digunakan dengan notasi algoritmik adalah sebagai berikut: (lengkapnya cek source code)
A ← list seluruh matkul {simpul matkul}
B ← semester seluruh matkul
C ← jumlah prequisisite seluruh matkul
L ← list kosong penampung simpul terurut dan sudah dikunjungi
S ← edge yang merepresentasikan matkul dan prequisitenya
function decreaseAndConquer(input, output L:listOfNode)
if panjang(S) == panjang(A) then
{topological sort sudah ditemukan}
else then
ambil simpul n dari A yang jumlah prequisitenya 0 dan belum dikunjungi {C[indexOf(n)di A]=0 and n not in L}
if (n = NULL) then {tidak ada simpul yang bisa diambil}
error (graf memiliki setidaknya satu siklus)
else then
masukkan n ke L
for each simpul m di S dengan sisi e dari a ke m do
if (a=n) then
hilangkan sisi e dari graf
kurangi jumlah prequisiste dari m {C[indexOf(m)di A]-← 1 }
if (semester(m) <= semester(n)) then
semester(m) = semester(n) + 1 {B[indexOf(m)di A] ← B[indexOf(n)di A] + 1}
decreaseAndConquer(L) {recursively solve }
- Apabila masih tidak bisa run silahkan hubungi pembuat