Table of contents
Membuat Aplikasi Berita Android dengan Android Studio, PHP dan Mysqli - Selamat malam blogger, lama rasanya saya tidak pernah meng-update blog sederhana ini karena sedikit kesibukan. Pada kesempatan ini, saya akan melanjutkan seri membuat website professional dengan PHP dan Mysqli yang sudah saya janjikan di artikel sebelumnya bahwa website ini akan dilengkapi dengan sebuah aplikasi android. Bagi anda yang belum membaca seri membuat website tersebut, silahkan anda baca dan ikuti beberapa langkah mudah dalam membuat website dari Nol (website from strach):
- Membuat Website Professional dengan PHP & MySql - PART #1 : Pengertian Dasar & Tools
- Membuat Website Professional dengan PHP & MySql - PART #2 : Setup Database, Table & Hirarki Folder
- Membuat Website Professional dengan PHP & MySql - PART #3 : Membuat Login Admin & Dashboard
- Membuat Website Professional dengan PHP & MySql - PART #4 : Customized Login Admin & Dashboard
- Membuat Website Professional dengan PHP & MySql - PART #5 : Membuat Halaman Profile Admin & Integrasi Gravatar
- Membuat Website Professional dengan PHP & MySql - PART #6 : Manajemen Halaman
- Membuat Website Professional dengan PHP & MySql - PART #7 : Manajemen Kategori
- Membuat Website Professional dengan PHP & MySql - PART #8 : Manajemen Post
- Membuat Website Professional dengan PHP & MySql - PART #9 : Manajemen Password Admin
- Membuat Website Professional dengan PHP & MySql - PART #10 : Pengaturan Global, Htaccess & Halaman Frontend
- Membuat Website Professional dengan PHP & MySql - PART #11 : Halaman About & 404
- Membuat Website Professional dengan PHP & MySql - PART #12 : Halaman Blog & Single Post
- Membuat Website Professional dengan PHP & MySql - PART #13 : Halaman Kategori & Search
- Membuat Website Professional dengan PHP & MySql - PART #14 : Upload ke Hosting & Pengaturan Database
- Membuat Website Professional dengan PHP & MySql - PART #15 : Halaman Contact & Email
Anda juga bisa membaca artikel lepas yang masih berhubungan dengan seri membuat website professional dengan PHP dan Mysql
- Membuat Aplikasi Android dengan Webview Android Studio
- Membuat Aplikasi iOs dengan Webview Swift 5 - Xcode
Khusus untuk artikel ini, merupakan lanjutan dari artikel sebelumnya. Jadi pastikan anda membaca part sebelunya dibawah ini:
- Membuat Aplikasi android dengan Android Studio, PHP & Mysqli - PART 1 : Membuat Konektor (API) pada server
- Membuat Aplikasi Berita Android dengan Android Studio, PHP dan Mysqli - PART 2 : Membuat Project Android Studio & Instalasi Library
Di Part 3 ini, sesuai judulnya saya akan menghubungkan aplikasi android studio (Client) dengan Web base (SERVER), pastikan anda membaca dua artikel tentang android studio diatas.
ApiConfig
- Buka project anda, pada contoh project saya bernama "SubaPHP"
- Klik File >> New >> Java Class dan beri nama "ApiConfig"
- Copy kode dibawah dan simpan
package com.suba.php; public class ApiConfig { public static final String BASE_URL = "http://hospital.nawadwipa.id/"; public static final String URL_GET_ALL = "https://hospital.nawadwipa.id/api/post_list.php"; public static final String URL_GET_POST = "https://hospital.nawadwipa.id/api/post_detail.php?id="; public static final String TAG_JSON_ARRAY="result"; public static final String TAG_ID = "id"; public static final String TAG_JUDUL = "judul"; public static final String TAG_ARTIKEL = "content"; public static final String TAG_GAMBAR = "gambar_utama"; public static final String TAG_PUBLISH = "publish_date"; public static final String TAG_KATEGORI = "kategori"; public static final String POST_ID = "id"; public static final String KEY_POST_JUDUL = "judul"; public static final String KEY_POST_ARTIKEL = "content"; public static final String KEY_POST_GAMBAR = "gambar_utama"; public static final String KEY_POST_PUBLISH = "publish_date"; public static final String KEY_POST_KATEGORI = "kategori"; }
- Lihat baris dibawah, sedikit penjelasan mengenai apa yang ingin saya tampilkan pada MainActivity nantinya adalah sebuah "loop" dari artikel yang ada pada website dan sudah saya bahas di artikel sebelumnya (Lihat disini)
public static final String URL_GET_ALL = "https://hospital.nawadwipa.id/api/post_list.php";
RequestHandler
Java Class ini berfungsi untuk menangani permintaan jaringan.
- Buat file baru kembali, Klik File >> New >> JavaClass dan berinama "RequestHandler"
- Copy baris kode berikut dan paste
package com.suba.php; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; import javax.net.ssl.HttpsURLConnection; public class RequestHandler { public String sendPostRequest(String requestURL, HashMap postDataParams) { URL url; StringBuilder sb = new StringBuilder(); try { url = new URL(requestURL); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setReadTimeout(15000); conn.setConnectTimeout(15000); conn.setRequestMethod("POST"); conn.setDoInput(true); conn.setDoOutput(true); OutputStream os = conn.getOutputStream(); BufferedWriter writer = new BufferedWriter( new OutputStreamWriter(os, "UTF-8")); writer.write(getPostDataString(postDataParams)); writer.flush(); writer.close(); os.close(); int responseCode = conn.getResponseCode(); if (responseCode == HttpsURLConnection.HTTP_OK) { BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); sb = new StringBuilder(); String response; while ((response = br.readLine()) != null){ sb.append(response); } } } catch (Exception e) { e.printStackTrace(); } return sb.toString(); } public String sendGetRequest(String requestURL){ StringBuilder sb =new StringBuilder(); try { URL url = new URL(requestURL); HttpURLConnection con = (HttpURLConnection) url.openConnection(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream())); String s; while((s=bufferedReader.readLine())!=null){ sb.append(s+"\n"); } }catch(Exception e){ } return sb.toString(); } public String sendGetRequestParam(String requestURL, String id){ StringBuilder sb =new StringBuilder(); try { URL url = new URL(requestURL+id); HttpURLConnection con = (HttpURLConnection) url.openConnection(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream())); String s; while((s=bufferedReader.readLine())!=null){ sb.append(s+"\n"); } }catch(Exception e){ } return sb.toString(); } private String getPostDataString(HashMap params) throws UnsupportedEncodingException { StringBuilder result = new StringBuilder(); boolean first = true; for (Map.Entry entry : params.entrySet()) { if (first) first = false; else result.append("&"); result.append(URLEncoder.encode(entry.getKey(), "UTF-8")); result.append("="); result.append(URLEncoder.encode(entry.getValue(), "UTF-8")); } return result.toString(); } }
- Simpan
CustomImageAdapter
Fungsi dari Java Class ini adalah untuk menampilkan gambar dari sebuah URL, karena nantinya untuk loop pada MainAcvity akan menggunakan ListView
- Buat file baru kembali, Klik File >> New >> JavaClass dan berinama "CustomImageAdapter"
- Copy baris kode berikut dan paste
package com.suba.php; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.SimpleAdapter; import com.squareup.picasso.*; import java.util.List; import java.util.Map; public class CustomImageAdapter extends SimpleAdapter { public CustomImageAdapter(Context context, List<? extends Map list, int resource, String[] from, int[] to){ super(context, list, resource, from, to); } public View getView(int position, View convertView, ViewGroup parent){ View v = super.getView(position, convertView, parent); ImageView imgvw = (ImageView) v.getTag(); if(imgvw == null){ imgvw = (ImageView) v.findViewById(R.id.imageIv); v.setTag(imgvw); } // get the url from the data in the `Map` String url = ((Map)getItem(position)).get("gambar").toString(); Picasso.get().load(url).into(imgvw); return v; } }
- Simpan
Pada Artikel Membuat Aplikasi Berita Android dengan Android Studio, PHP dan Mysqli - Part 3: ApiConfig dan RequestHandler ini, sudah membuat 3 class baru. Di Artikel berikutnya saya akan mulai untuk membuat layout main_activity untuk loop dan single/detail dari artikel.