putuguna[dot]com

Java, Android, MySQL, PHP, HTML

Post Top Ad

Post Top Ad

Thursday, 27 July 2017

00:46:00

Cara Pindah Dari Activity Ke Fragment dan Fragment Ke Activity

Bagi mereka yang baru pertama kali belajar pemrograman Android hal yang dipelajari pertama kali adalah perkenalan komponen-komponen yang ada didalamnya seperti Java class, XML, Activity, Fragment, Adapter, dll


Setelah itu barulah proses belajar bagaimana pergi dari satu Activity ke Activity lainnya menggunakan Intent, setelah itu barulah belajar tentang bagaimana switch dari Activity ke Fragment, begitupun sebaliknya dari Fragment ke Activity.

Bagi yang belum tahu proses switch antara activity, silakan baca disini : Cara Pindah Activity Menggunakan Intent

Pindah Activity Ke Fragment


Disini ada dua cara bagaimana melakukan switch dari Activity Ke Fragment, antara lain :

1. Gunakan Activity Untuk Menampung Fragment


Sebuah fragment yang bisa tampil menjadi UI (user interface) sudah memiliki activity sendiri saat kita set si fragment tersebut sebagai UI.

Namun agar lebih mudah untuk dipahami, pada cara pertama ini kita buatkan kembali activity untuk si fragment, jadi ketika kita mau meng-akses si Fragment, kita cukup memanggil si Activitynya yang sudah kita buat sebelumnya.

Contoh :

Buat layout activity_main.xml

Layout activity_main.xml akan digunakan pada class MainActivity. Kodingan untuk class MainActivity.java adalah sebagai berikut :

Nah, diatas itu adalah class untuk tempat kita pertama kali akan memanggil si Fragment. Langkah selanjutnya adalah kita buat Si Fragment nya dan Activity si Fragment.

Buat sebuah class Fragment (Ciri-ciri fragment adalah selalu mengextends Fragment setelah nama class) NameFragment.java, kodenya seperti dibawah ini :

Kemudian buat layout si NameFragment yaitu fragment_name.xml, kodingannya seperti dibawah ini :

Oke, class fragment kita sudah jadi. Lalu bagaimana agar dari MainActivity.java bisa memanggil NameFragment.java? Perhatikan baik-baik ulasan selanjutnya.

Seperti yang sudah saya sampaikan di deskripsi awal, kita akan membuatkan activity untuk si NameFragment agar mudah di panggil. Paham ya, caranya begini :

Buat layout activity_for_fragment_name.xml

Perhatikan layout diatas, didalam tag ada sebuah attribute class, yang isinya adalah Class Fragment. Dari mana dapat class Fragment com.putuguna.fragmenttoactivity.NameFragment? Itu adalah nama Fragment yang sudah kita buat sebelumnya yaitu NameFragment.

com.putuguna.fragmenttoactivity.NameFragment terdiri dari nama package project dan nama class.
com.putuguna.fragmenttoactivity : nama package project yang kita buat
NameFragment : nama class Fragment yang kita dibuat

Lalu buat class java untuk si Activity NameFragment, berikan nama classnya dengan nama ActForFragmentNameActivity.java, kodingannya seperti dibawah ini :

Seperti yang bisa kita lihat didalam classnya cuma ada deklarasi layout, tidak ada lainnya. Ketika class ini sudah keload, dengan menggunakan attribute class yang ada di tagline fragment, maka secara otomatis akan meload class fragmentnya.

Baca juga : Perbedaan Activity dan Fragment di Android

Cara Pemanggilan NameFragment dari MainActivity

Pada saat proses inilah akan terasa mudahnya, cara pemanggilannya sama persis seperti Intent di Activity. Didalam onClick Button/View lainnya panggil intent nama class Activity si Fragment :

Potongan koding tersebut ada di class MainActivity pada bagian onClick nya. Simple kan?

2.  Tanpa Menggunakan Class Activity


Pada bagian ini akan saya posting besok ya, karena sekarang saya sudah mengantuk, besok kerja hehehe.

Tapi pokok proses pemanggilannya begini :

Kalo belum paham juga, tunggu saya posting artikel lengkapnya.

Pindah Dari Fragment ke Activity


Pada proses perpindahan dari Fragment ke Activity bisa saya katakan mudah, hampir sama persis dengan perpindahan Activity ke Activity.

Caranya sebagai berikut, simpan kode dibawah ini di onClick si Button atau View yang ingin digunakan :

Yang perlu diperhatikan adalah :

.... new Intent(getActivity(), .....), getActivity() disini sebagai pengganti Activity si Fragment, Karena intent mengharusnya Activity sebagai awal sebelum menuju ke Activity tujuannya, makanya kita gunakan getActivity() untuk mengambil Activity si Fragment. Semoga paham ya.

Kemudian pada bagian getActivity().startActivity(intent), sama juga karna untuk men-switch page menggunakan intent, maka harus menggunakan activity. Karena ini fragment, maka didepan sebelum startActivity() kita gunakan getActivity() untuk menggambil Activity si Fragment.

Oke demikian yang bisa saya sampaikan, semoga penjelasan saya mudah dipahami bagi teman-teman yang sedang belajar pemrograman Android. 

Friday, 24 March 2017

09:55:00

Menambahkan Fragment Secara Dinamis Pada ViewPager Android Berdasarkan Jumlah Item Pada List

Viewpager adalah sebuah view yang dapat menampung banyak fragment, namun masih dalam satu activity.

Jika kalian masih rada-rada bingung apa sih perbedaan fragment dan activity, kalian dapat membacanya dipostingan saya sebelumnya :
  1. Perbedaan Android Fragment dan Activity
  2. Belajar Menggunakan Android Fragment 
  3. Cara Pindah Activity menggunakan Intent
Kembali ketopik yaitu cara membahkan fragment pada viewpager secara dinamis sesuai dengan jumlah item pada list.

Maksudnya dinamis disini adalah :

Misalnya dalam sebuah list terdapat 10 item, maka nantinya jumlah fragment yang akan tampil di viewpager tersebut adalah 10

Jadi nanti, user tinggal geser-geser saja untuk melihat jumlah keseluruhan (tampilannya seperti sliding tab, tapi tidak ada tabnya)

Biar tidak bingung mari kita buat programnya satu persatu.

Hasil akhir
Oya sebelum masuk ke kodingan, dulu saya pernah membuat tutorial membuat tampilan dengan view pager namun fragmentnya dibuat static. Artinya jumlah fragment sudah ditentukan dari awal. Kalian bisa baca tutorialnya di : Membuat splash screen menggunakan viewpager dengan indicator.

File Drawable


Pada folder drawable, kita akan membuat file xml yang akan di gunakan sebagai pendanda indikator (titik-titik pada bagian bawah layar) yang sedang aktif.

Indicator viewpager
Buat file-file xml berikut ini dan tempatkan di directory res/drawable pada project yang kalian buat

selected_item.xml

nonselected_item.xml

Layouting


Project ini menggunakan 2 buat layout, yaitu untuk activity dan fragment :
  1. activity_main.xml 
  2. fragment_dinamis.xml

activity_main.xml

File ini berisi view viewpager beserta indikatornya (titik-titik penanda fragment). Kodenya seperti dibawah ini :

fragment_dinamis.xml

File ini berisi attribute-attribute yang akan di tampilkan pada fragment, biasanya sesuai dengan item yang ada di list datanya. Pada project ini saya hanya menggunakan textview sebagai penanda nomor fragment (kalian bisa edit sesuai dengan kebutuhan). Kodenya seperti dibawah ini :

Kodingan di java


Pada file javanya, akan digunakan 3 class, antara lain :
  1. DinamisFragment.java
  2. FragmentAdapter.java
  3. MainActivity.java
 
DinamisFragment.java

Class ini adalah class fragment. Kita hanya menyiapkan satu fragment sisanya nanti kita kondisikan sesuai jumlah item pada listnya. Jika listnya lebih dari satu, maka fragmentnyapun akan lebih dari satu. Kodingannya seperti dibawah ini :

Tidak ada yang special dari kodingan fragment diatas, hanya set-set biasa aja. Loginya penambahan fragment akan terjadi di adapternya.

Perhatikan method setDetail(). Method ini akan digunakan di adapter, kenapa diadapter?

Flownya gini : Karena data kan didapat dari activity, kemudian data dibawa ke adapter, dari adapter barulah kita set ke fragmentnya.

FragmentAdapter.java

Pada file ini akan dibuat login bagaimana caranya menampilkan fragment berdasarkan banyaknya item yang ada pada list. Kodenya seperti dibawah ini :

Perhatikan attribute fragments. Attribute tersebut dibuat array ([]), karna memang jumlah datanya bakalan dinamis, maka di fragment juga dibuat dinamis (berbentuk array).

Perhatikan lagi pada method getItem(int position). Didalamnya ada fungsi begini : dinamisFragment.setDetail(items). Method setDetail() didapat dari DinamisFragment (yang telah disampaikan sebelumnya).

MainActivity.java

File ini seperti biasanya adalah tempat dimana kita mengisi list dengan data. List tersebut akan kita lempar ke adapter. Kodenya seperti dibawah ini :

Kenapa pada file ini ada proses implements ViewPager.OnPageChangeListener?

Itu digukanan untuk mendeteksi ketika viewpager di swap/digeser. Tujuannya untuk merubah indikator yang aktif yang mana, misalnya viewpager diswap ke fragment 2, maka indikator ke 2 lah yang akan aktif.

Sekian tutorialnya, jika ada yang kurang jelas silakan ditanyakan. Semoga bermanfaat.

Thursday, 16 February 2017

16:38:00

Tutorial Membuat Tanda Tangan Di Android Menggunakan Library SignaturePad

Jaman digital yang semakin berkembang ini membuat semua proses bisnis dari suatu ide mulai dituangkan ke dalam sebuah aplikasi mobile.

Sebagai contoh proses bisnis pengisian form untuk pengajuan kredit kebank atau finance. Disamping mengisi data diri, pada aplikasi juga di minta untuk menambahkan tanda tangan si pemohon kredit.

Penulisan tanda tangan di aplikasi android bisa dilakukan dengan signature pad.

Apa itu SignaturePad?

Signaturepad adalah sebuah library yang membantu developer untuk membuat field untuk menuliskan sebuah tanda tangan (Ya singkatnya kira-kira seperti itu).

Source github aslinya kalian bisa lihat disini. Disana sudah ada instruksi bagaimana cara penggunaannya.

Namun disini saya mencontohkan dengan membuat sebuah project kecil untuk membuat sebuah tanda tangan menggunakan library SignaturePad.

Output Program


Hasil akhir
Seperti yang bisa kalian lihat pada gambar diatas, disana terdapat dua button yaitu button clear dan button save. Button clear digunakan untuk menghapus tanda tangan jika salah, sedangkan button save digunakan untuk menyimpan hasil tanda tangan ke Gallery.

Library


Compile library dibawah ini di build.gradle(Module : app) agar dapat menggunakan SignaturePad :

compile 'com.github.gcacace:signature-pad:1.1.0'

Android Manifest


Karna kita akan menyimpan hasil tanda tangan (yang berupa gambar) ke Gallery, maka kita perlu akses external storage. Tambahkan permission dibawah ini di AndroidManifest.xml :

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Agar tampilan layar saat aplikasi dijakankan otomatis menjadi landscape, maka tambahkan screenOrientation="landscape" di activitynya, contohnya begini :

<activity android:name=".MainActivity"
    android:screenOrientation="landscape"> ....

Layouting


Buat layout baru dengan nama activity_main.xml (atau apa saja yang kalian buat), ketikan kode dibawah ini :

File java


Penulisan kode-kode javanya saya pisah menjadi beberapa method agar kalian mudah pahami step-stepnya, antara lain :

1. Membuat album digallery

Agar nanti setelah disimpan terdapat sebuah album tempat dimana semua hasil simpanan tanda tangan berada, maka digunakanlah method dibawah ini :

Hasilnya akan tercipta sebuah album di gallery dengan nama yang kalian buat :
Album SignaturePad

2.Conversi Bitmap Ke JPG

Karna hasil yang pertama didapat adalah berformat Bitmap, agar bisa jadi JPG maka harus di convert dulu menggunakan method dibawah ini :

3. Simpan format JPG ke Gallery

Setelah dikonversi ke JPG, maka langkah selanjutnya adalah menyimpannya ke Gallery menggunakan method dibawah ini :

Kalian bisa membuat nama album sesuka kalian, ganti saja tulisan "ApaSajaNamaAlbumnya"

4. Simpan format SVG ke Gallery

Untuk menyimpan format tanda tangan dalam ekstensi .svg, maka gunakan method-method dibawah ini :

Itulah beberapa method yang saya buat agar mudah dimengerti oleh teman-teman semua, Kode lengkap MainActivity.java dapat dilihat dibawah ini :

Sekian tutorial tentang bagaimana membuat form tanda tangan di aplikasi android. Semoga bermanfaat dan membantu pembelajaran.

Tuesday, 14 February 2017

16:34:00

Insert Image/Gambar Ke Database MySQL Menggunakan PHP PDO

Kali ini saya akan membagikan tutorial PHP tentang bagaimana cara meng input image ke dalam database MySQL.

Banyak keluhan yang terjadi pada proses ini, tipe data blob sering kali menjadi hambatan bagi para pemula yang belajar PHP untuk belajar melakukan input gambar ke database.

Sedikit trick yang dapat saya bagikan bagi kalian yang sedang belajar adalah seperti ini :
  • buatkan directory untuk menyimpan file gambar di project PHP yang kalian buat.
  • Gunakan tipe data varchar untuk menyimpan gambar. Kita hanya akan menyimpan path image dari directory yang kita buat di project nya saja.
Penampakannya seperti berikut ini :


Pada gambar diatas, saya membuat sebuah directory bernama images. Directory tersebut saya gunakan untuk menyimpan file gambar yang telah di upload.

Lalu di database tidak ada imagenya dong?

Di database kita hanya akan menyimpan path si image saja, jadi kalian tidak akan dibuat susah oleh tipe data blob. Disamping itu keunggulan menggunakan cara ini adalah hemat memory pada database kalian.

Berikut ini penampakan pada database berdasarkan gambar-gambar yang sudah di upload dan disimpan pada directory images.


Yang saya kotakin merah itu adalah nama-nama path dari si image. Perhatikan baik-baik pathnya :

images/karna1.jpg

images menandakan bahwa gambar tersebut berada pada sebuat folder bernama images. Sedangkan karna1.jpg adalah nama si gambar yang tersimpan pada folder images. (Coba aja sesuaikan gambar pertama dan kedua, lihat file karna1.jpg)

Tertarik dengan cara saya diatas? Jika iya, mari kita mulai langkah-langkahnya dibawah ini :

Struktur Database


Kalian tidak perlu lagi membuat tipe data blob untuk image, melaikan menggunakan tipe data varchar. Untuk lebih jelasnya lihat gambar berikut ini :


id, tipe datanya int, primary key dan Auto Increment
image, tipe datanya adalah varchar
 

Form Input


Form input dibuat dengan sangat sederhana, beri nama pada file ini sebagai FormInsertImage.html. Kemudian ketikan kode dibawah ini :

Perhatkan dikode diatas ada sebuah attribute name dengan nama = myimage. Attribute itu akan digunakan di file php untuk mengambil gambar yang telah di browse melalui form html.

Insert Ke Database


Pada bagian ini akan terasa panjang kodingannya, karena didalamnya terdapat validasi untuk tipe-tipe gambar yang boleh di input (JPG, jpg, png, PNG, dll), selain itu juga terdapat validasi untuk membatasi ukuran gambar yang akan di upload.

File ini di beri nama InsertImageFromWeb.php. Silakan ketikan kode dibawah ini (ketik dan pahami) :

Perhatikan :
Dikode diatas, jika kalian cari-cari akan ketemu sebuah attribute myimage.

Dari mana sih attribute myimage itu didapat kok tiba-tiba ada di file php sedangkan di database tidak ada?

Jawabannya, didapat dari attribute pada form input gambar. Attribute namenya diberi nama myimage.

Fungsinya apa sih myimage dipakai di file php?

Tujuannya agar si file php mengetahui adanya inputan berupa gambar yang akan disimpan ke database, singkatnya seperti itu.

Si file php kan dibuat khusus untuk memasukan image ke database,  nah imagenya kita arahkan ke form inputan tadi. Cara agar si php dapat mengakses form input image tersebut maka untuk itulah kita gunakan attribute myimage.

Display gambar


Tidak percaya gambarnya sudah di input? File ini akan membuktikan bahwa walaupun hanya nama pathnya saja yang ada di database, namun imagenya akan tetap bisa di tampilkan di webpage. File ini diberi nama sebagai DisplayImageFromDatabase.php. Ketikan kode dibawah ini :

Jika di jalankan, maka hasilnya akan seperti berikut ini :

Perhatikan :

Mungkin ada yang bertanya, itu bagaimana caranya menampilkan path dan sekaligus nama imagenya?

Begini, lihat kodingan-kodingan didalam foreach :

Jika kalian HANYA ingin menampilkan pathnya saja, kalian bisa gunakan kode ini :

echo $data['image'];

Namun jika kalian ingin menampilkan gambar berdasarkan path yang tersimpan didatabase, maka kalian harus simpan $data['image'] didalam tagline image (<img src .... />), lihat kode dibawah ini :

<img src="<?php echo $data['image']?>" width="20%">

Oke sekian tutorial kali ini tentang bagaimana cara input image/gambar ke database dengan PHP. Semoga bermanfaat.
15:40:00

Android Open Image/Gambar Dari Kamera atau Gallery Menggunakan Library EasyImage

Selama proses development yang pernah saya lakukan, ada sesekali project yang memiliki fitur open image atau mengambil gambar dari Kamera atau Gallery untuk ditampilkan di aplikasi, contohnya seperti ganti foto profile, upload foto-foto tertentu, dll.

Namun dalam prosesnya tidak berjalan mulus (Jika saya membuat proses open image dengan manual, tidak menggunakan library).

Sebenarnya bisa-bisa saja menggunakan cara manual, namun jika sudah ada library yang menyediakan proses open image kenapa harus manual?

Oke kita mulai saja prosesnya satu persatu.

Library 


Dalam project ini, saya menggunakan beberapa library berikut ini, silakan compile di build.gradle (Module : app) :

compile 'com.github.jkwiecien:EasyImage:1.3.1'
compile 'com.github.bumptech.glide:glide:3.7.0'

EasyImage adalah library untuk mengambil gambar dari Karena atau Gallery, sedangkan Glide adalah library untuk meload Image agar tidak berat, dll.

AndroidManifest


Agar dapat mengakses dan menggambil gambar dari Gallery, maka perlu permission seperti dibawah ini. Tempatkan di AndroidManifest.xml :

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Layout


Di project ini, karna hanya sebagai contoh saja, maka saya hanya membuat satu layout saja, dimana proses browse image terjadi, beri nama sebagai activity_main.xml :

Output dari kode diatas adalah seperti Gambar 1 berikut :

Gambar 1
Untuk image di placehordernya (yang abu-abu pada gambar diatas), kalian bisa cari-cari disini.

File Java


Saya sudah membuatkan method untuk membuka Gallery atau Kamera saat button Open Image di klik, dengan harapan kalian mudah mengerti langkah-langkahnya.  File java ini saya beri nama sebagai MainActivity.java, ketika kode dibawa ini :

Outputnya seperti Giff dibawah ini :


Sekian tutorial kali ini tentang bagaimana cara membuka gambar/image melalui Karena atau Gallery menggunakan library EasyImage. Semoga bermanfaat dan membantu untuk pembelajara.

Thursday, 2 February 2017

13:55:00

Membuat Program Perhitungan Nilai Grade (A,B,C,D) Dengan Java Netbeans

Iseng-iseng tadi main facebook, ternyata ada yang bertanya di sebuah grup pemrograman mengenai bagaimana cara mencari nilai grade A, B, C, D atau E dari sebuah nilai disekolah/kampus.

Ternyata masih ada juga beberapa anak yang tidak memahami bagaimana cara mencari nilai grade. hehe. Tapi tak apa, namanya juga baru belajar pemrograman, ya pasti yang mudah di akan terasa sulit di implementasikan.

Sebelum masuk ke codingan, agar mudah dalam prosesnya, pertama-tama kalian harus tahu dulu bagaimana menghitung secara manualnya (Secara matematika).

Misalnya begini :

Ada 3 buah nilai yang akan dihitung yaitu Nilai Tugas, Nilai UTS dan Nilai UAS. Anggap saja ketiga nilai tersebut mendapatkan 100.

Untuk mendapatkan nilai akhirnya kita jumlahkan keseluruhan nilai lalu dibagi dengan jumlah sumber nilai. Sumber nilai ada 3 yaitu Nilai Tugas UTS dan UAS.

Maka hasilnya akan begini :

(100 + 100 + 100)/3 = 100

Nilai akhir adalah 100. Tingal kita lihat 100 itu masuk di grade mana? Apakah Grade A, B, C, D atau E.

Bagaimana cara mengetahui kalau nilai 100 berada di grade A?


Anggap saja nilai berikut ini adalah grade yang ada ditempat kalian :
  • Nilai 80 - 100  : A
  • Nilai 65 - 79   : B
  • Nilai 60 - 64   : C
  • Nilai 40 - 59   : D
  • Nilai 0 - 39    : E
Maka, caranya cukup dengan membuat kan kondisi if dan else. Jika dibuatkan alurnya seperti ini :

Jika nilai akhir lebih dari sama dengan 80 DAN kurang dari sama dengan 100, maka gradenya adalah A

Dan seterusnya, dan seterusnya.....

Sampai disitu paham kan?

Jika kondisi tersebut di implementasikan kedalam kodingan, jadinya seperti ini :

Kira-kira seperti kode diataslah logicnya, ada banyak cara sebenarnya mengimplementasikan login tersebut, selain if else bisa juga dengan switch (coba implementasikan sendiri menggunakan switch)

Full Code


Hasil yang saya dapat dari program yang saya buat menggunakan tiga nilai tersebut adalah seperti berikut :

Hasil Akhir

Untuk mendapatkan hasil seperti gambar diatas, kalian bisa gunakan kode berikut ini :

Sekian tutorial tentang cara membuat program penghitung grade menggunakan Java. Semoga bermanfaat
08:10:00

Cara Mengimplementasikan onClickListener Di Recyclerview Android

RecyclerView dan ListView adalah dua hal yang bisa dikatakan memiliki beberapa perbedaan. Salah satu diantara perbedaannya adalah cara mengimplementasikan onClickListener nya.

Dalam ListView, untuk mengimplementasikan onClickListener, kita cukup melakukan hal berikut :

Dengan kata lain, kita melakukan seperti kode diatas hanya pada activity dimana ListView berada. Bisa dikatakan cara implementasinya lebih mudah daripada menggunakan RecyclerView.

Bagaimana Dengan Recyclerview?


Sebenarnya ada beberapa cara yang dapat digunakan untuk mengimplementasikan onClickListener pada Recyclerview. Jika kalian bertanya diforum stackoverflow, Mereka akan memberi banyak solusi yang berbeda.

Melalu artikel ini saya akan memberi salah satu cara yang paling mudah (setidaknya menurut saya) bagaimana mengimplementasikan onClickListener pada RecyclerView.

Saya melakukannya di dalam Adapter. Simplenya begini, beri ID pada RelativeLayout atau LinearLayout pada layout yang digunakan di Adapter (Artinya : LinearLayout atau RelativeLayout pertama di layout).

Setelah itu, definisikan LinearLayout atau RelativeLayout di dalam Holder/ViewHolder. Selanjutnya, lakukanlah onClickListener didalam method onBindViewHolder.

Untuk lebih jelasnya, saya menggunakan project ini sebagai contoh. Di dalam onBindViewHolder cukup lakukan hal berikut ini:

VIDEO DEMO



Sekian tutorial tentang bagaimana cara mengimplementasikan onClickListener pada Recyclerview. Semoga bermanfaat untuk pembelajaran.
07:31:00

Tutorial Menggunakan RecyclerView Pada Android

Recyclerview adalah sebuah library yang digunakan sebagai tempat untuk menampilkan banyak data, mirip seperti ListView, namun RecyclerView lebih banyak memiliki keunggulan dibandingkan dengan ListView.
Untuk beberapa project dan aplikasi yang ada saat ini kebanyakan sudah migrasi untuk menggunakan Recyclerview.

Persiapan


Pada tutorial kali ini ada tiga class java yang digunakan, yaitu :
  1. MainActivity.java
  2. UserModel.java
  3. UserAdapter.java
Dan menggunakan dua file xml sebagai layoutnya, yaitu :
  1. activity_main.xml
  2. item_user.xml

Implementasi


Pertama, compile library Recyclerview dibawah ini. Tempatkan di dependencies build.gradle(Module:app) :

Buka file activity_main.xml, kemudian ketikan kode dibawah ini :

Selanjutnya, buat satu lagi layout untuk item-itemnya. Di project ini, layout tersebut saya beri nama item_user.xml, lalu ketikan kode dibawah ini :

Sekarang, kita modifikasi satu persatu class javanya. Kita harus membuat sebuah model untuk data user kita. Di project ini saya namakan UserModel.java, kodenya seperti berikut ini :

Kedua, kita modifikasi UserAdapter.java, adapter ini harus meng extends RecyclerViewAdapter<>. Tapi sebelum itu, hal pertama yang harus kalian lakukan adalah menulis inner class nya dan beri nama inner class tersebut sebagai ViewHolder. Inner class tersebut harus meng extends RecyclerView.ViewHolder. Jadi tampilan UserAdapter.java menjadi seperti ini :

Langkah selanjutnya, UserAdapter.java harus meng extends RecyclerView.Adapter<UserAdapter.ViewHolder>. ViewHolder datang dari inner class yang telah kita buat sebelumnya.

Kemudian, implementasikan semua method bawaan yang ada pada adapter tersebut (biasanya warnanya akan merah sebelum method-method bawaannya di implementasikan). Setelah kalian mengimplementasikan semua method bawaannya, maka tampilannya akan seperti dibawah ini :

Itulah beberapa langkah awal yang perlu kalian lakukan untuk membuat sebuah adapter dari Recyclerview. Sekarang tinggal tambahkan attribute yang sesuai dengan kebutuhan aplikasi kalian.

Kode lengkap dari UserAdapter.java adalah seperti dibawah ini :

Setelah selesain membuat Adapter, sekarang saatnya untuk memodifikasi class MainActivity.java. Ketikan kode dibawah ini :

Hasil akhir dari tutorial ini akan terlihat seperti gambar dibawa ini :

Recyclerview output
Sekian tutorial tentang bagaimana cara menggunakan Recyclerview pada Android. Semoga bermanfaat untuk pembelajaran.

Wednesday, 1 February 2017

12:22:00

Tutorial CRUD (Create, Read, Update, Delete) Menggunakan PHP Dan MySQL

Tutorial ini dibuat karna  adanya banyak permintaan dari teman-teman pembaca yang meng email saya agar dibuatkan tutorial CRUD (Create, Read, Update, Delete).

Sedikit review postingan kemarin, saya telah membuat sebuah tutorial CRUD dari mobile ke server PHP+MySQL yang mudah dipahami.

Kalian bisa membacanya disini :
  1. Insert data dari mobile android ke server. Di android saya menggunakan Retrofit 2.0 untuk mengirim data ke server. Sedangkan server saya buat sendiri menggunakan PHP+MySQL.
  2. Display data dari server ke mobile. Server menggunakan PHP+MySQL sedangkan di android saya menggunakan retrofit 2.0 untuk mengambil datanya.
Pada tutorial kali ini murni berbasis web, tinggal ada embel-embel mobilenya. Server saya buat menggunakan PHP Object Oriented. Untuk koneksi ke databasenya saya menggunakan fungsi PDO. Entah kenapa saya lebih suka menggunakan PDO daripada mysqli_connect().

Baca juga : Perbedaan PDO dan mysqli_connect secara sederhana sekali.

Pada tutorial ini kalian akan belajar bagaimana cara melakukan CRUD dari sebuah web page ke database. Silakan ikutin langkah-langkah pembuatannya.

Video Demo




Siapkan Database


Pertama-tama kalian harus menyiapkan database yang akan digunakan untuk proses CRUD. Kalian bisa design sendiri databasenya, atau bisa contoh punya saya. Gambar dibawah ini adalah design database yang saya gunakan pada tutorial ini.


Jika ada yang belum tau caranya buat database di PhpMyAdmin, silakan ikutin step-step membuat database di tutorial ini (baca pada point membuat database).


Buat Project PHP


Pada project ini saya menggunakan beberapa package untuk membagi setiap class php dan html yang digunakan, maksud dari adanya package-package ini agar struktur folder dan file telihat lebih dari dan tertata. Struktur folder yang saya buat terleihat seperti gambar dibawah ini :


Di gambar diatas terdapat beberapa package yang memuat class php. Kita akan bahas satu persatu pacakge tersebut.

1. Pacakge db


Package ini dibuat untuk menampung class-class yang berhubungan dengan koneksi ke database. Di package ini terdapat satu file yang mengubungkan database dengan project php. File tersebut diberi nama Connection.php. Kodingan lengkap dari file Connection.php ada adalah sebagai berikut :


2. Package inserting


Package ini dibuat untuk menampung class-class yang berhubungan dengan inserting, baik itu form input maupun proses yang menginputnya.

Ada terdapat dua class di package ini, antara lain :

InsertData.php

File ini berfungsi untuk melakukan insert data ke database. Di class inilah terdapat query sql untuk insert data ke database. Kodingan lengkapnya seperti dibawah ini :

Perhatikan  kode-kode berikut :

$nama       = $_POST['nama'];
$jurusan    = $_POST['jurusan'];
$fakultas   = $_POST['fakultas'];

Kode diatas berfungsi untuk mengambil data yang di input oleh user dari form inputan. attribute didalam $_POST[''] adalah nama attribute yang ada pada form input bagian attribute name="". Namanya harus sama.

Kode :

header('Location: ../displaying/DisplayData.php')

berfungsi untuk me ngarahkan ke page DisplayData saat sukses insert data ke database, jadi datanya akan bisa langsung dilihat dalam bentuk tabel.

FormInsertData.html

File ini adalah form insert yang digunakan untuk memasukan data-data yang diperlukan ke database. Kode lengkapnya seperti dibawah ini :


3. Package Displaying


Pada package ini hanya terdapat satu class yaitu class DisplayData.php. Class ini digunakan untuk menampilkan data yang telah di input ke database kemudian ditampilkan di web page dalam bentuk table. Kode lengkapnya ada dibawah ini :


4. Package Deleting


Pada package ini terdapat class yang digunakan untuk menghapus data yang ada di database. Kode lengkapnya seperti dibawah ini :

Perhatikan kode berikut :

$idmahasiswa    = $_GET['id'];

Untuk mendapatkan sebuah ID, kenapa harus menggunakan $_GET? Ya karena id didapat bukan dari form inputan melainkan dari URL.

Baca juga : Perbedaan Sederhana Method GET dan POST di PHP

Prosesnya begini, saat button delete ditekan, ID data yang bersangkutan akan langsung dikirim menggunakan URL. Oleh file ini, diambilah ID tersebut, kemudia datanya si ID tersebut langsung di hapus dari database.

 

5. Package Updating


Package ini berisi file-file yang berhubungan dengan proses update data. Ada dua file yang berhubungan dengan update data yaitu, file yang digunakan untuk menampilkan data dan file yang digunakan untuk mengirim data terbaru ke database (yang sudah di update). File file tersebut antara lain :

DisplayDataForUpdate.php

File ini digunakan untuk menampilkan satu data yang akan di update berdasarkan ID. Kode lengkapnya ada dibawah ini :

Perhatikan kode berikut :

$id         = $_GET['id']; 

Kenapa menggunakan $_GET? Karena ID tersebut di dapat bukan dari suatu form input, melainkan dari tabel display data.

Saat tombol Update diklik saat itu juga ID yang bersangkutan dikirim melalui URL (Untuk kemudian data dari ID tersebut akan ditampilkan)

UpdateData.php

File ini berfungsi untuk mengirim data yang sudah di update di form ke database. Bisa dibilang file ini adalah mesinnya updatenya, karena di file inilah query update datanya berada. Kode lengkapnya seperti dibawah ini :

Perhatikan kode dibawah ini :

$id         = $_GET['id'];
$nama       = $_POST['nama'];
$jurusan    = $_POST['jurusan'];
$fakultas  = $_POST['fakultas'];

Seperti yang sudah dikatakan tadi, yang menggunakan $_GET, berarti datanya tidak dari form, melaikan dikirim dari URL, sedangkan yang menggunakan $_POST barulah datanya didapat dari hasil inputan form (oleh user).


Demikian beberapa langkah yang dapat saya sampaikan untuk dapat melakukan proses CRUD menggunakan PHP + MySQL. Semoga membantu.

Tuesday, 31 January 2017

13:44:00

Android Membuat Tampilan GridView Menggunakan StaggeredGridLayoutManager

Untuk menampilkan list sebuah gambar yang berisi diskripsi biasanya akan terlihat lebih bagus dan indah jika menampilkannya menggunakan tampilan Gridview.

Jika pada data yang akan ditampilkan hanya berbentuk tulisan dan beberapa icon, kita cukup dengan menggunakan recyclerview + Linear Layout Manager saja sudah bagus. Tapi jika bebentuk gambar dan berisi diskripsi, menggunakan recyclerview akan mengurangi tampilan indahnya.

Contoh aplikasi yang saat ini menggunakan tampilan gridview adalah Buka Lapak, OLX, dll.

Menggunakan Gridview akan menghasilkan tampilan seperti dibawah ini :

Hasil Akhir

Untuk membuat tampilan seperti gambar diatas, ikutilah beberapa langkah dibawah ini

Compile Library


Compile beberapa library berikut yang digunakan untuk membuat tampilan gridview

Layouting


Ada dua buah layout yang digunakan dalam project ini, antara lain :

1. activity_main.xml

Layout ini berisi view recyclerview yang akan digunakan untuk menampilkan semua data, kode lengkapnya sebagai berikut :

2. item_car_layout.xml

Layout ini digunakan untuk menampilkan setiap object data yang telah disimpan dalam model.

Layout ini berisi semua attribute yang berhubungan dengan data, misalnya Image, Nama Mobil, Harga Mobil, Jumlah, Ketersediaan, dll (sesuaikan dengan kebutuhan kalian).

Juga layout ini akan digunakan di adapter. Kode lengkapnya sebagai berikut :


Koding Di Class Java


Pada bagian ini yaitu proses koding diclass java, ada beberapa class yang akan digunakan untuk mendapatkan hasil seperti gambar diatas, antara lain :

1. CarModel.java

File ini berfungsi untuk menampung data satu buah object sebelum data tersebut dilempat kelist dan ditampilan di recyclerview dalam bentuk gridview. Kode lengkapnya seperti berikut :

2. CarAdapter.java

File ini berfungsi sebagai tempat untuk men set semua data yang ada di list ke item_car_layout sebelum dilempar ke recyclerview. Kode lengkapnya seperti dibawah ini :

3. SpacesItemDecorationGridView.java

File ini digunakan untuk membuat antara item satu dengan item yang lainnya ada jarak, tidak menyatu banget, dengan adanya jarak, maka tampilannya akan terlihat lebih indah (lihat gambar yang diatas sebelumnya). Kode lengkapnya seperti dibawah ini :

4. MainActivity.java

Seperti biasa, file ini digunakan sebagai tempat meng inisiasikan recyclerview (kalian bisa saja menggunakan class lain). Disamping itu, pada class ini juga tempat men set data-data yang akan disimpan dilist untuk kemudian ditampilkan ke recyclerview dalam bentuk gridview.

Di class ini juga si  StaggeredGridLayoutManager muncul. StaggeredGridLayoutManager digunakan sebagai pengganti LinearLayoutManager yang dibiasa digunakan recyclerview (Namun untuk data-data biasa).

Untuk lebih jelasnya silakan lihat kode lengkapnya dibawah ini :

Itulah beberapa langkah yang dapat saya berikan untuk membuat suatu tampilan gridview menggunakan StaggeredGridLayoutManager. Jika ada pertanyaan, silakan langsung saja ditanyakan di kolom komentar. Semoga bermanfaat.

Monday, 30 January 2017

11:40:00

Cara Mendapatkan Bilangan Acak (Random) Dari Sebuah List Menggunakan Java Netbeans

Random adalah suatu cara yang dilakukan agar seseorang mendapatkan sesuatu dalam suatu kumpulan secara acak.

Misalnya dalam sebuah list terdapat 10 angka, dengan teknik random, kita akan mendapatkan satu angka secara acak dari 10 angka yang ada di list.

Hasil akhir

Di dalam bahasa pemrograman java, ada bebera fungsi dan class yang dapat kita manfaatkan untuk bisa mendapatkan bilangan random dari suatu list, antara lain :
  • Fungsi Math.random() 
  • Class Random
  • Fungsi Collections.shuffle()
Misalnya begini, ada sebuah list yang berisi kumpulan angka-angka :

Dari angka tersebut, kita angkan mengambil satu bilangan yang dipilih secara acak. Berikut adalah cara-cara yang dapat dilakukan, antara lain :

1.  Class Random


Class Random memiliki sebuah method yang dapat digunakan untuk mengambil bilangan dari sebuah list secara acak. Nama method tersebut adalah nextInt().

2. Math.random()


Funsi ini sebenarnya berasa dari class Math. Class Math memiliki sebuah method yang dapat digunakan untuk mencari angka secara acak bernama random().

Lihat kode diatas, int randomIndex adalah variable untuk mendapatkan index dari list secara acak.

Lalu listAngka.get(randomIndex) adalah proses mengambil angka dari list menggunakan index secara acak tersebut.

3. Collections.shuffle


Cara ini adalah merupakan salah satu trick agar kita bisa mendapatkan angka secara acak. Shuffle adalah sebuah method dari class Collections. Method shuffle digunakan untuk mengacak-acak isi dari sebuah list. Jadi isinya nanti tidak berurutan, sudah teracak.

Setelah teracak-acak oleh Collections.shuffle(), selajutnya tinggal ambil angka pada index pertama (index ke NOL).

Mendapatkan bilangan acak dari Spesifik Range (Batas minimum dan maksimul angka)


Pada bagian ini adalah kemungkinan lain yang terjadi dalam sebuah perhitungan. Jika pada 3 cara diatas angka yang disediakan sudah pasti dari sebuah list, maka pada kasus ini adalah, angka ditentukan secara spesifik antara minum dan maksimum angka nya.

Contoh :

Minimum angka = 5
Maksumim angka = 10

Artinya begini, ambil bilangan secara acara diantara bilangan sampai dengan sepuluh. Jadi angka-angka nya menjadi seperti ini :

5,6,7,8,9,10

Nah, cara mendapatkan angka secara acak dari range yang spesifik adalah sebagai berikut :

Demikian artikel tentang bagaimana cara mencari bilangan acak dari sebuah list, semoga postingan diatas membantu teman-teman yang sedang belajar bahasa pemrograman.

Wednesday, 25 January 2017

15:02:00

Menampilkan Data Di Android (Retrofit 2.0 GET) Dari Server PHP + MySQL

Melanjutkan postingan sebelumnya tentang cara meng input data dari android ke database menggunakan server local PHP + MySQL, maka hari ini saya akan membuat artikel yang masih berkaitan atau satu project dengan postingan insert data dari android.

Postingan kali ini akan membahas bagaimana cara menampilkan data dari database ke aplikasi android yang kita buat.  Server dibuat menggunakan PHP  (PDO) + MySQL dan dihosting di localhost.

Baca juga : Perbedaan koneksi database menggunakan MySQL, MySQLi dan PDO

Sedangkan di android saya menggunakan Retrofit 2.0 sebagai bantuan agar bisa mengambil data dari server. Karna proses yang dilakukan hanya menampilkan data, maka method yang digunakan pada retrofit adalah method GET.

Jadi, sekalian belajar memahani proses pembuatan server sendiri juga kalian akan belajar bagaimana menggunakan method POST pada retrofit 2.0.

Baca juga : Cara GET Retrofit 2.0 Berdasarkan Parameter (menggunakan data dummy dari apiary)

Video Demo



 

Membuat Database


Database yang digunakan masih sama dengan project input data dari mobile, tidak ada yang berubah ataupun diganti. Kalian bisa ikuti langkah-langkah pembuatan databasenya. Silakan lihat kembali langkah-langkah pembuatan databasenya DISINI

Kodingan di PHP


Pada file php nya, ada beberapa php class yang digunakan, antara lain :
  • Connection.php
  • DisplayJsonFood.php
1. Connection.php

File ini berfungsi untuk menghubungkan atau mengkoneksikan database yang kita telah buat dengan project php. Kodingan lengkapnya bisa dilihat dibawah ini :

2. DisplayJsonFood.php

File ini berfungsi untuk menampilkan data-data yang ada pada database berupa json. Kenapa berupa json? Karena mobile tidak bisa langsung mengakses databasenya, jadi antara PHP dan Mobile berkomunikasinya menggunakan JSON. Kodingan lengkapnya ada dibawah ini :

Jika kode diatas dijalankan, akan menghasilkan out json. Artinya data yang ada di database di tampilkan menjadi format json. Lihat ouputnya dibawah ini :

Perhatikan : Karena data food memungkinkan lebih dari satu, makanya pada json diatas, disimpan di dalam array. Simbol array yang dimaksud adalah tanda kurung kotak []. Didalam tanda [] ada tanda {}. Tanda {} lah yang disebut object.

Contoh : Jika ada empat data di database, maka object didalam tanda [] juga menjadi empat, jadinya seperti ini : [{},{},{},{}] . Agar tidak bingung coba lihat gambar berikut ini :


Terlihat pada gambar diatas, ada empat object yang berada di dalam tanda []. Attribute status sebagai penanda jika prosesnya berhasil, maka angkanya akan menjadi 1, jika gagal maka angkanya akan menjadi 0.

Begitupun dengan attribute message, jika berhasil maka akan menampilkan response message success, jika gagal akan menampilkan response message failed while displaying data food.

Kodingan Di Android


Layouting


Untuk layouting, pada project ini akan digunakan 2 bentuk layout, yaitu :
  1. activity_main.xml
  2. item_food.xml
1. activity_main.xml

File ini berisi recyclerview untuk menampilkan semua data yang berasal dari database. Layout ini akan digunakan pada class MainActivity.java.

2. item_food.xml

File ini digunakan untuk men-set data setiap satu object yang didapat dari database. Jika dalam database ada 10 object, maka layout ini akan tampil di recyclerview sebanyak 10 kali juga. Penggunakan layout ini akan dilakukan pada class FoodAdapter.java.

File Java


Jumlah file yang ada pada project android sama dengan yang ada pada postingan - postingan sebelumnya cuma bedanya disini ditambahkan class adapter, antara lain :
  • FoodModel.java
  • ListFoodModel.java
  • LoggingInterceptor.java
  • ApiService.java
  • ApiClient.java
  • FoodAdapter.java
  • MainActivity.java
1. FoodModel.java

File ini dibuat sebagai object dari data yang akan didapat. Dalam file ini terdapat method getter dan setter. Kodingan lengkapnya ada dibawah ini :

2. ListFoodModel.java

Mungkin dari kalian ada yang bertanya-tanya, apa sih perbedaan antara FoodModel.java dengan ListFoodModel.java?

Begini, seperti yang terlihat pada output json (baca lagi yang diatas tentang penjelasan json), object berada di dalam array (karena data food bisa lebih dari satu). Agar model di json sama dengan model di android, makanya kita buatkan list yang membungkus si FoodModel.java.

Agar mudah dipahami, silakan lihat kodingan lengkapnya dibawah ini :

Silakan lihat-lihat lagi format jsonnya lalu bandingkan dengan FoodModel.java dan ListFoodModel.java. Dengan membandingkan format json dan model di android, saya rasa akan mudah dipahami.

3. LoggingInterceptor.java

File ini digunakan untuk melihat proses selalu pengambilan data. Jika error, melalui class ini akan diketahui penyebab errornya. Output resultnya bisa dilihat di logcat. Kodingan lengkapnya seperti dibawah ini :

4. ApiService.java

File ini merupakan interface yang didalamnya terdapat method untuk mengambil (GET) data json yang diambil dari server. Kodingan lengkapnya seperti dibawah ini :

5. ApiClient.java

File ini berisi URL target yang akan digunakan. Dan juga di class ini tempat meng inisialisasi Retrofit. Kode lengkapsnya seperti dibawah ini :

6. FoodAdapter.java

File ini digunakan untuk men set data yang didapat dari server ke textview masing-masing. Kodingan lengkapnya bisa dilihat dibawah ini :

7. MainActivity.java

MainActivity adalah class utama yang didalamnya terdapat proses GET data dari server. Jika berhasil, data akan langsung dikirim ke FoodAdapter dan di set ke recyclerview. Jika gagal maka akan mempilkan pesan gagal yang didapat dari response jsonnya. Kodingan lengkapnya bisa dilihat dibawah ini :

Demikian beberapa langkah untuk dapat menampilkan data yang ada di database ke android. Server yang saya buat menggunakan PHP dan MySQL. Semoga artikel ini bermanfaat. Terimakasi.
09:16:00

Perbedaan Koneksi Database Antara MySQL, MySQLi Dan PDO

Untuk saat ini ada tiga cara paling populer digunakan untuk menghubungkan MySQL dari PHP, antara lain :
  1. MySQL
  2. MySQLi
  3. PDO
Lalu apa perbedaan ketiga? Jika digunakan mana yang paling bagus untuk digunakan saat ini? Simak ulasa dibawah ini

1. MySQL


Metode pertama yang sering digunakan untuk menghubungkan ke database adalah MySQL, fungsi ini dilakukan masih secara prosedural tidak bagus digunakan dalam bentuk Object Oriented.

Namun untuk sekarang ini fungsi MySQL sudah deprecated (sudah ditinggalkan, tidak digunakan lagi), bagi yang biasa menggunakan fungsi MySQL, segerahlah berganti dengan fungsi lainnya.

Deprecated

Contoh penggunaan fungsi MySQL adalah sebagai berikut :

Database yang support dengan fungsi MySQL hanya database MySQL.

2. MySQLi


Fungsi MySQLi hadir untuk menggantikan fungs MySQL yang sudah di deprecated. Fungsi MySQLi hadir lebih up to date yaitu bisa untuk object oriented dan prosedural, selain itu fungsi MySQLi juga support prepared statement.

Cara penggunaan fungsi MySQLi adalah seperti berikut :

Database yang support untuk fungsi MySQLi adalah hanya Database MySQL

3. PDO


Fungsi PDO adalah yang paling baru. PDO adalah sebuah fungsi yang dapat mensupport oleh banyak database. Selain untuk database MySQL, PDO juga support CUBRIID, MS SQL SERVER, Firebird/Interbase, IBM, Informix ODBC, Oracle, SQLite, PostgresSQL, dll.

Cara menggunakan PDO untuk mengkoneksikan ke database adalah sebagai berikut :

Alasan saat ini masih menggunakan PDO sebagai fungsi di PHP karna PDO support banyak database, jika suatu saat project yang saya kerjakan berganti database, misalnya dari MySQL ke PostgresSQL, maka saya tidak harus merubah keseluruhan kodingan, tapi hanya beberapa.

Itulah satu perbedaan sederhana antara fungsi MySQL, MySQLi dan PDO. Jika ada koreksi silakan ditambahkan di komentar. Semoga membantu, terimakasih.

Tuesday, 24 January 2017

23:16:00

Tutorial Insert Data Menggunakan PHP PDO + MySQL

Setelah beberapa saat sebelumnya saya membuat artikel tentang cara insert data dari Android ke server yang dibuat dengan PHP + MySQL, maka sekarang saya membuat input data versi webnya.

Dengan kata lain, saya akan menginput/insert data dari web bukan dari mobile. Ini masih satu project dengan insert data dari Mobile, cuma saya pisah aja, biar jadi ada banyak referensi bagi kalian yang sedang mencari-cari informasi terkait.

Video Demo



Membuat Database


Database yang digunakan masih sama dengan project input data dari mobile, tidak ada yang berubah ataupun diganti. Kalian bisa ikuti langkah-langkah pembuatan databasenya. Silakan lihat kembali lankah-langkah pembuatan databasenya DISINI

Kodingan PHP


Ada beberapa file yang saya gunakan agar bisa melakukan input data dari web, antara lain :
  1. Connection.php, untuk menghubungkan database dengan project yang dibuat
  2. InsertFood.php, berfungsi untuk melakukan insert data ke database
  3. DisplayFood.php, berfungsi untuk menampilkan data yang ada di database ke web page
  4. FormInsertFood.html, berisi form untuk input data food.
Agar tidak bingung, kalian bisa lihat struktur folder project ini pada Gambar 1 dibawah ini :

Gambar 1

1. Connection.php

File ini digunakan untuk menghubungkan database yang dihosting di localhost ke project yang kita buat. Disini saya menggunakan PDO untuk menghubungkan ke database. Kodingan lengkapnya seperti dibawah ini :

2. InsertFood.php

Baca juga : Perbedan Koneksi database antara MySQL, MySQLi dan PDO Secara Singkat

File ini berisi query untuk insert data ke database. Bisa dikatakan file ini sebagai mesin untuk mengambil data yang di input user kemudian di masukan kedatabase. Kodingan lengkapnya bisa dilihat dibawah ini :

3. FormInsertFood.html

File ini berisi form untuk input data food. Method yang digunakan adalah POST. Jika kalian belum terlalu paham apa beda antara method POST dan GET, silakan baca postingan saya tentang perbedaan sederhana antara POST dan GET.

Sedangkan pada bagian actionnya kita taruh file InsertFood.php. Artinya begini, setiap kali user menginput data dan menekan submit, maka data-data tersebut akan di tindak lanjuti oleh file InsertFood.php untuk kemudian disimpan ke database.

Kodingan lengkapnya, bisa dilihat dibawah ini :

Perhatikan pada bagian name di kolom food Name dan Food Quantity. Disana ada attribute name, isi dari attribute name harus sama dengan attribute yang digunakan dalam file php.

Sebagai contoh :

Di php, untuk mendapatkan data foodname yang di input user, maka kita harus menulis begini :

$foodName = $_POST['foodname'], foodname didapat dari nama attribute pada textfield Food Name di HTML.

Begitu juga dengan foodqty :

$foodQty = $_POST['foodqty'], foodqty didapat dari nama attribute pada textfield Food QTY di HTML.

4. DisplayFood.php

File ini digunakan untuk menampilkan data-data yang ada pada database. Jika kalian ingin menampilkan data yang sudah masuk kedatabase ke web page, maka kalian bisa menggunakan class ini. Kodingan lengkapnya ada dibawah ini :

Itulah beberapa langkah yang dapat saya sampaikan tentang cara insert data ke database menggunakan PHP PDO + MySQL. Semoga bermanfaat dan semoga mengerti dengan mudah. Terimakasih.
16:04:00

Tutorial Retrofit Android Insert Data Ke Server Menggunakan PHP dan MySQL (Localhost)

Pada postingan postingan sebelumnya, saya membuat contoh/proses input atau insert selalu menggunakan data dummy apiary, artinya tidak ada data yang masuk, apiary digunakan untuk men testing proses yang kita buat di mobile sudah benar apa belum.

Biasanya pada tutorial yang saya buat menggunakan apiary hanya terfocus untuk menjelasakan masalah GET POST data menggunakan retrofit. Tidak berisi file PHP.

Nah, kali ini saya akan memposting tentang cara input data menggunakan Android. Database menggunakan MySQL (Localhost/phpMyAdmin) dan server nya dibuat menggunakan PHP.

Untuk transfer data ke server, di Android saya menggunakan library retrofit 2.0. Retrofit akan membantu kita untuk mengirimkan data ke database.

Di file PHP, saya menggunakan PDO sebagai cara untuk mengkoneksikan file php yang dibuat ke database MySQL.

Video Demo


 

Membuat Database MySQL


Hal pertama yang harus kita lakukan adalah membuat database. Kalian bisa membuat database MySQL dimanapun, contohnya di HeidiSQL, MySQL Server ataupun PhpMyAdmin.

Pada contoh kasus ini, saya menggunakan PhpMyAdmin untuk membuat database (karena kebetulan tidak punya HeidiSQL).

1. Masuk ke localhost/phpmyadmin (usakan xampp kalian sudah aktif)

2. Maka kalian akan masuk ke page seperti Gambar 1 dibawah ini. Untuk membuat database, pilih New (seperti yang di warnai kuning pada Gambar 1)

Gambar 1

3. Setelah itu, tuliskan nama databasenya, dan pilih type nya. Lihat Gambar 2 dibawah ini

Gambar 2

Buat nama databasenya dengan nama : loginphpandroid
Jenis bahasanya pilih : utf8_general_ci

4. Setelah databasenya jadi, sekarang buat Table, cara membuat Table lihat pada Gambar 3 dibawah ini

Gambar 3
Untuk membuat Tabel baru, silakan klik new pada Gambar 3 (yang diwarnai kuning), kemudian kalian akan bawa ke page untuk menulis nama Table nya.

5. Untuk menuliskan nama Table, silakan lihat Gambar 4 dibawah ini

Gambar 4
Penjelasan untuk Gambar 4 :
  • Beri nama untuk tablenya : Food
  • Pilih jumlah attribute (kolom) yang ada pada table Food
  • Kemudian pilih Go

6.  Setelah Table nya sudah siap, sekarang buat attribute-attribute yang ada pada table Food. Lihat Gambar 5 dibawah ini

Gambar 5

Pejelasan Gambar 5 :
  • Beri nama untuk attrubte pertama sebagai idfood, tipenya INT
  • Set idfood sebagai Primary Key
  • Karena idfood adalah primary key, maka checklist A_I (Auto Increment)
  • Beri nama untuk attribute kedua sebagai foodname, tipenya VARCHAR
  • Beri nama untuk attirute ketiga sebagai foodqty, tipenya INT
  • Jika sudah selesai semua, pilih Save

Oke sekarang database sudah siap digunakan tinggal focus di  kodingan antara Android dan PHP.

Kodingan di PHP


Di project PHP yang saya buat, terdapat beberapa class PHP. Diantara file - file PHP tersebut saya tempatkan di package yang berbeda. Untuk lebih jelas tentang struktur folder project PHP yang saya buat, silakan lihat Gambar 6 dibawah ini

Gambar 6

NB : Yang di coret dengan gari hitam adalah Display data PHP PDO dan form HTML insert data akan dibahas pada postingan selanjutnya.

1. Connection.php

File ini digunakan untuk menghubungkan project php yang dibuat ke database. Jika sudah terhubung maka akan gampang untuk menginput data dari Mobile ataupun dari Form HTML. Kodingan lengkapnya bisa dilihat dibawah ini :

2. InsertFood.php

Baca juga : Perbedaan konesi database antara MySQL, MySQLi dan PDO Secara Singkat

File ini digunakan untuk menginput data ke Database. Data yang didapat beragam, bisa jadi berasal form inputan dengan HTML ataupun menggunakan Mobile. Namun dalam kasus ini, data didapat dari Mobile, khusunya Android. Kodingan lengkapnya bisa dilihat di bawah ini :

Perhatikan! ada beberapa kode yang perlu saya jelaskan :

$response = array()
Kode diatas dibuat untuk menyimpan response dalam bentuk json.

//cek is the row was inserted or not 
if($sqlInsert){     
    //success inserted     
    $response["success"] = 1;     
    $response["message"] = "Food successful inserted!";
    echo json_encode($response);
}else{     
    //failed inserted     
    $response["success"] = 0;     
    $response["message"] = "Failed while insert data";
    echo json_encode($response);}

Kode diatas akan mengecek, apakah inputan ke database sudah berhasil apa belum, jika sudah berhasil, response yang akan dibuat adalah :
  • success = 1
  • message = Food successful inserted!
Ketika dilakukan json_encode($response), maka tampilan jsonnya akan seperti ini :
{"success":1,"message":"Food successful inserted!"}

Jika inputan diatas tidak berhasil, maka response yang akan dibuat adalah :
  • success = 0
  • message = "Failed while insert data"
Sehingga ketika dilakukan print json_encode($response), maka akan tampil json seperti dibawah ini :

{"success":0,"message":"Failed while insert data"}

Respon json tersebut akan digunakan di mobile, dan akan dimunculkan dalam Toast sesuai dengan statusnya sebagai tanda sudah berhasil atau gagal dalam proses input data.

Kodingan di Android


Disini saya menggunakan Retrofit 2.0 sebagai kendaraan untuk dapat menginput data dari android ke server

1. Library

Seperti biasa compile beberapa library dibawah ini :

//add the following libraries 
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:retrofit:2.0.2' 
compile 'com.squareup.retrofit2:converter-gson:2.0.2'

2. Android Manifest

Di AndroidManifest tambahkan user permission untuk internet, seperti dibawah ini :

<uses-permission android:name="android.permission.INTERNET"/>

3. Layout

Beberapa layout yang digunakan adalah :
  • activity_main.xml
  • popup_insert_food.xml
Buat layout activity_main.xml, kemudian paste kode dibawah ini :

Kemudian buat layout popup_insert_food.xml. Layout ini berisi dua buah edit text untuk foodname dan foodqty. Nantinya layout ini muncul dalam bentuk popup. Paste kode dibawah ini :


4. Class Java

Ada beberapa class java yang butuhkan agar bisa melakukan input ke database, antara lain :
  • ApiService.java
  • ApiClient.java
  • LoggingInterceptors.java
  • InsertFoodResponseModel.java
  • MainActivity.java
Buat interface ApiService.java. Interface ini berisi method yang akan digunakan untuk mengirim data ke server. Kode lengkapnya seperti dibawah ini :

Selanjutnya, buat class ApiClient.java. Class ini berisi URL target yang akan digunakan. Dan juga di class ini akan di inisialisasi Retrofit. Kode lengkapsnya seperti dibawah ini :

Perhatian URL nya, 192.168.43.147 adalah IP dari komputer saya. Sedangkan AndroidPhpLogin adalah folder awal project yang berada di dalam localhost (htdocs). Kalian bisa mengganti URL tersebut dengan alamat server kalian sendiri.

Buat class InsertFoodResponseModel.java. Class ini digunakan untuk menampung respon json dari server (Lihat jsonnya pada penjelasan kodingan php). Paste kode dibawah ini :

Buat class LoggingInterceptors.java. Class ini digunakan untuk melihat proses dari hasil input data ke server.

Kenapa menggukan class ini? Karena diretrofit kita agak mengalami kesulitan dalam melihat hasil proses input nya, terutama URL dan JSON nya. Kalian bisa lihat hasilnya di logcat. Kode lengkap dari LoggingInterceptors.java adalah seperti dibawah ini :

Yang terakhir adalah MainActivity.java. Semua proses dan class-class diatas akan disatukan di class ini. Kode lengkapnya ada dibawah ini :

Demikian beberapa langkah yang dapat saya sampaikan tentang cara meng input data dari Android ke Database menggunakan Server yang dibuat dari Native PHP. Jika ada yang kurang jelas dari penjelasan diatas, silakan langsung saja ditanyakan. Terimakasih.