62
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 in gin 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

BAB 3 ANALISIS DAN PERANCANGAN SISTEMthesis.binus.ac.id/doc/Bab3/2007-2-00220-IF_Bab 3.pdf · kosong yang bisa segera dijangkau oleh penggunanya. ... dikirim balik ke aplikasi client

  • Upload
    doanthu

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

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.

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 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.2 Sequence Diagram untuk Login Gagal

Gambar 3.5 Sequence Diagram untuk Login Gagal

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.3.14 Sequence Diagram untuk View Report

Gambar 3.17 Sequence Diagram untuk View Report

3.4.3.15 Sequence Diagram untuk Logout

Gambar 3.18 Sequence Diagram untuk Logout

3.4.4 Deployment Diagram

Gambar 3.19 Deployment Diagram

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

else begin show error message exit application

end