DAFTAR PUSTAKA 1.
Felker D.: Dobbs J, 2011, Android Application Development for Dummies, Wiley Publishing Inc., USA
2.
Ed Burnette, Eclipse IDE Pocket Guide, 2005.
3.
Budi Raharjo , Imam Heryanto, Arif Haryono , Tuntunan Pemrograman Java untuk Handphone, Penerbit Informatika Bandung , 2007.
4.
Wahana Komputer, Android Programming with Eclipse, 2013
5.
Eko Priyo, Cara Cepat dan Mudah Belajar JavaSE7 , 2013.
6.
Edy Winarno dan Ali Zaki, Belajar Pemrograman Populer 3 in 1 : Java, VB , 2013.
7.
Mahir Basis Data dengan MySQL karangan Sularso Budilaksono Penerbit Mitra Wacana Media 2009.
8.
Java in Small Things, 2002. James White dan David Hemphill. Manning Publications Co.
9.
Nazruddin Safaat H, Pemrograman Aplikasi Mobile Smartphone dan Tablet PC berbasis Android, Informatika, Bandung, 2011.
10.
Yuniar Supardi , Semua Bisa Menjadi Programmer Java Basic Programming, 2010.
11.
Andi Sunyoto, Adobe Flash + XML = Rich Multimedia Application, 2010
12.
Agus Wahadyo & Sudarma, Tip & Tril Android untuk pengguna Tablet dan Handphone, 2010.
13.
Adi Nugroho, “Pemrograman Java Menggunakan IDE Eclipse”, Andi Publisher. Jakarta, 2008.
14.
Adi Nugroho, Rekayasa Perangkat Lunak Berorientasi Objek dengan metode USDP, 2010.
94
LAMPIRAN Folder src : com.daryanto.activity DashBoardActivit.java package com.daryanto.activity; import import import import import import import import import import import import import
android.app.Activity; android.app.AlertDialog; android.app.Dialog; android.content.DialogInterface; android.content.Intent; android.os.Bundle; android.view.KeyEvent; android.view.View; android.view.ViewStub; android.widget.Button; android.widget.TextView; android.widget.Toast; android.app.AlertDialog.Builder;
public abstract class DashBoardActivity extends Activity { // Constant for identifying the dialog private static final int DIALOG_ALERT = 10; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } public void setHeader(String title, boolean btnHomeVisible, boolean btnFeedbackVisible) { ViewStub stub = (ViewStub) findViewById(R.id.vsHeader); View inflated = stub.inflate(); TextView txtTitle = (TextView) inflated.findViewById(R.id.txtHeading); txtTitle.setText(title); Button btnHome = (Button) inflated.findViewById(R.id.btnHome); if(!btnHomeVisible) btnHome.setVisibility(View.INVISIBLE); Button btnFeedback = (Button) inflated.findViewById(R.id.btnFeedback); if(!btnFeedbackVisible) btnFeedback.setVisibility(View.INVISIBLE); }
/** * Home button click handler * @param v */ public void btnHomeClick(View v) { Intent intent = null; intent = new Intent(getApplicationContext(), MenuActivity.class); intent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); overridePendingTransition( R.anim.slide_in_left, R.anim.slide_out_left ); startActivity(intent); } /** * Logout button click handler * @param v */ public void btnFeedbackClick(View v) { showDialog(DIALOG_ALERT); } @Override protected Dialog onCreateDialog(int id) { switch (id) { case DIALOG_ALERT: // Create out AlterDialog Builder builder = new AlertDialog.Builder(this); builder.setMessage("Apakah Anda Benar-Benar ingin keluar?"); builder.setCancelable(true); builder.setPositiveButton("Ya", new OkOnClickListener()); builder.setNegativeButton("Tidak", new CancelOnClickListener()); AlertDialog dialog = builder.create(); dialog.show(); } return super.onCreateDialog(id); } private final class CancelOnClickListener implements DialogInterface.OnClickListener { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } } private final class OkOnClickListener implements DialogInterface.OnClickListener { @Override public void onClick(DialogInterface dialog, int which) { Intent intent = new Intent(getApplicationContext(), MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra("EXIT", true); overridePendingTransition( R.anim.slide_in_left, R.anim.slide_out_left ); startActivity(intent); finish();
} } /** * Sekilas button click handler * @param v */ public void btnSekilasClick(View v) { Intent intent = null; intent = new Intent(getApplicationContext(), SekilasActivity.class); intent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); overridePendingTransition( R.anim.slide_in_left, R.anim.slide_out_left ); startActivity(intent); } /** * Wisata Museum button click handler * @param v */ public void btnWisataMuseumClick(View v) { Intent intent = null; intent = new Intent(getApplicationContext(), WisataMuseumActivity.class); intent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); overridePendingTransition( R.anim.slide_in_left, R.anim.slide_out_left ); startActivity(intent); } /** * Tujuan button click handler * @param v */ public void btnTujuanClick(View v) { Intent intent = null; intent = new Intent(getApplicationContext(), TujuanActivity.class); intent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); overridePendingTransition( R.anim.slide_in_left, R.anim.slide_out_left ); startActivity(intent); } /** * Penulis button click handler * @param v */ public void btnPenulisClick(View v) { Intent intent = null; intent = new Intent(getApplicationContext(), PenulisActivity.class); intent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); overridePendingTransition( R.anim.slide_in_left, R.anim.slide_out_left ); startActivity(intent); } /** * Petunjuk button click handler * @param v
*/ public void btnPetunjukClick(View v) { Intent intent = null; intent = new Intent(getApplicationContext(), PetunjukActivity.class); intent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); overridePendingTransition( R.anim.slide_in_left, R.anim.slide_out_left ); startActivity(intent); } // TODO Wrapper method to encapsulate getApplicationContext() that is needed for displaying Toast message protected void showToast(String text) { Toast.makeText(getApplication(), text, Toast.LENGTH_SHORT).show(); } @Override public boolean onKeyUp( int keyCode, KeyEvent event ){ if( keyCode == KeyEvent.KEYCODE_BACK ) { finish(); overridePendingTransition( R.anim.slide_in_right, R.anim.slide_out_right ); return true; } return super.onKeyUp( keyCode, event ); } }
DetailActivity.java package com.daryanto.activity; import import import import import
android.os.Bundle; android.view.View; android.view.Window; android.widget.ImageView; android.widget.TextView;
public class DetailActivity extends DashBoardActivity { String id = WisataMuseumActivity.id; String name = WisataMuseumActivity.name; String info = WisataMuseumActivity.informasi; String lok = WisataMuseumActivity.lokasi; String img1 = WisataMuseumActivity.image01; String img2 = WisataMuseumActivity.image02; String img3 = WisataMuseumActivity.image03; String img4 = WisataMuseumActivity.image04; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.detail); setHeader(name, true, true);
TextView txtInformasi = (TextView) findViewById(R.id.txtInformasi); TextView txtLokasi = (TextView) findViewById(R.id.txtLokasi); txtInformasi.setText("Informasi: \n"+info); txtLokasi.setText("Lokasi: \n"+lok); ImageView ImageView ImageView ImageView
image01 image02 image03 image04
= = = =
(ImageView) (ImageView) (ImageView) (ImageView)
findViewById(R.id.image01); findViewById(R.id.image02); findViewById(R.id.image03); findViewById(R.id.image04);
if (img1.equals("polri01.png")) { image01.setVisibility(View.VISIBLE); image01.setBackgroundResource(R.drawable.polri01); } else if (img1.equals("satria01.png")) { image01.setVisibility(View.VISIBLE); image01.setBackgroundResource(R.drawable.satria01); } else if (img1.equals("reksa01.png")) { image01.setVisibility(View.VISIBLE); image01.setBackgroundResource(R.drawable.reksa01); } if (img2.equals("polri02.png")) { image02.setVisibility(View.VISIBLE); image02.setBackgroundResource(R.drawable.polri02); } else if (img2.equals("satria02.png")) { image02.setVisibility(View.VISIBLE); image02.setBackgroundResource(R.drawable.satria02); } else if (img2.equals("reksa02.png")) { image02.setVisibility(View.VISIBLE); image02.setBackgroundResource(R.drawable.reksa02); } if (img3.equals("polri03.png")) { image03.setVisibility(View.VISIBLE); image03.setBackgroundResource(R.drawable.polri03); } else if (img3.equals("satria03.png")) { image03.setVisibility(View.VISIBLE); image03.setBackgroundResource(R.drawable.satria03); } else if (img3.equals("reksa03.png")) { image03.setVisibility(View.VISIBLE); image03.setBackgroundResource(R.drawable.reksa03); } if (img4.equals("polri04.png")) { image04.setVisibility(View.VISIBLE); image04.setBackgroundResource(R.drawable.polri04); } else if (img4.equals("reksa04.png")) { image04.setVisibility(View.VISIBLE); image04.setBackgroundResource(R.drawable.reksa04); } } }
MainActivity.java
package com.daryanto.activity; import android.os.Bundle; import android.view.Window; public class MainActivity extends DashBoardActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); setHeader(getString(R.string.HomeActivityTitle), true, true); if (getIntent().getBooleanExtra("EXIT", false)) { finish(); } } }
MenuActivity.java package com.daryanto.activity; import android.os.Bundle; import android.view.Window; public class MenuActivity extends DashBoardActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.menu); setHeader(getString(R.string.MenuActivityTitle), false, true); } }
PenulisActivity.java package com.daryanto.activity; import android.os.Bundle; import android.view.Window; import android.widget.TextView; public class PenulisActivity extends DashBoardActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.penulis); setHeader(getString(R.string.PenulisActivityTitle), true, true); TextView txtPenulis = (TextView) findViewById(R.id.txtPenulis); txtPenulis.setText("Nama : Daryanto \n\n" + "Jurusan : Teknik Informatika \n\n" + "Fakultas : Ilmu Komputer \n\n" + "Universitas Mercubuana \n\n" + "Alamat : Jl. Masjid Darul Fallah Rt.012 Rw.03 No. 8 " + "Gg. Perjuangan I Petukangan Utara " + "Kecamatan Pesanggrahan " + "Jakarta Selatan"); } }
PetunjukActivity.java package com.daryanto.activity; import android.os.Bundle; import android.view.Window; import android.widget.TextView; public class PetunjukActivity extends DashBoardActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.petunjuk); setHeader(getString(R.string.PetunjukActivityTitle), true, true); TextView txtPetunjuk = (TextView) findViewById(R.id.txtPetunjuk); txtPetunjuk.setText("Buka Aplikasi \n\n" +
"Kemudian akan tampil layar utama, pada layar utama terdapat duah buah tombol yaitu Menu " + "dan Exit \n\n" + "Jika tombol Menu dipilih maka akan menuju Menu Utama, sedangkan jika memilih Exit maka " + "akan keluar dari Aplikasi"); } }
package com.daryanto.activity; import android.os.Bundle; import android.view.Window; import android.widget.TextView; public class SekilasActivity extends DashBoardActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.sekilas); setHeader(getString(R.string.SekilasActivityTitle), true, true); TextView txtSekilas = (TextView) findViewById(R.id.txtSekilas); txtSekilas.setText("Museum, berdasarkan definisi yang diberikan International Council of Museums " + "disingkat ICOM, adalah institusi permanen, nirlaba, melayani kebutuhan publik, dengan sifat " + "terbuka, dengan cara melakukan usaha pengoleksian, mengkonservasi, meriset, mengomunikasikan, " + "dan memamerkan benda nyata kepada masyarakat untuk kebutuhan studi, pendidikan, dan kesenangan. " + "Karena itu ia bisa menjadi bahan studi oleh kalangan akademis, dokumentasi kekhasan masyarakat " + "tertentu, ataupun dokumentasi dan pemikiran imajinatif pada masa depan dan sejak tahun 1977 " + "tiap tanggal 18 Mei diperingati sebagai hari Hari Museum Internasional. \n\n" + "Secara etimologis, museum berasal dari kata Yunani, atau mouseion, yang sebenarnya merujuk " + "kepada nama kuil untuk sembilan Dewi Muses, anak-anak Dewa Zeus yang melambangkan ilmu " + "dan kesenian. Bangunan lain yang diketahui berhubungan dengan sejarah museum adalah bagian " + "kompleks perpustakaan yang dibangun khusus untuk seni dan sains, terutama filsafat dan riset di " + "Alexandria oleh Ptolemy I Soter pada tahun 280 SM. \n\n " + "Museum berkembang seiring berkembangnya ilmu pengetahuan dan manusia semakin " + "membutuhkan bukti-bukti otentik mengenai catatan sejarah kebudayaan \n\n" +
"Di Indonesia, museum yang pertama kali dibangun adalah Museum Radya Pustaka. Selain itu dikenal " + "pula Museum Gajah yang dikenal sebagai yang terlengkap koleksinya di Indonesia, Museum Wayang, " + "Persada Soekarno, Museum Tekstil serta Galeri Nasional Indonesia yang khusus menyajikan koleksi " + "seni rupa modern Indonesia. \n\n" + "Pada awalnya, museum bermula sebagai tempat untuk menyimpan koleksi milik individu, keluarga atau " + "institusi kaya. Benda-benda yang disimpan biasanya merupakan karya seni dan benda-benda yang " + "langka, atau kumpulan benda alam dan artefak arkeologi. \n\n" + "Pada awalnya, museum bermula sebagai tempat untuk menyimpan koleksi milik individu, " + "keluarga atau institusi kaya. Benda-benda yang disimpan biasanya merupakan karya seni dan " + "benda-benda yang langka, atau kumpulan benda alam dan artefak arkeologi. [id.wikipedia.org/wiki/Museum]"); } }
TujuanActivity.java package com.daryanto.activity; import android.os.Bundle; import android.view.Window; import android.widget.TextView; public class TujuanActivity extends DashBoardActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.tujuan); setHeader(getString(R.string.TujuanActivityTitle), true, true); TextView txtTujuan = (TextView) findViewById(R.id.txtTujuan); txtTujuan.setText("Tujuan Penulisan Aplikasi Wisata Museum, diantaranya adalah sebagai berikut : \n\n" + "1. Sebagai Media pengenalan beberapa Museum yang berada di Jakarta , khususnya Jakarta Selatan. \n\n" + "2. Memberikan informasi mengenai museum yang ada di Jakarta khususnya wilayah Jakarta Selatan. \n\n" + "3. Meminimalkan penggunaan alat penyedia informasi lain yang berukuran lebih besar. \n\n" + "Sedangkan Manfaat di dirikan Museum di Jakarta antara lain : \n\n" + "1. museum " +
Untuk memberikan gambaran nyata tentang informasi wisata
"khususnya yang berada di daerah Jakarta Selatan. \n\n" + "2. Untuk memudahkan dan membantu para pelaku/user atau turis dalam " + "menentukan museum yang mana yang akan di kunjungi. \n\n" + "3. Memanfaatkan fungsi ponsel lebih dari sekedar alat komunikasi (sms, telepon, email, chatting dan sebagainya) " + "ataupun entertainment (kamera, pemutar musik dan lain-lain , " + "tetapi juga sebagai sarana untuk mempromosikan kota Jakarta khususnya Jakarta Selatan dari segi pariwisata."); } }
WisataMuseumActivity.java package com.daryanto.activity; import java.util.ArrayList; import com.daryanto.adapter.MuseumAdapter; import com.daryanto.database.MuseumDB; import com.daryanto.model.Museum; import import import import import import import import import import import import import
android.content.Intent; android.database.sqlite.SQLiteDatabase; android.os.Bundle; android.text.Editable; android.text.TextWatcher; android.view.View; android.view.Window; android.widget.AdapterView; android.widget.EditText; android.widget.ListView; android.widget.TextView; android.widget.Toast; android.widget.AdapterView.OnItemClickListener;
public class WisataMuseumActivity extends DashBoardActivity { private ListView lsvMuseumView = null; private MuseumAdapter adapter = null; private MuseumDB MuseumDB = null; private SQLiteDatabase db = null; private ArrayList<Museum> listMuseum = null; private EditText txtSearchText = null; private TextView txtNoDataMuseum; public static String id = ""; public static String name = ""; public static String informasi = ""; public static String lokasi = ""; public static String image01 = ""; public static String image02 = "";
= ""; public static String image03 public static String image04 = ""; private static void getId(String id) { WisataMuseumActivity.id = id; } private static void getName(String name) { WisataMuseumActivity.name = name; } private static void getInformasi(String informasi) { WisataMuseumActivity.informasi = informasi; } private static void getLokasi(String lokasi) { WisataMuseumActivity.lokasi = lokasi; } private static void getImage01(String image01) { WisataMuseumActivity.image01 = image01; } private static void getImage02(String image02) { WisataMuseumActivity.image02 = image02; } private static void getImage03(String image03) { WisataMuseumActivity.image03 = image03; } private static void getImage04(String image04) { WisataMuseumActivity.image04 = image04; } /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.wisata_museum); setHeader(getString(R.string.WisataMuseumActivityTitle), true, true); txtNoDataMuseum = (TextView) findViewById(R.id.txtNoDataMuseum); lsvMuseumView = (ListView) findViewById(R.id.lsvListMuseum); lsvMuseumView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view,int position, long id) { String _id = ((TextView) view.findViewById(R.id.txtId)).getText().toString(); String _name = ((TextView) view.findViewById(R.id.txtName)).getText().toString(); String _info = ((TextView) view.findViewById(R.id.txtInformasi)).getText().toString(); String _lok = ((TextView) view.findViewById(R.id.txtLokasi)).getText().toString(); String _img1 = ((TextView) view.findViewById(R.id.txtImg1)).getText().toString(); String _img2 = ((TextView) view.findViewById(R.id.txtImg2)).getText().toString(); String _img3 = ((TextView) view.findViewById(R.id.txtImg3)).getText().toString(); String _img4 = ((TextView) view.findViewById(R.id.txtImg4)).getText().toString(); getId(_id); getName(_name); getInformasi(_info); getLokasi(_lok); getImage01(_img1); getImage02(_img2); getImage03(_img3); getImage04(_img4);
Intent intent = new Intent(getApplicationContext(), DetailActivity.class); overridePendingTransition( R.anim.slide_in_left, R.anim.slide_out_left ); startActivity(intent); } }); refreshListAdapter(); registerForContextMenu(lsvMuseumView); txtSearchText = (EditText) findViewById(R.id.searchText); txtSearchText.addTextChangedListener( new TextWatcher() { @Override public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { //we don't need this } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { //we don't need this } @Override public void afterTextChanged(Editable text) { refreshListAdapter( text.toString() ); } }); } // TODO Get data from database SQLite private void getListMuseum() { MuseumDB = new MuseumDB(getApplicationContext()); adapter = new MuseumAdapter(this); db = MuseumDB.getWritableDatabase(); MuseumDB.createTable(db, getBaseContext()); MuseumDB.generateData(db); } // TODO We need to refresh adapter for every data update. Without it, ListView will never be refreshed protected void refreshListAdapter() { try { getListMuseum(); } catch(Exception e) { Toast.makeText(WisataMuseumActivity.this, e.toString(), Toast.LENGTH_SHORT).show(); } finally { listMuseum = MuseumDB.toArray(); adapter.updatelistMuseum(listMuseum); lsvMuseumView.setAdapter(adapter); if (adapter.getCount() == 0) { txtNoDataMuseum.setVisibility(View.VISIBLE);
} else { txtNoDataMuseum.setVisibility(View.GONE); } } } // TODO We need to refresh adapter for every data update. Without it, ListView will never be refreshed protected void refreshListAdapter(String filterText) { listMuseum = MuseumDB.toArray( filterText ); adapter.updatelistMuseum(listMuseum); lsvMuseumView.setAdapter(adapter); if (adapter.getCount() == 0) { txtNoDataMuseum.setVisibility(View.VISIBLE); } else { txtNoDataMuseum.setVisibility(View.GONE); } } @Override protected void onDestroy() { super.onDestroy(); if ((MuseumDB != null)) { MuseumDB.close(); } if (db != null) { db.close(); } } }
com.daryanto.adapter MuseumAdapter.java /** * */ /** * @author acer * */ package com.daryanto.adapter; import import import import import import import
java.util.ArrayList; com.daryanto.activity.R; com.daryanto.model.Museum; android.app.Activity; android.content.Context; android.view.LayoutInflater; android.view.View;
import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; public class MuseumAdapter extends BaseAdapter { private ArrayList<Museum> listMuseum = null; private static LayoutInflater inflater = null; public int count = 10; public int totAl; public MuseumAdapter(Activity activity) { inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } public void updatelistMuseum(ArrayList<Museum> newListBook) { this.listMuseum = newListBook; } @Override public int getCount() { totAl = this.listMuseum.size(); if (this.listMuseum.size() < 10) { return this.listMuseum.size(); } else { return count; } } @Override public Museum getItem(int position) { return this.listMuseum.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View view, ViewGroup viewGroup) { View vi = view; if (vi == null) { vi = inflater.inflate(R.layout.list_museum, null); } Museum psn = this.listMuseum.get(position); TextView TextView TextView TextView TextView
txtImage4 txtImage3 txtImage2 txtImage1 txtInformasi
= = = = =
(TextView) (TextView) (TextView) (TextView) (TextView)
vi.findViewById(R.id.txtImg4); vi.findViewById(R.id.txtImg3); vi.findViewById(R.id.txtImg2); vi.findViewById(R.id.txtImg1); vi.findViewById(R.id.txtInformasi);
TextView txtLokasi TextView txtName TextView txtId
= (TextView) vi.findViewById(R.id.txtLokasi); = (TextView) vi.findViewById(R.id.txtName); = (TextView) vi.findViewById(R.id.txtId);
txtImage4.setText(psn.getImage4()); txtImage3.setText(psn.getImage3()); txtImage2.setText(psn.getImage2()); txtImage1.setText(psn.getImage1()); txtInformasi.setText(psn.getInformasi()); txtLokasi.setText(psn.getLokasi()); txtName.setText(psn.getJudul()); txtId.setText(psn.getId()); return vi; } }
Com.daryanto.database DBUtil.java /** * */ /** * @author acer * */ package com.daryanto.database; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; public class DBUtil { public static void createTable(SQLiteDatabase database, String tableName, String sqlCreate) { try { // begin the transaction database.beginTransaction(); database.execSQL(sqlCreate); // this makes sure transaction is committed database.setTransactionSuccessful(); } finally { database.endTransaction(); } } public static boolean isTableEmpty(SQLiteDatabase db, String table) { Cursor cursor = null; try {
cursor = db.rawQuery("SELECT count(*) AS cnt FROM " + table, null); int countIndex = cursor.getColumnIndex("cnt"); cursor.moveToFirst(); int rowCount = cursor.getInt(countIndex); if (rowCount > 0) { return false; } return true; } finally { if (cursor != null) { cursor.close(); } } } }
MuseumDB.java package com.daryanto.database; import import import import import import import
java.util.ArrayList; android.content.Context; android.database.Cursor; android.database.sqlite.SQLiteDatabase; android.database.sqlite.SQLiteOpenHelper; com.daryanto.model.Museum; android.content.ContentValues;
public class MuseumDB extends SQLiteOpenHelper { private Context context = null; private SQLiteDatabase database = null; private static final String DATABASE_NAME = "MuseumDB"; private static final String DATABASE_TABLE = "tbl_m_museum"; // TODO The name and column index of each column in your database. public static final String KEY_ID = "Id"; public static final String KEY_JUDUL = "Judul"; public static final String KEY_LOKASI = "Lokasi"; public static final String KEY_INFORMASI = "Informasi"; public static final String KEY_IMAGE1 = "Image1"; public static final String KEY_IMAGE2 = "Image2"; public static final String KEY_IMAGE3 = "Image3"; public static final String KEY_IMAGE4 = "Image4"; // TODO Constructor with parameter context public MuseumDB(Context context) { super(context, DATABASE_NAME, null, 1); }
// TODO Drop Table 'tbl_m_dongeng' public void dropTable(SQLiteDatabase db) { db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE); } // TODO Create Table 'tbl_m_dongeng' public void createTable(SQLiteDatabase db, Context context) { this.context = context; database = this.context.openOrCreateDatabase(DATABASE_NAME, SQLiteDatabase.CREATE_IF_NECESSARY, null); String sqlCreate = "CREATE TABLE IF NOT EXISTS " + DATABASE_TABLE + " (" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_JUDUL + " varchar(50)," + KEY_LOKASI + " text," + KEY_INFORMASI + " text," + KEY_IMAGE1 + " text," + KEY_IMAGE2 + " text," + KEY_IMAGE3 + " text," + KEY_IMAGE4 + " text" + ");"; DBUtil.createTable(database, DATABASE_TABLE, sqlCreate); } // TODO Generate data to database SQLite public void generateData(SQLiteDatabase db){ ContentValues cv = new ContentValues(); cv.put(KEY_ID, 1); cv.put(KEY_JUDUL, "Museum Polri"); cv.put(KEY_LOKASI, "Museum Polri \n" + "Jl. Trunojoyo No. 3 Kebayora Baru \n" + "Jakarta Selatan 12110 \n" + "Telp. 021-721 0654 \n" + "http://www.museumpolri.org \n" + "Waktu Kunjungan : Selasa – Minggu \n" + "Jam : 09.00 – 16.00 \n" + "Biaya Kunjungan Gratis "); cv.put(KEY_INFORMASI, "Kepolisian Negara Republik Indonesia (Polri) terbentuk dari perjalanan sejarah " + "yang panjang dari masa penjajahan kolonial dan masa perjuangan kemerdekaan Indonesia. " + "Di awal kelahirannya, Polri tidak saja harus menjalankan tugas pemolisian sebagai pelindung " + "dan penjaga ketertiban masyarakat tetapi juga mendapat tugas sebagai kekuatan perang dalam " + "perjuangan bersenjata mempertahankan kemerdekaan Indonesia. \n\n" + "Dalam perjalanan sejarah Indonesia, Polri turut berperan menumpas berbagai pemberontakan " + "kelompok separatis dan menjaga keutuhan Negara Kesatuan Republik Indonesia. Di masa " + "kepemimpinan Presiden Soekarno, Polri terlibat dalam operasi tempur seperti operasi Trikora " + "dan Dwikora. Di masa kepemimpinan Presiden Soeharto (1967 – 1998), Polri menjadi bagian dari " +
"Angkatan Bersenjata Republik Indonesia (ABRI) dan terlibat dalam berbagai operasi militer " + "seperti di Timor Leste, Nanggroe Aceh Darussalam, dan Papua. \n\n" + "Sejak 1998, pergantian kekuasaan dan perubahan politik Indonesia memberikan dampak pada " + "organisasi Polri. Sebagai institusi kepolisian, Polri berupaya mewujudkan diri sebagai lembaga " + "yang profesional dalam menjalankan fungsi perlindungan dan pelayanan masyarakat. \n\n" + "Museum Polri, didirikan atas semangat untuk mengenang sejarah dan mendalami tentang " + "kepolisian Indonesia. Awalnya, gagasan pembentukan museum ini muncul dari Kapolri yang " + "saat itu memimpin, Jenderal Polisi Bambang Hendarso Danuri. Dulu, dalam berbagai lawatan ke " + "luar negeri, Pak Bambang selaku Kapolri saat itu, selalu diajak oleh kepolisian setempat ke " + "museum kepolisian yang ada di sana. Kemudian muncullah ide untuk membuat museum ini, " + "mengingat pentingnya sejarah kepolisian Indonesia serta panjangnya sejarah yang menyertainya. " + "Tujuan pendirian museum ini sendiri, tidak lain adalah untuk melestarikan nilai-nilai kesejarahan " + "Kepolisian Negara Republik Indonesia dan pewarisannya kepada generasi mendatang. \n\n " + "Polri sangat berperan dalam menciptakan keamanan, baik di masa sebelum kemerdekaan " + "hingga sekarang. Melihat sejarah terbentuknya, Polri memiliki perjalanan yang begitu panjang " + "dari masa penjajahan kolonial dan masa perjuangan kemerdekaan Indonesia. Di awal " + "kelahirannya, Polri tidak saja harus menjalankan tugas pemolisian sebagai pelindung dan penjaga " + "ketertiban masyarakat tetapi juga mendapat tugas sebagai kekuatan perang dalam perjuangan " + "bersenjata mempertahankan kemerdekaan Indonesia. \n\n" + "Polisi Indonesia, bisa disebut juga sebagai polisi pejuang sejak dicetuskannya " + "Proklamasi Kemerdekaan RI. Deklarasi Polisi Istimewa di Surabaya tak lama setelah " + "proklamasi kemerdekaan dilanjutkan dengan konsolidasi organisasi kepolisian yang bersifat " + "nasional pada 1 Juli 1946 oleh Kepala Kepolisian Negara Jenderal Polisi R.S. Soekanto, " + "menjadi dasar keunikan sejarah Kepolisian Negara Republik Indonesia dibanding institusi " + "kepolisian negara-negara lain.\n\n " + "Bagaimanapun, tema kesejarahan tersebut disusun dalam sebuah sudut pandang yang " + "menyajikan tema besar tentang upaya POLRI dalam menyelenggarakan keamanan dan " + "ketertiban serta dinamika internal-eksternal yang mempengaruhi sosok lembaga kepolisian " +
"RI. Melalui Museum Polri, diharapkan muncul gambaran tentang watak kelembagaan " + "POLRI yang semakin modern, profesional, dan mandiri sesuai dengan tuntutan perkembangan zaman. \n\n " + "Museum Polri dirancang untuk menjadi bagian integral kehidupan sehari-hari masyarakat, berbaur dengan kesibukan perkantoran, perdagangan, dan hal-hal yang terjadi " + "dalam kehidupan manusia di sekitar lingkungan museum. Melalui Museum Polri, setiap anggota masyarakat dapat belajar tentang sejarah masa lalu mereka, dan pada saat yang " + "sama dapat menikmati karya seni yang ditampilkan di Museum Polri, menghadiri acara-acara pameran, atau bahkan sekadar menjadi tempat singgah di waktu luang mereka dan " + "berdiskusi tentang tema-tema aktual dalam masyarakat. Dengan demikian, Museum Polri akan menjadi salah satu pusat kebudayaan yang memperkaya kehidupan masyarakat. \n\n " + "Di museum ini, ditampilkan beragam koleksi menarik, seperti kendaraan patrol yang pernah digunakan para polisi dari masa ke masa, koleksi senjata, ribuan foto dan berbagai " + "benda bersejarah, replika pesawat dan kapal, dan sebagainya. Selain itu, museum ini juga sudah mengusung konsep modern, dengan dilengkapi beberapa media interaktif, salah " + "satunya ruang audio visual yang berada di lantai tiga bangunan museum. Selain itu, di lantai dua bangunan museum terdapat kids corner, di mana lokasi ini " + "menjadi tempat favorit bagi pengunjung anak-anak "); cv.put(KEY_IMAGE1, "polri01.png"); cv.put(KEY_IMAGE2, "polri02.png"); cv.put(KEY_IMAGE3, "polri03.png"); cv.put(KEY_IMAGE4, "polri04.png"); db.insert(DATABASE_TABLE, null, cv); cv.put(KEY_ID, 2); cv.put(KEY_JUDUL, "Museum Satria Mandala"); cv.put(KEY_LOKASI, "Museum Satria Mandala \n" + "Jl. Jend, Gatot Subroto Kav.14 \n" + "Kuningan Timur, Setiabudi \n" + "Jakarta Selatan \n" + "Telp. 021-5227946 / 021-5251795 \n" + "Fax : 021-5253352 \n" + "http://www.sejarahtni.mil.id \n" + "Waktu Kunjungan : Selasa – Minggu \n" + "Jam : 09.00 – 14.30 \n" + "Biaya tiket masuk : \n" + "Dewasa/umum Rp. 2.500 \n" + "Mahasiswa/pelajar/anak-anak Rp. 1.500"); cv.put(KEY_INFORMASI, "Sejarah perjuangan bangsa Indonesia dalam rangka merebut dan mempertahankan Negara " + "Kesatuan Republik Indonesia (NKRI) memakan waktu yang cukup panjang dengan pengorbanan " + "jiwa dan raga maupun harta benda yang tak ternilai harganya. Perjuangan bangsa Indonesia " + "dengan TNI sebagai intinya, berjuang secara bahu membahu dalam suasana kebersamaan. Dalam " +
"perjalanan sejarah dapat disarikan bahwa sejarah perjuangan nasional termasuk didalam sejarah " + "TNI mempunyai peran penting dalam meningkatkan jiwa dan semangat serta memperkuat jati " + "diri bangsa dalam mencapai tujuan nasional. Karena dengan belajar sejarah masyarakat bangsa " + "diharapkan mampu bersikap serta bertindak arif dan bijaksana dalam menghadapi masa depan. " + "Oleh karenanya minat prajurit dan masyarakat untuk memahami dan menempatkan kehidupan " + "berbangsa dan bernegara senantiasa harus ditumbuhkembangkan. \n\n" + "Dalam upaya melestarikan nilai-nilai juang 1945, pimpinan TNI memandang perlu " + "dibangun sebuah museum sebagai tempat yang dapat memberikan gambaran sejarah perjuangan TNI " + "secara visual kepada masyarakat. Dengan dasar pemikiran tersebut Pimpinan TNI memberikan tugas " + "kepada Kepala Pusat Sejarah TNI saat itu, Brigjen TNI Nugroho Notosusanto untuk mempersiapkan " + "rencana pembangunan Museum TNI. \n\n" + "Pembangunan Museum TNI dimulai pada 15 November 1971 dengan merenovasi dan memugar Wisma Yaso " + "yang merupakan bekas rumah Ibu Dewi Soekarno seluas 56.670 m2 namun baru diresmikan pada 5 " + "Oktober 1972 oleh Presiden Soeharto. Koleksi utama Museum ini berupa diorama, senjata, foto, " + "patung pahlawan TNI, Panji-panji TNI, pesawat terbang TNI, kendaraan tempur TNI, meriam, rudal, " + "miniatur alat tempur TNI, koleksi panglima besar Jenderal Sudirman, koleksi Letjen Oerip " + "Soemohardjo, koleks Jenderal A.H Nasution, koleksi Jenderal H.M Soeharto dll. \n\n" + "Mengapa Museum tersebut bernama Satriamandala? Mari kita kaji bersama. Satriamandala berasal " + "dari bahasa Sansekerta yang artinya lingkungan keramat para ksatria. Maka dapat disimpulkan " + "disini bahwa Museum Satriamandala berarti Museum dalam lingkunga n keramat para ksatria. " + "Gagasan untuk mendirikan museum ABRI dicetuskan oleh Kepala Pusat Sejarah ABRI saat itu, " + "Drs. Nugroho Notosusanto \n\n" + "Melalui museum-museum, monumen, dan perpustakaan, masyarakat aan memahami perjuangan " + "bangsa Indonesia khususnya sejarah perjuangan TNI dan sekaligus menumbuhkan motivasi " + "untuk meneladani semangat juang para pahlawan bangsa. \n\n" + "Di museum ini tersimpan berbagai benda sejarah yang berkaitan dengan perjuangan Tentara " + "Nasional Indonesia (TNI) dari tahun 1945 sampai sekarang, seperti aneka senjata berat maupun " + "ringan, atribut ketentaraan, panji-panji dan lambanglambang di lingkungan TNI, kendaraan " +
"perang seperti tank dan panser, berbagai jenis pesawat terbang peninggalan masa lalu. Satu " + "diantaranya adalah pesawat Cureng yang pernah diterbangkan oleh Agustinus Adisutjipto serta " + "tandu yang dipergunakan Panglima Besar Jenderal Sudriman saat bergerilya melawan penjajah. \n\n" + "Di dalam museum terdapat 74 diorama yang menggambarkan peranan TNI dalam membela dan " + "mempertahankan Negara Kesatuan Republik Indonesia (NKRI). Satu diantaranya adalah diorama " + "yang menggambarkan tentang Pertempuran Surabaya pada tanggal 10 November 1945. Masih " + "dalam kompleks Museum Satriamandala terdapat Gedung Waspada Purbawisesa menyajikan " + "diorama yang menggambarkan perjuangan TNI bersama-sama rakyat menumpas gerombolan " + "separatis DI/TII di Jawa Barat, Jawa Tengah, Aceh, Kalimantan Selatan, dan Sulawesi pada tahun 60-an.\n\n " + "Selain diorama, dipamerkan pula dokumen, peta operasi, dan benda-benda relik " + "lainnya. Fasilitas lain di museum ini adalah Taman Bacaan Anak, kios cenderamata, kantin," + "serta gedung serbaguna yang berkapasitas 600 kursi untuk berbagai kegiatan dan pertemuan."); cv.put(KEY_IMAGE1, "satria01.png"); cv.put(KEY_IMAGE2, "satria02.png"); cv.put(KEY_IMAGE3, "satria03.png"); cv.put(KEY_IMAGE4, "satria04.png"); db.insert(DATABASE_TABLE, null, cv); cv.put(KEY_ID, 3); cv.put(KEY_JUDUL, "Museum Reksa Artha"); cv.put(KEY_LOKASI, "Museum Reksa Artha \n" + "Jl. Lebak Bulus I, Cilandak \n" + "Jakarta Selatan 12110 \n" + "Telp. 021-769208, 7690816 \n" + "Waktu Kunjungan : Senin – Kamis \n" + "Jam : 09.00 – 15.00 \n" + "Harga Tiket Gratis"); cv.put(KEY_INFORMASI, "Museum ini memiliki koleksi barang-barang bersejarah yang berhubungan dengan " + "percetakan rupiah Indonesia. Beberapa koleksinya meliputi uang kertas rupiah lama sejak zaman " + "kemerdekaan sampai Orde Baru, mesin cetak uang abad ke20, alat pembuat koin dan foto-foto " + "lama tentang ORI (Oeang Republik Indonesia) yang dulu dipakai untuk mempertahankan kedaulatan " + "ekonomi saat baru merdeka. \n\n" + "Gedung museum ini aslinya merupakan gudang tinta Perum Peruri. \n\n" + "Museum Reksa Artha adalah salah satu museum di Indonesia yang jarang dikunjungi. Museum ini " + "sering tutup sehingga pengunjung harus membuat perjanjian sebelumnya. \n\n" +
"Mencari museum yang diresmikan pada 30 Januari 1989 ini memang susah-susah gampang. Walaupun lokasinya " + "di pinggir jalan, keberadaanya nyaris tak dikenali. Gedungnya seperti pabrik atau gedung tua tempat " + "menyimpan barang-barang produksi. Bila pintu besi yang berukuran sangat besar dibuka, nampak deretan " + "besi-besi tua berjajar dua baris. Besi-besi itu tumpuan harapan, sarana yang bernilai historis tinggi " + "yang digunakan sebagai dasar perjuangan masa lalu, masa kini, dan masa yang akan datang. Koleksi yang " + "ada di museum yang didirikan pada 15 Desember 1987 ini sebagian besar berupa alat-alat berat. Ada " + "mesin-mesin yang pada masanya berfungsi sebagai alat pencetak uang. Kini mesin-mesin tersebut tidak " + "dapat berfungsi lagi dan telah menjadi kenangan, namun tetap disimpan dan dirawat untuk kemudian " + "dipamerkan agar lebih bermakna. \n\n" + "Selain mesin pencetak uang, museum ini juga memamerkan mesin potong, alat repro buatan Inggris, " + "koleksi uang lama, timbangan uang logam, mesin giling plat uang logam, dan lukisan-lukisan " + "hasil imajinasi para pejuang yang menempel di dinding yang mengelilingi museum. Selanjutnya, " + "pengunjung bisa menyaksikan stempel uang serta hasil karya Peruri yang bukan berupa uang, " + "seperti buku tabungan, paspor, pita cukai, materai, sertifikat tanah, dan dokumen sekuriti " + "lainnya."); cv.put(KEY_IMAGE1, "reksa01.png"); cv.put(KEY_IMAGE2, "reksa02.png"); cv.put(KEY_IMAGE3, "reksa03.png"); cv.put(KEY_IMAGE4, "reksa04.png"); db.insert(DATABASE_TABLE, null, cv); } // TODO Array all list Museum public ArrayList<Museum> toArray() { return this.toArray(""); } // TODO Array list Museum filter by 'String filterText Judul' public ArrayList<Museum> toArray(String filterText) { Cursor cursor = null; ArrayList<Museum> allContact = null; String filterQuery = ""; if( !filterText.equalsIgnoreCase("") ) { filterQuery = " WHERE Judul = '" + filterText + "'"; } try { allContact = new ArrayList<Museum>();
cursor = database.rawQuery("SELECT * FROM " + DATABASE_TABLE + filterQuery, null); if (cursor.getCount() > 0) { int indexId = cursor.getColumnIndex("Id"); int indexJudul = cursor.getColumnIndex("Judul"); int indexLokasi = cursor.getColumnIndex("Lokasi"); int indexInformasi = cursor.getColumnIndex("Informasi"); int indexImage01 = cursor.getColumnIndex("Image1"); int indexImage02 = cursor.getColumnIndex("Image2"); int indexImage03 = cursor.getColumnIndex("Image3"); int indexImage04 = cursor.getColumnIndex("Image4"); cursor.moveToFirst(); do { String Image04 = cursor.getString(indexImage04); String Image03 = cursor.getString(indexImage03); String Image02 = cursor.getString(indexImage02); String Image01 = cursor.getString(indexImage01); String Informasi = cursor.getString(indexInformasi); String Lokasi = cursor.getString(indexLokasi); String Judul = cursor.getString(indexJudul); String Id = cursor.getString(indexId); Museum contact = new Museum(); contact.setImage4(Image04); contact.setImage3(Image03); contact.setImage2(Image02); contact.setImage1(Image01); contact.setInformasi(Informasi); contact.setLokasi(Lokasi); contact.setJudul(Judul); contact.setId(Id); allContact.add(contact); cursor.moveToNext(); } while (!cursor.isAfterLast()); } } finally { if (cursor != null) { cursor.close(); } } return allContact; } // TODO Get data from Museum with ID public Museum get(String ID) { Museum returnContact = null; Cursor cursor = null; try { cursor = database.rawQuery("SELECT * FROM " + DATABASE_TABLE + " WHERE Judul = '" + ID + "'", null); if (cursor.getCount() > 0) { int indexId = cursor.getColumnIndex("Id");
int indexJudul = cursor.getColumnIndex("Judul"); int indexLokasi = cursor.getColumnIndex("Lokasi"); int indexInformasi = cursor.getColumnIndex("Informasi"); int indexImage01 = cursor.getColumnIndex("Image1"); int indexImage02 = cursor.getColumnIndex("Image2"); int indexImage03 = cursor.getColumnIndex("Image3"); int indexImage04 = cursor.getColumnIndex("Image4"); cursor.moveToFirst(); do { String Image04 = cursor.getString(indexImage04); String Image03 = cursor.getString(indexImage03); String Image02 = cursor.getString(indexImage02); String Image01 = cursor.getString(indexImage01); String Informasi = cursor.getString(indexInformasi); String Lokasi = cursor.getString(indexLokasi); String Judul = cursor.getString(indexJudul); String Id = cursor.getString(indexId); returnContact = new Museum(); returnContact.setImage4(Image04); returnContact.setImage3(Image03); returnContact.setImage2(Image02); returnContact.setImage1(Image01); returnContact.setInformasi(Informasi); returnContact.setLokasi(Lokasi); returnContact.setJudul(Judul); returnContact.setId(Id); cursor.moveToNext(); } while (!cursor.isAfterLast()); } } finally { if (cursor != null) { cursor.close(); } } return returnContact; } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub } }
Com.daryanto.model Museum.java /** * */ /** * @author acer * */ package com.daryanto.model; public class Museum { private String Id private String Judul private String Lokasi private String Informasi private String Image1 private String Image2 private String Image3 private String Image4
= = = = = = = =
""; ""; ""; ""; ""; ""; ""; "";
// constructor tanpa parameter public Museum() { } // constructor dengan parameter public Museum(String judul, String lokasi, String informasi, String image1, String image2, String image3, String image4){ this.Judul = judul; this.Lokasi = lokasi; this.Informasi = lokasi; this.Image1 = image1; this.Image2 = image2; this.Image3 = image3; this.Image4 = image4; } /** * * @param Id */ public void setId(String Id) { this.Id = Id; } public String getId() { return Id; } /** * * @param Judul
*/ public void setJudul(String Judul) { this.Judul = Judul; } public String getJudul() { return Judul; } /** * * @param Lokasi */ public void setLokasi(String Lokasi) { this.Lokasi = Lokasi; } public String getLokasi() { return Lokasi; } /** * * @param Informasi */ public void setInformasi(String Informasi) { this.Informasi = Informasi; } public String getInformasi() { return Informasi; } /** * * @param Image1 */ public void setImage1(String Image1) { this.Image1 = Image1; } public String getImage1() { return Image1; } /** * * @param Image2 */ public void setImage2(String Image2) { this.Image2 = Image2; } public String getImage2() { return Image2;
} /** * * @param Image3 */ public void setImage3(String Image3) { this.Image3 = Image3; } public String getImage3() { return Image3; } /** * * @param Image4 */ public void setImage4(String Image4) { this.Image4 = Image4; } public String getImage4() { return Image4; } @Override public String toString() { return "Id: " + getId() + "; Judul: " + getJudul() + "; Lokasi: " + getLokasi() + "; Informasi: " + getInformasi() + "; Image1: " + getImage1() + "; Image2: " + getImage2() + "; Image3: " + getImage3() + "; Image4: " + getImage4(); } }
Gambar-gambar yang diperlukan. Folder drawable Btn_button.xml <selector xmlns:android="http://schemas.android.com/apk/res/android">
Btn_exit.xml <selector xmlns:android="http://schemas.android.com/apk/res/android">
Btn_menu.xml <selector xmlns:android="http://schemas.android.com/apk/res/android">
Image_bg.xml
- <shape android:shape="rectangle"> <stroke android:width="1dp" android:color="#dbdbdc" /> <solid android:color="#FFFFFF" />
Beberapa source code untuk layout Detail.xml
<ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical">
Header.xml
<Button android:id="@+id/btnHome" android:layout_width="58dip" android:layout_height="30dip" android:background="@drawable/btn_menu" android:onClick="btnHomeClick" android:text="Menu" android:paddingLeft="5dip" android:textColor="#FFF" android:typeface="serif" android:textSize="11sp" android:textStyle="bold" />
android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:layout_toLeftOf="@+id/panelIconRight" android:layout_toRightOf="@id/panelIconLeft" android:layout_marginTop="11dip" android:ellipsize="marquee" android:focusable="true" android:focusableInTouchMode="true" android:gravity="center" android:marqueeRepeatLimit="marquee_forever" android:singleLine="true" android:text="Beranda" android:typeface="serif" android:textColor="@android:color/white" /> <Button android:id="@+id/btnFeedback" android:layout_width="58dip" android:layout_height="30dip" android:background="@drawable/btn_exit" android:onClick="btnFeedbackClick" android:text="Exit" android:textColor="#FFF" android:typeface="serif" android:textSize="11sp" android:textStyle="bold" />
List_museum.xml
<Button android:id="@+id/btnHome" android:layout_width="58dip" android:layout_height="30dip" android:background="@drawable/btn_menu" android:onClick="btnHomeClick"
android:text="Menu" android:paddingLeft="5dip" android:textColor="#FFF" android:typeface="serif" android:textSize="11sp" android:textStyle="bold" /> <Button android:id="@+id/btnFeedback" android:layout_width="58dip" android:layout_height="30dip" android:background="@drawable/btn_exit" android:onClick="btnFeedbackClick" android:text="Exit" android:textColor="#FFF" android:typeface="serif" android:textSize="11sp" android:textStyle="bold" />
Main.xml
Menu.xml
<ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center"> <Button android:layout_width="200dip" android:layout_height="45dip" android:text="Sekilas" android:typeface="serif" android:textColor="#FFF"
android:background="@drawable/btn_button" android:onClick="btnSekilasClick" /> <Button android:layout_width="200dip" android:layout_height="45dip" android:text="Wisata Museum" android:typeface="serif" android:textColor="#FFF" android:background="@drawable/btn_button" android:layout_marginTop="30dip" android:onClick="btnWisataMuseumClick" /> <Button android:layout_width="200dip" android:layout_height="45dip" android:text="Tujuan" android:typeface="serif" android:textColor="#FFF" android:background="@drawable/btn_button" android:layout_marginTop="30dip" android:onClick="btnTujuanClick" /> <Button android:layout_width="200dip" android:layout_height="45dip" android:text="Penulis" android:typeface="serif" android:textColor="#FFF" android:background="@drawable/btn_button" android:layout_marginTop="30dip" android:onClick="btnPenulisClick" /> <Button android:layout_width="200dip" android:layout_height="45dip" android:text="Petunjuk" android:typeface="serif" android:textColor="#FFF" android:background="@drawable/btn_button" android:layout_marginTop="30dip" android:onClick="btnPetunjukClick" />
Penulis.xml
<ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center">
Petunjuk.xml
android:layout_height="50dip" android:layout="@layout/header" /> <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical">
Sekilas.xml
<ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical">
android:layout_height="wrap_content" android:text="Sekilasnandhiuafuagf" android:typeface="serif" android:textColor="#FFF" android:padding="20dip" android:id="@+id/txtSekilas" />
Tujuan.xml
<ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical">
Wisata_museum.xml
<EditText android:id="@+id/searchText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dip" android:layout_marginRight="10dip" android:layout_marginTop="10dip" android:hint="Search..." android:paddingLeft="10dip" android:textColor="#000" android:textColorHint="#000" android:textSize="12sp" android:typeface="serif" android:background="@drawable/text_input">