Aplikasi Resep Masakan Tradisional Indonesia Berbasis Android
LAMPIRAN
1.
Kelas DashboardActivity.java
package com.friska.makanan; import android.app.Activity; import android.app.AlertDialog; import android.net.Uri;
import android.os.Bundle; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuItem; import android.view.Window; import android.content.Context;
import android.content.DialogInterface; import android.content.Intent;
import android.view.View; import android.widget.Button; import android.widget.Toast;
public class DashboardActivity extends Activity{ static Context context;
@Override
protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView (R.layout.panel_dashboard);
// Get application context for later use in google map context = getApplicationContext();
(2)
Button btn_kue = (Button)findViewById(R.id.btn_kue); Button btn_sayur =(Button)findViewById(R.id.btn_sayur); Button btn_daging =(Button)findViewById(R.id.btn_daging); Button btn_ikan = (Button)findViewById(R.id.btn_ikan);
btn_kue.setOnClickListener(new View.OnClickListener() { public void onClick(View view) {
Intent i = new Intent(getApplicationContext(), ListtepungActivity.class);
startActivity(i); }
});
btn_sayur.setOnClickListener(new View.OnClickListener() { public void onClick(View view) {
Intent i = new Intent(getApplicationContext(),
ListsayurActivity.class);
startActivity(i); }
});
btn_daging.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) { Intent i = new
Intent(getApplicationContext(), ListdagingActivity.class); startActivity(i);
} });
btn_ikan.setOnClickListener(new View.OnClickListener() { public void onClick(View view) {
Intent i = new
Intent(getApplicationContext(), ListikanActivity.class); startActivity(i);
(3)
}); }
public static void showToast(String text){
Toast.makeText(context, text, Toast.LENGTH_LONG).show(); }
public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.opt_dashboard, menu); return true;
}
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) {
case R.id.url:
Intent intent = null;
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.sajiansedap.com/"));
startActivity(intent); return true;
case R.id.tentang:
AlertDialog alertDialog; alertDialog = new
AlertDialog.Builder(this).create();
alertDialog.setTitle("Universitas Sumatera Utara");
alertDialog.setMessage("Aplikasi Resep masakan khas Indonesia berbasis Android ini " + "merupakan salah satu syarat kelulusan berupa Tugas Akhir" + " Semoga aplikasi ini bisa bermanfaat untuk " + " kita semua.\n\nSalam, Friska_Samosir,dkk");
alertDialog.setButton("OK",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss(); }
});
(4)
return true; default:
return super.onOptionsItemSelected(item); }
} }
2.
Kelas DBAdapter.java
package com.friska.makanan; import android.content.Context; import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log;
public class DBAdapter {
public static final String KEY_ID = "_id"; public static final String KEY_NAME = "nama"; public static final String KEY_KET = "ket"; public static final String TAG = "DBAdapter";
private static final String DATABASE_NAME = "masakan.db"; private static final String TABLE_IKAN = "ikan";
private static final String TABLE_SAYUR = "sayur"; private static final String TABLE_TEPUNG = "tepung"; private static final String TABLE_DAGING = "daging"; private static final int DATABASE_VERSION = 2;
(5)
private static final String IKAN =
"create table ikan (_id integer primary key autoincrement, "
+ "nama text not null, ket text not null);";
private static final String SAYUR =
"create table sayur (_id integer primary key autoincrement, " + "nama text not null, ket text not null);";
private static final String TEPUNG =
"create table tepung (_id integer primary key autoincrement, " + "nama text not null, ket text not null);";
private static final String DAGING =
"create table daging (_id integer primary key autoincrement, " + "nama text not null, ket text not null);";
private final Context context; private DatabaseHelper DBHelper; private SQLiteDatabase db;
public DBAdapter(Context ctx) {
this.context = ctx;
DBHelper = new DatabaseHelper(context); }
private static class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION); }
(6)
@Override
public void onCreate(SQLiteDatabase db) { try {
db.execSQL(IKAN); db.execSQL(TEPUNG); db.execSQL(SAYUR); db.execSQL(DAGING); } catch (SQLException e) {
e.printStackTrace(); }
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
Log.w(TAG, "Upgrade database dari versi " + oldVersion + " ke "
+ newVersion + ", yang akan menghapus semua data lama"); db.execSQL("DROP TABLE IF EXISTS sayur");
onCreate(db); }
}
//---membuka database---
public DBAdapter open() throws SQLException {
db = DBHelper.getWritableDatabase(); return this;
}
//---menutup database--- public void close()
(7)
{
DBHelper.close(); }
//menampilkan semua isi tabel database public Cursor getAllSayur()
{
return db.query(TABLE_SAYUR, new String[] {KEY_ID, KEY_NAME, KEY_KET}, null, null, null, null, null);
}
public Cursor getAllIkan() {
return db.query(TABLE_IKAN, new String[] {KEY_ID, KEY_NAME, KEY_KET}, null, null, null, null, null);
}
public Cursor getAllTepung() {
return db.query(TABLE_TEPUNG, new String[] {KEY_ID, KEY_NAME, KEY_KET}, null, null, null, null, null);
}
public Cursor getAllDaging() {
return db.query(TABLE_DAGING, new String[] {KEY_ID, KEY_NAME, KEY_KET}, null, null, null, null, null);
}
//menampilkan sebuah isi tabel database
public Cursor getSingleSayur(int id) throws SQLException {
Cursor cursor = db.query(true, TABLE_SAYUR, new String[] {KEY_ID, KEY_NAME, KEY_KET}, KEY_ID + "=" + id, null, null, null, null, null); if (cursor != null) {
cursor.moveToFirst(); }
(8)
return cursor; }
public Cursor getSingleIkan(int id) throws SQLException {
Cursor cursor = db.query(true, TABLE_IKAN, new String[] {KEY_ID, KEY_NAME, KEY_KET}, KEY_ID + "=" + id, null, null, null, null, null); if (cursor != null) {
cursor.moveToFirst(); }
return cursor; }
public Cursor getSingleTepung(int id) throws SQLException {
Cursor cursor = db.query(true, TABLE_TEPUNG, new String[] {KEY_ID, KEY_NAME, KEY_KET}, KEY_ID + "=" + id, null, null, null, null, null);
if (cursor != null) { cursor.moveToFirst(); }
return cursor; }
public Cursor getSingleDaging(int id) throws SQLException {
Cursor cursor = db.query(true, TABLE_DAGING, new String[] {KEY_ID, KEY_NAME, KEY_KET}, KEY_ID + "=" + id, null, null, null, null, null);
if (cursor != null) { cursor.moveToFirst(); }
return cursor; }
(9)
3.
Kelas DashboardSetting.java
package com.friska.makanan; /*
* Copyright 2011 Google Inc. *
* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0 *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License. */
import android.content.Context; import android.util.AttributeSet; import android.view.View;
import android.view.ViewGroup;
/**
* Custom layout that arranges children in a grid-like manner, optimizing for even horizontal and
* vertical whitespace. */
public class DashboardSetting extends ViewGroup {
(10)
private int mMaxChildWidth = 0; private int mMaxChildHeight = 0;
public DashboardSetting(Context context) { super(context, null);
}
public DashboardSetting(Context context, AttributeSet attrs) { super(context, attrs, 0);
}
public DashboardSetting(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle); }
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
mMaxChildWidth = 0; mMaxChildHeight = 0;
// Measure once to find the maximum child size.
int childWidthMeasureSpec = MeasureSpec.makeMeasureSpec( MeasureSpec.getSize(widthMeasureSpec),
MeasureSpec.AT_MOST);
int childHeightMeasureSpec = MeasureSpec.makeMeasureSpec( MeasureSpec.getSize(widthMeasureSpec),
MeasureSpec.AT_MOST);
final int count = getChildCount(); for (int i = 0; i < count; i++) { final View child = getChildAt(i); if (child.getVisibility() == GONE) { continue;
(11)
child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
mMaxChildWidth = Math.max(mMaxChildWidth, child.getMeasuredWidth());
mMaxChildHeight = Math.max(mMaxChildHeight, child.getMeasuredHeight());
}
// Measure again for each child to be exactly the same size. childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(
mMaxChildWidth, MeasureSpec.EXACTLY);
childHeightMeasureSpec = MeasureSpec.makeMeasureSpec( mMaxChildHeight, MeasureSpec.EXACTLY);
for (int i = 0; i < count; i++) { final View child = getChildAt(i); if (child.getVisibility() == GONE) { continue;
}
child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
}
setMeasuredDimension(
resolveSize(mMaxChildWidth, widthMeasureSpec), resolveSize(mMaxChildHeight, heightMeasureSpec)); }
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
int width = r - l; int height = b - t;
(12)
// Calculate the number of visible children. int visibleCount = 0;
for (int i = 0; i < count; i++) { final View child = getChildAt(i); if (child.getVisibility() == GONE) { continue;
}
++visibleCount; }
if (visibleCount == 0) { return;
}
// Calculate what number of rows and columns will optimize for even horizontal and
// vertical whitespace between items. Start with a 1 x N grid, then try 2 x N, and so on.
int bestSpaceDifference = Integer.MAX_VALUE; int spaceDifference;
// Horizontal and vertical space between items int hSpace = 0;
int vSpace = 0; int cols = 1; int rows; while (true) {
rows = (visibleCount - 1) / cols + 1;
hSpace = ((width - mMaxChildWidth * cols) / (cols + 1)); vSpace = ((height - mMaxChildHeight * rows) / (rows + 1));
spaceDifference = Math.abs(vSpace - hSpace); if (rows * cols != visibleCount) {
(13)
}
if (spaceDifference < bestSpaceDifference) { // Found a better whitespace squareness/ratio bestSpaceDifference = spaceDifference;
// If we found a better whitespace squareness and there's only 1 row, this is
// the best we can do. if (rows == 1) {
break; }
} else {
// This is a worse whitespace ratio, use the previous value of cols and exit.
--cols;
rows = (visibleCount - 1) / cols + 1;
hSpace = ((width - mMaxChildWidth * cols) / (cols + 1));
vSpace = ((height - mMaxChildHeight * rows) / (rows + 1));
break; }
++cols; }
// Lay out children based on calculated best-fit number of rows and cols.
// If we chose a layout that has negative horizontal or vertical space, force it to zero.
hSpace = Math.max(0, hSpace); vSpace = Math.max(0, vSpace);
// Re-use width/height variables to be child width/height. width = (width - hSpace * (cols + 1)) / cols;
height = (height - vSpace * (rows + 1)) / rows;
(14)
int col, row;
int visibleIndex = 0;
for (int i = 0; i < count; i++) { final View child = getChildAt(i); if (child.getVisibility() == GONE) { continue;
}
row = visibleIndex / cols; col = visibleIndex % cols;
left = hSpace * (col + 1) + width * col; top = vSpace * (row + 1) + height * row; child.layout(left, top,
(hSpace == 0 && col == cols - 1) ? r : (left + width),
(vSpace == 0 && row == rows - 1) ? b : (top + height));
++visibleIndex; }
} }
4.
DetaildagingActivity.java
package com.friska.makanan; import com.friska.makanan.R; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuItem;
(15)
import android.view.Window; import android.widget.ImageView; import android.widget.TextView;
public class DetaildagingActivity extends Activity {
DBAdapter db;
TextView title, ket; ImageView image; int id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.panel_detail_objek); db = new DBAdapter(this);
db.open();
Bundle b = getIntent().getExtras();
id = (int) b.getLong(ListdagingActivity.KEY_ID); title=(TextView)findViewById(R.id.title);
ket=(TextView)findViewById(R.id.ket); image=(ImageView)findViewById(R.id.icon); tampilData();
}
private void tampilData() {
// TODO Auto-generated method stub Cursor cursor = db.getSingleDaging(id);
title.setText(cursor.getString(cursor.getColumnIndexOrThrow(DBA dapter.KEY_NAME)));
(16)
ket.setText(cursor.getString(cursor.getColumnIndexOrThrow(DBAda pter.KEY_KET)));
if(id == 1)
image.setImageResource(R.drawable.kambing_iris_manis); else if(id == 2)
image.setImageResource(R.drawable.daging_panggang); else if(id == 3)
image.setImageResource(R.drawable.kambing_pedas); else if(id == 4)
image.setImageResource(R.drawable.kambing_kcap); else if(id == 5)
image.setImageResource(R.drawable.kambing_semur); else if(id == 6)
image.setImageResource(R.drawable.kambing_jeruk); else if(id == 7)
image.setImageResource(R.drawable.kambing_oseng); else if(id == 8)
image.setImageResource(R.drawable.kambing_pedas); else if(id == 9)
image.setImageResource(R.drawable.kambing_sate); else if(id == 10)
image.setImageResource(R.drawable.kambing_jeroan); else if(id == 11)
image.setImageResource(R.drawable.ayam_keju); else if(id == 12)
image.setImageResource(R.drawable.ayam_kodok_sdp); else if(id == 13)
image.setImageResource(R.drawable.ayam_balado); else if(id == 14)
image.setImageResource(R.drawable.ayam_nanking); else if(id == 15)
(17)
else if(id == 16)
image.setImageResource(R.drawable.ayam_rica); else if(id == 17)
image.setImageResource(R.drawable.ayam_tonseng); else if(id == 18)
image.setImageResource(R.drawable.ayam_mie); else if(id == 19)
image.setImageResource(R.drawable.ayam_grng_bacem); else if(id == 20)
image.setImageResource(R.drawable.ayam_tuturaga); else if(id == 21)
image.setImageResource(R.drawable.sapi_buntut); else if(id == 22)
image.setImageResource(R.drawable.sapi_iga); else if(id == 23)
image.setImageResource(R.drawable.sapi_sate); else if(id == 24)
image.setImageResource(R.drawable.sapi_bakso); else if(id == 25)
image.setImageResource(R.drawable.sapi_steak); else if(id == 26)
image.setImageResource(R.drawable.sapi_sukiyaki); else if(id == 27)
image.setImageResource(R.drawable.sapi_keluwak); else if(id == 28)
image.setImageResource(R.drawable.sapi_kuah_tomat); else if(id == 29)
image.setImageResource(R.drawable.sapi_balungan); else if(id == 30)
image.setImageResource(R.drawable.sapi_dendengbsh); else if(id == 31)
(18)
else if(id == 32)
image.setImageResource(R.drawable.sapi_rebung); else if(id == 33)
image.setImageResource(R.drawable.sapi_semur); else if(id == 34)
image.setImageResource(R.drawable.sapi_rendang); else if(id == 35)
image.setImageResource(R.drawable.sapi_rendang_kari); db.close();
}
public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.opt_menu, menu); return true;
}
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) {
case R.id.home:
Intent in = new
Intent(DetaildagingActivity.this, DashboardActivity.class); startActivity(in); return true;
case R.id.exit:
Intent exit = new Intent(Intent.ACTION_MAIN); exit.addCategory(Intent.CATEGORY_HOME); exit.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
DetaildagingActivity.this.finish(); startActivity(exit);
return true; default:
return super.onOptionsItemSelected(item); }
(19)
5.
Kelas DetailikanActivity.java
package com.friska.makanan; import com.friska.makanan.R; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuItem; import android.view.Window; import android.widget.ImageView; import android.widget.TextView;
public class DetailikanActivity extends Activity {
DBAdapter db;
TextView title, ket; ImageView image; int id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.panel_detail_objek); db = new DBAdapter(this);
db.open();
Bundle b = getIntent().getExtras();
id = (int) b.getLong(ListikanActivity.KEY_ID); title=(TextView)findViewById(R.id.title); ket=(TextView)findViewById(R.id.ket);
(20)
image=(ImageView)findViewById(R.id.icon); tampilData();
}
private void tampilData() {
// TODO Auto-generated method stub Cursor cursor = db.getSingleIkan(id);
title.setText(cursor.getString(cursor.getColumnIndexOrThrow(DBA dapter.KEY_NAME)));
ket.setText(cursor.getString(cursor.getColumnIndexOrThrow(DBAda pter.KEY_KET)));
if(id == 1)
image.setImageResource(R.drawable.tongkol_ori); else if(id == 2)
image.setImageResource(R.drawable.tongkol_rendang); else if(id == 3)
image.setImageResource(R.drawable.tongkol_abon); else if(id == 4)
image.setImageResource(R.drawable.tongkol_pepes); else if(id == 5)
image.setImageResource(R.drawable.tongkol_gulai); else if(id == 6)
image.setImageResource(R.drawable.ikan_n_pepes); else if(id == 7)
image.setImageResource(R.drawable.ikan_n_goreng); else if(id == 8)
image.setImageResource(R.drawable.ikan_n_kipas); else if(id == 9)
image.setImageResource(R.drawable.ikan_n_smbl_lecing); else if(id == 10)
(21)
else if(id == 11)
image.setImageResource(R.drawable.gurame_asam); else if(id == 12)
image.setImageResource(R.drawable.gurame_bkr); else if(id == 13)
image.setImageResource(R.drawable.gurame_sup); else if(id == 14)
image.setImageResource(R.drawable.gurame_egi); else if(id == 15)
image.setImageResource(R.drawable.gurame_resto); else if(id == 16)
image.setImageResource(R.drawable.lele_pecak); else if(id == 17)
image.setImageResource(R.drawable.lele_grng_krmes); else if(id == 18)
image.setImageResource(R.drawable.lele_tngseng); else if(id == 19)
image.setImageResource(R.drawable.lele_rawit); else if(id == 20)
image.setImageResource(R.drawable.lele_asem); else if(id == 21)
image.setImageResource(R.drawable.udang_siomay); else if(id == 22)
image.setImageResource(R.drawable.udang_keju); else if(id == 23)
image.setImageResource(R.drawable.udang_pedas); else if(id == 24)
image.setImageResource(R.drawable.udang_grng_tls); else if(id == 25)
image.setImageResource(R.drawable.udang_mireng); else if(id == 26)
(22)
else if(id == 27)
image.setImageResource(R.drawable.ikan_mas_pecak); else if(id == 28)
image.setImageResource(R.drawable.ikan_mas_pangek); else if(id == 29)
image.setImageResource(R.drawable.ikan_mas_jinus); else if(id == 30)
image.setImageResource(R.drawable.ikan_mas_pindang); else if(id == 31)
image.setImageResource(R.drawable.mujahir_lengkuas); else if(id == 32)
image.setImageResource(R.drawable.mujahir_lalapan); else if(id == 33)
image.setImageResource(R.drawable.mujahir_goreng); else if(id == 34)
image.setImageResource(R.drawable.mujahir_grng_kuning); else if(id == 35)
image.setImageResource(R.drawable.mujahir_smbal); else if(id == 36)
image.setImageResource(R.drawable.tuna_cuciwis); else if(id == 37)
image.setImageResource(R.drawable.tuna_tumis); else if(id == 38)
image.setImageResource(R.drawable.tuna_santan); else if(id == 39)
image.setImageResource(R.drawable.tuna_kemangi); else if(id == 40)
image.setImageResource(R.drawable.tuna_rica); db.close();
(23)
public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.opt_menu, menu); return true;
}
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) {
case R.id.home:
Intent in = new
Intent(DetailikanActivity.this, DashboardActivity.class); startActivity(in); return true;
case R.id.exit:
Intent exit = new Intent(Intent.ACTION_MAIN); exit.addCategory(Intent.CATEGORY_HOME); exit.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
DetailikanActivity.this.finish(); startActivity(exit);
return true; default:
return super.onOptionsItemSelected(item); }
} }
6.
Kelas DetailsayurActivity.java
package com.friska.makanan;
import com.friska.makanan.R; import android.os.Bundle; import android.app.Activity; import android.content.Intent;
(24)
import android.database.Cursor; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuItem; import android.view.Window; import android.widget.ImageView; import android.widget.TextView;
public class DetailsayurActivity extends Activity {
DBAdapter db;
TextView title, ket; ImageView image; int id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.panel_detail_objek); db = new DBAdapter(this);
db.open();
Bundle b = getIntent().getExtras();
id = (int) b.getLong(ListsayurActivity.KEY_ID);
title=(TextView)findViewById(R.id.title); ket=(TextView)findViewById(R.id.ket); image=(ImageView)findViewById(R.id.icon); tampilData();
}
private void tampilData() {
(25)
// TODO Auto-generated method stub Cursor cursor = db.getSingleSayur(id);
title.setText(cursor.getString(cursor.getColumnIndexOrThrow(DBA dapter.KEY_NAME)));
ket.setText(cursor.getString(cursor.getColumnIndexOrThrow(DBAda pter.KEY_KET)));
if(id == 1)
image.setImageResource(R.drawable.sayur_b_jagung); else if(id == 2)
image.setImageResource(R.drawable.sayur_b_bening); else if(id == 3)
image.setImageResource(R.drawable.sayur_b_egi); else if(id == 4)
image.setImageResource(R.drawable.sayur_b_tumis); else if(id == 5)
image.setImageResource(R.drawable.sayur_b_ayam); else if(id == 6)
image.setImageResource(R.drawable.kangkung_tumis); else if(id == 7)
image.setImageResource(R.drawable.kangkung_bobor); else if(id == 8)
image.setImageResource(R.drawable.kangkung_jamur); else if(id == 9)
image.setImageResource(R.drawable.kangkung_gulai); else if(id == 10)
image.setImageResource(R.drawable.kangkung_teri); else if(id == 11)
image.setImageResource(R.drawable.kol_oseng); else if(id == 12)
image.setImageResource(R.drawable.kol_tumis); else if(id == 13)
image.setImageResource(R.drawable.kol_bakwan); else if(id == 14)
(26)
image.setImageResource(R.drawable.kol_orakarik); else if(id == 15)
image.setImageResource(R.drawable.kol_sup); else if(id == 16)
image.setImageResource(R.drawable.wortel_bakpao); else if(id == 17)
image.setImageResource(R.drawable.wortel_egi); else if(id == 18)
image.setImageResource(R.drawable.wortel_donat); else if(id == 19)
image.setImageResource(R.drawable.wortel_panggang); else if(id == 20)
image.setImageResource(R.drawable.wortel_sup); else if(id == 21)
image.setImageResource(R.drawable.sawi_berkuah); else if(id == 22)
image.setImageResource(R.drawable.sawi_cah); else if(id == 23)
image.setImageResource(R.drawable.sawi_tumis); else if(id == 24)
image.setImageResource(R.drawable.sawi_sup); else if(id == 25)
image.setImageResource(R.drawable.sawi_tim); else if(id == 26)
image.setImageResource(R.drawable.buncis_tumiss); else if(id == 27)
image.setImageResource(R.drawable.buncis_cah); else if(id == 28)
image.setImageResource(R.drawable.buncis_sechuan); else if(id == 29)
image.setImageResource(R.drawable.buncis_taosi); else if(id == 30)
(27)
image.setImageResource(R.drawable.buncis_gulai); else if(id == 31)
image.setImageResource(R.drawable.paprika_putren); else if(id == 32)
image.setImageResource(R.drawable.paprika_lidah); else if(id == 33)
image.setImageResource(R.drawable.paprika_jagung); else if(id == 34)
image.setImageResource(R.drawable.paprika_kol); else if(id == 35)
image.setImageResource(R.drawable.paprika_udang); db.close();
}
public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.opt_menu, menu); return true;
}
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) {
case R.id.home:
Intent in = new
Intent(DetailsayurActivity.this, DashboardActivity.class); startActivity(in); return true;
case R.id.exit:
Intent exit = new Intent(Intent.ACTION_MAIN); exit.addCategory(Intent.CATEGORY_HOME); exit.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
DetailsayurActivity.this.finish(); startActivity(exit);
default:
(28)
7.
Kelas DetailtepungActivity.java
package com.friska.makanan; import com.friska.makanan.R; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuItem; import android.view.Window; import android.widget.ImageView; import android.widget.TextView;
public class DetailtepungActivity extends Activity {
DBAdapter db;
TextView title, ket; ImageView image; int id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.panel_detail_objek); db = new DBAdapter(this);
db.open();
Bundle b = getIntent().getExtras();
id = (int) b.getLong(ListtepungActivity.KEY_ID); title=(TextView)findViewById(R.id.title);
(29)
image=(ImageView)findViewById(R.id.icon); tampilData();
}
private void tampilData() {
// TODO Auto-generated method stub Cursor cursor = db.getSingleTepung(id);
title.setText(cursor.getString(cursor.getColumnIndexOrThrow(DBA dapter.KEY_NAME)));
ket.setText(cursor.getString(cursor.getColumnIndexOrThrow(DBAda pter.KEY_KET)));
if(id == 1)
image.setImageResource(R.drawable.kue_lapis); else if(id == 2)
image.setImageResource(R.drawable.kue_singkong); else if(id == 3)
image.setImageResource(R.drawable.kue_rolade); else if(id == 4)
image.setImageResource(R.drawable.kue_pisang_krmes); else if(id == 5)
image.setImageResource(R.drawable.kue_gulung); else if(id == 6)
image.setImageResource(R.drawable.kue_tahu); else if(id == 7)
image.setImageResource(R.drawable.kue_otak); else if(id == 8)
image.setImageResource(R.drawable.kue_cendol); else if(id == 9)
image.setImageResource(R.drawable.kue_talas); else if(id == 10)
image.setImageResource(R.drawable.kue_kentang); else if(id == 11)
(30)
else if(id == 12)
image.setImageResource(R.drawable.kue_cendoltepung); else if(id == 13)
image.setImageResource(R.drawable.kue_kering); else if(id == 14)
image.setImageResource(R.drawable.kue_pandan); else if(id == 15)
image.setImageResource(R.drawable.kue_lasagna); else if(id == 16)
image.setImageResource(R.drawable.kue_karamel); else if(id == 17)
image.setImageResource(R.drawable.kue_cakentang); else if(id == 18)
image.setImageResource(R.drawable.kue_putri); else if(id == 19)
image.setImageResource(R.drawable.kue_brownis); else if(id == 20)
image.setImageResource(R.drawable.kue_bubur); else if(id == 21)
image.setImageResource(R.drawable.kue_b_kering); else if(id == 22)
image.setImageResource(R.drawable.kue_sus); else if(id == 23)
image.setImageResource(R.drawable.kue_b_pisang); else if(id == 24)
image.setImageResource(R.drawable.kue_b_coklat); else if(id == 25)
image.setImageResource(R.drawable.kue_b_tim); else if(id == 26)
image.setImageResource(R.drawable.kue_b_durian); else if(id == 27)
(31)
else if(id == 28)
image.setImageResource(R.drawable.kue_b_jojorang); else if(id == 29)
image.setImageResource(R.drawable.kue_b_pao); else if(id == 30)
image.setImageResource(R.drawable.kue_b_bika); else if(id == 31)
image.setImageResource(R.drawable.kue_t_panggang); else if(id == 32)
image.setImageResource(R.drawable.kue_t_donat); else if(id == 33)
image.setImageResource(R.drawable.kue_t_paomisu); else if(id == 34)
image.setImageResource(R.drawable.kue_t_pia); else if(id == 35)
image.setImageResource(R.drawable.kue_t_muffin); else if(id == 36)
image.setImageResource(R.drawable.kue_t_udang); else if(id == 37)
image.setImageResource(R.drawable.kue_t_bapel); else if(id == 38)
image.setImageResource(R.drawable.kue_t_jagung); else if(id == 39)
image.setImageResource(R.drawable.kue_t_putu); else if(id == 40)
image.setImageResource(R.drawable.kue_t_srikaya); db.close();
}
public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.opt_menu, menu); return true;
(32)
}
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) {
case R.id.home:
Intent in = new
Intent(DetailtepungActivity.this, DashboardActivity.class); startActivity(in); return true;
case R.id.exit:
Intent exit = new Intent(Intent.ACTION_MAIN); exit.addCategory(Intent.CATEGORY_HOME); exit.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
DetailtepungActivity.this.finish(); startActivity(exit);
return true; default:
return super.onOptionsItemSelected(item); }
} }
8.
Kelas ListdagingActivity.java
package com.friska.makanan;
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import com.friska.makanan.R; import android.os.Bundle; import android.app.Activity; import android.content.Intent;
(33)
import android.database.Cursor;
import android.support.v4.widget.SimpleCursorAdapter; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener; import android.widget.EditText;
import android.widget.ListView;
public class ListdagingActivity extends Activity implements OnItemClickListener
{
public static final String KEY_ID = "_id"; EditText empty;
private ListView listview; private DBAdapter db; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.panel_listview);
try {
String pathTujuan = "/data/data/" + getPackageName() + "/databases/Masakan.db";
CopyDB(getBaseContext().getAssets().open("Masakan"), new FileOutputStream(pathTujuan));
}catch (FileNotFoundException e) { e.printStackTrace();
} catch (IOException e) { e.printStackTrace();
(34)
}
db = new DBAdapter(this); db.open();
listview = (ListView) findViewById(R.id.list); listview.setEmptyView(findViewById(R.id.empty)); listview.setOnItemClickListener(this);
loadData(); }
@SuppressWarnings("deprecation") private void loadData()
{
// TODO Auto-generated method stub Cursor cur = db.getAllDaging(); String[] from = new String[] {
DBAdapter.KEY_NAME };
int[] to = new int[] {
R.id.title };
SimpleCursorAdapter adapter = new
SimpleCursorAdapter(this, R.layout.list_adapter, cur, from, to); listview.setAdapter(adapter);
}
@Override
public void onItemClick(AdapterView<?> arg0, View v, int pos, long id)
{
// TODO Auto-generated method stub Bundle bundle = new Bundle(); bundle.putLong(KEY_ID, id);
Intent intent = new Intent(ListdagingActivity.this, DetaildagingActivity.class);
(35)
intent.putExtras(bundle); db.close();
startActivity(intent); }
public void CopyDB (InputStream inputStream , OutputStream outputStream)
throws IOException {
//--copy 1K byte pada saat ini--- byte[] buffer = new byte[1024]; int length;
while ((length = inputStream.read(buffer))>0) { outputStream.write(buffer, 0, length); }
inputStream.close(); outputStream.close(); }
public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.opt_menu, menu); return true;
}
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) {
case R.id.home:
Intent in = new
Intent(ListdagingActivity.this, DashboardActivity.class); startActivity(in); return true;
case R.id.exit:
Intent exit = new Intent(Intent.ACTION_MAIN); exit.addCategory(Intent.CATEGORY_HOME); exit.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ListdagingActivity.this.finish(); startActivity(exit);
(36)
return true; default:
return super.onOptionsItemSelected(item); }
} }
9.
Kelas ListikanActivity.java
package com.friska.makanan;
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import com.friska.makanan.R; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.database.Cursor;
import android.support.v4.widget.SimpleCursorAdapter; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener; import android.widget.EditText;
(37)
public class ListikanActivity extends Activity implements OnItemClickListener
{
public static final String KEY_ID = "_id"; EditText empty;
private ListView listview; private DBAdapter db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.panel_listview);
try {
String pathTujuan = "/data/data/" + getPackageName() + "/databases/Masakan.db";
CopyDB(getBaseContext().getAssets().open("Masakan"), new FileOutputStream(pathTujuan));
}catch (FileNotFoundException e) { e.printStackTrace();
} catch (IOException e) { e.printStackTrace(); }
db = new DBAdapter(this); db.open();
listview = (ListView) findViewById(R.id.list); listview.setEmptyView(findViewById(R.id.empty)); listview.setOnItemClickListener(this);
loadData(); }
@SuppressWarnings("deprecation") private void loadData()
(38)
// TODO Auto-generated method stub Cursor cur = db.getAllIkan(); String[] from = new String[] {
DBAdapter.KEY_NAME };
int[] to = new int[] {
R.id.title };
SimpleCursorAdapter adapter = new
SimpleCursorAdapter(this, R.layout.list_adapter, cur, from, to); listview.setAdapter(adapter);
}
@Override
public void onItemClick(AdapterView<?> arg0, View v, int pos, long id)
{
// TODO Auto-generated method stub Bundle bundle = new Bundle(); bundle.putLong(KEY_ID, id);
Intent intent = new Intent(ListikanActivity.this, DetailikanActivity.class);
intent.putExtras(bundle); db.close();
startActivity(intent); }
public void CopyDB (InputStream inputStream , OutputStream outputStream)
throws IOException {
//--copy 1K byte pada saat ini--- byte[] buffer = new byte[1024]; int length;
(39)
while ((length = inputStream.read(buffer))>0) { outputStream.write(buffer, 0, length); }
inputStream.close(); outputStream.close(); }
public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.opt_menu, menu); return true;
}
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) {
case R.id.home:
Intent in = new
Intent(ListikanActivity.this, DashboardActivity.class); startActivity(in); return true;
case R.id.exit:
Intent exit = new Intent(Intent.ACTION_MAIN); exit.addCategory(Intent.CATEGORY_HOME); exit.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ListikanActivity.this.finish(); startActivity(exit);
return true; default:
return super.onOptionsItemSelected(item); }
} }
(40)
10.
Kelas ListsayurActivity.java
package com.friska.makanan;
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import com.friska.makanan.R; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.database.Cursor;
import android.support.v4.widget.SimpleCursorAdapter; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener; import android.widget.EditText;
import android.widget.ListView;
public class ListsayurActivity extends Activity implements OnItemClickListener
{
public static final String KEY_ID = "_id"; EditText empty;
private ListView listview; private DBAdapter db;
(41)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.panel_listview);
try {
String pathTujuan = "/data/data/" + getPackageName() + "/databases/Masakan.db";
CopyDB(getBaseContext().getAssets().open("Masakan"), new FileOutputStream(pathTujuan));
}catch (FileNotFoundException e) { e.printStackTrace();
} catch (IOException e) { e.printStackTrace(); }
db = new DBAdapter(this); db.open();
listview = (ListView) findViewById(R.id.list); listview.setEmptyView(findViewById(R.id.empty)); listview.setOnItemClickListener(this);
loadData(); }
@SuppressWarnings("deprecation") private void loadData()
{
// TODO Auto-generated method stub Cursor cur = db.getAllSayur();
(42)
{
DBAdapter.KEY_NAME };
int[] to = new int[] {
R.id.title };
SimpleCursorAdapter adapter = new
SimpleCursorAdapter(this, R.layout.list_adapter, cur, from, to); listview.setAdapter(adapter);
}
@Override
public void onItemClick(AdapterView<?> arg0, View v, int pos, long id)
{
// TODO Auto-generated method stub Bundle bundle = new Bundle(); bundle.putLong(KEY_ID, id);
Intent intent = new Intent(ListsayurActivity.this, DetailsayurActivity.class);
intent.putExtras(bundle); db.close();
startActivity(intent); }
public void CopyDB (InputStream inputStream , OutputStream outputStream)
throws IOException {
//--copy 1K byte pada saat ini--- byte[] buffer = new byte[1024]; int length;
while ((length = inputStream.read(buffer))>0) { outputStream.write(buffer, 0, length);
(43)
}
inputStream.close(); outputStream.close(); }
public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.opt_menu, menu); return true;
}
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) {
case R.id.home:
Intent in = new
Intent(ListsayurActivity.this, DashboardActivity.class); startActivity(in); return true;
case R.id.exit:
Intent exit = new Intent(Intent.ACTION_MAIN); exit.addCategory(Intent.CATEGORY_HOME); exit.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ListsayurActivity.this.finish(); startActivity(exit);
return true; default:
return super.onOptionsItemSelected(item); }
} }
(44)
11.
Kelas ListtepungActivity.java
package com.friska.makanan;
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import com.friska.makanan.R; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.database.Cursor;
import android.support.v4.widget.SimpleCursorAdapter; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener; import android.widget.EditText;
import android.widget.ListView;
public class ListtepungActivity extends Activity implements OnItemClickListener
{
public static final String KEY_ID = "_id"; EditText empty;
private ListView listview; private DBAdapter db;
(45)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.panel_listview);
try {
String pathTujuan = "/data/data/" + getPackageName() + "/databases/masakan.db";
CopyDB(getBaseContext().getAssets().open("masakan"), new FileOutputStream(pathTujuan));
}catch (FileNotFoundException e) { e.printStackTrace();
} catch (IOException e) { e.printStackTrace(); }
db = new DBAdapter(this); db.open();
listview = (ListView) findViewById(R.id.list); listview.setEmptyView(findViewById(R.id.empty)); listview.setOnItemClickListener(this);
loadData(); }
@SuppressWarnings("deprecation") private void loadData()
{
// TODO Auto-generated method stub Cursor cur = db.getAllTepung(); String[] from = new String[] {
DBAdapter.KEY_NAME };
(46)
{
R.id.title };
SimpleCursorAdapter adapter = new
SimpleCursorAdapter(this, R.layout.list_adapter, cur, from, to); listview.setAdapter(adapter);
}
@Override
public void onItemClick(AdapterView<?> arg0, View v, int pos, long id)
{
// TODO Auto-generated method stub Bundle bundle = new Bundle(); bundle.putLong(KEY_ID, id);
Intent intent = new Intent(ListtepungActivity.this, DetailtepungActivity.class);
intent.putExtras(bundle); db.close();
startActivity(intent); }
public void CopyDB (InputStream inputStream , OutputStream outputStream)
throws IOException {
//--copy 1K byte pada saat ini--- byte[] buffer = new byte[1024]; int length;
while ((length = inputStream.read(buffer))>0) { outputStream.write(buffer, 0, length); }
inputStream.close(); outputStream.close(); }
(47)
MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.opt_menu, menu); return true;
}
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) {
case R.id.home:
Intent in = new
Intent(ListtepungActivity.this, DashboardActivity.class); startActivity(in); return true;
case R.id.exit:
Intent exit = new Intent(Intent.ACTION_MAIN); exit.addCategory(Intent.CATEGORY_HOME); exit.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ListtepungActivity.this.finish(); startActivity(exit);
return true; default:
return super.onOptionsItemSelected(item); }
} }
12.
Kelas Splashscreen.java
package com.friska.makanan; import com.friska.makanan.R; import android.app.Activity; import android.content.Intent; import android.media.MediaPlayer; import android.os.Bundle;
(48)
import android.view.WindowManager; import android.widget.ImageView;
public class Splashscreen extends Activity { MediaPlayer suaraSplash;
ImageView image;
@Override
protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN , WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView (R.layout.splashscreen_layout);
suaraSplash = MediaPlayer.create(this, R.raw.device); suaraSplash.start();
Thread logoTimer = new Thread(){ public void run(){
try {
int logoTimer = 0;
while (logoTimer < 3000){ sleep(100);
logoTimer = logoTimer + 100; }
startActivity(new Intent ("com.friska.makanan.CLEARSCREEN"));
} catch (InterruptedException e) {
// TODO Auto-generated catch block e.printStackTrace();
(49)
finally{ finish(); }
} };
logoTimer.start(); }
@Override
protected void onPause() {
// TODO Auto-generated method stub super.onPause();
suaraSplash.pause(); }
@Override
protected void onResume() {
// TODO Auto-generated method stub super.onResume();
suaraSplash.start(); }
@Override
protected void onStart() {
// TODO Auto-generated method stub super.onStart();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub super.onDestroy();
suaraSplash.release(); }
} }
(50)
2.
Kode Program Tampilan Antarmuka (Interface)
1.
dashboard_layout.xml
<com.friska.makanan.DashboardSetting xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"android:background="@drawable/thema"> <Button android:id="@+id/btn_kue" style="@style/DashboardButton" android:layout_width="match_parent" android:drawableTop="@drawable/btn_kue"
android:text="@string/label_kue" />
<Button
android:id="@+id/btn_sayur"
style="@style/DashboardButton"
android:drawableTop="@drawable/btn_sayur"
android:text="@string/label_sayur" /> <Button
android:id="@+id/btn_daging"
style="@style/DashboardButton"
android:drawableTop="@drawable/btn_daging"
android:text="@string/label_daging" /> <Button
android:id="@+id/btn_ikan"
style="@style/DashboardButton"
android:drawableTop="@drawable/btn_ikan"
android:text="@string/label_ikan" /> </com.friska.makanan.DashboardSetting>
2.
detail_objek_layout.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF69B4" android:orientation="vertical" android:layout_gravity="center"
android:layout_marginBottom="10dp"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:layout_marginTop="5dp">
(51)
<ScrollView
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="0.05" > <LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" > <TextView android:id="@+id/title" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1.79" android:gravity="center" android:textColor="#000000" android:textSize="18sp" android:typeface="sans"
android:textStyle="bold" /> <ImageView
android:id="@+id/icon"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="8.45" /> <TextView android:id="@+id/ket" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="left|fill_horizontal" android:textColor="#000000"
android:textSize="16sp" /> </LinearLayout> </ScrollView> </LinearLayout>
3.
header_layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"style="@style/HeaderStyle" > <TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center"
android:text=" RESEP MASAKAN"
android:textColor="#FF7F50"
android:textSize="24dip"
android:textStyle="bold"
android:background="@drawable/button1" /> </LinearLayout>
(52)
4.
list_adapter.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" > <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:orientation="vertical"> <TextView android:id="@+id/title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#333333" android:textSize="16sp" android:textStyle="bold"
android:text="Contact Name" /> </LinearLayout> </LinearLayout>
5.
listview_layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="fill_parent" android:background="FF69B4"tools:context=".MainActivity" > <ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content" > </ListView> <TextView android:id="@+id/empty" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="#333333" android:text="@string/label_copying_db" /> </LinearLayout>
(53)
6.
panel_dashboard.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/home_root" android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="match_parent">
<include layout="@layout/header_layout"/> <include layout="@layout/dashboard_layout"/>
</LinearLayout>
7.
panel_detail_objek.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/home_root" android:layout_width="fill_parent" android:layout_height="match_parent"android:orientation="vertical" >
<include layout="@layout/header_layout" /> <include
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.07"
layout="@layout/detail_objek_layout" /> </LinearLayout>
8.
panel_listview.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/home_root" android:layout_width="fill_parent" android:layout_height="match_parent"android:orientation="vertical" >
<include layout="@layout/header_layout" /> <include
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.07"
layout="@layout/listview_layout" /> </LinearLayout>
(54)
9.
splashscreen_layout.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background = "@drawable/themaresep"
android:orientation="vertical"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="200dp"
android:gravity="center"
android:text="@string/label_copyright"
android:textColor="#FF1493"
android:textSize="30sp"
android:textStyle="bold" /> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="190dp"
android:gravity="left"
android:text="@string/label_copyright2"
android:textColor="#FF1493"
android:textSize="20sp" />
</LinearLayout>
10. opt_dashboard.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/url"
android:icon="@drawable/home"
android:textStyle="bold"
android:title="Situs Resmi" /> <item android:id="@+id/tentang"
android:icon="@drawable/exit"
android:textStyle="bold"
android:title="Tentang" /> </menu>
(55)
3. KODE PROGRAM UNTUK MEMBUAT BUTTON
1.
Button btn_daging.xml
<?xml version="1.0" encoding="utf-8"?> <selector
xmlns:android="http://schemas.android.com/apk/res/android"> <!-- pas diklik -->
<item
android:state_focused = "true"
android:state_pressed = "false"
android:drawable = "@drawable/daging1"
/>
<!-- sebelum di Klik --> <item
android:state_focused = "false"
android:state_pressed = "false"
android:drawable = "@drawable/daging"
/>
<!-- seteleh diKlik --> <item
android:drawable = "@drawable/daging1"
/> </selector>
2.
Button btn_ikan.xml
<?xml version="1.0" encoding="utf-8"?> <selector
xmlns:android="http://schemas.android.com/apk/res/android"> <item
android:state_focused = "true"
android:state_pressed = "false"
android:drawable = "@drawable/fishbaru1"
/> <item
android:state_focused = "false"
android:state_pressed = "false"
android:drawable = "@drawable/fishbaru"
/> <item
android:drawable = "@drawable/fishbaru1"
/> </selector>
(56)
3.
Button btn_sayur.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item
android:state_focused = "true"
android:state_pressed = "false"
android:drawable = "@drawable/vegetables1"
/> <item
android:state_focused = "false"
android:state_pressed = "false"
android:drawable = "@drawable/vegetables" />
<item
android:drawable = "@drawable/vegetables1"
/>
</selector>
4.
Button btn_kue.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- pas diklik -->
<item android:state_focused="true"
android:state_pressed="false"
android:drawable="@drawable/kue"/> <!-- sebelum di Klik -->
<item android:state_focused ="false"
android:state_pressed ="false"
android:drawable="@drawable/kue1"/> <!-- seteleh diKlik -->
<item android:drawable = "@drawable/kue" />
(57)
DAFTAR PUSTAKA
Abdul Kadir & Terra CH Triwahyuni. 2003. Pengenalan Sistem Informasi, Yogyakarta :
Penerbit Andi.
Tata Sutabri. 2005. Sistem Informasi Manajemen. Yogyakarta: Penerbit Andi.
Adi Nugroho. 2005. Analisis dan Perancangan Sistem Informasi dengan Metodologi
Berorientasi Objek, Bandung:Informatika.
Fatta Al Hanif. 2007. Analisis dan Perancangan Sistem Informasi untuk Keunggulan
Bersaing Perusahaan dan Organisasi Modern. Yogyakarta: Penerbit Andi.
Hermawan Stephanus. 2011. Mudah membuat aplikasi Android. Yogyakarta:Andi.
http://id.wikipedia.org/wiki/Java. Diakses pada tanggal 25 Februari 2013.
http://id.wikipedia.org/wiki/Masakan_Indonesia. Diakses tanggal 3 Juni 2013.
http://newbiedroid.blogspot.com/2012/10/perkembangan-versi-versi-android.html
Diakses tanggal 5 Mei 2013.
(58)
31
BABB3B
B
METODOLOMIBPENELITIANB
3.1
BBBMetodeBAnalisisBKebutuhanBSistemBInformasiB
B
Dalam menganalisis aplikasi resep masakan tradisional, penulis melakukan
pengumpulan data dan analisis sistem berjalan untuk membantu penulis dalam
penelitian ini.
3.1.1
TeknikBpengumpulanBdataB
B
Dalam melakukan penelitian ini, penulis melakukan pencarian dengan cara
mengumpulkan beberapa dokumen seperti resep masakan tradisional yang ada di
Indonesia, bahan masakan yang dibutuhkan, dan bagaimana cara mengolah
bahan-bahan masakan tersebut.
3.1.2
AnalisisBsistemBberjalanB
Sistem yang berkembang di dalam masyarakat dengan menggunakan komputer telah
menjadi suatu gaya hidup bagi masyarakat sekarang ini. Khususnya bagi masyarakat
yang bekerja atau bergelut dalam bidang komputerisasi. Dengan perkembangan
teknologi tersebut, hal-hal yang akan diciptakan dalam bentuk sebuah karya dapat
(59)
32
juga terlebih dahulu dibuat sketsanya. Dalam hal ini sketsa tersebut dapat dibuat
dalam sebuah perangkat lunak komputer berupa aplikasi.
Aplikasi adalah sebuah perangkat lunak siap pakai. Aplikasi ini dapat
diterapkan dalam berbagai bidang ilmu untuk memudahkan sebuah pekerjaan. Salah
satu aplikasi yang dapat dirancang adalah aplikasi resep masakan trasidisional
berbasis
smartphone.
Dengan adanya perkembangan teknologi dapat diciptakan sebuah aplikasi yang
bukan hanya berbasis
dekstop
saja tetapi berbasis
smartphone
juga.
Smartphone
adalah sebuah inovasi baru dalam perkembangan teknologi. Di dalam
smartphone
dapat dilakukan berbagai kegiatan seperti yang dilakukan menggunakan
laptop/komputer. Dengan adanya fasilitas smartphone ini setiap orang tidak repot lagi
untuk mengakses sebuah informasi atau menjalankan sebuah aplikasi. Adapun aplikasi
yang dijalankan di dalam
smartphone
adalah berbasis
android.
3.2
BBBPerancanganBSistemB
B
Perancangan sistem bertujuan untuk menentukan rancangan aplikasi resep masakan
tradisional Indonesia berbasis android. Perancangan sistem ini dimulai dengan
perancangan diagram konteks dan
flowchart
program.
B
B
B
B
B
(60)
33
3.2.1BBBBDiagramBkonteksB
Untuk mendukung perancangan aplikasi resep masakan tradisional Indonesia berbasis
android, penulis menggambarkan digram konteks untuk dijadikan sebagai model yang
nantinya akan digunakan dalam membuat program. Adapun diagram konteks yang
telah penulis rancang, terdapat pada gambar 3.1.
BBBBBBBBBBBBMambarB3.1BBDiagramBKonteksBAplikasiBResepBMasakanBTradisionalB
BB
3.2.2BBBB
Flowchart
programB
B
Flowchart
adalah sekumpulan simbol yang menunjukkan atau menggambarkan
rangkaian kegiatan-kegiatan program dari awal hingga akhir, jadi
flowchart
juga
digunakan untuk menggambarkan urutan langkah-langkah pekerjaan di suatu
algoritma. Tujuan utama dari penggunaan
Flowchart
adalah untuk menggambarkan
suatu tahapan penyelesaian masalah secara sederhana, terurai, rapi dan jelas dengan
menggunakan simbol-simbol yang standar.
B
B
Aplikasi Resep Masakan Tradisional
(61)
34
Start
Splashscreen
Kue
Sayur
Daging
Ikan
List Kue
List
List Ikan
Sayur
List
Daging
End
Tampilan Menu
Adapun
flowchart
rancangan aplikasi resep masakan tradisional Indonesia,dapat
dilihat pada gambar 3.2.
B
MambarB3.2BBDataB
Flowchart
DiagramBAplikasiBResepBMasakanBTradisionalB
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
No
No
Yes
Yes
(62)
35
3.3
BBBPerancanganB
Database
B
Perancangan database dilakukan dengan menggunakan
SQLite
. Desain database
dimaksudkan untuk mendefinisikan isi atau struktur tabel. Adapun entitas yang
digunakan dalam perancangan database adalah sebagai berikut.
B
1.
Tabel
TepungB
Tabel tepung merupakan media penyimpanan data tepung. Tabel tepung dapat dilihat
pada tabel 3.1.
TabelB3.1BDeskripsiBtabelBtepungB
B
Nama Field Tipe Data Not Null
Primary
Key Unique
Auto
Increment Deskripsi
id Integer Ya Ya Ya Id tepung
nama Teks Ya Ya Nama tepung
ket Teks Ya Gambaran
tepung B
B
2.BBBBTabel
DagingB
Tabel daging merupakan media penyimpanan data daging. Tabel daging dapat dilihat
pada tabel 3.2.
TabelB3.2BDeskripsiBtabelBdagingB
B
Nama Field Tipe Data Not Null
Primary
Key Unique
Auto
Increment Deskripsi
Id Integer Ya Ya Ya Id Daging
Nama Teks Ya Ya Nama
Daging
Ket Teks Ya Gambaran
(63)
36
3.BBBBTabel
AirBIkanB
Tabel ikan merupakan media penyimpanan data ikan. Tabel ikandapat dilihat pada
tabel 3.3.
TabelB3.3BDeskripsiBtabelBIkanB
B
Nama Field Tipe Data
Not Null
Primary
Key Unique
Auto
Increment Deskripsi
Id integer Ya Ya Ya Id Ikan
Nama teks Ya Ya Nama Ikan
Ket teks Ya Gambaran Ikan
B
4.BBBBTabel
SayurB
Tabel sayur merupakan media penyimpanan data sayur. Tabel sayur dapat dilihat pada
tabel 3.4.
TabelB3.4BDeskripsiBtabelBSayurB
B
Nama Field Tipe Data
Not Null
Primary
Key Unique Auto
Increment Deskripsi
Id integer Ya Ya Ya Id Sayur
Nama teks Ya Ya Nama Sayur
Ket teks Ya Gambaran
Sayur
B
B
B
B
B
(64)
37
3.4BBBBRancanganBTampilanB
B
3.4.1BBHalamanBSplashscreenB
B
Tampilan ini merupakan tampilan awal saat aplikasi pertama kali dijalankan. Bentuk
perancangan tampilan utama atau splashscreen dapat dilihat pada gambar 3.3.
MambarB3.3BBRancanganBTampilanB
Splashscreen
B
B
B
B
B
B
B
B
B
APLIKASI RESEP
MASAKAN TRADISIONAL
(65)
38
3.4.2BBRancanganBtampilanButamaBaplikasiB
Rancangan halaman pencarian resep masakan merupakan tampilan yang berisi
informasi tentang resep masakan yang dibutuhkan. Rancangan resep masakan ini akan
menampilkan empat menu, yaitu: menu kue, menu sayur, menu daging, dan menu
ikan dan seafood. Bentuk perancangan tampilan utama atau splashscreen dapat dilihat
pada gambar 3.4.
B
B
MambarB3.4BBRancanganBpencarianBresepBmasakanB
B
B
B
B
B
B
B
B
Resep Masakan
Kue Sayuran
(66)
39
3.4.3BBBBRancanganBpemilihanBbahanBmasakanB
B
Rancangan halaman pemilihan bahan masakan adalah tampilan yang berisi informasi
bahan masakan apa saja yang akan digunakan. User dapat memilih bahan mana yang
akan dicari sesuai dengan yang terdiri dari 4 tabel. Tabel tersebut berupa pilihan bahan
dengan menu. Jadi user dapat memilih dan mengklik salah satu menu bahan masakan
tersebut. Adapun bentuk rancangan halaman pemilihan bahan masakan, dapat dilihat
pada gambar 3.5.
B
MambarB3.5BBRancanganBFormBBahanBMasakanB
B
B
BB
B
B
Resep Masakan
Kue Sayuran
(67)
40
3.4.4BBBBRancanganBdaftarBmasakanB
B
Halaman daftar masakan ini menyajikan informasi tentang jenis resep masakan yang
sudah tersedia. Rancangan daftar masakan ini akan menampilkan list view resep
masakan apa saja yang dapat dipilih oleh user sesuai dengan menu yang diklik user
sebelumnya. Bentuk perancangan halaman daftar masakan dapat dilihat pada gambar
3.6.
B
B
B
MambarB3.6BBRancanganBPencarianBResepBMasakanB
B
B
B
B
B
B
Resep Masakan
Daging sapi | Rendang
Daging sapi | sop buntut
Daging Ayam | Ayam goreng bumbu
Daging Ayam | Ayam gulai
(68)
41
3.4.5BBBBRancanganBtampilanBresepBmasakanB
B
Halaman tampilan bahan dan cara membuat masakan ini menyajikan informasi
tentang nama masakan, gambar, bahan-bahan yang diperlukan, dan cara membuat
masakan yang sudah tersedia. Bentuk perancangan halaman tampilan resep masakan
dapat dilihat pada gambar 3.7.
B
B
MambarB3.7BBBRancanganBbahanBdanBcaraBmembuatBmasakanB
B
B
B
B
B
B
B
Nama Makanan
Bahan-bahan :
Cara membuat :
(69)
BAB 4
HASIL DAN PEMBAHASAN
4.1 Hasil Tampilan Aplikasi
Tampilan ini merupakan tampilan awal saat aplikasi dijalankan. Tampilan
halaman utama atau splashscreen dapat dilihat pada gambar 4.1.
(70)
43
4.1.1 Form tampilan utama aplikasi
Halaman pencarian resep masakan merupakan tampilan yang berisi informasi
tentang resep masakan yang dibutuhkan. Halaman resep masakan ini akan
menampilkan empat menu, yaitu: menu kue, menu sayur, menu daging, dan menu
ikan dan seafood. Bentuk tampilan halaman utama atau splashscreen dapat dilihat
pada gambar 4.2.
(71)
44
4.1.2 Form daftar masakan
Halaman daftar masakan ini menyajikan informasi tentang jenis resep masakan
yang sudah tersedia. Halaman daftar masakan ini akan menampilkan list view
resep masakan apa saja yang dapat dipilih oleh user sesuai dengan menu yang
diklik user sebelumnya. Bentuk tampilan halaman daftar masakan dapat dilihat
pada gambar 4.3.
(72)
45
4.1.3 Form tampilan resep masakan
Halaman tampilan bahan dan cara membuat masakan ini menyajikan informasi
tentang nama masakan, gambar, bahan-bahan yang diperlukan, dan cara membuat
masakan yang sudah tersedia. Bentuk tampilan halaman tampilan resep masakan
dapat dilihat pada gambar 4.4.
(73)
46
4.1.4 Form tampilan menu Pop_Up
Untuk memudahkan pengguna kembali ke menu utama, tinggal menekan tombol
menu yang ada di emulator kemuadian akan muncul menu pop-up berupa icon
home dan icon exit. Untuk ke menu utama tekan icon home dan jika ingin keluar
disediakan juga icon exit. Bentuk tampilan halaman menu Pop_Up dapat dilihat
pada gambar 4.5
(74)
47
Selain icon home dan icon exit, ada juga icon situs dan icon tentang. Icon situs
berisi tentang situs yang dapat juga dikunjungi untuk mengetahui lebih banyak
tentang resep masakan tradisional Indonesia. Sedangkan icon tentang berupa
informasi mengenai pembuat aplikasi. Bentuk tampilan halaman menu Pop_Up
untuk icon situs dan icon tentang dapat dilihat pada gambar 4.5
(75)
48
4.2
Pembahasan
Implementasi adalah penggunaan sistem informasi dalam pengolahan yang
dihasilkan dalam bentuk informasi dan akan digunakan dalam pengambilan
keputusan. Pada implementasi ini terlebih dahulu dilakukan pengujian sistem agar
terlihat kesalahan dan permasalahan yang dihadapi dalam pengujian ke tahap
perencanaan yang nyata.
4.2.1
Pengertian Penggunaan Sistem
Penggunaan sistem adalah prosedur yang dilakukan untuk menyelesaikan desain
sistem yang ada didalam dokumentasi yang disetujui, menguji dan menginstal
serta memiliki sistem yang baru diperbaiki.
Adapun tujuan implementasi sistem adalah untuk mengetahui kelebihan
dan kekurangan dari sistem. Agar sistem dapat berjalan sebagaimana mestinya
maka sangat diperlukan perawatan sistem.
4.2.2
Sistem Berjalan
Sistem yang ada sekarang cukup sederhana. Pengenalan masakan tradisional
Indonesia masih banyak yang belum diketahui oleh masyarakat khususnya kaum
ibu rumah tangga sesuai dengan perkembangan zaman saat ini, dimana banyak
makanan sekarang makanan zaman modern, sehingga masakan tradisional sebagai
(1)
vii
APPLICATION OF TRADITIONAL INDONESIAN RECIPES ANDROID BASED
ABSTRACT
Modern era, as now people familiar with the practical life, fast and efficient which is unfettered by distance, place and time. One of the supporting tools to meet these needs is a cell phone. The use of mobile phones has covered all levels of society to be an indication that the mobile phone is not just a communication tool, but also has become a major supporter needs, even lately become a people's lifestyles, especially with the emergence of several smartphones that enter into Indonesia. Along with the times, currently known as the gadget era, which always appears to present the latest technologies that make human life becomes more practical. The thing become a background application of traditional Indonesian recipes android-based builted. So that the need of traditional Indonesian recipes informations can be obtained by android users especially housewives. This application was developed using the Java programming language, Juno Eclipse software as editor, Sqlite for database access. Systems development methodology used is based on collecting data from specific cookbooks. This system includes input modules data that associated with the main ingredient of food such as ingredients meat dishes, fish, vegetables, and flour. This application is expected to help people, especially housewives or people who like to cook in processing food ingredients into a delicious traditional cuisine.
(2)
DAFTAR ISI
Halaman
Persetujuan ... ii
Pernyataan ... iii
Penghargaan ... iv
Abstrak ... vi
Abstract ... vii
Daftar Isi ... viii
Daftar Tabel ... xi
Daftar Gambar ... xii
TAT 1 PENDAHILIAN ... 1
1.1 Latar Belakang Masalah ... 1
1.2 Perumusan Masalah ... 3
1.3 Batasan Masalah ... 3
1.4 Tujuan ... 3
1.5 Manfaat ……… 3
1.6 Metodologi Penelitian. ………. 4
1.7 Sistematika Penulisan ... 5
TAT 2 LANDASAN TEORI... 6
2.1 Internet ... 6
2.2 Database ... 6
2.3 Pengolahan Data ... 7
2.3.1 Defenisi data ... 8
2.3.2 Siklus pengolahan data ... 8
2.4 Sistem Informasi ... 9
2.4.1 Pengertian sistem ... 9
2.4.2 Pengembangan sistem ... 11
2.4.3 Defenisi informasi ... 13
2.4.4 Definisi sistem informasi ... 14
(3)
ix
2.6 Konsep Algoritma ... 19
2.6.1 Flowchart... 19
2.6.2 Data flow diagram (DFD) ... 21
2.7 Android ... 22
2.7.1 Sejarah singkat... 22
2.7.2 Android SDK ... 23
2.7.2 Komponen Android ... 24
2.7 Pemrograman Java ... 27
2.8 Masakan Tradisional Indonesia... 28
TAT 3 PERANCANGAN SISTEM ... 31
3.1 Metode Analisis Kebutuhan Sistem Informasi ... 31
3.1.1 Teknik pengumpulan data ... 31
3.1.2 Analisis sistem berjalan ... 31
3.2 Perancangan Sistem ... 32
3.2.1 Diagram konteks ... 33
3.2.1 Flowchart program... 33
3.3 Perancangan Database ... 35
3.4 Rancangan Tampilan ... 37
3.4.1 Halaman Splahscreen ... 37
3.4.2 Rancangan tampilan utama aplikasi ... 38
3.4.3 Rancangan pemilihan bahan masakan ... 39
3.4.4 Rancangan daftar Masakan ... 40
3.4.5 Rancangan tampilan resep masakan ... 41
TAT 4 HASIL DAN PEMTAHASAN ... 42
4.1 Hasil Tampilan Aplikasi ... 42
4.1.1 Form tampilan utama aplikasi ... 43
4.1.2 Form daftar masakan ... 44
4.1.3 Form tampilan resep masakan ... 45
(4)
4.2 Pembahasan ... 48
4.2.1 Pengertian Penggunaan Sistem ... 48
4.2.2 Sistem Berjalan ... 48
4.2.3 Sistem Usulan ... 49
4.2.4 Kebutuhan Sistem ... 50
TAT 5 PENITIP ... 52
5.1 Kesimpulan ... 52
5.2 Saran ... 52 Daftar Pustaka
Lampiran :
1. Listing Program
2. Surat Keterangan Uji program Tugas Akhir 3. Kartu Bimbingan Tugas akhir
(5)
xi DAFTAR TABEL
Halaman
Tabel 2.1 Simbol-simbol Flowchart 19
Tabel 2.2 Simbol DFD 21
Tabel 3.1 Deskripsi table tepung 35 Tabel 3.2 Deskripsi table daging 35 Tabel 3.3 Deskripsi table ikan 36
(6)
DAFTAR GAMBAR
Halaman
Gambar 2.1 Siklus Pengolahan Data 8
Gambar 2.2 Pengembangan Sistem 13
Gambar 2.3 Proses Data Menjadi Informasi 14
Gambar 3.1 Diagram Konteks Aplikasi Resep Masakan Tradisional 33
Gambar 3.2 Data Flowchart Diagram Aplikasi Resep Masakan Tradisional 34
Gambar 3.3 Rancangan Tampilan Splashscreen 37
Gambar 3.4 Rancangan pencarian resep masakan 38
Gambar 3.5 Rancangan Form Bahan Masakan 39 Gambar 3.6 Rancangan Pencarian Resep Masakan 40
Gambar 3.7 Rancangan bahan dan cara membuat masakan 41
Gambar 4.1 Tampilan utama aplikasi 42
Gambar 4.1 Tampilan menu utama 43
Gambar 4.3 Tampilan Form Jenis Resep Masakan 44
Gambar 4.4 Tampilan Form Resep Masakan 45
Gambar 4.5 Tampilan Menu Pop-Up 46