LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

70
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

Transcript of LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

Page 1: 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

Page 2: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat
Page 3: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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.

Page 4: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 5: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 6: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 7: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 8: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 9: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 10: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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.

Page 11: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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.

Page 12: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 13: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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.

Page 14: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 15: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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.

Page 16: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 17: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 18: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 19: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 20: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 21: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

13

Gambar Skema Pelelangan Barang / Jasa PT. Karya Agung

Page 22: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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.

Page 23: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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.

Page 24: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 25: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 26: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 27: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 28: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 29: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 30: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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.

Page 31: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 32: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 33: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 34: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 35: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 36: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 37: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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.

Page 38: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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.

Page 39: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

31

Gambar 3.24 Halaman Capture

Gambar 3.25 Halaman Setelah Capture Gambar

Page 40: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 41: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 42: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

34

Gambar 3.29 Tampilan Setelah Klik Data

Gambar 3.30 Tampilan Setelah Upload Sukses

Page 43: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 44: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

36

Gambar 3.33 Tampilan Klik Lihat

Page 45: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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.

Page 46: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

38

Lampiran :

Gambar 3.8 Source Code koneksi.java

Page 47: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

39

Page 48: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

40

Page 49: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

41

Gambar 3.9 Source Code login.java

Page 50: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

42

Page 51: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

43

Gambar 3.10 Source Code JSONParser.java

Page 52: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

44

Page 53: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

45

Gambar 3.11 Source Code CustomHttpClient.java

Page 54: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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();

}

Page 55: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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);

Page 56: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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();

Page 57: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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);

Page 58: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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); } }); }

Page 59: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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");

}

Page 60: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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;

Page 61: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 62: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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);

Page 63: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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();

Page 64: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 65: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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);

}

Page 66: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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();

Page 67: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

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

Page 68: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

60

Gambar 3.15 Source Code connect.php

Gambar 3.16 Source Code del_file.php

Page 69: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

61

Gambar 3.17 Source Code display_jual.php

Gambar 3.18 Source Code display_beli.php

Page 70: LAPORAN KERJA PRAKTEK Diajukan sebagai salah satu syarat

62

Gambar 3.19 Source Code UploadToServer.php

Gambar 3.20 Source Code login.php