72
BAB IV
IMPLEMENTASI DAN UJI COBA
4.1 Deskripsi Program
Dalam sebuah program aplikasi yang digunakan untuk membantu
penggunakan dalam melakukan penjadwalan mata kuliah. Berikut ini adalah
tampilan utama program dapat dilihat pada gambar 4.1 berikut ini:
Gambar 4.1 Interface Utama
1. Input Data
Program memerlukan beberapa input data komponen utama penjadwalan
yang meliputi dosen, mata kuliah, ruangan, hari dan jam kuliah, waktu kesediaan
dosen, serta penugasan dosen atas mata kuliah yang diampu. Gambar 4.2 sampai
dengan gambar 4.7 adalah gambar dari semua form input yang ada pada program:
72
73
Gambar 4.2 Form Input Data Dosen
Gambar 4.3 Form Input Data Mata Kuliah
74
Gambar 4.4 Form Input Data Ruang
Gambar 4.5 Form Input Data Hari Dan Jam Kuliah
75
Gambar 4.6 Form Input Data Kelas
Gambar 4.7 Form Input Data Keinginan Waktu Dosen
76
Gambar 4.8 Form Input Data Pengampuan
2. Konfigurasi
Hal-hal yang perlu untuk dikonfigurasi adalah kombinasi parameter Simulated
Annealing, pengontrol jadwal dan pereduksi pengontrol jadwal. Gambar 4.8
berikut adalah form konfigurasi parameter Simulated Annealing.
Gambar 4.9 Form Parameter Simulated Annealing
77
4.2 Penerapan Program Pada Penjadwalan Kuliah
Tabel 4.1 Kombinasi Default Parameter
Parameter Nilai
Pengontrol Jadwal 5000
Pereduksi pengontrol 0.9
Program akan digunakan untuk menyelesaikan masalah penjadwalan
dengan berbagai kombinasi parameter Simulated Annealing. Besar masalah yang
harus diselesaikan adalah penjadwalan sebanyak 217 kelas mata kuliah yang
masing-masing diwakili oleh sebuah set. Secara default program memiliki
kombinasi parameter sperti pada tabel 4.1
Pada Tabel 4.1 dapat dijelaskan pengontrol jadwal ditetapkan sebesar
5000 untuk memberikan gerak bebas yang juga lebih besar pada komponen–
komponen penjadwalan. Sedangkan nilai pereduksi pengontrol sebesar 0.9. Hal
ini didasarkan dari beberapa kali percobaan dengan menggunakan parameter
berbeda berdasarkan ujicoba dari parameter-parameter yang digunakan
penenlitian-penelitian sebelumnya.
Apabila nilai parameter sudah disimpan, maka proses selanjutnya adalah
pembuatan jadwal melalui tombol proses. Untuk mendapatkan hasil penjadwalan
membutuhkan waktu sesuai dengan banyaknya data yang diproses dan besarnya
nilai parameter operator Simulated Annealingnya. Dokumentasi dari aktivitas
Simulated Annealing dapat dilihat, berikut contohnya:
78
Jadwal Awal:
1. 0765103, 5, 3, 5
2. 0765103, 5, 8, 6
3. 0765103, 5, 8, 6
4. 0765103, 1, 4, 4
5. 0765105, 3, 9, 2 //pembuatan jadwal awal secara random
.......dst. ..
Jumlah kesalahan = 189.0//nilai bentrokan atau pelanggaran constrain jadwal
awal
Jadwal Baru//pembuatan jadwal baru dengan merandom ulang jadwal awal
1. 0765103, 5, 3, 5
2. 0765103, 1, 6, 5
3. 0765103, 3, 5, 6
4. 0765103, 6, 1, 2
5. 0765105, 4, 1, 6
......dst. . .
Proses annealing: 1//menunjukkan iterasi keberapa
Cost solusi baru : 173.8// nilai bentrokan atau pelanggaran contrain jadwal baru
Pengontrol jadwal sekarang: 5000.0, solusi baru diterima//jadwal baru lebih
baik sehingga diterima dan menggantikan jadwal awal
.......dst. . .
Proses annealing: 3
Cost solusi baru : 173.85//nilai bentrokan atau pelanggaran constrain lebih
buruk
Pengontrol jadwal sekarang: 4050.0, solusi baru diterima//solusi diterima
karena probabilitas baik
. . .. dst. . .
Proses annealing: 61
Cost solusi baru : 140
Pengontrol jadwal sekarang: 18.08654634961495, solusi baru tidak diterima.
Proses annealing: 62
Cost solusi baru : 146.8//nilai bentrokan atau pelanggaran lebih buruk
Pengontrol jadwal sekarang: 8.08654634961495, solusi baru tidak
diterima.//jadwal tidak diterima karena probabilitas buruk
.......dst. . . .
79
Berikut form progres penjadwalan:
Gambar 4.10 Proses penjadwalan
Pada saat proses sedang berjalan, maka kita tidak bisa melakukan proses
lagi sampai proses selesai, jika kita memaksa melakukan proses lagi, maka akan
muncul peringatan seperti pada gambar 4.11.
Gambar 4.11 Peringatan Proses
Setelah proses selesai maka akan muncul hasil berupa sebuah jadwal yang
siap dipakai, namun sebelum jadwal disimpan maka kita diharuskan mengisi
80
ruangan untuk jadwal praktikum dengan ruangan Lab yang tersedia sesuai dengan
praktikumnya masing– masing.
Gambar 4.12 Pengisian Ruang Lab
Gambar 4.13 Peringatan Pengisian Ruang Lab
Gambar 4.13 adalah peringatan jika kita menyimpan data sebelum mengisi
ruangan Laboratorium yang harus diisi secara manual karena praktikum
mempunyai ruangan sendiri-sendiri yang sudah ditetapkan. Ruangan
Laboratorium tersebut dimasukkan dalam combo box sehingga kita lebih mudah
memilihnya.
81
Gambar 4.14 View Penjadwalan Jadi
Gambar diatas merupakan jadwal hasil proses penjadwalan yang telah
disimpan dalam database dan siap digunakan untuk satu semester kedepan.
1. Pembuatan Jadwal
Ada dua pembuatan jadwal dalam Simulated Aannealing, yaitu jadwal
awal yang digunakan tolok ukur dan kedua adalah jadwal baru. Jadwal awal dapat
digantikan oleh jadwal baru jika jadwal baru lebih baik yang dilihat dari nilai
bentrokan yang terjadi dari keduanya ataupun dapat digantikan oleh jadwal baru
yang lebih buruk namun nilai probabilitasnya lebih baik dari pada angka random 0
sampai 1. Berikut listing program untuk jadwal awal :
public void solusiAwal(){
Date d=new Date();
log="Waktu mulai penjadwalan : "+d.toLocaleString();
log+="\r\n\r\nSolusi Awal:";
for(int i=0;i<matkul.length;i++){//mulai perulangan jadwal awal
data[0][i][0]=String.valueOf(i);
if(sks[i].equals("1"))//penentuan jam secara acak untuk 1 sks
82
data[0][i][1]=String.valueOf(random(jam.length));
if(sks[i].equals("2"))//penentuan jam secara acak untuk 2 sks
data[0][i][1]=String.valueOf(random(jam.length-
1));
if(sks[i].equals("3"))//penentuan jam secara acak untuk 3 sks
data[0][i][1]=String.valueOf(random(jam.length-
2));
data[0][i][2]=String.valueOf(random(hari.length));//penentuan
hari secara acak
data[0][i][3]=String.valueOf(random(ruang.length));//penentuan
ruang secara acak
log+="\r\n"+(i+1)+".
"+matkul[Integer.valueOf(data[0][i][0].toString())]+",
"+hari[Integer.valueOf(data[0][i][2].toString())]+",
"+jam[Integer.valueOf(data[0][i][1].toString())]+",
"+ruang[Integer.valueOf(data[0][i][3].toString())];
}
if(reguler){//nilai bentrokan jadwal reguler
f(0);
log+="Jumlah kesalahan =
"+(cost1[0]+cost2[0]+cost3[0]+cost4[0]+cost5[0]+Math.round(cost
6[0]/0.05));
}else{//nilai bentrokan jadwal praktikum
fp(0);
log+="Jumlah kesalahan =
"+(cost1[0]+cost2[0]+cost3[0]+cost4[0]);
}
count=0;
try {
fos.write(log);
fos.flush();
} catch (Exception ex) {
ex.printStackTrace();
}
}
Jadwal baru dihasilkan dari jadwal awal yang diswap beberapa set dengan
cara merandom ulang yang diharapkan dapat menghasilkan jadwal baru yang
lebih baik dari jadwal awal. Berikut listing programnya untuk mendapatkan
jadwal baru :
private String[][]neighbor(String[][]string) {
String[][]n=new String[matkul.length][4];
int jml=random(matkul.length);// penentuan berapa pemasaran
yang akan dirandom ulang
83
while(jml==0)
jml=random(matkul.length);
int[]where=new int[jml];//penentuan pemasaran mana saja yang
akan dirandom ulang
for(int i=0;i<jml;i++){
do{
where[i]=random(matkul.length);
}while(same(where,i));
}
int j=0;//pembuatan jadwal baru dari jadwal awal
for(int i=0;i<matkul.length;i++){
if(i!=where[j]){
n[i][0]=string[i][0];
n[i][1]=string[i][1];
n[i][2]=string[i][2];
n[i][3]=string[i][3];
}else{
n[i][0]=string[i][0];
if(sks[i].equals("1"))
n[i][1]=String.valueOf(random(jam.length));
if(sks[i].equals("2"))
n[i][1]=String.valueOf(random(jam.length-
1));
if(sks[i].equals("3"))
n[i][1]=String.valueOf(random(jam.length-
2));
n[i][2]=String.valueOf(random(hari.length));
n[i][3]=String.valueOf(random(ruang.length));
if(j!=(where.length-1))
j++;
}
}
return n;
}
2. Aturan Penjadwalan
Berikut akan dijelaskan satu per satu aturan yang harus dilaksanakan pada
penyusunan jadwal kuliah:
1. Reguler
a. Bentrok ruang dan waktu
for(int i=0;i<matkul.length;i++){//mulai perulangan bentrok
ruang dan waktu
for(int j=0;j<matkul.length;j++){
84
if(i==j)//ketika pemasaran mata kuliah sama maka langsung ke
perulangan selanjutnya
continue;
if(data[s][i][1]==data[s][j][1] &&
data[s][i][2]==data[s][j][2] && data[s][i][3]==data[s][j][3])
cost1[s]+=1; //ketika hari,jam, dan ruangnya sama nilai
bentrokan ditambah 1
if(Integer.parseInt(sks[i].toString())>=2)
if((Integer.parseInt(data[s][i][1].toString())+1)==data[s][j][1
] && data[s][i][2]==data[s][j][2] &&
data[s][i][3]==data[s][j][3])//
cost1[s]+=1; //ketika sks lebih dari 1,hari,jam, dan ruangnya
sama nilai bentrokan ditambah 1
if(Integer.parseInt(sks[i].toString())>=3)
if((Integer.parseInt(data[s][i][1].toString())+2)==data[s][j][1
] && data[s][i][2]==data[s][j][2] &&
data[s][i][3]==data[s][j][3])
cost1[s]+=1; //ketika sks lebih dari 2, hari,jam, dan ruangnya
sama nilai bentrokan ditambah 1
}
}
b. Bentrok PKPBA dan Taklim
for(int i=0;i<matkul.length;i++){//mulai perulangan bentrok
PKPBA
if(smstr[i].equals("1") ||
smstr[i].equals("2")){//penyaringan semester I dan II
if(sks[i].equals("1")) // Ketika jam mulai kurang dari jam ke
3 (08.10) atau lebih dari jam ke 9 (13.10), penalti ditambah 1
if(Integer.parseInt(data[s][i][1].toString())<2 ||
Integer.parseInt(data[s][i][1].toString())>8)
cost2[s]+=1;
if(sks[i].equals("2"))// Ketika 2 sks, jam mulai kurang dari
jam ke 3 (08.10) atau lebih dari jam ke 8 (12.20) , penalti
ditambah 1
if(Integer.parseInt(data[s][i][1].toString())<2 ||
Integer.parseInt(data[s][i][1].toString())>7)
cost2[s]+=1;
if(sks[i].equals("3"))// Ketika 3 sks, jam mulai kurang dari
jam ke 3 (08.10) atau lebih dari jam ke 7 (11.30) , penalti
ditambah 1
if(Integer.parseInt(data[s][i][1].toString())<2 ||
Integer.parseInt(data[s][i][1].toString())>6)
cost2[s]+=1;
85
}
}
c. Bentrok sholat Jum’at
for(int i=0;i<matkul.length;i++){// Mulai perulangan bentrok
sholat Jum’at
if(data[s][i][2].equals(4)){// Penyaringan untuk hari jum’at
if(sks[i].equals("1"))// Ketika 1 sks, jam mulainya jam ke 6
(10.40) atau jam ke 7 (11.30) atau jam ke 8 (12.20), penalti
ditambah 1
if(data[s][i][1].equals(5) ||
data[s][i][1].equals(6) || data[s][i][1].equals(7))
cost3[s]+=1;
if(sks[i].equals("2"))// Ketika 2 sks, jam mulainya jam ke 5
(09.50) atau jam ke 6 (10.40) atau jam ke 7 (11.30) atau jam ke
8 (12.20), penalti ditambah 1
if(data[s][i][1].equals(4) ||
data[s][i][1].equals(5) || data[s][i][1].equals(6) ||
data[s][i][1].equals(7))
cost3[s]+=1;
if(sks[i].equals("3"))// Ketika 3 sks, jam mulainya jam ke 4
(09.00) atau jam ke 5 (09.50) atau jam ke 6 (10.40) atau jam ke
7 (11.30) atau jam ke 8 (12.20), penalti ditambah 1
if(data[s][i][1].equals(3) ||
data[s][i][1].equals(4) || data[s][i][1].equals(5) ||
data[s][i][1].equals(6) || data[s][i][1].equals(7))
cost3[s]+=1;
}
}
d. Bentrok dosen
for(int i=0;i<matkul.length;i++){// Mulai perulangan bentrok
dosen
for(int j=0;j<matkul.length;j++){
if(i==j)// Ketika pemasaran matakuliah sama, maka langsung ke
perulangan berikutnya continue;
if(data[s][i][1]==data[s][j][1] && data[s][i][2]==data[s][j][2]
&& dosen[i].equals(dosen[j]))// Ketika hari, jam, dan dosennya
sama, penalti ditambah 1 cost4[s]+=1;
if(Integer.parseInt(sks[i].toString())>=2)
if((Integer.parseInt(data[s][i][1].toString())+1)==data[s][j][1
] && data[s][i][2]==data[s][j][2] &&
dosen[i].equals(dosen[j]))// Ketika lebih dari 1 sks, hari dan
dosen sama, jam kedua sama dengan jam pertama matakuliah yang
lain, penalti ditambah 1
cost4[s]+=1;
(e)if(Integer.parseInt(sks[i].toString())>=3)
if((Integer.parseInt(data[s][i][1].toString())+2)==data[s][j][1
] && data[s][i][2]==data[s][j][2] &&
dosen[i].equals(dosen[j]))// Ketika lebih dari 2 sks, hari dan
dosen sama, jam ketiga sama dengan jam pertama matakuliah yang
lain, penalti ditambah 1
86
cost4[s]+=1;
}
}
e. Bentrok kesediaan waktu dosen
for(int i=0;i<matkul.length;i++){//mulai perulangan bentrok
kesediaan waktu dosen
int id=0;
boolean pnlt=true;// Inisialisasi variabel untuk penalti
for(int j=0;j<idDsn.length;j++)
if(dosen[i].equals(idDsn[j]))
id=j;
for(int j=0;j< wktDsn [id].length;j++){
Object[]wkt=String.valueOf(wktDsn
[id][j]).split(":");//Pemisahan hari dan jam untuk waktu dosen
if(jam[Integer.parseInt(data[s][i][1].toString())].equals(wkt[1
]) &&
hari[Integer.parseInt(data[s][i][2].toString())].equals(wkt[0])
){
pnlt=false;
break; }// Ketika waktu dosen terpenuhi,
variabel penalti bernilai false dan perulangan dihentikan
}
if(pnlt)// Ketika penalti bernilai true, penalti
ditambah 1
cost5[s]+=1;
}
f. Bentrok waktu dhuhur
for(int i=0;i<matkul.length;i++){// Mulai perulangan bentrok
waktu dhuhur
if(data[s][i][1].equals(6) // Ketika jam ke 7 (11.30) penalti
ditambah 0.05
cost6[s]+=0.05;
}
total[s]=cost1[s]+cost2[s]+cost3[s]+cost4[s]+cost5[s]+cost6[s];
}// Perhitungan total nilai bentrokan.
2. Praktikum
a. Bentrok waktu
for(int i=0;i<matkul.length;i++){// Mulai perulangan bentrok
waktu
for(int j=0;j<matkul.length;j++){
87
if(i==j)// Ketika pemasaran matakuliah sama, maka dilanjutkan
ke perulangan berikutny
continue;
if(data[s][i][0]==data[s][j][0]){// Penyaringan untuk
matakuliah yang sama
if(data[s][i][1]==data[s][j][1] &&
data[s][i][2]==data[s][j][2])// Ketika hari dan jam sama,
penalti ditambah 1
cost1[s]+=1;
if((Integer.parseInt(data[s][i][1].toString())+1)==data[s][j][1
] && data[s][i][2]==data[s][j][2])// Ketika hari sama dan jam
pertama sama dengan jam kedua kelas yang lain, penalti ditambah
1
cost1[s]+=1;
}
}
}
b. Bentrok dosen
for(int i=0;i<matkul.length;i++){// Mulai perulangan bentrok
dosen
for(int j=0;j<matkul.length;j++){
if(i==j)// Ketika pemasaran matakuliah sama, maka dilanjutkan
ke perulangan berikutnya
continue;
if(data[s][i][1]==data[s][j][1] && data[s][i][2]==data[s][j][2]
&& dosen[i].equals(dosen[j]))// Ketika hari, jam, dan dosen
sama, penalti ditambah 1
cost2[s]+=1;
if((Integer.parseInt(data[s][i][1].toString())+1)==data[s][j][1
] && data[s][i][2]==data[s][j][2] &&
dosen[i].equals(dosen[j]))// Ketika hari dan dosen sama, jam
pertama sama dengan jam kedua kelas yang lain, penalti ditambah
1
cost2[s]+=1;
}
}
c. Bentrok sholat Jum’at
for(int i=0;i<matkul.length;i++){// Mulai perulangan bentrok
sholat jum’at
if(data[s][i][2].equals(“4”)){// Penyaringan untuk hari jum’at
if(data[s][i][1].equals(“3”) || data[s][i][1].equals(“4”) ||
data[s][i][1].equals(“5”))// Ketika jam mulainya jam ke 5
(09.50) atau jam ke 6 (10.40) atau jam ke 7 (11.30) atau jam ke
8 (12.20), penalti ditambah 1
cost3[s]+=1;
}
}
88
d. Bentrok dhuhur
for(int i=0;i<matkul.length;i++){// Mulai perulangan untuk
bentrok dhuhur
if(data[s][i][1].equals(“5”))// Ketika jam mulai sama dengan
jam ke 7 (11.30), penalti ditambah 1
cost4s]+=1;
if(Integer.parseInt(data[s][i][1].toString())+1==5)// Ketika
jam kedua sama dengan jam ke 7 (11.30), penalti ditambah 1
cost4s]+=1;
}
3. Parameter Simulated Annealing
Parameter–parameter yang digunakan aplikasi ini ada dua yaitu pengontrol
jadwal dan pereduksi pengontrol jadwal. Pada awal proses Simulated Annealing,
dipilih suatu jadwal awal, yang merepresentasikan kondisi materi sebelum proses
dimulai. Gerakan bebas dari komponen-komponen penjadwalan,
direpresentasikan dalam bentuk modifikasi terhadap jadwal awal. Pada awal
proses Simulated Annealing, saat parameter pengontrol jadwal (T) diatur tinggi,
jadwal awal yang sudah ada diperbolehkan untuk mengalami modifikasi secara
bebas. Kebebasan ini secara relatif diukur berdasarkan nilai bentrokan yang terjadi
seberapa optimal jadwal awal yang telah diperoleh. Bila nilai bentrokan hasil
modifikasi ini membaik (dalam masalah optimisasi yang berusaha mencari
minimum berarti nilainya lebih kecil/downhill) jadwal hasil modifikasi ini akan
digunakan sebagai jadwal selanjutnya. Bila nilai bentrokan hasil modifikasi ini
memburuk, pada saat pengontrol jadwal masih tinggi, jadwal yang lebih buruk
(uphill) ini masih mungkin diterima. Dalam tahapan selanjutnya saat pengontrol
jadwal sedikit demi sedikit dikurangi, maka kemungkinan untuk menerima
langkah modifikasi yang tidak memperbaiki nilai bentrokan semakin berkurang.
Sehingga kebebasan untuk memodifikasi jadwal semakin menyempit, sampai
89
akhirnya diharapkan diperoleh jadwal yang mendekati jadwal optimal. Berikut ini
adalah listing program:
1. Pengontrol Jadwal :
Pengontrol jadwal ini diperhitungkan ketika jadwal yang dihasilkan lebih
buruk dari jadwal awal maka kemungkinan untuk menerima jadwal baru
dilakukan dengan membagi delta bentrokan dengan pengontrol jadwal
yang kemudian hasil exponennya akan dibandingkan dengan angka
random antara 0 sampai 1. Jika hasil eksponen lebih besar maka tetapkan
jadwal baru sebagai jadwal awal jika tidak maka tetap gunakan jadwal
awal. Probabilitas ini akan terus mengecil seiring dengan menurunnya
pengontrol jadwal akbibat pereduksi pengontrol jadwal.
String msg=" tidak diterima.";
double delta=total[1]-total[0];// Penghitungan selisih nilai
bentrokan jadwal awal dan jadwal baru
if(Math.exp(-delta/suhu)>Math.random()){//Jika selisih nilai
bentrokan dapat diterima, maka jadwal awal adalah jadwal baru
shift();
count=0;
msg="diterima";
}
2. Pereduksi pengontrol
Setelah pengontrol jadwal ditetapkan langkah selanjutkan adalah
dengan menetapkan pereduksi pengontrol. Digunakan untuk menurunkan
pengontrol jadwal sehingga probabilitas juga menurun yang
mengakibatkan penerimaan jadwal baru yang lebih buruk juga semakin
menyempit sampai akhirnya diharapkan dperoleh jadwal yang optimal.
90
}
suhu=suhu*alpha;// Penghitungan pereduksi pengontrol jadwal
try {
3. Shift
Merupakan penggantian jadwal awal dengan jadwal baru serta nilai
bentrokan apabila jadwal baru lebih baik atau jika probabilitas lebih besar
dari angka random. Yang selanjutnya jadwal baru tadi akan dirandom
ulang untuk menghasilkan jadwal baru lagi. Hal ini berlangsung terus
sampai ditemukan jadwal optimal yang juga diikuti penurunan pengontrol
jadwal oleh pereduksi pengontrol jadwal.
void shift(){
for(int i=0;i<data[0].length;i++)// Mulai perulangan untuk
tiap matakuliah
for(int j=1;j<4;j++)// Mulai perulangan untuk tiap komponen
penjadwalan per matakuliah
data[0][i][j]=data[1][i][j];// Data jadwal awal diganti dengan
data jadwal baru
if(reguler){// Nilai-nilai nilai bentrokan untuk kategori
reguler diganti nilai bentrokan baru
cost1[0]=cost1[1];
cost2[0]=cost2[1];
cost3[0]=cost3[1];
cost4[0]=cost4[1];
cost5[0]=cost5[1];
cost6[0]=cost6[1];
}else{// Nilai-nilai nilai bentrokan untuk kategori pratikum
diganti nilai bentrokan baru
cost1[0]=cost1[1];
cost2[0]=cost2[1];
cost3[0]=cost3[1];
cost4[0]=cost4[1];
}
total[0]=total[1];// Nilai total nilai bentrokan lama diganti
nilai total nilai bentrokan baru
}
4.3 Pengujian dan analisa parameter
Pengujian dengan parameter berbeda ini dilakukan untuk mendapatkan
konfigurasi yang tepat yang nantinya akan digunakan untuk pemrosesan data
91
penjadwalan. Parameter-parameter yang diujikan didapatkan dari penelitian-
penelitian sebelumnya yang kemudian dikombinasikan ulang sehingga didapatkan
kombinasi yang tepat. Dari beberapa referensi yang ada menganjurkan untuk
pengontrol jadwal agar tinggi . Parameter pengontrol jadwal, T0 (pengontrol
jadwal awal), berpengaruh pada penerimaan tata letak alternatif yang memiliki
total nilai bentrokan lebih buruk dari tata letak sebelumnya. Pengontrol jadwal
awal yang cukup tinggi membuat semakin banyak konfigurasi yang diterima.
Apabila pengontrol jadwal terlalu rendah, maka banyak konfigurasi yang tidak
memperbaiki nilai bentrokan akan ditolak. Akibatnya tidak banyak konfigurasi
tata letak yang diperhitungkan dan jadwal yang dihasilkan cenderung mendekati
jadwal sub optimal. Sebaliknya, jika pengontro jadwal terlalu tinggi, maka sistem
akan menerima hampir semua konfigurasi tata letak alternatif, sehingga waktu
komputasi pun akan meningkat (Mulyono,1997). Pemilihan faktor penurunan
pengontrol jadwal atau pereduksi pengontrol pada algoritma Simulated Annealing
harus dipilih sehingga jadwal yang dihasilkan tidak terjebak pada jadwal sub
optimal, disarankan dicoba antara nilai 0,7 sampai dengan 0,9(Purnomo,2001).
Rujukan lainnya adalah Heaton(2008) dengan parameter pengontrol jadwal 10 dan
pereduksi pengontrol jadwal 0.99 pada TSP, E. Aycan dan T. Ayav(2008)
pengontrol jadwal 10000 pada penjadwalan matakuliah, Supardi dan Restu
W(2002) pengontrol jadwal 1000 dan pereduksi pengontrol jadwal 0.8 pada
penyelesaian fungsi non konveks, Aditya R, Gloria Virginia dan Joko Purwadi
(2007) pengontrol jadwal 1000 dan pereduksi pengontrol jadwal 0.95 pada
penjadwalan produksi, I Gede Agus Widyana dan Andre Pamungkas (2002)
92
pengontrol jadwal 1 dan pereduksi pengontrol jadwal 0.9 pada multiple objektife
penjadwalan flowshop. Pelaksanaa uji coba parameter ini dilakukan di Lab
Internet dengan spesifikasi komputer sebagai berikut:
• Prosesor Dual Core 1.6 GHz
• Memory 512 Mb
• Hardisk 160 G
• OS windows xp
• IDE Netbean 7 dan JDK Java 7
Berikut tabel hasil uji coba dengan parameter pengontrol jadwal dan
pengontrol jadwal yang berbeda dilihat dari tingkat kesalahannya :
1. Tahap I.
a. Berdasarkan pereduksi pengontrol jadwal
Tabel 4.2 Uji parameter α=0.8
α=0.8 10 100 1000 5000 10000
1 0 0 1 2 2
2 1 0 1 0 0
3 1 1 0 0 0
4 0 0 2 0 1
5 0 2 0 1 1
Rata 1 1,5 1,333333 1,5 1,333333
Jumlah tanpa error =13
Jumlah error =12
Rasio error =0.48
Rata-rata error =1.33
Tabel 4.3 Uji parameter α=0.85
α=0.85 10 100 1000 5000 10000
1 0 1 0 1 1
93
2 0 2 0 0 0
3 0 0 0 0 1
4 1 0 0 0 1
5 0 0 2 0 1
Rata 1 1,5 2 1 1
Jumlah tanpa error =16
Jumlah error =9
Rasio error =0.36
Rata-rata error =1.22
Tabel 4.4 Uji parameter α=0.9
α=0.9 10 100 1000 5000 10000
1 1 0 0 0 1
2 0 1 2 0 0
3 0 0 0 0 0
4 0 1 1 0 0
5 2 0 0 0 1
Rata 1,5 1 1,5 0 1
Jumlah tanpa error =17
Jumlah error =8
Rasio error =0.32
Rata-rata error =1.25
Tabel 4.5 Uji parameter α=0.95
α=0.95 10 100 1000 5000 10000
1 0 0 0 1 2
2 0 1 1 0 0
3 0 0 0 0 0
4 2 0 0 0 0
5 1 1 2 1 1
Rata 1,5 1 1,5 1 1,5
Jumlah tanpa error =15
Jumlah error =10
Rasio error =0.4
94
Rata-rata error =1.3
Tabel 4.6 Uji parameter α=0.99
α=0.99 10 100 1000 5000 10000
1 1 1 3 0 0
2 1 0 3 1 0
3 1 0 0 0 1
4 0 0 1 0 0
5 0 1 1 0 2
Rata 1 1 2 1 1,5
Jumlah tanpa error =13
Jumlah error =12
Rasio error =0.48
Rata-rata error =1.41
Rekap dan diagram:
Tabel 4.7 Rekap rasio α Tabel 4.8 Rekap rata-rata α
Rasio : Rata-rata :
0.8 0,48
0.85 0,36
0.9 0,32
0.95 0,4
0.99 0,48
Dari tabel rasio kesalahan dan rata-rata kesalahan didapatkan bahwa nilai
pereduksi pengontrol jadwal 0.9 mempunyai angka paling kecil dibanding lainnya
sehingga kita dapat menggunakannya sebagai parameter default. Namun untuk
lebih meyakinkan dilakukan uji coba dengan range yang dilihat dari selisih rata-
rata kesalahan terkecil yaitu 0.85-0.9.
0.8 1,333333
0.85 1,222222
0.9 1,25
0.95 1,3
0.99 1,416667
95
Gambar 4.15 Diagram rekap rasio α
Gambar 4.16 Diagram rekap rata-rata α
96
b. Berdasarkan Pengontrol Jadwal:
Tabel 4.9 Uji parameter T=10
T=10 0.8 0.85 0.90 0.95 0.99
1 0 0 1 0 1
2 1 0 0 0 1
3 1 0 0 0 1
4 0 1 0 2 0
5 0 0 2 1 0
Rata 1 1 1,5 1,5 1
Jumlah tanpa error =15
Jumlah error =10
Rasio error =0.4
Rata-rata error =1.2
Tabel 4.10 Uji parameter T=100
T=100 0.8 0.85 0.90 0.95 0.99
1 0 1 0 0 1
2 0 2 1 1 0
3 1 0 0 0 0
4 0 0 1 0 0
5 2 0 0 1 1
Rata 1,5 1,5 1 1 1
Jumlah tanpa error =15
Jumlah error =10
Rasio error =0.4
Rata-rata error =1.2
Tabel 4.11 Uji parameter T=1000
T=1000 0.8 0.85 0.90 0.95 0.99
1 1 0 0 0 3
2 1 0 2 1 3
3 0 0 0 0 0
4 2 0 1 0 1
5 0 2 0 2 1
Rata 1,3333333 2 1,5 1,5 2
97
Jumlah tanpa error =13
Jumlah error =12
Rasio error =0.48
Rata-rata error =1.67
Tabel 4.12 Uji parameter T=5000
T=5000 0.8 0.85 0.90 0.95 0.99
1 2 1 0 1 0
2 0 0 0 0 1
3 0 0 0 0 0
4 0 0 0 0 0
5 1 0 0 1 0
Rata 1,5 1 0 1 1
Jumlah tanpa error =19
Jumlah error =16
Rasio error =0.24
Rata-rata error =1.17
Tabel 4.13 Uji parameter T=10000
T=10000 0.8 0.85 0.90 0.95 0.99
1 2 1 1 2 0
2 0 0 0 0 0
3 0 1 0 0 1
4 1 1 0 0 0
5 1 1 1 1 2
Rata 1,3333333 1 1 1,5 1,5
Jumlah tanpa error =12
Jumlah error =13
Rasio error =0.52
Rata-rata error =1.23
98
Rekap dan diagram:
Tabel 4.14 Rekap rasio T Tabel 4.15 Rekap rata-rata T
Rasio : Rata-rata :
10 0,4
100 0,4
1000 0,48
5000 0,24
10000 0,52
Gambar 4.17 Diagram rekap rasio T
Gambar 4.18 Diagram rekap rata-rata T
10 1,2
100 1,2
1000 1,666667
5000 1,166667
10000 1,230769
99
c. Berdasarkan rata-rata kesalahan perkombinasi parameter.
Pereduksi Pengontrol Jadwal :
Tabel 4.16 Rekap rata-rata perkombinasi α
10 100 1000 5000 10000
0.8 1 1,5 1,333333 1,5 1,333333
0.85 1 1,5 2 1 1
0.9 1,5 1 1,5 0 1
0.95 1,5 1 1,5 1 1,5
0.99 1 1 2 1 1,5
Pengontrol Jadwal :
Tabel 4.17 Rekap rata-rata perkombinasi T
0.8 0.85 0.9 0.95 0.99
10 1 1 1,5 1,5 1
100 1,5 1,5 1 1 1
1000 1,333333 2 1,5 1,5 2
5000 1,5 1 0 1 1
10000 1,333333 1 1 1,5 1,5
Gambar 4.19 Diagram rekap rata-rata perkombinasi α
100
Gambar 4.20 Diagram rekap rata-rata perkombinasi T
2. Tahap II.
Tabel 4.18 Range α 0.85-0.90
5000 0.86 0.87 0.88 0.89
1 1 1 0 0
2 1 0 0 2
3 0 0 0 1
4 0 0 2 1
5 2 0 0 1
Rata 1,333333 1 2 1,25
Dari hasil uji coba tahap satu kombinasi parameter dapat dilihat bahwa
pengontrol jadwal terbaik terletak pada 5000 sedangkan pepereduksi pengontrol
jadwal pada 0.9 sebanyak 5 kali percobaan mengalami error 0%. Pada uji coba
tahap dua dilakukan uji coba dengan parameter pengontrol jadwal 5000 dan
pepereduksi pengontrol jadwal 0.85 sampai dengan 0.9. Ini didasarkan pada hasil
rata-rata selisih kesalahan pereduksi pengontrol jadwal yang terkecil hasil uji
coba pereduksi pengontrol jadwal. Hasil tahap dua ternyata semua parameter
masih ada kesalahan pada setiap kombinasi parameter sehingga ditetapkan bahwa
101
kombinasi parameter yang diambil untuk parameter default pada aplikasi ini
adalah pengontrol jadwal 5000 dan pereduksi pengontrol jadwal 0.9.
4.4 Uji Coba Aplikasi
Tabel 4.19 Kombinasi Parameter
Parameter Nilai
Pengontrol Jadwal 5000
Pereduksi Pengontrol 0.9
Sebelum melakukan uji coba, kita tentukan dulu parameter yang akan
digunakan. Berdasarkan uji coba beberapa kali dengan pengontrol jadwal dan
pereduksi pengontrol jadwal berbeda dan hasilnya cukup akurat maka ditetapkan
menggunakan parameter seperti di tabel 4.19.
Berdasarkan hasil uji coba sebanyak 5 kali, didapatkan hasil yang
memuaskan yaitu tingkat kesalahan 0%.
Dari sample uji coba tersebut, dapat dihitung tingkat kesalahan pada hasil
penjadwalan tersebut, yaitu sebagai berikut:
Reguler :
1. Bentrok ruang dan waktu per jadwal
0/217 x 100% = 0%
2. Bentrok PKPBA per jadwal semester 1 atau 2
0/39 x 100% = 0%
3. Bentrok sholat jumat per jadwal
0/217 x 100% = 0%
4. Bentrok dosen per jumlah dosen
0/217 x 100% = 0%
102
5. Bentrok kesediaan waktu dosen per jadwal
0/217 x 100% = 0%
6. Bentrok waktu duhur dan ashar per jadwal
0/217 x 100% = 0%
Praktikum :
1. Bentrok waktu
0/217 x 100% = 0%
2. Bentrok PKPBA
0/39 x 100% = 0%
3. Bentrok sholat jumat
0/217 x 100% = 0%
4. Bentrok dosen
0/41 x 100% = 0%
Dari perhitungan di atas dapat diambil rata-rata tingkat kesalahan sebesar:
(1 + 2 + 3 + 4 +5 +6) / 6 = 0 % untuk reguler,
(1 + 2 + 3 + 4) / 4 = 0 % untuk praktikum
Dari lima kali uji coba, diperoleh hasil seperti tabel 4.20. Berdasarkan
beberapa uji coba yang telah dilakukan, dapat disimpulkan bahwa tingkat
kesalahan jadwal perkuliahan yang dihasilkan sebesar 0% dan waktu yang
dibutuhkan juga sangat cepat rata - rata 00:25:00 serta aplikasi ini sudah berhasil
mengoptimalkan 100% batasan–batasan yang di inginkan baik itu yang berupa
hard constrain maupun soft constrain sehingga aplikasi ini akan sangat membantu
proses penjadwalan yang ada di jurusan Teknik Informatika yang selama ini
103
masih dilakukan secara manual. Selain itu tren waktu Simulated Annealing selama
5 kali percobaan sangat cepat yaitu dalam hitungan menit, hal ini memungkinkan
meskipun dengan jumlah data penjadwalan yang banyak Simulated Annealing
akan dapat menyelsaikan iterasinya dengan cepat.
Tabel 4.20 Estimasi Waktu SA
Uji
Coba
ke-
Estimasi waktu
1 2 3 4 5
Awal 18:04:50 19:33:01 20:17:20 21:29:10 00:47:33
Akhir 18:18:08 19:48:57 20:49:56 21:21:43 01:29:24
Lama 00:13:18 00:15:56 00:32:36 00:21:33 00:41:51
104
Tabel 4.21 Hasil Uji Coba Dan Perhitungan Tingkat Kesalahan Reguler SA
Tabel 4.22 Hasil Uji Coba Dan Perhitungan Tingkat Kesalahan Praktikum SA
Uji
Coba
ke-
Jumlah Bentrok Konflik
Error
Tingkat Kesalahan
A B C D E F Konflik A Konflik B Konflik C Konflik D Konflik E Konflik F ∑∑∑∑
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Rata-rata 0 0 0 0 0 0 0 0
Uji
Coba
ke-
Jumlah Bentrok Konflik
Error
Tingkat Kesalahan
A B C D Konflik A Konflik B Konflik C Konflik D ∑∑∑∑
1 0 0 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0 0 0
4 0 0 0 0 0 0 0 0 0 0
5 0 0 0 0 0 0 0 0 0 0
Rata-rata 0 0 0 0 0 0
104
105
4.5 Pembuktian
a. Hari jumat
Pada hari jumat perkuliahan akan dihentikan pada pukul 11.30 sampai
13.10 untuk waktu sholat jumat:
Gambar 4.21 View Bentrok Sholat Jumat
b. Pkpba dan taklim
Gambar 4.22 View Bentrok PKPBA dan Taklim
106
Jadwal ini berlaku untuk mata kuliah semester I dan II, karena umumnya
mahasiswa pada semester tersebut masih ada kegiatan ta’lim sampai jam
7.00 dan PKPBA yang dimulai jam 14.00-20.00. jadi tidak akan ada
penjadwalan diantara jam tersebut untuk matakuliah semester I dan II.
c. Bentrok ruang dan waktu
Bentrok ruang dak waktu adalah bentrok dalam satu ruang atau satu waktu
ada perkuliahan yang sama pada waktu atau ruang tersebut.
d. Dosen
Bentrok dosen bisa terjadi pada hal satu dosen berada pada ruang yang
berbeda pada satu waktu, dua dosen pada ruang yang sama pada satu
waktu.
e. Waktu dhuhur Soft constrain)
Waktu untuk sholat dhuhur dimulai pukul 11.30, maka dalam penjadwalan
ini diusahakan tidak akan ada perkuliahan yang diawali pada jam
teersebut.
107
Gambar 4.23 View Bentrok
108
f. Kesediaan dosen
Dosen–dosen dapat menentukan waktu perkuliahan dengan alasan yang
benar–benar darurat.
Gambar 4.24 View Bentrok Kesediaan
Gambar 4.25 View Bentrok Kesediaan
4.6 Ananlisa dengan Algoritma Genetika
Dengan menggunakan data dan batasan–batasan yang sama percobaan
dilakukan dengan menggunakan metode Algoritma Genetika. Hasilnya Algoritma
Genetika dan Simulated Annealing mempunyai keakuratan yang sama, namun
mempunyai perbedaan dalam masalah waktu. Simulated Annealing mempunyai
waktu yang lebih cepat dan landai, sedangkan Algoritma Genetika mempunyai
waktu yang lebih lama dan curam. Hal ini dimungkinkan karena dalam Algoritma
Genetika mempunyai banyak langkah untuk melakukan iterasi dibandingkan
dengan Simulated Annealing. Dibawah ini adalah data-data hasil percobaan
menggunakan Algoritma Genetika :
Tabel 4.23 Estimasi Waktu GA
Uji
Coba
ke-
Jam
1 2 3 4 5
awal 19:18:19 21:43:39 14:47:01 16:27:12 23:49:52
akhir 20:34:27 4:02:51 16:12:28 21:34:08 2:17:51
Lama 1:16:08 6:19:12 1:25:27 5:06:56 2:17:59
109
Tabel 4.24 Estimasi Waktu SA
Gambar 4.26 Estimasi waktu GA dan SA
Dari data tabel 4.23 dan 4.24 dapat dilihat dengan
jelastren waktu kedua algoritma ini selama 5 kali pengujian.
Algoritma Genetika mempunyai tren waktu yang lama dalam
hitungan jam sementara Simulated Annealing dalam hitungan
menit. Dilihat dari gambar brafik 4.26 dapat disimpulkan bahwa
tren waktu Simulated Annealing lebih landai dibandingkan
Algoritma Genetika. Namun dilihat dari segi keakuratan
Simulated Annealing dan Algoritma Genetika sama-sama akurat
yaitu error 0%.
Uji
Coba
ke-
Estimasi waktu
1 2 3 4 5
Awal 18:04:50 19:33:01 20:17:20 21:29:10 00:47:33
Akhir 18:18:08 19:48:57 20:49:56 21:21:43 01:29:24
Lama 00:13:18 00:15:56 00:32:36 00:21:33 00:41:51
110
Tabel 4.25 Hasil Uji Coba Dan Perhitungan Tingkat Kesalahan Reguler GA
Tabel 4.26 Hasil Uji Coba Dan Perhitungan Tingkat Kesalahan Praktikum GA
Uji
Coba
ke-
Jumlah Bentrok Konflik
Fitness
Tingkat Kesalahan
A B C D E F Konflik A Konflik B Konflik C Konflik D Konflik E Konflik F ∑∑∑∑
1 0 0 0 0 0 0 1 0 0 0 0 0 0 0
2 0 0 0 0 0 0 1 0 0 0 0 0 0 0
3 0 0 0 0 0 0 1 0 0 0 0 0 0 0
4 0 0 0 0 0 0 1 0 0 0 0 0 0 0
5 0 0 0 0 0 0 1 0 0 0 0 0 0 0
Rata-rata 1 0 0 0 0 0 0 0
Uji
Coba
ke-
Jumlah Bentrok Konflik Fitness Tingkat Kesalahan
A B C D Konflik A Konflik B Konflik C Konflik D ∑∑∑∑
1 0 0 0 0 1 0 0 0 0 0
2 0 0 0 0 1 0 0 0 0 0
3 0 0 0 0 1 0 0 0 0 0
4 0 0 0 0 1 0 0 0 0 0
5 0 0 0 0 1 0 0 0 0 0
Rata-rata 1 0 0 0 0 0
110
111
111
4.7 Kajian Islam
Penjadwalan adalah sebuah proses perdana ketika hendak melakukan
pekerjaan baik dalam bentuk pemikiran maupun kerangka kerja agar tujuan yang
hendak dicapai mendapatkan hasil yang optimal. Penjadwalan merupakan bagian
penting dari sebuah kesuksesan. Menurut Asnawir penjadwalan adalah kegiatan
yang harus dilakukan pada tingkat permulaan, dan merupakan aktifitas
memikirkan dan memilih rangkaian tindakan yang tertuju pada tercapainya
maksud dan tujuan yang ingin dicapai.
Selain contoh jadwal sholat seperti dijelaskan pada latar belakang, masih
banyak lagi contoh jadwal dari Alloh yang manusia tinggal menjalankannya saja.
Misal saja sholat Idul Adha, Haji dan Qurban pada bulan Dulhijah, puasa
Ramadhan dan sholat Idul Fitri pada bulan Romadhon dan Syawal yang sudah
pasti terjadwal disetiap tahunnya.
Islam mengajarkan kepada umatnya untuk menjadwalkan segala
kegiatannya, sebagaimana firman Allah dalam Al-qur`an surat Al Hasyr : 18
$ pκš‰r' ¯≈ tƒ šÏ% ©!$# (#θ ãΖtΒ#u (#θ à)®?$# ©!$# ö�ÝàΖtF ø9 uρ Ó§øtΡ $ ¨Β ôM tΒ£‰s% 7‰tó Ï9 ( (#θ à)?$#uρ ©!$# 4 ¨βÎ) ©!$# 7�� Î7yz $ yϑÎ/ tβθ è=yϑ÷ès? ∩⊇∇∪
Artinya; “Hai orang-orang yang beriman: bertaqwalah kepada Allah dan
hendaklah setiap diri memperhatikan apa yang telah diperbuatnya untuk hari
esok (akhirat); dan bertaqwalah kepada Allah, sesungguhnya Allah Maha
mengetahui apa yang kamu kerjakan”
Dari ayat tersebut dapat difahami bahwa perlunya penjadwalan untuk
masa depan. Allah adalah maha menjadwalkan (Al-Bari) dimana sifat tersebut
menjadi inspirasi bagi umat islam terutama para pemimpin atau manager. Pada
112
dasarnya seorang pemimpin atau manajer harus mempunyai banyak konsep
tentang manajemen termasuk di dalamnya penjadwalan yang memuat visi dan
misi untuk keberhasilan tujuan bersama. Visi dan misi merupakan hasil dari
penjadwalan yang baik dan matang
Soejitno Irmin dalam buku Kepemimpinan Melalui Asmaul Husna
manafsirkan atas ayat tersebut bahwa: Allah sebagai pencipta, Allah sebagai
Perencana semua makhluk ciptaannya, Allah adalah Maha Menjadwalkan, Al-
Bari, sifat tersebut jika diamalkan secara substantif seharusnya menjadi inspirasi
bagi umat islam terutama para manajer atau pemimpin. Karena pada dasarnya
manajer atau pemimpin yang harus mempunyai banyak konsep tentang
manajemen termasuk di dalamnya penjadwalan. Pemimpin yang baik adalah yang
mempunyai visi dan misi, dan membangun kedua hal tersebut agar berjalan
sesuai dengan tujuan bersama. Visi dan misi merupakan hasil dari penjadwalan
yang baik dan matang.
Al-Ghozali menafsirkan ayat tersebut sebagai berikut : bahwa manusia
diperintahkan untuk memperbaiki dirinya, untuk meningkatkan keimanan dan
ketakwaan kepada Allah Swt, dimana proses kehidupan manusia tidak boleh
sama dengan kehidupan yang sebelumnya (kemarin). Di samping itu kata
perhatikanlan menurut Iman Al-Ghazali mengandung makna bahwa manusia
harus memperhatikan dari setiap perbuatan yang dia kerjakan, serta harus
mempersiapkan diri (menjadwalkan) untuk selalu berbuat yang terbaik demi hari
esok.
113
ImamAl-Jauhary; menafsirkan ayat tersebut sebagai salah satu bentuk dari
manusia untuk selalu intropeksi diri atas segala sesuatu yang dia perbuat,
perbuatan manusia harus difikirkan (direncanakan) agar tidak rugi dalam
hidupnya sehingga beliau menafsirkan Surat Al-Hasyr Ayat 18 tersebut dengan
surat At-Tinn yaitu sebagai berikut :
“Sesungguhnya Kami telah menciptakan manusia dalam bentuk yang
sebaik-baiknya, kemudian Kami kembalikan dia ke tempat yang serendah-
rendahnya (neraka), kecuali orang-orang yang beriman dan mengerjakan amal
saleh; maka bagi mereka pahala yang tiada putus-putusnya, maka apakah yang
menyebabkan kamu mendustakan (hari) pembalasan sesudah (adanya keterangan-
keterangan) itu?”( Surat At-Tiin, ayat : 4-7 )
Manusia harus kembali ke Tuhan-Nya dengan selamat dan sejahtera
proses selamat tersebut harus dimulai dari dunia ini yang diwujudkan dengan
tingkah laku yang baik, sesuai dengan apa yang tercantum dalam surat Al-Hasyr
ayat 18 tersebut yaitu Kata: ” hendaklah setiap diri memperhatikan apa yang
telah diperbuatnya untuk hari esok (akhirat) dalam surat tersebut,”dan kata itu
menekankan adanya penjadwalan yang baik dalam diri manusia atas segala
tindakan selama di dunia sehingga ia akan mendapatkan keselamatan di akhirat
nanti.
Choiruddin Hadhiri. SP, dalam bukunya “Klasifikasi Kandungan Al-
Qur’an”, menyatakan : “Dalam setiap langkah gerak , manusia harus instrospeksi
memperhatikan apa-apa yang telah diperbuatnya untuk kebaikan masa depan,
dengan kata lain berarti manusia harus memiliki rencana, sehingga manusia
hidupnya terarah dan tidak terjerumus ke lubang yang sama”.
Quraish Shihab dalamnya tafsir “al-Misbah”, dari ayat tersebut mengenai
penjadwalan beliau mengatakan bahwa kata wantandur’ nafsuma koddamat
114
liqe’dim mempunyai arti bahwa manusia harus menfikirkan terhadap dirinya dan
menjadwalkan dari segala apa yang menyertai perbuatan selama hidupnya,
sehingga ia akan memperoleh kenikmatan dalam kehidupan ini. Jika proses
penjadwalan telah dilakukan oleh Allah semenjak penciptaan manusia.
Dari penjelasan dan penafsiran tersebut dan implikasinya terhadap
penjadwalan akan memberikan pemahaman bahwa proses penjadwalan yang baik
berlandaskan pendekatan Agama Islam pada Surat Al-Hasyr Ayat 18 dapat
menciptakan proses penjadwalan yang baik (ideal). Penjadwalan dalam
penjadwalan adalah landasan utama untuk mencapai sebuah tujuan yang baik,
sehingga penjadwalan yang baik-lah yang akan menghasilkan tujuan yang baik.
Penjadwalan merupakan proses untuk menentukan ke mana harus
melangkah dan mengidentifikasi berbagai persyaratan yang dibutuhkan dengan
cara efektif dan efisien, sehingga penjadwalan sesuai yang diinginkan dalam
Surat Al-Hasyr, ayat :18, mengandung enam pokok pikiran yaitu: Pertama,
penjadwalan melibatkan proses penetapan keadaan masa depan yang diinginkan.
Kedua, keadaan masa depan yang diinginkan dibandingkan dengan kenyataan
sekarang, sehingga dapat dilihat kesenjangannya. Ketiga, untuk menutup
kesenjangan perlu dilakukan usaha-usaha. Keempat, usaha untuk menutup
kesenjangan tersebut dapat dilakukan derngan berbagai ikhtiar dan alternative.
Kelima, perlu pemilihan alternative yang baik, dalam hal ini mencakup efektifitas
dan efesiensi. Keenam, alternative yang sudah dipilih hendaknya diperinci
sehingga dapat menjadi petunjuk dan pedoman dalam pengambilan keputusan
maupun kebijaksanaan.( Anoenk,2011)
115
Sebagaimana ditafsirkan oleh ImamAl-Jauhary Surat Al-Hasyr Ayat 18
agar manusia tidak merugi, hal ini diperkuat lagi dalam surat Al Ashr yang
menjelaskan bahwa Alloh telah bersumpah demi waktu (masa), akan banyak
manusia yang merugi kecuali mereka yang beriman dan mengerjakan amal saleh.
Waktu adalah salah satu diantara nikmat Allah yang paling berharga dan agung
bagi manusia. Cukup bagi kita kesaksian Al-Qur’an tentang betapa agungnya
tentang nikmat yang satu ini. Banyak ayat-ayat Al-Qur’an yang menunjukkan
tentang urgensi waktu, ketinggian tingkatannya, dan juga pengaruhnya yang
besar. Bahkan Allah telah bersumpah dengan waktu dalam kitab-Nya yang mulia
dan ayat-ayat-Nya yang luhur dalam konteks yang berbeda-beda. Allah yang
urusan-Nya yang begitu agung telah bersumpah dengan waktu malam, siang,
fajar, subuh, saat terbenamnya matahari, waktu dhuha, dan dengan masa.
Hanya orang-orang hebat dan mendapatkan taufik dari Allah, yang
mampu mengetahui urgensi waktu lalu memanfaatkanya seoptimal mungkin.
Dalam hadits.
ما فيھ مغبون نعمتان حة :الناس من كثير والفراغ الص
“Dua nikmat yang banyak manusia tertipu dalam keduanya, yaitu nikmat sehat
dan waktu luang (HR. Bukhari).
Banyak manusia tertipu didalam keduanya, itu artinya, orang yang
mampu memanfaatkan hanya sedikit. Kebanyakan manusia justru lalai dan tertipu
dalam memanfaatkannya.
116
Î� óÇyèø9 $# uρ ∩⊇∪ ¨βÎ) z≈ |¡Σ M} $# ’ Å∀ s9 A� ô£ äz ∩⊄∪ �ωÎ) tÏ% ©!$# (#θãΖ tΒ#u (#θè=Ïϑ tã uρ ÏM≈ys Î=≈ ¢Á9$#
(# öθ|¹# uθs? uρ Èd,ysø9 $$Î/ (#öθ|¹# uθs? uρ Î�ö9 ¢Á9 $$Î/ ∩⊂∪
1. Demi masa.
2. Sesungguhnya manusia itu benar-benar dalam kerugian,
3. Kecuali orang-orang yang beriman dan mengerjakan amal saleh dan
nasehat menasehati supaya mentaati kebenaran dan nasehat menasehati supaya
menetapi kesabaran. [Q.S. AI Ashr: (103): 1-3].
Hadits qudsi, "Pada setiap fajar ada dua malaikat yang berseru-seru:
"Wahai anak Adam aku adalah hari yang baru, dan aku datang untuk menyaksikan
amalan kamu. Oleh sebab itu manfaatkanlah aku sebaik-baiknya. Karena aku
tidak kembali lagi sehingga hari pengadilan". (H.R. Turmudzi).
Mengenai surat Al-Ashr ini, Imam Syafi'i mengungkapkan, "Seandainya
Allah tidak menurunkan selain surat ini, maka sudah cukup bagi manusia." Dalam
ungkapan lain, Imam Syafi'i mengatakan, "Seandainya manusia mau merenungi
apa yang terkandung dalam surat ini, niscaya sudah cukup baginya." Bahkan
Imam yang lain mengatakan, "Bahwa surat Al-Ashr mencakup seluruh ilmu yang
terkandung dalam Al-Qur'an." (Lihat Syeikh Tohir Asur, Tahrir wa At-Tanwir,
Halaman 528).
Mari kita renungi bersama surat ini. Ayat pertama dari surat ini, Allah
menggunakan sumpah dengan memakai "al-ashr" (waktu). Sudah kita maklumi
bersama, ketika Allah mengungkapkan, memerintah, melarang, atau bahkan
mensyari'atkan sesuatu, maka tentu ada rahasia di balik itu. Meskipun rahasia-
rahasia di balik itu semuanya, hanya sedikit saja yang dapat dijangkau oleh nalar
manusia. Selebihnya, yang mengetahui hanyalah Allah.
117
Allah menggunakan sumpah dengan memakai waktu. Secara tidak
langsung, kita sadar atau tidak sadar, Allah mengingatkan kita agar senantiasa
memperhatikan waktu. Karena waktu sangat penting bagi keberlangsungan
kehidupan manusia di dunia.
Dikisahkan dari At-thabrani, sanad dari Ubaidillah bin Abdullah bin
Khusein Al-Anshari berkata, "Ada dua sahabat Rasulullah SAW. Ketika keduanya
bertemu, sebelum keduanya berpisah, salah satu di antaranya membaca surat Al-
Ashr. Setelah itu, mereka berjabat tangan seraya mengucapakan salam." Begitulah
kebiasaan mereka berdua setiap berjumpa.
Ada dua pesan yang disampaikan dalam surat ini kepada kita semua.
Pertama, mengingatkan kita terhadap pentingnya waktu. Kedua, pada hakikatnya,
manusia adalah tergolong rugi, kecuali orang yang mempunyai empat sifat. Empat
sifat tersebut adalah iman, amal shaleh, berwasiat al-haq (berpesan kebenaran),
berwasiat sabar. Siapa pun orangnya yang telah memiliki atau telah disebut orang
yang memiliki empat hal tersebut, maka orang tersebut termasuk golongan yang
yang beruntung alias tidak merugi.( Muhammad Zaidun Khadlirin,2008)
Sebagaimana firman Alloh dan hadist diatas, maka kita harus dapat
memanfaatkan waktu dengan sebaik-baiknya agar kita tidak merugi dan tidak
menyesal dikemudian hari karena waktu yang sudah berlalu tidak akan bisa
kembali lagi. Oleh karena itu agar waktu yang ada dapat termanfaatkan dengan
baik dan maksimal, kita perlu membuat penjadwalan agar semua waktu terisi oleh
kegiatan yang bermanfaat dan tentunya cukup waktu istirahat.
Top Related