Anda di halaman 1dari 13

LAPORAN JOB DESC INDIVIDU TUGAS PROYEK

MATA KULIAH PEMROGRAMAN MOBILE

APLIKASI SMART PARKING UNTUK PENCARIAN LOKASI PARKIR


YANG TERSEDIA

Disusun Oleh :
Faisal Kurniawan 1500018247

Job Yang Dikerjakan :


Merancang & implementasi Prototype

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS AHMAD DAHLAN

YOGYAKARTA

2017

DAFTAR ISI

Daftar Isi .................................................................................................................................... 2

1
BAB I

A. Latar Belakang ............................................................................................................... 3


B. Tujuan Aplikasi ..............................................................................................................

BAB II

A. Alur Kerja Aplikasi ........................................................................................................ 4


B. Kebutuhan Data .............................................................................................................
C. Fitur yang Disediakan .................................................................................................... 5

BAB III

A. Tampilan Aplikasi .......................................................................................................... 6


1. Layout Halaman Awal .......................................................................................
2. Layout Lihat Lokasi Parkir ................................................................................
3. Layout Pilih Jenis Kendaraan ............................................................................
4. Layout Isi Booking Form ...................................................................................
5. Layout Detail Booking Parkir Motor ................................................................. 7
6. Layout Detail Booking Parkir Mobil ................................................................
B. Source Code & Penjelasan .............................................................................................
1. MainActivity.java .............................................................................................. 8
2. LokasiParkir.java ............................................................................................... 9
3. PilihKendaraan.java ...........................................................................................
4. Book.java ........................................................................................................... 10
5. SQLiteAdapter.java ........................................................................................... 12

BAB IV

A. Kesimpulan .................................................................................................................... 14

BAB I

PENDAHULUAN

2
A. LATAR BELAKANG PERLUNYA APLIKASI

Dengan meningkatnya pengguna kendaraan baik roda dua dan roda empat terutama
kendaraan pribadi,masih banyak yang menggunakan manual yaitu pada saat kendaraan
masuk area parkir akan memberikan lembaran karcis yang di berikan.dan untuk mencari
rute parkir yang tersedia user harus mencari secara manual,sehingga menyita waktu yang
cukup banyak.

Pada Tugas Akhir ini akan dirancang sebuah sistem pada android yang dapat
mendeteksi serta menginformasikan tempat parkir kosong. sehingga user tidak perlu repot
dalam mencari lahan parkir yang masih kosong,. Sistem ini menggunakan sensor dengan
kendali komputer, dan display agar sistem dapat berjalan dengan lancar serta
mempermudah pengelolah parkir untuk mengatur kendaraan yang akan menggunakan
lokasi parkir.

B. TUJUAN APLIKASI

1. Mengetahui suatu lokasi parkir apakah masih kosong atau sudah terisi.
2. Untuk mempermudah identifikasi kendaraan yang masuk dan keluar dari area parkir.
3. Mempermudah pengguna untuk mencari jika ada lahan parkir yang kosong melalui
smartphone android mereka.

3
BAB II

PERANCANGAN APLIKASI

A. KEBUTUHAN DATA

Data Pengguna/User :

1. Nama Pengguna
2. Nomor Identitas Diri
3. Jenis Kendaraan yang Digunakan
4. Plat Nomor Kendaraan

Data Booking Parkir :

1. ID Blok/Slot Lahan Parkir


2. Biaya Parkir
3. Total harga/booking
4. Jam penggunaan

Data Lahan Parkir :

1. ID Blok/Slot Lahan Parkir

B. FITUR YANG DISEDIAKAN

Didalam aplikasi “smart parking”, fitur-fitur yang kami sediakan adalah :


1. Pengguna dapat melihat dimana saja lahan parkir yang kosong maupun sudah
terisi
2. Pengguna dapat melakukan booking suatu blok lahan parkir
3. Pengguna dapat menggunakan qr code yang diberikan untuk mengakses portal
parkir

4
BAB III

HASIL IMPLEMENTASI

A. TAMPILAN APLIKASI

1. Layout Halaman Awal

5
2. Layout Memilih Area

3. Layout No kendaraan

6
B. SOURCE CODE & PENJELASAN
1. MainActivity.java
package com.example.smartparking;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;

import org.w3c.dom.Text;

public class MainActivity extends AppCompatActivity {

Button btnbook;
Button btnlokasi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

btnlokasi = (Button) findViewById(R.id.btnlokasi);


btnbook = (Button) findViewById(R.id.btnbook);

btnbook.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent form_book_parkir = new Intent(MainActivity.this,
PilihKendaraan.class);
startActivity(form_book_parkir);
}
});

btnlokasi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent lokasi_parkir = new Intent(MainActivity.this,
LokasiParkir.class);

7
startActivity(lokasi_parkir);
}
});
}

Penjelasan :
- btnbook dan btnlokasi menyimpan event didalam id “btnbook” dan “btnlokasi” yang
menggunakan widget button
- didalam btnbook.setOnClickListener() berfungsi untuk memberikan aksi berpindah ke
activity lain ketika button ditekan oleh pengguna.
- didalam btnlokasi.setOnClickListener() berpindah ke activity lain
- “form_book_parkir” Intent untuk berpindah ke class “PilihKendaraan”
- “lokasi_parkir” Intent untuk berpindah ke class “LokasiParkir”
- startActivity() untuk menjalankan perintah Intent
2. LokasiParkir.java
package com.example.smartparking;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

/**
* Created by wumBowo on 12/12/2017.
*/

public class LokasiParkir extends AppCompatActivity {


protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.lokasi_parkir);
}
}

Penjelasan :
- Class ini dipanggil ketika button id=”btnlokasi” ditekan dan merupakan target dari
Intent “lokasi_parkir”. Class ini akan menampilkan layout “lokasi_parkir.xml”

3. PilihKendaraan.java
package com.example.smartparking;

import ……
/**
* Created by wumBowo on 18/12/2017.
*/

public class PilihKendaraan extends AppCompatActivity {


ImageButton buttonmotor;
ImageButton buttonmobil;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pilih_kendaraan);

buttonmotor = (ImageButton) findViewById(R.id.buttonmotor);

8
buttonmobil = (ImageButton) findViewById(R.id.buttonmobil);

buttonmotor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int jenis =0;
Intent motor = new Intent(PilihKendaraan.this, Book.class);
motor.putExtra("jenis",jenis);
startActivity(motor);
}
});

buttonmobil.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int jenis =1;
Intent mobil = new Intent(PilihKendaraan.this, Book.class);
mobil.putExtra("jenis",jenis);
startActivity(mobil);
}
});
}
}

Penjelasan :
- Class ini dipanggil ketika button id=”btnbook” ditekan dan merupakan target dari
Intent “form_book_parkir”. Class ini akan menampilkan layout
“pilih_kendaraan.xml”

4. Book.java
package com.example.smartparking;

import android.graphics.Bitmap;
import android.media.Image;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
//-----import library zxing untuk mengenerate QR CODE-----
import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.journeyapps.barcodescanner.BarcodeEncoder;

import java.text.BreakIterator;
import java.util.ArrayList;
import java.util.List;

/**
* Created by wumBowo on 12/12/2017.
*/

public class Book extends AppCompatActivity {


//Set variable untuk masing-masing widget
EditText nopol;

9
TextView jenisken;
EditText atasnama;
EditText slot;
EditText jam;
TextView harga;
TextView tampilnopol;
TextView tampiljenisken;
TextView tampilatasnama;
TextView tampilslot;
TextView tampiljam;
TextView tampiltotalharga;
TextView tampilnobook;
ImageView qrcode;
Button btn;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.book_parkir);
//mengambil keseluruhan data yang dikirim melalui Intent
Bundle bundle = getIntent().getExtras();
//menyimpan data jenis yang dikirim sebelumnya dalam variable jenis
int jenis = bundle.getInt("jenis");
int nobook=1;
int i;
//perulangan nomor booking ketika booking telah dilakukan
for(i=0;i<-1;i++){
nobook=nobook+1;
}

nopol = (EditText) findViewById(R.id.nopol);


jenisken = (TextView) findViewById(R.id.jenisken);
atasnama = (EditText) findViewById(R.id.atasnama);
harga = (TextView) findViewById(R.id.harga);
jam = (EditText) findViewById(R.id.jam);
//menyimpan slot lahan parkir
slot = (EditText) findViewById(R.id.slot);
btn = (Button) findViewById(R.id.button);
//jika jenis bernilai 0 maka kendaraan berjenis motor
if (jenis == 0) {
jenisken.setText("MOTOR") ;
harga.setText("Rp 1000/jam");

}else if(jenis == 1) { //jika jenis bernilai 1 maka kendaraan berjenis mobil


jenisken.setText("MOBIL");
harga.setText("Rp 2000/jam");
}

}
public void hasil(View view){
setContentView(R.layout.book_sukses);
//mengambil keseluruhan data yang dikirim melalui Intent
Bundle bundle = getIntent().getExtras();
int jenis = bundle.getInt("jenis");
int nobook=1;
int i;
for(i=0;i<-1;i++){
nobook = nobook +1;
}

10
//set variable untuk masing-masing widget textview yang terdapat
dalam layout book_sukses.xml
tampilnopol = (TextView) findViewById(R.id.tampilnopol);
tampiljenisken = (TextView) findViewById(R.id.tampiljenisken);
tampilslot = (TextView) findViewById(R.id.tampilslot);
tampilatasnama = (TextView) findViewById(R.id.tampilatasnama);
tampiljam =(TextView) findViewById(R.id.tampiljam);
tampiltotalharga = (TextView) findViewById(R.id.tampiltotalharga);
tampilnobook = (TextView) findViewById(R.id.tampilnobook);
qrcode = (ImageView) findViewById(R.id.imageqrnobook);
//jika jenis=0 (kendaraan motor )
if(jenis== 0) {
int setharga = 1000; //biaya untuk motor = 1000
int totalharga=
Integer.parseInt(jam.getText().toString().trim()) * setharga;
tampiltotalharga.setText(String.valueOf(totalharga));
}
//jika jenis=1 (kendaraan mobil )
else if(jenis == 1){
int setharga = 2000; //biaya untuk mobil = 2000
int totalharga=
Integer.parseInt(jam.getText().toString().trim()) * setharga;
tampiltotalharga.setText("Rp "+String.valueOf(totalharga));
}
//menampilkan masing-masing entri form yang di-isi sebelumnya
tampilnopol.setText(""+nopol.getText());
tampiljenisken.setText(""+jenisken.getText());
tampilslot.setText(""+slot.getText());
tampilatasnama.setText(""+atasnama.getText());
tampiljam.setText(""+jam.getText() + " jam");
tampilnobook.setText("#"+nobook);

//-------MENAMPILKAN QR CODE-------
//mengubah tipedata variable "nobook" yang semula integer menjadi string
String textqrcode = (""+nobook);
//memanggil class multiformatwriter untuk menulis berbagai format
sekaligus
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
try {
//SPesifikasikan isi dari qr code,tinggi, dan lebar
BitMatrix bitMatrix = multiFormatWriter.encode(textqrcode,
BarcodeFormat.QR_CODE,800,800);

//memanggil class barcodeEncoder untuk meng-encode QR CODE


BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
//generate qr code
Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
qrcode.setImageBitmap(bitmap);
} catch (WriterException e) {
e.printStackTrace();
}
}
}

Penjelasan :
- Class ini untuk mengisi form booking lahan parkir dan menampilkan hasil form
tersebut di dalam layout “book_sukses.xml”
- Bundle bundle = getIntent().getExtras(); yaitu untuk mengambil seluruh data-data yang
dikirim melalui Intent dari Activity Sebelumnya (Pilih Kendaraan.java)

11
- int jenis = bundle.getInt("jenis"); yaitu untuk menampung data yang terdapat dalam
bundle dan disimpan didalam variable jenis
- Menggunakan library ZXing untuk menghasilkan qr-code
- Penjelasan selanjutnya terdapat di dalam source-code didalamnya.

Penjelasan :

- Menyimpan hasil entri dalam form booking ke dalam tabel “book” dengan nama
database “parkir”.
- Ketika onCreate() akan membentuk tabel “book” dengan query yang telah ditulis
- Di dalam tabel “book” memiliki atribut dengan keterangan sebagai berikut :
o Nobook : Integer
o Platno : Text/String
o Nama : Text/String
o Slot : Text/String
o Jam : Integer
o Jenisken : Text

BAB IV
PENUTUP
A. KESIMPULAN

Aplikasi ini berguna untuk memundahkan para pengendara untuk memlih lokasi parkir
tanpa khawatir jika parkir telah penuh karena didalam aplikasi menyediakan fasilitas untuk
melihat lokasi keadaan parkir diwaktu yang sama. Mereka juga memiliki akses untuk
melakukan booking suatu blok lahan parkir untuk terhindar dari lahan parkir yang penuh
ketika pengendara masuk ke lahan parkir.
Di dalam aplikasi terdapat berbagai tampilan yang memiliki fungsional untuk memilih
jenis kendaraan yang dipakai, menentukan penggunaan jam parkir dengan spesifik, dan
juga QR Code yang nantinya dipakai untuk memverifikasi bahwa pengguna yang
membawa kendaraan tersebut valid sesuai dengan yang terdapat didalam sistem.

12
13

Anda mungkin juga menyukai