Membangun Aplikasi Inventaris Barang untuk Usaha Kecil dan Menengah (UKM) Berbasis Android
MEMBANGUN APLIKASI INVENTARIS BARANG UNTUK
USAHA KECIL MENENGAH (UKM) BERBASIS ANDROID
TUGAS AKHIR
SYAFRI ALI PUTRA
112406015
PROGRAM STUDI D3 TEKNIK INFORMATIKA
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
(2)
MEMBANGUN APLIKASI INVENTARIS BARANG UNTUK
USAHA KECIL MENENGAH (UKM) BERBASIS ANDROID
TUGAS AKHIR
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Ahli
Madya
SYAFRI ALI PUTRA
112406015
PROGRAM STUDI D3 TEKNIK INFORMATIKA
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
(3)
PERSETUJUAN
Judul
: Membangun Aplikasi Inventaris Barang Untuk Usaha
Kecil Dan Menengah (UKM) Berbasis Android
Kategori
: Tugas Akhir
Nama
: Syafri Ali Putra
Nomor Induk Mahasiswa
: 112406015
Program Studi
: Diploma (D3) Teknik Informatika
Departemen
: Matematika
Fakultas
: Matematika
Dan
Ilmu
Pengetahuan
Alam
Universitas Sumatera Utara
Disetujui di
Medan, Juni 2014
Disetujui Oleh
Program Studi D3 Teknik Informatika
FMIPA USU
Ketua,
Pembimbing,
Dr. Elly Rosmaini, M.Si
Drs. Rachmad Sitepu, M.Si
NIP 196005201985032002
NIP 195304181987031001
(4)
PERNYATAAN
MEMBANGUN APLIKASI INVENTARIS BARANG UNTUK USAHA KECIL
DAN MENENGAH (UKM) BERBASIS ANDROID
TUGAS AKHIR
Saya mengakui bahwa tugas akhir ini adalah hasil kerja saya sendiri. Kecuali beberapa
kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Juni 2014
SYAFRI ALI PUTRA
112406015
(5)
PENGHARGAAN
Segala puji dan syukur kepada Tuhan Yang Maha Esa yang telah memberikan nikmat
dan karunianya kepada penulis serta dukungan dan doa dari orang tua dan teman -
teman sehingga penulis bisa menyelesaikan tugas akhir ini.
Adapun judul tugas akhir ini adalah “Membangun Aplikasi Inventaris Barang
Untuk Usaha Kecil Dan Menengah (UKM) Berba
sis Android”. Tugas akhir ini
merupakan syarat untuk dapat menyelesaikan pendidikan program studi D-III Teknik
Informatika FMIPA USU. Disini penulis mengucapkan banyak terima kasih kepada
semua pihak yang banyak membantu penulis dalam menyelesaikan tugas akhir ini.
Terutama buat kedua orang tua penulis, kerabat dan rekan penulis yang selalu
mendukung penulis. Penulis menyadari bahwa tugas akhir ini masih memiliki
kekurangan, untuk itu penulis mengharapkan kritik dan saran dari semua pihak untuk
perbaikan dan kesempurnaan tugas akhir ini. Akhirnya penulis berharap semoga tugas
akhir ini bermanfaat bagi para pembaca.
(6)
ABSTRAK
Usaha Kecil Menengah (UKM) merupakan usaha yang dilakukan oleh mereka yang
bekerja pada tingkat mikro. Seperti halnya para pedagang yang berdagang di kios atau
mereka yang bekerja membuat suatu usaha dagang. Dengan adanya bantuan teknologi
mobile yang berkembang saat ini, pedagang UKM dapat memanfaatkan fasilitas
teknologi berbasis mobile yang berfungsi sebagai pencatatan barang dalam
genggaman mereka. Dengan memanfaatkan teknologi berbasis mobile ini diharapkan
pedagang UKM dapat mengurangi kesalahan dalam pencatatan barang.
(7)
DAFTAR ISI
Halaman
Persetujuan
i
Pernyataan
ii
Penghargaan
iii
Abstrak
iv
Daftar Isi
v
DaftarTabel
vii
Daftar Gambar
viii
Bab 1.
Pendahuluan
1
1.1. Latar Belakang
1
1.2. Rumusan Masalah
2
1.3. Batasan Masalah
2
1.4. Tujuan
3
1.5. Metodologi Penelitian
3
1.6. Sistematika Penelitian
4
Bab 2.
Landasan Teori
5
2.1. Sekilas Sistem Operasi Android
6
2.2. Platform Android
7
2.3. Versi
–
Versi Android
7
2.4. Xampp
8
2.5. PHP dan MySQL Sebagai
Web Service
8
Bab 3.
Perancangan Sistem
10
3.1. Perancangan Sistem
11
3.2. Rancangan Awal
11
3.2.1. Rancangan Menu
Login
11
3.2.2. Rancangan Menu
12
3.2.3. Rancangan Lihat Barang
12
3.2.4. Rancangan Tambah Barang
13
3.2.5. Rancangan Data Saya
14
3.2.6. Rancangan Edit Barang
14
3.3. Rancangan Basis Data
15
3.4.
Flowchart
Pembuatan Program
16
3.4.1.
Flowchart
Program
18
Bab 4.
ImplementasiSistem
19
4.1. ImplementasiSistem
19
4.2. Tujuan Implementasi Sistem
19
4.3. Komponen Utama dalam Implementasi Sistem
20
4.3.1. Perangkat Keras (
Hardware
)
20
4.3.2. Perangkat Lunak (
Software
)
21
4.3.3. Pengguna
(Brainware)
21
4.4. Demonstrasi Program
21
(8)
4.4.2. Tampilan Menu
22
4.4.3. Tampilan Lihat Barang
23
4.4.4. Tampilan Tambah Barang
24
4.4.5. Tampilan Data Saya
25
4.4.5. Tampilan Edit Barang
25
Bab 5.
Penutup
26
5.1. Kesimpulan
26
5.2. Saran
27
DaftarPustaka
Lampiran
(9)
DAFTAR TABEL
Nomor
Judul
Halaman
Tabel
2.1
Versi-versi Android
7
(10)
DAFTAR GAMBAR
Nomor
Judul
Halaman
Gambar
2.1.
Platform Android
6
3.1.
Rancangan Menu Login
11
3.2.
Rancangan Menu
12
3.3.
Rancangan Menu Lihat Barang
13
3.4.
Rancangan Menu Tambah Barang
13
3.5.
Rancangan Menu Data Saya
14
3.6.
Rancangan Menu Edit Data
15
3.7.
Rancangan Basis Data
16
3.8.
FlowChart Program
18
4.1.
Tampilan Menu Login
22
4.2.
Tampilan Menu
23
4.3.
Tampilan Menu Lihat Barang
23
4.4.
Tampilan Menu Tambah Barang
24
4.5.
Tampilan Menu Data Saya
25
(11)
ABSTRAK
Usaha Kecil Menengah (UKM) merupakan usaha yang dilakukan oleh mereka yang
bekerja pada tingkat mikro. Seperti halnya para pedagang yang berdagang di kios atau
mereka yang bekerja membuat suatu usaha dagang. Dengan adanya bantuan teknologi
mobile yang berkembang saat ini, pedagang UKM dapat memanfaatkan fasilitas
teknologi berbasis mobile yang berfungsi sebagai pencatatan barang dalam
genggaman mereka. Dengan memanfaatkan teknologi berbasis mobile ini diharapkan
pedagang UKM dapat mengurangi kesalahan dalam pencatatan barang.
(12)
BAB 1
PENDAHULUAN
1.1.
Latar Belakang
Aset merupakan harta yang sangat penting nilainya bagi sebuah perusahaan khususnya
bagi kalangan pengusaha usaha kecil menengah (UKM). Bertambah ataupun
berkurangnya suatu aset yang dimiliki, tentu akan mempengaruhi kinerja dalam
sebuah usaha. Begitu juga dengan UKM yang aktifitas utamanya adalah melakukan
inventaris, sudah pasti akan sedikit banyak bergantung pada aset yang dimiliki.
Apabila aset yang berupa barang-barang tersebut berkurang yang disebabkan rusak
atau hilang, maka akan sangat mengganggu proses kegiatan transaksi. Salah satu
penyebab hal tersebut terjadi adalah lemahnya sistim kontrol terhadap aset atau
barang-barang yang dimiliki UKM. Sistem kontrol aset berupa barang- barang akan
berjalan baik jika pencatatan atau inventarisasi barang-barang dilakukan dengan cepat,
tepat,
up to date
dan dapat diakses oleh siapapun dalam lingkup organisasi maupun
usaha kecil menengah (UKM).
Di era zaman teknologi yang semakin tinggi, pencatatan inventaris tidak lagi
dilakukan secara manual, yang prosesnya dilakukan dengan pencatatan di buku. Hal
itu lebih banyak menimbulkan resiko, seperti lupa atau kelalaian dalam pencatatan.
Sedangkan apabila memakan sistem yang komputer yang lebih terkomputerisasi
sehingga akan menjadi lebih efisien dan efektif. Sehubungan dengan hal di atas, guna
(13)
memberi alternatif metode inventaris barang yang lebih mudah, cepat dan efisien,
maka dibuatlah suatu perancangan aplikasi inventaris barang. Aplikasi ini dibuat
sedemikian rupa sehingga memudahkan pengguna, dalam hal ini petugas inventaris
dan juga UKM dalam mengambil sebuah keputusan. Untuk itu disini saya memiliki
insiatif membangun sebuah “aplikasi inventaris barang untuk usaha kecil menengah
(UKM) berbasis android”. Dimana sistem operasi android lagi populer di zaman
sekarang.
1.2.
Rumusan Masalah
Dari uraian latar belakang di atas disimpulkan rumusan masalah dalam penulisan ini
adalah ”Bagaimana membuat program
aplikasi inventaris barang berbasis android
”.
1.3.
Batasan Masalah
Untuk menghindari pembahasan diluar permasalahan, berikut adalah batasan
permasalahan:
1.
Sistem menangani penginputan,
update
dan hapus data.
2.
Sistem Basis Data yang dibangun menggunakan Java, XML, PHP dan
MySQL Sebagai Database-nya dengan Sistem Operasi Windows.
1.4.
Tujuan
(14)
1.
Untuk membuat Perancangan Aplikasi Inventaris barang ini maka diharapkan
dapat membantu pihak Usaha Kecil Menengah.
2.
Sistem ini memberikan kemudahan dalam melakukan proses pengoperasian
tentang Inventaris Barang dengan cepat, tepat, dan akurat.
1.5.
Metodologi Penelitian
Metode penelitian yang digunakan dalam perancangan sistem ini adalah sebagai
berikut:
1.
Library Research
Membaca dari literatur-literatur terutama tentang pemrograman Android,
belajar dari buku-buku, majalah dan tabloid komputer khususnya tentang
pembuatan aplikasi android, serta konsep-konsep yang bersifat teoritis sebagai
acuan penulisan proposal Tugas Akhir.
2.
Perancangan dan Pembuatan Sistem
Saya berusaha untuk mulai menyelesaikan permasalahan yang ada dengan
jalan merancang sistem Desain Program, yang diwujudkan dalam Dokumen
Flow, Perancangan Input Output.
3.
Pengujian dan Analisa Sistem
Setelah perancangan dan pembuatan sistem selesai, maka perlu kiranya
menguji sistem tersebut, guna mengetahui apakah sistem yang dibuat ini sesuai
dengan rancangan dan sesuai dengan tujuan pembuatan.
1.6.
Sistematika Penulisan
(15)
BAB 1 : PENDAHULUAN
Dalam bab ini penulis menguraikan Latar Belakang, Rumusan Masalah, Tujuan,
Metode Penelitian dan Sistematika Penulisan.
BAB 2 : LANDASAN TEORI
Dalam bab ini penulis menguraikan beberapa hal yang berhubungan dengan aplikasi
android, dan
software.
BAB 3 : PERANCANGAN SISTEM
Dalam bab ini penulis menguraikan tentang perancangan sistem yang
dirancang yang meliputi perancangan layout, perancangan
database
, gambaran
aplikasi
android
yang akan dibuat serta bagaimana algoritma aplikasi tersebut saat
dijalankan.
BAB 4 : IMPLEMENTASI SISTEM
Dalam bab ini penulis menyajikan tentang pengertian implementasi sistem, tujuan
implementasi sistem serta spesifikasi aplikasi.
BAB 5 : KESIMPULAN DAN SARAN
(16)
BAB 2
LANDASAN TEORI
2.1. Sekilas Sistem Operasi Android
Android merupakan sebuah sistem operasi sama halnya dengan sistem operasi
Windows, Linux, maupun Mac OS. Aplikasi android dikembangkan menggunakan
bahasa pemrograman java dan bersifat
open source
. Yang mana artinya aplikasi
android dapat dikembangkan oleh siapapun tanpa adanya license yang mengikatnya.
Sistem operasi android dikembangkan oleh perusahaan google sama seperti halnya
dengan windows yang dikembangkan oleh perusahaan microsoft.
Sistem operasi android dirilis dalam versi beta pada tanggal 5 November 2007
yang kemudian versi-versi berikutnya telah tersedia untuk pengguna. Sekedar
informasi telepon yang pertama kali menggunakan sistem operasi ini adalah HTC
Dream yang dirilis pada Bulan Oktober 2008 yang menggunakan Android versi
pertama
2.2 Platform Android
Platform
adalah arsitektur fondasi standar sebuah sistem aplikasi dapat berjalan, atau
bisa juga dikatakan
Platform
adalah dasar dari teknologi dimana teknologi yang lain
(17)
atau proses-prosesnya dibuat. Sebuah
Platform
terdiri dari sistem operasi yaitu
program sistem koordinasi komputer yang memberikan perintah-perintah kepada
processor
dan
hardware
untuk melakukan operasi-operasi logis dan mengatur
pergerakan data di komputer. Banyak yang beranggapan bahwa
Platform
dan Sistem
Operasi adalah sama, namun pada kenyataanya tidak. Platform merupakan dasar atau
tempat dimana sistem operasi bekerja, tanpa
platform
sistem operasi tidak akan bisa
berjalan.
Didalam hal ini Android dibangun atas dasar sistem operasi linux, yang mana
sistem operasi linux bersifat
open source.
Android memilih linux sebagai dasar
pembuatannya dikarenakan linux itu memiliki probilitas yang baik, sistem keamanan
yang bagus dan fitur
–
fiturnya yang menarik.
Gambar 2.1 Platform Android
Linux merupakan sistem operasi dengan keamanan yang tinggi. Android
mengandalkannya karena keamanan yang dimiliki Linux. Seluruh aplikasi Android
berjalan sesuai dengan proses-proses Linux dengan izin-izin yang diatur oleh sistem
Linux itu sendiri. Linux hadir dengan banyak fitur-fitur yang bermanfaat. Android
(18)
mengambil banyak keuntungannya, seperti dukungan manajemen memori, manajemen
power
, dan jaringan (Gargenta, 2011).
2.3 Versi
–
Versi Android
Sebagai perangkat lunak, Android memiliki pembaharuan. Yang mana
kreadibilitas-nya terus ditingkatkan dan lebih baik dari versi sebelumya. Berikut ini daftar versi
–
versi Android :
Tabel 2.1 Versi-versi Android
Versi Android
Tanggal Rilis
API Level
Nama Kode
1.5
30 April 2009
3
Cupcake
1.6
15 September 2009
4
Donut
2.0 - 2.1
26 Oktober 2009
7
Eclair
2.2
20 Mei 2010
8
Froyo
2.3
–
2.3.2
6 Desember 2010
9
Gingerbread
2.3.3
–
2.3.7
9 Pebruari 2011
10
Gingerbread
3.1
10 Mei 2011
12
Honeycomb
3.2
15 Juli 2011
13
Honeycomb
4.0.3
–
4.0.4
16 Desember 2011
15
Ice Cream Sandwich
4.1
9 Juli 2012
16
Jelly Bean
4.2
13 November 2012
17
Jelly Bean
4.3
24 Juli 2013
18
Jelly Bean
(19)
Angka versi Android menceritakan tentang besar dan kecil
platform
yang dirilis. Yang
paling penting adalah level API dari setiap versi. Angka versi berubah setiap waktu.
Terkadang disebabkan oleh perubahan API, dan bisa juga karena kecilnya perbaikan
bug
terhadap kemajuan kinerja.
2.4 Xampp
XAMPP merupakan tool yang menyediakan paket perangkat lunak ke dalam satu
buah paket. Dengan menginstall XAMPP maka tidak perlu lagi melakukan instalasi
dan konfigurasi web
server
Apache, PHP dan MySQL secara manual. XAMPP akan
menginstalasi dan mengkonfigurasikannya secara otomatis untuk anda atau auto
konfigurasi.
Anda
bis
mendownload
aplikasi
xampp
di
//www.apachefriends.org/en/xampp-window.html
.2.5 PHP dan MySQL Sebagai
Web Service
Web Service
ternyata sangat berbeda dengan website. Website dibuat untuk memiliki
tampilan atau
user interface
yang bagus sedangkan
Web Service
tidak memiliki
tampilan.
Web Service
tidak dibuat untuk berinteraksi langsung dengan
user
. Sesuai
dengan kata service yang ada pada namanya,
Web Service
hanya menyediakan service
atau layanan.
(20)
Jadi
Web Service
adalah aplikasi yang dibuat agar dapat dipanggil atau
diakses oleh aplikasi lain melalui internet dengan menggunakan format pertukaran
data sebagai pengiriman pesan.
Web Service
juga memungkinkan untuk dipanggil
dengan menggunakan protocol lain seperti SMTP (
Simple Mail Transfer Protocol
),
namun paling umum digunakan HTTP. Karena
Web Service
menggunakan protocol
HTTP, tentu PHP sebagai bahasa pemrograman web menjadi salah satu kekuatan
dalam bahasa pemrograman yang mengelola
Web Service
. Banyak teknik dan metode
untuk menghasilkan
Web Service
dengan php , pembuatan
Web Service
dengan format
XML dan JSON yang diambil dari database MySQL lewat bahasa pemrograman PHP.
(21)
BAB 3
PERANCANGAN SISTEM
3.1 Perancangan Sistem
Perancangan sistem adalah merancang atau mendesain suatu sistem dengan baik, yang
isinya yaitu tentang langkah
–
langkah operasi dalam pengolahan data dan prosedur
untuk mendukung operasi sistem.
Untuk memulai membangun sebuah aplikasi, dalam hal ini penulis membuat
sebuah aplikasi
mobile
android. Terlebih dahulu penulis harus merancang alur proses
berdasarkan kebutuhan pengguna yang akan menggunakan aplikasi ini.
3.2 Rancangan Awal
Aplikasi ini terdiri dari menu
login
, tampilan menu, lihat barang, tambah barang, dan
data penulis. Di menu
login
, pengguna akan disuruh untuk memasukkan nama beserta
password
nya. Setelah data yang diinputkan sesuai dengan data di database, maka
setelah itu akan masuk ke tampilan menu, dimana tampilan menu ini terdiri dari
button
Data Supplier,
button
Data Barang, dan
button
Data Penulis. Dimana disetiap
(22)
3.2.1 Rancangan Menu
Login
Di dalam menu
login
ini bagi pengguna harus memasukkan nama dan
password
.
Dikarenakan untuk mengakses tampilan menu dimana data data dari si pengguna ini
bersifat
private
. Di menu
login
ini terdapat
button login
. Dimana
button
ini memiliki
intent
yang akan menuju ke bagian menu.
Gambar 3.1 Rancangan Menu
Login
3.2.2 Rancangan Menu
Di tampilan menu akan terdiri dari Lihat Barang, Tambah Barang, Data Saya dan
tombol keluar. Dimana disetiap
button
akan menuju ke
intent
nya sendiri.
(23)
Gambar 3.2 Rancangan Menu
3.2.3 Rancangan Lihat Barang
Setelah tampil di menu menu, akan terdapat beberapa menu pilihan. Diantaranya
terdapat bagian lihat barang. Di menu lihat barang akan menampilkan data barang.
(24)
3.2.4 Rancangan Tambah Barang
Di menu tambah barang berfungsi untuk menginputkan data barang, dimana terdiri
dari 3 textview yaitu Nama Barang, Harga Barang, Deskripsi dan terdapat 1
button
Tambah Barang.
Gambar 3.4 Rancangan Menu Tambah Barang
3.2.5 Rancangan Data Saya
(25)
Gambar 3.5 Rancangan Menu Data Saya
3.2.6 Rancangan Edit Barang
Di menu Edit Barang ini berfungsi sebagai pembaharuan data barang yang akan
diperbaiki apabila ada kesalahan serta di menu edit barang juga terdapat penghapusan
data barang.
(26)
3.3 Rancangan Basis Data
Basisdata, menurut Ramakrishnan dan Gehrke (2003), adalah kumpulan data,
umumnya mendeskripsikan aktivitas satu organisasi atau lebih yang berhubungan
(Simarmata & Paryudi, 2006). Database yang penulis gunakan dalam perancangan ini
adalah
ta.sql
dari MySQL. Dalam database ini terdapat dua tabel.
(27)
3.4
Flowchart
Pembuatan
Program
Flowchart
merupakan bagan yang menunjukkan arus pekerjaan program secara
keseluruhan dari sistem. Flowchart menjelaskan tentang urutan
–
urutan dari prosedur
yang ada di dalam sistem menggunakan suatu simbol.
Berikut ini adalah gambar simbol
–
simbol standar dalam
flowchart
beserta dengan arti dari masing
–
masing simbol :
Tabel 3.1 Simbol-Simbol FlowChart
No
Nama
Gambar
Fungsi
1.
Terminator
Terminator ,fungsinya
untuk Permulaan /akhir
program
2
Process
Process,
digunakan untuk
melambangkan kegiatan
pemrosesan
input
.
3
Input
data
Input
data, fungsi untuk
Proses
input
data,
parameter.
4
Garis alir( flow line)
Garis alir (
flow line
),
fungsinya untuk arah
aliran program.
5
PreparationPreparation,
berfungsi
untuk proses inisialisasi
atau pemberian harga awal
atau untuk perulangan
/
looping
.
(28)
6
ProsesProses, fungsinya untuk
proses perhitungan/proses
pengolahan data .
7
ConnectorConnector
, penghubung
bagian-bagian
flowchart
yang berada pada satu
halaman.
8
Output dataOutput
data, informasi
9
Off pageconnector
Off page connector
penghubung
bagian-bagian
flowchart
yang
berada pada halaman
berbeda.
10
Predefinedprocess
Predefined process,
untuk
menyatakan sekumpulan
langkah proses yang
ditulis sebagai prosedur.
11
DisplayDisplay,
untuk
output
yang diajukan suatu
device,
seperti monitor
.
12
Magnetic diskMagnetic disk,
untuk
(29)
3.4.1 Flowchart Program
(30)
BAB 4
IMPLEMENTASI SISTEM
4.1 Implementasi Sistem
Implementasi sistem adalah langkah-langkah atau prosedur yang dilakukan dalam
menyelesaikan desain sistem yang telah disetujui untuk menguji, menginstal dan
melalui sistem baru atau sistem yang diperbaiki untuk menggantikan sistem yang
lama.
4.2 Tujuan Implementasi Sistem
Adapun tujuan dari implementasi sistem adalah mengkaji rangkaian sistem baik dari
segi
software
maupun
hardware
sebagai sarana pengolahan data dan penyajian data,
menyelesaikan rancangan sistem yang ada didalam dokumentasi sistem yang baru atau
yang telah disetujui, memastikan bahwa pemakai dapat mengoperasikan dengan
mudah sistem yang telah dibuat, memastikan bahwa sistem telah berjalan dengan
lancar dengan mengontrol dan melakukan instalasi secara benar, dan
memperhitungkan bahwa sistem telah memenuhi permintaan pemakai yaitu dengan
menguji sistem secara menyeluruh.
(31)
Pada dasarnya didalam suatu aplilkasi yang dirancang memerlukan beberapa
perangkat agar aplikasi dapat berjalan lancar. Berikut beberapa perangkat yang
dibutuhkan dalam pembuatan aplikasi ini:
4.3.1 Perangkat Keras (
Hardware
)
Hardware
secara bahasa berarti perangkat keras dari komputer, secara istilah
hardware
adalah bagian dari komputer yang dapat dirasakan kehadirannya secara fisik
dengan cara dilihat dan disentuh.
Hardware
merupakan seluruh komponen peralatan
yang membentuk suatu sistem komputer, dan peralatan lainnya yang memungkinkan
komputer dapat melaksanakan tugasnya. Dalam pembuatan aplikasi barang untuk
usaha kecil menengah (ukm), penulis menggunakan komputer (laptop), sebagai
pengganti telepon
mobile
yang mendukung Android, digunakan
emulator
Android
yang sudah diinstalasi dan dapat dioperasikan melalui komputer.
4.3.2 Perangkat Lunak (
Software
)
Perangkat lunak (
software
) adalah sekumpulan instruksi yang memungkinkan
perangkat keras untuk dapat memproses data. Perangkat lunak ini tidak berbentuk
fisik, melainkan berupa program yang diciptakan melalui perangkat elektronik. Dalam
(32)
perangkat lunak dikenal dengan apa yang disebut sistem operasi dan program aplikasi.
Penulis mengambangkan bagian perangkat lunak berupa aplikasi.
Perangkat-perangkat lunak yang penulis gunakan untuk membuat aplikasi
portal akademik ini antara lain
Java Development Kit
(JDK), Eclipse Juno, Android
SDK(
Software Development Kit
) 15,
Android Development Tools
(ADT), Sublime
Text, dan XAMPP.
4.3.3 Pengguna
(Brainware)
Brainware
adalah manusia yang terlibat dalam mengoperasikan serta mengatur
sistem di dalam komputer. Diartikan juga sebagai perangkat intelektual yang
mengoperasikan dan mengeksplorasi kemampuan dari
hardware
maupun
software.
Brainware
termasuk bagian penting dari sebuah sistem komputer.
Hardware
tidak dapat bekerja tanpa adanya
software
, sedangkan
software
dan
hardware
tidak dapat bekerja tanpa adanya
brainware
.
4.4 Demonstrasi Program
Demonstrasi program ini akan menjelakan bagaimana tampilan dari program dari
tampilan login, menu, lihat barang, tambah barang, dan data saya.
(33)
Di dalam menu
login
ini bagi pengguna harus memasukkan nama dan
password
.
Dikarenakan untuk mengakses tampilan menu dimana data data dari si pengguna ini
bersifat
private
. Di menu
login
ini terdapat
buttonlogin
. Dimana
button
ini memiliki
intent
yang akan menuju ke bagian menu.
Gambar 4.1 Tampilan Menu
Login
4.4.2 Tampilan Menu
Di tampilan menu akan terdiri dari Lihat Barang, Tambah Barang, Data Saya dan
tombol keluar. Dimana disetiap
button
akan menuju ke
intent
nya sendiri.
(34)
Gambar 4.2 Tampilan Menu
4.4.3 Tampilan Lihat Barang
Setelah tampil di menu menu, akan terdapat beberapa menu pilihan. Diantaranya
terdapat bagian lihat barang. Di menu lihat barang akan menampilkan data barang.
(35)
4.4.4 Tampilan Tambah Barang
Di menu tambah barang berfungsi untuk menginputkan data barang, dimana terdiri
dari 3 textview yaitu Nama Barang, Harga Barang, Deskripsi dan terdapat 1
button
Tambah Barang.
Gambar 4.4 Tampilan Menu Tambah Barang
4.4.5 Tampilan Data Saya
Di menu Data Saya akan menampilkan profil singkat tentang penulis. Dari
namapenulis, nim, jurusan, fakultas penulis.
(36)
Gambar 4.5 Tampilan Menu Data Saya
4.4.6 Tampilan Edit Barang
Di menu Edit Barang ini berfungsi sebagai pembaharuan data barang yang akan
diperbaiki apabila ada kesalahan serta di menu edit barang juga terdapat penghapusan
data barang.
(37)
BAB 5
PENUTUP
5.1 Kesimpulan
Dari pembahasan bab
–
bab sebelumnya maka penulis dapat mengambil
beberapakesimpulan dari permasalahan pembuatan Aplikasi Inventaris Untuk Usaha
Kecil Dan Menengah (UKM). Kesimpulan tersebut adalah:
1.
Dengan adanya aplikasi ini, para penjual atau mereka yang bekerja di bidang
dagang tidak perlu lagi melakukan pencatatan data dagang di buku secara
manual yang yang sewaktu waktu akan terjadi kehilangan data atau lupa dalam
pencatatan.
2.
Aplikasi ini dapat berjalan dengan koneksi internet sehingga data - data barang
yang diinputkan akan disimpan di sebuah server database admin. Sehingga jika
sewaktu waktu device nya hilang, si pengguna bisa kembali men - load
datanya. Karena aplikasi ini memakai sistem Client To Server.
(38)
5.2 Saran
Dengan selesainya pembuatan aplikasiini penulis ingin memberikansaran dengan
harapan yang nantinya dapat mendukung perngembangan sistem inilebih lanjut.
1.
Di harapkan dapat melakukan perbaikan dan penyempurnaan terhadap sistem
ini. Sehingga nantinya aplikasi inidapat memenuhi permintaan pasar.
2.
Sistem yang telah di buat masih memerlukan perbaikan karena masih memiliki
banyak kelemahan
–
kelemahan seperti laporan penjualan, atau pencarian data
barang secara otomatis.
(39)
DAFTAR PUSTAKA
[USU] Unievrsitas Sumatera Utara, FMIPA. Panduan Tatacara Penulisan Skripsi &
Tugas Akhir Edisi Kedua. 2008. FMIPA USU, Medan.
Membongkar Trik Rahasia Master PHP, Lukmanul Hakim, 2008
Pemrograman Aplikasi Mobile Smartphone Dan Tablet PC Berbasis Android,
Nazruddin Safaat, 2012.
Ravi Tamada Hyderabad. 2012. How to Connect Android to PHP, MySQL.
http://www.androidhive.info/2012/05/how-to-connect-android-with-php-mysql/
[8
Juni 2014].
Kolabroasi Dahsyat Android Dengna PHP Dan MYSQL, Akhmad Dharma Kasman,
2013.
(40)
LAMPIRAN
Listing Program Login.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center|center_vertical" android:background="#001122" > <TextView android:id="@+id/tv0" android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="Aplikasi Inventaris Usaha Kecil Menengah"
android:textSize="20sp" android:gravity="center" android:textStyle="bold" android:textColor="#ffffff" /> <TextView android:id="@+id/tv1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Nama" android:textColor="#ffffff" /> <EditText android:text="" android:id="@+id/username" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" android:hint="@string/hint_nama"
android:textColor="#ffffff"> </EditText> <TextView android:id="@+id/tv2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Password" android:textColor="#ffffff" /> <EditText android:text="" android:id="@+id/password"
(41)
android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" android:password="true" android:hint="@string/hint_password" android:textColor="#ffffff" > </EditText> <TextView android:id="@+id/tv" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="" /> <Button android:id="@+id/Button01" android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="Login" /> </LinearLayout>
Menu.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="fill_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:background="#001122">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Selamat Datang"
android:textSize="14dip"
android:gravity="center"
android:layout_marginTop="10dip"
android:textColor="#ffffff"/>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Di Aplikasi Inventaris"
android:textSize="12dip"
android:gravity="center"
android:layout_marginTop="10dip"
android:textColor="#ffffff"/>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
(42)
android:textSize="12dip"
android:gravity="center"
android:layout_marginTop="10dip"
android:textColor="#ffffff"/>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Pilih Menu :"
android:textSize="12dip"
android:gravity="left"
android:layout_marginTop="20dip"
android:textColor="#ffffff"/>
<Button android:id="@+id/btnLihatbarang"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Lihat Barang"
android:layout_marginTop="25dip"/> <!-- Button untuk menambah Data anggota --> <Button android:id="@+id/btnTambahbarang"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Tambah Barang"
android:layout_marginTop="25dip"/> <Button android:id="@+id/btndatasaya"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Data Saya"
android:layout_marginTop="25dip"/> </LinearLayout>
semua_barang.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="fill_parent"
android:orientation="vertical"
android:background="#001122">
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
tambah_barang.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="fill_parent"
(43)
android:background="#001122">
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
List_item.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="vertical" android:background="#001122">
<TextView
android:id="@+id/idmem"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone" /> <TextView android:id="@+id/nama" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingTop="6dip" android:paddingLeft="6dip" android:textSize="17dip" android:textStyle="bold" android:textColor="#ffffff"/>
<TextView
android:id="@+id/alamat"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
</LinearLayout>
tambahbarang.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" android:background="#001122">
(44)
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Nama Barang"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:paddingTop="10dip"
android:textSize="17dip"
android:textColor="#ffffff"/>
<EditText android:id="@+id/inputNama"
android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="5dip" android:layout_marginBottom="15dip" android:singleLine="true" android:hint="@string/hint_nama_barang"
android:textColor="#ffffff"/>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="Harga" android:paddingLeft="10dip" android:paddingRight="10dip" android:paddingTop="10dip" android:textSize="17dip"
android:textColor="#ffffff"/>
<EditText android:id="@+id/inputharga"
android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="5dip" android:layout_marginBottom="15dip" android:singleLine="true" android:hint="@string/hint_harga_barang"
android:textColor="#ffffff"/>
<!-- Label Alamat -->
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="Deskripsi" android:paddingLeft="10dip" android:paddingRight="10dip" android:paddingTop="10dip" android:textSize="17dip"
android:textColor="#ffffff"/>
<!-- Input alamat -->
<EditText android:id="@+id/inputdesk"
(45)
android:layout_height="wrap_content" android:layout_margin="5dip" android:layout_marginBottom="15dip" android:lines="4" android:gravity="top" android:hint="@string/hint_desk_barang"
android:textColor="#ffffff"/>
<Button android:id="@+id/btnTambahbarang"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Tambah Barang"
android:textColor="#ffffff"/>
</LinearLayout> Editbarang.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" android:background="#001122">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Nama Barang"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:paddingTop="10dip"
android:textSize="17dip"
android:textColor="#ffffff"/>
<EditText android:id="@+id/inputNama"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:layout_marginBottom="15dip"
android:singleLine="true"
android:textColor="#ffffff"/>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="Harga" android:paddingLeft="10dip" android:paddingRight="10dip" android:paddingTop="10dip" android:textSize="17dip"
android:textColor="#ffffff"/>
<EditText android:id="@+id/inputharga"
(46)
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:layout_marginBottom="15dip"
android:singleLine="true"
android:textColor="#ffffff"/>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="Deskripsi" android:paddingLeft="10dip" android:paddingRight="10dip" android:paddingTop="10dip" android:textSize="17dip"
android:textColor="#ffffff"/>
<EditText android:id="@+id/inputdeskripsi"
android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="5dip" android:layout_marginBottom="15dip" android:lines="4" android:gravity="top"
android:textColor="#ffffff"/>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"> <Button android:id="@+id/btnSave"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Save Changes"
android:layout_weight="1"/> <Button android:id="@+id/btnDelete"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Delete"
android:layout_weight="1"/>
</LinearLayout> </LinearLayout>
Data.xml
<?xml version="1.0" encoding="utf-8"?> <TableLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
(47)
<TableRow> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nama " android:textColor="#ffffff"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Syafri"
android:textColor="#ffffff"/> </TableRow>
<TableRow> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nim "
android:textColor="#ffffff"/> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="112406015" android:textColor="#ffffff"/> </TableRow>
<TableRow>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="Jurusan " android:textColor="#ffffff"/> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="D3 Teknik Informatika" android:textColor="#ffffff"/> </TableRow>
<TableRow> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Fakultas " android:textColor="#ffffff"/> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="MIPA"
android:textColor="#ffffff"/> </TableRow>
<TableRow> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Contact Person "
android:textColor="#ffffff"/> <TextView
(48)
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="085761579205"
android:textColor="#ffffff"/> </TableRow>
</TableLayout>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tugasakhir"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="14" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" > <activity
android:name="com.tugasakhir.Login"
android:label="@string/app_name" > <intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
</activity> <activity
android:name="com.tugasakhir.Menu"
android:label="@string/title_activity_menu" > </activity>
<activity
android:name="com.tugasakhir.Data" android:label="Data Saya">
</activity> <activity
android:name="com.tugasakhir.SemuaBarangActivity" android:label="Lihat Barang">
</activity> <activity
android:name="com.tugasakhir.TambahBarangActivity" android:label="Tambah Barang">
(49)
<activity
android:name="com.tugasakhir.EditBarangActivity"
android:label="Perbaharui Data Barang" > </activity> </application> </manifest> JSONParser.java package com.tugasakhir; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; 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.client.utils.URLEncodedUtils; import org.apache.http.impl.client.DefaultHttpClient; import org.json.JSONException; import org.json.JSONObject; import android.util.Log; public class JSONParser {
static InputStream is = null; static JSONObject jObj = null; static String json = "";
// constructor
public JSONParser() { }
// fungsi ambil json dari url
// lewat method HTTP POST atau GET
public JSONObject makeHttpRequest(String url, String method, List<NameValuePair> params) {
// membuat request HTTP
} catch (UnsupportedEncodingException e) { e.printStackTrace();
} catch (ClientProtocolException e) { e.printStackTrace();
(50)
} catch (IOException e) { e.printStackTrace(); }
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder(); String line = null;
while ((line = reader.readLine()) != null) { sb.append(line + "\n");
}
is.close();
json = sb.toString(); } catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString()); }
// try parse the string menjadi JSON object try {
jObj = new JSONObject(json); } catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString()); }
// return JSON String return jObj; } } Login.java package com.tugasakhir; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.ResponseHandler; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.BasicResponseHandler; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.DialogInterface;
(51)
import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast;
public class Login extends Activity { Button b; EditText et,pass; TextView tv; HttpPost httppost; StringBuffer buffer; HttpResponse response; HttpClient httpclient; List<NameValuePair> nameValuePairs; ProgressDialog dialog = null;
@Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.login);
b = (Button)findViewById(R.id.Button01); et = (EditText)findViewById(R.id.username); pass= (EditText)findViewById(R.id.password); tv = (TextView)findViewById(R.id.tv);
b.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
dialog = ProgressDialog.show(Login.this, "", "loading...", true);
new Thread(new Runnable() { public void run() {
login(); } }).start(); } }); } void login(){ try{ \httpclient=new DefaultHttpClient();
httppost= new HttpPost("http://10.0.2.2/TA/check.php"); // koneksi ke database localhost
(52)
nameValuePairs.add(new
BasicNameValuePair("username",et.getText().toString().trim())); // $Edittext_value = $_POST['Edittext_value'];
nameValuePairs.add(new
BasicNameValuePair("password",pass.getText().toString().trim()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); response=httpclient.execute(httppost);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
final String response = httpclient.execute(httppost, responseHandler); System.out.println("Response : " + response);
runOnUiThread(new Runnable() { public void run() {
tv.setText("Response from PHP : " + response); dialog.dismiss();
} });
if(response.equalsIgnoreCase("User Found")){ runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(Login.this,"Login Success", Toast.LENGTH_SHORT).show();
} });
startActivity(new Intent(Login.this, Menu.class)); }else{
showAlert(); }
}catch(Exception e){ dialog.dismiss();
System.out.println("Exception : " + e.getMessage()); }
}
public void showAlert(){
Login.this.runOnUiThread(new Runnable() { public void run() {
AlertDialog.Builder builder = new AlertDialog.Builder(Login.this); builder.setTitle("Login Error.");
builder.setMessage("User not Found.") .setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) { }
}); AlertDialog alert = builder.create(); alert.show();
} });
(53)
} }
Menu.java
package com.tugasakhir;
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button;
public class Menu extends Activity{ Button btnLihatbarang; Button btnTambahbarang; Button btndatasaya; @Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.menu); // inisialisasi button/tombol
btnLihatbarang = (Button) findViewById(R.id.btnLihatbarang); btnTambahbarang = (Button) findViewById(R.id.btnTambahbarang); btndatasaya = (Button) findViewById(R.id.btndatasaya);
// even klik untuk menampilkan class SemuaAnggotaActivity btnLihatbarang.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Tampilkan semua anggota activity lewat intent
Intent i = new Intent(getApplicationContext(), SemuaBarangActivity.class); startActivity(i);
} });
// even klik menampilkan TambahAnggotaACtivity
btnTambahbarang.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View view) {
// Tampilkan tambah anggota activity lewat intent
Intent i = new Intent(getApplicationContext(), TambahBarangActivity.class);
(54)
} });
btndatasaya.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View view) {
// Tampilkan tambah anggota activity lewat intent
Intent i = new Intent(getApplicationContext(), Data.class); startActivity(i);
} }); }
}
SemuaBarangActivity.java
package com.tugasakhir; import java.util.ArrayList; import java.util.HashMap; import java.util.List;
import org.apache.http.NameValuePair; import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONObject; import android.app.ListActivity; import android.app.ProgressDialog; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener; import android.widget.ListAdapter;
import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView;
public class SemuaBarangActivity extends ListActivity { // Progress Dialog
private ProgressDialog pDialog; // Membuat objek JSONParser
JSONParser jParser = new JSONParser();
(55)
// inisialisasi url semuanggota.php
private static String url_semua_anggota = "http://10.0.2.2/TA/semuaanggota.php"; // inisialisasi nama node dari json yang dihasilkan oleh php
private static final String TAG_SUKSES = "sukses"; private static final String TAG_BARANG = "barang"; private static final String TAG_IDMEM = "id"; private static final String TAG_NAMA = "nama"; // buat JSONArray barang
JSONArray barang = null; @Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.semua_barang); // Hashmap untuk ListView
barangList = new ArrayList<HashMap<String, String>>(); // buat method untuk menampilkan data pada Background Thread new AmbilDataJson().execute();
// ambil listview
ListView lv = getListView();
// pada saat mengklik salah satu nama barang // lalu alihkan pada class EditanggotaActivity
lv.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// ambil nilai dari ListItem yang dipilih
String idmem = ((TextView)
view.findViewById(R.id.idmem)).getText().toString(); // Starting new intent
Intent in = new Intent(getApplicationContext(), EditBarangActivity.class);
// kirim idmem ke activity berikutnya in.putExtra(TAG_IDMEM, idmem);
// mulai activity baru dan dapatkan respon dengan result kode 100
startActivityForResult(in, 100); }
}); }
// Respon dari Edit barang Activity @Override
(56)
protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data);
// jika result code 100 if (resultCode == 100) {
// jika result code 100 diterima
// artinya user mengedit/menghapus barang // reload layar ini lagi
Intent intent = getIntent(); finish();
startActivity(intent); }
} /**
* Background Async Task untuk menampilkan semua data anggota dengan HTTP Request
* */
class AmbilDataJson extends AsyncTask<String, String, String> { /**
* sebelum memulai background thread tampilkan Progress Dialog * */
@Override
protected void onPreExecute() { super.onPreExecute();
pDialog = new ProgressDialog(SemuaBarangActivity.this);
pDialog.setMessage("Mengambil Data barang. Silahkan Tunggu..."); pDialog.setIndeterminate(false);
pDialog.setCancelable(false); pDialog.show();
} /**
* mengambil semua data barang dari url * */
protected String doInBackground(String... args) { // membangun Parameter
List<NameValuePair> params = new ArrayList<NameValuePair>(); // ambil JSON string dari URL
JSONObject json = jParser.makeHttpRequest(url_semua_anggota, "GET", params);
// cek log cat untuk JSON reponse
Log.d("Semua Anggota: ", json.toString());
try {
// mengecek untuk TAG SUKSES int sukses = json.getInt(TAG_SUKSES); if (sukses == 1) {
(57)
// mengambil Array dari barang
barang = json.getJSONArray(TAG_BARANG); // looping data semua member/anggota
for (int i = 0; i < barang.length(); i++) {
JSONObject c = barang.getJSONObject(i); // tempatkan setiap item json di variabel String id = c.getString(TAG_IDMEM); String nama = c.getString(TAG_NAMA); // buat new HashMap
HashMap<String, String> map = new HashMap<String, String>(); // menambah setiap child node ke HashMap key => value
map.put(TAG_IDMEM, id); map.put(TAG_NAMA, nama); // menambah HashList ke ArrayList barangList.add(map);
} } else {
// tidak ditemukan data anggota/member // Tampilkan layar tambahAnggotaActivity
Intent i = new
Intent(getApplicationContext(),TambahBarangActivity.class);
// tutup semua activity sebelumnya i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i); }
} catch (JSONException e) { e.printStackTrace(); }
return null; }
/**
* setelah menyelesaikan background task hilangkan the progress dialog * **/
protected void onPostExecute(String file_url) {
// hilangkan dialog setelah mendapatkan semua data member pDialog.dismiss();
// update UI dari Background Thread runOnUiThread(new Runnable() {
public void run() { /**
* update hasil parsing JSON ke ListView * */
ListAdapter adapter = new SimpleAdapter( SemuaBarangActivity.this, barangList,
(58)
R.layout.list_item, new String[] { TAG_IDMEM, TAG_NAMA}, new int[] { R.id.idmem, R.id.nama });
// update listview setListAdapter(adapter); }
}); }
} }
TambahBarangActivity.java
package com.tugasakhir; import java.util.ArrayList; import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair; import org.json.JSONException;
import org.json.JSONObject; import android.app.Activity; import android.app.ProgressDialog; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText;
public class TambahBarangActivity extends Activity { // Progress Dialog
private ProgressDialog pDialog;
JSONParser jsonParser = new JSONParser(); EditText inputNama;
EditText inputharga; EditText inputdesk;
// inisialisasi url tambahanggota.php
private static String url_tambah_anggota = "http://10.0.2.2/TA/tambahanggota.php"; // inisialisasi nama node dari json yang dihasilkan oleh php (utk class ini hanya node "sukses")
(59)
@Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tambahbarang); // inisialisasi Edit Text
inputNama = (EditText) findViewById(R.id.inputNama); inputharga = (EditText) findViewById(R.id.inputharga); inputdesk = (EditText) findViewById(R.id.inputdesk); // inisialisasi button
Button btnTambahAnggota = (Button) findViewById(R.id.btnTambahbarang);
// klik even tombol tambah anggota
btnTambahAnggota.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View view) {
// buat method pada background thread new BuatAnggotaBaru().execute(); }
}); }
/**
* Background Async Task untuk menambah data anggota baru * */
class BuatAnggotaBaru extends AsyncTask<String, String, String> { /**
* sebelum memulai background thread tampilkan Progress Dialog * */
@Override
protected void onPreExecute() { super.onPreExecute();
pDialog = new ProgressDialog(TambahBarangActivity.this); pDialog.setMessage("Menambah data..silahkan tunggu"); pDialog.setIndeterminate(false);
pDialog.setCancelable(true); pDialog.show();
} /**
* menambah data * */
protected String doInBackground(String... args) { String nama = inputNama.getText().toString(); String harga = inputharga.getText().toString(); String deskripsi = inputdesk.getText().toString(); // membangun Parameters
(60)
params.add(new BasicNameValuePair("nama", nama)); params.add(new BasicNameValuePair("harga", harga)); params.add(new BasicNameValuePair("deskripsi", deskripsi)); // mengambil JSON Object
//dengan method POST
JSONObject json = jsonParser.makeHttpRequest(url_tambah_anggota,"POST", params);
// periksa log cat respon
Log.d("Respon tambah anggota", json.toString()); // check for success tag
try {
int sukses = json.getInt(TAG_SUKSES); if (sukses == 1) {
// jika sukses menambah data baru
Intent i = new Intent(getApplicationContext(), SemuaBarangActivity.class);
startActivity(i); // tutup activity ini finish();
} else {
// jika gagal dalam menambah data }
} catch (JSONException e) { e.printStackTrace(); }
return null; }
/**
* After completing background task Dismiss the progress dialog * **/
protected void onPostExecute(String file_url) {
// hilangkan dialog ketika selesai menambah data baru pDialog.dismiss();
} }
}
EditBarangActivity.java
package com.tugasakhir; import java.util.ArrayList; import java.util.List;
(61)
import org.apache.http.NameValuePair; import org.apache.http.message.BasicNameValuePair; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.app.ProgressDialog; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText;
public class EditBarangActivity extends Activity {
EditText txtNama; EditText txtharga; EditText txtdeskripsi; Button btnSave; Button btnDelete; String idmem; // Progress Dialog
private ProgressDialog pDialog; // instansiasi objek JSON parser
JSONParser jsonParser = new JSONParser(); // inisialisasi url anggotadetail.php
private static final String url_detail_anggota = "http://10.0.2.2/TA/anggotadetail.php"; // inisialisasi url updateanggota.php
private static final String url_update_anggota = "http://10.0.2.2/TA/updateanggota.php";
// inisialisasi url hapusanggota.php
private static final String url_delete_anggota = "http://10.0.2.2/TA/hapusanggota.php";
// inisialisasi nama node dari json yang dihasilkan oleh php private static final String TAG_SUKSES = "sukses"; private static final String TAG_barang = "barang"; private static final String TAG_IDbarang = "id"; private static final String TAG_NAMA = "nama"; private static final String TAG_HARGA = "harga"; private static final String TAG_DESKRIPSI = "deskripsi"; @Override
(62)
super.onCreate(savedInstanceState); setContentView(R.layout.editbarang);
// inisialisasi button
btnSave = (Button) findViewById(R.id.btnSave); btnDelete = (Button) findViewById(R.id.btnDelete);
// ambil data anggota detail dari intent Intent i = getIntent();
// ambil member id (idmem) dari intent idmem = i.getStringExtra(TAG_IDbarang);
// buat method ambil detail anggota pada background thread new AmbilDetailAnggota().execute();
// klik even tombol save
btnSave.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View arg0) {
// buat background task untuk simpan anggota new SimpanAnggotaDetail().execute(); }
});
// klik even tombol delete
btnDelete.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View arg0) {
// buat method hapus anggota dalam background thread new HapusAnggota().execute();
} }); }
/**
* Background Async Task untuk menmpilkan data detail anggota * */
class AmbilDetailAnggota extends AsyncTask<String, String, String> { /**
* Sebelum memulai background thread tampilkan Progress Dialog * */
@Override
protected void onPreExecute() { super.onPreExecute();
pDialog = new ProgressDialog(EditBarangActivity.this);
pDialog.setMessage("Mengambil data barang. Silahkan tunggu..."); pDialog.setIndeterminate(false);
(63)
pDialog.setCancelable(true); pDialog.show();
} /**
* Ambil detail anggota background thread * */
protected String doInBackground(String... params) {
// Cek jika tag sukses bernilai 1 atau 0 int sukses;
try {
// Membangun Parameters
List<NameValuePair> params1 = new ArrayList<NameValuePair>(); params1.add(new BasicNameValuePair("idmem", idmem));
// ambil detail anggota dengan request HTTP // dengan menggunakan methode GET
JSONObject json = jsonParser.makeHttpRequest(url_detail_anggota, "GET", params1);
// cek log untuk json respon
Log.d("Barang Detail", json.toString()); // json sukses tag
sukses = json.getInt(TAG_SUKSES); if (sukses == 1) {
// sukses mengambil detail anggota
JSONArray barangObj = json.getJSONArray(TAG_barang); // JSON Array
// ambil objek member pertama dari JSON Array
final JSONObject barang = barangObj.getJSONObject(0);
// update UI dari Background Thread runOnUiThread(new Runnable() {
public void run() { // member dengan idmem yang ditemukan // Edit Text
txtNama = (EditText) findViewById(R.id.inputNama); txtharga = (EditText) findViewById(R.id.inputharga);
txtdeskripsi = (EditText) findViewById(R.id.inputdeskripsi);
try {
// tampilkan data member di EditText
txtNama.setText(barang.getString(TAG_NAMA)); txtharga.setText(barang.getString(TAG_HARGA)); txtdeskripsi.setText(barang.getString(TAG_DESKRIPSI));
(1)
echo json_encode($respon); }
?>
Tambahbarang.php <?php
//koneksi database mysql include("koneksi.php");
//buat array untuk menampung respon dari JSON $respon = array();
// cek apakah nilai yang dikirimkan android sudah terisi
if (isset($_POST['nama']) && isset($_POST['harga'])&&isset($_POST['deskripsi'])) {
$nama = $_POST['nama']; $harga = $_POST['harga'];
$deskripsi = $_POST['deskripsi']; // query menambah data barang
$result = mysql_query("INSERT INTO barang(nama, harga, deskripsi) VALUES('$nama', '$harga','$deskripsi')");
// cek apakah query berhasil menambah data if ($result) {
// jika berhasil menambah data ke mysql $respon["sukses"] = 1;
$respon["pesan"] = "Berhasil menambah data barang."; // memprint/mencetak JSON respon
echo json_encode($respon); } else {
// gagal menambah data barang $respon["sukses"] = 0;
$respon["pesan"] = "Gagal menambah data.";
// memprint/mencetak JSON respon echo json_encode($respon);
} } else {
// jika data tidak terisi/tidak terset $respon["sukses"] = 0;
$respon["pesan"] = "data belum terisi"; // memprint/mencetak JSON respon echo json_encode($respon);
} ?>
(2)
<?php
//koneksi database mysql include("koneksi.php");
//buat array untuk menampung respon dari JSON $respon = array();
// cek apakah nilai yang dikirimkan android sudah terisi if (isset($_POST['idmem'])
&& isset($_POST['nama']) && isset($_POST['harga']) && isset($_POST['deskripsi'])) {
$idmem = $_POST['idmem']; $nama = $_POST['nama']; $harga = $_POST['harga'];
$deskripsi = $_POST['deskripsi'];
// query update berdasarkan id
$result = mysql_query("UPDATE barang SET nama = '$nama', harga = '$harga', deskripsi = '$deskripsi' WHERE id = $idmem");
// cek apakah berhasil update atau tidak if ($result) {
// jika sukses diupdate $respon["sukses"] = 1;
$respon["pesan"] = "Data barang berhasil diupdate.";
// memprint/mencetak JSON respon echo json_encode($respon);
} else {
// gagal update data $respon["sukses"] = 0;
$respon["pesan"] = "Gagal update data.";
// memprint/mencetak JSON respon echo json_encode($respon);
} } else {
// jika data tidak terisi/tidak terset $respon["sukses"] = 0;
$respon["pesan"] = "data belum terset/terisi"; // memprint/mencetak JSON respon
echo json_encode($respon); }
?>
(3)
<?php
//koneksi database mysql include("koneksi.php");
//buat array untuk menampung respon dari JSON $response = array();
// cek apakah variabel idmem sudah terset / terisi if (isset($_POST['idmem'])) {
$idmem = $_POST['idmem'];
// query update barang berdasarkan id
$result = mysql_query("DELETE FROM barang WHERE id = $idmem");
// jika berhasil di hapus
if (mysql_affected_rows() > 0) { $respon["sukses"] = 1;
$respon["pesan"] = "barang berhasil dihapus"; // memprint/mencetak JSON respon
echo json_encode($respon); } else {
// jika gagal dihapus $respon["sukses"] = 0;
$respon["pesan"] = "Gagal dihapus"; // memprint/mencetak JSON respon echo json_encode($respon);
} } else {
// jika data tidak terisi/tidak terset $respon["sukses"] = 0;
$respon["pesan"] = "data belum terisi"; // memprint/mencetak JSON respon echo json_encode($respon);
} ?>
Barangdetail.php <?php
//koneksi database mysql include("koneksi.php");
//buat array untuk menampung respon dari JSON $respon = array();
// cek apakah variabel idmem sudah terset / terisi if (isset($_GET["idmem"])) {
(4)
// query ambil data barang berdasarkan id
$result = mysql_query("SELECT *FROM barang WHERE id = $idmem"); if (!empty($result)) {
// jika data barang ada (besar dari nol) if (mysql_num_rows($result) > 0) { $result = mysql_fetch_array($result);
// temp barang array $barang = array();
$barang["id"] = $result["id"]; $barang["nama"] = $result["nama"]; $barang["harga"] = $result["harga"];
$barang["deskripsi"] = $result["deskripsi"]; // sukses
$respon["sukses"] = 1; // node barang
$respon["barang"] = array();
//tambahkan array $barang pada array final $respon array_push($respon["barang"], $barang);
// memprint/mencetak JSON respon echo json_encode($respon);
} else {
// tidak ada barang (kecil dari nol) $respon["sukses"] = 0;
$respon["pesan"] = "Tidak ada barang"; // memprint/mencetak JSON respon echo json_encode($respon);
} } else {
// jika query tidak tidak meghasilkan data (tidak ada barang) $respon["sukses"] = 0;
$respon["pesan"] = "tidak ada barang"; // memprint/mencetak JSON respon echo json_encode($respon);
} } else {
// jika data tidak terisi/tidak terset $respon["sukses"] = 0;
$respon["pesan"] = "data belum terisi"; // memprint/mencetak JSON respon echo json_encode($respon);
} ?>
(5)
SURAT KETERANGAN
Hasil Uji Program Tugas Akhir
Yang bertanda tangan di bawah ini, menerangkan bahwa Mahasiswa Tugas Akhir
Program D-III Teknik Informatika :
Nama
: SYAFRI ALI PUTRA
NIM
: 112406015
Program Studi
: D-III Teknik Informatika
Judul Tugas Akhir
: MEMBANGUN APLIKASI INVENTARIS BARANG
UNTUK USAHA KECIL DAN MENENGAH (UKM)
BERBASIS ANDROID
telah melakukan test program Tugas Akhir Mahasiswa tersebut di atas pada tanggal
…..
../06/2014.
Dengan hasil :
SUKSES
/
GAGAL
Demikian diterangkan untuk digunakan melengkapi Syarat Pendaftaran Meja Hijau
Tugas Akhir Mahasiswa bersangkutan di Departemen Matematika FMIPA USU
Medan.
Medan, Juni 2014
Dosen Pembimbing
Program D-3 Teknik Informatika
Drs. Rachmad Sitepu, M.Si
NIP 195304181987031001
(6)
KEMENTERIAN PENDIDIKAN NASIONAL UNIVERSITAS SUMATERA UTARA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM Jl. Bioteknologi No.1 Kampus USU Padang Bulan Medan-20155
Telp. (061) 8211050, Fax. (061) 8214290
KARTU BIMBINGAN TUGAS AKHIR MAHASISWA
Nama Mahasiswa
: SYAFRI ALI PUTRA
Nomor Stambuk
: 112406015
Judul Tugas Akhir
: MEMBANGUN
APLIKASI
INVENTARIS
BARANG
UNTUK
USAHA
KECIL
DAN
MENENGAH (UKM) BERBASIS ANDROID
Dosen Pembimbing
: Drs. Rachmad Sitepu, M.Si
Tanggal Mulai Bimbingan
:
Tanggal Selesai Bimbingan :
No.
Tanggal
Asisten
Bimbingan
Pembahasan pada
Asistensi Mengenai, pada
Bab :
Paraf Dosen
Pembimbing
Keterangan
1.
2.
3.
4.
5.
6.
7
Kartu ini harap dikembalikan ke Departemen Matematika bila bimbingan telah selesai.