perancangan dan pengimplementasian sistem barcode...
TRANSCRIPT
PERANCANGAN DAN PENGIMPLEMENTASIAN SISTEM BARCODE SCANNER BERBASIS ANDROID PADA
MANAJEMEN STORE DI PT PELICAN MITRA SEJATI BATAM
TUGAS AKHIR
Oleh :
Muhammad Supriono 21000587
PROGRAM STUDI MANAJEMEN INFORMATIKA SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN
KOMPUTER (STMIK) GICI BATAM
2018
i
PERANCANGAN DAN PENGIMPLEMENTASIAN SISTEM BARCODE SCANNER BERBASIS ANDROID PADA
MANAJEMEN STORE DI PT PELICAN MITRA SEJATI BATAM
TUGAS AKHIR
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Ahli Madya
Oleh : Muhammad Supriono
21000587
PROGRAM STUDI MANAJEMEN INFORMATIKA SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN
KOMPUTER (STMIK) GICI BATAM
2018
ii
HALAMAN PERSETUJUAN
Judul Tugas Akhir :
Nama Mahasiswa : Muhammad Supriono
NIM : 21000587
Program Studi : Manajemen Informatika
Institusi :
Telah Memenuhi Persyaratan Untuk Diuji Di Depan Dewan Penguji
Pada Sidang Tugas Akhir
Batam, 06 Agustus 2018
Pembimbing Ketua Program Studi
Manajemen Informatika
Zainul Munir, ST., M.e.T.C Dedi Rahman Habibie, S.Kom., M.Kom
NIDN : 1014088002 NIDN : 1018028903
Perancangan dan Pengimplementasian Sistem Barcode
Scanner Berbasis Android Pada Manajemen Store di
PT Pelican Mitra Sejati Batam
Sekolah Tinggi Manajemen Informatika dan Komputer
GICI
iii
HALAMAN PENGESAHAN
Judul Tugas Akhir :
Nama Mahasiswa : Muhammad Supriono
NIM : 21000587
Program Studi : Manajemen Informatika
Institusi :
Telah Dipertahankan Di Depan Dewan Penguji Sidang
Pada Tanggal 21 Agustus 2018
Dinyatakan Lulus dan Memenuhi Syarat
Batam, 21 Agustus 2018
Penguji I Penguji II
Sandy Suwandana, S.Kom., M.Kom Riki, S.T., M.M
NIDN : 1006099201 NIDN : 1020058901
Diketahui Oleh:
Ketua Program Studi Manajemen Informatika
STMIK GICI
Dedi Rahman Habibie, S.Kom., M.Kom
NIDN : 1018028903
Perancangan dan Pengimplementasian Sistem Barcode
Scanner Berbasis Android Pada Manajemen Store di
PT Pelican Mitra Sejati Batam
Sekolah Tinggi Manajemen Informatika dan Komputer
GICI
iv
HALAMAN PERNYATAAN
Nama Mahasiswa : Muhammad Supriono
NIM : 21000587
Judul Tugas Akhir :
Dengan ini menyatakan bahwa:
1. Tugas Akhir ini adalah asli dan belum pernah diajukan untuk mendapatkan
gelar akademik (Ahli Madya), baik di Sekolah Tinggi Manajemen
Informatika dan Komputer (STMIK) Gici maupun di Perguruan Tinggi lain
kecuali secara tertulis dengan jelas dicantumkan sebagai acuan dalam naskah
dengan disebutkan nama pengarang dan dicantumkan dalam daftar pustaka;
2. Tugas Akhir ini adalah murni gagasan, rumusan, dan penelitian saya sendiri,
tanpa bantuan pihak lain, kecuali arahan Pembimbing;
3. Pernyataan ini saya buat dengan sesungguhnya dan apabila di kemudian hari
terdapat penyimpangan dan ketidakbenaran dalam pernyataan ini, maka saya
bersedia menerima sanksi akademik berupa pencabutan gelar yang telah
diperoleh, serta sanksi lainnya sesuai dengan norma dan ketentuan yang
berlaku.
Batam, 21 Agustus 2018
Yang Membuat Pernyataan,
Muhammad Supriono
NIM : 21000587
Perancangan dan Pengimplementasian Sistem Barcode
Scanner Berbasis Android Pada Manajemen Store di
PT Pelican Mitra Sejati Batam
v
KATA PENGANTAR
Puji syukur penulis panjatkan kepada Tuhan Yang Maha Esa, karena
berkat rahmat-Nya penulis dapat menyelesaikan Tugas Akhir yang berjudul
Perancangan dan Pengimplementasian Sistem Barcode Scanner Berbasis Android
Pada Manajemen Store di PT Pelican Mitra Sejati Batam sesuai dengan yang
direncanakan.
Penulis menyadari bahwa Tugas Akhir ini masih jauh dari sempurna. Oleh
sebab itu, dengan segala kerendahan hati, kritik dan saran yang bersifat
membangun dari pembaca, Penulis sangat mengharapkan kritik dan sarannya
demi kesempurnaan Tugas Akhir ini, dan juga menyadari sepenuhnya bahwa
tanpa adanya bantuan dari berbagai pihak, Penulis akan banyak menemui
kesulitan dalam penyusunan Tugas Akhir ini. Untuk itu Penulis mengucapkan
terima kasih kepada :
1. Alm. Bapak Kiatwansyah, selaku Mantan Ketua Pembina Yayasan Permata
Harapan Bangsa Batam.
2. Bapak Bali Dalo, S.H. selaku Ketua Yayasan Permata Harapan Bangsa.
3. Bapak Zainul Munir, ST., M.e.T.C, selaku Ketua Sekolah Tinggi Manajemen
Informatika dan Komputer Gici dan selaku Pembimbing yang telah
mengarahkan dan membimbing penulis selama mengerjakan Tugas Akhir ini.
4. Bapak Dedi Rahman Habibie, S.Kom., M.Kom, selaku Ketua Program Studi
Manajemen Informatika, serta seluruh Staff Dosen yang telah banyak
memberikan ilmu dan kemudahan dalam penyelesaian Tugas Akhir ini.
Batam, 21 Agustus 2018
Penulis,
Muhammad Supriono
vi
ABSTRAK
PT Pelican Mitra Sejati adalah sebuah perusahaan jasa perbaikan mesin
genset (darat maupun perkapalan / marine) serta sebagai pemasok spare part
(untuk mesin-mesin yang dikerjakan) dan unit (genset). Sebagai perusahaan jasa
maka pelayanan terhadap konsumen (customer) sangatlah penting dan
berpengaruh besar terhadap nama baik dan kemajuan perusahaan. Kecepatan dan
ketepatan dalam memberikan pelayanan kepada customer akan menghasilkan
kepuasan yang tinggi sesuai dengan yang diharapkan oleh seluruh customer. Pada
zaman sekarang ini teknologi yang sangat berkembang pesat sangat membantu
perusahaan dalam memenuhi kebutuhan-kebutuhan perusahaan akan sistem yang
bagus, cepat dan efesien. Sistem Informasi yang bagus pada sebuah perusahaan
akan sangat membantu perusahaan itu dalam menjalankan bisnisnya. Begitupun
kebutuhan sistem informasi pada PT Pelican Mitra Sejati terutama di bagian store
haruslah sesuai dengan kebutuhan agar dapat meningkatkan produktivitas kinerja
karyawannya. Sistem Barcode Scanner Berbasis Android merupakan sebuah
rancangan sistem untuk proses pendukung yang mempermudah storeman dalam
prosedur pengeluaran barang dengan menggunakan alat bantu berupa sebuah
perangkat android. Perancangan sistem ini dilakukan dengan bahasa pemograman
java, menggunakan html, php dalam desain dan pengolahan form, menggunakan
android studio untuk pembuatan adroid app. serta menggunakan postgreSQL
sebagai database. Hasil akhir perancangan sistem tersebut menghasilkan Sistem
Barcode Scanner pada Manajemen Store di PT Pelican Mitra Sejati Batam yang
diharapkan dapat memudahkan dan mempercepat proses pengeluaran barang pada
divisi store agar dapat meningkatkan efektivitas kinerja seluruh karyawan di PT
Pelican Mitra Sejati Batam tersebut.
Kata Kunci : Sistem Informasi, Manajemen Store, Android, Barcode Scanner
vii
ABSTRACT
PT Pelican Mitra Sejati is a genset service company (land and marine) and
spare part supplier (for machineries) and unit (genset). As a service company
then the service to the customer is very important and greatly affect the good
name and progress of the company. Speed and accuracy in providing services to
customers will result in high satisfaction as expected by all customers. In this day
and age technology is very rapidly growing very help the company in meeting the
needs of the company will be a good system, fast and efficient. Good Information
Systems in a company will greatly assist the company in running its business.
Likewise the needs of information systems at PT Pelican Mitra Sejati, especially
in the store must be in accordance with the needs in order to improve employee
performance productivity. Barcode Scanner System Based on Android is a system
design for the supporting process that simplifies Storeman in the procedure of
dispensing goods by using tools in the form of an android device. This system
design is done with Java programming language, using html, php in design and
form processing, using Android Studio to make Adroid App and using PostgreSQL
as database. The final result of the system design resulted Barcode Scanner
System in Store Management at PT Pelican Mitra Sejati Batam which is expected
to facilitate and accelerate the process of expenditure of goods in the store
division in order to improve the effectiveness of the performance of all employees
in PT Pelican Mitra Sejati Batam.
Keywords: Information System, Store Management, Android, Barcode Scanner
viii
DAFTAR ISI
Judul Halaman
HALAMAN JUDUL ...................................................................................... i
HALAMAN PERSETUJUAN ...................................................................... ii
HALAMAN PENGESAHAN ........................................................................ iii
HALAMAN PERNYATAAN ........................................................................ iv
KATA PENGANTAR .................................................................................... v
ABSTRAK ...................................................................................................... vi
ABSTRACT ..................................................................................................... vii
DAFTAR ISI ................................................................................................... viii
DAFTAR TABEL .......................................................................................... xiii
DAFTAR GAMBAR ...................................................................................... xiv
BAB I PENDAHULUAN ........................................................................ 1
1.1 Latar Belakang .............................................................................. 1
1.2 Perumusan Masalah....................................................................... 3
1.3 Batasan Masalah ............................................................................ 3
1.4 Tujuan Penelitian........................................................................... 3
1.5 Manfaat Penelitian......................................................................... 4
1.6 Sistematika Penulisan .................................................................... 4
BAB II LANDASAN TEORI ................................................................... 6
2.1 Teori Pendukung ........................................................................... 6
Definisi Sistem .............................................................................. 6
Karakteristik Sistem ...................................................................... 7
Definisi Data ................................................................................. 8
Definisi Informasi ......................................................................... 8
Kualitas Informasi ......................................................................... 9
Nilai Informasi .............................................................................. 10
Definisi Sistem Informasi.............................................................. 11
ix
Komponen Sistem Informasi ......................................................... 11
Barcode ......................................................................................... 12
A. Barcode 1 Dimensi ..................................................... 14
B. Barcode 2 Dimensi ..................................................... 15
Quick Response Code (QR Code) ................................................. 16
A. Anatomi QR Code ...................................................... 17
B. Versi QR Code ........................................................... 18
Barcode Scanner ........................................................................... 19
1. Mobile Barcode Scanner ............................................ 19
2. Pen Scanner ................................................................ 20
3. Slot Reader ................................................................. 20
4. Scanner Genggam (Handheld) ................................... 21
5. Stationery Scanner ..................................................... 22
6. Fixed Position Scanner .............................................. 22
Android .......................................................................................... 23
A. Kelebihan Android ..................................................... 24
B. Kelemahan Android .................................................... 25
Aplikasi ......................................................................................... 25
Android SDK (Software Development Kit) ................................... 26
Android Package (Apk) ................................................................. 27
Android Emulator .......................................................................... 28
Database........................................................................................ 29
MySql ............................................................................................. 31
PostgreSQL / PostGIS ................................................................... 32
Android Studio............................................................................... 33
Hypertext Markup Language (HTML) .......................................... 34
Personal Home Page (PHP) ......................................................... 37
Java ............................................................................................... 37
Entity Relationship Diagram (ERD) ............................................. 38
Data Flow Diagram (DFD) .......................................................... 41
Flowchart ...................................................................................... 44
Black Box....................................................................................... 48
x
White Box ...................................................................................... 49
2.2 Penelitian Terdahulu ..................................................................... 49
BAB III METODELOGI PENELITIAN ................................................. 53
3.1 Kerangka Kerja ............................................................................. 53
a. Melakukan Pengumpulan Data................................................. 54
b. Menganalisa Data ..................................................................... 54
c. Mengidentifikasi Masalah ........................................................ 54
d. Merumuskan Masalah .............................................................. 54
e. Melakukan Perencanaan Sistem ............................................... 55
f. Mengimplementasi Sistem Yang Dibuat .................................. 56
g. Melakukan Pengujian Hasil ...................................................... 56
3.2 Gambaran Umum Perusahaan ....................................................... 56
Line Business ................................................................................. 58
International Customer ................................................................. 58
National Customer ........................................................................ 59
3.3 Sejarah Singkat Perusahaan .......................................................... 60
3.4 Visi dan Misi Perusahaan .............................................................. 63
3.4.1 Visi Perusahaan.................................................................... 63
3.4.2 Misi Perusahaan ................................................................... 63
3.5 Struktur Organisasi ........................................................................ 64
BAB IV ANALISIS DAN IMPLEMENTASI.......................................... 65
4.1 Analisis Sistem yang Berjalan....................................................... 65
4.2 Analisis Sistem yang Diusulkan .................................................... 67
A. Flowchart Data ....................................................................... 69
B. Flowchart Sistem (menu outstock) .......................................... 72
C. Flowchart Sistem (menu history) ............................................ 76
D. Flowchart Sistem (menu exit) .................................................. 78
4.2.1 Data Flow Diagram (DFD) ................................................. 79
4.2.2 Entity Relationship Diagram (ERD) .................................... 80
xi
4.2.3 Normalisasi .......................................................................... 82
4.3 Implementasi ................................................................................. 84
1. Perancangan ......................................................................... 84
Perancangan Form Menu Login ........................................... 84
Perancangan Form Menu Utama ......................................... 85
Perancangan Form Menu Outstock ...................................... 86
Perancangan Form Menu History ........................................ 87
Perancangan Form Menu Detail History ............................. 88
Perancangan Form Menu Exit ............................................. 89
2. Implementasi ........................................................................ 90
Tampilan Form Menu Login ................................................ 90
Tampilan Form Menu Utama .............................................. 91
Tampilan Form Menu Outstock ........................................... 92
Tampilan Form Menu History ............................................. 93
Tampilan Form Menu Detail History .................................. 94
Tampilan Form Menu Exit ................................................... 95
4.4 Testing ........................................................................................... 96
Tampilan Icon Apk ............................................................... 96
Tampilan Form menu Login dengan user./pass. salah ........ 97
Notifikasi ketika username / password salah ....................... 98
Tampilan Form menu Login dengan user./pass. benar ........ 99
Notifikasi ketika username / password benar ...................... 100
Tampilan Konfigurasi Awal Kamera (Proses Scan) ............ 101
Tampilan Proses Scanning Data .......................................... 102
Tampilan Proses Pengisisan Jumlah Data ........................... 103
Tampilan List Data Dalam Satu Grup ................................. 104
Tampilan Form Menu History ............................................. 105
Tampilan Form Menu Detail History (Group 1) ................. 106
Tampilan Form Menu Detail History (Group 2) ................. 107
Tampilan Form Menu Detail History (Group 3) ................. 108
Tampilan Form Menu Exit ................................................... 109
Tampilan Database Dengan PostgreSql .............................. 113
xii
Tampilan Files Function Pada Folder Scanner ................... 114
Tampilan Localhost Scanner Pada Browser ........................ 115
Tampilan QR Code Yang Akan Di Scan ............................. 116
Tampilan Test Function (getno.php) ................................... 117
Tampilan Test Function (getpart.php) ................................. 118
Tampilan Test Function (save.php) ..................................... 119
Tampilan Test Function (history.php) ................................. 120
Tampilan Test Function (detail.php) ................................... 121
BAB V PENUTUP .................................................................................... 122
5.1 Kesimpulan.................................................................................... 122
5.2 Saran .............................................................................................. 123
DAFTAR PUSTAKA ..................................................................................... 124
LAMPIRAN .................................................................................................... 125
xiii
DAFTAR TABEL
Tabel Halaman
Tabel 2.1 Komponen-Komponen pada DFD ............................................. 42
Tabel 2.2 Komponen-Komponen pada Flowchart..................................... 45
Tabel 3.1 Daftar List International Customer 2018 ................................... 58
Tabel 3.2 Daftar List National Customer 2018 .......................................... 59
Tabel 4.1 Flowmap Alur Sistem Yang Sedang Berjalan ........................... 65
Tabel 4.2 Normalisasi Ke 1 ........................................................................ 82
Tabel 4.3 Normalisasi Ke 2 ........................................................................ 83
Tabel 4.4 Normalisasi Ke 3 ........................................................................ 83
Tabel 4.5 Pengujian Dengan Metode Black Box Testing ........................... 110
xiv
DAFTAR GAMBAR
Gambar Halaman
Gambar 2.1 Tiga pilar yang menentukan kualitas informasi ................... 10
Gambar 2.2 Contoh Barcode ....................................................................... 13
Gambar 2.3 Barcode 39 ............................................................................... 14
Gambar 2.4 Barcode 128 ............................................................................. 14
Gambar 2.5 Barcode Interleaved 2 of 5 ....................................................... 15
Gambar 2.6 Barcode UPC ........................................................................... 15
Gambar 2.7 Barcode PDF 417 ..................................................................... 16
Gambar 2.8 Contoh QR Code ...................................................................... 17
Gambar 2.9 Anatomi QR Code..................................................................... 18
Gambar 2.10 Versi QR Code ........................................................................ 18
Gambar 2.11 Contoh Barcode Scanner Android ......................................... 19
Gambar 2.12 Mobile Scanner in Smartphone .............................................. 19
Gambar 2.13 Pen Scanner............................................................................ 20
Gambar 2.14 Slot Reader ............................................................................. 20
Gambar 2.15 Barcode Scanner Handled ..................................................... 21
Gambar 2.16 Stationery Scanner ................................................................. 22
Gambar 2.17 Fixed Position Scanner in Industry ........................................ 22
Gambar 2.18 Simbol Android ...................................................................... 25
Gambar 2.19 Simbol Apk ............................................................................. 28
Gambar 2.20 Contoh Android Emulator ...................................................... 29
Gambar 2.21 Simbol MySql ......................................................................... 31
Gambar 2.22 Simbol PostgreSql .................................................................. 33
Gambar 2.23 Simbol Android Studio ........................................................... 34
Gambar 2.24 Simbol Html ........................................................................... 37
Gambar 2.25 Penggunaan PHP.................................................................... 37
Gambar 2.26 Simbol Java ............................................................................ 38
Gambar 2.27 Komponen-Komponen pada ERD .......................................... 41
Gambar 3.1 Kerangka Kerja Sistem Barcode Scanner .............................. 53
xv
Gambar 3.2 Cover Company Profile Perusahaan ........................................ 57
Gambar 3.3 Simbol Anak Perusahaan ......................................................... 61
Gambar 3.4 Simbol Induk Perusahaan ......................................................... 61
Gambar 3.5 Brands Unit & Spare Part ........................................................ 62
Gambar 3.6 Struktur Organisasi Perusahaan ............................................... 64
Gambar 4.1 Flowchart data sistem yang diusulkan ..................................... 69
Gambar 4.2 Flowchart sistem (menu outstock) ........................................... 72
Gambar 4.3 Flowchart sistem (menu history) ............................................. 76
Gambar 4.4 Flowchart sistem (menu exit) ................................................... 78
Gambar 4.5 DFD Sistem Barcode Scanner ................................................. 80
Gambar 4.6 ERD Sistem Barcode Scanner.................................................. 81
Gambar 4.7 Perancangan Form Menu Login ............................................... 84
Gambar 4.8 Perancangan Form Menu Utama .............................................. 85
Gambar 4.9 Perancangan Form Menu Outstock .......................................... 86
Gambar 4.10 Perancangan Form Menu History .......................................... 87
Gambar 4.11 Perancangan Form Menu Detail History ............................... 88
Gambar 4.12 Perancangan Form Menu Exit ................................................ 89
Gambar 4.13 Tampilan Form Menu Login .................................................. 90
Gambar 4.14 Tampilan Form Menu Utama ................................................. 91
Gambar 4.15 Tampilan Form Menu Outstock ............................................. 92
Gambar 4.16 Tampilan Form Menu History................................................ 93
Gambar 4.17 Tampilan Form Menu Detail History..................................... 94
Gambar 4.18 Tampilan Form Menu Exit ..................................................... 95
Gambar 4.19 Tampilan Icon Apk Barcode Scanner ..................................... 96
Gambar 4.20 Tampilan Input User./Pass. Yang Salah ............................... 97
Gambar 4.21 Notifikasi Ketika User./Pass. Salah ...................................... 98
Gambar 4.22 Tampilan Input User./Pass. Yang Benar .............................. 99
Gambar 4.23 Notifikasi Ketika User./Pass. Benar ...................................... 100
Gambar 4.24 Tampilan Konfigurasi Kamera .............................................. 101
Gambar 4.25 Tampilan Proses Scan Data .................................................. 102
Gambar 4.26 Tampilan Proses Penginputan Jumlah Data .......................... 103
Gambar 4.27 Tampilan List Data Hasil Scan.............................................. 104
xvi
Gambar 4.28 Tampilan Form Menu History................................................ 105
Gambar 4.29 Tampilan Form Menu Detail History (Group 1) ................... 106
Gambar 4.30 Tampilan Form Menu Detail History (Group 1) ................... 107
Gambar 4.31 Tampilan Form Menu Detail History (Group 1) ................... 108
Gambar 4.32 Tampilan Form Menu Exit ..................................................... 109
Gambar 4.33 Tampilan Database Dengan PostgreSql ............................... 113
Gambar 4.34 Tampilan Files Function Pada Folder Scanner ..................... 114
Gambar 4.35 Tampilan Localhost Scanner Pada Browser .......................... 115
Gambar 4.36 Tampilan List QR Code (qrcode.php) .................................... 116
Gambar 4.37 Tampilan Test Function (getno.php) ...................................... 117
Gambar 4.38 Tampilan Test Function (getpart.php) ................................... 118
Gambar 4.39 Tampilan Test Function (savepart.php) ................................. 119
Gambar 4.40 Tampilan Test Function (history.php) .................................... 120
Gambar 4.41 Tampilan Test Function (detail.php) ...................................... 121
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Di zaman modernisasi ini manusia sangat bergantung pada teknologi, yang
membuat teknologi menjadi kebutuhan dasar setiap orang dalam berbagai aspek.
Kebutuhan manusia akan teknologi juga didukung dengan perkembangan ilmu
pengetahuan dan teknologi yang sangat pesat dan terus berevolusi. Hal ini dapat
dibuktikan dengan banyaknya inovasi dan penemuan yang sederhana hingga
sangat rumit. Contohnya teknologi handphone yang awalnya hanya sebuah alat
komunikasi nirkabel berkembang menjadi alat komunikasi yang dapat mengambil
foto, merekam video, mendengarkan musik, dan mengakses internet dalam
hitungan detik. Kita semua pasti tahu bahwa kemajuan teknologi sangat pesat,
kemajuan ini tentunya membawa banyak perubahan terhadap kebudayaan di
Indonesia. Tidak bisa di pungkiri bahwa kemajuan teknologi informasi ini
memang harus terjadi di Negara Indonesia ini, agar Negara Indonesia tidak kalah
saing dengan Negara lain. Pesatnya perkembangan teknologi informasi ini
memang membawa banyak pengaruh positive untuk manusia di dunia terutama di
Indonesia.
Di PT Pelican Mitra Sejati Batam dulu hanya memanfaatkan salah satu
aplikasi komputer yang banyak dipakai oleh perusahaan untuk pengolahan data
yaitu Microsoft Office. Dengan mengandalkan salah satu fitur dari Ms. Office
tersebut yaitu Ms.Excel perusahaan ini mengolah, memproses, serta meyimpan
data-data penting yang sering di pakai pada setiap transaksi. Namun sekarang
2
perusahaan ini sudah mengadopsi sebuah sistem yang menggantikan peran dari
Ms.Excel sebelumnya. Sistem yang dipakai saat ini terasa kurang sempurna, masih
memiliki banyak kekurangan yang senantiasa harus terus dievaluasi dan
dikembangkan agar menjadi sebuah sistem yang bagus, menarik, mudah
dioperasikan, tepat guna dan dapat meningkatkan efektivitas serta efesiensi
kinerja seluruh karyawan di perusahaan ini.
Pada Manajemen Store di PT Pelican Mitra Sejati Batam saat ini masih
menggunakan sistem lama yang dimana setiap kali proses penginputan barang
keluar (outstock) harus di lakukan pengecekan dan pengetikan atau penginputan
kode barang (part number) secara satu persatu yang membuat alur pada proses
tersebut terasa lama dan sangat kurang efektif. Ketika ada permintaan barang
dengan quantity atau jumlah yang cukup banyak pada setiap job, maka storeman
pada divisi store yang bertanggung jawab atas proses keluarnya barang-barang
tersebut merasa kewalahan karena proses penginputan barang-barang tersebut
tidak bisa dilakukan dengan cepat.
Dari uraian masalah yang ada di manajemen store pada proses pengeluaran
barang atau outstock, sehingga peneliti memilih judul penelitian yaitu
“Perancangan dan Pengimplementasian Sistem Barcode Scanner berbasis Android
pada Manajemen Store di PT Pelican Mitra Sejati Batam”. Output atau hasil dari
perancangan serta pengimplementasian sistem barcode scanner ini nantinya
diharapkan dapat memudahkan storeman pada divisi store dalam proses
pengeluaran barang untuk setiap job-nya serta diharapkan dapat menjadi salah
satu faktor pendukung untuk meningkatkan efektivitas kinerja karyawan pada PT
Pelican Mitra Sejati Batam.
3
1.2 Rumusan Masalah
Berdasarkan penjabaran dari Latar Belakang diatas dapat diuraikan rumusan
masalah sebagai berikut :
1. Bagaimana merancang Sistem Barcode Scanner berbasis Android yang dapat
meningkatkan efektifitas pada proses pengeluaran barang atau outstock di
Manajemen Store PT Pelican Mitra Sejati Batam ?
2. Bagaimana merancang basis data barang setelah atau hasil scan serta
membuat koneksi ke pusat penyimpanan data ?
1.3 Batasan Masalah
Dari rumusan masalah yang sudah dibuat sebelumnya maka dapat diuraikan
batasan masalahnya sebagai berikut :
1. Peneliti hanya akan merancang Sistem Barcode Scanner untuk proses
pengeluaran barang (outstock) saja pada Manajemen Store.
2. Peneliti akan merancang database dan koneksi ke server untuk proses
pengeluaran barang atau spare part.
1.4 Tujuan Penelitian
Tujuan dari penelitian, perancangan serta pengimplementasian Sistem
Barcode Scanner berbasis Android pada PT Pelican Mitra Sejati Batam ini yaitu:
1. Untuk mengetahui bagaimana cara merancang Sistem Barcode Scanner
Berbasis Android agar dapat di implementasikan pada proses pengeluaran
barang di Manajemen Store.
2. Untuk mengetahui bagaimana cara merancang basis data barang yang sudah
di scan serta cara membuat koneksi ke pusat data.
4
1.5 Manfaat Penelitian
Manfaat penelitian merupakan dampak dari pencapaiannya tujuan. Dari
penjelasan tersebut dapat disimpulkan beberapa manfaat dari Perancangan dan
Pengimplementasian Sistem Barcode Scanner pada Manajemen Store di PT
Pelican Mitra Sejati Batam ini antara lain :
1. Dapat meningkatkan efektivitas kinerja pada proses pengeluaran barang atau
spare part di Manajemen Store PT Pelican Mitra Sejati Batam.
2. Dapat merancang database barang dan membuat koneksi ke pusat data atau
server.
1.6 Sistematika Penulisan
Untuk memahami lebih jelas laporan ini, maka materi-materi yang tertera
pada Laporan Tugas Akhir ini dikelompokkan menjadi beberapa sub bab dengan
sistematika penyampaian sebagai berikut :
BAB I PENDAHULUAN
Pada bab ini peneliti akan menjelaskan tentang latar belakang, rumusan
masalah, batasan masalah, tujuan penelitian, manfaat penelitian, serta sistematika
penulisan.
BAB II LANDASAN TEORI
Pada bab ini peneliti akan menjabarkan tentang teori pendukung dan beberapa
contoh penelitian terdahulu.
BAB III METODELOGI PENELITIAN
Pada bab ini peneliti akan menjabarkan tentang kerangka kerja dan gambaran
umum perusahaan.
5
BAB IV ANALISIS DAN IMPLEMENTASI
Pada bab ini penulis akan menjelaskan tentang analisis sistem yang berjalan,
analisis sistem yang diusulkan serta pengimplementasiannya.
BAB V PENUTUP
Bab ini berisi kesimpulan dan saran yang berkaitan dengan analisa dan
optimalisasi sistem berdasarkan yang telah diuraikan pada bab-bab sebelumnya.
6
BAB II
LANDASAN TEORI
2.1 TEORI PENDUKUNG
Definisi Sistem
Menurut Tata Sutabri (2012:3) sistem dapat diartikan sebagai kumpulan atau
himpunan dari unsur, kompenen, atau variabel yang terorganisasi, saling
berinteraksi, saling tergantung satu sama lain dan terpadu.
Menurut Al-Bahra Bin Ladjamudin (2005:3) sistem adalah sekelompok
elemen yang terintegrasi dengan maksud yang sama untuk mencapai tujuan dan
suatu jaringan kerja dari prosedur-prosedur yang saling berhubungan, berkumpul
bersama-sama untuk suatu kegiatan atau menyelesaikan suatu sasaran tertentu.
Menurut Agus Mulyanto (2009:2) yang dimaksud dengan sistem adalah
sebagai sekelompok komponen yang saling berhubungan, bekerja sama untuk
mencapai tujuan bersama dengan menerima input serta menghasilkan output
dalam proses transformasi yang teratur.
Menurut Mustakini (2009:34)[2], “Sistem dapat didefinisikan dengan
pendekatan prosedur dan pendekatan komponen, sistem dapat didefinisikan
sebagai kumpulan dari prosedur-prosedur yang mempunyai tujuan tertentu”.
Dari pendapat yang dikemukakan di atas dapat disimpulkan bahwa sistem
adalah suatu kumpulan atau kelompok dari elemen atau komponen yang saling
berhubungan atau saling berinteraksi dan saling bergantung satu sama lain untuk
mencapai tujuan tertentu.
7
Karakteristik Sistem
Menurut Mustakini (2009:54)[2], suatu sistem mempunyai karakteristik,
karakteristik sistem yang dimaksud adalah sebagai berikut :
1. Suatu sistem mempunyai komponen-komponen sistem (components) atau
subsitem-subsistem. Komponen-komponen sistem tersebut dapat berupa suatu
bentuk subsistem. Setiap subsistem memiliki sifat dari sistem yang
menjalankan suatu fungsi tertentu dan mempengaruhi proses sistem secara
keseluruhan.
2. Suatu sistem mempunyai batas sistem (boundary). Ruang lingkup sistem
merupakan daerah yang membatasi antara sistem dengan sistem yang lain
atau sistem dengan lingkungan luarnya. Batasan sistem ini memungkinkan
suatu sistem dipandang sebagai satu kesatuan yang tidak dapat dipisahkan.
3. Suatu sistem mempunyai lingkungan luar (environment). Bentuk apapun yang
ada diluar ruang lingkup atau batasan sistem yang mempengaruhi operasi
sistem tersebut disebut lingkungan luar sistem. Lingkungan luar sistem ini
dapat bersifat menguntungkan dan dapat juga bersifat merugikan sistem
tersebut.
4. Suatu sistem mempunyai penghubung (interface). Media yang
menghubungkan sistem dengan subsistem yang lain disebut penghubung
sistem atau interface. Penghubung ini memungkinkan sumber-sumber daya
mengalir dari satu subsistem ke subsistem lain. Bentuk keluaran dari satu
subsistem akan menjadi masukan untuk subsitem lain melalui penghubung
tersebut. Dengan demikian, dapat terjadi suatu integrasi sistem yang
membentuk satu kesatuan.
8
5. Suatu sistem mempunyai tujuan (goal). Suatu sistem mempunyai tujuan dan
sasaran yang pasti dan bersifat deterministik. Kalau suatu sistem tidak
memiliki sasaran maka operasi sistem tidak ada gunanya. Suatu sistem
dikatakan berhasil bila mengenai sasaran atau tujuan yang telah direncanakan.
Definisi Data
Sumber informasi adalah data, data merupakan bentuk jamak dari bentuk
tunggal item, data adalah fakta yang tidak sedang digunakan pada proses
keputusan, biasanya dicatat dan diarsipkan tanpa maksud untuk segera diambil
kembali untuk pengambilan keputusan (Kumorotomo dan Margono, 2010:11).
Menurut The Liang Gie dalam Tata Sutabri (2012:2)[5], bahwa data adalah
hal, peristiwa, atau kenyataan lain apapun yang mengandung sesuatu pengetahuan
untuk dijadikan dasar guna penyusunan keterangan, pembuatan kesimpulan, atau
penetapan keputusan.
Menurut Tata Sutabri (2012:2) [5], data adalah bahan mentah yang diproses
untuk menyajikan informasi.
Menurut McLeod dalam bukunya Yakub (Yakub,2012: 5)[4] “data adalah
deskripsi kenyataan yang menggambarkan adanya suatu kejadian (event), data
terdiri dari fakta (fact) dan angka yang secara relatif tidak berarti bagi pemakai”.
Definisi Informasi
Menurut Sutabri (2012:29)[7], informasi adalah data yang telah
diklasifikasikan atau diinterpretasi untuk digunakan dalam proses pengambilan
keputusan.
Menurut McLeod dalam Yakub (2012:8)[6], “informasi adalah data yang
diolah menjadi bentuk yang lebih berguna bagi penerimanya”.
9
Menurut Mustakini (2009:36)[4], ”informasi adalah data yang diolah menjadi
bentuk yang berguna bagi pemakainya”.
Berdasarkan pendapat para ahli yang dikemukakan di atas dapat ditarik
kesimpulan bahwa informasi adalah data yang sudah diolah menjadi sebuah
bentuk yang berarti bagi pengguna, yang bermanfaat dalam pengambilan
keputusan saat ini atau mendukung sumber informasi.
Kualitas Informasi
Kualitas informasi sangat dipengaruhi atau ditentukan oleh tiga hal pokok,
yaitu akurasi (accuracy), relevansi (relevancy), dan tepat waktu (timeliness),
(Agus Mulyanto, 2009 : 247)[5].
1. Akurasi (accuracy)
Sebuah informasi harus akurat karena dari sumber informasi hingga
penerima informasi kemungkinan banyak terjadi gangguan yang dapat
mengubah atau merusak informasi tersebut. Informasi dikatakan akurat
apabila informasi tersebut tidak menyesatkan, bebas dari kesalahan-kesalahan
dan harus jelas mencerminkan maksudnya.
2. Tepat Waktu (timeliness)
Informasi yang dihasilkan dari suatu proses pengolahan data, datangnya
tidak boleh terlambat. Informasi yang terlambat tidak akan mempunyai nilai
yang baik, karena informasi merupakan landasan dalam pengambilan
keputusan.
3. Relevansi (relevancy)
Informasi dikatakan berkualitas jika relevan bagi pemakainya. Hal ini
berarti bahwa informasi tersebut harus bermanfaat bagi pemakainya.
10
Relevansi informasi untuk tiap-tiap orang satu dengan lainnya berbeda.
Misalnya, informasi mengenai kerusakan infrastruktur laboratorium komputer
ditujukan kepada rektor universitas. Tetapi akan lebih relevan apabila
ditujukan kepada penanggung jawab laboratorium.
Gambar 2.1 Tiga pilar yang menentukan kualitas informasi menurut John Burch
dan Gary Grudnitski.
Nilai Informasi
Parameter untuk mengukur nilai sebuah informasi (value of information)
ditentukan dari dua hal pokok yaitu manfaat (benefit) dan biaya (cost). Namun,
dalam kenyataannya informasi yang biaya untuk mendapatkannya tinggi belum
tentu memiliki manfaat yang tinggi pula. Suatu informasi dikatakan bernilai bila
manfaatnya lebih efektif dibandingkan dengan biaya untuk mendapatkannya dan
sebagian besar informasi tidak dapat tepat ditaksir keuntungannya dengan satuan
nilai uang, tetapi dapat ditaksir nilai efektivitasnya (Agus Mulyanto, 2009 :
247)[5].
11
Definisi Sistem Informasi
Terdapat berbagai macam pengertian sistem informasi menurut beberapa ahli,
diantaranya sebagai berikut :
Menurut Agus Mulyanto (Mulyanto, 2009:29)[5], “sistem informasi
merupakan suatu komponen yang terdiri dari manusia, teknologi informasi, dan
prosedur kerja yang memproses, menyimpan, menganalisis, dan menyebarkan
informasi untuk mencapai suatu tujuan.”
Menurut Jogiyanto HM (2009:33)[8], “sistem informasi merupakan suatu
sistem yang tujuannya menghasilkan informasi.”
Dari beberapa definisi sistem informasi di atas, maka dapat ditarik
kesimpulan bahwa sistem informasi adalah sistem yang ada pada teknologi
informasi yang digunakan oleh manusia yang dikumpulkan dan dianalisa untuk
mendapatkan informasi agar tujuannya tercapai dalam mengambil keputusan.
Komponen Sistem Informasi
Menurut Tata Sutabri (2012:47)[7], sistem informasi terdiri dari komponen-
komponen yang disebut blok bangunan (building block), dan blok kendali.
Sebagai suatu sistem, keenam blok tersebut masing-masing saling berinteraksi
satu dengan yang lain membentuk suatu kesatuan untuk mencapai sasaran.
1. Blok Masukan (Input Block) mewakili data yang masuk ke dalam sistem
informasi. Input yang dimaksud adalah metode dan media untuk menangkap
data yang akan dimasukan, yang dapat berupa dokumen-dokumen dasar.
2. Blok Model (Model Block) yang terdiri dari kombinasi prosedur, logika dan
model matematik yang akan memanipulasi data input dan data yang
12
tersimpan di basis data dengan cara yang sudah tertentu untuk menghasilkan
keluaran yang diinginkan.
3. Blok Keluaran (Output Block) informasi yang berkualitas dan dokumentasi
yang berguna untuk semua tingkatan manajemen serta semua pemakai sistem.
4. Blok Teknologi (Technology Block) untuk menerima input, menjalankan
model, menyimpan dan mengakses data, menghasilkan dan mengirimkan
keluaran dan membantu pengendalian sistem secara keseluruhan.
5. Blok Basis Data (Database Block) yang merupakan kumpulan data yang
saling berkaitan dan berhubungan satu sama lain, tersimpan di perangkat
keras komputer dan menggunakan perangkat lunak untuk memanipulasinya.
6. Blok Kendali (Controls Block) yang perlu dirancang dan diterapkan untuk
meyakinkan bahwa hal-hal yang dapat merusak sistem dapat dicegah ataupun
bila terlanjur terjadi kesalahan-kesalahan dapat langsung cepat diatasi.
Barcode
Menurut Malik (2010, p1), dikemukakan bahwa Barcode secara harafiah
berarti kode berbentuk garus dimana masing – masing ketebalan setiap garis
berbeda sesuai dengan isi kodenya, kode tersebut mewakili data atau informasi
tertentu biasanya jenis harga barang seperti makanan dan buku. Kode berbentuk
batangan balok dan berwarna hitam putih ini mengandung satu kumpulan
kombinasi yang berlainan ukuran yang dapat disusun sedemikian rupa, kode ini
dicetak diatas sticker atau dikotak pembungkus batang, teknologi yang diterapkan
pada barcode antara lain :
13
1. Teknologi Laser
Menggunakan diode laser berkekuatan 650ns. Laser ini sebenarnya setara
dengan kekuatan laser pada pointer presentasi. Prinsipnya dengan
menambahkan sebuah motor yang bergerak ke kiri dan kanan secara cepat
maka titik laser akan membentuk sebuah garis.
2. Teknologi CCD (Changed Coupled Device)
Menggunakan sinar infrared. Berbeda dengan sistem laser, seperti yang
dipakai pada kamera. Kepekaan pembacaan CCD masih dibawah sistem laser.
Apalagi bagi orang yang bisa menggunakan sistem laser dimana cara
scanning barcode harus tegak lurus, maka harus mengubah kebiasaan karena
pembacaan pada CCD tidak perlu tegak lurus namun menggunakan sudut.
3. Teknologi Linear Imager
Teknologi menggunakan kepekaan laser, kekuatan CCD, ditambah
dengan kemampuan membaca barcode 2 dimensi.
Gambar 2.2 Contoh Barcode
Saat ini barcode terdiri dari 2 jenis yaitu: Linear Code (barcode 1
dimensi) dan Matrix Code (barcode 2 dimensi). Barcode 1 demensi bisa kita
lihat di produk-produk yang biasa kita gunakan di supermarket atau swalayan.
14
Kita dapat melihat manfaat dari barcode dapat meningkatkan kecepatan
dalam melayanai pelanggan dan meningkatkan akurasi data produk yang di-
input oleh kasir.
Demikian juga untuk identifikasi penumpang di bandara, rumah sakit
maupun pergudangan. Barcode terdiri dari dua jenis, diantaranya:
A. Barcode 1 Dimensi (Linear Barcode)
1. Code 39 (code 3 of 9)
Adalah sebuah barcode alphanumeric (Full ASCII) yang memiliki
panjang baris yang bervariasi. Implementasi barcode jenis ini adalah
untuk inventory, asset tracking dan tanda pengenal identitas.
Gambar 2.3 Barcode 39
2. Code 128
Adalah suatu barcode aplphanumeric (Full ASCII) yang memiliki
kerapatan (density) sangat tinggi dan dengan panjang baris yang
bervariasi. Penggunaan barcode jenis ini ideal pada sistem shiping dan
warehouse management (pengaturan maskapai pelayaran dan
pengelolaan gudang).
Gambar 2.4 Barcode 128
15
3. Interleaved 2 of 5
Yaitu sebuah barcode berbentuk numerik dan memiliki panjang
baris yang bervariasi. Barcode jenis ini digunakan untuk industri dan
laboratorium.
Gambar 2.5 Barcode Interleaved 2 of 5
4. UPC (Universal Product Code)
Adalah sebuah barcode numeric dan memiliki panjang baris yang
tetap (fixed). UPC banyak digunakan untuk pelabelan pada produk
produk berukuran kecil / ritel.
Gambar 2.6 Barcode UPC
B. Barcode 2 Dimensi
Barcode 2 dimensi, lebih canggih dibanding Linear Code karena bisa memuat
ratusan digit karakter dan tampilannya pun berbeda dengan Linear Code. Pada
16
barcode 2 dimensi, informasi / data yang besar dapat disimpan dalam ruang
(space) yang kecil. Contoh barcode 2 dimensi yaitu PDF417 yang dapat
menyimpan lebih dari 2000 karakter dalam sebuah space 4’.
Gambar 2.7 Barcode PDF 417
Saat ini barcode 2 dimensi banyak digunakan diperusahaan manufaktur
dalam sekala besar. Penggunaan barcode 2 dimensi lebih efisien karena ukuran
label barcode lebih kecil dibanding barcode linier namun daya simpannya lebih
banyak. Namun harga scanner barcode (barcode reader) 2 dimensi masih
terbilang mahal untuk saat ini.
Quick Response Code (QR Code)
Quick Response Code sering di sebut Qr Code atau kode QR adalah semacam
simbol dua dimensi yang dikembangkan oleh Denso Wave yang merupakan anak
perusahaan dari Toyota sebuah perusahaan Jepang pada tahun 1994. Tujuan dari
Qr Code ini adalah untuk menyampaikan informasi secara cepat dan juga
mendapat tanggapan secara cepat. Pada awalnya Qr Code digunakan untuk
pelacakan bagian kendaraan untuk manufacturing. Namun sekarang, telah
digunakan ntuk komersil yang ditujukan pada pengguna telepon seluler. Qr Code
adalah perkembangan dari barcode atau kode batang yang hanya mampu
menyimpan informasi secara horizontal sedangkan QR Code mampu menyimpan
informasi lebih banyak, baik secara horizontal maupun vertikal.
17
Gambar 2.8 Contoh QR Code
QR Code biasanya berbentuk persegi putih kecil dengan bentuk geometris
hitam (dapat dilihat di gambar 2.8), meskipun sekarang banyak yang telah
berwarna dan digunakan sebagai brand produk. Informasi yang dikodekan dalam
QR Code dapat berupa URL, nomor telepon, pesan SMS, V-Card, atau teks
apapun (Ashford,2010). QR Code telah mendapatkan standarisasi internasional
SO/IEC18004 dan Jepang JIS-X-0510 (Denso, 2011).
A. Anatomi Qr Code
Beberapa penjelasan anatomi Qr Code Menurut Ariadi (2011) antara lain :
1. Finder Pattern berfungsi untuk identifikasi letak Qr Code.
2. Format Information berfungsi untuk informasi tentang error correction
level dan mask pattern.
3. Data berfungsi untuk menyimpan data yang dikodekan.
4. Timing Pattern merupakan pola yang berfungsi untuk identifikasi
koordinat pusat Qr Code, berbentuk modul hitam putih.
5. Alignment Pattern merupakan pola yang berfungsi memperbaiki
penyimpangan Qr Code terutama distorsi non linier.
6. Version Information adalah versi dari sebuah Qr Code.
18
7. Quiet Zone merupakan daerah kosong di bagian terluar QR Code yang
mempermudah mengenali pengenalan QR oleh sensor CCD.
8. Qr Code version adalah versi dari Qr Code yang digunakan.
Gambar 2.9 Anatoi QR Code
B. Versi QR Code
Versi Qr Code (Sumber: qrcode.com) pendekatan fungsi polynomial dari
benda putar dengan metode eliminasi Gauss Jordan 34 Qr Code dapat
menghasilkan 40 versi yang berbeda dari versi 1 (21 x 21 modul) sampai versi 40
(177 x 177 modul). Tingkatan Versi Qr Code 1 dan 2 berbeda 4 modul berlaku
sampai dengan versi 40. Setiap versi memiliki konfigurasi atau jumlah modul
yang berbeda. Modul ini mengacu pada titik hitam dan putih yang membentuk
suatu QR Code. Setiap versi QR Code memiliki kapasitas maksimum data, jenis
karakter dan tingkat koreksi kesalahan. Jika Jumlah data yang ditampung banyak
maka modul yang yang akan diperlukan dan menjadikan Qr Code menjadi lebih
besar (Denso, 2011).
Gambar 2.10 Versi QR Code
19
Sumber : Jurnal J. Math. And Its Appl. ISSN : 1829-605X. Vol. 13, No. 2,
Nopember 2016, 31-44 diakses pada tanggal 03 April 2018.
Barcode Scanner
Gambar 2.11 Contoh Barcode Scanner Android
Barcode reader / scanner adalah perangkat untuk membaca kode-kode garis
visual barcode. Hanya dengan menyapukan segaris sinar laser, ia dengan cepat
membaca fragmen terang gelap pada barcode yang tercetak di kertas dengan
sangat cepat dan akurat. Pada perkembangan selanjutnya, sinar laser yang
dipancarkan tidak hanya sebentuk garis saja tapi berupa kombinasi pola yang
rumit sehingga mampu membaca barcode dari sudut manapun. Ada beberapa
model barcode scanner antar lain :
1. Mobile Barcode Scanner
Gambar 2.12 Mobile Scanner in Smartphone
20
Barcode scanner model ini merupakan scanner yang built-in pada perangkat
mobile (pada awalnya untuk PDA).Tetapi pada perkembangannya, scanner model
ini juga dipasang untuk beberapa merek handphone.
2. Pen Scanner
Gambar 2.13 Pen Scanner
Barcode scanner model ini berbentuk pena dihubungkan dengan kabel dan
memiliki konektor langsung pada komputer, baik USB, PS2 maupun konektor
serial pada model lama (Wahyono 2010, hal :57).
3. Slot Reader
Gambar 2.14 Slot Reader
Mesin pembaca barcode jenis ini digunakan untuk membaca label barcode
yang dipasang pada kartu-kartu tertentu. Contoh kartu yang banyak menggunakan
slot reader ini adalah kartu pegawai yang diimplementasikan pada sistem absensi.
21
Jadi untuk melakukan absensi, pegawai yang bersangkutan cukup menggosokkan
kartunya (yang telah ditempel label barcode) pada mesin ini. Contoh penerapan
lain model ini adalah penggunaan barcode pada kartu mahasiswa untuk
melakukan log ketika proses registrasi mata kuliah, peminjaman buku di
perpustakaan dan sebagainya.
Beberapa karakteristik model ini antara lain adalah slot reading (mampu
membaca dengan modegesek), shock proffing (mampu melewati test ketahanan
jatuh pada ketinggian 1 meter), futuristic design (desain lebih kokoh) dan optional
interface yang tersedia baik dalam interface PS2/KBW maupun USB (Wahyono
2010, hal : 57-58).
4. Scanner Genggam (Handheld)
Gambar 2.15 Barcode Scanner Handheld
Seperti namanya, barcode scanner model ini memiliki gagang untuk
pegangan tangan seperti pada gambar di bawah ini. Dalam pemakaiannya,
operator yang ingin membaca sebuah label barcode harus memegang barcode
scanner, kemudian mengarahkannya ke kode barcode pada produk yang
bersangkutan (Wahyono 2010, hal:58).
22
Di samping harus mengarahkannya ke kode barcode produk bersangkutan,
pengguna harus menekan sebuah tombol pada barcode scanner untuk
menembakkan laser. Penembakan laser tersebut akan membuat mesin melakukan
proses scanning dan menterjemahkan kode ke dalam teks yang diinginkan
(Wahyono 2010,hal : 59).
5. Stationery Scanner
Gambar 2.16 Stationery Scanner
Scanner model ini dilengkapi dengan stand ”dudukan” yang dapat diletakkan
secara tetap pada tempat sesuai kebutuhan. Pengguna stand ini tentu akan
membuat tatanan lebih rapi. Selain itu pengguna tidak perlu repot-repot
memegang scanner pada saat membaca barcode, tetapi cukup melewatkan barang
yang ada label barcode di depan scanner (Wahyono2010, hal : 59).
6. Fixed Position Scanner
Gambar 2.17 Fixed Position Scanner in Industry
23
Barcode jenis ini dipasang tetap pada posisi tertentu agar dapat membaca
barcode scanner secara tepat. Biasanya digunakan untuk industri, karena scanner
akan mengidentifikasi produk selama proses manufacture. Pemasangan barcode
model ini mirip dengan pemasangan kamera CCTV yang diletakkan pada tempat-
tempat strategis dengan maksud mengontrol barang-barang yang lewat di
depannya (Wahyono 2010, hal : 60).
Android
Menurut Nasruddin Safaat H (Pemrograman aplikasi mobile smart phone dan
tablet PC berbasis android 2012:1) “android adalah sebuah sistem operasi pada
handphone yang bersifat terbuka dan berbasis pada sistem operasi Linux. Android
bisa digunakan oleh setiap orang yang ingin menggunakannya pada perangkat
mereka. Android menyediakan platform terbuka bagi para pengembang untuk
menciptakan aplikasi mereka sendiri yang akan digunakan untuk bermacam
peranti bergerak. Awalnya, Google Inc. membeli Android Inc., pendatang baru
yang membuatperanti lunak untuk ponsel. Kemudian untuk mengembangkan
Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan
perantikeras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel,
Motorola, Qualcomm, T-Mobile, dan Nvidia.”
Pada saat perilisan perdana Android, 5 November 2007, Android bersama
Open Handset Alliance menyatakan mendukung pengembangan standar terbuka
pada perangkat seluler. Dilain pihak, Google merilis kode–kode android di bawah
lisensi Apache, sebuah lisensi perangkat lunak dan standar terbuka perangkat
seluler.
24
A. Kelebihan Android
1. Multitasking – kalau anda pernah merasakan keunggulan dari symbian yang
bisa membuka beberapa aplikasi sekaligus, begitu juga android yang mampu
membuka beberapa aplikasi sekaligus tanpa harus menutup salah satunya.
2. Kemudahan dalam notifikasi – setiap ada SMS, Email, atau bahkan artikel
terbaru dari RSS Reader, akan selalu ada notifikasi di Home Screen ponsel
android, tak ketinggalan lampu LED Indikator yang berkedip-kedip, sehingga
anda tidak akan terlewatkan satu SMS, Email ataupun misscall sekalipun.
3. Akses mudah terhadap ribuan aplikasi android lewat google android app
market – kalau anda gemar install aplikasi ataupun games, lewat google
android app market anda bisa mendownload berbagai aplikasi dengan gratis.
Ada banyak ribuan aplikasi dan games yang siap untuk anda download di
ponsel android.
4. Pilihan ponsel yang beranekaragam – bicara ponsel android, akan terasa beda
dibandingkan dengan ios, jika ios hanya terbatas pada iPhone dari Apple,
maka android tersedia di ponsel dariberbagai produsen, mulai dari Sony
Ericsson, Motorola, HTC sampai Samsung. Dan setiap pabrikan ponsel pun
menghadirkan ponsel Android dengan gaya masing-masing, seperti Motorola
dengan Motoblur-nya, Sony Ericsson dengan TimeScape-nya. Jadi Anda bisa
leluasa memilih ponsel android sesuai dengan merk favorite.
5. Bisa menginstal ROM yang dimodifikasi – tak puas dengan tampilan standar
android, jangan khawatir ada banyak Costum ROM yang bisa anda pakai di
ponsel Android.
25
6. Widget – benar sekali, dengan adanya Widget di homescreen, anda bisa
dengan mudah mengakses berbagai setting dengan cepat dan mudah.
7. Google Maniak – kelebihan android lainnya jika anda pengguna setia layanan
Google mulai dari Gmail sampai Google Reader, ponsel android telah
terintegrasi dengan layanan Google, sehingga anda bisa dengan cepat
mengecek email dari Gmail.
B. Kelemahan Android
1. Koneksi internet yang terus menerus – kebanyakan ponsel berbasis sistem ini
memerlukan koneksi internet yang simultan alias terus menerus aktif.
Koneksi internet GPRS selalu aktif etiap waktu, itu artinya anda harus siap
berlangganan paket GPRS yang sesuai dengan kebutuhan.
2. Iklan – aplikasi di ponsel android memang bisa didapatkan dengan mudah
dan gratis, namun konsekuensinya di setiap aplikasi tersebut, akan selalu
iklan yang terpampang, entah itu bagian atas atau bawah aplikasi.
Gambar 2.18 Simbol Android
Aplikasi
Menurut Nazrudin Safaat H (2012 : 9) “perangkat lunak aplikasi adalah suatu
subkelas perangkat lunak komputer yang memanfaatkan kemampuan komputer
langsung untuk melakukan suatu tugas yang diinginkan pengguna.”
26
Biasanya dibandingkan dengan perangkat lunak sistem yang
mengintegrasikan berbagai kemampuan komputer, tapi tidak secara langsung
menerapkan kemampuan tersebut untuk mengerjakan suatu tugas yang
menguntungkan pengguna.
Contoh utama perangkat lunak aplikasi adalah pengolah kata, lembar kerja,
dan pemutar media. Beberapa aplikasi yang digabung bersama menjadi suatu
paket kadang disebut sebagai suatu paket atau suite aplikasi (application suite).
Contohnya adalah Microsoft Office dan Open Office.org, yang
menggabungkan suatu aplikasi pengolah kata, lembar kerja, serta beberapa
aplikasi lainnya. Aplikasi-aplikasi dalam suatu paket biasanya memiliki
antarmuka pengguna yang memiliki kesamaan sehingga memudahkan pengguna
untuk mempelajari dan menggunakan setiap aplikasi.
Sering kali, aplikasi ini memiliki kemampuan untuk saling berinteraksi satu
sama lain sehingga menguntungkan pengguna. Contohnya, suatu lembar kerja
dapat dibenamkan dalam suatu dokumen pengolah kata walaupun dibuat pada
aplikasi lembar kerja yang terpisah.
Android SDK (Software Development Kit)
Menurut Safaat (2011), “android SDK adalah tools API (Application
Programming Interface) yang diperlukan untuk mulai mengembangkan aplikasi
pada platform Android menggunakan bahasa pemrograman Java.” Android
memberi kesempatan untuk membuat aplikasi yang dibutuhkan, namun bukan
merupakan aplikasi bawaan Handphone/Smartphone. Beberapa fitur-fitur Android
yang paling penting adalah :
27
1. Framework aplikasi yang mendukung penggantian komponen dan reusable.
2. Mesin Virtual Dalvik dioptimalkan untuk perangkat mobile.
3. Integrated browser berdasarkan engine open source WebKit.
4. Grafis yang dioptimalkan dan didukung oleh libraries grafis2D, grafis 3D
berdasarka spesifikasi opengl ES 1,0 (Opsional akselerasi hardware).
5. SQLite untuk penyimpanan data (database).
6. Media Support yang mendukung audio, video, dan gambar (MPEG4, H.264,
MP3, AAC, AMR, JPG, PNG, GIF), GSM Telephony (tergantung hardware).
7. Bluetooth, EDGE, 3G, dan WiFi (tergantung hardware)
8. Kamera, GPS, kompas, dan accelerometer (tergantung hardware).
9. Lingkungan development yang lengkap dab kaya termasuk perangkat
emulator, tools untuk debugging, profil dan kinerja memori, dan plugin untuk
IDE Eclipse.
Android Package (Apk)
Berkas paket aplikasi Android (Application Package File, APK) adalah
format berkas yang digunakan untuk mendistribusikan dan memasang software
dan middleware ke ponsel dengan sistem operasi Android, mirip dengan paket
MSI pada Windows atau Deb pada OS Debian. Apk umumnya digunakan untuk
menyimpan sebuah aplikasi atau program yang akan dijalankan pada perangkat
Android. Apk pada dasarnya berupa compress file seperti zip file, karena berisi
dari kumpulan file. Apk dapat diperoleh melalui berbagai metode, seperti
menginstall sebuah aplikasi melalui play store, download dari sebuah situs web
kemudian anda install secara manual, atau membuat dan mengembangkan
sendiri”.
28
Gambar 2.19 Simbol Apk
Sumber : https://id.wikipedia.org/wiki/APK_(format_berkas) diakses pada
tanggal 3 April 2018.
Android Emulator
Android Emulator menyimulasikan sebuah perangkat dan menampilkannya
pada komputer anda. Itu memungkinkan anda membuat prototipe,
mengembangkan, dan menguji aplikasi android tanpa menggunakan perangkat
keras. Emulator mendukung ponsel android, tablet, android wear, dan perangkat
android TV. Dilengkapi dengan tipe perangkat yang telah ditentukan sehingga
anda bisa memulai dengan cepat, dan dapat menentukan perangkat dan skin
emulator anda sendiri.
Android Emulator memiliki banyak fitur, cepat, dan kuat. Itu bisa
mentransfer informasi lebih cepat dibandingkan dengan menggunakan perangkat
keras yang tersambung, mempercepat proses pengembangan. Fitur multi-core
memungkinkan emulator untuk memanfaatkan prosesor multi-core pada komputer
pengembangan untuk semakin meningkatkan kinerja emulator.
29
Gambar 2.20 Contoh Android Emulator
Anda bisa meluncurkan sebuah aplikasi pada emulator ketika menjalankan
proyek, atau anda bisa menyeret file APK ke emulator untuk memasangnya. Sama
seperti perangkat keras, setelah aplikasi dipasang pada perangkat virtual, aplikasi
tersebut akan tetap ada sampai anda mencopot pemasangan atau menggantinya.
Jika diperlukan, anda bisa menguji bagaimana beberapa aplikasi, seperti aplikasi
anda sendiri atau sistem, bekerja sama satu dengan yang lain.
Sumber : https://developer.android.com/studio/run/emulator.html?hl=id#about
diakses pada tanggal 03 April 2018.
Database
Database merupakan salah satu komponen yang penting dalam sistem
informasi, karena merupakan basis dalam menyediakan informasi bagi para
pemakai. Pangkalan data atau basis data (database) adalah kumpulan informasi
30
yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa
menggunakan suatu program komputer untuk memperoleh informasi dari basis
data tersebut. Berikut ini adalah pengertian database data menurut para ahli :
1. Menurut Kustiyaningsih (2011:146), “Database adalah struktur penyimpanan
data. Untuk menambah, mengakses dan memproses data yang disimpan
dalam sebuah database komputer, diperlukan sistem manajemen database
seperti MySQL Server”
2. Menurut Anhar (2010:45), “Database adalah sekumpulan tabel-tabel yang
berisi data dan merupakan kumpulan dari field atau kolom. Struktur file yang
menyusun sebuah database adalah Data Record dan Field”
3. Menurut Martono (2009:32), “Database adalah sebagai kumpulan data dari
penempatan tenaga kerja yang saling terikat dan memperngaruhi sesuai
dengan tingkat kepentingannya sehingga data tersebut terintegrasi dan
independence”
4. Menurut Raharjo (2011:3), “Database adalah kumpulan data yang terintegrasi
dan diatur sedemikian rupa sehingga data tersebut dapat dimanipulasi,
diambil dan dicari secara cepat”
5. Menurut Kadir (2010:3), “Database adalah suatu wadah untuk mengelola
data. Sebuah database melibatkan beberapa table.”
6. Menurut Fathansyah (2012:2), “Database adalah kumpulan file/table/arsip
yang saling berhubungan yang disimpan dalam media penyimpanan
elektronis.”
7. Menurut Yakub (2012:51), “Basis data adalah sebagai markas atau gudang
tempat bersarang atau berkumpul dalam suatu database”
31
8. Menurut Sutarman (2012:15), “Database adalah sekumpulan file yang saling
berhubungan dan terorganisasi atau kumpulan record-record yang
menyimpan data dan hubungan diantaranya”
9. Menurut Ladjamudin (2013:129), “Database adalah sekumpulan data store
(bisa dalam jumlah yang sangat besar) yang tersimpan dalam magnetic disk,
ofical disk, magnetic drum, atau media penyimpanan sekunder lainnya”
Berdasarkan beberapa pendapat ahli yang dikemukakan di atas dapat ditarik
kesimpulan bahwa database adalah sekelompok data yang mempunyai ciri-ciri
khusus dan dapat dikelola sedemikian rupa sehingga bisa menghasilkan sebuah
format data yang baru.
MySql
Menurut Raharjo (2012 : 21), “MySql merupakan RDBMS (atau server
database) yang mengelola database dengan cepat menampung dalam jumlah
sangat besar dan dapat diakses oleh banyak user”.
Menurut Kadir (2008 : 2), “MySql adalah sebuah software open source yang
digunakan untuk membuat sebuah database.
Berdasarkan pendapat yang dikemukakan di atas dapat ditarik kesimpulan
bahwa MySql adalah suatu software atau program yang digunakan untuk membuat
sebuah database yang bersifat open source.
Gambar 2.21 Simbol MySql
32
PostgreSQL / PostGIS
PostGIS adalah sebuah database spasial yang terdapat pada server
PostgreSQL yang didukung oleh semua fungsi dan objek yang sudah
didefenisikan dalam openGIS “Simple Features for SQL specification”. Dengan
menggunakan fungsi spasial yang ada dalam PostGIS kita dapat melakukan
analisa spasial dan query spasial. Seperti Oracle Spatial, DB2 Spatial, dan Server
Spatial. PostGIS menambahkan kemampuan kepada PostgreSQL untuk dapat
melakukan pengolahan data spasial. PostGIS dapat juga dinamakan sebagai
PostgreSQL Spatial, yang mempunyai kepemilikan terhadap spatial database
extension (Ramsey, 2000).
PostGIS didesain untuk mengimplementasikan lingkungan SQL92 with
Geometry Types pada database PostgreSQL. PostGIS versi 0.1 di-release tahun
2001 dengan dukungan pada tipe data objek spasial dan metoda pengindeksan
objek spasial menggunakan GiST. Perkembangan lebih lanjut adalah 29
implementasi spesifikasi OpenGIS Consortium yang lebih baik. Secara singkat
fasilitas PostGIS adalah sebagai berikut (Ramsey, 2000):
1. Definisi Abstract Data Types untuk objek spasial sesuai spesifikasi OpenGIS
Consortium.
2. Dukungan terhadap format WKT (Well Known Text) dan WKB (Well Known
Binary).
3. Metoda pengindeks-an GIST yang sesuai untuk objek spasial.
4. Dukungan akses aplikasi melalui JDBC Sejak versi 0.5 PostGIS merupakan
salah satu sumber data untuk perangkat lunak MapServer (University of
Minnesota).
33
Sejak saat itu, data PostGIS dapat dilihat secara visual dengan menggunakan
MapServer. Versi terakhir menambahkan dukungan transformasi koordinat
melalui pustaka PROJ dan dukungan lengkap sistem referensi spasial berdasarkan
EPSG (Ramsey, 2000).
Gambar 2.22 Simbol PostgreSQL
Android Studio
Android Studio adalah lingkungan pengembangan terpadu - Integrated
Development Environment (IDE) untuk pengembangan aplikasi android,
berdasarkan IntelliJ IDEA . Selain merupakan editor kode IntelliJ dan alat
pengembang yang berdaya guna, Android Studio menawarkan fitur lebih banyak
untuk meningkatkan produktivitas saat membuat aplikasi android, misalnya:
1. Sistem versi berbasis Gradle yang fleksibel
2. Emulator yang cepat dan kaya fitur
3. Lingkungan yang menyatu untuk pengembangan bagi semua perangkat
Android
4. Instant Run untuk mendorong perubahan ke aplikasi yang berjalan tanpa
membuat APK baru
34
5. Template kode dan integrasi GitHub untuk membuat fitur aplikasi yang sama
dan mengimpor kode contoh
6. Alat pengujian dan kerangka kerja yang ekstensif
7. Alat Lint untuk meningkatkan kinerja, kegunaan, kompatibilitas versi, dan
masalah-masalah lain
8. Dukungan C++ dan NDK
9. Dukungan bawaan untuk Google Cloud Platform, mempermudah
pengintegrasian Google Cloud Messaging dan App Engine
Gambar 2.23 Simbol Android Studio
Sumber : https://developer.android.com/studio/intro/index.html?hl=id diakses
pada tanggal 03 April 2018.
Hypertext Markup Language (HTML)
1. Lia Kuswayatno, HTML merupakan halaman yang berada pada suatu situs
internet atau web. HTML merupakan metode yang menautkan (link) satu
dokumen ke dokumen lain melalui teks.
2. Deris Setiaan, HTML merupakan framework internet, hampir semua situs web
yang ada menggunakan HTML untuk menampilkan teks, grafik, suara, dan
animasinya.
35
3. Diar Puji Oktavian. HTML adalah suatu bahasa yang dikenali oleh web
browser untuk menampilkan informasi dengan lebih menarik dibandingkan
dengan tulisan teks biasa (plain text).
4. Menurut Arief (2011c:23), “HTML (HyperText Markup Language)
merupakan salah satu format yang digunakan dalam pembuatan dokumen dan
aplikasi yang berjalan dihalaman web”.
5. Menurut Sibero (2011c:19) “Hyper Text Markup Language atau HTML
adalah bahasa yang digunakan pada dokumen web sebagai bahasa untuk
pertukaran dokumen web”. Dokumen HTML terdiri dari komponen yaitu tag,
elemen dan atribut.
a) Tag adalah tanda awal < dan tanda akhir > yang digunakan sebagai
pengapit suatu elemen.
b) Elemen adalah nama penanda yang diapit oleh tag yang memiliki fungsi
dan tujuan tertentu pada dokumen HTML. Elemen dapat memiliki elemen
anak dan juga nilai. Elemen anak adalah suatu elemen yang berada
didalam elemen pembuka dan elemen penutup induknya. Nilai yang
dimaksud adalah suatu teks atau karakter yang berada diantara elemen
pembuka dan elemen penutup.
c) Atribut adalah properti elemen yang digunakan untuk mengkhususkan
suatu elemen. Elemen dapat memiliki atribut yang berbeda pada tiap
masing-masingnya.
6. Menurut Astamal (2006:8), HTML (Hyper Text Markup Language) adalah
simbol-simbol atau tag-tag yang dituliskan dalam sebuah file yang
dimaksudkan untuk menampilkan halaman pada web browser. Tag-tag
36
HTML selalu diawali dengan dan diakhiri dengan dimana x tag HTML seperti
b, i, u dan sebagainya. Namun ada juga tag yang tidak diakhiri dengan tanda.
Dengan menggunakan perintah-perintah HTML memungkinkan user untuk
melakukan fungsi-fungsi berikut ini:
a) Menentukan ukuran dan alur teks
b) Mengintegrasikan gambar dengan teks (in-line)
c) Membuat links
d) Mengintegrasikan file audio dan video
e) Membuat form interaktif
HTML lebih menekankan pada penggambaran komponen-komponen struktur
dan formatting dl dalam halaman web daripaada menentukan penampilannya.
Sedangkan web browser digunakan untuk mengiterpretasikan perintah-perintah
HTML. Salah satu hal penting tentang eksistensi HTML adalah tersedianya lingua
franca (bahasa komunikasi). HTML tidak didesain untuk dekstop publishing,
tetapi didesain sebagai bahasa pengkodean untuk World Wide Web. HTML
menawarkan beberapa kemampuan untuk menampilakn dokumen memalui
berbagai macam sistem komputer.
Penentuan tampilan halaman web tergantung pada web browser yang
digunakan. Penentuan kondisi oleh HTML yang akan digunakan. Penentuan
kondisi oleh HTML menggambarkan keterbatasan kemampuan komputer yang
berbeda, baik dari segi grafikal sampai teks.
37
Gambar 2.24 Simbol Html
Personal Home Page (PHP)
PHP merupakan singkatan rekursif (akronim berulang) dari PHP Hypertext
Preprocessor. PHP adalah bahasa pemrograman script yang paling banyak
dipakai saat ini atau dalam kata lain bisa diartikan sebuah bahasa pemrograman
web yang bekerja di sisi server ( server side scripting) yang dapat melakukan
konektifitas pada database yang di mana hal itu tidak dapat dilakukan hanya
dengan menggunakan sintaks-sintaks HTML biasa (Anugrah, 2010). PHP banyak
dipakai untuk memrogram situs web dinamis, walaupun tidak tertutup
kemungkinan digunakan untuk pemakaian lain (Triswansyah, 2009).
Gambar 2.25 Pengaksesan database melalui web menggunakan PHP
Java
Java adalah bahasa pemrograman berorientasi objek murni yang dibuat
berdasarkan kemampuan-kemampuan terbaik bahasa pemrograman objek
38
sebelumnya (C++, Ada, Simula). Java diciptakan oleh James Gosling, developer
dari Sun Microsystems pada tahun 1991 (Hakim dan Sutarto, 2009).
Gambar 2.26 Simbol Java
Entity Relationship Diagram (ERD)
Menurut Al-Bahra (2005:142)“ diagram elasi entitas merupakan suatu model
jaringan yang menggunakan susunan data yang disimpan dalam sistem secara
abstrak.” Definisi Entity Relationship Diagram (ERD). Biasanya ERD ini
digunakan oleh professional sistem untuk berkomunikasi dengan pemakai
eksekutif tingkat tinggi dalam suatu organisasi (seperti wakil presiden direkturdan
manajer yang tidak tertarik pada pelaksanaan operasi-operasi sistem sehari-hari).
ERD juga menguntungkan bagi professional sistem, karena ERD memperlihatkan
hubungan antara data store pada DFD. Hubungan ini tidak terlihat pada DFD,
karena DFD hanya memusatkan perhatian pada fungsi-fungsi sistem bukan pada
data yang digunakan.
39
Menurut Sutanta (2011:91) dalam bukunya yang berjudul "Basis Data Dalam
Tinjauan Konseptual" menjelaskan bahwa "Entity Relationship Diagram (ERD)
merupakan suatu model data yang dikembangkan berdasarkan objek."
Sedangkan Menurut Mata-Toledo dan Cushman (2007:139) Mendefenisikan
"Entity Relationship Diagram (ERD) merupakan representasi grafis dari logika
database dengan menyertakan deskripsi detail mengenai seluruh entitas (entity),
hubungan (relationship), dan batasan (constraint)."
Menurut Brady dan Loonam (2010), Entity Relationship diagram (ERD)
"merupakan teknik yang digunakan untuk memodelkan kebutuhan data dari suatu
organisasi, biasanya oleh Sistem Analis dalam tahap analisis persyaratan proyek
pengembangan sistem."
Komponen Entity Relationship Diagram (ERD) :
Masih dalam buku Edhy Sutanta (2011:91) menjabarkan Komponen Entity
Relationship Diagram adalah sebagai berikut :
1. Entitas-Entitas merupakan suatu objek yang dapat dibedakan dari lainnya
yang dapat diwujudkan dalam basis data. Objek dasar dapat berupa orang,
benda, atau hal yang keterangannya perlu disimpan didalam basis data. Untuk
menggambarkan sebuah entitas digunakan aturan sebagai berikut :
a) Entitas dinyatakan dengan simbol persegi panjang.
b) Nama entitas dituliskan didalam simbol persegi panjang.
c) Nama entitas berupa kata benda, tunggal.
d) Nama entitas sedapat mungkin menggunakan nama yang mudah
dipahami dan dapat menyatakan maknanya dengan jelas.
40
2. Atribut-atribut merupakan keterangan-keterangan yang terkait pada sebuah
entitas yang perlu disimpan dalam basis data. Atribut berfungsi sebagai
penjelas pada sebuah entitas. Untuk menggambarkan atribut digunakan aturan
sebagai berikut :
a) Atribut digambarkan dengan simbol ellips.
b) Nama atribut dituliskan didalam simbol ellips.
c) Nama atribut merupakan kata benda, tunggal.
3. Relasi-relasi merupakan hubungan antara sejumlah entitas yang berasal dari
himpunan entitas yang berbeda. Aturan penggambaran relasi adalah sebagai
berikut :
a) Relasi dinyatakan dengan simbol belah ketupat.
b) Nama relasi dituliskan didalam simbol belah ketupat.
c) Nama relasi berupa kata kerja aktif.
Komponen pada entity relationship diagram berupa himpunan entitas dan
himpunan relasi. Komponen akan ditransformasikan menjadi tabel-tabel. Atribut
pada diagram entity relationship dinyatakan sebagai field dari tabel.
Dari beberapa pengertian diatas, dapat disimpulkan bahwa ERD merupakan
gambaran grafis dari suatu model data yang menyertakan deskripsi detail dari
seluruh entitas (entity), hubungan (relationship), dan batasan (constraint) untuk
memenuhi kebutuhan sistem analis dalam menyelesaikan pengembangan sebuah
sistem.
41
Gambar 2.27 Komponen-Komponen pada ERD
Data Flow Diagram (DFD)
Menurut Whitten (2004, p344), data flow diagram (DFD) merupakan alat
yang menggambarkan aliran data melalui sistem dan pekerjaannya atau proses
yang dilakukan oleh sistem.
Dalam pembuatan DFD, terdapat levelisasi yang bertujuan untuk
menghindari aliran data yang rumit. Levelisasi dimulai dari dengan tingkatan
tertinggi dan kemudian diuraikan ke dalam bentuk yang lebih rinci. Tingkatan
tersebut terdiri dari :
a) Diagram konteks (Context Data Flow Diagram) Menurut Whitten (2004,
p372), context data flow diagram merupakan sebuah model proses yang
digunakan untuk mendokumentasikan ruang lingkup dari sebuah sistem.
b) Diagram nol (Level-0 Diagram) Menurut Hoffer (1996, p318), level-0
diagram merupakan diagram aliran data yang menggambarkan sebuah major
processes, data flow, dan data stores dari sebuah sistem yang berada pada
42
tingkatan tertinggi untuk detailnya.
c) Diagram rinci Diagram ini menggambarkan rincian dari proses yang terdapat
pada tingkatan sebelumnya.
Tabel 2.1 Komponen-Komponen pada DFD
Simbol Simbol
Process
Data Store
Source/Sink
Data Flow
Setiap simbol memiliki aturan tersendiri dalam penggunaannya, adapun
aturan tersebut adalah:
Process
1. Tidak ada proses yang hanya memiliki output. Jika objek hanya memiliki
output, maka itu adalah source.
2. Tidak ada proses yang hanya memiliki input. Jika objek hanya memliki input,
maka itu adalah sink.
3. Proses dilabeli dengan sebuah frase kata kerja.
43
Data Store
1. Data tidak dapat bergerak langsung dari satu data store menuju data store
yang lain. Data harus bergerak melalui proses.
2. Data tidak dapat bergerak langsung dari source menuju data store. Data harus
bergerak melalui proses dimana data diterima dari source untuk ditaruh di
data store.
3. Data tidak dapat bergerak langsung menuju sink dari data store. Data harus
bergerak melalui proses.
4. Data store dilabeli dengan sebuah frase kata benda.
Source/Sink
1. Data tidak dapat bergerak langsung dari source menuju sink . Data harus
bergerak melalui proses, selama data tersebut berhubungan dengan sistem.
Jika data tidak berhubungan dengan proses, maka aliran data tidak perlu
ditampilkan pada DFD.
2. Source/sink dilabeli dengan sebuah frase kata benda.
Data Flow
1. Data flow hanya memiliki satu arah antar simbol.
2. Sebuah cabang pada data flow berarti data yang sama dari satu lokasi menuju
dua atau lebih proces, data store, source/sink.
3. Sebuah penggabungan berarti data yang sama berasal dari dua atau lebih
proces, data store, source/sink menuju lokasi yangsama.
4. Data flow tidak dapat bergerak ke proses asalnya (rekursif). Harus ada satu
proses yang menangani data flow, menghasilkan data flow, dan
mengembalikan data flow ke proses asal.
44
5. Data flow menuju data store berarti memperbarui (menghapus atau
mengubah).
6. Data flow dari data store berarti mengambil atau menggunakan.
7. Data flow dilabeli dengan sebuah frase kata benda. Lebih dari satu frase kata
benda dapat muncul pada sebuah panah data flow, selama semuanya bergerak
dalam satu paket.
Flowchart
Menurut Saputra (2014:14) menjelaskan bahwa flowchart adalah suatu
diagram yang menggambarkan alur kerja dari suatu sistem. Flowchart disusun
dengan simbol sebagai alat bantu yang menggambarkan proses didalam program.
Menurut Indrajani (2015:36), “Flowchart adalah penggambaran secara grafik
dari langkah-langkah dan urutan prosedur suatu program.”
Menurut Pahlevy (2010) “Flowchart merupakan sebuah gambaran dalam
bentuk diagram alir dari algoritma-algoritma dalam suatu program, yang
menyatakan arah alur program tersebut”.
Menurut Jogiyanto (2005) berpendapat bahwa Bagan alir (flowchart) adalah
bagan (chart) yang menunjukkan alir atau arus (flow) di dalam program atau
prosedur sistem secara logika.
Menurut Krismiaji (2010) dalam bukunya berjudul Sistem Informasi dan
Akutansi, Krismiaji menyebutkan bahwa bagan alir merupakan teknik analitis
yang digunakan untuk menjelaskan aspek-aspek sistem informasi secara jelas,
tepat dan logis.
45
Sariadin Siallagan (2009) berpendapat bahwa Flowchart adalah bagan atau
suatu diagram alir yang mempergunakan simbol atau tanda untuk menyelesaikan
suatu masalah.
Tabel 2.2 Komponen-Komponen pada Flowchart
Terminal Point Symbol / Simbol Titik Terminal
menunjukkan permulaan (start) atau akhir (stop) dari suatu
proses.
Flow Direction Symbol / Simbol Arus adalah simbol yang
digunakan untuk menghubungkan antara simbol yang satu
dengan simbol yang lain (connecting line). Simbol ini juga
berfungsi untuk menunjukkan garis alir dari proses.
Processing Symbol / Simbol Proses digunakan untuk
menunjukkan kegiatan yang dilakukan oleh komputer. Pada
bidang industri (proses produksi barang), simbol ini
menggambarkan kegiatan inspeksi atau yang biasa dikenal
dengan simbol inspeksi
Decision Symbol / Simbol Keputusan merupakan simbol
yang digunakan untuk memilih proses atau keputusan
berdasarkan kondisi yang ada. Simbol ini biasanya ditemui
pada flowchart program.
Input-Output / Simbol Keluar-Masuk menunjukkan proses
46
input-output yang terjadi tanpa bergantung dari jenis
peralatannya.
Predefined Process / Simbol Proses Terdefinisi merupakan
simbol yang digunakan untuk menunjukkan pelaksanaan
suatu bagian prosedur (sub-proses). Dengan kata lain,
prosedur yang terinformasi di sini belum detail dan akan
dirinci di tempat lain
Connector (On-page)
Simbol ini fungsinya adalah untuk menyederhanakan
hubungan antar simbol yang letaknya berjauhan atau rumit
bila dihubungkan dengan garis dalam satu halaman
Connector (Off-page)
Sama seperti on-page connector, hanya saya simbol ini
digunakan untuk menghubungkan simbol dalam halaman
berbeda. label dari simbol ini dapat menggunakan huruf atau
angka.
Preparation Symbol / Simbol Persiapan merupakan simbol
yang digunakan untuk mempersiapkan penyimpanan di
dalam storage.
Manual Input Symbol digunakan untuk menunjukkan input
data secara manual menggunakan online keyboard.
47
Manual Operation Symbol / Simbol Kegiatan Manual
digunakan untuk menunjukkan kegiatan/proses yang tidak
dilakukan oleh komputer.
Document Symbol
Jika Anda menemukan simbol ini artinya input berasal dari
dokumen dalam bentuk kertas, atau output yang perlu dicetak
di atas kertas.
Multiple Documents
sama seperti document symbol hanya saja dokumen yg
digunakan lebih dari satu dalam simbol ini
Display Symbol
adalah simbol yang menyatakan penggunaan peralatan
output, seperti layar monitor, printer, plotter dan lain
sebagainya
Delay Symbol
sesuai dengan namanya digunakan untuk menunjukkan
proses delay (menunggu) yang perlu dilakukan. Seperti
menunggu surat untuk diarsipkan dll
48
Black Box
Pengujian perangkat lunak (software) menggunakan metode pengujian Black
Box. Pengujian Black Box berfokus kepada persyaratan fungsional perangkat
lunak (software) yang dibuat.
Menurut Rosa A.S dan M. Shalahuddin (2011 : 213) Black Box Testing
(pengujian kotak hitam) yaitu menguji perangkat lunak dari segi spesifikasi
fungsional tanpa menguji desain dan kode program. Pengujian dimaksud untuk
mengetahui apakah fungsi-fungsi, masukan, dankeluaran dari perangkat lunak
sesuai dengan spesifikasi yang dibutuhkan.
Pengujian Black Box dilakukan dengan membuat kasus uji yang bersifat
mencoba semua fungsi dengan memakai perangkat lunak apakah sesuai dengan
spesifikasiyang dibutuhkan. Pengujian Black Box berusaha menemukan kesalahan
dalam kategori sebagai berikut :
1. Fungsi-fungsi yang tidak benar atau hilang
2. Kesalahan interface
3. Kesalahan dalam struktur data atau akses database eksternal
4. Kesalahan kinerja
5. Inisialisasi dan kesalahan terminasi
Menurut Roger S. Pressman (2010), Black Box Testing atau Pengujian Kotak
Hitam atau juga disebut Behavioral Testing, berfokus pada persyaratan fungsional
dari perangkat lunak. Artinya, teknik Black Box Testing memungkinkan untuk
mendapatkan set kondisi masukan yang sepenuhnya akan melaksanakan semua
persyaratan fungsional untuk suatu program.
49
Black Box Testing bukan merupakan alternatif dari pengujian White Box
Testing. Sebaliknya, Black Box Testing adalah pendekatan komplementer yang
mungkin untuk mengungkap kelas yang berbeda dari kesalahan daripada metode
White Box Testing.
White Box
Menurut Pressman (2010, pp. 485), “pengujian White-box atau Glass-box
adalah metode test-case desain yang menggunakan struktur kontrol desain
procedural untuk memperoleh test-case. Dengan menggunakan metode pengujian
white-box, perekayasa system dapat memperoleh test-case yang :
1. Memberikankan jaminan bahwa semua jalur independentpada suatu modul
telah digunakan paling tidak satu kali.
2. Menggunakan semua keputusan logis dari sisi truedan false.
3. Mengeksekusi semua batas fungsi loopsdan batas operasionalnya.
4. Menggunakan struktur internaluntuk menjamin validitasnya.
2.2 PENELITIAN TERDAHULU
a. Penelitian yang dilakukan oleh Rizkysari Meimaharani dari Fakultas Teknik,
Program Studi Teknik Informatika Universitas Muria Kudus (Email:
[email protected]) dan Diana Laily Fakultas Teknik, Program Studi
Sistem Informasi Universitas Muria Kudus (Email: [email protected])
pada tahun 2014 yang berjudul “E-Commerce Goody Bag Spunbond
Menggunakan QR Code Berbasis Web Responsif” menyimpulkan bahwa
menggunakan teknologi QR Code untuk mempermudah pihak Vantacy Shop
dalam pendataan barang masuk dan barang keluar.
Sumber : Jurnal SIMETRIS, Vol 5 No 2 Nopember 2014 ISSN: 2252-4983.
50
b. Penelitian yang dilakukan oleh Bambang Sugiantoro dan Fuad Hasan dari
Teknik Informatika UIN Sunan Kalijaga Yogyakarta Jl Adisucipto
Yogyakarta (E-mail : [email protected]) tahun 2015 yang
berjudul “Pengembangan QR Code Scanner Berbasis Android Untuk Sistem
Informasi Museum Sonobudoyo Yogyakarta”. Penelitian ini menyimpulkan
bahwa Aplikasi QR Code Scanner yang dibangun berbasis Android
menggunakan ZBar Library mempunyai fitur Scanner, Bookmark, tentang
Museum Sonobudoyo, dan menampilkan foto koleksi secara 3D Rotate.
Semua fitur dalam aplikasi ini dapat berjalan dengan baik.
Sumber : Telematika, Vol. 12, No. 02, JULI, 2015, Pp. 134 – 145 ISSN 1829-
667X.
c. Penelitian yang dilakukan oleh Hugeng (Dosen Jurusan Teknik Elektro, FTI
Universitas Trisakti), Muljono (Dosen Jurusan Teknik Elektro, FT
Universitas Tarumanagara ) dan Hery Iskandar (Alumni Jurusan Teknik
Elektro, FT Universitas Tarumanagara) pada tahun 2013 yang berjudul
“Sistem Pendataan Barang Yang Masuk Ke Gudang Secara Otomatis
Menggunakan Media Barcode” yang menyimpulkan bahwa proses pendataan
barang pada perancangan ini berhasil dengan baik, hal ini terlihat dari
barcode scanner yang dapat menampilkan barcode sesuai dengan yang
terdapat pada barang yang digunakan.
Sumber : JETri, Volume 11, Nomor 1, Agustus 2013, Halaman 95 -106, ISSN
1412-0372.
d. Penelitian yang diilakukan oleh Difana Meilani1, Indah Albani Putri2 dari
Jurusan Teknik Industri, Fakultas Teknik, Universitas Andalas Padang, Jl.
51
Limau Manis, Kecamatan Pauh, Padang, Sumatera Barat 25163 (Email:
[email protected]) tahun 2015 yang berjudul “Perancangan Sistem
Otomasi Barcode dengan Mengevaluasi Kinerja pada Aktivitas Transaksi
Gudang (Studi Kasus: PT. Astra Komponen Indonesia)”. Dari penelitian ini
mereka menyimpulkan bahwa berdasarkan rekapitulasi check sheet yang telah
diamati untuk beberapa aktivitas yang dapat mengganggu aktivitas transaksi,
yang juga akan berdampak pada waktu yang diperlukan operator dalam
mentransaksi barang. Setelah didapatkan waktu standar selanjutnya dilakukan
pemisahan aktivitas kerja yang dapat mengurangi kesalahan-kesalahan.
Aktivitas kerja yang dilakukan oleh operator memiliki dampak yang besar
terhadap aktivitas transaksi yang terjadi pada lantai produksi, perlunya
evaluasi terhadap kinerja operator dapat membantu mengurangi permasalahan
yang terdapat pada lantai produksi.
Sumber : Jurnal Sains, Teknologi dan Industri, Vol. 12, No. 2, Juni 2015, pp.
268 - 277 ISSN 1693-2390 print/ISSN 2407-0939 online.
e. Penelitian yang di lakukan oleh Febrian Wahyutama, Febriliyan Samopa dan
Hatma Suryotrisongko, dari Jurusan Sistem Informasi, Fakultas Teknologi
Informasi, Institut Teknologi Sepuluh Nopember (ITS) Jl. Arief Rahman
Hakim, Surabaya 60111 Indonesia (E-Mail : [email protected]) tahun 2013
yang berjudul “Penggunaan Teknologi Augmented Reality Berbasis Barcode
sebagai Sarana Penyampaian Informasi Spesifikasi dan Harga Barang yang
Interaktif Berbasis Android, Studi Kasus pada Toko Elektronik ABC
Surabaya”. Pada penelitian ini terdapat beberapa kesimpulan, salah satunya
adalah aplikasi ini dapat diterapkan pada perusahaan untuk membantu
52
promosi mereka apabila perusahaan juga mempunyai kebijakan khusus untuk
menyertakan barcode di setiap barang yang ada di gallery serta
menambahkan iklan produk pada aplikasi GiveMeDetails.
Sumber : JURNAL TEKNIK POMITS Vol. 2, No. 3, (2013) ISSN: 2337-3539
(2301-9271 Print).
53
MENGUMPULKAN DATA
MENGANALISA DATA
MENGIDENTIFIKASI MASALAH
MERUMUSKAN MASALAH
MELAKUKAN PERANCANGAN SISTEM
MENGIMPLEMENTASIKAN SISTEM
MELAKUKAN PENGUJIAN HASIL
BAB III
METODOLOGI PENELITIAN
3.1 Kerangka Kerja
Gambar 3.1 Kerangka Kerja Sistem Barcode Scanner
54
a. Melakukan Pengumpulan Data
Langkah awal peneliti akan menjumpai storeman guna mengumpulkan data-
data yang diperlukan dalam pengembangan sistem yang akan di buat. Data-data
tersebut seperti data alur sistem yang sedang berjalan, data kelemahan-kelemahan
sistem yang sedang berjalan serta data kebutuhan akan sistem yang diinginkan
oleh storeman ataupun pihak manajemen store. Disini storeman memberikan
informasi bahwa membutuhkan sebuah sistem pendukung yang dapat membantu
dalam proses transaksi pengeluaran barang (outstock).
b. Menganalisa Data
Berdasarkan dari data yang diperoleh pada tahapan sebelumnya, disini
peneliti akan menganalisa data-data tersebut agar dapat mengidentifikasikan
masalah yang sedang terjadi, menganalisa alur sistem yang sedang berjalan.
c. Mengidentifikasi Masalah
Dari data yang diberikan storeman dan sudah dianalisa, peniliti dapat
mendefenisikan masalah yang terdapat pada manajemen store yaitu kebutuhan
akan sistem pendukung yang dapat membantu memudahkan proses transaksi
pengeluaran barang (outstock).
d. Merumuskan Masalah
Pada tahapan ini peneliti akan merumuskan masalah yang terjadi pada
manajemen store yaitu :
1. Bagaimana merancang Sistem Barcode Scanner berbasis Android yang
dapat meningkatkan efektifitas, pada proses pengeluaran barang
(outstock) di Manajemen Store PT Pelican Mitra Sejati Batam ?
55
2. Bagaimana merancang basis data barang hasil scan serta membuat
koneksi ke pusat penyimpanan data ?
e. Melakukan Perancangan Sistem
1. Membuat QR code.
Pada tahapan ini peneliti akan membuat kode QR sebagai primary key
setiap spare part yang ada. Dari database spare part sebelumnya dengan
berlandaskan part number sebagai key, maka tahapan selanjutnya adalah
pembuatan kode QR sebagai pengenal atau penanda detail-detail spare part
yang ada. Kode QR ini akan di print dan di tempelkan ke spare part agar bisa
dibaca oleh aplikasi barcode scanner berbasis android yang akan dibuat.
Disini peneliti akan mengupdate modul sparepart pada sistem yang ada
dengan bahasa pemograman php.
2. Membuat barcode scanner app.
Setelah kode QR tersebut dibuat maka tahapan selanjutnya adalah
pembuatan aplikasi bacode scanner berbasis android yang nantinya akan
difungsikan sebagai tool atau alat yang dapat membaca kode QR pada spare
part dan menyimpan atau menampung list data spare part yang di scan dalam
satu kali proses. Pembuatan aplikasi android ini menggunakan Android
Studio dengan bahasa pemograman Java.
3. Membuat koneksi data.
Setelah kode QR dan barcode scanner app selesai dibuat maka tahapan
akhirnya adalah bagaimana membuat koneksi dari database sistem barcode
scanner tiap kali proses pengeluaran barang bisa di tampilkan pada menu
outstock report agar bisa di tarik datanya untuk memudahkan sekaligus
56
mengefektifkan kinerja storeman. Dalam proses pembuatan koneksi ini
peneliti akan mengupdate modul outstock dari sistem yang ada dengan bahasa
pemograman php.
f. Mengimplementasikan Sistem yang dibuat
Pada tahapan ini peneliti akan melakukan testing, baik dari test print kode
QR untuk di tempelkan ke spare part sebagai pengenal, test barcode scanner app
untuk membaca (scanning) kode QR yang sudah di print out sebelumnya sampai
pada test proses transaksi penarikan database hasil scan pada outstock report.
g. Melakukan Pengujian Hasil
Ditahapan ini peneliti akan menguji hasil akhir dari sistem barcode scanner
berbasis android yang sudah diimplementasikan. Guna dari pengujian hasil ini
adalah untuk mengetahui apakan fungsi dari sistem barcode scanner yang dibuat
ini sesuai dengan yang dibutuhkan atau diharapkan oleh pihak manajemen, dan
juga untuk mengetahui tingkat keberhasilan sistem yang dikembangkan.
3.2 Gambaran Umum Perusahaan
PT Pelican Mitra Sejati adalah sebuah perusahaan yang bergerak di bidang
jasa perbaikan mesin kapal (marine), genset, forklift, motor tempel serta penjualan
unit (trading) dan spare part mesin-mesin tersebut. Perusahaan ini beralamatkan
di Komplek Taman Niaga Sukajadi Blok M, no.5-6 Batam Center 29432 Batam –
INDONESIA.
57
Gambar 3.2 Cover Company Profile Perusahaan
58
Line Business :
1. Start Up and Commissioning New Diesel Engines
2. Maintenance & Troubleshooting Diesel Engine
3. Overhaul and Major Repair Diesel Engine Industrial & Marine
4. Overhaul and Major Repair Marine Gear Box All Type
5. Fuel Pump and Injector Calibration Diesel Engine
6. Rewind and Overhaul of HV/LV Generators & Electric Motors
7. Winch / Hoist / Crane / Hydraulic Cylinder
8. Air Compressor, Material Handling and Machinery Construction
9. Design and Repair Distributed Control System (DCS)
10. Main Engine and Aux. Engine Alarm & Monitoring System
11. ABC Testing Services and Current Injection Tests
12. Design and Fabrication of New Switch Boards & Control Panels
13. Meters Calibration, Generator Synchronizing & Load Sharing
Dari data yang diperoleh sampai akhir periode tahun 2016, daftar customer
yang pernah menjadi rekan bisnis perusahaan ini antara lain :
a. International Customer
Tabel 3.1 Daftar List International Customer PT Pelican Mitra Sejati Batam
periode 2018
1 ASET MARINE, Pte Ltd
2 BAHTERA OFFSHORE, Sdn Bhd
3 BAYCORP SHIP MANAGEMENT, Sdn Bhd
4 CUMMINS SALES & SERVICE SINGAPORE, Pte Ltd
59
5 EPIC SASA, Sdn Bhd
6 FARHANA OFFSHORE, Pte Ltd
7 LIMIN MARINE, Pte Ltd
8 N PLUS ONE SOLUTION, Pte Ltd
9 NATIONAL OILWELL VARCO, Pte Ltd
10 ORCHARD MARITIME SERVICES, Pte Ltd
11 SMC MARINE MANAGEMENT, Pte Ltd
12 TROPICE MARINE, Pte Ltd
b. National Customer
Tabel 3.2 Daftar List National Customer PT Pelican Mitra Sejati Batam periode
2018
No Name No Name
1 TNI ANGKATAN LAUT 19 KIETRANS MARINA, PT
2 ALTRAK 1978, PT 20 KIM SEAH, PT
3 AMNOR SHIPYARD, PT 21 LABROY SHIPBUILDING
ENGINEERING, PT
4 AMTEK PRECISION
COMPONENTS BATAM, PT 22 MICLYN EPRESS, PT
5 ANG SIN LIU, PT 23 MITRA PERSADA SEJATI, PT
6 BANDAR ABADI, PT 24 MOMENTUM SHIPYARD, PT
60
7 BATAM EXPRESINDO, PT 25 OTORITA BATAM
8 BATAMEC, PT 26 PANBATAM ISLAND, PT
9 BINA MARITIM INDONESIA,
PT 27 PERTAMINA TONGKANG, PT
10 DHIVA SARA METAL, PT 28 PETRUS INDONESIA, PT
11 DWI SUMBER ARCA WAJA,
PT 29
PRASTIWAHYU TRIMITRA
ENGINEERING, PT
12 EKA NUSANTARA LINE, PT 30 SAT NUSAPERSADA, PT
13 GEOCEAN INDONESIA, PT 31 SUMBER TEKNIKINDO BATAM,
PT
14 HARMONI ONE, Hotel 33. TRAKINDO UTAMA, PT
15 IMARSAT INDONESIA, PT 34 TUNAS KARYA BAHARI
INDONESIA, PT
16 INDAH KARYA TEKNIK, PT 35 BCC, Hotel
17 I-TECH BATAM, PT 36 PELITA, Hotel
18 NOVOTEL, Hotel
3.3 Sejarah Singkat Perusahaan
PT Pelican Mitra Sejati adalah perusahaan yang dibentuk dari kerja keras dan
akumulasi pengalaman lebih dari 9 (sembilan) tahun dibidang service &
maintenance diesel untuk engine & genset baik di industrial used dan marine
used.
61
Perusahaan ini telah dicek dan diratifikasikan pada 9 Mei 2014 oleh notaris
Arunee Oliva Depary, SH. (disahkan pada 19 Maret 2002, dengan ijin No. C-
369.HT.03.01-Th.2002 ) serta memiliki 16 orang dedikasi staff dan technical
engineers serta partner pendukung secara nasional.
Sehingga perusahaan ini percaya diri sebagai partner yang senantiasa
memberikan kepuasan service, supports dan solutions kepada customes dan
market needs.
Peusahaan ini sudah berjalan sejak 2011 dengan nama awal CV Unggul
Pratama yang sampai sekarang masih ada di dalam PT Pelican Mitra Sejati Batam
ini. CV Unggul Pratama sampai saat ini di pakai untuk jasa service dan untuk
keperluan trading akan menggunakan nama PT Pelican Mitra Sejati Batam.
Gambar 3.3 Simbol Anak Perusahaan
Demi kemudahan dalam bebrapa operasional perusahaan, meningkatkan
kepercayaan customer dan beberapa kebutuhan lainnya, maka dikembangkanlah
yang semula adalah CV Unggul Pratama yang kini sebagai anak perusahaan dan
PT Pelican Mitra Sejati Batam sebagai induk perusahaan.
Gambar 3.4 Simbol Induk Perusahaan
62
Gambar 3.5 Brands Unit dan Spare Parts yang di supply PT Pelican
63
3.4 Visi dan Misi Perusahaan
3.4.1 Visi Perusahaan
“MENJADI PERUSAHAAN MULTINASIONAL YANG MAMPU
MENDUKUNG KEBUTUHAN INDUSTRI MARINE BAIK SUPPLY
MAUPUN SERVICE YANG BERKUALITAS DAN DIAKUI SECARA
NASIONAL DAN INTERNASIONAL”
3.4.2 Misi Perusahaan
Jika visi adalah gagasan mengenai tujuan utama, maka Misi Adalah
tahapan-tahapan yang harus dilalui untuk mencapai visi tersebut. Misi PT
Pelican Mitra Sejati Batam adalah :
a. Menjadi perusahaan jasa service mesin sekaligus distributor spare part
mesin yang dikenal oleh masyarakat luas.
b. Memiliki banyak cabang di tiap daerah, kota, atau negara.
c. Menjadi partner yang memberikan product tepat dan menyediakan
support terbaik setiap saat agar dapat memaksimalkan potensial investasi
customer.
d. Terus meningkatkan posisi finansial dan terus membangun keunggulan
disemua sektor organisasi sebagai perusahaan kokoh dalam bisnis supply
dan service untuk heavy equipment, permesinan dan generator yang di
akui secara nasional/internasional.
64
3.5 Struktur Organisasi Perusahaan
Gambar 3.6 Struktur Organisasi CV Unggul Pratama , PT Pelican Mitra Sejati
Batam – INDONESIA
65
BAB IV
ANALISIS DAN IMPLEMENTASI
4.1 Analisis Sistem yang Berjalan
Analisa merupakan suatu kegiatan yang bertujuan mempelajari serta
mengevaluasi bentuk permasalahan yang ada pada sistem. Agar sistem yang
dirancang dapat berjalan sebagaimana mestinya, perlu dilakukan analisis kinerja
sistem yang bertujuan untuk pengembangan sistem. Pada flowmap berikut akan
dijelaskan mengenai alur sistem yang sedang berjalan saat ini :
Tabel 4.1 Flowmap Alur Sistem Yang Sedang Berjalan
mengisi form
pengambilan
barang ( rangkap
2 )
form
pengambilan
barang
menerima barang
dan form kuning
(kopi)
pengambilan
barang
mulai
B
selesai
laporan
pengeluaran
barang
Mekanik
form kuning
pengambilan
barang
A
Storeman Pimpinan
cek stock & lokasi
penyimpanan
form
pengambilan
barang
laporan pengeluaran
barang
mengambil &
menyerahkan
barang
B
membuat laporan
pengeluaran
barang
db
yes
jika barang
ada
A
no
66
Penjelasan :
1. Alur pengambilan barang atau sparepart dimulai dengan pengisian form
pengambilan barang (part request form) rangkap dua (putih dan kuning) oleh
mekanik yang bersangkutan, form tersebut harus diisi dengan lengkap dan
menyertakan no.job.
2. Selanjutnya form tersebut akan diserahkan ke bagian store (stroreman).
3. Setelah menerima form pengambilan barang dari mekanik, storeman akan
melihat list barang yang di minta serta kelengkapan pengisian form, jika
storeman mengingat stock yang tersedia serta lokasi penempatan barang
tersebut maka storeman akan langsung mengambilkannya dari warehouse
sparepart (lokasi penyimpanan seluruh barang), namun jika storeman tidak
mengingatnya secara utuh karena jumlah barang yang ada di gudang cukup
banyak maka storeman akan mengeceknya satu per satu di sistem (komputer)
untuk mengetahui ketersediaan barang dan penempatannya.
4. Setelah mengetahui ketersediaan dan penempatan barang maka selanjutnya
storeman akan naik ke lantai 3 (lokasi warehouse sparepart) untuk
mengambil barang-barang (sparepart) yang diminta oleh mekanik dan
menyerahkannya sesuai dengan jumlah yang dibutuhkan (di request) serta
menyerahkan kopian (rangkap 2) dari form pengambilan barang dan
menyimpan kopian pertama(asli) dari form pengambilan barang untuk
pembuatan laporan pengeluaran barang namun jika stock tidak ada alur akan
selesai (mekanik akan menginformaikan ke atasannya).
67
5. Setelah memberikan barang yang diminta, maka langkah selanjutnya
storeman akan membuat laporan pengeluaran barang (outstock report)
dengan mengisi :
a. Data lengkap customer (job no)
b. Nama pemberi spare part
c. Nama penerima spare part
d. Keterangan lain jika ada
e. List barang yang di ambil atau dikeluarkan dengan cara input satu-
persatu sesuai kode barang (part number) dari spare part. Karena
penginputan list barang secara manual, berdasarkan kode barang (part
number) dan harus di input satu per satu akan membuat proses memakan
waktu lebih lama karena pengeluaran spare part dalam satu hari lumayan
banyak dan pekerjaan storeman bukan hanya terfokus pada proses keluar
masuknya barang saja sehingga terasa kurang efektif.
6. Setelah membuat laporan pengeluaran barang storeman akan mengkopi
dokumennya menjadi dua dan menyerahkan kopiannya ke pimpinan
perusahaan sebagai laporan barang keluar (outstock report).
4.2 Analisis Sistem yang Diusulkan
Sistem yang dirancang merupakan usulan perancangan sistem untuk
memperbaiki atau mengembangkan sistem yang sudah berjalan sebelumnya.
Sistem ini memiliki peranan yang sangat penting dalam menyediakan informasi
tentang detail data barang (sparepart). Informasi yang tersedia dalam Sistem
Barcode Scanner ini meliputi data part number, description, category, stock, unit,
cost price, sales price, location, remarks.
68
Perancangan sistem informasi barcode scanner ini bertujuan untuk
memberikan gambaran mengenai sistem yang diusulkan sebagai penyempurnaan
dari sistem yang berjalan. Sistem yang berjalan harus menginput satu per satu list
barang yang akan dikeluarkan sesuai dengan kode barang (part number).
Sedangkan sistem yang diusulkan menggunakan sistem barcode scanner
yang sudah terkomputerisasi dan terkoneksi agar dapat menampung hasil scan
dari list barang yang dikeluarkan dan bisa langsung ditarik datanya dalam
pembuatan laporan pengeluaran barang (outstock report). Sehingga proses
pengeluaran barang atau sparepart menjadi lebih optimal, baik dari penyajian
laporan maupun dalam pencarian data.
Sistem barcode scanner yang disulkan memiliki beberapa keunggulan dan
perbedaan dari sistem yang sedang berjalan. Sistem yang diusulkan lebih mudah
digunakan, tidak akan memakan waktu yang lama dalam mengolah data serta
sangat membantu storeman dalam pekerjaannya. Selanjutnya penulis akan
menjelankan secara rinci alur dari sistem barcode scanner berbasis android yang
diusulkan dengan menggunakan flowchart, entity relathionsip diagram (ERD),
dan data flow diagram (DFD).
69
A. Flowchart Data
Gambar 4.1 Flowchart data sistem yang diusulkan
form pengambilan
barang rangkap 2
mekanik mengisi form
pengambilan barang dan
menyerahkan ke
storeman
storeman mengecek
ketersediaan & lokasi
penyimpanan barang
storeman
mengambilkan
barang yang di
minta
proses scanning
kode qr barang
menggunakan apk
barcode scanner
data hasil scan
tersimpan di
dalam database
(server)
mulai
storeman membuat
laporan pengeluaran
barang (outstock
report)
input data :
- data customer
- nomor job
- penerima barang
- pemberi barang
- ref.no. hasil scan
submit / proses
(simpan)
laporan
pengeluaran
barang
menyerahkan
laporan pengeluaran
barang ke pimpinan
selesai
data laporan
pengeluaran
barang
tersimpan ke
database
cetak laporan
pengeluaran barang
tampilkan data
barang ke aplikasi
tarik data pengeluaran
barang dari database dan
tampilkan di layar
jika barang
ada
A
A
yes
y
no
form pengambilan
barang (kuning)
storeman
menyerahkan barang
dan salinan form
pengambilan barang
(kuning) ke mekanik
70
Penjelasan :
1. Alur pengambilan barang atau sparepart dimulai dengan pengisian form
pengambilan barang (part request form) rangkap dua (putih dan kuning) oleh
mekanik yang bersangkutan, form tersebut harus diisi dengan lengkap dan
menyertakan nomor job.
2. Selanjutnya form tersebut akan diserahkan ke bagian store (stroreman).
3. Setelah menerima form pengambilan barang dari mekanik, storeman akan
melihat list barang yang di minta serta kelengkapan pengisian form, jika
storeman mengingat stock yang tersedia serta lokasi penempatan barang
tersebut maka storeman akan langsung mengambilkannya dari warehouse
sparepart (lokasi penyimpanan seluruh barang), namun jika storeman tidak
mengingatnya secara utuh karena jumlah barang yang ada di gudang cukup
banyak maka storeman akan mengeceknya satu per satu di sistem (komputer)
untuk mengetahui ketersediaan barang dan penempatannya.
4. Setelah mengetahui ketersediaan dan penempatan barang maka selanjutnya
storeman akan naik ke lantai 3 (lokasi warehouse sparepart) untuk
mengambil barang-barang (sparepart) yang diminta oleh mekanik namun jika
stock tidak ada alur akan selesai (mekanik akan menginformaikan ke
atasannya).
5. Sebelum menyerahkan ke mekanik, setiap barang yang akan dikeluarkan akan
di scan dengan aplikasi scanner untuk mempermudah storeman dalam
pembuatan laporan pengeluaran barang nantinya.
6. Data hasil scan akan tersimpan (tertampung) di server (database) setiap satu
kali proses dan dapat digunakan (ditarik datanya) pada proses pembuatan
71
laporan pengeluaran barang agar storeman tidak repot-repot lagi menginput
dan memfilter satu-persatu data barang yang dikeluarkan (termasuk jumlah
barang yang dikeluarkan).
7. Data barang yang sudah di scan akan tampil di layar aplikasi scanner (per
proses).
8. Setelah proses scanning selesai storeman akan menyerahkan barang tersebut
sesuai dengan jumlah yang dibutuhkan (di request) serta menyerahkan salinan
(rangkap 2) dari form pengambilan barang ke mekanik dan menyimpan
kopian pertama(asli) dari form pengambilan barang untuk pembuatan laporan
pengeluaran barang.
9. Setelah memberikan barang yang diminta, maka langkah selanjutnya
storeman akan membuat laporan pengeluaran barang (outstock report)
dengan mengisi :
a. Data lengkap customer (dari nomor job)
b. Nama pemberi barang
c. Nama penerima barang
d. Keterangan lain jika ada
e. Pilih referensi nomor dari data hasil scan aplikasi scanner (out.no), maka
list barang yang telah dikeluarkan (setelah scan tadi) akan langsung
keluar secara otomatis termasuk jumlahnya.
10. Pilih simpan, maka data laporan pengeluaran barang akan otomatis tersimpan
di server(database) serta mengurangi jumlah stock yang tersedia dengan
jumlah barang yang dikeluarkan (sesuai detail barangnya).
72
11. Setelah membuat laporan pengeluaran barang (setelah cetak / print out)
storeman akan mengkopi dokumennya menjadi dua dan menyerahkan
kopiannya ke pimpinan perusahaan sebagai laporan barang keluar (outstock
report).
B. Flowchart Sistem (menu outstock)
no
no
yes tampil form scan
out no, date, listview, tombol add & submit
yes
yes
no
mulai
pilih kembali
(back)
A
C
B
tampil menu utama tombol :
outstock, history, exit
pilih
tombol
outstock ?
pilih
tombol
add ?
B
tampil form login
input username &
password
apakah user.
& pass.
benar ?
tampil pesan : Username or
Password incorrect !
Retry
1
73
Penjelasan :
1. Mulai, jalankan aplikasi.
2. Tampil form login (masuk)
yes
no
ok
kembali ke menu utama
transaksi / proses di
simpan ke database
(masuk ke list menu
history)
atur jumlah barang yang
akan dikeluarkan
proses scan dan koneksi
database barang
tampil form hasil (scan),
nama barang
pilih
tombol
ok atau
cancel ?
kembali tampil form scan dan list barang yang sudah di scan tampil di listview
C
selesai
A
pilih
tombol
submit ?
B
d
d
1
cancel
yes
Gambar 4.2 Flowchart sistem (menu outstock)
74
Akan tampil kolom untuk memasukkan username dan password agar bisa
masuk ke menu utama dengan menekan tombol log in.
3. Jika username dan password salah akan muncul pesan untuk mengulang
kembali (retry) dan jika benar akan menampilakan form menu utama.
4. Tampilan menu utama yang berisi :
a. Tombol OUT STOCK
b. Tombol HISTORY
c. Tombol EXIT
d. Nama perusahaan
e. Alamat lengkap perusahaan
f. No telepon perusahaan
g. Icon mesin sebagai background (melambangkan line business
perusahaan)
5. Jika pilih kembali (back) maka aplikasi akan tertutup, dan jika pilih tombol
outstock maka akan tampil form scan yang berisi :
a. Out no, yang terisi secara otomatis dan urut sebagai primary key setiap
sekali proses (sampai tombol submit ditekan).
b. Date, merupakan tanggal tejadinya proses scan (now).
c. Add, merupakan tombol untuk memulai scan sebuah barang (dengan QR
Code).
d. Listview, merupakan tabel list data barang yang sudah di scan (belum
tersimpan).
e. Submit, merupakan tombol proses untuk menyimpan lembar kerja
(transaksi hasil scan).
75
6. Ketika tombol add di tekan akan menampilkan proses scan (permintaan scan
sebuah QR Code), dan setelah proses scan selesai akan memunculkan form
hasil scan yang berisikan keterangan nama barang dan menu untuk mengatur
jumlah barang yang akan dikeluarkan, lalu tekan tombol ok atau cancel.
7. Jika dipilih tombol cancel akan menampilkan form scan kembali, dan jika
memilih tombol ok maka data barang yang sudah di scan akan masuk ke
listview pada form scan.
8. Jika kita tekan kembali (back) maka akan kembali ke menu utama tanpa
menyimpan data, dan jika kita tekan tombol submit maka secara otomatis
akan menyimpan data transaksi yang barusan dilakukan ke server (database)
dengan menyertakan out no, date (tanggal proses transaksi terjadi), list barang
yang dikeluarkan (setelah scan) beserta jumlahnya (masing-masing).
9. Data yang tersimpan tersebut nantinya akan bisa dipakai (dipanggil) pada
proses pembuatan laporan pengeluaran barang (outstock report), dan bisa
memudahkan storeman dalam proses pembuatan laporan tersebut sehingga
proses pembuatan menjadi lebih efektif, karena tidak harus mem-filter dan
menginput satu persatu lagi data barang yang dikeluarkan pada setiap
prosesnya.
10. Dan akan kembali ke menu utama.
11. Tutup aplikasi (tekan tombol exit) akan muncul pesan “yes atau no”, jika pilih
no akan kembali ke menu utama dan pilih yes untuk menutup aplikasi.
12. Selesai.
76
C. Flowchart Sistem (menu history)
Penjelasan :
1. Mulai, jalankan aplikasi.
Gambar 4.3 Flowchart sistem (menu history)
no
tampil menu utama tombol :
outstock, history, exit
pilih
tombol
history ?
pilih kembali
(back)
tampil form history, listview :
out no dan date (membaca database)
pilih data dari listview
menampilkan list spare part yang dikeluarkan (sesuai data yang dipilih)
d
selesai
no
yes
mulai
tampil form login
input username &
password
apakah user.
& pass.
benar ?
tampil pesan : Username or
Password incorrect !
Retry
yes
77
2. Tampil form login (masuk), kolom untuk memasukkan username dan
password agar bisa masuk ke menu utama dengan menekan tombol log in.
3. Jika username dan password salah akan muncul pesan untuk mengulang
kembali (retry) dan jika benar akan menampilakan form menu utama.
4. Tampilan menu utama yang berisi :
a. Tombol OUT STOCK
b. Tombol HISTORY
c. Tombol EXIT
d. Nama perusahaan
e. Alamat lengkap perusahaan
f. No. telepon perusahaan
g. Icon mesin sebagai background (melambangkan line business
perusahaan)
5. Jika pilih kembali (back) maka aplikasi akan tertutup, dan jika pilih tombol
history maka akan tampil form history yang berisi listview data transaksi
pengeluaran barang yang sudah dilakukaan (tersimpan di server / database).
6. Jika di klik (pilih) salah satu data dari listview maka akan menampilkan
catatan detail list barang apa saja yang sudah dikeluarkan (pada transaksi
tersebut / yang dipilih).
7. Pada menu ini memang tidak ada proses secara khusus, karena di data ini
hanya menampilkan history-nya saja, data yang ada di listview ini bisa
dipanggil saat pembuatan laporan pengeluaran barang (outstock).
8. Jika di takan kembali (back) maka akan kembali menampilkan menu utama
aplikasi, selesai.
78
D. Flowchart Sistem (menu exit)
Gambar 4.4 Flowchart sistem (menu exit)
yes
no
no
yes
no
yes
tampil menu utama tombol :
outstock, history, exit
pilih
tombol
exit ?
menampilkan pesan konfirmasi
selesai
apakah
yakin mau
keluar ?
mulai
tampil form login
input username &
password
apakah user.
& pass.
benar ?
tampil pesan : Username or
Password incorrect !
Retry
pilih kembali
(back)
79
Penjelasan :
1. Mulai, jalankan aplikasi.
2. Tampil form login (masuk), kolom untuk memasukkan username dan
password agar bisa masuk ke menu utama dengan menekan tombol log in.
3. Jika username dan password salah akan muncul pesan untuk mengulang
kembali (retry) dan jika benar akan menampilakan form menu utama.
4. Tampilan menu utama yang berisi :
a. Tombol OUT STOCK
b. Tombol HISTORY
c. Tombol EXIT
d. Nama perusahaan
e. Alamat lengkap perusahaan
f. No. telepon perusahaan
g. Icon mesin sebagai background (melambangkan line business
perusahaan)
5. Jika pilih kembali (back) maka aplikasi akan tertutup, dan jika pilih tombol
exit maka akan tampil pesan konfirmasi untuk menanyakan apakah yakin
untuk menutup program (aplikasi). Isi pesannya : “Are you sure want to close
? no yes “
6. Jika pilih no maka akan kembali ke menu utama(tidak ada proses apa-apa).
7. Jika pilih yes maka apikasi akan berakhir (menutup).
4.2.1 Data Flow Diagram (DFD)
DFD dibuat untuk memberikan indikasi mengenai bagaimana data
ditransformasi pada saat data bergerak melalui sistem dan menggambarkan
fungsi-fungsi (dan sub fungsi) yang mentransformasi aliran data. Berikut adalah
gambar DFD dari Sistem Barcode Scanner yang akan dibuat :
80
4.2.2 Entity Relathionsip Diagram (ERD)
ERD dibuat untuk menggambarkan atau membuat model suatu database
dengan diagram yang sederhana sehingga memudahkan dalam membuat sebuah
database yang kompleks maupun yang sederhana. Dengan ERD ini juga akan
memudahkan pengguna dalam hal ini orang yang merancang database tersebut
dalam membuat perubahan didalam database jika sewaktu-waktu terjadi,
banyak tools perancangan basis data menggunakan konsep ini.
SISTEM
BARCODE
SCANNER
DIREKTUR USER / ADMIN scan barang
laporan pengeluaran barang data barang
Gambar 4.5 DFD Sistem Barcode Scanner
81
Gambar 4.6 ERD Sistem Barcode Scanner
log
in
scan
Un
it
Sto
ck
Cat
ego
ry
Par
t N
o.
Co
st P
rice
Pri
ce
Lo
cati
on
No
te
Des
crip
tio
n
Bara
ng
Nam
e
id
Use
r
Ou
tsto
ck N
o.
Issu
ed b
y
Rec
eiv
er
Job
No.
Un
it
Qu
anti
ty
Cat
ego
ry
Des
crip
tio
n
Dat
e
Cu
sto
mer
Rem
ark
s
No
te
Lap
. B
ara
ng
Kel
uar
P
art
No
.
82
4.2.3 Normalisasi
NAMA TABEL NAMA FIELD
user id
name
barang
part no.
description
category
stock
unit
cost price
price
location
note
lap. barang keluar
outstock no.
date
customer
job no.
issued by
receiver
remarks
part no.
description
category
quantity
iunit
note
Tabel 4.2 Normalisasi ke 1
83
Tabel 4.3 Normalisasi ke 2
USER
BARANG
LAP. BARANG KELUAR
id
part no.
outstock no.
name
description
date
category
customer
stock
job no.
unit
issued by
cost price
receiver
price
remarks
location
part no.
note
description
category
quantity
iunit
note
Tabel 4.4 Normalisasi ke 3
USER
BARANG
LAP. BARANG KELUAR
id *
part no. *
outstock no. *
name
description
date
category
customer
stock
job no.
unit
issued by **
cost price
receiver **
price
remarks
location
part no. **
note
description
category
quantity
iunit
note
Tanda * menyatakan bahwa field tersebut merupakan primary key (kunci utama)
pada table, sedangkan tanda ** menyatakan bahwa field tersebut adalah foreign
key (kunci tamu) pada table.
84
4.3 Implementasi
1. Perancangan
Menu Login
Perancangan form ini dibuat agar hanya user yang mengetahui username dan
password yang valid saja yang bisa menggukan / menjalankan aplikasi ini
agar tidak terjadi penyalahgunaan kedepannya.
I con
Perusahaan
L o g i n F o rm
Username
Password
LOG IN
Gambar 4.7 Perancangan Form Menu Login
85
Nama dan a lamat
perusahaan
OUT STOCK
HISTORY
E X I T
Copyr ight@supr i_2018Al lR ightReserved
Gambar 4.8 Perancangan Form Menu
Menu Utama (halaman depan)
Pada form ini akan dirancancang menu outstock untuk proses scan barang
sesuai dengan list yang di berikan oleh mekanik pada part request form, lalu
menu history yang berfungsi untuk menampung data hasil scan barang yang
akan di tampilkan per transaksi agar mempermudah user dan juga menu exit
untuk keluar dari aplikasi atau mengakhiri aplikasi agar aplikasi tidak
berjalan di belakang background android.
86
Menu Outstock
Nama perusahaan
ADD
SUBMIT
Gambar 4.9 Perancangan Form Menu
List data barang hasi l scan
Form ini nantinya akan digunakan untuk proses scan barang (spare part) dan
juga sekaligus memasukkan jumlah barang yang akan di keluarkan (per
item). Pada form ini juga akan secara otomatis mengisikan tanggal (now)
dan juga nomor untuk transaksi (per transaksi) yang nantinya akan tersimpan
di database dan masuk ke dalam list di form history.
87
Menu History
Nama perusahaan
Lis t da ta barang ke luar per t ransaks i
Gambar 4.10 Perancangan Form Menu
Form history ini dirancang untuk menampilkan list data barang yang sudah
pernah di scan sebelumnya (tampil per transaksi) agar mempermudah user
untuk mengecek apakah barang yang sudah di scan benar sudah masuk ke
dalam database.
88
Menu Detail History
Nama perusahaan
L is t de ta i l ba rang ke luar pe r t r ansaks i
Gambar 4.11 Perancangan Form Menu Detail
Form detail history ini dirancang untuk menampilkan list detail data barang
yang sudah pernah di scan sebelumnya (tampil per transaksi by select) agar
mempermudah user untuk mengecek apakah list barang yang di database
sesuai dengan list barang actual yang di scan sebelumnya oleh user.
89
Menu Exit
Nama dan a lamat
perusahaan
OUT STOCK
HISTORY
EXIT
Copyr ight@supr i_2018Al lR ightRe
served
Gambar 4.12 Perancangan Form Menu Exit
Are you sure want to
close ?
NO YES
Form exit ini dirancang untuk mempermudah user ketika akan menutup /
mengakhiri aplikasi agar tidak berjalan lagi di belakang background serta
menghapus cache pada aplikasi saat proses closing.
90
2. Implementasi
Tampilan Form Menu Login
Gambar 4.13 Tampilan Form Menu Login
91
Tampilan Form Menu Utama
Gambar 4.14 Tampilan Form Menu Utama
92
Tampilan Form Menu Outstock
Gambar 4.15 Tampilan Form Menu Outstock
93
Tampilan Form Menu History
Gambar 4.16 Tampilan Form Menu History
94
Tampilan Form Menu Detail History
Gambar 4.17 Tampilan Form Menu Detail History
95
Tampilan Form Menu Exit
Gambar 4.18 Tampilan Form Menu Exit
96
4.4 Testing
Tampilan Icon Apk.
Gambar 4.19 Tampilan Icon Apk. Barcode Scanner
97
Tampilan Form Menu Login dengan username / password yang salah.
Gambar 4.20 Tampilan Form Menu Login dengan
username / password yang salah.
98
Notifikasi ketika memasukkan username / password yang salah pada Form Menu
Login.
Gambar 4.21 Notifikasi ketika username / password
yang dimasukkan salah.
99
Tampilan Form Menu Login dengan username / password yang benar.
Gambar 4.22 Tampilan Form Menu Login dengan
username / password yang benar.
100
Notifikasi ketika memasukkan username / password yang benar pada Form Menu
Login.
Gambar 4.23 Notifikasi ketika username / password
yang dimasukkan benar.
101
Tampilan Konfgurasi Awal Sebelum Proses Scan.
Gambar 4.24 Tampilan Konfigurasi Kamera.
102
Tampilan Proses Scanning Data.
Gambar 4.25 Tampilan Proses Scan Data
103
Tampilan Proses Pengisian Jumlah Data.
Gambar 4.26 Tampilan Proses Penginputan
Jumlah Data
104
Tampilan List Data Dalam Satu Grup
Gambar 4.27 Tampilan List Data Hasil Scan
105
Tampilan Form Menu History
Gambar 4.28 Tampilan Form Menu History
106
Tampilan Form Menu Detail History (Group 1)
Gambar 4.29 Tampilan Form Menu Detail History (Group 1)
107
Tampilan Form Menu Detail History (Group 2)
Gambar 4.30 Tampilan Form Menu Detail History (Group 2)
108
Tampilan Form Menu Detail History (Group 3)
Gambar 4.31 Tampilan Form Menu Detail History (Group 3)
109
Tampilan Form Menu Exit
Gambar 4.32 Tampilan Form Menu Exit
110
111
112
113
Tampilan Database Dengan PostgreSql
Gambar 4.33 Tampilan Database Dengan PostgreSql
114
Tampilan Files Fuction (.php) pada folder scanner
Gambar 4.34 Tampilan Files Function Pada Folder Scanner
115
Tampilan localhost scanner pada browser
Gambar 4.35 Tampilan Localhost Scanner Pada Browser
116
Tampilan QR Code Yang Akan Di Scan (qrcode.php)
Gambar 4.36 Tampilan List QR Code Yang Akan di Scan
117
Tampilan Test Function (getno.php)
Gambar 4.37 Tampilan Test Function (getno.php)
118
Tampilan Test Function (getpart.php)
Gambar 4.38 Tampilan Test Function (getpart.php)
119
Tampilan Test Function (savepart.php)
Gambar 4.39 Tampilan Test Function (savepart.php)
120
Tampilan Test Function (history.php)
Gambar 4.40 Tampilan Test Function (history.php)
121
Tampilan Test Function (detail.php)
Gambar 4.41 Tampilan Test Function (detail.php)
122
BAB V
PENUTUP
5.1 Kesimpulan
Berdasarkan hasil pelaksanaan dari penelitian ini dapat diambil beberapa
kesimpulan sebagai berikut:
1. Perancangan Sistem Barcode Scanner berbasis Android untuk meningkatkan
efektifitas kinerja pada proses pengeluaran barang atau outstock di
Manajemen Store PT Pelican Mitra Sejati Batam dapat di buat dengan
aplikasi Android Studio untuk apk nya, PostgreSql untuk database, Xampp
sebagai service (untuk local), Notepad++ untuk tool view & editor source
code (php, html, java script),Browser tool viewer (tampilan), Emulator
Android untuk simulasi apk (atau bisa langsung menggunakan android
smartphone).
2. Perancangan basis data barang setelah atau hasil scan serta membuat koneksi
ke pusat penyimpanan data dapat dibuat dengan PostgreSql sebagai pusat
database, kemudian menggunakan file (.php) untuk fungsi koneksi sebagai
jembatan penghubung antara apk dan database agar aplikasi dapat mengolah
data di database seperti menambah data (insert), membaca data (read),
merubah data (update) dan menghapus data (delete) atau yang lebih dikenal
dengan istilah CRUD (Create, Read, Update, Delete).
123
5.2 Saran
Adapun saran yang dapat digunakan dalam penelitian selanjutnya adalah :
1. Perancangan sistem kedepannya tidak hanya dilakukan pada proses
pengeluaran barang atau outstock saja.
2. Pemanfaatan Sistem Barcode Scanner yang ada untuk kegiatan transaksi
barang masuk atau instock dan barang kembali atau return stock, agar
prosesnya tidak memakan waktu yang cukup lama dan dapat meningkatkan
kinerja Storeman.
3. Pengembangan sistem kedepannya tidak hanya pada Manajemen Store,
melainkan ke seluruh divisi karena PT Pelican Mitra Sejati Batam sudah
menerapkan Sistem Enterprise Resource Planning (ERP).
4. Pengembangan sistem bisa dilakukan pada divisi finance, marketing, dan
service agar menjadi suatu kesatuan sistem yang bagus dan sesuai kebutuhan
perusahaan.
5. Pengembangan sistem yang dilakukan harusla mempermudah user dalam
penggunaanya, agar proses demi proses bisa berjalan dengan efektif tanpa
kendala.
124
DAFTAR PUSTAKA
[1] Rizkysari, Meimaharani. & Diana, Laily. (2014). E-Commerce Goody Bag
Spunbond Menggunakan QR Code Berbasis Web Responsif. Jurnal Simetris,
Vol 5 No 2, ISSN : 2252-4983.
[2] Bambang, Sugiantoro. & Fuad, Hasan. (2015). Pengembangan QR Code
Scanner Berbasis Android Untuk Sistem Informasi Museum Sonobudoyo
Yogyakarta. Jurnal Telematika, Vol 12 No 02, Pp 134-145, ISSN : 1829-
667X.
[3] Hugeng. Muljono. & Hery, Iskandar. (2013). Sistem Pendataan Barang Yang
Masuk Ke Gudang Secara Otomatis Menggunakan Media Barcode. Jurnal
JETri, Vol 11 No 1, Hal 95-106, ISSN : 1412-0372.
[4] Difana, Meilani1. Indah, Albani, Putri. (2015). Perancangan Sistem Otomasi
Barcode dengan Mengevaluasi Kinerja pada Aktivitas Transaksi Gudang
(Studi Kasus : PT. Astra Komponen Indonesia). Jurnal Sains, Teknologi dan
Industri, Vol 12 No 2, Pp 268-277, ISSN : 1693-2390 print / ISSN : 2407-
0939 online.
[5] Febrian, Wahyutama. Febriliyan, Samopa. & Hatma, Suryotrisongko. (2013).
Penggunaan Teknologi Augmented Reality Berbasis Barcode sebagai Sarana
Penyampaian Informasi Spesifikasi dan Harga Barang yang Interaktif
Berbasis Android, Studi Kasus pada Toko Elektronik ABC Surabaya. Jurnal
Teknik Pomits, Vol 2 No 3, ISSN : 2337-3539 (2301-9271 Print).
125
LAMPIRAN
1. Perancangan Form Login pada Android Studio
Perancangan Form Login Pada Android Studio
126
2. Perancangan Form Utama pada Android Studio
Perancangan Form Utama (Menu) Pada Android Studio
127
3. Perancangan Form Scan pada Android Studio
Perancangan Form Scan Pada Android Studio
128
4. Perancangan Form Login pada Android Studio
Perancangan Form History Pada Android Studio
129
5. Source code design form login (Main.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="@mipmap/parts"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginTop="187dp"
android:text="@string/login_form"
android:textAlignment="center"
android:textColorLink="@android:color/holo_green_light"
android:textSize="30sp"
android:textStyle="normal|bold"
tools:text="Login Form"
android:layout_alignParentLeft="true" />
<EditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/password"
android:layout_alignParentStart="true"
android:ems="10"
android:hint="@string/username"
android:inputType="textPersonName"
android:layout_alignParentLeft="true" />
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/btnLogin"
android:layout_alignParentStart="true"
android:ems="10"
android:hint="@string/password"
android:inputType="textPassword"
android:layout_alignParentLeft="true" />
<Button
android:id="@+id/btnLogin"
android:layout_width="match_parent"
android:layout_height="57dp"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:layout_marginBottom="143dp"
android:text="@string/log_in"
android:layout_alignParentLeft="true" />
130
<ImageView
android:id="@+id/imageView"
android:layout_width="138dp"
android:layout_height="100dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="18dp"
android:layout_marginTop="18dp"
android:contentDescription="@string/todo"
android:src="@mipmap/logo_pelican"
android:layout_alignParentLeft="true"
android:layout_marginLeft="18dp" />
</RelativeLayout>
6. Source code design form menu utama (Menu.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/mesin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.qrcodescanner.MainActivity">
<Button
android:id="@+id/btnadd"
android:layout_width="210dp"
android:layout_height="80dp"
android:layout_above="@+id/btnhistory"
android:layout_centerHorizontal="true"
android:layout_marginBottom="15dp"
android:background="@android:drawable/divider_horizontal_bright"
android:text="@string/out_stock"
android:textStyle="bold" />
<Button
android:id="@+id/btnhistory"
android:layout_width="210dp"
android:layout_height="80dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="174dp"
android:background="@android:drawable/divider_horizontal_bright"
android:text="@string/history1"
android:textStyle="bold" />
<Button
android:id="@+id/btnexit"
android:layout_width="210dp"
android:layout_height="80dp"
android:layout_below="@+id/btnhistory"
android:layout_centerHorizontal="true"
131
android:layout_marginTop="-160dp"
android:background="@android:drawable/divider_horizontal_bright"
android:text="@string/exit1"
android:textColorLink="@android:color/background_dark"
android:textStyle="bold" />
<TextView
android:id="@+id/textView"
android:layout_width="231dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="14dp"
android:text="@string/copyright_supri_2018allrightsreserved1"
android:textColorLink="@color/colorPrimaryDark" />
<TextView
android:id="@+id/textView2"
style="@style/AlertDialog.AppCompat"
android:layout_width="wrap_content"
android:layout_height="34dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="25dp"
android:text="@string/pt_pelican_mitra_sejati"
android:textColor="@android:color/holo_red_dark"
android:textColorLink="@color/colorAccent"
android:textSize="27sp"
android:textStyle="bold"
android:visibility="visible" />
<TextView
android:id="@+id/textView3"
style="@style/AlertDialog.AppCompat"
android:layout_width="wrap_content"
android:layout_height="34dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="70dp"
android:text="@string/komplek_taman_niaga_sukajadi_blok_m_no_5a"
android:textColor="@color/colorPrimaryDark"
android:textColorLink="@color/colorAccent"
android:textSize="12sp"
android:textStyle="bold"
android:visibility="visible" />
<TextView
android:id="@+id/textView4"
style="@style/AlertDialog.AppCompat"
android:layout_width="wrap_content"
android:layout_height="34dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="90dp"
android:text="@string/batam_center_29432_indonesia1"
android:textColor="@color/colorPrimaryDark"
android:textColorLink="@color/colorAccent"
android:textSize="12sp"
android:textStyle="bold"
android:visibility="visible" />
<TextView
android:id="@+id/textView5"
style="@style/AlertDialog.AppCompat"
android:layout_width="wrap_content"
132
android:layout_height="34dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="110dp"
android:text="@string/phone_62_778_7372_079"
android:textColor="@color/colorPrimaryDark"
android:textColorLink="@color/colorAccent"
android:textSize="12sp"
android:textStyle="bold"
android:visibility="visible" />
</RelativeLayout>
7. Source code design form scan ((menu outstcok)Scan.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/mesin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.qrcodescanner.MainActivity">
<TextView
android:id="@+id/lblTanggal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignTop="@+id/btnadd"
android:layout_marginStart="84dp"
android:text="@string/out_no"
android:textColorLink="@android:color/background_dark"
android:textStyle="bold"
android:layout_marginLeft="84dp"
android:layout_alignParentLeft="true" />
<TextView
android:id="@+id/lblNomor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/btnadd"
android:layout_alignParentStart="true"
android:layout_marginStart="85dp"
android:text="@string/out_no"
android:textColorLink="@android:color/background_dark"
android:textStyle="bold"
android:layout_alignParentLeft="true"
android:layout_marginLeft="85dp" />
<Button
android:id="@+id/btnadd"
android:layout_width="57dp"
android:layout_height="47dp"
133
android:layout_above="@+id/lvItem"
android:layout_alignEnd="@+id/textView2"
android:layout_marginBottom="-108dp"
android:background="@android:drawable/divider_horizontal_bright"
android:text="@string/add"
android:textStyle="bold"
android:layout_alignRight="@+id/textView2" />
<TextView
android:id="@+id/textView2"
style="@style/AlertDialog.AppCompat"
android:layout_width="wrap_content"
android:layout_height="34dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="3dp"
android:text="@string/pt_pelican_mitra_sejati"
android:textColor="@android:color/holo_red_dark"
android:textColorLink="@color/colorAccent"
android:textSize="27sp"
android:textStyle="bold"
android:visibility="visible" />
<LinearLayout
android:id="@+id/llSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/btnadd"
android:layout_marginTop="20dp"
android:orientation="vertical"
android:visibility="gone">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minEms="4"
android:text="@string/description"
android:textColor="@color/colorPrimary"
android:textIsSelectable="true"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvScanContent"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:layout_weight="1.0"
android:textColor="@android:color/black"
android:textIsSelectable="true"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
134
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minEms="4"
android:text="@string/quantity"
android:textColor="@color/colorPrimary"
android:textIsSelectable="true"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvScanFormat"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:layout_weight="1.0"
android:textColor="@android:color/black"
android:textIsSelectable="true"
android:textSize="14sp" />
<Spinner
android:id="@+id/serverspinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/outno"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/btnadd"
android:layout_alignStart="@+id/textView2"
android:text="@string/out_no"
android:textColorLink="@android:color/background_dark"
android:textStyle="bold"
android:layout_alignLeft="@+id/textView2" />
<TextView
android:id="@+id/tanggal"
android:layout_width="51dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView2"
android:layout_alignStart="@+id/textView2"
android:layout_alignTop="@+id/btnadd"
android:text="@string/date"
android:textColorLink="@android:color/background_dark"
android:textStyle="bold" />
<ListView
android:id="@+id/lvItem"
android:layout_width="match_parent"
android:layout_height="275dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginTop="146dp" />
<Button
135
android:id="@+id/btnsubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignEnd="@+id/lvItem"
android:layout_alignParentBottom="true"
android:layout_alignRight="@+id/lvItem"
android:text="@string/submit" />
</RelativeLayout>
8. Source code design form history (History.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/genset"
android:orientation="vertical">
<TextView
android:id="@+id/textView6"
style="@style/AlertDialog.AppCompat"
android:layout_width="wrap_content"
android:layout_height="34dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="8dp"
android:text="@string/pt_pelican_mitra_sejati"
android:textColor="@android:color/holo_red_dark"
android:textColorLink="@color/colorAccent"
android:textSize="27sp"
android:textStyle="bold"
android:visibility="visible" />
<TextView
android:id="@id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView6"
android:paddingLeft="10dp"
android:paddingStart="10dp"
android:paddingTop="10dp"
android:text="@string/List_Data_Group_By_Id"
android:textSize="20sp"
android:textStyle="bold" />
<ListView
android:id="@+id/lv2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:layout_marginBottom="26dp"
android:layout_below="@+id/textView"
tools:ignore="RtlCompat" />
136
<ImageView
android:id="@+id/utama"
android:layout_width="77dp"
android:layout_height="62dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:contentDescription="@string/todo10"
app:srcCompat="@mipmap/utama"
android:layout_alignParentRight="true" />
</RelativeLayout>
9. Source code design form detail history (raw.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/code"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="@string/tes"
android:textSize="20sp">
</TextView>
<TextView
android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="@string/tes"
android:textSize="20sp">
</TextView>
<TextView
android:id="@+id/partno"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:textSize="20sp">
</TextView>
<TextView
android:id="@+id/qty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:textSize="20sp">
</TextView>
137
</LinearLayout>
10. Syntax untuk menampilkan data sparepart pada db.unggul (PostgreSql)
138
11. Syntax untuk membuat tabel history pada db.unggul (PostgreSql)
139
12. Syntax untuk menampilkan data pada tabel history
140
13. Source code untuk menampilkan QR Code (qrcode.php)
141
14. Source code untuk memberikan penomoran otomatis pada field out_no di
form scan (android apk) ketika memilik button outstock pada menu utama
(android apk) dengan type file (getno.php/request by url)
142
15. Source code untuk menampilkan data hasil scan(pada android apk)
berdasarkan QR Code dari db.unggul ((PostgreSql)getpart.php)
16. Source code untuk menyimpan data hasil scan (android apk) ke db.unggul
(PostgreSql) pada tabel history, ((post by url)savepart.php)
143
17. Source code untuk menampilkan data hasil scan (android apk) pada
db.unggul (PostgreSql) di form history, ((post by url)history.php)
18. Source code untuk menampilkan data detail hasil scan (android apk)
pada db.unggul (PostgreSql) di form detail history, ((post by url)detail.php)
144
19. Source code pada form login (MainActivity.java)
package com.qrcodescanner;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
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.Toast;
public class MainActivity extends AppCompatActivity
{
EditText username, password;
Button btnLogin;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
username = (EditText) findViewById(R.id.username);
password = (EditText) findViewById(R.id.password);
//for develop
//username.setText("supri");
//password.setText("123");
//================================================
btnLogin = (Button)findViewById(R.id.btnLogin);
btnLogin.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
String usernameKey = username.getText().toString();
String passwordKey = password.getText().toString();
if (usernameKey.equals("supri") &&
passwordKey.equals("123"))
{
//if login success (message view)
Toast.makeText(getApplicationContext(), "LOGIN
SUCCESS",Toast.LENGTH_SHORT).show();
//change form
Intent intent = new Intent(MainActivity.this,
MenuActivity.class);
MainActivity.this.startActivity(intent);
//close
finish();
}
else
{
//if login failed (message view)
AlertDialog.Builder builder = new
AlertDialog.Builder(MainActivity.this);
builder.setMessage("Username or Password incorrect
!").setNegativeButton("Retry", null).create().show();
}
}
145
});
//for develop
//btnLogin.callOnClick();
//================================================
}
}
20. Source code pada form utama (MenuActivity.java)
package com.qrcodescanner;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
public class MenuActivity extends AppCompatActivity
{
//variable declaration
Button btnout;
Button btnhistory;
Button btnexit;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
btnout=(Button) findViewById(R.id.btnadd);
btnout.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
Intent intent = new Intent(MenuActivity.this,
ScanActivity.class);
startActivity(intent);
}
});
btnhistory=(Button) findViewById(R.id.btnhistory);
btnhistory.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent (MenuActivity.this,
HistoryActivity.class);
startActivity(intent);
}
});
btnexit=(Button) findViewById(R.id.btnexit);
btnexit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showAlertDialog();
}
146
});
}
private void showAlertDialog()
{
AlertDialog.Builder builder = new AlertDialog.Builder(this)
.setMessage("Are you sure want to close ?")
.setNegativeButton("NO", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface,
int i) {
dialogInterface.dismiss();
}
})
.setPositiveButton("YES", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface,
int i) {
dialogInterface.dismiss();
//move layout & clear cache
//======================================
//Intent intent= new
Intent(getApplicationContext(),MenuActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
// | Intent.FLAG_ACTIVITY_CLEAR_TASK);
//======================================
finish();
System.exit(0);
// moveTaskToBack(true);
//clear cache
//=============================================
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity (intent);
//=============================================
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
}
21. Source code pada menu outstock ((form scan) ScanActivity.java)
package com.qrcodescanner;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
147
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class ScanActivity extends AppCompatActivity implements
OnClickListener
{
private Button scanBtn;
Button btnsubmit;
private LinearLayout llSearch;
public String nextno;
List<String> your_array_list;
ArrayAdapter<String> arrayAdapter;
public class User
{
public String name;
public String hometown;
public User(String name, String hometown)
{
this.name = name;
this.hometown = hometown;
}
}
public class UsersAdapter extends ArrayAdapter<User>
{
public UsersAdapter(Context context, ArrayList<User> users)
{
super(context, 0, users);
}
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scan);
scanBtn = (Button) findViewById(R.id.btnadd);
llSearch = (LinearLayout) findViewById(R.id.llSearch);
scanBtn.setOnClickListener(ScanActivity.this);
148
your_array_list = new ArrayList<String>();
arrayAdapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
your_array_list );
ListView lvItem = (ListView) findViewById(R.id.lvItem);
lvItem.setAdapter(arrayAdapter);
btnsubmit=(Button) findViewById(R.id.btnsubmit);
btnsubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(ScanActivity.this,
HistoryActivity.class);
ScanActivity.this.startActivity(intent);
}
});
new
HttpAsyncTaskNextNo().execute("http://192.168.43.131/scanner/getno.php");
}
public String barcode="";
public void onClick(View v)
{
llSearch.setVisibility(View.GONE);
IntentIntegrator integrator = new IntentIntegrator(this);
integrator.setPrompt("Scan a barcode or QRcode");
integrator.setOrientationLocked(false);
integrator.initiateScan();
integrator.initiateScan();
}
EditText input;
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data)
{
IntentResult result =
IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (result != null)
{
if (result.getContents() == null)
{
llSearch.setVisibility(View.GONE);
Toast.makeText(this, "Cancelled",
Toast.LENGTH_LONG).show();
}
else
{
input = new EditText(this);
final String alert1 = "Part.No: " +
result.getFormatName();
final String alert2 = "Description: " +
result.getContents();
InputStream inputStream = null;
String res = "";
new
HttpAsyncTask().execute("http://192.168.43.131/scanner/getpart.php?barcod
e="+result.getContents());
}
}
else
{
super.onActivityResult(requestCode, resultCode, data);
}
}
149
public static String POST(String url){
InputStream inputStream = null;
String result = "";
try
{
// create HttpClient
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new
HttpPost("http://192.168.43.131/scanner/savepart.php");
List<NameValuePair> nameValuePairs = new ArrayList<>(4);
nameValuePairs.add(new BasicNameValuePair("outno","outno"));
nameValuePairs.add(new
BasicNameValuePair("partno","Portno"));
nameValuePairs.add(new BasicNameValuePair("qty","1"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse httpResponse = httpclient.execute(httppost);
// receive response as inputStream
inputStream = httpResponse.getEntity().getContent();
// convert inputstream to string
if(inputStream != null)
result = convertInputStreamToString(inputStream);
else
result = "Did not work!";
}
catch (Exception e)
{
Log.d("InputStream", e.getLocalizedMessage());
}
return result;
}
public static String GET(String url){
InputStream inputStream = null;
String result = "";
try
{
// create HttpClient
HttpClient httpclient = new DefaultHttpClient();
// make GET request to the given URL
HttpResponse httpResponse = httpclient.execute(new
HttpGet(url));
// receive response as inputStream
inputStream = httpResponse.getEntity().getContent();
// convert inputstream to string
if(inputStream != null)
result = convertInputStreamToString(inputStream);
else
result = "Did not work!";
} catch (Exception e) {
Log.d("InputStream", e.getLocalizedMessage());
}
return result;
}
private static String convertInputStreamToString(InputStream
inputStream) throws IOException {
BufferedReader bufferedReader = new BufferedReader( new
InputStreamReader(inputStream));
String line = "";
String result = "";
while((line = bufferedReader.readLine()) != null)
result += line;
inputStream.close();
return result;
150
}
private class HttpAsyncTaskNextNo extends AsyncTask<String, Void,
String> {
@Override
protected String doInBackground(String... urls) {
return GET(urls[0]);
}
// onPostExecute displays the results of the AsyncTask.
@Override
protected void onPostExecute(String result) {
Toast.makeText(getBaseContext(), "Received!",
Toast.LENGTH_LONG).show();
try {
JSONObject obj = new JSONObject(result);
nextno = obj.get("nextno").toString();
} catch (Throwable t) {
nextno ="1";
}
TextView lblTanggal = (TextView)
findViewById(R.id.lblTanggal);
TextView lblNomor = (TextView) findViewById(R.id.lblNomor);
Date today = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd
hh:mm:ss a");
String dateToStr = format.format(today);
lblNomor.setText(nextno);
lblTanggal.setText(dateToStr);
}
}
private class HttpAsyncTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
return GET(urls[0]);
}
// onPostExecute displays the results of the AsyncTask.
@Override
protected void onPostExecute(String result) {
Toast.makeText(getBaseContext(), "Received!",
Toast.LENGTH_LONG).show();
// setResponse.setText(result);
final String message;
final String PartNo;
String message1;
String partno1;
message1 ="";
partno1="";
try {
JSONObject obj = new JSONObject(result);
partno1 = obj.get("partno").toString();
String description = obj.get("description").toString();
message1 = "Part No : "+partno1+"\nDescription :
"+description;
//
} catch (Throwable t) {
//message = "Could not parse malformed JSON: \"" + result
+ "\"";
}
PartNo = partno1;
message = message1;
new AlertDialog.Builder(ScanActivity.this)
.setTitle("Input Qty :")
151
.setMessage(message)
.setView(input)
.setPositiveButton("Ok", new
DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int
whichButton) {
String alert3 = "Qty: " +
input.getText().toString();
String item = message+"\n"+alert3;
String partno = PartNo;
your_array_list.add(item);
arrayAdapter.notifyDataSetChanged();
try
{
String
url="http://192.168.43.131/scanner/savepart.php";
HttpAsyncTaskSavePart httpAsyncTask =
new
HttpAsyncTaskSavePart(url,partno,input.getText().toString(), nextno);
httpAsyncTask.execute(url);
}
catch (Exception e) { }
}
}).setNegativeButton("Cancel", new
DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int
whichButton) { }
}).show();
}
}
private class HttpAsyncTaskSavePart extends AsyncTask<String, Void,
String> {
private String url,partno,qty,outno;
public HttpAsyncTaskSavePart(String url,String partno,String
qty, String outno)
{
this.url = url;
this.partno = partno;
this.qty = qty;
this.outno = outno;
}
@Override
protected String doInBackground(String... params)
{
return SavePart(params[0],partno,qty,outno);
}
@Override
protected void onPostExecute(String result)
{
String message="";
String success="false";
try
{
JSONObject obj = new JSONObject(result);
success =obj.get("success").toString();
message = obj.get("message").toString();
}
catch (Throwable t) { }
Toast.makeText(getBaseContext(), message,
Toast.LENGTH_LONG).show();
}
152
public String SavePart(final String url, final String
partno,String qty,String outno){
InputStream inputStream = null;
String result = "";
try
{
// create HttpClient
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new
HttpPost("http://192.168.43.131/scanner/savepart.php");
List<NameValuePair> nameValuePairs = new ArrayList<>(4);
nameValuePairs.add(new
BasicNameValuePair("outno",outno));
nameValuePairs.add(new
BasicNameValuePair("partno",partno));
nameValuePairs.add(new BasicNameValuePair("qty",qty));
httppost.setEntity(new
UrlEncodedFormEntity(nameValuePairs));
HttpResponse httpResponse = httpclient.execute(httppost);
inputStream = httpResponse.getEntity().getContent();
if(inputStream != null)
result = convertInputStreamToString(inputStream);
else
result = "Did not work!";
} catch (Exception e) {
Log.d("InputStream", e.getLocalizedMessage());
}
return result;
}
}
private class HttpAsyncTaskSubmit extends AsyncTask<String, Void,
String> {
@Override
protected String doInBackground(String... urls) {
return POST(urls[0]);
}
// onPostExecute displays the results of the AsyncTask.
@Override
protected void onPostExecute(String result) {
Toast.makeText(getBaseContext(), "Saved!",
Toast.LENGTH_LONG).show();
// setResponse.setText(result);
final String message;
String message1;
message1 ="";
try {
JSONObject obj = new JSONObject(result);
String success =obj.get("success").toString();
String pesan = obj.get("message").toString();
message1 = "Status Save : "+success+"\n"+pesan;
} catch (Throwable t)
{
//message = "Could not parse malformed JSON: \"" + result
+ "\"";
}
//httprsues cek by partno to database
// String message="";
message = message1;
new AlertDialog.Builder(ScanActivity.this)
.setTitle("Are you sure want to save ???")
.setMessage(message)
.setPositiveButton("Ok", new
DialogInterface.OnClickListener() {
153
public void onClick(DialogInterface dialog, int
whichButton) {
Intent intent = new Intent
(ScanActivity.this, HistoryActivity.class);
startActivity(intent);
}
}).setNegativeButton("Cancel", new
DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int
whichButton) { }
}).show();
}
}
}
22. Source code pada form history (HistoryActivity.java)
package com.qrcodescanner;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import org.apache.http.NameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class HistoryActivity extends AppCompatActivity {
ProgressDialog pDialog;
ListView listview;
ListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_history);
//deklarasi untuk tombol gambar (img)
ImageView tampil = (ImageView) findViewById(R.id.utama);
tampil.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
Intent intent = new Intent(HistoryActivity.this,
MenuActivity.class);
//clear cache
154
//=============================================
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TASK);
//=============================================
startActivity(intent);
}
});
listview = (ListView) findViewById(R.id.lv2);
try {
new LoadList().execute();
} catch (Exception e) {
}
}
// Response from Edit Product Activity
@Override
public void onActivityResult(int requestCode, int resultCode, Intent
data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == 100) {
Intent intent = getIntent();
finish();
startActivity(intent);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// app icon in action bar clicked; goto parent activity.
this.finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
class LoadList extends AsyncTask<String, Integer,
ArrayList<HashMap<String, String>>> {
ArrayList<HashMap<String, String>> mylist = new
ArrayList<HashMap<String, String>>();
boolean failure = false;
/**
* Before starting background thread Show Progress Dialog
*/
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(HistoryActivity.this);
pDialog.setMessage("Loading Data. Please wait...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
protected ArrayList<HashMap<String, String>>
doInBackground(String... args) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
155
JSONObject json =
JParser.makeHttpRequest("http://192.168.43.131/scanner/history.php",
"POST", params);
try {
// JSONObject json = Json.getJSONfromURL(params[0]);
JSONArray information = json.getJSONArray("info");
for (int i = 0; i < information.length(); i++) {
HashMap<String, String> map = new HashMap<String,
String>();
JSONObject jsonobj = information.getJSONObject(i);
map.put("outno", jsonobj.getString("outno"));
map.put("date", jsonobj.getString("tanggal"));
mylist.add(map);
}
return mylist;
} catch (JSONException e) {
Log.e("log_tag", "Error parsing data " + e.toString());
}
return null;
}
protected void onPostExecute(ArrayList<HashMap<String, String>>
result) {
// dismiss the dialog after getting all products
pDialog.dismiss();
// updating UI from Background Thread
runOnUiThread(new Runnable() {
public void run() {
adapter = new SimpleAdapter(HistoryActivity.this,
mylist, R.layout.raw, new String[]{"outno", "date"}, new int[]{R.id.code,
R.id.date});
listview.setAdapter(adapter);
//final ListView lv = getListView();
listview.setOnItemClickListener(new
AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent,
View view, int position, long id) {
@SuppressWarnings("unchecked")
HashMap<String, String> o = (HashMap<String, String>)
listview.getItemAtPosition(position);
String outno =
String.valueOf(o.get("outno"));
Intent in = new Intent(HistoryActivity.this,
DetailHistoryActivity.class);
in.putExtra("outno", outno);
startActivity(in);
}
});
}
});
156
}
}
}
23. Source code pada form detail history (DetailHistoryActivity.java)
package com.qrcodescanner;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class DetailHistoryActivity extends AppCompatActivity {
ProgressDialog pDialog;
String outno;
ListView listview;
ListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_history);
Intent in = getIntent();
outno = in.getStringExtra("outno");
//deklarasi untuk tombol gambar (img)
ImageView tampil = (ImageView) findViewById(R.id.utama);
tampil.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
Intent intent = new Intent(DetailHistoryActivity.this,
MenuActivity.class);
//clear cache
//=============================================
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TASK);
//=============================================
startActivity(intent);
}
});
157
listview = (ListView) findViewById(R.id.lv2);
try {
new LoadList().execute();
} catch (Exception e) {
}
}
// Response from Edit Product Activity
@Override
public void onActivityResult(int requestCode, int resultCode, Intent
data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == 100) {
Intent intent = getIntent();
finish();
startActivity(intent);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// app icon in action bar clicked; goto parent activity.
this.finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
class LoadList extends AsyncTask<String, Integer,
ArrayList<HashMap<String, String>>> {
ArrayList<HashMap<String, String>> mylist = new
ArrayList<HashMap<String, String>>();
boolean failure = false;
/**
* Before starting background thread Show Progress Dialog
*/
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(DetailHistoryActivity.this);
pDialog.setMessage("Loading Data. Please wait...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
protected ArrayList<HashMap<String, String>>
doInBackground(String... args) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("outno", outno));
JSONObject json =
JParser.makeHttpRequest("http://192.168.43.131/scanner/detail.php",
"POST", params);
try {
// JSONObject json = Json.getJSONfromURL(params[0]);
JSONArray information = json.getJSONArray("info");
158
for (int i = 0; i < information.length(); i++) {
HashMap<String, String> map = new HashMap<String,
String>();
JSONObject jsonobj = information.getJSONObject(i);
map.put("outno", jsonobj.getString("outno"));
map.put("date", jsonobj.getString("tanggal"));
map.put("partno", jsonobj.getString("partno"));
map.put("qty", jsonobj.getString("qty"));
mylist.add(map);
}
return mylist;
} catch (JSONException e) {
Log.e("log_tag", "Error parsing data " + e.toString());
}
return null;
}
protected void onPostExecute(ArrayList<HashMap<String, String>>
result) {
// dismiss the dialog after getting all products
pDialog.dismiss();
// updating UI from Background Thread
runOnUiThread(new Runnable() {
public void run() {
adapter = new
SimpleAdapter(DetailHistoryActivity.this, mylist, R.layout.raw, new
String[]{"outno", "date", "partno", "qty"}, new int[]{R.id.code,
R.id.date, R.id.partno, R.id.qty});
listview.setAdapter(adapter);
//final ListView lv = getListView();
}
});
}
}
}
159