Membangun Aplikasi Inventaris Barang untuk Usaha Kecil dan Menengah (UKM) Berbasis Android

(1)

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

Preparation

Preparation,

berfungsi

untuk proses inisialisasi

atau pemberian harga awal

atau untuk perulangan

/

looping

.


(28)

6

Proses

Proses, fungsinya untuk

proses perhitungan/proses

pengolahan data .

7

Connector

Connector

, penghubung

bagian-bagian

flowchart

yang berada pada satu

halaman.

8

Output data

Output

data, informasi

9

Off page

connector

Off page connector

penghubung

bagian-bagian

flowchart

yang

berada pada halaman

berbeda.

10

Predefined

process

Predefined process,

untuk

menyatakan sekumpulan

langkah proses yang

ditulis sebagai prosedur.

11

Display

Display,

untuk

output

yang diajukan suatu

device,

seperti monitor

.

12

Magnetic disk

Magnetic 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.

Diketahui,

Disetujui,

Ketua Program Studi D3 Teknik Informatika Pembimbing Utama

Dr. Elly Rosmaini, M.Si Drs. Rachmad Sitepu, M.Si

NIP 196005201985032002 NIP 195304181987031001