Diajukan kepada Fakultas Memenuhi Syarat JURUSAN SEJARAH ...
LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat
Transcript of LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat
LAPORAN KERJA PRAKTEK
RANCANG BANGUN APLIKASI E-NOTA BERBASIS ANDROID
(yang terintegrasi dengan Sistem Inventori PT Karya Agung Yogyakarta)
Diajukan sebagai salah satu syarat
Untuk memperoleh gelar sarjana Teknik Informatika
Disusun oleh :
Nama : Nur Ahmad Hamidi
NIM : 11651011
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SUNAN KALIJAGA
YOGYAKARTA
2014
iv
KATA PENGANTAR
Puji syukur penulis panjatkan kepada Allah SWT yang telah memberikan
hidayah yang tidak ternilai harganya dan kelancaran dalam setiap langkah yang
ada selama pelaksanaan kerja praktek. Atas berkat rahmat-Nya, pelaksanaan kerja
praktek yang dilakukan di PT Karya Agung yang bergerak dibidang kontraktor
bangunan dapat dilaksanakan dengan baik. Pelaksanaan kerja praktek ini
merupakan salah satu syarat untuk memperoleh gelar Sarjana Teknik Informatika
di Universitas Islam Negeri Sunan Kalijaga.
Selanjutnya penulis mengucapkan terima kasih yang sebesar-besarnya
kepada :
1. Bapak, Ibu dan kakak tercinta yang tak henti-hentinya selalu beri
dukungan baik secara materi dan non materi.
2. Aulia Faqih R., M. Kom selaku dosen pembimbing yang telah banyak
memberi pangarahan, pembelajaran demi kelancaran pelaksanaan kerja
praktek.
3. Agus Mulyanto, S.Si.,M.Kom., selaku Ketua Jurusan Teknik
Informatika Fakultas Sains dan Teknologi.
4. Irham Son’any, selaku teman pembimbing lapangan di PT Karya
Agung Yogyakarta.
5. Aziz Arifianto, Randy Setia Putra, Ridwan Hanafi dan Abul Kadir Al-
Jailani sahabat serta teman satu kelompok kerja praktek yang telah
bekerja sama dengan baik selama pelaksanakan kerja praktik.
v
6. Teman-teman Program Studi Teknik Informatika Kelas Khusus
angkatan 2011 UIN Sunan Kalijaga yang banyak membantu dalam
pelaksanaan kerja praktek dan dalam penyusunan laporan.
Penulis menyadari masih banyaknya kekurangan dan kelemahan dalam
pelaksanaan serta penyusunan laporan kerja praktek ini. Semoga
pelaksanaan kerja praktek ini menjadi pengalaman yang berharga bagi
penulis dan bermanfaat untuk masyarakat.
Yogyakarta, 16 Desember 2014
Nur Ahmad Hamidi
vi
DAFTAR ISI
COVER i
HALAMAN JUDUL ii
LEMBAR PENGESAHAN iii
KATA PENGANTAR iv
DAFTAR ISI vi
DAFTAR GAMBAR vii
DAFTAR TABEL ix
BAB I PENDAHULUAN 1
1.1. Latar Belakang 1
1.2. Rumusan Masalah Kerja Praktek 2
1.3. Batasan Kerja Praktek 2
1.4. Tujuan Kerja Praktek 3
1.5. Manfaat Kerja Praktek 3
BAB II TEMPAT KERJA PRAKTEK 4
2.1. Gambaran Umum Instansi 4
2.2. Runag Lingkup Instansi 7
BAB III LAPORAN KEGIATAN 14
3.1. Hasil 14
3.2. Pembahasan 15
BAB IV PENUTUP 37
4.1. Kesimpulan 37
4.2. Rekomendasi 37
LAMPIRAN 38
vii
DAFTAR GAMBAR
Gambar 2.0 Logo PT. Karya Agung 6
Gambar 2.1 Struktur PT. Karya Agung 6
Gambar 3.0 Diagram Use Case 13
Gambar 3.1 Diagram Activity 14
Gambar 3.2 Diagram Sequence 15
Gambar 3.3 Rancangan ERD 16
Gambar 3.4 Rancangan Relasi Tabel 17
Gambar 3.5 Rancangan Halaman Login 20
Gambar 3.6 Rancangan Halaman Utama 20
Gambar 3.7 Rancangan Halaman Tampilan Data 21
Gambar 3.8 Source Code koneksi.java 35
Gambar 3.9 Source Code login.java 36
Gambar 3.10 Source Code JSONParser.java 39
Gambar 3.11 Source Code CustomHttpClient.java 41
Gambar 3.12 Source Code CameraPhotoCapture.java 43
Gambar 3.13 Source Code display_beli.java 51
Gambar 3.14 Source Code display_jual.java 54
Gambar 3.15 Source Code connect.php 57
Gambar 3.16 Source Code del_file.php 57
Gambar 3.17 Source Code display_jual.php 58
Gambar 3.18 Source Code display_beli.php 58
viii
Gambar 3.19 Source Code UploadToServer.php 59
Gambar 3.20 Source Code login.php 59
Gambar 3.21 Halaman Login 25
Gambar 3.22 Halaman Success Login 26
Gambar 3.23 Halaman Utama 27
Gambar 3.24 Halaman Capture 28
Gambar 3.25 Halaman Setelah Capture Gambar 28
Gambar 3.26 Halaman Upload 29
Gambar 3.27 Tampilan Data Pemebelian 30
Gambar 3.28 Tampilan Data Penjualan 30
Gambar 3.29 Tampilan Setelah Klik Data 31
Gambar 3.30 Tampilan Setelah Upload Sukses 31
Gambar 3.31 Nota Berhasil Upload ke Folder Server 32
Gambar 3.32 Tampilan Awal Nota di Sistem 32
Gambar 3.33 Tampilan Klik Lihat 33
ix
DAFTAR TABEL
Tabel 2.0 Legalitas PT. Karya Agung 7
Tabel 2.1 Landasan Hukum Pendirian Perusahaan 7
Tabel 2.2 Komisaris ( Untuk PT ) 8
Tabel 2.3 Direksi/Penanggung Jawab/Pengurus Perusahaan 8
Tabel 2.4 Ijin Usaha 9
Tabel 2.5. Legalitas Rincian Pajak PT. Karya Agung 9
Tabel 3.0 Desain Tabel penjualan 18
Tabel 3.1 Desain Tabel pembelian 18
Tabel 3.2 Desain Tabel nota 19
1
BAB I
PENDAHULUAN
1.1. Latar Belakang Masalah
Perkembangan teknologi zaman sekarang sangat cepat, dengan
pemanfaatan Teknologi Informasi akan meningkatkan produktifitas kerja dan
peningkatan mutu kualitas. Keberadaan internet menjadi sarana untuk
mendapatkan dan menyebarkan informasi dengan cepat. Internet memberikan
keuntungan untuk manusia baik itu dalam urusan individu maupun instansi
seperti pendidikan, pemerintahan, dan komersial. Terbentuknya jaringan ini,
sebuah organisasi dapat melakukan pertukaran informasi secara internal
maupun eksternal dengan organisasi lain (Kadir, 2003). Di era modern ini,
munculnya sistem operasi android juga sangat membantu seseorang untuk
berkomunikasi. Contoh dari aplikasi sosial media pada sistem operasi android
yaitu BlackBerry Messenger dan WhatsApp, dan selain itu perangkat seluler
pintar ini yang lebih sadar akan lokasi dan preferensi penggunanya. (Elgin
Ben, 2005)
Seiring dengan perkembangan teknologi tersebut, berdasarkan hasil
wawancara Saya dengan mas Irham selaku pembimbing lapangan PT Karya
Agung. Disetiap transaksi penjualan dan pembelian di PT Karya Agung harus
menggunakan nota. Permasalah yang didapat disini adalah Bagaimana jika
nota tersebut hilang, sobek atau basah, sehingga pencatatan laporan akan
kurang sah jika tanpa nota. Disini, nota sangat diperlukan untuk dianalisis
2
kembali menjadi laporan setiap bulanan maupun tahunan. Sistem Inventori
juga sangat berperan penting untuk kasus masalah ini, karena Sistem
Inventori disetiap ada pengeluaran dan pemasukan suatu barang akan dicatat.
Pemanfaatan teknologi digital, yaitu teknologi kamera dan teknologi internet
permasalahan tersebut akan bisa diatasi.
Dengan demikian perlu adanya pembuatan aplikasi yang dapat
mengambil gambar nota lalu diupload ke Sistem Inventori. Teknologi kamera
mengambil objek gambar berupa gambar nota, lalu dari gambar itu diupload
ke Sistem Inventori pada modul nota. Kesesuaian upload gambar nota
tergantung pada suatu kode transaksi.
1.2. Rumusan Masalah Kerja Praktek
Berdasarkan latar belakang diatas dapat dirumuskan permasalahan
dalam kerja praktek adalah :
a. Bagaimana membuat suatu aplikasi android yang bermanfaat bagi
perusahaan?
b. Bagaimana cara realisasikan aplikasi android ini ke Sistem Inventori
Perusahaan?
1.3. Batasan Kerja Praktek
Batasan Dalam kerja praktek ini adalah :
a. Pengerjaan aplikasi ini menggunakan bahasa pemrograman android
dan database yang digunakan adalah MySQL.
3
b. Aplikasi ini berjalan dengan Sistem Inventori PT Karya Agung
berbasis web dengan bahasa pemrograman PHP.
c. Aplikasi ini hanya untuk melakukan pengambilan gambar nota dan
mengupload gambar berdasarkan transaksi.
d. Aplikasi ini tidak membahas keamanan.
1.4. Tujuan Kerja Praktek
Adapun tujuan dari kerja praktek ini adalah:
a. Membuat aplikasi berbasis Android yang dapat mengambil gambar nota
dan gambar nota dapat diupload ke Sistem Inventori PT Karya Agung.
b. Aplikasi yang dibuat ini, diharapkan dapat membantu perusahaan dalam
pencatatan laporan pemasukan dan pengeluaran barang.
1.5. Manfaat Kerja Praktek
Adapun manfaat dari kerja praktek ini adalah:
a. Mengoptimalkan pembutan laporan pada Sistem Inventori PT Karya
Agung terutama pada bagian nota.
b. Peningkatan mutu pada Sistem Inventori PT karya Agung.
4
BAB II
TEMPAT KERJA PRAKTEK
2.1 Gambaran Umum Instansi
PT. Karya Agung adalah salah satu perusahaan yang begerak di bidang
kontruksi bangunan di Yogyakarta yang memberikan solusi dan konsultasi terkait
desain bangunan gedung dan pelaksanaannya. PT. Karya Agung memberikan
pengetahuan, keahlian dan pengalaman serta sudah berkomitmen untuk melayani
dan menjalin hubungan yang baik dengan costumer. Dengan komitmen tersebut
dan efisiensi kerja, PT. Karya Agung siap memenuhi permintaan pelanggan yang
menetapkan standar tinggi. Untuk mendukung aktivitas perusahaan, perusahaan
telah menyediakan fasilitas seperti pelatihan dan tim dengan kualifikasi yang
tinggi serta perlengkapan kerja lainnya. Perusahaan akan terus mengusahakan
yang terbaik untuk melayani semua costumer. Perusahaan memberikan komitmen
penuh untuk menyediakan solusi yang terbaik untuk pelanggan dan tidak pernah
berhenti dalam melakukan penyempurnaan unsur-unsur pendukungnya. Pada
perusahaan PT.Karya Agung juga tidak terlepas dengan teknologi informasi,
dengan pengembangan yang dilakukan dalam hal teknologi informasi menjadikan
perusahaan lebih unggul.
2.1.1 Visi Perusahaan
Menjadi perusahaan swasta di bidang industri jasa kontruksi terpercaya
Menjadi arsitektural kontruksi yang handal
5
Memiliki tata kelola perusahaan yang baik dan pengambilan keputusan
yang tepat
Memberikan kesejahteraan terhadap karyawan, pengurus, pemegang
saham dan stake holder
2.1.2 Misi Perusahaan
Mengedepankan tercapainya hasil yang memuaskan sehingga dapat
berjalan dengan maksimal.
Pemberdayaan maksimal dari lima pilar usaha kontruksi: pemasaran,
Operasional, Keuangan, Sumber Daya Manusia dan Informasi.
Menyamakan persepsi diantara manajemen untuk mempertahankan
nilai-nilai perusahaan dan mencapai tujuan bersama.
Pelatihan dan rekruitmen sumber daya manusia yang tepat, untuk
menghasilkan tenaga kerja yang kompeten, berdedikasi dan
bersemangat tinggi sesuai budaya perusahaan.
Penerapan prinsip kehati-hatian dalam pengambilan keputusan dan tata
kelola perusahaan yang baik (good corporate governance).
Peningkatan kompetisi di era globalisasi lewat kerjasama dengan
perusahaan kontraktor nasional maupun internasional.
6
2.1.3 Logo Perusahaan
Gambar 2.0. Logo PT. Karya Agung
2.1.4 Struktur Organisasi
Gambar 2.1. Struktur Organisasi PT. Karya Agung
7
2.2 Ruang Lingkup Instansi
2.2.1 Legalitas Perusahaan
PT. Karya Agung merupakan perusahaan legal yang mempunyai
No. NPWP, Akta Notaris serta pendukung legalitas lainnya, dibawah ini
adalah tabel penjelasannya.
Tabel 2.0. Legalitas PT. Karya Agung
1. Nama Perusahaan : PT. KARYA AGUNG
2. Status Perusahaan : Pusat Daerah
Alamat Kantor Pusat : Jl. Kebunraya Gg. Turonggo Rt 21 Rw
VII Kotagede Yogyakarta
Nomor Telepon : (0274) 372791
Nomor Fax : (0274) 372791
E-mail : [email protected]
Tabel 2.1. Landasan Hukum Pendirian Perusahaan
1. Akta Pendirian : PT. KARYA AGUNG
a. Nomor Akta : “07”
b. Tanggal : 15 November 2003
c. Nama Notaris : Ny. Mus Suchadariyah S , SH
√
3.
8
2. Akta perubahan terakhir
a. Nomor Akta : 09
b. Tanggal : 18 Juli 2010
c. Nama Notaris : Muchammad Agus Hanafi, SH.
Tabel 2.2 Komisaris ( Untuk PT )
No Nama No. KTP Jabatan dalam
Badan Usaha
1. Ny. Solinah 13.5014.450665.0001 Komisaris
Tabel 2.3 Direksi/Penanggung Jawab/Pengurus Perusahaan
No. Nama No. KTP Jabatan dalam
Badan Usaha
1.
2.
Muhayat, S.Pd.
Arif Wasono Hidayat
13.5014.13.0252.0001
34.7114.251087.0002
Direktur Utama
Direktur
9
Tabel 2.4 Ijin Usaha
Nomor S IUJK : 1205.2.03 09.00038 Tanggal : 05 Januari 2010
Masa berlaku ijin usaha : 5 (Lima) tahun
Instansi pemberi ijin usaha : Pemerintah Kota Yogyakarta
Nomor Serifikat BadanUsaha : 00241290
Masa berlaku ijin usaha : 17 September 2015
Instansi pemberi ijin usaha : LPJK
Tabel 2.5 Legalitas Rincian Pajak PT. Karya Agung
a. Nomor Pokok Wajib Pajak
b. Bukti Pelunasan Pajak
Tahun terakhir, Nomor/
Tanggal
c. Laporan Bulanan PPH/PPN
(tiga bulan terakhir)
02.265.271.3-541.000
541-01-01018316 (04 April 2014) Desember
2013
S-01005248/PPN1111/WPJ.23/KP.0203/2014
tanggal 17-01-2014
S-01005243/PPH25/WPJ.23/KP.0203/2014
tanggal 17-01-2014
10
S-01005233/PPN2109/WPJ.23/KP.0203/2014
tanggal 17-01-2014
S-01015764/PPN1111/WPJ.23/KP.0203/2014
tanggal 20-02-2014
S-01015777/PPH25/WPJ.23/KP.0203/2014
tanggal 20-02-2014
S-01016124/PPH2114/WPJ.23/KP.0203/2014
tanggal 20-02-2014
S-01022674/PPN1111/WPJ.23/KP.0203/2014
tanggal 17-03-2014
S-01022665/PPH25/WPJ.23/KP.0203/2014
tanggal 17-03-2014
S-01022670/PPN2114/WPJ.23/KP.0203/2014
tanggal 17-03-2014
S-01033772/PPN1111/WPJ.23/KP.0203/2014
tanggal 17-04-2014
S-01033782/PPH25/WPJ.23/KP.0203/2014
tanggal 17-04-2014
S-01033780/PPN2114/WPJ.23/KP.0203/2014
tanggal 17-04-2014
11
2.2.2 Proses Bisnis Perusahaan
Secara umum siklus kehidupan proyek konstruksi terbagi atas
empat bagian besar yaitu studi kelayakan (feasibility study), estimasi
proyek (detail estimate design), proses konstruksi (construction) serta
pengoperasian dan perawatan (operate and maintance). Dari tiap bagian
besar tersebut menghasilkan suatu produknya masing-masing, salah satu
diantaranya yaitu dokumen penawaran yang dihasilkan dari proses
detailed estimate design (DED). Dokumen penawaran merupakan suatu
dokumen yang akan dijadikan sebagai acuan dan informasi bagi PT. Karya
Agung untuk melakukan tender atau penawaran proyek konstruksi.
Sedangkan kegiatan utama (dasar) kontraktor terbagi menjadi dua yaitu
kegiatan primer yang meliputi pemasaran, pelaksanaan, pemeliharaan
proyek dan kegiatan penunjang (supporting activties) yaitu kegiatan yang
menyediakan infrastruktur atau masukan yang memungkinkan kegiatan-
kegiatan utama berlangsung secara terus menerus. Salah satu yang
menentukan pada kegiatan utama yaitu pemasaran. Pemasaran merupakan
suatu aktivitas yang bertujuan mencari dan mendapatkan suatu proyek
kontruksi. Dengan adanya proyek konstruksi maka kegiatan suatu
kontraktor dapat berlangsung terus dan berlanjut. Dapat diibaratkan, jika
tanpa adanya kegiatan proyek konstruksi maka suatu perusahaan
kontraktor akan mengalami kemunduran. Salah satu cara untuk
mendapatkan suatu proyek konstruksi yaitu melakukan dan mengikuti
penawaran lelang atau tender proyek. Tender atau penawaran lelang
12
proyek merupakan bagian dari kegiatan pemasaran. Pelelangan adalah
salah satu sistem pengadaan bahan dan atau jasa. Dalam bidang jasa
konstruksi, pelaksanaan lelang dilakukan oleh pemberi tugas atau pemilik
proyek dengan mengundang beberapa perusahaan jasa konstruksi atau
kontraktor untuk mendapatkan satu pemenang yang mampu melaksanakan
dan merealisasikan proyek atau pekerjaan sesuai dengan persyaratan yang
ditentukan dengan harga yang wajar dan dapat dipertanggunjawabkan baik
dari segi waktu, mutu maupun kualitas. Dalam pelaksanaan pelelangan,
peserta yang mengikuti kegiatan ini memungkinkan lebih dari satu,
sehingga terjadi suatu persaingan antara setiap peserta atau kontraktor.
Kompetisi untuk memenangkan penawaran terjadi pada masing-masing
kontraktor yang pada akhirnya akan didapatkan satu kontraktor terpilih
sebagai pemenang. Dilain pihak terdapat banyak kontraktor yang
mengikuti tender tersebut mengalami kekalahan tentunya peristiwa ini
merugikan bagi kontraktor karena telah banyak energi dan biaya yang
telah ia keluarkan untuk dapat melakukan penawaran proyek. Selain itu
juga telah banyak waktu yang ia curahkan pada tahap ini walaupun pada
sisi lain terdapat poin atau nilai kebaikannya. Berikut ini adalah skema
pelelangan barang atau jasa pada PT. Karya Agung
13
Gambar Skema Pelelangan Barang / Jasa PT. Karya Agung
14
BAB III
LAPORAN KEGIATAN
3.1 Hasil
Dalam pelaksanaan kerja praktek selama 3 bulan, serta hasil
wawancara yang didapat dari pihak perusahaan kerja praktek, maka dalam
pembuatan aplikasi tersebut akan berjalan dengan lancar apabila komputer atau
laptop memenuhi syarat minimal harus seimbang antara hardware dan
software. Adapun spesifikasi antara hardware dan software akan dijelaskan
lebih lanjut
3.1.1 Perangkat Keras
Perangkat keras yang digunakan dalam pembuatan aplikasi ini
antara lain:
1. Processor Intel® Core(TM) i5-2410M CPU @2.30GHz(4 CPUs)
2. Ram 2 GB
3.1.2 Perangkat Lunak
Perangkat Lunak yang digunakan dalam pembuatan sistem ini
antara lain
1. Sistem Operasi Microsoft Windows 7.
2. Bahasa Pemograman Android
3. Database Server MySQL Client versi 5.6.14
4. Editor Eclipse.
15
3.2 Pembahasan
3.2.1 Desain Data Aplikasi
Diperlukan desain dan pemodelan data pada aplikasi ini,
aplikasi E-Nota dibangun dan dimodelkan dengan dua metode yaitu
dengan menggunakan UML (Unified Modeling Language) dan ERD
(Entity Relationship Diagram).
3.2.1.1 UML (Unified Modeling Language)
UML (Unified Modeling Language) adalah bahasa pemodelan
standar atau kumpulan teknik – teknik pemodelan untuk
menspesifikasi, mem-visualisasi, meng-konstruksi dan
mendokumentasi hasil kerja dalam pengembangan perangkat lunak
(Fowler, 2004). Ada beberapa diagram UML yang digunakan pada
pengembangan aplikasi E-Nota.
16
a. Diagram Use Case
Use-case diagram disini berguna untuk menggambarkan
interaksi antara pengguna dengan aplikasi E-Nota.
LOGIN
UPLOAD GAMBAR NOTA
MEMFOTO GAMBAR NOTA
MELIHAT DATA PENJUALAN SISTEM INVENTORI PT KARYA AGUNG
MELIHAT DATA PEMBELIANSISTEM INVENTORI PT KARYA AGUNG
<<extend
s>>
ADMIN
b. Diagram Activity
Representasi grafis dari seluruh tahapan alur kerja.
Yang mengandung aktivitas, pilihan tindakan, perulangan
dan hasil dari aktivitas tersebut (Zatutmaryati, 2011).
Gambar 3.1 menunjukan Diagram Activity E-Nota.
Gambar 3.0 Diagram Use Case
17
SISTEM INVENTORI PT KARYA AGUNG
ADMIN APLIKASI E-NOTA
LOGIN
INSERT USERNAME, PASSWORD
AUTHORIZE
VALID LOGINCAPTURE CAMERA
INVALID LOGIN
UPLOAD PICTURE
MENAMPILKAN DATA PENJUALAN
MENAMPILKAN DATA PEMBELIAN
PILIHANKATEGORI UPLOADNO
YES
DATA GAMBAR
DAN INSERT KODE
TRANSAKASI
DATA NOTA
START
END
Gambar 3.1 Diagram Activity
18
c. Diagram Sequence
Diagram ini mendeskripsikan komunikasi diantara
objek-objek, meliputi pesan-pesan yang ada dan urutan
pesan tersebut muncul. Diagram ini berguna untuk
overview perilaku sistem, menunjukkan objek-objek yang
diperlukan, mendokumentasikan skenario dari suatu
diagram use-case dan memeriksa jalur-jalur pengaksesan
(Bambang Hariyanto, 2004).
:LOGIN
INVALID LOGIN
ADMIN
:CEK DATA ADMIN:MEMFOTO GAMBAR
NOTA:MENU UTAMA
VALID LOGIN
INSERT(USERNAME,PASSWORD)
DATA INPUTAN (USERNAME,PASSWORD)
INSERT PHOTO NOTE
DISPLAY PICTURE
:UPLOAD GAMBAR NOTA
UPLOAD PICTURE NOTE
:DATA PEMBELIAN SISTEM INVENTORI PT KARYA
AGUNG
:DATA PENJUALAN SISTEM INVENTORI PT KARYA
AGUNG
CHOOSE CATEGORY PEMBELIAN
CHOOSE CATEGORY PENJUALAN
CONFIRMATION STATUS UPLOAD CATEGORY
PENJUALAN
CONFIRMATION STATUS UPLOAD CATEGORY
PEMBELIAN
Gambar 3.2 Diagram Sequence
19
3.2.1.2 Perancangan ERD (Entity Relationship Diagram)
ERD (Entity Relationship Diagram) adalah
model konseptual yang mendeskripsikan hubungan
penyimpanan (dalam DFD). Karena itu, ERD berbeda
dengan DFD (DFD memodelkan fungsi sistem), atau
dengan STD (State Transition Diagram, yaitu
memodelkan sistem dari segi ketergantungan terhadap
waktu). ERD digunakan untuk memodelkan struktur data
dan hubungan dalam data, karena hal ini relatif kompleks.
(Pohan & Bahri, 1997). Berikut ini adalah gambar ERD
Aplikasi E-Nota yang terintegrasi dengan Sistem Inventori
PT Karya Agung.
pembelian
kode_beli
tgl_beli
kode_supplier
jumlah_beliharga_beli
kode_barang
penjualan
kode_jual
tgl_jual
jumlah_jual
harga_jual
kode_barang
nota
id
kode_beli
path
kode_customernm_admin
nm_admin
Memiliki
Memiliki
n
1
n 1
kode_jual
tgl_upload
Gambar 3.3 Rancangan ERD
20
3.2.1.3 Perancangan Relasi Tabel
Berikut ini rancangan tabel yang terintegrasi dengan
Sistem Inventori PT Karya Agung pada aplikasi E-Nota, yang
nantinya table nota field kode beli dan field kode jual
terintegrasi dengan table pembelian field kode beli dan table
penjualan field kode jual dari data Sistem Inventori PT Karya
Agung.
Gambar 3.4 Rancangan Relasi Tabel
21
3.2.1.4 Desain Tabel Database
Struktur tabel yang menyusun basis data dari Sistem
Inventori ke aplikasi E-Nota. Nilai yang dikembangkan adalah
sebagai berikut :
Tabel 3.0 Desain Tabel penjualan
Kolom Tipe Data Panjang Constraint
kode_jual char 15 primary key
tgl_jual date
kode_barang char 15 foreign key
jumlah_jual int 11
harga_jual bigint 20
kode_customer int 15 foreign key
nm_admin varchar 15 foreign key
Tabel 3.1 Desain Tabel pembelian
Kolom Tipe Data Panjang Constraint
kode_beli char 15 primary key
tgl_ beli date
kode_supplier char 5 foreign key
kode_barang char 15 foreign key
jumlah_beli int 11
22
harga_beli bigint 20
nm_admin varchar 15 foreign key
Tabel 3.2 Desain Tabel nota
Kolom Tipe Data Panjang Constraint
id int 11 primary key
kode_beli char 15 foreign key
kode_jual char 15 foreign key
path varchar 65
tgl_upload timestamp
3.2.1.5 Desain Rancangan Aplikasi
Desain rancangan aplikasi ini adalah gambaran
interface yang akan dibuat dalam aplikasi E-Nota.
a. Rancangan halaman login
Dalam rancangan ini digambarkan desain interface
untuk halaman login.
23
Gambar 3.5 Rancangan Halaman login
b. Rancangan Halaman utama
Dalam rancangan ini digambarkan desain interface
untuk halaman utama.
Detail Image :
Name : ………
Capture Upload Refresh
IMAGE
LOGO PT KARYA
AGUNG
Username
Password
LOGIN
24
Gambar 3.6 Rancangan Halaman Utama
c. Rancangan Tampilan Data
Dalam rancangan ini digambarkan desain untuk
menampilkan data pembelian dan data penjualan.
Gambar 3.7 Rancangan Halaman Tampil Data
3.2.2 Source Code
Pada aplikasi E-Nota terdapat beberapa file source code, dalam
pembuatan aplikasi ini. Yaitu :
a. koneksi.java untuk menghubungkan URL/link dari
device android ke database server. Pada halaman
lampiran, gambar 3.8 merupakan source code
koneksi.java
Kode Transaksi……. Kode barang…. Tanggal Transaksi….
Kode Transaksi……. Kode barang…. Tanggal Transaksi….
25
b. login.java untuk admin login, yang mengambil data
login dari Sistem Inventori PT Karya Agung.
Pada halaman lampiran, gambar 3.9 merupakan
source code halaman login admin.
c. JSONParser.java untuk menghubungkan
URL/link dari device android ke database server
serta yang saling berhubungan dengan file
koneksi.java. Pada halaman lampiran, gambar 3.10
merupakan source code JSONParser.java
d. CustomHttpClient.java untuk menjembatani data
inputan dari device android maupun output dari
server. Pada halaman lampiran, gambar 3.11
merupakan source code CustomHttpClient.java
e. CameraPhotoCapture.java untuk memfoto
gambar nota dan upload gambar. Pada halaman
lampiran, gambar 3.12 source code
CameraPhotoCapture.java
26
f. display_beli.java untuk mengambil data pembelian
dari Sistem Inventori PT Karya Agung. Pada
halaman lampiran, gambar 3.13 source code
display_beli.java
g. display_jual.java untuk mengambil data penjualan
dari Sistem Inventori PT Karya Agung. Pada
halaman lampiran, gambar 3.14 source code
display_jual.java
h. connect.php untuk menghubungkan ke server
database MYSQL. Pada halaman lampiran, gambar
3.15 source code connect.php
i. del_file.php untuk menghapus file gambar di
direktori folder uploads. Pada halaman lampiran,
gambar 3.16 source code del_file.php
j. display_jual.php untuk mengambil data penjualan
di server database Sistem Inventori PT Karya
27
Agung. Pada halaman lampiran, gambar 3.17
source code display_jual.php
k. display_beli.php untuk mengambil data pembelian
di server database Sistem Inventori PT Karya
Agung. Pada halaman lampiran, gambar 3.18
source code display_beli.php
l. UploadToServer.php untuk menjembatani
mengirim gambar dari device android ke root server
dan menambahkan data nota ke database Sistem
Inventori PT Karya Agung. Pada halaman lampiran,
gambar 3.19 source code UploadToServer.php
m. login.php untuk memvalidasi inputan dari device
android ke data admin Sistem Inventori PT Karya
Agung. Pada halaman lampiran, gambar 3.20
source code login.php.php
28
3.2.3 Tampilan Aplikasi
a. Halaman Login
Halaman form di bawah ini digunakan untuk login
admin untuk mengambil gambar nota dan upload gambar.
Gambar 3.21 Halaman Login
29
Gambar 3.22 Halaman Success Login
b. Halaman Utama Aplikasi E-Nota
Gambar 3.23 menunjukkan halaman utama aplikasi
E-Nota ketika admin berhasil login. Interface aplikasi E-
Nota memiliki tiga bagian yaitu capture, upload, refresh
dan exit.
30
Gambar 3.23 Halaman Utama
c. Halaman Capture
Halaman Capture ini, admin memfoto nota
transaksi kemudian gambar yang difoto akan ditampilkan
yang nantinya gambar itu akan diupload.
31
Gambar 3.24 Halaman Capture
Gambar 3.25 Halaman Setelah Capture Gambar
32
d. Halaman Upload
Gambar 3.26 menunjukan tampilan upload gambar,
yang nantinya sebelum diupload akan menampilkan dua
pilihan, berdasarkan data pembelian atau penjualan. Setelah
itu, form akan menampilkan data pilihan yang telah dipilih,
lalu admin memilih kode transaksi dan berdasarkan tanggal
yang ada dinota.
Gambar 3.26 Halaman Upload
33
e. Halaman Menampilkan Data dan Selesai Upload
Dibagian ini, tampilan data penjualan dan data
pembelian.
Gambar 3.27 Tampilan Data Pembelian
Gambar 3.28 Tampilan Data Penjualan
34
Gambar 3.29 Tampilan Setelah Klik Data
Gambar 3.30 Tampilan Setelah Upload Sukses
35
Gambar 3.31 Nota Berhasil Upload ke Folder Server
f. Tampilan Nota Sistem Inventori PT Karya Agung
Gambar 3.32 Tampilan Awal Nota di Sistem
36
Gambar 3.33 Tampilan Klik Lihat
37
BAB IV
PENUTUP
4.1 Kesimpulan
Melalui pembahasan yang telah diuraikan pada bab sebelumnya,
maka dapat ditarik beberapa kesimpulan, yaitu :
1. Perancangan aplikasi E-Nota berbasis android sampai dengan tahap
implementasi dan aplikasi ini terintegrasi dengan Sistem Inventori PT
Karya Agung yang berbasis web.
2. Dengan diimplementasikannya aplikasi E-Nota akan banyak membantu
dan memudahkan dalam pencatatan pengeluaran dan pemasukan barang.
4.2 Rekomendasi
Saran yang dapat penulis sampaikan untuk pengembangan sistem ini
selanjutnya adalah
a. Lebih baiknya, Sistem Inventori PT Karya Agung seharusnya di
onlinekan, supaya aplikasi ini berjalan dengan baik.
38
Lampiran :
Gambar 3.8 Source Code koneksi.java
39
40
41
Gambar 3.9 Source Code login.java
42
43
Gambar 3.10 Source Code JSONParser.java
44
45
Gambar 3.11 Source Code CustomHttpClient.java
46
package com.androidexample.cameraphotocapture;
import java.io.DataOutputStream; import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.HttpURLConnection; import java.net.MalformedURLException;
import java.net.URL;
import android.net.Uri;
import android.os.AsyncTask; import android.os.Bundle;
import android.provider.MediaStore;
import android.annotation.SuppressLint;
import android.app.Activity; import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.ContentValues;
import android.content.DialogInterface; import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory; import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
@SuppressLint("NewApi")
public class CameraPhotoCapture extends Activity {
final static int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 1;
Bundle ambil = new Bundle();
Uri imageUri = null; static TextView imageDetails = null;
public static ImageView showImg = null;
CameraPhotoCapture CameraActivity = null;
Button btUpload, photo, ref, btnExit; TextView messageText;
int serverResponseCode = 0;
ProgressDialog dialog = null;
String upLoadServerUri = null;
public static String myPath, myUrl;
final String uploadFilePath = ""; final String uploadFileName = "";
public static String fileName;
Bundle a = new Bundle();
Intent i = new Intent(); koneksi konek = new koneksi();
public void myDelete(String path){ File myFile = new File(path);
myFile.delete();
//Toast.makeText(CameraPhotoCapture.this, "Ok", Toast.LENGTH_LONG).show();
}
47
public void choiceUpload(){ new AlertDialog.Builder(this).setTitle("Choice Upload").setPositiveButton("Pembelian",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
i = new Intent(CameraPhotoCapture.this, display_beli.class);
a.putString("dedi", fileName); a.putString("myLink", myUrl);
i.putExtras(a);
startActivity(i); CameraPhotoCapture.this.finish();
}
}).setNegativeButton("Penjualan", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
i = new Intent(CameraPhotoCapture.this, display_jual.class);
a.putString("dedi", fileName); a.putString("myLink", myUrl);
i.putExtras(a);
startActivity(i); CameraPhotoCapture.this.finish();
}
}).show(); }
public int uploadFile(String sourceFileUri){ fileName = myPath; sourceFileUri = myPath;
HttpURLConnection conn = null; DataOutputStream dos = null; String lineEnd =
"\r\n"; String twoHyphens = "--"; String boundary = "*****"; int bytesRead, bytesAvailable,
bufferSize;
byte[] buffer;
int maxBufferSize = 1 * 1024 * 1024; File sourceFile = new File(sourceFileUri); if (!sourceFile.isFile()) {
dialog.dismiss(); Log.e("uploadFile", "Source File not exist :"
+uploadFilePath + "" + uploadFileName);
runOnUiThread(new Runnable() { public void run() {
messageText.setText("Source File not exist :"
+uploadFilePath + "" + uploadFileName);
} }); return 0; }
else { try { FileInputStream fileInputStream = new FileInputStream(sourceFile);
URL url = new URL(upLoadServerUri);
conn = (HttpURLConnection) url.openConnection(); conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST"); conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("ENCTYPE", "multipart/form-data");
conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
conn.setRequestProperty("uploaded_file", fileName); // String pasti="dedi";
dos = new DataOutputStream(conn.getOutputStream());
dos.writeBytes(twoHyphens + boundary + lineEnd); dos.writeBytes("Content-Disposition: form-data; name=\"uploaded_file\";filename=\""
+ fileName+ "\"" + lineEnd);
48
return 0;
}
else
{ try {
FileInputStream fileInputStream = new FileInputStream(sourceFile);
URL url = new URL(upLoadServerUri);
conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false); conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("ENCTYPE", "multipart/form-data");
conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary); conn.setRequestProperty("uploaded_file", fileName);
// String pasti="dedi";
dos = new DataOutputStream(conn.getOutputStream());
dos.writeBytes(twoHyphens + boundary + lineEnd); dos.writeBytes("Content-Disposition: form-data; name=\"uploaded_file\";filename=\""
+ fileName+ "\"" + lineEnd);
/*dos.writeBytes("Content-Disposition: form-data; name=\"uploaded_file\";filename=\""
+ "akui"+ "\"" + lineEnd);*/ dos.writeBytes(lineEnd);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize); buffer = new byte[bufferSize];
// read file and write it into form...
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
while (bytesRead > 0) {
dos.write(buffer, 0, bufferSize);
bytesAvailable = fileInputStream.available(); bufferSize = Math.min(bytesAvailable, maxBufferSize);
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
}
// send multipart form data necesssary after file data...
dos.writeBytes(lineEnd);
dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
// Responses from the server (code and message) serverResponseCode = conn.getResponseCode();
String serverResponseMessage = conn.getResponseMessage();
Log.i("uploadFile", "HTTP Response is : " + serverResponseMessage + ": " + serverResponseCode);
if(serverResponseCode == 200){
runOnUiThread(new Runnable() { public void run() {
String msg = "File Upload Completed.";
messageText.setText(msg);
choiceUpload(); }
});
} //close the streams // fileInputStream.close();
dos.flush();
dos.close();
49
} catch (MalformedURLException ex) {
dialog.dismiss(); ex.printStackTrace();
runOnUiThread(new Runnable() {
public void run() {
messageText.setText("MalformedURLException Exception : check script
url.");
Toast.makeText(CameraPhotoCapture.this, "MalformedURLException",
Toast.LENGTH_SHORT).show(); }
});
Log.e("Upload file to server", "error: " + ex.getMessage(), ex); } catch (Exception e) {
dialog.dismiss();
e.printStackTrace();
runOnUiThread(new Runnable() {
public void run() {
messageText.setText("Got Exception : see logcat ");
Toast.makeText(CameraPhotoCapture.this, "Got Exception : see logcat ", Toast.LENGTH_SHORT).show();
}
});
Log.e("Upload file to server Exception", "Exception : "
+ e.getMessage(), e);
}
dialog.dismiss();
return serverResponseCode;
} // End else block
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera_photo_capture);
CameraActivity = this;
ambil = getIntent().getExtras();
myUrl = ambil.getString("myLink");
konek.myKoneksi(myUrl);
imageDetails = (TextView) findViewById(R.id.imageDetails); showImg = (ImageView) findViewById(R.id.showImg);
btUpload = (Button) findViewById(R.id.btnUpload);
photo = (Button) findViewById(R.id.photo);
btnExit = (Button) findViewById(R.id.btn_exit); btnExit.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
CameraPhotoCapture.this.finish();
}
});ref = (Button) findViewById(R.id.btnRefresh);
ref.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
myDelete(myPath);
Intent i = new Intent(); i = new Intent(CameraPhotoCapture.this, CameraPhotoCapture.class);
a.putString("myLink", myUrl);
50
i.putExtras(a);
startActivity(i);
} });
messageText = (TextView) findViewById(R.id.messageText);
upLoadServerUri = konek.kon_upload();
//upLoadServerUri = "http://192.168.43.135/media/UploadToServer.php";
btUpload.setOnClickListener(new OnClickListener() { public void onClick(View arg0) {
dialog = ProgressDialog.show(CameraPhotoCapture.this, "",
"Uploading file...", true);
new Thread(new Runnable() { public void run() {
runOnUiThread(new Runnable() {
public void run() {
messageText.setText("uploading started....."); }
});
uploadFile(uploadFilePath + "" + uploadFileName);
} }).start();
//myMessage();// pesan hapus file;
}
}); photo.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
/***** Define the file-name to save photo taken by Camera activity *******/ String fileName = "";
btUpload.setEnabled(true);
photo.setEnabled(false);
// Create parameters for Intent with filename
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, fileName);
values.put(MediaStore.Images.Media.DESCRIPTION,"Image capture by camera");
/****** imageUri is the current activity attribute, define and save it for later usage
*****/
imageUri = getContentResolver().insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
/****** EXTERNAL_CONTENT_URI : style URI for the "primary" external
storage volume. ******/
/****** Standard Intent action that can be sent to have the camera application
capture an image and return it. ******/
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(intent,
CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); } }); }
51
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
String imageId = convertImageUriToFile(imageUri,CameraActivity);
new LoadImagesFromSDCard().execute(""+imageId);
} else if (resultCode == RESULT_CANCELED) {
Toast.makeText(this, "Picture was not taken", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Picture was not taken", Toast.LENGTH_SHORT).show(); }
}
}
public static String convertImageUriToFile (Uri imageUri, Activity activity) {
Cursor cursor = null;
int imageID = 0;
try {
/*********** Which columns values want to get *******/
String [] proj={ MediaStore.Images.Media.DATA,
MediaStore.Images.Media._ID,
MediaStore.Images.Thumbnails._ID,
MediaStore.Images.ImageColumns.ORIENTATION };
cursor = activity.managedQuery(
imageUri, // Get data for specific
image URI
proj, // Which columns to return
null, // WHERE clause; which rows to return (all rows) null, // WHERE clause selection arguments (none)
null // Order-by clause (ascending by name)
); int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID);
int columnIndexThumb =
cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID);
int file_ColumnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
//int orientation_ColumnIndex =
cursor.getColumnIndexOrThrow(MediaStore.Images.ImageColumns.ORIENTATION);
int size = cursor.getCount();
/******* If size is 0, there are no images on the SD Card. *****/
if (size == 0) {
imageDetails.setText("No Image");
}
52
else
{
int thumbID = 0;
if (cursor.moveToFirst()) {
/**************** Captured image details ************/
/***** Used to show image on view in LoadImagesFromSDCard
class ******/ imageID = cursor.getInt(columnIndex);
thumbID = cursor.getInt(columnIndexThumb);
myPath = cursor.getString(file_ColumnIndex);
//String orientation = cursor.getString(orientation_ColumnIndex);
String CapturedImageDetails = " CapturedImageDetails : \n\n"
+" ImageID :"+imageID+"\n"
+" ThumbID :"+thumbID+"\n"
+" Path :"+myPath+"\n";
// Show Captured Image detail on view
imageDetails.setText(CapturedImageDetails);
}
}
} finally {
if (cursor != null) { cursor.close();
}
}
return ""+imageID;
}
/**
* Async task for loading the images from the SD card. *
* @author Android Example
*
*/ // Class with extends AsyncTask class
public class LoadImagesFromSDCard extends AsyncTask<String, Void, Void> {
private ProgressDialog Dialog = new ProgressDialog(CameraPhotoCapture.this);
Bitmap mBitmap;
protected void onPreExecute() { /****** NOTE: You can call UI Element here. *****/
//UI Element
Dialog.setMessage("Loading image from Sdcard.."); Dialog.show();
}
// Call after onPreExecute method
protected Void doInBackground(String... urls) {
Bitmap bitmap = null; Bitmap newBitmap = null;
Uri uri = null;
53
try {
/** Uri.withAppendedPath Method Description
* Parameters * baseUri Uri to append path segment to
* pathSegment encoded path segment to append
* Returns
* a new Uri based on baseUri with the given segment appended to the path */
uri =
Uri.withAppendedPath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "" + urls[0]);
/************** Decode an input stream into a bitmap. *********/
bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));
if (bitmap != null) {
/********* Creates a new bitmap, scaled from an existing bitmap.
***********/
newBitmap = Bitmap.createScaledBitmap(bitmap, 170, 170, true);
bitmap.recycle();
if (newBitmap != null) {
mBitmap = newBitmap; }
}
} catch (IOException e) {
//Error fetching image, try to recover
/********* Cancel execution of this task. **********/
cancel(true);
}
return null;
}
protected void onPostExecute(Void unused) {
// NOTE: You can call UI Element here.
// Close progress dialog
Dialog.dismiss();
if(mBitmap != null) showImg.setImageBitmap(mBitmap);
}
}
}
Gambar 3.12 Source Code CameraPhotoCapture.java
54
package com.androidexample.cameraphotocapture;
import java.util.ArrayList;
import java.util.HashMap; import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONObject; import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.AlertDialog; import android.content.DialogInterface;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle; import android.os.StrictMode;
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; import android.widget.Toast;
@SuppressLint("NewApi")
@TargetApi(Build.VERSION_CODES.GINGERBREAD) public class display_beli extends Activity implements OnItemClickListener{
CameraPhotoCapture cpc = new CameraPhotoCapture();
ListView ListData;
String tmp, myUrl; ArrayList<HashMap<String, String>> AdapterData = new ArrayList<HashMap<String, String>>();
Bundle ambil ;
Intent o ;
String display_beli = "1"; Bundle a = new Bundle();
koneksi konek = new koneksi();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.display); ListData = (ListView) findViewById(R.id.listData);
ListData.setOnItemClickListener(this);
55
ambil = getIntent().getExtras();
tmp = ambil.getString("dedi");
myUrl = ambil.getString("myLink");
konek.myKoneksi(myUrl);
try{
if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy =new
StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
JSONParser jparser = new JSONParser(); //deklarasi json parsing
JSONObject jobject = jparser.getJSONFromUrl(konek.kon_beli());
//AdapterData = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, data);
//ListData.setAdapter(AdapterData);
JSONArray DataArray = jobject.getJSONArray("list_data");
for(int i=0; i<DataArray.length(); i++){
HashMap<String, String> map = new HashMap<String,
String>(); //deklarasi variabel array 2 dimensi JSONObject jsonobj = DataArray.getJSONObject(i);
//Mengambil data berdasarkan index ke-i
map.put("kd_beli", jsonobj.getString("kode_beli")); map.put("tg_beli", jsonobj.getString("tgl_beli"));
map.put("kd_brg", jsonobj.getString("kode_barang"));
AdapterData.add(map);
}
ListAdapter adaptor = new SimpleAdapter(this, AdapterData,
R.layout.row,
new String[] { "kd_beli", "kd_brg", "tg_beli" },
new int[] { R.id.kd_jual, R.id.kd_brg, R.id.tgl_jual } //name-nim nama attribut txt layout
);
ListData.setAdapter(adaptor); }
catch (Exception e) {
Toast.makeText(this, "What wrong "+e, Toast.LENGTH_LONG).show();
} }
public void onItemClick(AdapterView<?> arg0, final View view, int arg2, long arg3) {
final String kd_transaksi = ((TextView)
view.findViewById(R.id.kd_jual)).getText().toString();
//final String kd_brg = ((TextView)
view.findViewById(R.id.kd_brg)).getText().toString(); Toast.makeText(display_beli.this, kd_transaksi, Toast.LENGTH_SHORT).show();
56
new AlertDialog.Builder(this).setTitle("Actions").setPositiveButton("Upload", new
DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
try{ String result = null;
ArrayList<NameValuePair> postData = new
ArrayList<NameValuePair>(); // deklarasi array list
postData.add(new BasicNameValuePair("kode_transaksi", kd_transaksi));
postData.add(new BasicNameValuePair("path", tmp));
//postData.add(new BasicNameValuePair("keterangan",
display_beli)); //postData.add(new BasicNameValuePair("kode_barang",
kd_brg));
result =
CustomHttpClient.executeHttpPost(konek.kon_upload(), postData); String timpy = result.toString();
Toast.makeText(display_beli.this, timpy ,
Toast.LENGTH_LONG).show();
cpc.myDelete(tmp);
o = new Intent(display_beli.this,
CameraPhotoCapture.class);
a.putString("myLink", myUrl); o.putExtras(a);
startActivity(o);
display_beli.this.finish(); }catch (Exception e) {
Toast.makeText(display_beli.this, "What error ? "+e ,
Toast.LENGTH_LONG).show();
} }
}).setNegativeButton("Back", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
}).setNeutralButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
try {
cpc.myDelete(tmp);
JSONParser jparsere = new JSONParser(); //deklarasi json parsing
jparsere.getJSONFromUrl(konek.hapus()+"?name_file="+tmp);
o = new Intent(display_beli.this,
CameraPhotoCapture.class);
a.putString("myLink", myUrl);
o.putExtras(a); startActivity(o); display_beli.this.finish();
} catch (Exception e) {
Toast.makeText(display_beli.this, "What's up error? "+e, Toast.LENGTH_LONG).show();
}
}}).show();}}
Gambar 3.13 Source Code display_beli.java
57
package com.androidexample.cameraphotocapture;
import java.util.ArrayList;
import java.util.HashMap;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair; import org.json.JSONArray;
import org.json.JSONObject;
import android.annotation.SuppressLint;
import android.annotation.TargetApi; import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.os.StrictMode;
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;
import android.widget.Toast;
@SuppressLint("NewApi")
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
public class display_jual extends Activity implements OnItemClickListener{
CameraPhotoCapture cpc = new CameraPhotoCapture(); ListView ListData;
String tmp, myUrl;
ArrayList<HashMap<String, String>> AdapterData = new ArrayList<HashMap<String,
String>>(); Bundle a = new Bundle();
Intent o ;
String display_jual = "0";
koneksi konek = new koneksi();
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.display);
ListData = (ListView) findViewById(R.id.listData);
ListData.setOnItemClickListener(this);
a = getIntent().getExtras();
tmp = a.getString("dedi"); myUrl = a.getString("myLink");
konek.myKoneksi(myUrl);
try{ if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy =new
StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy);
}
58
JSONParser jparser = new JSONParser(); //deklarasi json parsing JSONObject jobject = jparser.getJSONFromUrl(konek.kon_jual());
//AdapterData = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, data);
//ListData.setAdapter(AdapterData); JSONArray DataArray = jobject.getJSONArray("list_data");
for(int i=0; i<DataArray.length(); i++){
HashMap<String, String> map = new HashMap<String, String>(); //deklarasi variabel array 2 dimensi
JSONObject jsonobj = DataArray.getJSONObject(i);
//Mengambil data berdasarkan index ke-i
map.put("kd_jual", jsonobj.getString("kode_jual"));
map.put("tg_jual", jsonobj.getString("tgl_jual"));
map.put("kd_brg", jsonobj.getString("kode_barang"));
AdapterData.add(map);
}
ListAdapter adaptor = new SimpleAdapter(this, AdapterData, R.layout.row,
new String[] { "kd_jual", "kd_brg", "tg_jual" },
new int[] { R.id.kd_jual, R.id.kd_brg,
R.id.tgl_jual } //name-nim nama attribut txt layout );
ListData.setAdapter(adaptor);
} catch (Exception e) {
Toast.makeText(this, "What wrong "+e, Toast.LENGTH_LONG).show();
}
} public void onItemClick(AdapterView<?> arg0, final View view, int arg2, long arg3) {
final String kd_transaksi = ((TextView)
view.findViewById(R.id.kd_jual)).getText().toString(); //final String kd_brg = ((TextView)
view.findViewById(R.id.kd_brg)).getText().toString();
Toast.makeText(display_jual.this, kd_transaksi, Toast.LENGTH_SHORT).show();
new AlertDialog.Builder(this).setTitle("Actions").setPositiveButton("Upload", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
try{
String result = null;
ArrayList<NameValuePair> postData = new
ArrayList<NameValuePair>(); // deklarasi array list postData.add(new BasicNameValuePair("kode_transaksi",
kd_transaksi));
postData.add(new BasicNameValuePair("path", tmp));
//postData.add(new BasicNameValuePair("keterangan", display_jual));
//postData.add(new BasicNameValuePair("kode_barang",
kd_brg)); result =
CustomHttpClient.executeHttpPost(konek.kon_upload(), postData);
String timpy = result.toString();
59
a.
Toast.makeText(display_jual.this, timpy , Toast.LENGTH_LONG).show();
cpc.myDelete(tmp);
o = new Intent(display_jual.this,
CameraPhotoCapture.class);
a.putString("myLink", myUrl); o.putExtras(a);
startActivity(o);
display_jual.this.finish(); }catch (Exception e) {
Toast.makeText(display_jual.this, "What error ? "+e ,
Toast.LENGTH_LONG).show();
} }
}).setNegativeButton("Back", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
}).setNeutralButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
try {
cpc.myDelete(tmp);
JSONParser jparsere = new JSONParser(); //deklarasi json parsing
jparsere.getJSONFromUrl(konek.hapus()+"?name_file="+tmp);
o = new Intent(display_jual.this,
CameraPhotoCapture.class);
a.putString("myLink", myUrl); o.putExtras(a);
startActivity(o);
display_jual.this.finish(); } catch (Exception e) {
Toast.makeText(display_jual.this, "What's up error? "+e,
Toast.LENGTH_LONG).show();
}
}
}).show();
}
}
Gambar 3.14 Source Code display_beli.java
60
Gambar 3.15 Source Code connect.php
Gambar 3.16 Source Code del_file.php
61
Gambar 3.17 Source Code display_jual.php
Gambar 3.18 Source Code display_beli.php
62
Gambar 3.19 Source Code UploadToServer.php
Gambar 3.20 Source Code login.php