Aplikasi Resep Masakan Tradisional Indonesia Berbasis Android

(1)

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