BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Permasalahan yang Dihadapi
3.1.1 Analisis Masalah
M asalah yang muncul dalam perparkiran kendaraan di suatu tempat, seperti pusat perbelanjaan, universitas, atau tempat umum lainnya, diantaranya adalah tidak tersedianya informasi parkir yang lengkap, informatif dan interaktif sehingga menyebabkan pengguna parkir cenderung kesulitan menemukan lokasi parkir yang kosong dan yang jaraknya diharapkan terdekat dari pintu masuk pengunjung. Sebagai akibatnya, waktu dan bensin akan banyak terbuang. Bahkan tidak jarang bagi pengendara mobil yang ingin memarkirkan kendaraannya menghabiskan waktu untuk mengelilingi seluruh area parkir dan mendapati kondisi tempat parkir ternyata sudah penuh.
Hal ini dapat disebabkan karena aplikasi sistem perparkiran yang dipakai saat ini masih belum memberikan informasi lokasi tempat parkir yang kosong yang bisa segera dijangkau oleh penggunanya.
3.1.2 Teknologi yang telah ada
Di Indonesia terdapat banyak sistem parkir seperti Secure Parking,
banyak digunakan di tempat-tempat parkir yang cukup sibuk seperti pertokoan, supermarket atau mal tersebut saat ini masih belum mengunakan konsep pencarian lokasi parkir yang kosong dengan menggunakan peta lokas i parkir. Kebanyakan dari sistem tersebut hanya mencatat waktu masuk dan waktu keluar dari mobil serta menghitung lamanya suatu mobil berada di tempat parkir yang digunakan untuk menghitung biaya sewa parkir. Sistem ini hanya penguntungkan pihak pemilik perparkiran dalam memudahkan menghitung sewa parkir dan keamanan kendaraan yang diparkir. Tetapi sistem ini belum menguntungkan pengguna parkir karena sistem tidak mengetahui penuh tidaknya tempat parkir sehingga kalau ada mobil masuk dan ternyata tempat parkir sudah penuh, maka mobil tersebut akan mencari sendiri lokasi parkir sampai tidak ditemukan lokasi parkir dan akhirnya keluar dan tidak jadi parkir. Pada kasus seperti ini penguna akan dirugikan karena waktu akan terbuang percuma dalam mencari lokasi parkir disamping itu juga akan terjadi pemborosan bahan bakar selama pencarian lokasi parkir
Beberapa teknologi lainnya sedang dikembangkan untuk semakin memenuhi kebutuhan pengguna dalam sistem perparkiran yang dapat memberikan informasi yang lengkap dan menjadikan waktu proses perparkiran tersebut lebih efektif dan penggunaan bahan bakar.semakin efisien. Diantaranya adalah upaya memasukkan salah satu bidang ilmu komputer Kecerdasan Buatan ke dalam aplikasi yang dibuat sehingga mampu memberikan informasi mengenai lokasi parkir yang kosong dengan jarak yang terdekat dari pintu masuk. Namun di negara kita, teknologi tersebut masih jarang sekali diimplementasikan.
3.1.3 Alternatif Pemecahan Masalah
Aplikasi sistem perparkiran yang banyak digunakan di tempat-tempat parkir yang cukup sibuk yang ada saat ini masih belum memberikan informas i lokasi tempat parkir yang kosong yang bisa segera dijangkau oleh penggunanya. Oleh karena itu, diperlukan suatu metode untuk memberikan informasi kepada pengguna parkir, tempat terdekat yang tersedia
Pemecahan dari masalah tersebut adalah sebuah sistem perparkiran yang menyimpan data peta lokasi parkir mobil disamping menyimpan data keluar-masuknya mobil yang parkir. Basis data spasial adalah model basis data yang menyimpan 2 jenis data yaitu data lokasi dan data aribut yang berguna untuk mendeskripsikan informasi tiap-tiap objek dalam suatu ruang tertentu (dalam hal ini dibatasi pada ruang lokasi parkir). Salah satu kelebihan menggunakan model basis data spasial adalah terhubungnya data wilayah (peta) dengan basis data. Dengan demikian, data spasial tersebut dapat digunakan untuk memberikan visualisasi lokasi parkir serta penyajian dan pencarian data kendaraan yang parkir di lokasi tersebut secara interaktif.
Dengan menyimpan data lokasi dan data atribut setiap plot-plot parkir yang merupakan representasi dari peta, aplikasi dapat mengolah data tersebut dengan mengimplementasikan algoritma shortest path untuk mencari dan menunjukkan arah menuju tempat parkir kosong yang terdekat dari pintu masuk parkir. Pada karcis parkir yang diberikan kepada pengendara mobil tidak hanya tertera plat nomor dan jam masuk saja, juga tertera arah atau
petunjuk melewati jalan mana saja supaya pengendara mobil dapat mencapai tempat parkirnya.
Sistem akan dikembangkan dengan tidak mengurangi kemampuan fungsional sistem parkir yang telah ada, yaitu dengan tetap mengimplementasikan sistem client-server dan dengan inputan berupa nomor mobil, sistem mencatat waktu masuk dan waktu keluar serta pelaporan transaksi parkir. Sistem dikembangkan dengan menambahkan fungsi input peta lokasi parkir dan kemampuan untuk mencari posisi tempat parkir kosong terdekat dengan pintu masuk. Selain itu kelebihan sistem yang akan dikembangkan ini adalah kemampuan memberikan petunjuk lokasi tempat parkir dan bagaimana mencapai lokasi parkir tersebut dengan petunjuk arah yang dicetak pada karcis parkir.
3.2 Analisis Kebutuhan
Kebutuhan data dan informasi dalam sistem parkir ini adalah :
• Dibutuhkan informasi apakah masih ada tempat parkir yang tersedia.
• Dibutuhkan data tentang kendaraan yang masuk dan keluar dari tempat parkir. • Dibutuhkan informasi tentang tempat parkir tersedia yang paling dekat
dengan pintu masuk parkir dan bagaimana mencapai lokasi parkir tersebut • Dibutuhkan data tentang lamanya kendaraan menggunakan lahan parkir.
• Dibutuhkan informasi data kendaraan yang menggunakan tempat parkir tertentu.
3.3 Perancangan Sistem
3.3.1 Kebutuhan fungsional
• Sistem menyimpan data lokasi dan data atribut/keterangan setiap plot parkir ke dalam basis data.
• Sistem memberikan informasi mengenai tempat parkir kosong terdekat kepada pengguna parkir.
• Sistem memberikan informasi petunjuk arah dalam tiket yang dicetak untuk mencapai lokasi tempat parkir yang ditentukan untuk pengguna parkir.
• Sistem memberikan informasi mengenai jumlah parkir yang tersedia secara interaktif kepada pengguna parkir.
• Sistem memberikan visualisasi lokasi parkir serta penyajian dan pencarian data kendaraan yang parkir di lokasi tersebut secara interaktif.
• Sistem memberikan informasi laporan transaksi parkir pada periode tertentu kepada pihak pengelola parkir.
3.3.2 Perancangan sistem
Perancangan sistem merupakan kegiatan pengembangan sistem dan prosedur baru dalam kaitannya dengan sasaran yang ingin dicapai dari penerapan sistem tersebut. Dengan demikian akan diketahui konsep dari sistem itu bekerja sehingga kebutuhan dan informasi yang dibutuhkan akan terdefinisi secara jelas.
Bagian dari sistem parkir yang akan dikembangkan antara lain : • Administrator
Administrator adalah orang yang bertugas mengoperasikan aplikasi server. Administrator berperan untuk meng-insert data-data plot parkir ke dalam bas is data pertama kali. Administrator juga berperan untuk mengaktifkan server karena aplikasi tidak dapat berjalan jika
server belum aktif. Di samping itu, administrator juga me-manage
data petugas loket, mencari data mobil yang sedang parkir, serta melihat laporan data-data transaksi parkir untuk kebutuhan manajemen, dan me-monitoring keadaan lokasi parkir.
• Petugas loket
Petugas loket terbagi menjadi dua, yaitu petugas loket parkir masuk dan petugas loket parkir keluar.
Petugas loket parkir masuk menjaga aplikasi di pintu loket masuk. Dan jika ada mobil datang untuk parkir, petugas loket bertugas memasukkan nomor mobil yang akan parkir. Dengan inputan nomor mobil, aplikasi akan memberikan informasi plot parkir terdekat beserta arah petunjuk jalan menuju tempat parkir tesebut, serta server akan memproses transaksi mobil masuk.
Petugas loket parkir keluar menjaga aplikasi di pintu loket keluar. Jika ada mobil akan keluar, petugas loket parkir keluar akan memasukkan nomor mobil yang keluar, sehingga transaksi mobil keluar akan
diproses oleh server dan petugas menerima pembayaran dari pengguna parkir.
• Server
Server bertugas untuk melayani permintaan perintah dari client untuk
meng-generate tempat parkir yang paling dekat dengan pintu masuk (dengan metode shortest path). Hasil plot parkir yang di-generate akan dikirim balik ke aplikasi client. Server juga memproses transaksi mobil masuk dan keluar. Untuk menjaga validitas dan konsistensi data, proses manipulasi data akan dilakukan oleh server.
• Basis Data
Berisi data-data yang diperlukan sistem. Antara lain adalah locational
data plot-plot parkir, dan data-data mengenai transaksi parkir. Dalam
sistem ini, model basis data yang dipakai adalah model basis data spasial (dalam bentuk struktur data vektor) yang digabungkan dengan pendekatan basis data relasional. M odel basis data spasial itu sendiri menyimpan 2 jenis data : data lokasi dan data atribut. Pendekatan basis data relational digunakan untuk menggambarkan hubungan antara tabel-tabel. Untuk menghubungkan 2 tabel, di satu tabel akan terdapat kolom identifier(key) yang isinya merupakan reference ke suatu kolom di tabel lain.
3.3.3 Prosedur kerja sistem
Berikut ini adalah gambaran model sistem yang dikembangkan :
` ` Administrato r / Server Clien t 1 (Petugas Parkir Masuk)
Cl ient 2 (Petu gas Pa rki r Keluar)
Printer untuk men cetak ka rci s
masuk
Printer u ntuk me ncetak karcis
kel uar
Gambar 3.1 Model S mart Park S ystem
Prosedur / alur kerja sistem adalah sebagai berikut :
1. Ketika ada mobil datang untuk parkir, jika plot parkir sudah terisi semua, maka sistem akan memberikan pesan, sehingga mencegah mobil masuk untuk parkir.
2. Jika masih ada tempat parkir yang kosong, maka petugas loket akan mengentri data mobil yang masuk, dan mengirim request ke server untuk meng-generate tempat parkir yang kosong serta memberikan informasi petunjuk arah menuju plot parkir tersebut.
3. Server akan meng-generate tempat parkir yang kosong (dengan
meng-generate informasi petunjuk arah menuju plot parkir tersebut. Setelah itu server akan memasukkan data transaksi parkir masuk dan juga meng-update status plot parkir menjadi not available. Setelah data transaksi dimasukkan, hasil plotID dan petunjuk arah akan dikirim kembali ke aplikasi yang dijalankan petugas loket untuk dicetak di karcis masuk.
4. Karcis masuk akan dicetak, dan diberikan kepada pengguna parkir sebagai bukti parkir. Karcis masuk tersebut berisi informasi: Waktu Datang, Nomor M obil, nomor plot parkir yang ditempati dan petunjuk jalan menuju plot parkir tersebut dalam bentuk keterangan tertulis. 5. Jika mobil keluar, maka petugas loket parkir keluar akan mengentri
data mobil yang keluar, dan aplikasi akan memproses data transaksi mobil keluar, mengubah status plot parkir yang baru ditinggalkan menjadi available, dan menghitung biaya parkir. Petugas akan menerima pembayaran dari pengguna parkir, dan memberikan kembalian (jika ada) kepada pengguna parkir.
3.4 Perancangan UML
3.4.1 Class Diagram
Class Diagram dibawah ini menunjukan entitas yang ada pada sistem dan bagaimana entitas tersebut saling berhubungan.
3.4.2 Use Case Diagram
Use Case diagram di bawah memberikan gambaran mengenai sistem
“Smart Park” dari sudut pandang petugas loket, dimana petugas loket dapat
memilih menu pada aplikasi, baik untuk transaksi mobil masuk dan untuk transaksi mobil keluar.
3.4.2.1 Identifikasi Actor
Aktor yang berinteraksi dengan sistem meliputi sistem administrator, petugas loket dan server. Sistem administrator bertugas untuk mengelola aplikasi server. Sementara itu, petugas loket dapat melakukan berbagai aktivitas transaksi parkir masuk dan transaksi parkir keluar. Sedangkan server bertugas untuk menjalankan modul
shortest path.
3.4.2.2 Use Case S cenario
3.4.2.2.1 Use Case Log In
Deskripsi : Use case ini menggambarkan petugas loket ketika melakukan Log In pada aplikasi client.
Aktor : Petugas Loket Included Use Case : -
Langkah-langkah : AWAL USE CASE
1. Use case dimulai ketika petugas loket menjalankan aplikasi client.
2. Petugas loket memasukkan username dan password pada layar log in aplikasi client.
3. Aplikasi client melakukan pengecekan apakah server sudah aktif
4. Aplikasi client mengirimkan data username dan password ke server.
5. Aplikasi server melakukan koneksi database.
6. Aplikasi server melakukan pengecekan data username dan password dari database.
7. Aplikasi server mengirinkan hasil ke aplikasi client 8. Aplikasi server memutuskan koneksi database.
9. Aplikasi server mengirimkan hasilnya kepada aplikasi
client.
10. Aplikasi client nenampilkan hasil pengecekan ke layar. AKHIR USE CASE
3.4.2.2.2 Use Case Entry Car In
Deskripsi : Use case ini menggambarkan petugas loket ketika melakukan transaksi parkir masuk pada aplikasi client.
Aktor : Petugas Loket
Included Use Case : Find Nearest Available Space
Langkah-langkah : AWAL USE CASE
1. Use case dimulai ketika mobil datang.
2. Petugas loket memasukkan nomor polisi mobil.
3. Aplikasi client mengirimkan data transaksi parkir masuk ke aplikasi server.
4. Aplikasi server akan menjalankan modul mencari jarak terpendek mencapai plot parkir yang dapat ditempati.
5. Aplikasi server akan menjalankan transaksi insert transaksi mobil masuk ke database.
6. Aplikasi server akan mengirimkan data plot ID ke aplikasi client.
7. Aplikasi client akan menampilkan data transaksi parkir masuk dan mencetak karcis parkir masuk.
AKHIR USE CASE
3.4.2.2.3 Use Case Find Nearest Available Space
Deskripsi : Use case ini menggambarkan
server menjalankan modul mencari plot parkir terdekat dan
kosong.
Aktor : Server
Included Use Case : - Langkah-langkah : AWAL USE CASE
1. Use case dimulai ketika modul shortest path dipanggil. 2. Sistem akan menjalankan algoritma A* untuk mencari
plot parkir terdekat dan kosong dari data spasial lokasi parkir yang terdapat dalam basis data.
3. M odul shortest path akan mengembalikan nomor plot terdekat yang dapat ditempati ke sistem.
3.4.2.2.4 Use Case Show Directions to Nearest Available
Space
Deskripsi : Use case ini menggambarkan
server menjalankan modul menggenerate arah menuju plot
parkir yang kosong dan dapat ditempati. Aktor : Server
Included Use Case : - Langkah-langkah : AWAL USE CASE
1. Use case dimulai ketika sistem melakukan pengecekan di database kapasitas parkir yang dapat ditempati setiap rentang waktu tertentu
2. Sistem akan menjalankan algoritma A* untuk mencari plot parkir terdekat dan kosong dari data spasial lokasi parkir yang terdapat dalam basis data.
3. M odul algoritma mencari arah menuju nomor plot parkir akan mengembalikan hasil kepada sistem di
server
4. Server akan mengirimkan list arah ke client AKHIR USE CASE
3.4.2.2.5 Use Case Report Available Space and Used Space
Deskripsi : Use case ini menggambarkan server menjalankan modul menggenerate arah menuju plot parkir yang kosong dan dapat ditempati.
Aktor : Server
Included Use Case : - Langkah-langkah : AWAL USE CASE
1. Use case dimulai ketika sistem melakukan pengecekan di database kapasitas parkir yang dapat ditempati setiap rentang waktu tertentu
2. Aplikasi client akan mengirimkan request ke aplikasi
server.
3. Aplikasi server akan melakukan pengecekan ke
database berapa jumlah tempat parkir yang terisi dan
jumlah tempat parkir yang kosong (tersedia).
4. Aplikasi server akan mengirimkan angka tersebut ke aplikasi client.
AKHIR USE CASE
3.4.2.2.6 Use Case View Park
Deskripsi : Use case ini menggambarkan modul melihat peta parkir yang ada dilihat dari sisi sistem administrator dan petugas loket.
Aktor : Petugas Loket dan Sistem Administrator
Included Use Case : - Langkah-langkah : AWAL USE CASE
1. Use case dimulai ketika menu view park dipilih pada aplikasi server maupun aplikasi client.
2. Aplikasi akan melakukan query ke database untuk meretrieve data
3. Aplikasi client akan mengirimkan data ke aplikasi
server
4. Aplikasi server akan melakukan pengecekan apakah nomor polisi yang dimasukkan tersebut sedang parkir. 5. Aplikasi server akan melakukan insert transaksi parkir
keluar ke database.
6. Aplikasi server akan mengirimkan hasil ke aplikasi
client.
AKHIR USE CASE
3.4.2.2.7 Use Case Entry Car Out
Deskripsi : Use case ini menggambarkan
server menjalankan modul menggenerate arah menuju plot
parkir yang kosong dan dapat ditempati. Aktor : Petugas Loket
Included Use Case : - Langkah-langkah : AWAL USE CASE
1. Use case dimulai ketika mobil datang ke loket pintu keluar.
2. Petugas loket akan memasukkan nomor polisi mobil yang masuk
3. Aplikasi client akan mengirimkan data ke aplikasi
server
4. Aplikasi server akan melakukan pengecekan apakah nomor polisi yang dimasukkan tersebut sedang parkir. 5. Aplikasi server akan melakukan insert transaksi parkir
keluar ke database.
6. Aplikasi server akan mengirimkan hasil ke aplikasi
client.
AKHIR USE CASE
3.4.2.2.8 Use Case Log Out
Deskripsi : Use case ini menggambarkan petugas loket ketika melakukan transaksi parkir keluar
Aktor : Petugas Loket Included Use Case : -
Langkah-langkah : AWAL USE CASE
1. Use case dimulai ketika petugas loket memilih menu
Log Out.
2. Aplikasi client akan memutuskan koneksi ke aplikasi
server.
3. Aplikasi client akan menampilkan kembali layar Log In AKHIR USE CASE
3.4.3 Sequence Diagram
3.4.3.1 Sequence Diagram untuk Login Sukses
3.4.3.2 Sequence Diagram untuk Login Gagal
3.4.3.3 Sequence Diagram untuk Mengentri Mobil Masuk
3.4.3.4 Sequence Diagram untuk Mencari data kendaraan yang sedang parkir
3.4.3.5 Sequence Diagram Jika Ada Perubahan Kapasitas Parkir
3.4.3.6 Sequence Diagram Jika Tidak Ada Perubahan Kapasitas Parkir
Gambar 3.9 S equence Diagram Jika Tidak Ada Perubahan Kapasitas Parkir
3.4.3.7 Sequence Diagram untuk Mengentri Plot Parkir ke Database
Gambar 3.10 S equence Diagram untuk Mengentri Plot Parkir ke Database
3.4.3.8 Sequence Diagram untuk Parkir Keluar Jika Plat Nomor Ada di Basis Data
Gambar 3.11 S equence Diagram untuk Parkir Keluar Jika Plat Nomor Ada di Basis Data
3.4.3.9 Sequence Diagram untuk Parkir Keluar Jika Plat Nomor Tidak Ada di Basis Data
Gambar 3.12 S equence Diagram untuk Parkir Keluar Jika Plat Nomor Tidak Ada di Basis Data
3.4.3.10 Sequence Diagram untuk View Tempat Parkir
3.4.3.11 Sequence Diagram untuk Menambah Data User Baru
Gambar 3.14 S equence Diagram untuk Menambah Data User Baru
3.4.3.12 Sequence Diagram untuk Mengubah Data User Baru
3.4.3.13 Sequence Diagram untuk Menghapus Data User Baru
Gambar 3.16 S equence Diagram untuk Menghapus Data User Baru
3.4.3.14 Sequence Diagram untuk View Report
3.4.3.15 Sequence Diagram untuk Logout
3.4.4 Deployment Diagram
3.4.5 S tate Diagram
3.4.5.1 S tate Diagram untuk Parkir Masuk
3.4.5.2 S tate Diagram untuk Parkir Keluar
Gambar 3.21 S tate Diagram untuk Parkir Keluar
3.5 Perancangan Layar In put
3.5.1 Perancangan Layar In put untuk Aplikasi Server
Aplikasi Server adalah aplikasi yang dijalankan oleh Administrator. Fungsi-fungsi yang dapat dilakukan oleh server antara lain menginputkan data dari peta, mengatur user, melihat laporan transaksi parkir, dan lainnya.
3.5.1.1 Perancangan Layar Login untuk Administrator
M enu Login adalah menu yang digunakan untuk autentikasi
user (admin).
Gambar 3.22 Perancangan Layar Login untuk Administrator
3.5.1.2 Perancangan Layar Form Utama untuk Administrator
M enu Layar Utama adalah menu yang digunakan untuk memilih menu-menu yang dapat dijalankan oleh administrator.
3.5.1.3 Perancangan Layar View Report untuk Administrator M enu View Report adalah menu yang digunakan untuk melihat laporan transaksi parkir per periode tertentu
Gambar 3.24 Perancangan Layar View Report untuk Administrator
3.5.1.4 Perancangan Layar Searching untuk Administrator
M enu Searching adalah menu yang digunakan untuk mencari data transaksi parkir yang sesuai dengan nomor kendaraan yang diinputkan.
3.5.1.5 Perancangan Layar Manage User untuk Administrator
M enu Manage User adalah menu untuk mengatur petugas loket yang bertugas. Dapat memasukkan data petugas loket baru, mengubah dan menghapus data.
3.5.1.6 Perancangan Layar Menambah Data User Baru untuk Administrator
M enu Insert Data User Baru adalah menu yang digunakan untuk memasukkan data-data user baru.
Gambar 3.27 Perancangan Layar Menambah Data User Baru untuk Administrator
3.5.1.7 Perancangan Layar Mengubah Data User untuk Administrator
M enu Update Data User digunakan untuk mengganti data user yang lama dengan data yang baru.
Gambar 3.28 Perancangan Layar Mengubah Data User untuk Administrator
3.5.1.8 Perancangan Layar Menghapus Data User untuk Administrator
M enu Delete data user digunakan untuk menghapus data
user, sehingga user tersebut tidak mempunyai account lagi.
Gambar 3.29 Perancangan Layar Menghapus Data User untuk Administrator
3.5.1.9 Perancangan Layar Menampilkan Data Lokasi Parkir untuk Administrator
M enu View Parkir adalah menu yang digunakan untuk menampilkan visualisasi data lokasi parkir.
Gambar 3.30 Perancangan Layar Menampilkan Data Lokasi Parkir untuk Administrator
3.5.1.10 Perancangan Layar Memasukkan Data Plot-Plot Parkir
M enu M emasukkan data plot-plot parkir adalah menu yang digunakan untuk memasukkan data lokasi plot-plot parkir yang berasal dari peta dan dimasukkan ke dalam basis data.
Gambar 3.31 Perancangan Layar Memasukkan Data Plot –Plot Parkir
3.5.2 Perancangan Layar In put untuk Aplikasi Client
Aplikasi Client adalah aplikasi yang dijalankan oleh petugas loket parkir masuk dan keluar. Fungsi aplikasi client diantaranya adalah untuk mengentry parkir masuk dan parkir keluar dan melihat informasi parkir yang kosong dan tersedia.
3.5.2.1 Perancangan Layar Login untuk Client
M enu Login adalah menu yang digunakan untuk autentikasi
user (petugas loket).
3.5.2.2 Perancangan Layar Utama untuk Client
M enu Layar Utama adalah menu yang digunakan untuk memilih menu-menu yang dapat dijalankan oleh petugas loket.
3.5.2.3 Perancangan Layar Form Parkir Masuk untuk Client
M enu Parkir M asuk adalah menu yang digunakan untuk memasukkan data transaksi ketika ada mobil masuk.
Gambar 3.34 Perancangan Layar Form Parkir Masuk untuk
Client
3.5.2.4 Perancangan Layar Form Parkir Keluar untuk Client
M enu Parkir Keluar adalah menu yang digunakan untuk memasukkan data transaksi ketika ada mobil keluar.
Gambar 3.35 Perancangan Layar Form Parkir Keluar untuk
3.5.2.5 Perancangan Layar Menampilkan Data Lokasi Parkir untuk Client
M enu Tampil Data Lokasi adalah menu yang digunakan untuk menampilkan visualisasi lokasi parkir beserta keadaan penuh atau tidaknya.
Gambar 3.36 Perancangan Layar Menampilkan Data Lokasi Parkir untuk Client
3.6 Perancangan Basis Data 3.6.1 ERD Hasil Perancangan
Berikut ini adalah gambar Entity Relationship Diagram (ERD) hasil dari perancangan basis data pada ‘Smart Park System’ :
3.6.2 Perancangan Basis Data
1. Nama Tabel : MsNode Primary Key : NodeID Foreign Key : -
Keterangan : Tabel M sNode digunakan sebagai tabel yang menyimpan koordinat x dan y setiap node(titik) dari suatu peta.
Tabel 3.1 Rancangan Tabel MsNode
Nama Kolom Tipe Data Ukuran Keterangan
nodeID Integer - Nomor node
coordinateX Integer - Koordinat x node di peta
coordinateY Integer - Koordinat y node di peta
2. Nama Tabel : MsPath Primary Key : pathID
Foreign Key : fromNode, toNode
Keterangan : sebagai tabel yang menyimpan semua
path atau garis yang menghubungkan antara 2 node beserta
panjangnya.
Tabel 3.2 Rancangan Tabel MsPath
Nama Kolom Tipe Data Ukuran Keterangan
pathID Integer - Nomor path
fromNode Integer - Node awal dari
suatu path
endNode Integer - Node akhir dari
suatu path
3. Nama Tabel : MsPlot Primary Key : plotID Foreign Key : nodeID
Keterangan : sebagai tabel yang menyimpan nama plot-plot parkir yang ada di wilayah perparkiran beserta status terisinya.
Tabel 3.3 Rancangan Tabel MsPlot
Nama Kolom Tipe Data Ukuran Keterangan
plotID Varchar 6 Nama plot
nodeID Integer - Nomor node plot
tersebut
availableStatus SmallInteger - Status terisi dari
4. Nama Tabel : M sEmployee Primary Key : empID ForeignKey : -
Keterangan : sebagai tabel yang menyimpan data karyawan yang masih aktif.
Tabel 3.4 Rancangan Tabel MsEmployee
Nama Kolom Tipe Data Ukuran Keterangan
empID Varchar 5 Kode karyawan
empName Varchar 20 Nama karyawan
empAddress DateTime 50 Alamat
karyawan
telp Varchar 10 Telp karyawan
5. Nama Tabel : M sUser Primary Key : empID ForeignKey : empID
Keterangan : sebagai tabel yang menyimpan data data username yang digunakan untuk validasi log in di aplikasi loket parkir.
Tabel 3.5 Rancangan Tabel MsUser
Nama Kolom Tipe Data Ukuran Keterangan
empID Varchar 5 Kode karyawan
password Varchar 6 Password
karyawan untuk login di loket
6. Nama Tabel : TrPark Primary Key : transID
ForeignKey : plotID, empID_IN, empID_OUT Keterangan : sebagai tabel yang menyimpan transaksi-transaksi mobil masuk dan keluar dari tempat tersebut.
Tabel 3.6 Rancangan Tabel TrPark
Nama Kolom Tipe Data Ukuran Keterangan
TransID Integer - Nomor transaksi
PlotID Varchar 6 Nama plot yang
ditempati
carNumber Varchar 10 Nomor polisi
mobil yang parkir
date_IN DateTime - Waktu mobil
empID_IN Varchar 5 Karyawan yang mengentry mobil
masuk
date_OUT DateTime - Waktu mobil
keluar
empID_OUT Varchar 5 Karyawan yang
mengentry mobil keluar
3.7
Spesifikasi Modul
3.7.1 Pseudocode untuk Modul Generate Plot Tempat Parkir Terdekat dengan Metode Shortest Path dan Petunjuk Arah Menuju Plot Tersebut.
open database connection create priority queue object
create start_node as object from class Node set attribute nodeid of start_node = nodeid of
start node
set attribute cost of start_node = 0
set attribute vector_all_node_before of start node = NULL
create current_node as object from class Node current_node = start_node
create direction as object from Java class Vector While current_node is not empty park plot
begin
add nodeid of current_node to
set resultset to all rows contain end_node and its length from current_node
while resultset moved to next row is not after last row
begin
create new_node as object from class Node
set attribute nodeid = nodeid of current row
set attribute cost = cost from start_node to
current_node(1 node before new_node) + length of current row
set attribute
vector_all_node_before = vector_all_node_before of current_node(1 node before new_node)
push new_node into priority queue
end
current_node = result of pop priority queue
end
if current_node = plot park and available status of current_node = 0
begin
for i = 1 to size of vector_all_node_before begin
x1 = x of node at index i-1
y1 = y of node at index i-1
x2 = x of node at index i
y2 = y of node at index i
x3 = x of node at index i+1
y3 = y of node at index i+1
A = length from x1,y1,x2,y2
B = length from x2,y2,x3,y3
C = length from x1,y1,x3,y3 // line support to calculate angle
inner_angle = acos( (A*A+B*B-C*C)/(2*A*B) )
convert inner_angle from radian to decimal outer_angle = 180-inner_angle if angle < 20 degree do nothing if angle > 20 degree begin if (x2-x1)*(y3-y1)-(x3-x1)*(y2-y1) < 0 then
add "turn left " to direction if
(x2-x1)*(y3-y1)-(x3-x1)*(y2-y1) > 0 then add "turn right " to
direction end
end
return name of park plot to client
return all the element of direction to client end
3.7.2 Pseudocode untuk Entri Mobil Masuk
open database connection
create object as object from class inParking
set atrribute carNumber = carNumber_param from client
set atrribute plotID = plotID_param from client set atrribute employeeID_IN = employeeID_IN_param
from client
set atrribute dateIN = dateIN_param from client execute query to database insert into table
trPark values carNumber,plotID, employeeID_IN, dateIN
execute query to database update table msplot set availableStatus to one where plotID = plotID (attribute)
send result to client
3.7.3 Pseudocode untuk Entri Mobil Keluar.
open database connection
create object as object from class outParking set attribute carNumber = carNumber_data from
client
set attribute plotID = plotID_data from client
set attribute employeeID_OUT = employeeID_OUT_data from client
set attribute dateOUT = dateOUT_data from client set resultset to get row from table trPark where carNumber = carNumber (attribute) and dateOUT is
NULL
if resultset moved to next row is not after last row
begin
execute query to update table trpark set dateOUT = dateOUT (attribute) where transID=transID(attribute)
execute query to update table msplot set statusAvailable = 0 where plotID = plotID (attribute)
timelength = range of minute from dateIN and dateOUT cost = timelength / 60 * 2000 if timelength modulus 60 !=0 cost = cost + 2000 end print ticket end
3.7.4 Pseudocode untuk Melihat Data Lokasi Parkir
user choose floor
remove all element at panel at this form add element picture of floor to panel
set resultset to query get all fields from table msNode and msPlot where availableStatus = 0 while resultset moved to next row is not after
last row begin
read plotID field from current row x = 0.33 * x from current row y = 0.33 * y from current row
create object image from java class Node set attribute label image = "o"
set attribute x image = x set attribute y image = y
set attribute tooltip image = "" add element image to panel
repaint panel
end
set resultset to query get all fields from table msNode and msPlot where availableStatus = 1 while resultset moved to next row is not after
last row begin
read plotID field from current row x = 0.33 * x from current row y = 0.33 * y from current row create object image
set attribute label image = "x" set attribute x image = x
set attribute y image = y
set resultset2 to query get carnumber field from table trpark where plotid = plotid (from this current row)
set attribute tooltip image = carnumber add element image to panel
repaint panel
end
3.7.5 Pseudocode untuk Mengaktifkan Server
set port
open ServerSocket waiting for Client
create Thread for each connected Client begin
open socket to connect to server
open input stream to receive data from server
open output stream to send data to server
end
3.7.6 Pseudocode untuk Mengirim Data ke Client
while client is connected begin
read input from client if client wants to login begin
check from database server
return status to client
end
else if client wants to logout begin
close socket
close input stream
close output stream
end
else if client send in_parking data begin
generate plot with ShortestPathGeneratorA
generate direction
insert transaction to TrPark
send plot, direction, and information to client
end
else if client send out_parking data begin
check carnumber from database
if carnumber exists
begin
update TrPark, set date_out
calculate parking cost
return data to client
end
else
return status to client
client show error message
end
end end
close socket
close input stream close output stream
3.7.7 Pseudocode untuk Kirim Data Ke Server
if client connected to server begin
if user login begin
create login packet
send loginpacket to server
accept status from server
if status = 0
show login failed message
else
show main form
end
else if user logout begin
send logout packet to server
accept status from server
close Socket
close application
end
else if a car entry to the parking area begin
create parking_in packet
send parking_in packet to server
accept data from server
show plot parking, direction
print parking_in ticket
end
else if a car out from parking area begin
create parking_out packet
send parking_out packet to server
accept data from server
if parking_out status is not success
show parking out error message
else
begin
show data parking transaction of carnumber
print parking_out ticket
end
end end
else begin
show error message exit application end