Make your own free website on Tripod.com

Data Input

 

Asas.txt

 

You describe the structure of your timetable here. Basically it will begin with a label line which contains the time labels. Then below it will be at least one description line which contains all the slots for the day. If one of the day structure is different from the one the previous label line describes, then you create a new label line for it. Normally the 1st label line will suffice for the 1st four days, the 2nd label line would be for Friday.

 

You can give a description for up to 7 days. The following example is a detailed description.

 

' Label Line

<LABEL>,730-830,830-0930,0930-1030,*,1100-1200,1200-1300,**, 1415-1515,1515-1615

' Description Lines

ISNIN,I1,I2,I3,*,I4,I5,**,I6,I7

SELASA,S1,S2,S3,*,S4,S5,**,S6,S7

RABU,R1,R2,R3,*,R4,R5,**,R6,R7

KHAMIS,K1,K2,K3,*,K4,K5,**,B,B

 

' Label Line

<LABEL>,730-830,830-0930,0930-1030,1030-1130

 

' Description Line

JUMAAT,J1,J2,J3,J4

 

   

 

The above description will result in the timetable structure below.

 

Hari\Waktu

0730-0830

0830-0930

0930-1030

1100-1200

1200-1300

1430-1530

1530-1630

Isnin

1

2

3

4

5

6

7

Selasa

8

9

10

11

12

13

14

Rabu

15

16

17

18

19

20

21

Khamis

22

23

24

25

26

   

Hari\Waktu

0730-0830

0830-0930

0930-1030

1030-1130

   

Jumaat

27

28

29

30

   
             

 

 

The numbers 1 to 30 refers the numbers by which this program will refer to each slot in the timetable. You need not know these codes. You refer to them by the first letter of the day together with the position the slot occupies in the day, e.g. S4 for Selasa 4th period.

Notice that there is no code for K6 and K7, you asked it to be so by placing the letter B(lank).

 

An unit of description consist of one label line and at least one description line. For this unit the number of sub units in the label line and the description line(s) must be equal. The location of the rest periods `*' and `**' must also be the same.

 

For the above example, the 1st label line describes 7 teaching slots and they are valid from Monday to Thursday. That includes the empty slot, B, which is to be kept empty and shown as an empty slot when printed.

 

The symbol `*' allows for AN empty space to represent break period whereas `**' allows for TWO empty spaces to represent break period. You are not allowed to have break periods as the 1st or last period. You also cannot have more than one consecutive break periods.

 

Below are some examples of Allowed and INCORRECT description lines

 

 

Sabtu,B ,B,S1,*,S2,S3,S4,S5,**

Sabtu,*,B,S1,**,S2,S3,S4,S5

Sabtu,B,B,S1,*,**,S2,S3,S4,S5

(Break 1 and 2 consecutive)

Sabtu,B,B,S1,*,S2,*,S3,S4,S5

The letter B can only be placed in the beginning or end of the day.

 

Khamis,K1,B,K2,*,K3,K4,**,K5,K6

Khamis,B,B,K1,*,K2,K3,**,K4,K5

Make sure the letter you use is unique for the week.

 

Selasa ,S1,S2,*,S3,S4,**,S5,S6

Sabtu,B,B,S1,*,S2,S3,**,S4,S5S

 

Incorrect

Incorrect

Incorrect

 

Allowed

 

 

 

Incorrect

Allowed

 

 

 

S is for Selasa

Incorrect, S is already used as Selasa

 

 

 

 

 

 

GURU.TXT

 

GURU.TXT;

 

 

You provide the list of lecturers here. Each line consist of the lecturer code and his full name in ascending order separated by a coma. Below are three examples.

 

 

Format

 

Example 1

 

LectCode$,LectName$

 

ABI,DR AKBAR BIN IBRAHIM

ABS,EN ABDUL SALAM BIN HAJI AHMAD

ACH,PN ANGELA CHUNG CHOO TING

 

 

 

 

 

 

 

 

KUMBILIK.TXT

 

KUMBILIK.TXT;

 

 

You provide the list of class names as well as room names here. Each line of data consists of 4 parts. The first one is a number which refers to the class name code. The second part is the full class name. The third part refers to the home room for the class and the last part describes the type of room ((B)ig, (S)mall, (D)ewan, (F)ixed and (K)has).

 

If the first and second part are empty, then these lines are reserved for extra rooms which are not home rooms. See the example below. There are a total of 35 classes (lines must be arranged in ascending order, blanks come later).

 

Leave parts 3 and 4 empty if your timetable does not involve arranging of rooms. The three comas must be there though.

 

 

 

Format

 

Example 1

 

 

 

 

 

 

 

 

 

 

 

 

 

Note

 

 

 

 

 

 

 

ClassCode,ClassName$,RoomName$,RoomType$

 

1,1PSR(PI),B2,B

2,1PSR(PA)A,F8,B

.

.

34,KPLI-SEJ,B4,B

35,KDP-TESL,C1,B

,,C2,B

,,C3,B

.

.

,,LIB,K

,,BM2,B

 

 

The rooms without any class codes are not home rooms

 

 

     

 

 

MAKASAS.TXT

 

 

MAKASAS.TXT;

 

You provide the data to be arranged by the timetable generator here. You could either allow the timetable generator to randomly choose a slot (data to be arranged) for you or select the slot yourself(fixed) and they can be divided into further categories as shown below.

 

 

Data to be arranged - single period

 

Refers to data which has a single class number and is of the single period type (as opposed to double period).

 

Format

 

Example 1

 

Meaning

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Example 2

 

Meaning

Kump$, Pensy$, Subjek$, BilWaktu&Jenis

 

5, ABN/MNA/DAR, ELEKTIF, 2

 

ABN will teach class number 5 two single periods of Elektif. MNA and DAR are reserve lecturers.

 

Note that the class number is a single number

 

Note also that only ABN will have to obey all the conditions set by Arahan.TXT, it will only be ensured that MNA and DAR will be free at the sloted times. Note also that this will reduce search space as space has to be allocated for MNA and DAR.

 

Use the symbol `|' if the lecturers share the class.

 

The symbol `|' cannot occur after a slash.

 

 

5, ABN|MNA/DAR, ELEKTIF, 2

 

ABN and MNA will share in teaching class number 5 two single periods of Elektif. Their teaching loads will be divided appropriately i.e. each 1/2 periods each DAR will be the reserve.

 

Notice that the class number is a single number

 

Note that all the lecturers will obey all the conditions set by Arahan.TXT, thus creating even greater constraints on timetabling.

 

The following is equivalent to example 2 above.

 

5, ABN|MNA/DAR, ELEKTIF, 2T (T means Tunggal)

 

The following three rows are equivalent.

 

5, ABN|MNA/DAR, ELEKTIF,

5, ABN|MNA/DAR, ELEKTIF, T

5, ABN|MNA/DAR, ELEKTIF, 1T

 

They all refer to a single slot. The following is not equivalent to the above three examples.

 

5, ABN|MNA/DAR, ELEKTIF, T1 Wrong (Thursday 1st period ?)

 

The above example looks like a Fixed Data explained later i.e. the letter refers to the first letter of the day in question followed by the number representing its position for that day.

 

 

Data to be arranged - double period

Refers to data which has a single class number and is of the double period type (as opposed to a single period).

 

 

Format

 

Example 1

 

 

Meaning

 

 

 

Note

 

 

Example 2

 

Meaning

 

Kump$, Pensy$, Subjek$, BilWaktu&Jenis

 

5, ABN/MNA/DAR, ELEKTIF, K (K means Kembar)

 

ABN will teach class number 5 a double period of Elektif. MNA and DAR are reserve lecturer for those two periods.

 

You can save time by using a combination of 2a and 2b.

 

5, ABN, ELEKTIF, 2/3K

 

ABN will teach class number 5 two single periods and three double periods of Elektif making it a total of 8 periods.

 

 

Data to be arranged - single period block

 

Refers to data which has block classes and is of the single period type as opposed to double period. ( Pay extra attention as to how lecturers are distributed. )

 

 

Format

 

Example 1

 

Meaning

 

 

 

 

Example 2

 

Meaning

 

 

 

 

 

 

Note

Kump$, Pensy$, Subjek$, BilWaktu&Jenis

 

5-7, ABN/MNA/DAR, ELEKTIF, 2

 

Classes 5 to 7 will be taught together 2 singgle periods. On the timetable ABN will be placed as teaching class number 5, 6 and 7 with MNA and DAR being reserves.

 

5-7, ABN/MNA+DAR+EAL, ELEKTIF, 2

 

Classes 5 to 7 will be taught together 2 singgle periods. On the timetable ABN/MNA will be placed as teaching class number 5 only (MNA is reserve), DAR class number 6 only and EAL class number 7 only. (make sure the number of entries separated by the plus sign equal the number of classes).

 

You cannot have double periods for blocks.

 

 

Fixed period - slots determined in advance by you

 

 

Format

 

Example 1

 

Meaning

 

 

 

 

 

 

 

Example 2

 

Meaning

 

 

 

 

 

Example 3

 

Meaning

 

 

 

 

Example 4

 

Meaning

 

 

 

Example 5

 

Meaning

 

 

 

Example 6

 

Meaning

 

 

 

 

Note

 

Example 7

 

Meaning

 

Example 8

 

Meaning

 

 

 

 

Note

 

 

 

 

 

Note

 

 

 

 

 

 

Note

 

 

 

 

 

JulatKump$, Pensy$, Subjek$, JulatWaktu$

 

1/5, ABN/MNA, ELEKTIF, I1

 

On Monday 1st period,

ABN/MNA will teach class number 1 Elektif

ABN/MNA will teach class number 5 Elektif

 

Here MNA is a reserve lecturer (the timetable generator will ensure that at this period MNA does not teach anywhere else).

 

1/5, ABN+MNA, ELEKTIF, I1

 

On Monday 1st period,

ABN will teach class number 1 Elektif

MNA will teach class number 5 Elektif

(make sure the number of entries separated by the plus sign equal the number of classes).

 

1-39,,,K6-K7

 

Put a blank lecturer name and a blank subject name for the class 1 to 39 during periods Khamis 6 to 7

(this is an alternative way to putting the symbol B in Asas.TXT.)

 

1,ACH|AHO,HIM\TUT,I1

 

Class number 1 will have the subject HIM\TUT every Isnin 1st period. It will be SHARED between ACH and AHO.

 

1,ACH/AHO,HIM\TUT,I1

 

Class number 1 will have the subject HIM\TUT every Isnin 1st period. ACH will be the main lecturer. AHO will be the reserve.

 

1,ACH|AHO|DRP/MNA,HIM\TUT,I1

 

Class number 1 will have the subject HIM\TUT every Isnin 1st period. ACH, AHO and DRP will be the main lecturers (Their teaching loads divided equally). MNA will be the reserve.

 

You cannot have the separator `|' after the slash `/'

 

1,ACH\AHO|DRP/MNA,HIM\TUT,I1

 

WRONG

 

8-10,,ELF,S1-S2

 

Classes 8 to 10 will have ELF every Selasa 1st and 2nd period. No lecturers will be teaching unless otherwise stated in Arahan 9 (see help on Arahan.TXT).

 

You might want to use this combination for Elective subjects where for example 3 classes have to break into 4 or more subgroups. The Makasas.TXT will not allow you to describe this intent adequately. As will be explained in a later section (A `/'

 

You might want to use this combination for Elective subjects where for example 3 classes have to break into 4 or more subgroups. The Makasas.TXT will not allow you to describe this intent adequately. As will be explained in a later section (Angle period slots for any 3 days.

 

Notice that the exclamation mark symbol is used to signify this type of instruction.

 

The total number of slots (double period counted as one) must not exceed the total number of days.

 

If blocks are involved then you cannot use double periods.

 

This kind of data are arranged after the definite fixed data are arranged. One good use for this format is the condition that form teachers as far as possible must have first periods for their form class. If you insist that they must have first periods for their form class then you need to assign them the actual periods as explained in 2.1.

 

Rejected data becomes single period data to be arranged.

 

 

Fixed period - allowing for triple periods and above

 

 

Example 1

 

Meaning

 

 

 

 

Note

 

 

15, ABN, ELEKTIF, !3EMP/2TUJ

 

Arrange ABN who teaches class number 15 the first available slots for each days; three must be 4 (EMPat) periods in a row and two must be 7 (TUJuh) periods in a row..

 

You can chose TIG, EMP, LIM, ENA, TUJ, LAP, SEM and SEP (i.e. three to 10) periods in a row. Make sure that you do not create an impossible condition (e.g. using SEP when there are no days with more than 7 teaching slots).

 

Rejected data are converted to single period data to be arranged.

 

     

 

 

 

Arahan.TXT

 

Conditions to be followed by the timetable generator are set in this file. The conditions are grouped into classes and are refered to by numbers. There are 16 conditions used by the timetable generator but not all of them can be controlled by you. For example, you don't have to tell the computer that it has to make sure there is no lecturer clash when arranging the timetable. This condition, although is not controlled by you, is assigned a reference number. Thus out of the 16 reference numbers used, you can only change certain types. (Some are yet to be assigned any meaning)

 

This program will not run without this file, however, you may opt not to add any conditions of your own. Then, the very basic conditions the program will follow when generating the timetable are

 

  • Arrange in empty slots
  • No clash between pensyarah
  • maximum 4 consecutive teaching periods
  • teaching periods for same class distributed evenly throughout the week

 

The first 10 conditions are grouped together as SYARAT and are used whenever you generate the timetable.

 

Condition 11 is used when you use the Susun Bilik routine.

 

Condition 15 is used when you want supplementary information like the GERKO and AJK to be put into the timetable. (Refer to the Laporan and Utiliti routines).

 

Condition 16 allows you to balance or bias the timetable after you have generated the basic timetable.

 

You leave the Bilik$ slots empty if your timetable does not involve arranging of rooms.

 

Unless specically mentioned, you cannot use the plus symbol `+' indescriminately.

 

 

Arahan 1 Empty Slot

 

Format

 

Function

Cannot be set by the user

 

To ensure that a slot is empty before considering placing data in it.

 

 

Arahan 2 Lecturer Clash

 

Format

 

Function

 

Note

Cannot be set by the user

 

Make sure at the time in question the lecturer is free.

 

A problem may crop up if you have entries for Arahan 15 which coincide with some periods of the maktab lecture timetable. Lecturer clash is not determined here.

 

A specific example would be when you generated the timetable in the begining of the year when Gerko (Arahan 15) was finalised. At that time Gerko was fitted to suite the new timetable. Now you are going to generate a new timetable for the new session and you are going to follow the Gerko timetable fixed in the begining of the year. There is a way out. Generate the timetable, then use the Uji Pertembungan routine in the UTILITI menu (which will take into consideration Arahan 15) to check for clashes and make the necessary changes (yourself) .

 

 

Arahan 3 Subject Constraint

 

Format

 

Function

 

 

 

 

Example 1

 

Meaning

 

 

 

 

 

Note

 

 

3,Subjek$,JulatWaktu$,KecualiGuru$

 

To set times when certain subject cannot be taught (usually when you want to reserve times for department meetings. Another example would be to disallow the teaching of PJK during afternoons).

 

3,PSI/MOR/PED,I6-I7/R2-R3,AOH

 

The subjects which are subsets of PSI/MOR/PED will not be taught on Isnin 6th to 7th periods. Ignore this condition for the lecturer AOH (perhaps he doesn't belong to this department, he is just helping out temporarily)

 

Arahan 3 must have 4 entries. Only the KecualiGuru$ can be left blank.

 

 

 

Arahan 4 Class Constraint

 

Format

 

Function

 

 

Example 1

 

Meaning

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Example 2

 

Meaning

 

 

 

 

 

 

Note

 

4,JulatKumpulan$,JulatWaktu$

 

To set times when certain classes don't have periods (usually for kelas bertindih).

 

4,1-31/35,R6-R7

 

The classes 1 to 31 and 35 do not have to come to college on Rabu 6th and 7th period. (In this actual situation, there is supposed to be no lectures on Rabu 6 and 7, but for the KPLI group, classes 32 to 34, their timetable is so packed that these two slots had to be created for them. On the Asas.TXT I have described the college timetable as having R6 and R7 as formal teaching slots but in Arahan 4 I have instructed that only the KPLI groups use these slots).

 

I also would have added the following line in Makasas.TXT to signify that these slots are to be kept as empty (they can't be called free periods).

 

1-31/35,,,R6-R7

 

 

4,1-35,K6-K7

 

All the classes in the college don't have lectures during Khamis 6th and 7th period. (I have described in Asas.TXT the college timetable structure as having slots K6 and K7. By doing so, I could slot in other non classroom specific activities formally referring to K6 and K7 in Arahan 9 which is described later.

 

Arahan 4 must have 3 entries. They must all be non empty

 

 

Arahan 5 Subject Limit

 

Format

 

Function

 

 

 

Example 1

 

Meaning

 

 

 

 

Example 2

 

Meaning

 

 

 

 

Example 3

 

Meaning

 

 

 

 

 

 

 

 

 

 

Note

 

 

5,JulatKumpulan$,Had,Subjek$,Suis

 

To set limit to the number of times a subject can be taught at any one time (usually used for subjects which requires special rooms).

 

5,1-35,1,TEK,

 

The number of times a subset of TEK for any of the classes (1 to 35) that can be taught at any one time is limited to 1 (there is only one laboratory for TEK in this college).

 

5,1-35,1,ELE/ELK,

 

The number of times a subset of ELE/ELK for any of the classes (1 to 35) can be taught at any one time is limited to 1 (there is only one laboratory for this subject in the college).

 

5,1-35,2,PJK,1

 

The number of times a subset of PJK for any of the classes (1 to 35) can be taught at any one time is limited to 2 (the field can only hold 2 classes at a time). Added to that, for each of the classes, one must be held before break and the other after the 1st break. If you have more than one break then you can request that the 2nd break be used instead by placing 2 as the suis. This special condition only works if the the subject has a frequency of 2 per week like 2 single periods or 1 single and 1 double or 2 double periods.

 

Never name subjects which will be referenced in Arahan 5 with a slash as you would understand by now how the subset system of detection can complicated matters. You might want to use a backslash instead.

 

Arahan 5 will not work for blocks.

 

Arahan 5 must have 4 entries. Only Suis can be empty.

 

 

 

Arahan 6 Consecutive teaching period limit

 

Format

 

Function

 

 

Example 1

 

Meaning

 

 

Example 2

 

Meaning

 

 

Example 3

 

Meaning

 

 

 

 

 

 

Note

 

 

 

6,Had,SuisRehat,SuisArahan9

 

To set limit to the number of times a lecturer can teach consecutively in a day. Default is 4.

 

6,3,0,0

 

No lecturer can teach more than 3 periods in a stretch in a day.

 

6,3,1,0

 

No lecturer can teach more than 3 periods in a stretch in between breaks in a day.

 

6,3,1,1

 

No lecturer can teach more than 3 periods in a stretch in between breaks in a day. The condition, at certain times exempt certain lecturers who have other non class based activities as defined in Arahan 9, will also be taken into account (i.e. those Arahan 9 with entries 3 empty).

 

Only one line of Arahan 6 is allowed

 

Only four entries allowed

 

If no line is detected, the default is 4

 

 

Arahan 7 Limit as to entering the same class

 

Format

 

Function

 

Cannot be set by the user

 

To spread the teaching of a subject in a class evenly throughout the week.

 

This Arahan will automatically adjust itself if the total teaching days are reduced as determined in Arahan 10

 

 

Arahan 8 Limit as to teaching certain times

 

Format

 

Function

 

 

Example 1

 

Meaning

 

 

Example 2

 

Meaning

 

 

 

Note

 

8,JulatWaktu$,Had,KecualiSubjek$

 

To limit the number of times a lecturer teaches certain kinds of periods like evening periods or 1st periods.

 

8,I1/S1/R1/K1/J1,2,

 

A lecturer teaches 1st periods for a maximum of 2 times a week.

 

8,I1/S1/R1/K1/J1,2,PJK

 

A lecturer teaches 1st periods for a maximum of 2 times a week. Ignore this condition if it involves a subset of PJK.

 

Arahan 8 consists of 4 entries only. Only KecualiSubjek$ can be blank.

 

 

 

Arahan 9 Lecturer Limit

 

Format

 

Function

 

Function 1

 

 

Example 1

 

Meaning

 

 

Note

 

 

 

 

 

Function 2

 

 

 

 

 

 

 

 

Example 2

 

Meaning

 

 

 

 

 

 

 

 

 

 

 

 

 

Warning!

 

9,Guru$,JulatWaktu$,Subjek$,Bilik$

 

Various

 

To excempt certain pensyarah from teaching certain periods.

 

9,LSS/NAA/SLI/MOL,J3-J4,,,,

 

LSS, NAA, SLI, and MOL will be exempted from periods J3 to J4

 

Only the Guru$ and JulatWaktu$ entries are non empty. Pensyarah codes are separated by the slash sign only.

 

You are allowed to use up to 50 name codes.

 

To allow for non class based formal activities to be included in the timetable. (Mesyuarat Jabatan, Latihan In-house are held formally but they are not class based).

 

When arranging the timetable, this program will make sure the lecturers listed will be free during the periods stated.

 

9,ABI/LSS/NZA/YCY,K6-K7,MESYKJ,BMK,,

 

All of the lecturers ABI to YCY will be having MESYKJ on Selasa 2 to Selasa 3 in the BMK room

 

The above type is detected by the empty JulatKump$ and the non empty subjek$.

 

Note that I had to define Khamis 6 and Khamis 7 as a formal teaching period in Asas.TXT and blank it in Arahan 3 (because we don't have formal teaching classes during these periods) so that I could use these periods here. Now the personal timetable will be able to record this information. You are allowed to use up to 50 lecturer name codes

 

You should not have pensyarah having whole days free as it will confict with Arahan 7. Suppose you have a 5 day week and you teach a certain class 5 single periods. According to Arahan 7, your 5 periods will be distributed throught the week (i.e. one per day). If you gave 2 days off for the pensyarah in Arahan 9, then you will never create an opportunity for the 4th and 5th period to be slotted as according to Arahan 7 repetition is not allowed until all 5 days are slotted.

There is a way out. Try Arahan 10.

 

 

Arahan 10 Had Seminggu

 

Format

 

Example 1

 

Meaning

 

 

 

 

 

 

Note

 

 

 

 

 

 

 

 

 

 

 

Warning!

10,Had,KecualiGuru$,Suis

 

10,3,ABN/MNA,

 

All pensyarah are given 3 teaching days a week(e.g. to carry out practicum). The pensyarah ABN and MNA are exempted from this condition.

 

This arahan will automatically adjust Arahan 7 to reduce the number of days to be balanced

 

Make sure there is no partnership between lecturers who want a full week and some who want the limit. In that case once a lecture to be exempted is detected then all the rest for that unit of data will be exempted from this condition

 

If suis = 1 then all non empty Subjek$ of Arahan 9 is included.

 

Only one line with 3 entries allowed. The KecualiGuru$ is optional.

Each time this Arahan is used it involves searching the entire class for each day of the timetable and this can slow down timetable generation significantly.

 

 

Arahan 11 Distribution of Special Rooms

 

Format

 

Example 1

 

Meaning

 

 

 

Note

 

 

 

Example 2

 

Meaning

 

 

 

Note

 

 

 

 

 

 

Important

 

 

 

 

Example 3

 

Meaning

 

 

 

 

 

 

 

 

 

 

Note

 

 

Example 4

 

Meaning

 

Note

 

 

Example 5

 

Meaning

 

 

 

Note

 

11,Subjek$,Bilik$,JulatKumpulan$,HomeRoom$

 

11,TEK,MK1,1-35,

 

For any of the classes 1 to 35, if the subject TEK is taught, it is to be assigned the room MK1. By the way, this room is not a home room (HomeRoom$ is empty).

 

Here as long as the subject TEK is found, room MK1 is allocated. You limit the number of times TEK can be found at any one time in Arahan 5.

 

11,ELK/ELE,E3,1-35,17

 

For any of the classes 1 to 35, if the subject ELK or ELE is taught, it is to be assigned the room E3. E3 is the home room of class 17.

 

The program will find an alternative room for class 17 by first considering the suitability of the class having ELK or ELE (if E3 is of type (B)ig and the class having ELK is of type (S)mall then it has to look for free rooms elswhere). This prosedure is done automatically.

 

Make sure that you have instructed in Arahan 5 that there should only be one ELK or ELE at any one time. If you did not do this, then you will find this part of the program behaving strangely.

 

11,PM(K),+DKB^DK^DB,1-3,

 

Add (+) either (^) rooms DKB or DK or DB for the block classes 1 to 3 for the subject PM(K).

 

Supposing B1, B2 and B3 are home rooms for classes 1, 2 and 3. This instruction will locate the 1st available rooms of DKB, DK and DB to be assigned to each of classes 1 to 3. If DKB were the 1st available room then the room for class 1, 2 and 3 will be B1/DKB, B2/DKB and B3/DKB respectively. I suppose you could classify DKB as a reserve room.

 

The rooms must not be home rooms. The program will behave strangely otherwise.

 

11,KK\KL\LT,E4/E2/E1,1-35,16

 

For any of the classes 1 to 35, if the subject KK\KL\LT (notice I didn't use a slash but a back slash) is taught, it is to be assigned the rooms E1, E2 and E4. E4 is the home room of class 16.

 

11,PTN,+BPT,1-35,

 

For any of the classes 1 to 35, if the subject PTN is taught, the room BPT is to be ADDED to its home room.

 

Though the above instruction sound comprehensive, it is not easy to instruct the program to work flawlessly in practice. I would suggest that you do not trust this routine completely. I would also recommend that you note down any messages which appear and check the room referred to by the message no matter how silly it may sound.

 

 

Arahan 12 Lecturer Limit

 

Format

 

 

Function

 

 

 

 

 

 

 

Example 1

 

 

Meaning

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Note

 

 

9,Guru$,JulatWaktu$,Subjek$,Bilik$,JulatKump$,SubjPerin$

 

Elektif

To define more clearly certain subjects like elektif which are not exactly class based and thus impossible to place accurately in the Terima.DAT. (3 lecturers might be teaching 3 subjects comprising students from 4 classes - no lecturer or room can be assigned to one particular class).

 

9,LSS+NAA+SLI|MOL,J3-J4,ELF,M4+M3+E5,27/28,SAIN+SAIN+KH

 

LSS, NAA and SLI and MOL (SLI and MOL sharing) will be teaching elektif for classes 27 and 28 during Jumaat 3 to Jumaat 4. LSS will teach SAIN, NAA another class of SAIN and SLI|MOL will teach KH.

 

Note how the plus sign is used to match the three components. Make sure they have a one to one correspondence.

 

The above type is detected by the existence of the JulatKump$ and the SubjPerinci$.

 

It is assumed that this information will be recorded in Terima.DAT as Blank for Lecturer code, ELF for subject code and Blank for Room code for both class 27 and 28 during Jumaat 3 to Jumaat 4. Before you generated the timetable, you would have typed this data as

 

27,,ELF,J3-J4

28,,ELF,J3-J4

in Makasas.TXT and added the details in Arahan.TXT.

Since these information will be recorded as blank for lecturer code in the main timetable (but not personal timetable), a separate but detailed timetable based on Arahan 9 can be generated. See the Laporan routine.

 

This program also automatically calculates teaching loads (see LAPORAN and UTILITI). I define teaching loads as one which involves going into a class. So for the above examples, example 3 will be an example of a teaching load as classes are involved and example 2 a non teaching load as no classes are involved.

 

When classes are involved, make sure the detail for subjects and rooms are matched one to one. If you have ABC+DEF as lecturers, then you should have 2 subjects e.g. MOR+KH and 2 rooms B2+E3. You can only use the plus symbol for the Arahan 9 with non empty julatkump$ and SubjPerinci$ entries.

 

There should be 7 entries per line.

 

If the JulatKump$ is non empty then

total Guru$ = total Subjek$ = total Kumpulan$.

 

 

 

Arahan 13 Not Assigned Yet

     
 

Arahan 14 Not Assigned Yet

     
 

Arahan 15 Duties outside office hours (like Gerko and AJK)

 

 

 

 

 

 

 

Format

 

 

Function

 

 

 

 

Example 1

 

 

 

 

Meaning

 

 

 

 

 

 

 

 

 

 

 

 

 

Example 2

 

 

 

Meaning

 

 

 

 

 

 

 

 

 

 

Example 3

 

 

 

 

 

Meaning

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Example 4

 

 

 

 

 

 

Meaning

 

 

 

Note

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Note

 

 

The information contained in Arahan 15 will automatically go to the bottom of the personal timetable. The information can also be generated in various ways to be analysed. See the Laporan and Utiliti routines.

 

15,*,Waktu$,LabelMasa$,JumJam

15,Guru$,Aktiviti$,Bilik$

 

To define activities normally out of the office time.

 

With reference to Waktu$, Arahan 15 can be divided into 3 types as can be seen from the 3 examples below.

 

15,*,K,1630-1730,

15,DRP,BADMINTON,JIM

15,MNA,HOKI,PDG

15,TTR(Pengerusi)/ABI,BSEPAK(S2),PDG/BB6

 

On Khamis 1430-1530, DRP will have Badminton in the Jim, MNA will have Hoki in the Padang and TTR and ABI will have Bola Sepak for Semester 2 in either the Padang or BB6. Duration of the activity is 1 hour.

 

You could add a title for each of the pensyarah codes using a bracket as shown for TTR in the last line. (The BSepak(S2) is considered as a single entry, S2 is not understood in isolation as for the pensyarah codes)

Note the use of the day letter K only. You use the day letter only if could determine the day but not the time as it is outside normal teaching hours.

 

15,*,R6-R7,1430-1630,

15,MPJ/NZA(K),PG(BM),B1

15,ILU(K)/ZAK,PG(BI),A3

 

During Rabu 6 and Rabu 7, ie. 1430 - 1630, MPJ and NZA (as head) will have Pengurusan Gerku (BM) in the room B1. Duration of activity is 2 hours. At the same time, ILU (as head) and ZAK will have Pengurusan Gerko (BI) in the room A3. Note that here reference is made of formal teaching period.

 

When you state teaching periods (in this case R6 and R7), then this group of codes will be checked for lecturer clash and room clash.

 

15,*,,,2

15,MAS/ASM/KKT/MAN/SDT/TOH/MNA/AMP/ITE/MAR/HLW,KKSP,

15,LCK|JLE|ALE/OEH|TSG/SLI|MOL|LHK|MRW,KKSP,

 

The lecturers MAS to HLW are acknowledged to spend formally 2 hours per week on Kerja Kursus Secara Proses, but there is no slot to formally put them in. Their 2 hours contribution must be counted as a work load.

 

If you use | to separate pensyarah codes then when calculating the pensyarah teaching load, it is divided appropriately. Do not use the separator symbol | if JumJam value is set to 0.

 

The lecturers LCK, JLE and ALE share the 2 hours. So do OEH and TSG, SLI and MOL, and LHK and MRW. LCK for the above example is given a teaching load credit of 2/3 (2 hours divided by 3 pensyarah).

 

15,*,,,

15,MAS(Pengerusi)/ASM(Setiausaha)/KKT(Bendahari)/MAN/SDT/TOH/MNA/AM P/ITE/MAR/HLW,JK Verifikasi Stok,

15,LCK(Pengerusi)/JLE(Penasihat)/ALE(Setiausaha)/OEH,JK Rekreasi,

 

As entries 3 to 5 for the title line is empty, it must refer to activities which are time independant like committees.

 

Arahan 15 is used in a number of ways.

 

  • Activities automatically placed in bottom of personal timetable.
  • Generate a report - activity by pensyarah
  • Generate a report - pensyarah by activity
  • Used by the Analisis JW routine if JumJam value is greater than 0
  • Generate a separate timetable for Arahan 15

 

Since you cannot include activities in Arahan 15 directly into the main timetable, you can add them by generating a separate timetable (with borders and so on). You could generate the timetable only for title lines whose 3rd entry is non empty.

 

Each set of Arahan 15 consists of at least 2 lines. The 1st line which is the title line must contain 6 entries. The other lines must contain 4 entries.

 

 

Arahan 16 Minimum, Maksimum dan Imbang

 

Format

 

 

Function

 

 

Example 1

 

Meaning

 

 

 

 

Note

 

16,JulatWaktuMini$,JulatWaktuMax$,SuisImbang,KecualiJulatWaktu$

 

To instruct if certain periods should be maximized or minimized and if any balancing should be done.

 

16,,S1/R1/K1/J1/I7/S7/I5/S5/R5/K5/J4,1,I1/R6/R7

 

Maximize periods all the 1st periods, last periods and evening periods. Don't include R6 and R7. Balance the empty periods so that they are distributed evenly throughout the timetable.

 

Arahan 16 consist of 5 entries and only one line.

 

     
 

Though theoretically code size are not fixed, it is advisable that you use fixed codes of size 3 characters whenever possible. You not only conserve RAM space but also appears less confusing.

 

You might want to use ABS for Abdul Salam instead of AbdSlm.

 

As this program works a lot on the principle of comparison (eg. is A a subset of AB ?), you are advised also not to use too short a code as it might interfere with other codes(AB for the above name may interfere with ABE for Abdul Eshak since AB is a subset of ABE). That goes for the subject and room codes too. I would advise you to fix all code size to 3.