Make your own free website on

Appendix E - Tutorial


Description of Task


In this tutorial you will prepare a timetable for your school. Data about this school can be found in Appendix D. You will start by transferring this data into six files. This procedure has been done for you and are kept in form *.tSt. You will copy them to the form *.txt.





Activate the simple text editor, Edit.Com, by typing EDIT at the DOS prompt and pressing the ENTER button.


Open the file Asas.TXT. Browse through the file and compare with the instructions in Appendix A-I. Likewise do the same for the other five files. More details can be found in the chapter on INPUT.


Start the Timetable Generator. When the copyright message appears, press the OK button to see the main menu. Select INPUT (use the arrow keys and then press <Enter> or type the mnemonic letter for INPUT, i.e. the Alt key and the letter I pressed together).


How can I be sure that all data was transferred correctly into the six files ? Activate the UJI menu. Test each of the six files, there should be no errors detected. Make some errors on purpose to any one of the six files, then test the file. Did the UJI routine detect the errors you made ? Correct the mistakes, save the file and then test the file again to make sure that there are no errors.


Sometimes information (data to be arranged) given by the various heads of department can have error. Two useful routines found in the JANA menu are the table of class against subject which shows the frequency of periods allocated and the table of class against subject which shows the number of periods allocated for each lecturer. Try all of them and browse through the files created by these routines.


If you do not understand the meaning of the codes used, use the KOD menu to select the relevant code.


Press KELUAR to go to the main menu when you are finished.



Feasibility Test


Before you generate the timetable, you must make sure that the data to be arranged together with the conditions set is feasible (What makes you think that you did not put such heavy constrains that it is impossible for all data to be slotted in the timetable?). This program does not attempt to give definite proofs if a set of data is impossible to be put in or not, but, it has algorithms to indicate the likelihood of an impossible condition.


Let us test this likelihood by activating the FEASIBILITI button found in the JANAAN menu. Try the KUMPULAN with the text box empty - by doing so, you have instructed the program to generate a new timetable for every class with all other classes empty - if rejects are found, then the chances are very great that it is caused by too strict a condition. You should get a lot of rejects. Study the Tolak.Dat, look for patterns, are the rejects random ?, a problem unique to the class in question ?, a subject problem ?, a teacher problem ? Test these possibilities out by using SUBJEK and PENSYARAH. You might want to either


modify the conditions found in Arahan.TXT


change the contents of Makasas.TXT


compromise on conditions and manually insert rejected data after timetable is generated (I would chose this method if the number of rejects are small - less than 20)



Press the SEMUA button to generate the timetable for all the classes, with the fixed data first followed by blocks, double periods and finally single. The final number of rejects you should expect after the TUNGGAL PULIH is used should be about 50 % of the rejects.



In this example we will not modify the Arahan.TXT nor Makasas.TXT. Instead we will deal with the problem of rejects later. In a real situation you would be advised to deal with the problem first as the number of rejects are significant.



Generate the timetable


Do the BLOK. You should get some rejects. Repeat the procedure until you get a feel of the minimum number of rejects possible. Do the BLOK again until you are satisfied with the number of rejects. Because Blocks are the most difficult to arrange, block problems must be solved immediately. Normally you might rethink having a particular kind of block (and thus modify Makasas.TXT) or relax conditions in Arahan.TXT or override the conditions only for the rejects. To override the conditions you need to use the BAIKPULIH routine. (Read the BAIKPULIH section below and then continue from here).


Next the double periods, mark the SAMBUNG check box and then choose KEMBAR. By marking the Sambung check box you have instructed the computer to continue with timetable generation with previous arranged data intact. You should get a number of rejects. In a real situation you would have actually quit this menu and selected the BAIK PULIH routine to deal with the double period rejects before returning to deal with the single period data. Proceed with single period data after marking the SAMBUNG check box.


You should get about quite a number of single period rejects. Since it is expected that the single period data would be the last to be dealt with, which in turn would give rise to more rejects of this type, a separate routine, the TUNGGAL PULIH is provided. This routine makes use of more rigorous search algorithms to arrange the rejected data (only single period data) and so it could take some time. Change the default tries (25) to 2 to get a feel of the amount out time it takes. Each time you hear a beep, it means a data is accepted. As long as data gets accepted, the process time shortens after each round.




Baik Pulih


This routine is quite intuitive. Try to find a slot which you would agree to (although some conditions has to be ignored). If satisfied, accept the slot(s). Repeat this procedure until slots are found for all the rejected data. Make use of the LAPORAN to get detail information of reason for rejects for each slots to select the least compromised slot. Sometimes you will find that none of the slots are satisfactory. In cases like these, use the PERUBAHAN routine.





In this routine you have less visual help, so you would be advised to use a printed general timetable (using INDUK in CETAK routine). You could check if your change is valid by pressing the TERIMA button. It will give you feedback on why a data in question is not to be allowed. You will have the option of ignoring the warning or canceling the command. Make use of the LAPORAN as described in Baik Pulih above.



Susun Bilik


Use this routine to arrange the rooms.



Output, Laporan, Utiliti, Query

The rest of the routines are also quite intuitive and details can be found in the relevant chapters.