BAB 3 ANALISIS DAN PERANCANGAN SISTEMthesis.binus.ac.id/doc/Bab3/2007-2-00220-IF_Bab 3.pdf ·...
Transcript of BAB 3 ANALISIS DAN PERANCANGAN SISTEMthesis.binus.ac.id/doc/Bab3/2007-2-00220-IF_Bab 3.pdf ·...
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Permasalahan yang Dihadapi
3.1.1 Analisis Masalah
Masalah 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. 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. Model 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 :
`
`
Administrator / Server
Client 1 (Petugas Parkir Masuk)
Cl ient 2 (Petugas Parki r Keluar)
Printer untuk mencetak karcis
masuk
Printer untuk mencetak karcis
keluar
Gambar 3.1 Model Smart Park System
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 Mobil, 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 Scenario
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. Modul 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. Modul 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
Gambar 3.4 Sequence Diagram untuk Login Sukses
3.4.3.3 Sequence Diagram untuk Mengentri Mobil Masuk
Gambar 3.6 Sequence Diagram untuk Mengentri Mobil Masuk
3.4.3.4 Sequence Diagram untuk Mencari data kendaraan yang sedang
parkir
Gambar 3.7 Sequence Diagram untuk Mencari Tempat Parkir
3.4.3.5 Sequence Diagram Jika Ada Perubahan Kapasitas Parkir
Gambar 3.8 Sequence Diagram Jika Ada Perubahan Kapasitas Parkir
3.4.3.6 Sequence Diagram Jika Tidak Ada Perubahan Kapasitas
Parkir
Gambar 3.9 Sequence Diagram Jika Tidak Ada Perubahan Kapasitas Parkir
3.4.3.7 Sequence Diagram untuk Mengentri Plot Parkir ke
Database
Gambar 3.10 Sequence 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 Sequence 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 Sequence 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 Sequence Diagram untuk View Tempat Parkir
3.4.3.11 Sequence Diagram untuk Menambah Data User Baru
Gambar 3.14 Sequence 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 Sequence Diagram untuk Menghapus Data User
Baru
3.4.5 State Diagram
3.4.5.1 State Diagram untuk Parkir Masuk
Gambar 3.20 State Diagram untuk Parkir Masuk
3.4.5.2 State Diagram untuk Parkir Keluar
Gambar 3.21 State Diagram untuk Parkir Keluar
3.5 Perancangan Layar Input
3.5.1 Perancangan Layar Input 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
Menu 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
Menu 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
Menu 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
Menu 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
Menu 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
Menu 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
Menu 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
Menu 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
Menu 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
Menu Memasukkan 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 Input 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
Menu 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
Menu 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
Menu Parkir Masuk 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
Menu 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
Menu 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 MsNode 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 : MsEmployee
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 : MsUser
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*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