Program Queue Tempat Parkir dalam Bahasa C#

fv

Pada postingan sebelumnya sudah dijelaskan tentang Queue Dalam Bahasa C#, untuk kali ini kita akan membuat Program Queue Tempat Parkir dalam Bahasa C#.

Untuk praktiknya menggunakan aplikasi Devcpp.

DOWNLOAD DISINI : DEVCPP

//ylx-4.com/fullpage.php?section=General&pub=139976&ga=g

Misalkan saja soalnya seperti berikut :

  1. Implementasikan simulasi tempat parkir. Program simulasi ini didasarkan pada persoalan berikut. Ada suatu tempat parkir yang hanya bisa memuat mobil dalam satu baris, jumlah mobil yang masuk untuk nomor ini bisa dibatasi. Mobil masuk lewat pintu utara dan keluar lewat pintu selatan. Jika mobil yang berada di paling selatan akan keluar maka mobil bisa langsung keluar. Tetapi jika mobil yang keluar ditengah, maka mobil yang di selatan dikeluarkan sementara. Setelah mobil yang dimaksud keluar, maka mobil yang dikeluarkan tadi dimasukkan lagi dengan susunan seperti semula. Sehingga mobil yang berada di paling selatan tetap berada pada posisinya semula. Mobil yang ada di utara mobil yang keluar tadi digeser ke selatan, sehingga yang kosong selalu pintu utara. Dengan memperhatikan persoalan diatas, sebenarnya simulasi ini selain berisi antrian juga berisi tumpukan, yakni pada saat sebuah mobil yang berada ditengah akan dikeluarkan, maka mobil yang di selatannya akan di tumpuk (di-push) di tempat penampungan sementara. Baru setelah mobil keluar, maka mobil yang disimpan di penampungan sementara tadi di pop kembali. Dengan cara ini maka semua mobil akan mempunyai posisi sebelum semua mobil dikeluarkan.
  2. Implementasikan persoalan nomor 1 dengan jumlah mobil yang bisa masuk tidak dibatasi.

Untuk mengerjakan no 1 dan 2 cukup menggunakan 1 header saja.

1. Soal no 1.c

/* File : Soal no.1 */
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define MAX 500
struct queue{
int plat[MAX];
int front;
int rear;
int count;
};
struct stack{
int plat[MAX];
int count;
};
void initQueue(struct queue *q) {
q->front = q->rear = 0;
q->count = 0;
}
void initStack(struct stack *s) {
s->count=0;
}
void normalisasi_queue(int x,struct queue *q, struct stack *s)
{
do{
q->plat[x]=q->plat[x+1];
x++;
} while(x<q->rear);
q->rear–;
q->count–;
do{
q->front–;
q->plat[q->front]=pop(s);
q->count++;
} while(s->count!=0);
}
void push(int plt,struct stack *s)
{
s->count++;
s->plat[s->count]=plt;
}
int pop(struct stack *s)
{
int plt;
plt=s->plat[s->count];
s->count–;
return(plt);
}
int cek_mobil(int plt,struct queue *q)
{
int i,hasil;
for(i=q->front;i<=q->rear;i++){
if(q->plat[i]==plt){
hasil=i;
break;
}
else if((q->plat[i]!=plt)&&(i==q->rear)){
hasil=0;
}
}
return(hasil);
}
void masuk(int plt, struct queue *q)
{
if(q->rear==MAX){
printf(“\nAntrian Penuh !\n”);
return;
}
else if(q->count==0){
q->rear++;
q->plat[q->rear]=plt;
q->count++;
q->front++;
}
else{
q->rear++;
q->plat[q->rear]=plt;
q->count++;
}
}
void keluar(int plt, struct queue *q,struct stack *s)
{
int i,x;
i=q->front;
if(q->count==0){
printf(“\nAntrian kosong !\n”);
getch();
return;
}
else if(cek_mobil(plt,q)==0){
printf(“\nPlat mobil yang dientrikan tidak ada dalam antrian !\n”);
getch();
return;
}
else if((cek_mobil(plt,q)==q->front)&&(q->count>1)){
q->front++;
q->count–;
return;
}
else if((cek_mobil(plt,q)==q->front)&&(q->count==1))
initQueue(q);
else{
x=cek_mobil(plt,q);
printf(“\nMobil yang keluar sementara : \n”);
for(i=q->front;i<x;i++){
printf(“- Mobil plat %d\n”,q->plat[i]);
push(q->plat[i],s);
q->front++;
q->count–;
}
normalisasi_queue(x,q,s);
getch();
return;
}
}
void tampil(struct queue *q)
{
int i,x;
system(“cls”);
x=q->front;
printf(“**** PROGRAM PARKIR sugihpamela.pe.hu ****\n”);
printf(“——————————————-\n”);
printf(“Data antrian mobil yang parkir : \n”);
printf(“——————————————-\n”);
if(q->count==0)
printf(“\nTidak ada mobil yang sedang parkir\n”);
else {
for(i=1;i<=q->count;i++){
printf(“%d. Mobil plat %d\n”,i,q->plat[x]);
x++;
}
printf(“\nJumlah mobil yang parkir : %d\n”,q->count);
}
printf(“\n\n**Tekan sembarang tombol untuk kembali ke pilihan**”);
getch();
return;
}
void main()
{
struct queue q;
struct stack s;
int jawab;
int plt;
initQueue(&q);
initStack(&s);
do{
system(“cls”);
printf(“**** PROGRAM PARKIR sugihpamela.pe.hu ****\n”);
printf(“——————————\n”);
printf(“1. Masukkan mobil\n2. Keluarkan mobil\n3. Tampilkan antrian\n”);
printf(“4. Keluar\n”);
printf(“——————————\n”);
printf(“Masukan Pilihan : “); scanf(“%d”,&jawab);
printf(“——————————\n”);
if(jawab==1){
printf(“Masukkan Plat Mobil Masuk (angka) : “); scanf(“%d”,&plt);
masuk(plt,&q);
tampil(&q);
}
else if(jawab==2){
printf(“Masukkan Plat Mobil Keluar (angka):”); scanf(“%d”,&plt);
keluar(plt,&q,&s);
tampil(&q);
}
else if(jawab==3){
tampil(&q);
}
else if(jawab==4)
printf(“………….”);
else{
printf(“\n\nPilihan tidak valid. Silahkan ulangi!\n”);
getch();
}
}while(jawab!=4);
}

Hasil

d

2. Soal no 2.c

/* File : Soal no.2 */
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void main(void){
int angka, i, ulang;
struct data
{
char no[10];
char kode[30], Jenis[10] ;
char harga[10];
};
struct data kendaraan[10];
a:
printf(“**** PROGRAM PARKIR sugihpamela.pe.hu ****\n”);
printf(“——————————\n”);
do
{
printf(“Masukkan jumlah parkir Kendaraan :”);
scanf(“%d”,&angka);
if (angka>10)
{
printf(“Masukkan max 10\n”);
goto a;
}
else
{
for (i=0; i < angka; i++)
{
printf(“No antrian : %d \n”,i+1);
printf(“Masukkan no kendaraan : “);
scanf(“%s”,&kendaraan[i].no);
printf(“Masukkan jenis kendaraan : “);
scanf(” %s”,&kendaraan[i].Jenis);
printf(“Masukkan kode daerah : “);
scanf(“%s”,&kendaraan[i].kode);
printf(“Masukkan tarif : \n”);
scanf(“%s”,&kendaraan[i].harga);
}
printf(“——————————————————–\n”);
printf(“|   No Polisi   |   Jenis   |    Kode    |      Harga     |\n”);
printf(“________________________________________________________\n”);
for(i=0; i < angka; i++)
{
printf(“%10s”,kendaraan[i].no);
printf(“%15s”,kendaraan[i].Jenis);
printf(“%15s”,kendaraan[i].kode);
printf(“%15s”,kendaraan[i].harga);
printf(“\n”);
}
}
scanf(“%d”,&ulang);
}
while(ulang == 1);
getch();
system(“pause”);
return 0;
}

Hasil

dd

Jika programnya tidak jalan, kemungkinannya tanda kutipnya error, karena beda font, atau bisa langsung saja download programnya.

DISINI

//ylx-4.com/fullpage.php?section=General&pub=139976&ga=g

Semoga Bermanfaat🙂

keyword :
Program Queue Tempat Parkir dalam Bahasa C#
Queue Tempat Parkir dalam Bahasa C#
Program Tempat Parkir dalam Bahasa C#

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s