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,
City Parking, Sun Parking, dan lain-lain. Akan tetapi sistem parkir yang
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. dikembangkan ini
Selain itu kelebihan sistem yang akan
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 : Clien t 1 (Petugas Parkir Masuk)
` Printer untuk men cetak ka rci s masuk
Administrato r / Server
` Cl ient 2 (Petu gas Pa rki r Keluar)
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 implementasi metode shortest path pada modul yang digunakan) serta
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.
Gambar 3.2 Class Diagram
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.
Gambar 3.3 Use Case
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
3.
aplikasi client.
Aplikasi client melakukan pengecekan apakah server sudah aktif
4.
Aplikasi client mengirimkan password ke server.
data username dan
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.
AKHIR USE CASE
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 Deskripsi
Use Case View Park :
Use case ini menggambarkan
modul melihat peta parkir yang ada dilihat dari sisi sistem administrator dan petugas loket.
Aktor
:
Petugas
Included Use Case
:
-
Langkah-langkah
:
Loket
dan
Sistem
Administrator
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 Deskripsi
Use Case Entry Car Out :
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
Gambar 3.4 S equence Diagram untuk Login S ukses
3.4.3.2 Sequence Diagram untuk Login Gagal
Gambar 3.5 S equence Diagram untuk Login Gagal
3.4.3.3 Sequence Diagram untuk Mengentri Mobil Masuk
Gambar 3.6 S equence Diagram untuk Mengentri Mobil Masuk
3.4.3.4 Sequence Diagram untuk Mencari data kendaraan yang sedang parkir
Gambar 3.7 S equence Diagram untuk Mencari Tempat Parkir
3.4.3.5 Sequence Diagram Jika Ada Perubahan Kapasitas Parkir
Gambar 3.8 S equence 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
Gambar 3.13 S equence 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
Gambar 3.15 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
Gambar 3.17 S equence Diagram untuk View Report
3.4.3.15 Sequence Diagram untuk Logout
Gambar 3.18 S equence Diagram untuk Logout
3.4.4
Deployment Diagram
Gambar 3.19 Deployment Diagram
3.4.5
S tate Diagram 3.4.5.1 S tate Diagram untuk Parkir Masuk
Gambar 3.20 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. Berikut ini adalah rancangan layar menu-menu pada aplikasi server :
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.
Gambar 3.23 Perancangan Layar Form Utama untuk 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.
Gambar 3.25 Perancangan Layar Searching untuk Administrator
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.
Gambar 3.26 Perancangan Layar Manage User untuk Administrator
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).
Gambar 3.32 Perancangan Layar Login untuk Client
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.
Gambar 3.33 Perancangan Layar Utama untuk Client
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 Client
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’ :
Gambar 3.37 Rancangan ERD
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
length
Integer
-
Panjang 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 plot
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
5.
10
Telp karyawan
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 datang
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 vector_all_node_before of current_node
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*BC*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)-(x3x1)*(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 carnumber print parking_out ticket end end end
of
else begin show error message exit application end