![]() |
| Aplikasi Al-Quran |
Oleh karena itu, saya berinisiatif untuk membuat aplikasi ini. Walaupun sudah banyak yang membuat aplikasi serupa, tetapi tidak ada salahnya jika kita membuatnya sendiri. Karena kita bisa belajar program sekaligus mempelajari aplikasi yang sudah kita buat. Meski tidak sebagus dan semenarik yang tersedia di Play Store, aplikasi sederhana ini juga bermanfaat, insyaAllah😊
1. Buat Project
- Pastikan kalian sudah men-instal Android Studio
- Buat Project baru, disini saya memberi nama My Alquran
- Tentukan minimum dan target OS (kalau saya minSDK 15 dan targetSDK 25). Kemudian pilih template Empty Activity, lalu beri nama Activitynya dengan MainActivity dan layoutnya dengan nama activity_main.
Kalian buat dahulu tampilan dari activity_main.xml. Disini saya menggunakan AutoCompleteTextView dan ListView, dimana AutoCompleteTextView nantinya berisi daftar nama-nama surat dan ListView untuk menampilkan ayat-ayatnya. Berikut source-nya :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<AutoCompleteTextView
android:id="@+id/autocomplete"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5sp" />
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/autocomplete"
android:background="#ffffff"
android:cacheColorHint="@android:color/transparent"
android:divider="#efefef"
android:dividerHeight="2sp"
android:listSelector="@android:color/transparent" />
</RelativeLayout>3. Membuat Database
- Kalian download Database Al-Quran. Database tersebut saya dapatkan dari situs http://www.qurandatabase.org/, disana kalian pilih format SQL
- Setelah kalian download, kalian ubah namanya menjadi quran.sql. Lalu kalian buat folder baru dan beri nama raw. Folder tersebut untuk menyimpan database quran.sql
![]() |
| Android Studio |
- Kemudian kalian buat File Java untuk mengeksekusi database tadi dengan nama DBHelper, QuranDAO, dan QuranVO.
package com.azhar.myalquran;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* Created by Azhar Rivaldi on 20/09/2017.
*/
public class DBHelper extends SQLiteOpenHelper {
protected static final String DATABASE_NAME = "myalquran";
protected static final String TABLE_NAME = "quran";
private static final int DATABASE_VERSION = 1;
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
//context.deleteDatabase(DATABASE_NAME); //untuk delete database
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = " CREATE TABLE IF NOT EXISTS 'Quran' (" +
" 'ID' INTEGER PRIMARY KEY," +
" 'DatabaseID' SMALLINT NOT NULL," +
" 'SuratID' INTEGER NOT NULL," +
" 'VerseID' INTEGER NOT NULL," +
" 'AyatText' TEXT CHARACTER" +
"); ";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "DROP TABLE IF EXISTS " + TABLE_NAME + "";
db.execSQL(sql);
onCreate(db);
}
}
package com.azhar.myalquran;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Azhar Rivaldi on 20/09/2017.
*/
public class QuranDAO extends DBHelper {
private Context ctx;
public QuranDAO(Context context) {
super(context);
ctx = context;
}
public List getListDataWhereCriteria(String table, Integer value) {
List recordsList = new ArrayList<>();
String sql = "SELECT * FROM " + TABLE_NAME + " where " + table + " = '" + value + "'";
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(sql, null);
if (cursor.moveToFirst()) {
do {
Integer suratId = cursor.getInt(cursor.getColumnIndex("SuratID"));
Integer verseId = cursor.getInt(cursor.getColumnIndex("VerseID"));
String ayatText = cursor.getString(cursor.getColumnIndex("AyatText"));
QuranVO dataObj = new QuranVO();
dataObj.setSuratId(suratId);
dataObj.setVerseId(verseId);
dataObj.setAyatText(ayatText);
recordsList.add(dataObj);
} while (cursor.moveToNext());
}
cursor.close();
db.close();
return recordsList;
}
}
package com.azhar.myalquran;
/**
* Created by Azhar Rivaldi on 20/09/2017.
*/
public class QuranVO {
private Integer id, databaseId, suratId, verseId;
private String ayatText;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getDatabaseId() {
return databaseId;
}
public void setDatabaseId(Integer databaseId) {
this.databaseId = databaseId;
}
public Integer getSuratId() {
return suratId;
}
public void setSuratId(Integer suratId) {
this.suratId = suratId;
}
public Integer getVerseId() {
return verseId;
}
public void setVerseId(Integer verseId) {
this.verseId = verseId;
}
public String getAyatText() {
return ayatText;
}
public void setAyatText(String ayatText) {
this.ayatText = ayatText;
}
}4. Membuat MainActivity.java
Di dalam class ini kalian masukkan data nama-nama surat Al-Qur'an ke AutoCompleteTextView. Dan ketika kalian mengetik nama surat di AutoCompleteTextView ini, maka otomatis akan keluar nama-nama surat tadi dan ketika di klik maka otomatis ListView akan terisi dengan ayat-ayat dari surat yang kita pilih. Keren kan?😄
package com.azhar.myalquran;
/**
* Created by Azhar Rivaldi on 20/09/2017.
*/
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.database.sqlite.SQLiteDatabase;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.ListView;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private SQLiteDatabase db;
private ListView listview;
private AutoCompleteTextView autoCompleteTextView;
private String[] surahName = {"Al-Fatihah", "Al-Baqarah", "AliImran", "An-Nisaa", "Al-Maidah", "Al-An'am", "Al-A'raf", "Al-Anfaal", "At-Taubah", "Yunus", "Huud", "Yusuf", "Ar-Ra'd", "Ibrahim", "Al-Hijr", "An-Nahl", "Al-Israa'", "Al-Kahfi", "Maryam", "Thaahaa", "Al-Anbiyaa", "Al-Hajj", "Al-Mu'minuun", "An-Nuur", "Al-Furqaan", "Asy-Syu'araa", "An-Naml", "Al-Qashash", "Al-'Ankabuut", "Ar-Ruum", "Luqman", "As-Sajdah", "Al-Ahzab", "Saba'", "Faathir", "YaaSiin", "Ash-Shaaffat", "Shaad", "Az-Zumar", "Al-Mu'min", "Fushshilat", "Asy-Syuura", "Az-Zukhruf", "Ad-Dukhaan", "Al-Jaatsiyah", "Al-Ahqaaf", "Muhammad", "Al-Fat-h", "Al-Hujuraat", "Qaaf", "Adz-Dzaariyat", "Ath-Thuur", "An-Najm", "Al-Qamar", "Ar-Rahmaan", "Al-Waaqi'ah", "Al-Hadiid", "Al-Mujaadilah", "Al-Hasyr", "Al-Mumtahanah", "Ash-Shaff", "Al-Jumuah", "Al-Munaafiqun", "At-Taghaabun", "Ath-Thalaaq", "At-Tahriim", "Al-Mulk", "Al-Qalam", "Al-Haaqqah", "Al-Ma'aarij", "Nuh", "Al-Jin", "Al-Muzzammil", "Al-Muddatstsir", "Al-Qiyaamah", "Al-Insaan", "Al-Mursalaat", "An-Naba'", "An-Naazi'aat", "'Abasa,42", "At-Takwiir", "Al-Infithaar", "Al-Muthaffif", "Al-Insyiqaaq", "Al-Buruuj", "Ath-Thaariq", "Al-A'laa", "Al-Ghaasyiyah", "Al-Fajr", "Al-Balad", "Asy-Syams", "Al-Lail", "Adh-Dhuhaa", "Al-Insyirah", "At-Tiin", "Al-'Alaq", "Al-Qadr", "Al-Bayyinah", "Az-Zalzalah", "Al-'Aadiyaat", "1Al-Qaari'ah", "At-Takaatsur", "Al-'Ashr", "Al-Humazah", "Al-Fiil", "Quraisy", "Al-Maa'uun", "Al-Kautsar", "Al-Kaafiruun", "An-Nashr", "Al-Lahab", "Al-Ikhlash", "Al-Falaq", "An-Naas"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(com.azhar.myalquran.R.layout.activity_main);
listview = (ListView) findViewById(com.azhar.myalquran.R.id.listview);
autoCompleteTextView = (AutoCompleteTextView) findViewById(com.azhar.myalquran.R.id.autocomplete);
autoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView adapterView, View view, int i, long l) {
String selection = (String) adapterView.getItemAtPosition(i);
int pos = -1;
for (int j = 0; j < surahName.length; j++) {
if (surahName[j].equals(selection)) {
pos = j;
break;
}
}
List listData = new QuranDAO(MainActivity.this).getListDataWhereCriteria("SuratID", pos + 1);
String[] ayat = new String[listData.size()];
for (int j = 0; j < listData.size(); j++) {
ayat[j] = listData.get(j).getAyatText();
}
ArrayAdapter adapter = new ArrayAdapter<>(MainActivity.this,
android.R.layout.simple_list_item_1, android.R.id.text1, ayat);
listview.setAdapter(adapter);
}
});
//init data pas pertama kali buka android saja
SharedPreferences settings = getSharedPreferences("myalqruan", 0);
if (settings.getBoolean("firsttime", true)) {
initData();
settings.edit().putBoolean("firsttime", false).commit();
}
setToListView();
}
@Override
public void onBackPressed(){
final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setMessage("Apakah anda ingin keluar dari App?");
builder.setCancelable(true);
builder.setNegativeButton("Batal", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.setPositiveButton("Ya", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
private void initData() {
DBHelper dbHelper = new DBHelper(this);
db = dbHelper.getWritableDatabase();
new doBackground().execute();
}
class doBackground extends AsyncTask {
ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog.setIndeterminate(false);
progressDialog.setCancelable(false);
progressDialog.setMessage("Loading Data");
progressDialog.show();
}
@Override
protected Void doInBackground(Void... voids) {
insertFromFile(MainActivity.this, com.azhar.myalquran.R.raw.quran);
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
}
}
public void insertFromFile(Context context, int resourceId) {
try {
InputStream insertsStream = context.getResources().openRawResource(resourceId);
BufferedReader insertReader = new BufferedReader(new InputStreamReader(insertsStream));
db.beginTransaction();
while (insertReader.ready()) {
String insertStmt = insertReader.readLine();
db.execSQL(insertStmt);
}
db.setTransactionSuccessful();
db.endTransaction();
insertReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private void setToListView() {
ArrayAdapter adapter = new ArrayAdapter<>(this,
android.R.layout.simple_dropdown_item_1line, surahName);
autoCompleteTextView.setAdapter(adapter);
}
} Jika tidak ada yang terlewat, kalian jalankan dan lihat hasilnya pasti seperti video preview diatas. Jika kalian mengalami kesulitan, silahkan berikan komentar di kolom yang tersedia. Untuk yang berminat meminta Source Code aplikasi ini, kalian bisa hubungi saya melalui Contact Us.
Demikian informasi yang saya bagikan untuk kalian. Jangan lupa bagikan artikel ini ke teman-teman kalian agar ikut membaca Cara Membuat Aplikasi Al-Quran Untuk Android ini. Subscribe juga blog Rivaldi 48 ini agar kalian mendapatkan notifikasi saat Admin update artikel terbaru. Semoga kalian lebih nyaman dan mudah dalam mengakses Blog Rivaldi 48 dimanapun kalian berada. Terima Kasih. Follow Instagram Admin @azhardvls_

