mnrizal.files.wordpress.com · Web viewKonsentrasi Rekayasa Perangkat Lunak SEKOLAH MENENGAH...
Transcript of mnrizal.files.wordpress.com · Web viewKonsentrasi Rekayasa Perangkat Lunak SEKOLAH MENENGAH...
APLIKASI PARKING MANAGEMENT
Tugas Akhir
Diajukan Untuk Memenuhi Syarat Mata Pelajaran
Algoritma dan Pemograman C++
Disusun Oleh:
Mohamad Noor Rizal
05061 11523
Program Studi Teknologi Informasi dan Komunikasi
Konsentrasi Rekayasa Perangkat Lunak
SEKOLAH MENENGAH KEJURUAN NEGERI 4Jl. Kliningan No. 6 Buahbatu 40264
Bandung
2007
KATA PENGANTAR
Assalamu’alaikum Wr. Wb.
Puji dan syukur penulis panjatkan kehadirat Allah SWT karena telah memberikan
rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan laporan tugas
akhir tahun pelajaran 2006/2007 di Sekolah Menengah Kejuruan (SMK) Negeri 4
Bandung.
Dalam kesempatan ini penulis ingin mengucapkan banyak terima kasih kepada
yang terhormat Drs. Purwanto selaku wali kelas sekaligus guru pada bidang studi
Algoritma dan Pemograman C++, kepada rekan-rekan yang telah membantu
pengerjaan laporan ini, dan tak lupa kepada kedua orang tua dan seluruh keluarga
tercinta yang telah memberikan do’a dan dorongan baik secara moril maupun
secara materiil.
Penulis menyadari bahwa dalam penyusunan laporan ini masih banyak
kekurangan, mengingat adanya kemampuan dan pengetahuan yang kami miliki
masih sangat terbatas, maka dari itu penulis mengharapkan saran dan kritik demi
menyempurnakan laporan tugas akhir. Semoga laporan tugas akhir ini dapat
memberikan banyak manfaat.
Wassalamu’alaikum Wr. Wb.
Bandung, Juni 2007
Penulis
1
DAFTAR ISI
Halaman
KATA PENGANTAR……………………………………………………. 1
DAFTAR ISI…………………………………………………………….... 2
BAB I PENDAHULUAN…………………………………..…………….. 3
1.1 Pendahuluan……………………………………………………. 3
1.2 Tujuan………………………………………………………….. 3
1.3 Manfaat………………………………………………………… 4
BAB II APLIKASI PARKING MANAGEMENT……………………... 5
2.1 Flowchart…………………………………………………...….. 5
2.1.1 Fungsi main()………………………………………… 5
2.1.2 Fungsi bayar()……………………………………….. 10
2.2 Listing Program……………………………………...………… 10
2.3 User Interface…………………………………………….…… 19
2.4 Cara Pengoperasian…………………………………………… 19
2.5 Contoh Ketika Program Diisi Data……..…………………….. 22
BAB III PENUTUP………………………………………………….….. 23
3.1 Kesimpulan………………………………………………..….. 23
3.2 Saran…………………………………………………..……… 23
3.3 Kemungkinan Pengembangan………………………………... 24
2
BAB I
PENDAHULUAN
1.1 Pendahuluan
Seiring perkembangan zaman, segala sesuatu kini berbasis informasi. Sebagai
contoh, kita sekarang dengan mudah mendapatkan informasi dari televisi, radio,
ataupun media informasi lainnya. Itu pula yang menjadikan informasi menjadi
kekuatan baru untuk bertahan hidup. Siapa yang tidak bisa mengolah informasi,
maka akan sangat tertinggal.
Media elektronik adalah media yang paling banyak digunakan dalam mengolah
informasi. Kini, semua perusahaan besar telah terkomputerisasi. Sampai-sampai,
untuk mendapatkan lahan untuk parkir saja harus mendaftar dulu.
Maka dari itu, penulis tertarik membuat program untuk mengatur daerah parkir.
Sebuah program sederhana bernama “Aplikasi Parking Management” untuk
mengatur area parkir.
1.2 Tujuan
Tujuan dari pengerjaan tugas akhir ini adalah sebagai berikut:
1. Sebagai salahsatu syarat untuk memenuhi mata pelajaran Algoritma
dan Pemograman C++
2. Siswa dapat membuat program secara mandiri
3. Siswa dapat menyusun laporan dengan benar
4. Siswa dapat menerapkan ilmu yang didapat di dalam kelas.
3
1.3 Manfaat
Manfaat dari pengerjaan tugas akhir ini adalah sebagai berikut:
1. Mendapat suatu gambaran akan peranan seorang pemogram dalam
kegiatan dunia industri
2. Dapat bekerja sama/berkelompok dengan sesama siswa dalam
menyelesaikan suatu tugas.
4
BAB II
APLIKASI PARKING MANAGEMENT
2.1 Flowchart
5
2.1.1 Fungsi main()
6
7
8
9
2.1.2 Fungsi bayar()
2.2 Listing Program
/* file program: parking.c */
#include<stdio.h>
#include<conio.h>
#include<process.h>
#include<string.h>
#define maks 5
int biaya(int);
static char *kode[] =
{
"peta",
10
"in",
"out",
"exit",
"help"
},
*ada[8][8] =
{
" "," "," "," "," "," "," "," ",
" "," "," "," "," "," "," "," ",
" "," "," "," "," "," "," "," ",
" "," "," "," "," "," "," "," ",
" "," "," "," "," "," "," "," ",
" "," "," "," "," "," "," "," ",
" "," "," "," "," "," "," "," ",
" "," "," "," "," "," "," "," ",
}, *plat[8][8] =
{
" "," "," "," "," "," "," "," ",
" "," "," "," "," "," "," "," ",
" "," "," "," "," "," "," "," ",
" "," "," "," "," "," "," "," ",
" "," "," "," "," "," "," "," ",
" "," "," "," "," "," "," "," ",
" "," "," "," "," "," "," "," ",
" "," "," "," "," "," "," "," ",
};
main()
{
char perintah[maks],baris, platnomor[10];
int posisi1, posisi2, sb = 0, i = 0, j = 0, lama;
puts("\n\n\n\n\n");
11
puts("\t\t\t ----------------------------------- ");
puts("\t\t\t| Aplikasi Parking Management |");
puts("\t\t\t| By: |");
puts("\t\t\t| Mohamad Noor Rizal |");
puts("\t\t\t| XI H |");
puts("\t\t\t ----------------------------------- ");
puts("\n\nPerintah \"peta\" untuk melihat daerah parkir");
puts("Perintah \"in\" bila ada mobil yang akan parkir");
puts("Perintah \"out\" bila ada mobil yang akan keluar dari parkir");
puts("Perintah \"exit\" untuk keluar");
puts("Perintah \"help\" untuk bantuan");
puts("\nBiaya parkir: 1 jam pertama adalah Rp 1000");
puts(" dan Rp 500 untuk jam-jam berikutnya");
puts("\nPress any key to continue");
getch();
system("cls");
do
{
printf("Perintah: ");
gets(perintah);
if(strcmp(perintah, *(kode + 0)) == 0)
{
printf("\t 1\t 2\t 3\t 4\t 5\t 6\t 7\t 8");
printf("\n");
printf("A\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\
n",
ada[0][0], ada[0][1], ada[0][2], ada[0][3], ada[0][4],
ada[0][5], ada[0][6], ada[0][7]);
printf("\n");
printf("B\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\n",
ada[1][0], ada[1][1], ada[1][2], ada[1][3], ada[1][4],
12
ada[1][5], ada[1][6], ada[1][7]);
printf("\n");
printf("C\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\n",
ada[2][0], ada[2][1], ada[2][2], ada[2][3], ada[2][4],
ada[2][5], ada[2][6], ada[2][7]);
printf("\n");
printf("D\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\n",
ada[3][0], ada[3][1], ada[3][2], ada[3][3], ada[3][4],
ada[3][5], ada[3][6], ada[3][7]);
printf("\n");
printf("E\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\n",
ada[4][0], ada[4][1], ada[4][2], ada[4][3], ada[4][4],
ada[4][5], ada[4][6], ada[4][7]);
printf("\n");
printf("F\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\n",
ada[5][0], ada[5][1], ada[5][2], ada[5][3], ada[5][4],
ada[5][5], ada[5][6], ada[5][7]);
printf("\n");
printf("G\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\n",
ada[6][0], ada[6][1], ada[6][2], ada[6][3], ada[6][4],
ada[6][5], ada[6][6], ada[6][7]);
printf("\n");
printf("H\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\n",
ada[7][0], ada[7][1], ada[7][2], ada[7][3], ada[7][4],
ada[7][5], ada[7][6], ada[7][7]);
printf("\n");
getch();
else if(strcmp(perintah, *(kode + 1)) == 0)
{
printf("Posisi baris: ");
scanf("%s", &baris);
13
switch(baris)
{
case 'a':
case 'A':
posisi1 = 0; break;
case 'b':
case 'B':
posisi1 = 1; break;
case 'c':
case 'C':
posisi1 = 2; break;
case 'D':
case 'd':
posisi1 = 3; break;
case 'E':
case 'e':
posisi1 = 4; break;
case 'f':
case 'F':
posisi1 = 5; break;
case 'g':
case 'G':
posisi1 = 6; break;
case 'h':
case 'H':
posisi1 = 7; break;
default:
printf("Tidak ada dalam pilihan\n");
}
printf("Posisi kolom: ");
scanf("%d", &posisi2);
14
posisi2 = posisi2 - 1;
printf("Plat nomor: ");
scanf("%s",&platnomor);
plat[posisi1][posisi2] = platnomor;
ada[posisi1][posisi2] = "ada";
getch();
system("cls");
}
else if(strcmp(perintah, *(kode + 2)) == 0)
{
printf("\t 1\t 2\t 3\t 4\t 5\t 6\t 7\t 8");
printf("\n");
printf("A\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\n",
plat[0][0], plat[0][1], plat[0][2], plat[0][3], plat[0][4],
plat[0][5], plat[0][6], plat[0][7]);
printf("\n");
printf("B\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\n",
plat[1][0], plat[1][1], plat[1][2], plat[1][3], plat[1][4],
plat[1][5], plat[1][6], plat[1][7]);
printf("\n");
printf("C\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\
n",
plat[2][0], plat[2][1], plat[2][2], plat[2][3], plat[2][4],
plat[2][5], plat[2][6], plat[2][7]);
printf("\n");
printf("D\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\n",
plat[3][0], plat[3][1], plat[3][2], plat[3][3], plat[3][4],
plat[3][5], plat[3][6], plat[3][7]);
printf("\n");
printf("E\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\n",
plat[4][0], plat[4][1], plat[4][2], plat[4][3], plat[4][4],
15
plat[4][5], plat[4][6], plat[4][7]);
printf("\n");
printf("F\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\n",
plat[5][0], plat[5][1], plat[5][2], plat[5][3], plat[5][4],
plat[5][5], plat[5][6], plat[5][7]);
printf("\n");
printf("G\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\n",
plat[6][0], plat[6][1], plat[6][2], plat[6][3], plat[6][4],
plat[6][5], plat[6][6], plat[6][7]);
printf("\n");
printf("H\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\t[%s]\n",
plat[7][0], plat[7][1], plat[7][2], plat[7][3], plat[7][4],
plat[7][5], plat[7][6], plat[7][7]);
printf("\n");
printf("Posisi baris: ");
scanf("%s", &baris);
switch(baris)
{
case 'a':
case 'A':
posisi1 = 0; break;
case 'b':
case 'B':
posisi1 = 1; break;
case 'c':
case 'C':
posisi1 = 2; break;
case 'D':
case 'd':
posisi1 = 3; break;
case 'E':
16
case 'e':
posisi1 = 4; break;
case 'f':
case 'F':
posisi1 = 5; break;
case 'g':
case 'G':
posisi1 = 6; break;
case 'h':
case 'H':
posisi1 = 7; break;
default:
printf("Tidak ada dalam pilihan\n");
}
printf("Posisi kolom: ");
scanf("%d", &posisi2);
posisi2 = posisi2 - 1;
plat[posisi1][posisi2] = " ";
ada[posisi1][posisi2] = " ";
printf("Lama parkir (jam): ");
scanf("%d", &lama);
printf("Total biaya: %d\n", biaya(lama));
getch();
system("cls");
}
else if(strcmp(perintah, *(kode + 3)) == 0)
{
sb = 1;
}
else if(strcmp(perintah, *(kode + 4)) == 0)
{
17
puts("Perintah \"peta\" untuk melihat daerah parkir");
puts("Perintah \"in\" bila ada mobil yang akan parkir");
puts("Perintah \"out\" bila ada mobil yang akan keluar dari
parkir");
puts("Perintah \"exit\" untuk keluar");
puts("\nBiaya parkir: 1 jam pertama adalah Rp 1000");
puts(" dan Rp 500 untuk jam-jam berikutnya");
getch();
}
system("cls");
}
while(!sb);
}
int biaya(int total)
{
if(total <=1)
{
total = 1000;
}
else
{
total = (total - 1) * 500 + 1000;
}
return(total);
}
18
2.3 User Interface
Pada saat program dieksekusi, tampilannya seperti berikut:
2.4 Cara Pengoperasian
1. Perintah “peta”
Peta digunakan untuk melihat denah parkir. Jadi, kita bisa tahu tempat
mana yang kosong. Saat diminta untuk menginput perintah, ketik “peta”
dengan huruf kecil.
Maka akan tampil denah peta seperti ini:
19
2. Perintah “in”
Perintah “in” digunakan apabila ada mobil yang akan diparkir. Setelah
mengetik “in” kemudian enter, Anda diminta untuk memasukkan posisi
dimana mobil itu akan diparkir. Pertama, tentukan barisnya dari baris A
sampai H. Kedua, tentukan kolomnya dari kolom 1 sampai 8. Dan yang
terakhir, Anda akan diminta untuk menginput nomor polisi dari kendaraan
tersebut. Dalam mengisi nopol jangan menggunakan spasi.
Setelah semua data masuk, jika Anda kembali memasukkan perintah
“peta”, maka tempat yang Anda input akan terisi dengan tampilnya kata
“ada” di tempat tersebut. Itu menandakan bahwa tempat itu sudah terisi.
20
3. Perintah “out”
Perintah “out” digunakan apabila akan ada mobil yang akan keluar dari
daerah parkir. Setelah mengetik “out” kemudian enter, Anda diminta
untuk memasukkan posisi asal dimana mobil yang akan keluar. Pertama,
tentukan barisnya dari baris A sampai H. Kedua, tentukan kolomnya dari
kolom 1 sampai 8. Ketiga, Anda akan diminta untuk menginput nomor
polisi dari kendaraan tersebut. Terakhir, tentukan berapa lama kendaraan
tersebut parkir. Penghitungan biaya parkir adalah 1 jam pertama
Rp 1000, dan jam-jam berikutnya Rp 500
4. Perintah “help”
Perintah ini digunakan intuk meminta bantuan tentang perintah-perintah
yang digunakan dalam aplikasi ini.
21
5. Perintah “exit”
Perintah ini digunakan untuk keluar dari program.
2.5 Contoh Ketika Program Diisi Data
Misalnya ada tiga mobil yang parkir. Tampilan ketika input:
22
Maka ketika input perintah “peta” tampilannya sebagai berikut:
23
BAB III
PENUTUP
3.1 Kesimpulan
Setelah menyelesaikan penyusunan laporan tugas akhir ini, penulis dapat
menyimpulkan bahwa membuat program hasil kreasi sendiri itu tidak mudah. Kita
harus mengantisipasi segala kemungkinan. Bisa saja user tidak tahu cara
mengoperasikan aplikasi ini, sehingga aplikasi terhenti karena ada error, misalnya
tipe datanya salah. Karena itu, pemahaman konsep algoritma mesti diterapkan,
karena sangat penting dalam dunia pemograman, terutama pemograman bahasa C.
3.2 Saran
Aplikasi yang dipakai untuk membuat program (Microsoft Visual Studio 6.0)
tidak sepenuhnya dapat meng-compile kode. Misalnya fungsi gotoxy() dan
randomize yang dapat digunakan di Borland Turbo C. Sehingga banyak siswa
yang tidak dapat menjalankan source code yang didapat dari internet, sehingga
memaksa untuk membuat dengan kreasi sendiri program. Program “Aplikasi
Parking Management” sendiri masik banyak kekurangan, misalnya tampilannya
kurang menarik, karena hanya menampilkan teks-teks saja. Kemudian dalam
melakukan input lebih dari 1 data. Jika diteliti, ketika melakukan perintah “out”,
nomor polisi yang tampil di denah akan sama semua, sehingga menyulitkan user
untuk menentukan baris dan kolom. Kemudian, walaupun mengeluarkan
kendaraan yang sebenarnya tidak diparkir, proses akan terus berjalan.
24
3.3 Kemungkinan Pengembangan
Program ini dapat dikembangkan menjadi lebih baik. Dengan menambah grafik
sehingga penampilannya lebih menarik. Kemudian dapat menampung data lebih
banyak, dan data tidak bersifat temporary alias sementara. Bagaimana jika tiba-
tiba listrik mati dan semua dating hilang. Maka dari itu, harus terintegrasi dengan
database.
25