• Tidak ada hasil yang ditemukan

Diajukan sebagai salah satu syarat

N/A
N/A
Nguyễn Gia Hào

Academic year: 2023

Membagikan "Diajukan sebagai salah satu syarat "

Copied!
70
0
0

Teks penuh

(1)

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

(2)
(3)

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.

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

1 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

(10)

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.

(11)

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.

(12)

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

(13)

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

(14)

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

(15)

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.

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

Gambar Skema Pelelangan Barang / Jasa PT. Karya Agung

(22)

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.

(23)

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.

(24)

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 PEMBELIAN SISTEM INVENTORI

PT KARYA AGUNG

<<extends>>

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

(25)

SISTEM INVENTORI PT KARYA AGUNG ADMIN APLIKASI

E-NOTA

LOGIN

INSERT USERNAME,

PASSWORD

AUTHORIZE

VALID LOGIN CAPTURE

CAMERA

INVALID LOGIN

UPLOAD PICTURE

MENAMPILKAN DATA PENJUALAN

MENAMPILKAN DATA PEMBELIAN PILIHAN

KATEGORI UPLOAD NO

YES

DATA GAMBAR DAN INSERT

KODE TRANSAKASI

DATA NOTA START

END

Gambar 3.1 Diagram Activity

(26)

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

:MENU UTAMA NOTA

VALID LOGIN INSERT(USERNAME,PASS

WORD)

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

(27)

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_beli

harga_beli kode_barang

penjualan

kode_jual tgl_jual jumlah_jual

harga_jual kode_barang

nota id

kode_beli

path

kode_customer nm_admin

nm_admin

Memiliki Memiliki

n

1

n 1

kode_jual tgl_upload

Gambar 3.3 Rancangan ERD

(28)

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

(29)

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

(30)

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.

(31)

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

(32)

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

(33)

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

(34)

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

(35)

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

(36)

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

(37)

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.

(38)

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.

(39)

Gambar 3.24 Halaman Capture

Gambar 3.25 Halaman Setelah Capture Gambar

(40)

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

(41)

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

(42)

34

Gambar 3.29 Tampilan Setelah Klik Data

Gambar 3.30 Tampilan Setelah Upload Sukses

(43)

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

(44)

36

Gambar 3.33 Tampilan Klik Lihat

(45)

37

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.

(46)

38

Lampiran :

Gambar 3.8 Source Code koneksi.java

(47)
(48)

40

(49)

Gambar 3.9 Source Code login.java

(50)

42

(51)

Gambar 3.10 Source Code JSONParser.java

(52)

44

(53)

Gambar 3.11 Source Code CustomHttpClient.java

(54)

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

}

(55)

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

(56)

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

(57)

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

(58)

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

(59)

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

}

(60)

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;

(61)

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

(62)

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

(63)

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

(64)

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

(65)

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

}

(66)

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

(67)

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

(68)

60

Gambar 3.15 Source Code connect.php

Gambar 3.16 Source Code del_file.php

(69)

Gambar 3.17 Source Code display_jual.php

Gambar 3.18 Source Code display_beli.php

(70)

62

Gambar 3.19 Source Code UploadToServer.php

Gambar 3.20 Source Code login.php

Gambar

Gambar 2.1. Struktur Organisasi PT. Karya Agung
Tabel 2.1. Landasan Hukum Pendirian Perusahaan  1.  Akta Pendirian         : PT. KARYA AGUNG
Tabel 2.2 Komisaris ( Untuk PT )
Gambar Skema Pelelangan Barang / Jasa PT. Karya Agung
+7

Referensi

Garis besar

Dokumen terkait

Pada perencanaannya setiap kegiatan belajar mengajar dikelas hendaknya guru memperhatikan bagaimana cara belajar yang di inginkan siswa dan sebaiknya guru memberikan evaluasi

Tabel 4.23 Goodness-of-fit Indices Modifikasi Konstruk Managerial Knowledge Management Capability 91 Tabel 4.24 Goodness-of-fit Indices Konstruk Kinerja Perusahaan

Dalam perancangan pabrik Metil Akrilat dari Asam Akrilat dan methanol dengan kapasitas 60.000 ton/tahun dapat diambil kesimpulan :. Pendirian pabrik Metil Akrilat dengan

3. Sistem melakukan validasi pada semua field dan menyimpan data ke database. Alternate Coure Jika ada kesalahan dalam memasukan data, maka sistem akan

Diajukan sebagai salah satu syarat Untuk menyelesaikan Program Diploma Tiga.

Tujuan dari penelitian ini berfokus untuk mengetahui dan mendeskripsikan aktivitas komunikasi dakwah pada Majelis Sholawat Darul Musthofa Malang melalui kegiatan

sudut masukan yang diberikan dari data tabel dengan sudut yang terukur, sehingga error =33,44%. Pengujian pada joint 2 ini dengan mengabaikan joint I, joint 3, dan

Pembahasan Berdasarkan ciri-ciri morfologi ulat penggerek polong yang ditemukan di Kelurahan Wirotho Agung Kecamatan Rimbo Bujang Kabupaten Tebo Jambi termasuk spesies Maruca