BAB II TINJAUAN PUSTAKA II.1. Definisi Menu Masakan Menu masakan adalah suatu susunan beberapa macam hidangan yang disajikan pada waktu tertentu. Menu masakan dapat terdiri dari satu macam hidangan yang lengkap atau tidak lengkap, juga dapat berupa hidangan untuk sarapan pagi, untuk makan siang atau makan malam saja ataupun hidangan makan untuk satu hari penuh dengan atau tanpa makanan selingan. (Sri Yuni Lestari;2012:2)
II.1.1. Resep Masakan Resep adalah satu set instruksi untuk menghasilkan makanan tertentu yang hasil porsinya bisa digandakan atau dikecilkan sesuai kebutuhannya, harus disertai catatan tentang bahan, jumlah dan cara membuatnya. Inilah arti dari satu resep. Yang penting untuk diketahui bahwa penulisan resep banyak keterbatasannya karena selalu tertulis dengan singkat. Bagaimana detail resep untuk dapat dimengerti oleh pembaca, biasanya bagi yang telah mempunyai pengetahuan tentang pengertian terminologi yang dipakai akan lebih mudah. Misalnya, apabila sudah mengerti timbangan dan pengetahuan dari aneka bahan makanan yang dipakai dalam resep dan mengerti metode pengetahuan sesuai dalam teori kuliner. (Soenardi, Tuti dan Tim Yayasan Gizi Kuliner;2013:219)
12
13
II.1.3. Masakan Padang (Minang) Indonesia memang kaya, Indonesia memang hebat, salah satu kekayaan warisan leluhur adalah kuliner Nusantara yang lezat tiada tara. Masakan Padang contohnya. Rasa khasnya timbul dari paduan bumbu dan bahan lain yang segar serta tepat pengolahannya. Masakan padang merupakan nama yang ditasbihkan bagi semua masakan yang berasal dari ranah Minangkabau, Sumatra Barat. Disebut sebagai masakan Padang padahal kebanyakan jenis masakan tersebut justru bukan berasal dari kota Padang, tetapi berasal dari beberapa kota di provinsi Sumatra Barat seperti Payakumbuh, Padang Pariaman, Bukittinggi dan Solok ―Menurut Eri Besra (2012), Sumatera Barat khususnya Kota Padang merupakan salah satu daerah tujuan wisata. Selain keindahan alamnya, Kota Padang juga menyimpan budaya dan peninggalan sejarah yang menarik. Kesenian daerah serta wisata kulinernya terkenal bukan saja oleh wisatawan lokal tapi juga wisatawan manca Negara. Wisata kuliner Kota Padang mempunyai potensi yang sangat baik. Dimana para wisatawan asing mengingat Indonesia dengan makanan khasnya yaitu Rendang. Rendang merupakan salah satu kuliner di Kota Padang. Selain rendang tentu masih banyak wisata kuliner lain yang tak kalah enaknya di Kota Padang‖. Untuk menu makanan/kuliner yang disediakan di restoran/warung Padang diantaranya adalah sebagai berikut: 1. Rendang 2. Dendeng balado 3. Soto padang 4. Gulai kepala kakap
14
5. Sambal lado 6. Dendeng batokok 7. Gulai toco 8. Pangek padeh 9. Kalio dagiang 10. Gulai itik 11. Ikan balado 12. Gulai pucuk ubi 13. Gulai cubadak 14. Sate padang 15. Sambal ijo 16. Ayam pop 17. Kalio ayam 18. Paru goreng. (Eri Besra;2012:94)
II.4. Android Android adalah sebuah platform pertama yang betul-betul terbuka dalam pengembangannya dan komperehensif untuk perangkat mobile, semua perangkat lunak yang ada difungsikan menjalankan sebuah device mobile tanpa memikirkan kendala kepemilikan yang menghambat inovasi pada teknologi mobile. Aplikasi Android ditulis dalam bahasa pemrograman java, yaitu kode java yang terkompilasi bersama-sama dengan data dan file-file sumber yang dibutuhkan oleh aplikasi yang digabungkan oleh app tools menjadi paket aplikasi Android, sebuah
15
file yang ditandai dengan akhiran .apk. File inilah yang di distribusikan sebagai aplikasi dan di instal pada handset Android. File ini di unduh oleh pengguna ke perangkat mobile mereka. Semua kode dijadikan satu file .apk, dan kemudian kita sebut sebagai sebuah aplikasi. (Ahmad;2015:2) Sebagian besar aplikasi yang terdapat pada Play Store Android bersifat gratis, dan ada juga aplikasi berbayar sebagai cara untuk me-monitize aplikasi Android. Uniknya penamaan versi Android selalu menggunakan nama makanan dan di awali abjad yang berurutan sebagai berikut : 1. Android version 1.5 (Cupcake). 2. Android version 1.6 (Donut). 3. Android version 2.0/2.1 (Eclair). 4. Android version 2.2 (Frozen Yogurt/Froyo). 5. Android version 2.3 (Gingerbread). 6. Android version 3.0/3.1/3.2 (Honeycomb). 7. Android version 4.0 (Ice Cream Sandwich). 8. Android version 4.1/4.2 (Jelly Bean). 9. Android version 4.4 (Kitkat). (Arif Akbarul Huda;2013:1-2)
II.4.1. Sejarah Sistem Operasi Android Telepon seluler menggunakan berbagai macam sistem operasi
seperti
Symbian OS®, Microsoft’s Windows Mobile®, Mobile Linux®, iPhone OS® (berdasarkan Mac OS X), Moblin ®(dari Intel), dan berbagai macam sistem operasi lainnya. API yang tersedia untuk mengembangkan aplikasi mobile terbatas
16
dan oleh karena itulah Google mulai mengembangkan dirinya. Platform Android menjanjikan keterbukaan, kemudahan untuk menjangkau, source code yang terbuka, dan pengembangan framework yang high end. Google membeli perusahaan Android Inc., yang merupakan sebuah perusahaan kecil berbasis pengembangan perangkat lunak untuk ponsel, pada tahun 2005 untuk memulai pengembangan pada platform Android. Tokoh utama pada Android Inc. meliputi Andy Rubin, Rich Miner, Nick Sears, dan Chris White. Pada tanggal 5 November 2007, kelompok pemimpin industri bersamasama membentuk Open Handset Alliance (OHA) yang diciptakan untuk mengembangkan standar terbuka bagi perangkat mobile. OHA terdiri dari 34 anggota besar dan beberapa anggota yang terkemuka diantaranya sebagai berikut: Sprint Nextel®, T-Mobile®, Motorola®, Samsung®, Sony Ericsson®, Toshiba®, Vodafone®, Google, Intel® dan Texas Instruments. Android SDK dirilis pertama kali pada 12 November 2007 dan para pengembang memiliki kesempatan untuk memberikan umpan balik dari pengembangan SDK tersebut.
Pada
bulan
September
2008,
T-Mobile
memperkenalkan ketersediaan T-Mobile G1 yang merupakan smartphone pertama berbasiskan platform Android. Beberapa
hari
kemudian, Google
merilis
Android SDK 1.0. Google membuat source code dari platform Android menjadi tersedia di bawah lisensi Apache’s open source. Google merilis perangkat genggam (disebut Android Dev Phone 1) yang dapat menjalankan aplikasi Android tanpa terikat oleh berbagai jaringan
17
provider telepon seluler pada akhir 2008. Tujuan dari perangkat ini adalah memungkinkan pengembang untuk melakukan percobaan dengan perangkat sebenarnya yang dapat menjalankan Android OS tanpa berbagai kontrak. Google juga merilis versi 1.1 dari sistem operasi Android pada waktu yang tidak lama. Versi 1.1 dari Android tidak mendukung adanya soft keyboards dan membutuhkan perangkat yang memiliki keyboard secara fisik. Android menyelesaikan masalah ini dengan merilis versi 1.5 pada bulan April 2009 dengan sejumlah tambahan fitur seperti kemampuan perekaman media, widgets, dan live folders. Versi 1.6 dari Android OS dirilis pada bulan September 2009 dan hanya dalam waktu satu bulan versi Android 2.0 dirilis dan membanjiri seluruh perangkat Android. Versi ini memiliki kemampuan advanced search, text to speech, gestures, dan multi touch. Android 2.0 memperkenalkan kemampuan untuk menggunakan HTML karena didukung oleh HTML 5. Semakin banyak aplikasi berbasiskan Android setiap harinya yang terdapat pada application store secara online atau dikenal sebagai Android Market. (Safaat Nazruddin H;2014:1)
II.4.2. Arsitektur Android Secara garis besar Arsitektur Android dapat dijelaskan sebagai berikut: 1. Applications dan Widgets Application dan Widgets ini adalah layer dimana kita berhubungan dengan aplikasi saja, dimana biasanya kita download aplikasi kemudian kita lakukan instalasi dan jalankan aplikasi tersebut. Di layer terdapat terdapat aplikasi inti
18
termasuk email client, program Short Message Service(SMS), kalender, peta, browser, daftar kontak, dan lain-lain. Semua aplikasi ditulis dengan menggunakan bahasa pemgrograman Java. 2. Applications Frameworks Android adalah ―Open Development Platform‖ yaitu Android menawarkan kepada pengembang untuk membangun aplikasi yang bagus dan inovatif. Sehingga bisa kita simpulkan Applications Frameworks ini adalah layer di mana para pembuat aplikasi melakukan pengembangan/pembuatan aplikasi yang akan dijalankan di sistem operasi Android, karena pada layer inilah aplikasi dapat dirancang dan dibuat, seperti content prviders yang berupa sms dan panggilan telepon. Komponen-komponen yang termasuk di dalam Applications Frameworks adalah sebagai berikut: a. Views b. Content Provider c. Resource Manager d. Notification Manager e. Activiti Manager 3. Libraries Libraries ini adalah layer dimana fitur-fitur Android berada, biasanya para pembuat aplikasi mengakses libraries untuk menjalankan aplikasinya. Berjalan diatas kernel, layer ini meliputi berbagai library C/C++ inti seperti Libc dan SSL. Beberapa dari library utama dijelaskan sebagai berikut:
19
a. System C Library Merupakan implementasi turunan dari standar system library C (libc) yang diatur untuk peralatan berbasis embedded Linux. b. Media Libraries Disediakan oleh Packet Video (salah satu anggota dari OHA)
yang
memberikan library untuk memutar ulang dan menyimpan format suara dan video, serta static image file seperti MPEG4, MP3, AAC, AMR, JPG, and PNG. c. Surface Manager Mengatur akses ke dalam subsistem tampilan dan susunan grafis layer 2D dan 3D secara mulus dari beberapa aplikasi dan menyusun permukaan gambar yang berbeda pada layar ponsel. d. LibWebCore Merupakan web browser modern yang menjadi kekuatan
bagi browser
Android dan sebuah embeddable web view. e. Scalable Graphics Library (SGL) SGL mendasari mesin grafis 2D dan bekerja bersama-sama dengan lapisan pada level yang lebih tinggi dari kerangka kerja (seperti Windows Manager dan Surface Manager) untuk mengimplementasikan keseluruhan graphics pipeline dari Android. f. 3DLibraries Implementasi yang didasarkan pada OpenGL ES 1.0 APIs dimana library menggunakan baik akselerasi perangkat keras 3D (jika tersedia) ataupun yang disertakan, dengan rasterisasi perangkat lunak 3D yang sangat optimal.
20
g. FreeType Library Digunakan untuk menghaluskan semua tulisan bitmap dan vektor. h. SQLite Merupakan relational database yang kuat dan ringan serta tersedia untuk semua aplikasi. 4. Android Runtime Merupakan lokasi dimana komponen utama dari DVM ditempatkan. DVM dirancang secara khusus untuk Android pada saat dijalankan pada lingkungan yang terbatas, dimana baterai yang terbatas, CPU, memori, dan penyimpanan data menjadi fokus utama. Android memiliki sebuah tool yang terintegrasi yaitu "dx" yang mengkonversi generated byte code dari (.JAR) ke dalam file (.DEX) sehingga byte code menjadi lebih efisien untuk dijalankan pada prosesor yang kecil. Hal ini memungkinkan untuk memiliki beberapa jenis dari DVM berjalan pada suatu peralatan tunggal pada waktu yang sama. Core libraries ditulis dalam bahasa Java dan berisi kumpulan class, I/O dan peralatan lain. 5. Linux Kernel Linux kernel adalah layer dimana inti dari operating sistem dari android itu berada. Berisi file-file system yang mengatur sistem processing, memory, resource, drivers, dan sistem operasi android lainnya. (Safaat Nazruddin H;2014: 6)
21
Gambar II.1. Arsitektur Android Sumber : (Safaat Nazruddin H;2014:8)
II.5. Java Bahasa pemrograman java dikembangkan oleh Sun Microsystem yang dimulai oleh james Gosling dan dirilis pada tahun 1995. Saat ini Sun Microsystem telah diakui oleh Oracle Corporation. Java bersifat Write Once, Run Anywhere (program yang ditulis satu kali dan dapat berjalan pada banyak platform. (Jubilee Enterprise;2015:1)
II.5.1. JavaScript JavaScript merupakan salah satu bahasa script website yang paling banyak digunakan untuk menambah manipulasi script HTML dan CSS pada sisi client/browser. JavaScript mampu memberikan fungsionalitas lebih pada website,
22
seperti validasi form, berkomunikasi dengan sever, serta membuatwebsite lebih interaktif dan animatif. JavaScript digunakan pada banyak , seperti Internet Explorer, Firefox, Chrome, Opera, Safari, dan lain sebagainya. Hampir seluruh browser mendukung JavaScript sehigga tidak perlu khawatir kode JavaScript yang digunakan pada website tidak berfungsi. (Wahana Komputer;2012:2)
II.6. Database MySQL ―Menurut Kadir Abdul (2008), MySQL adalah salah satu jenis database server yang sangat terkenal. Kepopulerannya disebabkan MySQL menggunakan SQL sebagai bahasa dasar untuk mengakses database-nya. Selain itu, ia bersifat Open Source pada berbagai platform (kecuali untuk jenis Enterprise, yang bersifat komersial). MySQL termasuk jenis RDBMS (Relational Database Management System). Itulah sebabnya, istilah seperti tabel, baris dan kolom digunakan pada MySQL. Pada MySQL, sebuah database mengandung satu atau sejumlah tabel. Tabel terdiri atas sejumlah baris dan setiap baris mengandung satu atau beberapa kolom.‖ ―Menurut Arief M Rudyanto (2011), MySQL merupakan database yang pertama kali didukung oleh bahasa pemrograman script untuk internet (PHP dan Perl). MySQL dan PHP dianggap sebagai pasangan software pengembangan aplikasi web yang ideal. MySQL lebih sering digunakan untuk membangun
23
aplikasi berbasis web, umumnya pengembangan aplikasinya menggunakan bahasa pemrograman script PHP.‖ a. Data Definition Language (DDL) DDL memberikan perintah untuk mendefinisikan dan memodifikasi database dan strukturnya termasuk konstrain-konstrain yang ada disuatu tabel. b. Data Manipulation Language (DML) DML merupakan bahasa query yang digunakan untuk melakukan pengelolaan terhadap data yang ada didalam sebuah database, pengelolaan yang dimaksud diantaranya memasukan data (insert), mengubah data (update), menghapus data (delete), dan mengambil data (select) dari satu atau beberapa tabel.
II.7. PHP (Hypertext Preprocessor) PHP adalah bahasa server side scripting yang menyatu dengan HTML untuk membuat halaman web yang dinamis. Karena PHP merupakan server side scripting maka sintaks dan perintah-perintah PHP akan dieksekusi ke server yang kemudian hasilnya dikirimkan ke browser. PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada waktu itu PHP bernama FI (Form Interpreted). Pada saat tersebut PHP adalah sekumpulan script yang digunakan untuk mengolah data form dari web. (Dedi Yunaedi, et al.;2013)
II.8. XAMPP XAMPP adalah perangkat lunak bebas, yang mendukung banyak sistem operasi, merupakan kompilasi dari beberapa program. Fungsinya adalah sebagai
24
server yang berdiri sendiri (localhost), yang terdiri atas program Apache HTTP Server, MySQL database, dan penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan Perl. Nama XAMPP merupakan singkatan dari X (empat sistem operasi apapun), Apache, MySQL, PHP dan Perl. (Dedi Yunaedi, et al.;2013)
II.9. UML (Unified Modelling Language) Unified Modelling Language (UML) adalah sebuah "bahasa" yg telah menjadi
standar
dalam
industri
untuk
visualisasi,
merancang
dan
mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem. Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa-bahasa berorientasi objek seperti C++, Java, C# atau VB.NET. Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax/semantik. Notasi
UML
merupakan
sekumpulan
bentuk
khusus
untuk
menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh
25
OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering). Sejarah UML sendiri cukup panjang. Sampai era tahun 1990 seperti kita ketahui puluhan metodologi pemodelan berorientasi objek telah bermunculan di dunia. Diantaranya adalah: metodologi booch, metodologi coad, metodologi OOSE, metodologi OMT, metodologi shlaer-mellor, metodologi wirfsbrock, dsb. Masa itu terkenal dengan masa perang metodologi (method war) dalam pendesainan berorientasi objek. Masing-masing metodologi membawa notasi sendiri-sendiri, yang mengakibatkan timbul masalah baru apabila kita bekerjasama dengan group/perusahaan lain yang menggunakan metodologi yang berlainan. Dimulai pada bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, yang merupakan tiga tokoh yang boleh dikata metodologinya banyak digunakan mempelopori usaha untuk penyatuan metodologi pendesainan berorientasi objek. Pada tahun 1995 direlease draft pertama dari UML (versi 0.8). Sejak tahun 1996 pengembangan tersebut dikoordinasikan oleh Object Management Group (OMG – http://www.omg.org). Tahun 1997 UML versi 1.1 muncul, dan saat ini versi terbaru adalah versi 1.5 yang dirilis bulan Maret 2003. Booch, Rumbaugh dan Jacobson menyusun tiga buku serial tentang UML pada tahun 1999. Sejak saat itulah UML telah menjelma menjadi standar bahasa pemodelan untuk aplikasi berorientasi objek. (Yuni Sugiarti;2013:33)
26
II.9.1. Use Case Diagram Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah ―apa‖ yang diperbuat sistem, dan bukan ―bagaimana‖. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Use case diagram dapat sangat membantu
bila
kita
sedang
menyusun
requirement
sebuah
sistem,
mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem. Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal. Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya sendiri.
Sementara hubungan generalisasi antar use case
menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain. (Yuni Sugiarti;2013:41)
27
Gambar II.2. Use Case Diagram Sumber : (Junaedi Siregar;2013:76)
II.9.2. Class Diagram Diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi. Berikut adalah simbolsimbol pada diagram kelas :
28
Gambar II.3. Class Diagram Sumber : (Yuni Sugiarti;2013:59)
II.9.3. Sequence Diagram Diagram Sequence menggambarkan kelakuan/prilaku objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambarkan diagram sequence
29
maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu. Banyaknya diagram sequence yang harus digambar adalah sebanyak pendefinisian use case yang memiliki proses sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada diagram sequence sehingga semakin banyak use case yang didefinisikan maka diagram sequence yang harus dibuat juga semakin banyak.
Costomer
Login Screen
Security Manager
Users
Login
Validate User Check Use Details [ User Details ] Validate
1 : Use Case Model >
Gambar II.4. Contoh Sequence Diagram Sumber : (Yuni Sugiarti;2013:63)
II.9.4. Activity Diagram Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang
30
mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas
menggambarkan
proses
yang
berjalan,
sementara
use
case
menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas. Sama seperti state, standar UML menggunakan segiempat dengan sudut membulat
untuk
menggambarkan
aktivitas.
Decision
digunakan
untuk
menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan prosesproses paralel (fork dan join) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal. Activity diagram dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu.
31
Find Beverage
[no coffee]
decision
Start
Put Coffee In Filter
Add Water to Reservoir
Get Cups Get Can of Cola
Put Filter In Machine
[no cola]
Turn on Machine
Brew Coffee
Pour Coffee
Drink Beverage End
Gambar II.5. Activity Diagram Sumber : (Yuni Sugiarti;2013:76)