PEMBUATAN APLIKASI EVENT ORGANIZER BERBASIS ANDROID DENGAN MENGGUNAKAN ANDROID STUDIO TUGAS AKHIR LUSTANTI AYU AGUSTINA NIM : 150309276993 POLITEKNIK NEGERI BALIKPAPAN JURUSAN TEKNIK ELEKTRONIKA BALIKPAPAN 2018
PEMBUATAN APLIKASI EVENT ORGANIZER BERBASIS
ANDROID DENGAN MENGGUNAKAN ANDROID STUDIO
TUGAS AKHIR
LUSTANTI AYU AGUSTINA
NIM : 150309276993
POLITEKNIK NEGERI BALIKPAPAN
JURUSAN TEKNIK ELEKTRONIKA
BALIKPAPAN
2018
PEMBUATAN APLIKASI EVENT ORGANIZER BERBASIS
ANDROID DENGAN MENGGUNAKAN ANDROID STUDIO
TUGAS AKHIR
KARYA TULIS INI DI AJUKAN SEBAGAI SALAH SATU SYARAT
UNTUK MEMPEROLEH GELAR AHLI MADYA DARI POLITEKNIK
NEGERI BALIKPAPAN
LUSTANTI AYU AGUSTINA
NIM : 150309276993
POLITEKNIK NEGERI BALIKPAPAN
JURUSAN TEKNIK ELEKTRONIKA
BALIKPAPAN
2018
ii
LEMBAR PENGESAHAN
PEMBUATAN APLIKASI EVENT ORGANIZER BERBASIS ANDROID
DENGAN MENGGUNAKAN ANDROID STUDIO
Disusun Oleh :
LUSTANTI AYU AGUSTINA
NIM :150309276993
iii
SURAT PERNYATAAN
Yang bertanda tangan di bawah ini :
Nama : LUSTANTI AYU AGUSTINA
Tempat /Tgl Lahir : Malang, 14 Agustus 1996
NIM : 150309276993
Menyatakan bahwa tugas akhir yang berjudul “PEMBUATAN APLIKASI
EVENT ORGANIZER BERBASIS ANDROID” adalah bukan merupakan hasil
karya tulis orang lain, baik sebagian maupun keseluruhan , kecuali dalam
kutipan yang kami sebutkan sumbernya.
Demikian pernyataan ini penulis buat dengan sebenar-benarnya dan
apabila pernyataan ini tidak benar kami bersedia mendapat sanksi akademis.
iv
Tugas Akhir ini kupersembahkan kepada :
Ayahhanda dan Ibunda tercinta
Sunardi dan Sriatim Indrawati
Saudaraku yang kusayangi
Indah Ismawati
Ferdinan Marcell dwi Anggara
Arizal Jofan Indra aji Pamungkas
Keluarga besar di Jawa Timur
Yang terkasih
Bayu Perdana Putra
v
SURAT PERNYATAAN PERSETUJUAN PUBLIKASI
TUGAS AKHIR UNTUK KEPENTINGAN
AKADEMIS
Sebagai civitas akademik Politeknik Negeri Balikpapan, saya yang bertanda
tangan dibawah ini:
Nama : Lustanti Ayu Agustina
NIM : 150309276993
Program Studi : Teknik Elektronika
Jurusan : Teknik Elektro
Judul Tugas Akhir : PEMBUATAN APLIKASI EVENT ORGANIZER
BERBASIS ANDROID DENGAN MENGGUNAKAN ANDROID STUDIO
Dengan pengembangan ilmu pengetahuan, saya menyetujui untuk memberikan
hak kepada Politeknik negeri Balikpapan untuk menyimpan, mengalih media atau
formatkan, mengelola dalam bentuk pangkalan data (database), merawat, dan
mempublikasikan tugas akhir saya selama tetap mencantumkan nama saya sebagai
penulis/pencipta.
Dari pernyataan ini saya buat dengan sebenarnya.
vi
ABSTRACT
Currently the technology is already highly developed. Any activity can
already be accessed using the Internet. Many jobs are using the internet as a media
campaign, media transactions, even as a store database, one for event organizers.
Event organizer is a team that aims to help organize the event on a client who is
too busy to organize the event. To help the problems of society, the application is
made to a database that serves well as a media campaign for its partners and to
help the people in the reservation because of the current events in the community
still using manual method for booking events. Thus the authors take the final title
Event Organizer application creation based on Android to facilitate the public in
booking events and help a partner to promote it online.For support making this
application, the author uses the Android Studio software as easy to use and
features - features better to support the making of an application. By using the
facilities available such as WebView, TextView, ListView, ImageButtom,
GridLayout and RelativeLayout as well as some reference in the Application
Event Organizer then created based on Android.
Keywords: AndroidStudio, WebView, TextView, ListView, ImageButtom,
GridLayout, RelativeLayout.
vii
ABSTRAK
Saat ini teknologi sudah sangat berkembang. Kegiatan apapun sudah dapat
diakses menggunakan internet. Banyak pekerjaan yang menggunakan internet
sebagai media promosi, media transaksi, bahkan sebagai penyimpan database,
salah satunya untuk event organizer. Event organizer merupakan sebuah tim yang
bertujuan membantu mengatur acara pada client yang terlalu sibuk untuk
mengatur acara. Untuk membantu permasalahan masyarakat, aplikasi ini dibuat
untuk sebagai database yang berfungsi sekaligus media promosi bagi mitra dan
dapat membantu masyarakat dalam pemesanan event karena saat ini dalam
lingkungan masyarakat masih menggunakan cara manual untuk pemesanan event.
Maka dari itu penulis mengambil judul tugas akhir pembuatan aplikasi Event
Organizer berbasis Android untuk memudahkan masyarakat dalam pemesanan
event dan membantu seorang mitra untuk berpromosi secara online.Untuk
menunjang pembuatan aplikasi ini, penulismenggunakan perangkat lunak
AndroidStudio karena mudah di gunakan serta memiliki fitur – fitur yang lebih
baik untuk menunjang pembuatan suatu aplikasi. Dengan menggunakan fasilitas
yang terdapat seperti WebView, TextView,Listview,ImageButtom,GridLayout dan
RelativeLayout serta beberapa sumber referensi maka terciptalah Aplikasi Event
Organizer berbasis Android.
Kata Kunci : AndroidStudio, WebView, TextView, ListView, ImageButtom,
GridLayout, RelativeLayout.
viii
KATA PENGANTAR
Dengan memanjatkan puji syukur kehadirat Tuhan Yang Maha
Kuasa,karena atas rahmat serta hidayah-Nya penulis dapat menyelesaikan tugas
akhir dengan judul “Pembuatan Aplikasi Event Organizer Berbasis Android”. Di
dalam tulisan ini, disajikan pokok-pokok bahasan tugas akhir meliputi gambaran
tentang Pembuatan Aplikasi Event Organizer Berbasis Android yang bertujuan
untuk membantu penyelenggara acara dalam mempromosikan event yang akan di
selenggarakan dan memudahkan masyarakat dalam pemesanan event.
Penulis menyampaikan ucapan terima kasih yang sebesar-besanya kepada :
1. Ida Bagus Dharmawan, S.T., M.Si.sebagai Direkur Politeknik Negeri
Balikpapan
2. Drs. Armin, M.T, sebagai Ketua Jurusan Teknik Elektronika
3. Maria Ulfah .S.T.,M.T sebagai pembimbing yang telah membimbing dan
memberikan pengarahan selama pengerjaan tugas akhir ini.
4. Seluruh staf dan karyawan jurusan Teknik Elektronika Politeknik Negeri
Balikpapan dan rekan-rekan atas diskusi dan konsultasi yang diberikan.
5. Ayahanda dan .......( dst)
6. Seluruh teman angkatan 2015 Teknik Elektronika yang telah banyak
membantu selama penyusunan tugas akhir ini hingga selesai.
7. Semua pihak yang penulis tidak dapat menyebutkan satu persatu, yang telah
memberikan bantuan secara langsung maupun tidak langsung dalam
penyusunan tugas akhir ini hingga selesai.
Penulis menyadari bahwa tugas akhir ini bukanlah karya yang sempurna,
dan masih banyak ditemui kekurangan dan kelemahan. Oleh karena itu, saran dan
masukan yang membangun sangat diharapkan.
Balikpapan, 2018
Penulis
ix
DAFTAR ISI
LEMBAR PENGESAHAN .................................................................................. ii
SURAT PERNYATAAN .................................................................................... iii
SURAT PERNYATAAN PERSETUJUAN PUBLIKASI ..................................... v
TUGAS AKHIR UNTUK KEPENTINGAN ......................................................... v
AKADEMIS .......................................................................................................... v
ABSTRACT ........................................................................................................... vi
ABSTRAK ..........................................................................................................vii
KATA PENGANTAR ...................................................................................... viii
DAFTAR ISI ........................................................................................................ ix
DAFTAR GAMBAR ........................................................................................... xi
DAFTAR TABEL ............................................................................................ xiii
BAB I PENDAHULUAN ...................................................................................... 1
1.1 Latar Belakang ............................................................................................ 1
1.2 Rumusan Masalah ....................................................................................... 1
1.3 Batasan Masalah ......................................................................................... 2
1.4 Tujuan ......................................................................................................... 2
1.5 Manfaat ....................................................................................................... 2
BAB II LANDASAN TEORI ................................................................................ 3
2.1 Penelitian Sebelumnya ................................................................................ 3
2.2 Pengertian Event Organizer ........................................................................ 4
2.3 Metode yang di gunakan ............................................................................. 5
2.3.1 Java jdk ....................................................................................................... 5
2.2 Android ....................................................................................................... 6
2.4.1 Arsitektur Android ...................................................................................... 7
2.5 Android studio ............................................................................................ 8
BAB III METODE PENELITIAN ....................................................................... 10
3.1 Jenis Penelitian ......................................................................................... 10
3.2 Tempat dan Waktu Penelitian ................................................................... 10
3.3 Peralatan dan Bahan yang di gunakan ...................................................... 10
3.3.1 Peralatan perangkat keras ( hardware) dengan spesifikasi : ..................... 10
3.3.2 Peralatan perangkat lunak ( software) yaitu : ............................................ 10
3.4 Tahap Penelitian ....................................................................................... 11
3.1 Flowchart .................................................................................................. 13
x
BAB IV HASIL DAN PEMBAHASAN .............................................................. 15
4.1 Implementasi............................................................................................. 15
4.1.1 Cara menginstal aplikasi Android Studio .................................................. 15
4.2 Pembuatan Aplikasi Event Organizer ....................................................... 24
4.2.1 Pengenalan Struktur Aplikasi .................................................................. 24
4.1 Uji Coba Dari Aplikasi ............................................................................. 33
BAB V PENUTUP .............................................................................................. 34
5.1 Kesimpulan ............................................................................................... 34
5.2 Saran ......................................................................................................... 34
xi
DAFTAR GAMBAR
Gambar 2.2 Diagram Tools (JDK) ......................................................................... 5
Gambar 2.3 logo Android Studio ........................................................................... 8
Gambar 3.1 Skema Penelitian .............................................................................. 11
Gambar 3.2 Flowchart Langkah- langkah penelitian ........................................... 13
Gambar 3.3 Flowchart Perencanaan Lay Out tampilan EO .................................. 14
Gambar 4.1 Instalan Java JDK ............................................................................. 16
Gambar 4.2 Instalan Android Studio .................................................................... 16
Gambar 4.3 Instalan Chouse Components pada Android Studio .......................... 17
Gambar 4.4 License Agreement pada Android Studio ......................................... 17
Gambar 4.5 Configuration Setting pada instalan Android Studio ........................ 18
Gambar 4.6 Choose Strart Menu Folder pada instalan Android Studio ................ 18
Gambar 4.7 Installing pada penginstalan Android Studio .................................... 19
Gambar 4.8 Installation Complete pada Android Studio ..................................... 19
Gambar 4.9 Completing Android Studio Setup .................................................... 20
Gambar 4.10 Tampilan awal Android Studio ....................................................... 20
Gambar 4.11 Android Studio Setup Wizard ......................................................... 21
Gambar 4.12 Installan tipe dari Android Studio ................................................... 21
Gambar 4.13 verifykasi settings type pada Android Studio ................................ 22
Gambar 4.14 Downloading Components ............................................................ 23
Gambar 4.15 Tampilan awal pemilihan pembuatan project pada Android studio24
Gambar 4.16 tampilan awal aplikasi Android studio ............................................ 24
Gambar 4.17 Tampilan pemilihan pembuatan project ....................................... 25
Gambar 4.18 Tampilan folder pada project ......................................................... 25
Gambar 4.19 Tampilan untuk pembuatan design ................................................. 26
Gambar 4.20 Tampilan Splash awal pada aplikasi Event organizer ..................... 26
Gambar 4.21 tampilan untuk Login USER dan MITRA ....................................... 27
Gambar 4.22 tampilan menu Register User dan Mitra ........................................ 27
Gambar 4.23 tampilan menu umum untuk Customer/user .................................. 28
Gambar 4.24 tampilan menu paket pada Mitra untuk User/customer ................. 28
Gambar 4.25 tampilan menu khusus untuk Mitra ............................................... 29
Gambar 4.26 tampilan menu edit profil untuk Mitra ............................................ 30
Gambar 4.27 Tampilan menu edit paket untuk Mitra ......................................... 30
Gambar 4.28 Tampilan menu List per paket Mitra ............................................. 31
Gambar 4.29 Tampilan detail untuk informasi pembayaran ................................ 32
xii
Gambar 4.30 Tampilan detail untuk upload bukti pembayaran dan pemberian
rating pelayanan .................................................................................................. 33
xiii
DAFTAR TABEL
Tabel 2.1 Tabel Penelitian ..................................................................................... 3
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Saat ini teknologi sudah sangat berkembang. Kegiatan apapun sudah dapat
diakses menggunakan internet. Banyak pekerjaan yang menggunakan internet
sebagai media promosi, media transaksi, bahkan sebagai penyimpan database,
salah satunya untuk event organizer. Event organizer merupakan sebuah tim yang
bertujuan membantu mengatur acara pada client yang terlalu sibuk untuk
mengatur acara.
Untuk membantu permasalahan masyarakat, aplikasi ini dibuat untuk
sebagai database yang berfungsi sekaligus media promosi bagi event organizer
dan dapat membantu masyarakat dalam pemesanan event karena saat ini dalam
lingkungan masyarakat masih menggunakan cara manual untuk pemesanan event
seperti pemesanan tempat untuk seminar ,dekorasi buat khitanan dan aqiqahan,
mencari catering , mencari seorang pencetak undangan dan pembuatan baleho .
Aplikasi ini akan membantu bagi seorang event organizer untuk promosi secara
online dan membantu masyarakat dalam hal pemesanan event yang akan di gelar
dengan secara online dan memudahakn bagi masyarakat yang mempunyai
pekerjaan yang sangat sibuk sehingga mereka dapat memesan event tersebut
dengan cara online maka dari itu penulis mengambil judul tugas akhir
PEMBUATAN APLIKASI EVENT ORGANIZER BERBASIS ANDROID
DENGAN MENGGUNAKAN ANDROID STUDIO untuk dapat memudahkan
masyarakat dalam pemesanan event dan membantu seorang event organizer untuk
berpromosi secara online.
1.2 Rumusan Masalah
Adapun rumusan masalah dalam Tugas Akhir ini adalah bagaimana
membuat suatu aplikasi Event Organizer berbasis android agar dapat
mempermudah masyarakat dalam pemesanan event ( Seminar, Khitanan dan
Aqiqahan,) dengan secara tidak manual melainkan pemesanan secara online dan
memudahkan seorang event organizer berpromosi secara online.
2
Sehubungan dengan hal tersebut dapat di rumuskan permasalahan sebagai
berikut:
1. Bagaimana cara membantu Event Organizer atau penyelenggara acara dalam
mempromosikan event yang akan di selenggarakan ?
2. Bagaimana cara memudahkan masyarakat dalam pemesanan event?
3. Bagaimana cara pembuatan aplikasi Event Organizer berbasis android?
1.3 Batasan Masalah
Batasan masalah dari Tugas Akhir ini agar pada saat pembahasan tidak
terlalu meluas, adalah :
1. Penelitian ini dibatasi hanya pada perancangan Aplikasi Event Organizer
Berbasis Android
2. Sistem ini menjembatani komunikasi lebih lanjut antara customer dengan pihak
tim event organizer berkaitan dengan persiapan sampai penyelenggaraan event,
setelah customer melakukan deal pembayaran dan konfirmasi pembelian event
1.4 Tujuan
Adapun tujuan dari Tugas Akhir ini adalah :
1. Membuat aplikasi yang dapat memfasilitasi pemasang iklan dalam
mengiklankan Event yang terintegrasi dengan social media.
2. Membuat aplikasi yang dapat memudahkan dan memfasilitasi masyarakat
untuk pemesanan secara online.
3. Pembuatan aplikasi Event Organizer berbasis android ini yakni menggunakan
media android studio dan dukungan aplikasi java JDK dan java SDK karena
android studio ini menggunakan bahasa java.
1.5 Manfaat
Adapun manfaat yang dapat di ambil dalam penulisan Tugas Akhir ini
adalah :
1. Memberikan kemudahan bagi masyarakat untuk melakukan pemesanan event
secara online
2. Meringankan pekerjaan mitra penyelenggara Event Organizer
3
BAB II
LANDASAN TEORI
2.1 Penelitian Sebelumnya
Pada Penelitian sebelumnya digunakan sebagai pedoman dasar
pertimbangan maupun perbandingan bagi penulis dalam upaya memperoleh arah
dan kerangka berpikir. Dalam melakukan penelitian ini peneliti menggunakan 2
jurnal sebagai bahan perbandingan dengan penelitian yang akan dilakukan.
Jurnal-jurnal tersebut dijadikan sebagai data pendukung dalam penelitian ini.
Berikut ini adalah penelitian sebelumnya yang dapat dijadikan acuan dalam
penelitian ini :
Tabel 2.1 Tabel Penelitian
Nama Peneliti &
Tahun Penelitian
Judul Jurnal
Isi Jurnal
Taufiq Iqbal Fadilah,
Dkk (di universitas
Telkom Bandung )
APLIKASI
PERIKLANAN DAN
PEMESANAN TIKET
EVENT ORGANIZER
BERBASIS WEB
Aplikasi ini
menggunakan PHP
(Hypertext
Preprocessor) dan juga
menggunakan MySQL.
Metode pengerjaan
yang digunakan adalah
metode Waterfall dan
diuji dengan
menggunakan metode
Black Box Testing.
Setelah diuji, aplikasi
ini dapat diakses secara
online. Aplikasi ini
mampu memfasilitasi
pemasang iklan dalam
mengiklankan Event
4
yang terintegrasi
dengan social media
dan juga memfasilitasi
pembeli tiket untuk
memesan tiket secara
online. Pada bagian
Event Organizer dapat
melihat laporan
pemesanan dan
penjualan tiket.
Andreanus Agung, dkk
( di
Universitas Kristen
Petra , Surabaya)
Pembuatan Aplikasi
Event Organizer Clover
Berbasis Android
Aplikasi dibuat
menggunakan PHP
dengan Eclipse sebagai
bahasa pemrograman.
Sedangkan database
yang digunakan adalah
MySQL dan web server
yang digunakan adalah
Apache.
Dari penelitian sebelumnya maka penulis pengembangkan pembuatan
aplikasi event organizer berbasis Android dimana dalam pembuatan event ini
tidak berbasis web dan memakai data base MySQL dan memakai Java scrib ,
node js ,java JDK, java SDK, Apache dan Android Smartphone.
2.2 Pengertian Event Organizer
Menurut Megananda, Y. 2009 Event organizer adalah istilah untuk
penyedia jasa profesional penyelenggara acara. Hal ini dikarenakan keterbatasan
sumber daya atau waktu yang dimiliki client. Event organizer membantu client
untuk dapat menyelenggarakan acara yang diinginkan susunan acara yang dipakai
setiap event memiliki struktur organisasi yang berbeda-beda.
5
2.3 Metode yang di gunakan
2.3.1 Java jdk
Menurut Hunter Automotive, 2012 Java Development Kit (JDK)
merupakan perangkat lunak yang digunakan untuk menajemen dan membangun
berbagai aplikasi Java. JDK merupakan superset dari JRE, berisikan segala
sesuatu yang ada di JRE ditambahkan compiler dan debugger yang diperlukan
untuk mengembangkan applet dan aplikasi.
Pada JDK, terdapat berbagai tools yang digunakan untuk membangun
aplikasi Java. Tools tersebut digambarkan dengan diagram berikut:
Gambar 2.2 Diagram Tools (JDK)
Sumber: (Jurnal java jdk (Hunter automotif ,2012))
2.3.2 Apache
Menurut Haidi Barasa, 2013 Apache adalah sebuah nama web server yang
bertanggung jawab pada request-response HTTP dan logging informasi secara
detail(kegunaan basicnya). Selain itu, Apache juga diartikan sebagai suatu web
server yang kompak, modular, mengikuti standar protokol HTTP, dan tentu saja
sangat digemari. Kesimpulan ini bisa didapatkan dari jumlah pengguna yang jauh
melebihi para pesaingnya. Sesuai hasil survai yang dilakukan oleh Netcraft, bulan
Januari 2005 saja jumlahnya tidak kurang dari 68% pangsa web server yang
berjalan di Internet. Ini berarti jika semua web server selain Apache digabung,
masih belum bisa mengalahkan jumlah Apache.
6
Kelebihan Dan Kekurangan Apache
Kelebihan pada apache yaitu:
1. Apache termasuk dalam kategori freeware.
2. Apache mudah sekali proses instalasinya jika dibanding web server lainnya
seperti NCSA, IIS, dan lain-lain.
3. Mampu beroperasi pada berbagai paltform sistem operasi.
4. Mudah mengatur konfigurasinya. Apache mempunyai hanya empat file
konfigurasi.
5. Mudah dalam menambahkan peripheral lainnya ke dalam platform web
servernya.
Sedangkan kekurangan dari apache adalah:
1. web server Apache tidak memiliki kemampuan mengatur load seperti IIS,
sehingga akan terus mem-fork proses baru hingga nilai MaxClients tercapai
atau hingga batas yang diizinkan oleh OS. Ini tentunya menguntungkan
penyerang karena habisnya RAM akan lebih cepat tercapai.
2. Apache tidak memproses karakter kutip dalam string Referrer dan User-Agent
yang dikirimkan oleh Client. Ini berarti Client dapat memformulasi inputnya
secara hati-hati untuk merusak format baris log akses
.3. Terganggunya proses upload data, yang bisa menyebabkan software salah
dalam menerjemahkan ukuran data yang masuk. Dengan celah tersebut, hacker
dikabarkan dapat mengeksploitasi kerentanan dengan cara mengirimkan
request pada server Apache bersangkutan.
2.2 Android
Menurut Galuh Noor, 2015 Android adalah sebuah sistem operasi
perangkat mobile berbasis linux yang mencakup sistem operasi, middleware dan
aplikasi. Android menyediakan platform terbuka bagi para pengembang untuk
menciptakan aplikasi mereka. Android merupakan generasi baru platform mobile
yang memberikan kesempatan kepada pengembang untuk melakukan
pengembangan sesuai dengan yang diharapkan Sistem operasi yang mendasari
7
Android merupakan lisensi di bawah naungan GNU, General Public License Versi
2(GPLv2), yang biasa dikenal dengan istilah Copyleft. Istilah copyleft ini
merupakan lisensi yang setiap perbaikan oleh pihak ketiga harus terus jatuh di
bawah terms.
Distribusi Android berada di bawah lisensi Apache Software
(ASL/Apache2), yang memungkin untuk distribusi kedua atau seterusnya.
Pengembang aplikasi Android diperbolehkan untuk mendistribusikan aplikasi
mereka di bawah skema lisensi apapun yang mereka inginkan.
Pengembang memiliki beberapa pilihan dalam membuat aplikasi yang
berbasis Android. Namun kebanyakan pengembang menggunakan Eclipse sebagai
IDE untuk merancang aplikasi mereka. Aplikasi Android dapat dikembangkan
pada berbagai sistem operasi, diantaranya adalah:
a. Windows XP/Vista/7
b. Mac OS X (Mac OS X 10.48 atau yang lebih baru)
c. sLinux
2.4.1 Arsitektur Android
Secara garis besar arsitektur Android dapat dijelaskan dan digambarkan
sebagai Application dan Widget adalah layer dimana kita berhubungan dengan
aplikasi saja. Di layer terdapat aplikasi inti termasuk klien email, program SMS,
kalender, peta, browser, kontak, dan lain-lain. Semua aplikasi ditulis dengan
menggunakan bahasa pemrograman JAVA.
Libraries adalah layer tempat fitur-fitur Android berada, biasanya para
pengembang aplikasi mengakses libraries untuk menjalankan aplikasinya.
Android Runtime adalah layer yang membuat aplikasi Android dapat
dijalankan di mana dalam prosesnya menggunakan implementasi Linux. Dalvik
Virtual Machine merupakan mesin yang membentuk dasar kerangka aplikasi
Android. Di dalam Android Runtime dibagi menjadi dua bagian yaitu:1. Core
Libraries Aplikasi Android dibangun dalam bahasa Java, sementara DVM bukan
merupakan virtual machine untuk Java. Sehingga diperlukan libraries yang
berfungsi untuk menterjemahkan bahasa Java/C yang ditangani oleh Core
Libraries.
8
Dalvik Virtual Machine berbasis register yang dioptimalkan untuk
menjalankan fungsi fungsi secara efisien, dimana merupakan pengembangan yang
mampu membuat Linux kernel untuk melakukan threading dan manajemen
tingkat rendah.
Linux Kernel adalah layer dimana inti sistem operasi dari Android itu berada.
Berisi file system yang mengatur system processing memory, resource, drivers,
dan sistem-sistem operasi Android lainnya. Linux Kernel yang digunakan Android
adalah Linux Kernel release 2.6.
2.5 Android studio
Android Studio Android studio adalah IDE (Integrated Development
Environment) resmi untuk pengembangan aplikasi Android dan bersifat open
source atau gratis. Peluncuran Android Studio ini diumumkan oleh Google pada
16 mei 2013 pada event Google I/O Conference untuk tahun 2013. Sejak saat itu,
Android Studio mengantikan Eclipse sebagai IDE resmi untuk mengembangkan
aplikasi Android .
Gambar 2.3 logo Android Studio
Sumber : google.co.id
Android studio sendiri dikembangkan berdasarkan IntelliJ IDEA yang
mirip dengan Eclipse disertai dengan ADT plugin (Android Development Tools).
Android studio memiliki fitur :
a. Projek berbasis pada Gradle Build
b. Refactory dan pembenahan bug yang cepat
c. Tools baru yang bernama “Lint” dikalim dapat memonitor kecepatan,
kegunaan, serta kompetibelitas aplikasi dengan cepat.
d. Mendukung Proguard And App-signing untuk keamanan.
9
e. Memiliki GUI aplikasi android lebih mudah
f. Didukung oleh Google Cloud Platfrom untuk setiap aplikasi yang
dikembangkan.
10
BAB III
METODE PENELITIAN
3.1 Jenis Penelitian
Jenis penelitian ini adalah perancangan pembuatan aplikasi untuk
mempermudah masyarakat dalam pemesanan event secara online dan membantu
seorang penyelenggara event organizer untuk mempromosikan secara online.
3.2 Tempat dan Waktu Penelitian
Tempat penelitian Tugas Akhir di laksanakan di Rumah Penulis Jl. Ruhui
rahayu II Gg.perdamaian II RT.10 Kec. Balikpapan Selatan Kel. Sepinggan Baru.
Penelitian ini mulai dari bulan Mei 2018 sampai dengan bulan Juli 2018.
3.3 Peralatan dan Bahan yang di gunakan
Penelitian tentang pembuatan aplikasi untuk mempermudah masyarakat
dalam pemesanan event secara online dan membantu seorang penyelenggara event
organizer untuk mempromosikan secara online Kegiatan penelitian ini
menggunakan perangkat keras (hardware) dan perangkat lunak (software) dengan
spesifikasi sebagai berikut :
3.3.1 Peralatan perangkat keras ( hardware) dengan spesifikasi :
1. Laptop Processor Intel ® Platinum ® CPU 2020@ 2.40GHz
2. RAM 2.00 GB dan tambahan RAM 4.00 GB
3. Perangkat mobile Android untuk menjalankan aplikasi
3.3.2 Peralatan perangkat lunak ( software) yaitu :
1. Java Jdk
2. Java
3. Apache
4. Java SDK
5. Android Studio
6. Android Smartphone
11
3.4 Tahap Penelitian
Tahapan-tahapan terdiri dari analisis kebutuhan, desain sistem, coding, testing .
Gambar 3.1 Skema Penelitian
a. Analisis Kebutuhan
Analisis kebutuhan merupakan tahap awal penelitian. Tahap ini dimulai
dengan mengumpulkan data-data pendukung penelitian seperti alamat dan contact
person dari penyelenggara event tersebut. Selain itu, tahapan analisis bertujuan
untuk memudah kan masyarakat untuk pemesanan event sesuai dengan yang
dibutuhkan.
b. Desain Sistem
Setelah tahap analisis telah dilakukan tahap selanjutnya adalah perancangan
desain. Desain dibuat berdasarkan hasil dari analisis kebutuhan yang telah diperoleh.
Tahap ini bertujuan untuk merancang sistem yang dibuat yaitu meliputi pembuatan
database, pembuatan interface berupa desain input dan output.
Analisis kebutuhan
Desain sistem
coding
testing
pemeliharaan
12
c. Coding
Kode program merupakan tahap implementasi dari tahap desain dan analisis
kebutuhan. Pada tahap ini, aplikasi dibuat berdasarkan data-data yang telah di
kumpulkan . Pada tahap ini, rancangan arsitektur sistem dan desain sistem
yang telah dibuat kemudian diterjemahkan ke dalam kode bahasa pemrograman.
Bahasa pemrograman yang digunakan dalam Pembuatan Aplikasi Event Organizer
Berbasis Android dengan menggunakan Bahasa pemrograman Java. Setelah itu
diimplementasikan sebagai aplikasi jadi.
d. Testing
Tahap pengujian ini bertujuan untuk mengetahui apakah aplikasi yang dibuat
telah memenuhi kebutuhan user atau belum sehingga apabila aplikasi yang dibuat
tidak sesuai dengan kebutuhan user maka aplikasi diperbaiki kembali. Setelah
diimplementasikan kedalam bahasa pemrograman,setiap fungsi dari aplikasi/software
harus diuji secara keseluruhan. Proses ini dilakukan untuk mengetahui bahwa tidak
ada kesalahan/error pada aplikasi dan memastikan bahwa semua kebutuhan sistem
terpenuhi.
e. Pemeliharaan
Tahap ini merupakan tahap akhir dimana perangkat lunak yang sudah selesai
dibuat digunakan. Perangkat lunak masih dapat mengalami perubahan atau
penambahan sesuai dengan hasil dari pengujian program yang telah dilakukan pada
tahap pengujian program. Pada tahap ini, aplikasi/software yang telah selesai dibuat,
dapat dioperasikan. Aplikasi ini dapat dioperasikan pada smartphone dengan platform
Android.
13
3.1 Flowchart
Tidak
Ya
Gambar 3.2 Flowchart Langkah- langkah penelitian
Pengumpulan Data
Rancangan Desain Aplikasi EO
Pembuatan Aplikasi EO
Pengujian Aplikasi
Apakah Aplikasi
Sudah BERJALAN
dengan benar?
Analisa
Starat
End
Inisialisasi
Identifikasi masalah
Studi literatur
14
Tidak Tidak
Ya
Gambar 3.3 Flowchart Perencanaan Lay Out tampilan EO
Wedding Seminar Aqiqah &
Khitanan Ulangta
hun
Proses
pemes
anan
Proses
pemes
anan
Proses
pemes
anan
Proses
pemes
anan
order
End
Pilih Menu Event
Tampilan Aplikasi
Start
15
BAB IV
HASIL DAN PEMBAHASAN
4.1 Implementasi
Setelah semua penelitian dan persiapan di lakukan pada bab ini akan di
bahas mengenai hasil uji coba terhadap pembuatan aplikasi serta mengenai fitur
dan tampilan yang terdapat pada Aplikasi Event Organizer berbasis Android ini.
4.1.1 Cara menginstal aplikasi Android Studio
Android Studio adalah salah satu software untuk membuat aplikasi
android.android studio ini sudah mulai di gunakan oleh para start up atau
developer android untuk membuat aplikasi android.dan sekarang banyak
universtas menetapkan matakuliah mobile programing menjadi matakuliah wajib
bagi mahasiswa.android studio ini juga menguntukan,karena banyak developer
yang memakai software ini karena lebih mudah saat coding ,debug,dan share pada
github. untuk lebih jelasnya saat menginstal android studio berikut cara dan syarat
instalasi nya:
Persyaratan sistem
a. Windows 7 (32-bit atau 64-bit)
b. Windows 8 / Windows 8.1
c. Mac OS X 10.5.8 atau yang lebih baru (sistem berbasis Intel saja)
d. Sistem Linux dengan versi 2.11 atau yang lebih baru dari GNU C Library
(glibc)
e. Minimal 2GB RAM (4GB lebih disukai)
f. 1.5GB ruang disk yang tersedia
Instalasi:
1. Instal Java Development Kit (JDK)
Java Development Kit (JDK) adalah salah satu kit yang digunakan android
stduio,karena android studio menggunakan bahasa java.untuk instal JDK ini di
rekomnedasi kan JDK 6,7 dan yang terbaru JDK 9 karena lebih stabil daripada
terdahulunya.
16
Gambar 4.1 Instalan Java JDK
Sumber: Penulis
2. Instal Android Studio
Setelah download android studio pada link diatas,silahkan klik instalan
android dengan nama file(studio android-studio-bundle- <version> .exe).maka
keluar seperti gambar berikut:
Gambar 4.2 Instalan Android Studio
Sumber: Penulis
Setelah muncul tampilan seperti diatas lalu klik next dan hasilnya seperti berikut
17
Gambar 4.3 Instalan Chouse Components pada Android Studio
Sumber: Penulis
hasil tersebut menunjukan bahwa yang akan di instal android studio yaitu SDK
dan Virtual Device lalu klik next
(sedikit penjelasan SDK digunakan untuk mengembangkan atau membuat aplikasi
untuk paket software tertentu, software framework, hardware platform, sistem
komputer, konsol video game, sistem operasi atau platform sejenis lainnya,Virtual
Device untuk emulator android).
Gambar 4.4 License Agreement pada Android Studio
Sumber: Pribadi
18
Hasil tersebut adalah perjanjian dan lisensi android studio klik next saja
kalo tidak mau membacanya (disarankan membaca sebelum bertindak)
Gambar 4.5 Configuration Setting pada instalan Android Studio
Sumber: Penulis
hasil diatas menunjukan lokasi penyimpanan untuk instal android lokasi bisa
dipindah sesuai keinginan ,namun disarankan lokasi di C:\ lalu klik next.
Gambar 4.6 Choose Strart Menu Folder pada instalan Android Studio
Sumber: Pribadi
19
Hasil tersebut menunjukan bahwa aplikasi android studio akan terlihat
pada desktop windows klik instal
Gambar 4.7 Installing pada penginstalan Android Studio
Sumber: Penulis
tunggu instalasi sampai selesai
Gambar 4.8 Installation Complete pada Android Studio
Sumber: Penulis
20
jika telah selsai klik next dan klik finish
Gambar 4.9 Completing Android Studio Setup
Sumber: Penulis
Setelah selesai instalasi dan klik finish akan keluar aplikasi android studio seperti
ini dan akan muncul seperti diabawah ini sebelum memulai android studio.
Gambar 4.10 Tampilan awal Android Studio
Sumber: Penulis
21
Gambar 4.11 Android Studio Setup Wizard
Sumber: Penulis
tampilan diatas akan membawa ke instalasi selanjutnya dan di saran kan
terkoneksi internet supaya tidak gagal pada saat instalasi dan tidak ada bug pada
aplikasi android studio saat di jalankan.lalu klik next.
Gambar 4.12 Installan tipe dari Android Studio
Sumber: Penulis
22
Gambar 4.12 adalah jenis instalasi, jika memilih standar maka akan
terinstal secara default mengikuti android studio, jika custom maka akan terinstal
sesuai keinginan lalu klik next.
Gambar 4.13 verifykasi settings type pada Android Studio
Sumber: Penulis
Tampilan diatas menunjukan file yang harus di download,siapkan koneksi
yg stabil dan kuota yg banyak karena akan mendownload kurang lebih 222Mb
lalu klik finish.
23
Gambar 4.14 Downloading Components
Sumber: Penulis
tunggu hingga benar benar selesai mendownload
24
klik finish maka android studio telah siap digunakan
Gambar 4.15 Tampilan awal pemilihan pembuatan project
pada Android studio
Sumber: Penulis
4.2 Pembuatan Aplikasi Event Organizer
4.2.1 Pengenalan Struktur Aplikasi
Berikut langkah –langkah pembuatan aplikasi:
1. Membuka aplikasi Android Studio
Gambar 4.16 tampilan awal aplikasi Android studio
Sumber: Penulis
25
2. Setelah membuka aplikasi Andoid Studio lalu langkah selanjutnya Pembuatan
folder project yang akan di kerjakan
Gambar 4.17 Tampilan pemilihan pembuatan project
pada aplikasi Android studio
Sumber: Penulis
3. Stelah membuat folder project yang akan di kerjakan maka akan muncul
tampilan seperti di bawah ini
Gambar 4.18 Tampilan folder pada project
Sumber: Penulis
4. Langkah selanjutnya, melakukan pembuatan desaign pada aplikasi atau project
yang akn di buat
26
Gambar 4.19 Tampilan untuk pembuatan design
Sumber: Penulis
5. Selanjutnya yang akan di lakukan adalah membuat tampilan awal pada
aplikasi event organizer ( Splash Screen java )
Gambar 4.20 Tampilan Splash awal pada aplikasi Event organizer
Sumber: Penulis
6. Setelah itu membuat tampilan untuk Login User dan Mitra
(LoginActivity.java), tampilan gambar design di bawah ini adalah menjelaskan
bahwa pada gambar satu menjelaskan tentang pilihan awal login sebelum
mendaftar akun baru sedangkan gambar dua menjelaskan tentang login pada
saat sudah mempunyai akun pada aplikasi event organizer tersebut.
27
Gambar 4.21 tampilan untuk Login USER dan MITRA
Sumber: Penulis
7. Setelah itu membuat tampilan Registrasi User dan
Mitra (RegisterActivity.java)pada pembuatan akun baru, jadi pada menu tampilan
ini user dan mitra melakukan register terlebih dahulu sebelum masuk ke menu EO
tersebut .
Gambar 4.22 tampilan menu Register User dan Mitra
Sumber: Penulis
8. Tampilan menu pada aplikasi event organizer ini terdiri dari wedding,
seminar, aqiqah dan khitanan , ulang tahun ada 4 event yang tertera di dalam
menu EO tersebut.
28
Gambar 4.23 tampilan menu umum untuk Customer/user
Sumber: Penulis
9. Selanjutnya membuat tampillan daftar mitra (ListMitraActivity.java)
Jadi di dalam menu daftar mitra di bawah ini adalah menjelaskan bahwa pada
setiap satu event terdapat tiga paket event yang bisa di pilih oleh user dengan
sesuai selera user tersebut karena setiap paket itu berbeda isi.
Gambar 4.24 tampilan menu paket pada Mitra
untuk User/customer
Sumber: Penulis
29
10. Tampilan design untuk menu khusus Mitra
Jadi gambar di bawah ini adalah tampilan khusus pada menu mitra yang berfungsi
untuk mengedit profil mitra dan untuk meletakkan seberapa besar pembayaran,
dan meletakkan proses pembayarannya serta paket yang di sediakan oleh mitra
tersebut. Dan di menu khusus ini mitra bisa mensetting harga dan mensetting
gambar dengan sesuai yang di promosikan tanpa campur tangan dari pihak yang
membuat aplikasi event organizer tersebut.
Gambar 4.25 tampilan menu khusus untuk Mitra
Sumber: Penulis
11. Membuat menu edit profil mitra (MitraActivity.java)
Jadi pada menu ini menjelaskan tentang pengeditan profil mitra yang mengandung
keterangan di dalamnya tentang nama event, peletakkan gambar yang akan di
promosikan , dan didalam menu ini terdapat alamat dan contact person untuk
berkomunikasi dengan user atau customer serta terdapat keterangan transfer
supaya pada saat pelanggan ingin memesan dari salah satu paket event tersebut
ada petunjuk arah kemana akan membayar paket event tersebut. Tampilan
designya seperti di bawah ini:
30
Gambar 4.26 tampilan menu edit profil untuk Mitra
Sumber: Penulis
12. Selanjutnya membuat menu edit paket Mitra
Di dalam menu edit paket ini adalah menjelaskan tentang proses peletakkan harga
paket yang ada di event tersebut dan memproses peletakkan isi dari paket event
yang akan di promosikan dan memberi keterangan gambar dari harga yang di
promosikan. Berikut adalah tampilan design dari edit paket di atas :
Gambar 4.27 Tampilan menu edit paket untuk Mitra
Sumber: Penulis
31
13. Menu list paket pada masing – masing paket event
Menjelaskan bahwa seperti pada list di bawah ini yaitu contoh pada menu paket
wedding 1 terdapat paket dekorasi, catering, dan salon dan di tampilan list ini
terdapat harga dan tampilan dari harga paket tersebut.
Gambar 4.28 Tampilan menu List per paket Mitra
Sumber: Penulis
14. Selanjutnya membuat menu detail paket
Didalamnya terdapat satu paket lengkap seperti pada mwnu paket wedding 3
terdapat di dalam nya lengakap dengan souvenir , dan pencetak undangannya
jadi bukan hanya dekorasi, catering, dan salon tetapi juga sudah lengkap terdapat
souvenir dan pencetak undangannya.
15. Detail untuk informasi pembayaran di bawah ini adalah menjelaskan bahwa
pada saat user mensetujui untuk memesan dalam salah satu paket yang ada di
aplikasi event organizer maka user dapat membayar dengan menstransfer ke
nomer rekening yang sudah tertera seperti di bawah ini dengan sesuai harga
paket yang user pilih.
32
Gambar 4.29 Tampilan detail untuk informasi pembayaran
Sumber: Penulis
16. Design Detail untuk upload bukti pembayaran
Menjelaskan bahwa setelah user menstransfer jumlah harga paket yang di pilih
maka perintah selanjutnya user harus mengupload bukti pembayaran yang telah di
bayar , dan jika sudah terupload maka akan muncul tampilan seperti di bawah ini
bahwa bukti transfer berhasil di upload dan ada perintah selanjutnya untuk
menunggu beberapa saat setelah selesai acara yang akan di laksanakan, maka user
di harapkan memberi rating pelayanan terhadap mitra dari paket yang di pesan
oleh user.
33
Gambar 4.30 Tampilan detail untuk upload bukti pembayaran
dan pemberian rating pelayanan
Sumber: Penulis
4.1 Uji Coba Dari Aplikasi
Dari hasil aplikasi yang penulis buat , penulis menguji coba melalui
masyarakat sekitar bahwa aplikasi yang penulis buat mendapat respon yang sangat
baik dan berguna buat masyarakat sehingga masyarakat banyak yang menyetujui
jika aplikasi tersebut di sebar luaskan.
34
BAB V
PENUTUP
5.1 Kesimpulan
Dari tugas akhir ini, ada beberapa kesimpulan yang dapat penulis ambil di
antaranya adalah:
1. Aplikasi Event Organizer berbasis android sebagai media untuk
mempermudah pengguna dalam pemesanan sebuah event.
2. Aplikasi Event Organizer ini membantu masyarakat untuk pemesanan event
yang biasanya di lakukan secara manual atau mencari dengan sendiri , dan
aplikasi ini membantu masyarakat dengan mempermudah pemesanannya
secara online.
3. Aplikasi ini juga membantu Mitra untuk mempermudah mengiklankan usaha
yang dimiliki oleh Mitra tersebut
4. Dalam Aplikasi Event Organizer ini Mitra juga bisa memasang harga paket
dengan sesuai harga pasaran tanpa bantuan dari penulis.
5.2 Saran
Dari hasil tugas akhir ini dapat di sarankan sebagai berikut :
1. Bagi peneliti selanjutnya yang akan melanjutkan penelitian dari Tugas Akhir
penulis di mohon melengkapi kode verifikasi pada menu aplikasi Event
organizer karena penulis belum membuat kode verifikasi tersebut.
2. Dan untuk penelitian selanjutnya di mohon agar membuat tampilan yang
lebih menarik dari aplikasi yang penulis buat serta melakukan pemasaran ke
playstrore supaya aplikasi ini bisa dapat di pergunakan oleh banyak
masyarakat.
35
DAFTAR PUSTAKA
Noor Galuh.(2015).konsep dasar android .Diperoleh 16 Maret 2018 jam 20:15:54
WITA, dari http://sam123040096.blogspot.co.id/2015/10/konsep-dasar-
android.html
Hunter Automotive.(2012).Java Development Kit (JDK).Diperoleh 12 Maret 2018
jam 15:00:35 WITA, dari
http://automotivehunter.blogspot.co.id/2012/08/java-development-kit-
jdk.html
Haidi Barasa.(2013).pengertian apache dan kelemahan Diperoleh 15 Maret 2018
jam 21:19:35 WITA, dari
https://haidibarasa.wordpress.com/2013/07/06/pengertian-kelebihan-dan-
kekurangan-apache/
Megananda, Y. 2009. 7 Langkah Jitu Membangun Bisnis Event Organizer. Buana
Ilmu Populer.DKI Jakarta
Ramadhaniatisari.(2017). Framework Hybrid App.Diperoleh 09 april 2018 jam
11:43:00 WITA, dari
http://ramadhaniatisari.blogspot.co.id/2017/10/framework-hybrid-
app.html
Zakas, C.N. 2012. Professional Java for Web Developers, Third Edition. Wrox,
Inc.
36
LAMPIRAN
37
1. Script untuk Registrasi User dan Mitra (RegisterActivity.java)
public class RegisterActivity extends AppCompatActivity {
private EditText namadepan,namabelakang,email,password,konfirmasi;
private Button signup;
private String
txtNamadepan,txtNamaBelakang,txtEmail,txtPswd,txtKonfirmasi,tipe,image;
private ProgressDialog progressDialog;
Config session;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup);
session = new Config(getApplicationContext());
tipe = getIntent().getExtras().getString("tipe");
image = Constants.URL_IMAGE;
namadepan = (EditText) findViewById(R.id.nama_depan);
namabelakang = (EditText) findViewById(R.id.nama_belakang);
email = (EditText) findViewById(R.id.email);
password = (EditText) findViewById(R.id.pswd);
konfirmasi = (EditText) findViewById(R.id.konfirmasi_pswd);
signup = (Button) findViewById(R.id.btn_signup);
progressDialog = new ProgressDialog(this);
signup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
signUp();
}
});
}
private void signUp(){
txtNamadepan = namadepan.getText().toString();
txtNamaBelakang = namabelakang.getText().toString();
txtEmail = email.getText().toString();
txtPswd = password.getText().toString();
txtKonfirmasi = konfirmasi.getText().toString();
progressDialog.setMessage("Signing up user ...");
progressDialog.show();
StringRequest stringRequest = new StringRequest(Request.Method.POST,
Constants.URL_SIGNUP,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (response.contains("success")) {
progressDialog.dismiss();
Toast.makeText(RegisterActivity.this,"Registrasi
38
Berhasil",Toast.LENGTH_SHORT).show();
session.createLoginSession(txtEmail,txtPswd,tipe);
Intent intent = new Intent(RegisterActivity.this,MainActivity.class);
startActivity(intent);
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
progressDialog.hide();
Toast.makeText(getApplicationContext(), error.getMessage(),
Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<>();
params.put("nama_depan", txtNamadepan);
params.put("nama_belakang", txtNamaBelakang);
params.put("email", txtEmail);
params.put("password", txtPswd);
params.put("tipe",tipe);
params.put("image",image);
return params;
}
};
RequestQueue rq = Volley.newRequestQueue(this);
rq.add(stringRequest);
}
}
39
2. Script untuk login User dan Mitra (LoginActivity.java)
public class LoginActivity extends AppCompatActivity {
Config session;
private TextView signup;
private EditText email,password;
private String txtEmail,txtPass;
private Button loginMitra,loginCustomer;
private static final String TAG = LoginActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
session = new Config(getApplicationContext());
email = (EditText) findViewById(R.id.input_user);
password = (EditText) findViewById(R.id.input_password);
loginMitra = (Button)findViewById(R.id.login_mitra);
loginCustomer = (Button)findViewById(R.id.login_customer);
loginMitra.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
loginMitras();
}
});
loginCustomer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
login();
}
});
}
public void loginMitras(){
txtEmail = email.getText().toString();
txtPass = password.getText().toString();
StringRequest stringRequest = new StringRequest(Request.Method.POST, Constants.URL_LOGIN2,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if(response.trim().equals("success")){
Intent intent = new Intent(LoginActivity.this,MainActivity.class);
session.createLoginSession(txtEmail,txtPass,"mitra");
startActivity(intent);
}else{
Toast.makeText(getApplicationContext(),"Email and Password don't
match",Toast.LENGTH_LONG).show();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(LoginActivity.this,error.toString(),Toast.LENGTH_LONG ).show();
}
40
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> map = new HashMap<String,String>();
map.put("email",txtEmail);
map.put("password", txtPass);
return map;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
public void login(){
txtEmail = email.getText().toString();
txtPass = password.getText().toString();
StringRequest stringRequest = new StringRequest(Request.Method.POST, Constants.URL_LOGIN,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if(response.trim().equals("success")){
Intent intent = new Intent(LoginActivity.this,MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_CLEAR_TASK);
session.createLoginSession(txtEmail,txtPass,"customer");
startActivity(intent);
}else{
Toast.makeText(getApplicationContext(),"Email and Password don't
match",Toast.LENGTH_LONG).show();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(LoginActivity.this,error.toString(),Toast.LENGTH_LONG ).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> map = new HashMap<String,String>();
map.put("email",txtEmail);
map.put("password", txtPass);
return map;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
public void onBackPressed(){
finish();
}
}
41
3. Script untuk Splash Screen (SplashAwal.java)
public class SplashAwal extends Activity {
private final int SPLASH_DISPLAY_LENGTH = 1000;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_awal);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(SplashAwal.this,MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
},SPLASH_DISPLAY_LENGTH);
}
}
42
4. Script untuk menampilkan daftar mitra (ListMitraActivity.java)
public class ListMitraActivity extends AppCompatActivity {
private static final String TAG = ListMitraActivity.class.getSimpleName();
private String kategori;
private ListView listView;
CustomAdapter myCustomAdapter=null;
private ArrayList<Mitra> mitras = new ArrayList<Mitra>();
private ArrayList<Kategori> kat = new ArrayList<Kategori>();
private String priceList,email,id_price,id;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_mitra);
kategori = getIntent().getExtras().getString("kategori");
listView = (ListView) findViewById(R.id.listView1);
myCustomAdapter=new CustomAdapter(this, mitras);
listView.setAdapter(myCustomAdapter);
callJson();
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Mitra m = mitras.get(i);
id = m.getId();
email = m.getEmail();
callMitra();
}
});
}
public void callMitra(){
id_price="";
String url = Constants.URL_API+"?case=detailMitra&email="+email;
JsonArrayRequest schoolReq = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject(i);
Kategori mitra = new Kategori();
mitra.setId(obj.getString("id"));
mitra.setNama(obj.getString("nama_depan"));
mitra.setKategori(obj.getString("kategori"));
mitra.setEmail(obj.getString("email"));
mitra.setPass(obj.getString("password"));
mitra.setAlamat(obj.getString("alamat"));
mitra.setKontak(obj.getString("kontak"));
mitra.setPricelist(obj.getString("harga"));
id_price = obj.getString("id_price");
// adding movie to movies array
kat.add(mitra);
43
} catch (JSONException e) {
e.printStackTrace();
}
}
Intent intent = new Intent(ListMitraActivity.this,DaftarHargaActivity.class);
intent.putExtra("id_price",id_price);
intent.putExtra("id_mitra",id);
startActivity(intent);
myCustomAdapter.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
}
});
// Adding request to request queue
RequestQueue rq = Volley.newRequestQueue(this);
rq.add(schoolReq);
}
public void callJson(){
String url = Constants.URL_API+"?case=listMitra&kategori="+kategori;
JsonArrayRequest schoolReq = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject(i);
Mitra mitra = new Mitra();
mitra.setId(obj.getString("id"));
mitra.setNamadepan(obj.getString("nama_depan"));
mitra.setImage(obj.getString("image"));
mitra.setKategori(obj.getString("kategori"));
mitra.setEmail(obj.getString("email"));
mitra.setPass(obj.getString("password"));
mitra.setAlamat(obj.getString("alamat"));
mitra.setKontak(obj.getString("kontak"));
priceList = obj.getString("pricelist");
mitra.setPricelist(priceList);
mitra.setRate(obj.getString("rating"));
// adding movie to movies array
mitras.add(mitra);
} catch (JSONException e) {
e.printStackTrace();
}
}
myCustomAdapter.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
}
});
// Adding request to request queue
RequestQueue rq = Volley.newRequestQueue(this);
rq.add(schoolReq);
44
}
}
45
5. Script untuk menu edit profil mitra (MitraActivity.java)
public class MitraActivity extends AppCompatActivity {
private static final int CAMERA_01 = 10;
ArrayList<String> listItems = new ArrayList<>();
ArrayAdapter<String> adapter;
Spinner unit;
private String spinnerVal;
Config session;
private String email,password;
private static final String TAG = MitraActivity.class.getSimpleName();
private String
ids,image,namadepan,namabelakang,kategori,email2,password2,alamat,kontak,namabank,norek,atsna
ma,priceList,url;
private EditText nm_depan,nm_blkg,email3,pass,almt,hub,nama_bank,nomor_rek,ats_nama;
private Button btnUpdate;
private ProgressDialog progressDialog;
private ImageView foto;
private String[] galleryPermissions = {Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE};
Bitmap bitmap = null;
private String mbitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mitra_profile);
progressDialog = new ProgressDialog(this);
session = new Config(getApplicationContext());
session.checkLogin();
HashMap<String, String> user = session.getUserDetails();
email = user.get(Config.KEY_EMAIL);
password = user.get(Config.KEY_PASS);
mbitmap="";
foto = (ImageView)findViewById(R.id.card);
unit = (Spinner)findViewById(R.id.unit);
btnUpdate = (Button)findViewById(R.id.update);
nm_depan = (EditText)findViewById(R.id.namadepan);
nm_blkg = (EditText)findViewById(R.id.namabelakang);
almt = (EditText)findViewById(R.id.alamat);
hub = (EditText)findViewById(R.id.kontak);
nama_bank = (EditText)findViewById(R.id.bank);
nomor_rek = (EditText)findViewById(R.id.norek);
ats_nama = (EditText)findViewById(R.id.an);
adapter = new ArrayAdapter<String>(this, R.layout.spinner, R.id.txt, listItems);
unit.setAdapter(adapter);
callJson();
foto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
46
if (EasyPermissions.hasPermissions(MitraActivity.this, galleryPermissions)) {
pickImageFromGallery();
} else {
EasyPermissions.requestPermissions(this, "Access for storage",
101, galleryPermissions);
}
}
});
btnUpdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
update();
}
});
}
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}
public void pickImageFromGallery(){
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent,CAMERA_01);
}
public void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode,resultCode,data);
if(requestCode == CAMERA_01){
if(resultCode == RESULT_OK && null != data){
try{
bitmap = MediaStore.Images.Media.getBitmap(MitraActivity.this.getContentResolver(),
data.getData());
}catch (IOException e){
e.printStackTrace();
}
ByteArrayOutputStream output = new ByteArrayOutputStream();
Bitmap resized = Bitmap.createScaledBitmap(bitmap, 150, 125, true);
resized.compress(Bitmap.CompressFormat.PNG,50,output);
byte[] byte_arr = output.toByteArray();
47
mbitmap = Base64.encodeToString(byte_arr, Base64.DEFAULT);
ImageView imgView = (ImageView) findViewById(R.id.card);
// Set the Image in ImageView after decoding the String
imgView.setImageBitmap(resized);
} else {
Toast.makeText(this, "You haven't picked Image",
Toast.LENGTH_LONG).show();
}
}
}
public void update(){
namadepan = nm_depan.getText().toString();
namabelakang = nm_blkg.getText().toString();
alamat = almt.getText().toString();
kontak = hub.getText().toString();
namabank = nama_bank.getText().toString();
norek = nomor_rek.getText().toString();
atsnama = ats_nama.getText().toString();
kategori = unit.getSelectedItem().toString();
StringRequest stringRequest = new StringRequest(Request.Method.POST,
Constants.URL_UPDATE,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (response.contains("success")) {
progressDialog.dismiss();
Toast.makeText(MitraActivity.this,"Update Berhasil",Toast.LENGTH_SHORT).show();
finish();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
progressDialog.hide();
Toast.makeText(getApplicationContext(), error.getMessage(),
Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<>();
params.put("id", ids);
params.put("namadepan", namadepan);
params.put("namabelakang", namabelakang);
params.put("image",mbitmap);
params.put("kategori",kategori);
params.put("alamat", alamat);
params.put("kontak", kontak);
params.put("bank", namabank);
params.put("norek", norek);
params.put("atsnama",atsnama);
params.put("url",Constants.URL_IMAGE);
return params;
}
};
RequestQueue rq = Volley.newRequestQueue(this);
rq.add(stringRequest);
}
48
public void callJson(){
image="";
String url = Constants.URL_API+"?case=profilMitra&email="+email+"&pass="+password;
JsonArrayRequest schoolReq = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject(i);
Mitra mitra = new Mitra();
ids = obj.getString("id");
namadepan = obj.getString("nama_depan");
namabelakang = obj.getString("nama_belakang");
image = obj.getString("image");
kategori = obj.getString("kategori");
alamat = obj.getString("alamat");
kontak = obj.getString("kontak");
namabank = obj.getString("namabank");
norek = obj.getString("norek");
atsnama = obj.getString("atasnama");
priceList = obj.getString("pricelist");
} catch (JSONException e) {
e.printStackTrace();
}
}
nm_depan.setText(namadepan);
nm_blkg.setText(namabelakang);
almt.setText(alamat);
hub.setText(kontak);
nama_bank.setText(namabank);
nomor_rek.setText(norek);
ats_nama.setText(atsnama);
if(image.equals("")){
foto.setImageResource(R.drawable.logo);
}else{
new MitraActivity.DownloadImageTask((ImageView)findViewById(R.id.card))
.execute(image);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
}
});
// Adding request to request queue
RequestQueue rq = Volley.newRequestQueue(this);
rq.add(schoolReq);
}
public void onStart() {
super.onStart();
MitraActivity.BackTask bt = new MitraActivity.BackTask();
bt.execute();
}
private class BackTask extends AsyncTask<Void, Void, Void> {
49
ArrayList<String> list;
protected void onPreExecute() {
super.onPreExecute();
list = new ArrayList<>();
}
protected Void doInBackground(Void... params) {
InputStream is = null;
String result = "";
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(Constants.URL_KATEGORI);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
// Get our response as a String.
is = entity.getContent();
} catch (IOException e) {
e.printStackTrace();
}
//convert response to string
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "utf-8"));
String line = null;
while ((line = reader.readLine()) != null) {
result += line;
}
is.close();
//result=sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
// parse json data
try {
JSONArray jArray = new JSONArray(result);
for (int i = 0; i < jArray.length(); i++) {
JSONObject jsonObject = jArray.getJSONObject(i);
// add interviewee name to arraylist
list.add(jsonObject.getString("kategori"));
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(Void result) {
listItems.addAll(list);
String compareValue = kategori;
if (compareValue != null) {
int spinnerPosition = adapter.getPosition(compareValue);
unit.setSelection(spinnerPosition);
}
adapter.notifyDataSetChanged();
}
}
}
50
6. Script untuk menu edit paket mitra
public class HargaActivity extends AppCompatActivity {
private static final String TAG = HargaActivity.class.getSimpleName();
Config session;
private String email,password,ids,value,nilai,status,kategori,foto,keterangan,ket2;
private EditText harga,ket;
private Spinner unit;
private Button update;
private ImageView gambar;
private String[] galleryPermissions = {Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE};
private static final int CAMERA_01 = 10;
Bitmap bitmap = null;
private String mbitmap;
private ProgressDialog progressDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_update_harga);
session = new Config(getApplicationContext());
mbitmap="";
ids = getIntent().getExtras().getString("id_price");
HashMap<String, String> user = session.getUserDetails();
email = user.get(Config.KEY_EMAIL);
password = user.get(Config.KEY_PASS);
unit = (Spinner)findViewById(R.id.unit);
harga = (EditText)findViewById(R.id.harga);
update = (Button)findViewById(R.id.update);
gambar = (ImageView)findViewById(R.id.foto);
ket = (EditText)findViewById(R.id.ket);
progressDialog = new ProgressDialog(this);
// Toast.makeText(this,email+", "+password,Toast.LENGTH_SHORT).show();
callJson();
gambar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (EasyPermissions.hasPermissions(HargaActivity.this, galleryPermissions)) {
pickImageFromGallery();
} else {
EasyPermissions.requestPermissions(this, "Access for storage",
101, galleryPermissions);
}
}
});
update.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
update();
}
});
unit.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
51
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
callJson();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
}
public void update(){
String url =
Constants.URL_API+"?case=check&email="+email+"&pass="+password+"&kategori="+unit.getSelec
tedItem().toString();
JsonArrayRequest schoolReq = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject(i);
status = obj.getString("status");
} catch (JSONException e) {
e.printStackTrace();
}
}
if(status.equals("success")){
updateHrg();
}else if(status.equals("failed")){
insertHarga();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
}
});
// Adding request to request queue
RequestQueue rq = Volley.newRequestQueue(this);
rq.add(schoolReq);
}
public void insertHarga(){
nilai = harga.getText().toString();
keterangan = ket.getText().toString();
value = unit.getSelectedItem().toString();
StringRequest stringRequest = new StringRequest(Request.Method.POST,
Constants.URL_INSERT_HARGA,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (response.contains("success")) {
progressDialog.dismiss();
Toast.makeText(HargaActivity.this,"Input Berhasil",Toast.LENGTH_SHORT).show();
finish();
52
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
progressDialog.hide();
Toast.makeText(getApplicationContext(), error.getMessage(),
Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<>();
params.put("id_price", ids);
params.put("kategori", value);
params.put("harga", nilai);
params.put("foto",mbitmap);
params.put("keterangan",keterangan);
params.put("url",Constants.URL_IMAGES);
return params;
}
};
RequestQueue rq = Volley.newRequestQueue(this);
rq.add(stringRequest);
}
public void updateHrg(){
nilai = harga.getText().toString();
keterangan = ket.getText().toString();
value = unit.getSelectedItem().toString();
StringRequest stringRequest = new StringRequest(Request.Method.POST,
Constants.URL_UPDATE_HARGA,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (response.contains("success")) {
progressDialog.dismiss();
Toast.makeText(HargaActivity.this,"Update Berhasil",Toast.LENGTH_SHORT).show();
finish();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
progressDialog.hide();
Toast.makeText(getApplicationContext(), error.getMessage(),
Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<>();
params.put("id_price", ids);
params.put("kategori", kategori);
params.put("harga", nilai);
params.put("foto",mbitmap);
params.put("keterangan",keterangan);
params.put("url",Constants.URL_IMAGES);
return params;
}
53
};
RequestQueue rq = Volley.newRequestQueue(this);
rq.add(stringRequest);
}
public void callJson(){
foto="";
nilai = "";
ket2="";
value = unit.getSelectedItem().toString();
String url =
Constants.URL_API+"?case=mitra&email="+email+"&pass="+password+"&kategori="+value;
JsonArrayRequest schoolReq = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject(i);
ids = obj.getString("id_price");
nilai = obj.getString("harga");
kategori = obj.getString("kategori");
foto = obj.getString("foto");
ket2 = obj.getString("keterangan");
} catch (JSONException e) {
e.printStackTrace();
}
}
if(foto.equals("")){
gambar.setImageResource(R.drawable.logo);
}else{
new HargaActivity.DownloadImageTask((ImageView)findViewById(R.id.foto))
.execute(foto);
}
ket.setText(ket2);
harga.setText(nilai);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
}
});
// Adding request to request queue
RequestQueue rq = Volley.newRequestQueue(this);
rq.add(schoolReq);
}
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage){
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
54
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}
public void pickImageFromGallery(){
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent,CAMERA_01);
}
public void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode,resultCode,data);
if(requestCode == CAMERA_01){
if(resultCode == RESULT_OK && null != data){
try{
bitmap = MediaStore.Images.Media.getBitmap(HargaActivity.this.getContentResolver(),
data.getData());
}catch (IOException e){
e.printStackTrace();
}
ByteArrayOutputStream output = new ByteArrayOutputStream();
Bitmap resized = Bitmap.createScaledBitmap(bitmap, 150, 150, true);
resized.compress(Bitmap.CompressFormat.PNG,50,output);
byte[] byte_arr = output.toByteArray();
mbitmap = Base64.encodeToString(byte_arr, Base64.DEFAULT);
ImageView imgView = (ImageView) findViewById(R.id.foto);
// Set the Image in ImageView after decoding the String
imgView.setImageBitmap(resized);
} else {
Toast.makeText(this, "You haven't picked Image",
Toast.LENGTH_LONG).show();
}
}
}
}
55
7. Script untuk menu list paket
public class DaftarHargaActivity extends AppCompatActivity {
private static final String TAG = DaftarHargaActivity.class.getSimpleName();
GridView gridView;
private String id_price,kategori,id,id_mitra;
private ArrayList<Harga> price = new ArrayList<Harga>();
GridAdapter gridAdapter=null;
private Button btnBack, btnNext;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grid);
gridView = (GridView) findViewById(R.id.gridView1);
gridAdapter=new GridAdapter(this, price);
gridView.setAdapter(gridAdapter);
id_price = getIntent().getExtras().getString("id_price");
id_mitra = getIntent().getExtras().getString("id_mitra");
btnBack = (Button)findViewById(R.id.btnBack);
btnNext = (Button)findViewById(R.id.btnNext);
callDetail();
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Harga m = price.get(i);
id = m.getId();
// Toast.makeText(DaftarHargaActivity.this,id,Toast.LENGTH_SHORT).show();
Intent intent = new Intent(DaftarHargaActivity.this,DetailPaketActivity.class);
intent.putExtra("id",id);
startActivity(intent);
}
});
btnBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(DaftarHargaActivity.this,PaymentActivity.class);
intent.putExtra("id_mitra",id_mitra);
intent.putExtra("id_price",id_price);
startActivity(intent);
}
});
}
public void callDetail(){
String url = Constants.URL_API+"?case=harga_mitra&id_price="+id_price;
JsonArrayRequest schoolReq = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
56
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject(i);
Harga mitra = new Harga();
mitra.setId(obj.getString("id"));
mitra.setKategori(obj.getString("kategori"));
kategori = obj.getString("kategori");
mitra.setPricelist(obj.getString("harga"));
// adding movie to movies array
price.add(mitra);
} catch (JSONException e) {
e.printStackTrace();
}
}
gridAdapter.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
}
});
// Adding request to request queue
RequestQueue rq = Volley.newRequestQueue(this);
rq.add(schoolReq);
}
}
57
8. Script untuk menu detail paket
public class DetailPaketActivity extends AppCompatActivity {
private static final String TAG = DetailPaketActivity.class.getSimpleName();
private String id,image,ket;
private ImageView foto;
private TextView keterangan;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_paket);
id = getIntent().getExtras().getString("id");
foto = (ImageView) findViewById(R.id.foto);
keterangan = (TextView)findViewById(R.id.keterangan);
// Toast.makeText(this,id,Toast.LENGTH_SHORT).show();
callJson();
}
public void callJson(){
String url = Constants.URL_API+"?case=paket&id="+id;
JsonArrayRequest schoolReq = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject(i);
image = obj.getString("foto");
ket = obj.getString("keterangan");
} catch (JSONException e) {
e.printStackTrace();
}
}
keterangan.setText(ket);
new DetailPaketActivity.DownloadImageTask((ImageView)findViewById(R.id.foto))
.execute(image);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
}
});
// Adding request to request queue
RequestQueue rq = Volley.newRequestQueue(this);
rq.add(schoolReq);
}
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
58
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}
}
59
9. Detail untuk informasi pembayaran
public class PaymentActivity extends AppCompatActivity {
private static final String TAG = PaymentActivity.class.getSimpleName();
private String email,password;
private TextView norek,bank,nama,total;
private String id_price,id_mitra;
private String
id,nama_depan,nama_belakang,image,kategori,emails,pass,alamat,kontak,namabank,noreks,atasnama
,pricelist;
private Button btnBayar;
Config session;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_payment);
norek = (TextView)findViewById(R.id.nomor_rek);
bank = (TextView)findViewById(R.id.bank);
nama = (TextView)findViewById(R.id.nama_pemilik);
total = (TextView)findViewById(R.id.total);
btnBayar = (Button)findViewById(R.id.btnBayar);
id_price = getIntent().getExtras().getString("id_price");
id_mitra = getIntent().getExtras().getString("id_mitra");
callJson();
btnBayar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(PaymentActivity.this,UploadBuktiActivity.class);
intent.putExtra("id_mitra",id_mitra);
intent.putExtra("id_price",id_price);
startActivity(intent);
}
});
}
public void callJson(){
String url = Constants.URL_API+"?case=payment&id_price="+id_price;
JsonArrayRequest schoolReq = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject(i);
namabank = obj.getString("namabank");
noreks = obj.getString("norek");
atasnama = obj.getString("atasnama");
pricelist = obj.getString("harga");
} catch (JSONException e) {
e.printStackTrace();
}
}
60
norek.setText(noreks);
bank.setText(namabank);
nama.setText(atasnama);
total.setText(pricelist);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
}
});
// Adding request to request queue
RequestQueue rq = Volley.newRequestQueue(this);
rq.add(schoolReq);
}
}
61
10. Detail untuk upload bukti pembayaran
public class UploadBuktiActivity extends AppCompatActivity {
private static final String TAG = UploadBuktiActivity.class.getSimpleName();
private String[] galleryPermissions = {Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE};
private Button btnUpload,submit;
private static final int CAMERA_01 = 10;
Bitmap bitmap = null;
private String mbitmap,id_price,id_mitra;
private ProgressDialog progressDialog;
private LinearLayout container;
private LayoutInflater inflater;
private View divider;
private RatingBar ratingBar;
private String rateValue,emails;
Config session;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_upload_bukti);
session = new Config(getApplicationContext());
HashMap<String, String> user = session.getUserDetails();
mbitmap="";
container = (LinearLayout)findViewById(R.id.container);
inflater = LayoutInflater.from(this);
divider = inflater.inflate(R.layout.item_finish,null,false);
id_price = getIntent().getExtras().getString("id_price");
id_mitra = getIntent().getExtras().getString("id_mitra");
progressDialog = new ProgressDialog(this);
btnUpload = (Button)findViewById(R.id.btnUpload);
emails = user.get(Config.KEY_EMAIL);
ratingBar = (RatingBar)divider.findViewById(R.id.rating);
submit = (Button)divider.findViewById(R.id.btnSubmit);
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float v, boolean b) {
rateValue = String.valueOf(v);
}
});
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
submitRate();
}
});
btnUpload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (EasyPermissions.hasPermissions(UploadBuktiActivity.this, galleryPermissions)) {
pickImageFromGallery();
} else {
62
EasyPermissions.requestPermissions(this, "Access for storage",
101, galleryPermissions);
}
}
});
}
public void submitRate(){
progressDialog.setMessage("Loading ...");
progressDialog.show();
StringRequest stringRequest = new StringRequest(Request.Method.POST,
Constants.URL_RATE,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (response.contains("success")) {
progressDialog.dismiss();
Intent intent = new Intent(UploadBuktiActivity.this,SplashAkhir.class);
startActivity(intent);
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
progressDialog.hide();
Toast.makeText(getApplicationContext(), error.getMessage(),
Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<>();
params.put("id_mitra", id_mitra);
params.put("email_user", emails);
params.put("rating", rateValue);
return params;
}
};
RequestQueue rq = Volley.newRequestQueue(this);
rq.add(stringRequest);
}
public void pickImageFromGallery(){
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent,CAMERA_01);
}
public void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode,resultCode,data);
if(requestCode == CAMERA_01){
if(resultCode == RESULT_OK && null != data){
try{
bitmap = MediaStore.Images.Media.getBitmap(UploadBuktiActivity.this.getContentResolver(),
data.getData());
}catch (IOException e){
e.printStackTrace();
}
ByteArrayOutputStream output = new ByteArrayOutputStream();
Bitmap resized = Bitmap.createScaledBitmap(bitmap, 150, 150, true);
resized.compress(Bitmap.CompressFormat.PNG,50,output);
63
byte[] byte_arr = output.toByteArray();
mbitmap = Base64.encodeToString(byte_arr, Base64.DEFAULT);
uploadBukti();
} else {
Toast.makeText(this, "You haven't picked Image",
Toast.LENGTH_LONG).show();
}
}
}
public void uploadBukti(){
StringRequest stringRequest = new StringRequest(Request.Method.POST,
Constants.URL_UPLOAD_TRF,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (response.contains("success")) {
progressDialog.dismiss();
Toast.makeText(UploadBuktiActivity.this,"Upload
Berhasil",Toast.LENGTH_SHORT).show();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
progressDialog.hide();
Toast.makeText(getApplicationContext(), error.getMessage(),
Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<>();
params.put("id_price", id_price);
params.put("foto", mbitmap);
params.put("url", Constants.URL_BUKTI);
return params;
}
};
RequestQueue rq = Volley.newRequestQueue(this);
rq.add(stringRequest);
btnUpload.setVisibility(View.GONE);
container.addView(divider);
}
}
64
65
66
67
68
69
70
71
72
73
74
75
76
77