Simulasi Kelompok
Simulasi Kelompok
Disusun oleh:
KATA PENGANTAR
Penulis menyadari bahwa laporan ini belum sempurna, oleh karena itu
penulis meminta maaf dan mengharap kritik saran yang membangun dari semua
pihak yang membutuhkan laporan ini. Sebagai akhir kata, penulis berharap, semoga
laporan ini dapat memberi manfaat bagi semua pihak yang membutuhkannya.
Kelompok
i
ii
DAFTAR ISI
ii
BAB I
DESKRIPSI SIMULASI
1
BAB II
MODEL
Start
Pesawat
Datang
Apakah Pesawat
Landasan No Menunggu
Kosong Landing
Yes
Pesawat
Landing
Pesawat
Melakukan
Persiapan
Apakah Pesawat
Landasan No Menunggu
Kosong Take Off
Yes
Pesawat Take
End
Off
2
3
Start
Pesawat
Datang
Yes
Pesawat
Yes
Landing
Pesawat
Melakukan
Persiapan
Yes
Pesawat Take
End Yes
Off
4
BAB III
IMPLEMENTASI DAN PEMBAHASAN
Plane Percentage
Sizes
S 7
m
L 30
a %0
a. Melakukan pembangkitan 10 bilangan acak sebagai sampel
rl %
40 71gl 2 33 64 95 26 57 88 19
e
b. Tabel Hubungan Bilangan Acak Hingga Sampel Waktu Kedatangan
Untuk mendapatkan interval kelas bilanagn acak, kita asumsikan jika
banyak pesawat adalah 100. Pada kasus ini, diketahui jika presentase
perbandingan pesawat besar dan kecil adalah 30% dan 70% oleh karena
itu dapat dilakukan perhitungan sebagai berikut :
70% x 100 = 70 (karena dimulai dari 0, maka interval kelas untuk
pesawat kecil
6
Take
Time Arival Take
Arrival Landing Prepare Off
(minutes) Queue Off
Queue
4 S1(B1) S1(C1)
L3(C3),
37,8 L3(B4) S6(C4)
S6(B5)
44,3 L3(B7)
46,3 S7(B7)
11,0 S1(B6)
16,3 S3 L1(B7)
17,8 S3(C3)
18,3 S2(B6)
23,3 L2 S3(B6)
26,3 S4(B6)
31,6 S6 L2(B7)
S5(B5),
32,1 S6(B3) S5(C4)
S6(C3)
33,6 S5(B6)
37,6 S6(B6)
42,9 L3(B7)
44,9 S7(B7)
12
z[i] = (a*z[i-1]+c)%m;
if(z[i]>=0 && z[i]<=29){
down[i] = 2;
up[i] = 3;
}
else if(z[i]>=30 && z[i]<=64){
down[i] = 3;
up[i] = 4;
}
else if(z[i]>=65 && z[i]<=89){
down[i] = 4;
up[i] = 5;
}
else if(z[i]>=90 && z[i]<=99){
down[i] = 5;
up[i] = 6;
}
}
13
int planesize[100];
z[0] = 9;
for(i = 1; i<=10;i++){
z[i] = (a*z[i-1]+c)%m;
if(z[i]>=0 && z[i]<=29){
down[i] = 2;
up[i] = 3;
}else if(z[i]>=30 && z[i]<=64){
down[i] = 3;
up[i] = 4;
}else if(z[i]>=65 && z[i]<=89){
down[i] = 4;
up[i] = 5;
}else if(z[i]>=90 && z[i]<=99){
down[i] = 5;
up[i] = 6;
}
}
z2[0]=z[10];
for( j = 1;j<=10;j++){
z2[j] = (a*z2[j-1]+c)%m;
}
printf("Tabel inter-arrival time of the first 10 arrivals
: \n");
//membandingkan
for(j = 1;j<=10;j++){
if(z[j]>z2[j]){
at[j]=down[j]+(z2[j]/100);
}
else if(z[j]<z2[j]){
at[j]=up[j]+(z2[j]/100);
}
jml = jml+at[j];
printf("%d. %d %d-%d %d %d\n", j, z[j],down[j],
up[j], z2[j],at[j] );
}
rata2=jml/10;
printf("Rata-rata arrival time : %.2f \n\n", rata2);
printf("Tabel plane size of the first 10 arrivals : \n");
printf("- angka 0 artinya pesawat kecil \n- angka 1 artinya
pesawat besar\n");
//pembangkitan bil random2
z3[0]=9;
for( i = 1;i<=10;i++){
z3[i] = (a*z3[i-1]+c)%m;
if(z3[i]>=0 && z3[i]<=69){
planesize[i]=0;
}
else if(z3[i]>=70 && z3[i]<=99){
planesize[i]=1;
}
printf("%d. %d %d\n",i, z3[i], planesize[i]);
}
14
for( i = 1;i<=10;i++){
if(planesize[i]==0){
kecil++;
}else if(planesize[i]==1){
besar++;
}
}
printf("Banyak pesawat kecil = %d\n", kecil);
printf("Banyak pesawat besar = %d\n", besar);
printf("\nTabel inter-arrival time of the first %d
arrivals small aerolpanes: \n",kecil);
//mencari waktu antar kedatangan pesawat kecil
z[0] = 9;
for(i = 1; i<=kecil;i++){
z[i] = (a*z[i-1]+c)%m;
if(z[i]>=0 && z[i]<=29){
down[i] = 2;
up[i] = 3;
}else if(z[i]>=30 && z[i]<=64){
down[i] = 3;
up[i] = 4;
}else if(z[i]>=65 && z[i]<=89){
down[i] = 4;
up[i] = 5;
}else if(z[i]>=90 && z[i]<=99){
down[i] = 5;
up[i] = 6;
}
}
z2[0]=z[kecil];
for( j = 1;j<=kecil;j++){
z2[j] = (a*z2[j-1]+c)%m;
}
jml=0;
//membandingkan
for(j = 1;j<=kecil;j++){
if(z[j]>z2[j]){
at[j]=down[j]+(z2[j]/100);
}
else if(z[j]<z2[j]){
at[j]=up[j]+(z2[j]/100);
}
jml = jml+at[j];
printf("%d. %d %d-%d %d %d\n", j, z[j],down[j],
up[j], z2[j], at[j]);
}
rata2=jml/kecil;
printf("Rata-rata arrival time pesawat kecil :%.2f \n",
rata2);
wktkecil=rata2;
printf("\nTabel inter-arrival time of the first %d
arrivals large aerolpanes: \n",besar);
//mencari waktu antar kedatangan pesawat besar
15
z[0] = z2[kecil];
for(i = 1; i<=besar;i++){
z[i] = (a*z[i-1]+c)%m;
if(z[i]>=0 && z[i]<=29){
down[i] = 2;
up[i] = 3;
}else if(z[i]>=30 && z[i]<=64){
down[i] = 3;
up[i] = 4;
}else if(z[i]>=65 && z[i]<=89){
down[i] = 4;
up[i] = 5;
}else if(z[i]>=90 && z[i]<=99){
down[i] = 5;
up[i] = 6;
}
}
z2[0]=z[besar];
for( j = 1;j<=besar;j++){
z2[j] = (a*z2[j-1]+c)%m;
}
jml=0;
//membandingkan
for(j = 1;j<=besar;j++){
if(z[j]>z2[j]){
at[j]=down[j]+(z2[j]/100);
}else if(z[j]<z2[j]){
at[j]=up[j]+(z2[j]/100);
}
jml = jml+at[j];
printf("%d. %d %d-%d %d %d\n", j, z[j],down[j],
up[j], z2[j],at[j]);
}
rata2=jml/besar;
printf("Rata-rata arrival time pesawat besar :%.2f \n",
rata2);
wktbesar=rata2;
i=0;
//satu landasan pacu
printf("\nTabel Simulasi 1 Landasan\n");
timeArrival[0]=0;
timeTakeOff1[0]=0;
timeTakeOff1[-1]=0;
timeTakeOff2[0]=0;
timeTakeOff2[-1]=0;
for( i = 1;i<=10;i++){
if(planesize[i]==0){
timeArrival[i]=timeArrival[i-1]+wktkecil;
if(timeArrival[i]>timeTakeOff1[i-2] &&
timeArrival[i]<timeTakeOff2[i-2]){
timeLanding1[i]=timeTakeOff2[i-2];
timeLanding2[i]=timeLanding1[i]+1.5;
prepare1[i]=timeLanding2[i];
prepare2[i]=prepare1[i]+4;
timeTakeOff1[i]=prepare2[i];
timeTakeOff2[i]=timeTakeOff1[i]+1.5;
}
16
timeTakeOff2[i]=timeTakeOff1[i]+1.5;
}else{
timeLanding1[i]=timeArrival[i];
timeLanding2[i]=timeLanding1[i]+1.5;
prepare1[i]=timeLanding2[i];
prepare2[i]=prepare1[i]+4;
timeTakeOff1[i]=prepare2[i];
timeTakeOff2[i]=timeTakeOff1[i]+1.5;
}
}
else if(planesize[i]==1){
timeArrival[i]=timeArrival[i-1]+wktkecil;
if(timeArrival[i]>timeTakeOff1[i-2] &&
timeArrival[i]<timeTakeOff2[i-2]){
timeLanding1[i]=timeTakeOff2[i-2];
timeLanding2[i]=timeLanding1[i]+2.5;
prepare1[i]=timeLanding2[i];
prepare2[i]=prepare1[i]+4;
timeTakeOff1[i]=prepare2[i];
timeTakeOff2[i]=timeTakeOff1[i]+2.5;
}else{
timeLanding1[i]=timeArrival[i];
timeLanding2[i]=timeLanding1[i]+2.5;
prepare1[i]=timeLanding2[i];
prepare2[i]=prepare1[i]+4;
timeTakeOff1[i]=prepare2[i];
timeTakeOff2[i]=timeTakeOff1[i]+2.5;
}
}
printf("%d. %.2f %.2f-%.2f %.2f-%.2f %.2f-
%.2f\n",i, timeArrival[i],
timeLanding1[i],timeLanding2[i],prepare1[i],prepare2[i],timeTa
keOff1[i],timeTakeOff2[i]);
wktArrival=timeArrival[i];
wktLanding=timeLanding2[i];
wktTakeOff=timeTakeOff2[i];
}
printf("\n- waktu kedatangan akhir pesawat : %.2f\n- waktu
landing akhir %.2f\n- waktu take off akhir
%.2f\n",wktArrival,wktLanding,wktTakeOff);
}
17
Hasil :
18
19
BAB IV
KESIMPULAN
DAFTAR PUSTAKA