LOADING . . .
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):
Anda juga bisa membaca artikel lepas yang masih berhubungan dengan seri membuat website professional dengan PHP dan Mysql
Khusus untuk artikel ini, merupakan lanjutan dari artikel sebelumnya. Jadi pastikan anda membaca part sebelunya dibawah ini:
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.
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";
}
public static final String URL_GET_ALL = "https://hospital.nawadwipa.id/api/post_list.php";
Java Class ini berfungsi untuk menangani permintaan jaringan.
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();
}
}
CustomImageAdapter
Fungsi dari Java Class ini adalah untuk menampilkan gambar dari sebuah URL, karena nantinya untuk loop pada MainAcvity akan menggunakan ListView
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;
}
}
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.