Upload
phamtuyen
View
232
Download
0
Embed Size (px)
Citation preview
APLIKASI PANDUAN DIET BERDASARKAN GOLONGAN
DARAH BERBASIS ANDROID
SKRIPSI
Diajukan untuk memenuhi salah satu syarat kelulusan Strata Satu (S1)
Hafizh Fauzan Umar
12130153
Program Studi Teknik Informatika
Sekolah Tinggi Manajemen Informatika dan Komputer
NUSA MANDIRI
Jakarta
2017
ii
PERSEMBAHAN
“Tidak ada rahasia untuk sukses. Ini adalah hasil sebuah persiapan,
kerja keras, dan belajar dari kesalahan”
(Colin Powel)
Dengan nama Tuhan Yang Maha Pengasih lagi Maha Penyayang. Segala puji bagi
Allah Tuhan semesta alam, skripsi ini saya persembahkan untuk :
1. Kedua Orang Tua saya tercinta yang telah merawat, mendidik, dan memenuhi
segala kebutuhan saya sejak dari dalam kandungan hingga saat ini.
2. Guru-guru dan dosen-dosen yang telah mendidik dan mengajar saya di
pendidikan formal maupun non formal.
3. Teman-teman mahasiswa STMIK Nusa Mandiri satu angkatan yang selama
ini selalu mendukung.
vi
PANDUAN PENGGUNAAN HAK CIPTA
Skripsi sarjana yang berjudul “Aplikasi Panduan Diet Berdasarkan
Golongan Darah Berbasis Android” adalah hasil karya tulisan asli Hafizh
Fauzan Umar dan bukan hasil terbitan sehingga peredaran karya tulis hanya
berlaku di lingkungan anak akademik saja, serta memiliki hak cipta. Oleh karena
itu, dilarang keras untuk menggandakan baik sebagian maupun seluruhnya karya
tulis ini, tanpa seizin penulis.
Referensi kepustakaan diperkenankan untuk dicatat tetapi pengutipan atau
peringkasan isi tulisan hanya dapat dilakukan dengan seizin penulis dan disertai
ketentuan pengutipan secara ilmiah dengan menyebutkan sumbernya.
Untuk keperluan perizinan pada pemilik dapat menghubungi informasi
yang tertera di bawah ini:
Nama : Hafizh Fauzan Umar
Alamat : Jl. Bojong Tua No.25 RT/RW 006/01 Jatimakmur
Pondok Gede Kota Bekasi, Jawa Barat
No. Telp : 08981071665
E-mail : [email protected]
vii
KATA PENGANTAR
Puji syukur penulis panjatkan atas kehadirat Tuham YME yang telah
melimpahkan rahmat dan karunia-Nya, sehingga pada akhirnya penulis dapat
menyelesaikan Skripsi ini dengan baik. Dimana Skripsi ini penulis sajikan dalam
bentuk buku yang sederhana. Adapun judul penulisan skripsi, yang penulis ambil
adalah “APLIKASI PANDUAN DIET BERDASARKAN GOLONGAN
DARAH BERBASIS ANDROID”.
Tujuan penulisan skripsi ini dibuat sebagai salah satu syarat kelulusan
Program Strata Satu (S1) STMIK Nusa Mandiri.Sebagai bahan penulisan diambil
berdasarkan hasil penelitian (eksperimen), observasi dan beberapa sumber
literatur yang mendukung penulisan ini. Penulis menyadari bahwa tanpa
bimbingan dan dorongan dari semua pihak, maka penulisan skripsi ini tidak akan
lancar. Oleh karena itu, pada kesempatan ini izinkanlah penulis menyampaikan
ucapan terimakasih kepada :
1. Ketua STMIK Nusa Mandiri.
2. Wakil Ketua I STMIK Nusa Mandiri.
3. Ketua Program Studi Teknik Informatika Nusa Mandiri.
4. Fitri Latifah, M.Kom selaku Dosen Pembimbing I Skripsi.
5. Asri Wahyuni, M.Kom selaku Dosen Pembimbing II Skripsi.
6. Bapak/ibu dosen Teknik Informatika STMIK Nusa Mandiri
Jakarta yang telah memberikan penulis dengan semua bahan yang
diperlukan.
7. Staff, karyawan, dan dosen-dosen di lingkungan STMIK Nusa Mandiri.
viii
8. Orang tua tercinta yang telah memberikan dorongan moral maupun
spiritual.
9. Rekan-rekan mahasiswa Teknik Informatika kelas 12.8A.01 tahun 2013-
2017
Serta semua pihak yang terlalu banyak untuk disebut satu persatu sehingga
terwujudnya penulisan ini. Penulis menyadari bahwa penulisan skripsi ini masih
jauh dari sempurna, untuk itu penulis mohon kritik dan saran yang bersifat
membangun demi kesempurnaan penulisan dimasa yang akan datang.
Akhir kata semoga skripsi ini dapat berguna bagi penulis khususnya dan
bagi para pembaca yang berminat pada umumnya.
Jakarta, 22 Agustus 2015
Hafizh Fauzan Umar
ix
ABSTRAKSI
Hafizh Fauzan Umar (12130153), Aplikasi Panduan Diet Berdasarkan
Golongan Darah Berbasis Android
Ponsel saat ini tidak hanya digunakan untuk berkomunikasi saja, tetapi
memiliki fitur yang sangat membantu dalam kehidupan sehari-hari. Pernyataan
dunia ada digengaman pun menjadi kenyataan dalam zaman ini. Memiliki
tubuh yang ideal tentunya menjadi dambaan bagi sebagian besar masyarakat.
Masalah yang timbul adalah ketika ingin memilih cara apa yang dapat
digunakan untuk mendapatkan tubuh ideal tanpa harus melakukan diet yang
ketat dan berbahaya bagi kesehatan berdasarkan pada golongan darah dari
para pelaku diet tersebut. Untuk mendukungnya maka dibuatlah aplikasi
suatu aplikasi mobile yang menyediakan informasi mengenai berat badan ideal
dan juga pandauan diet berdasarkan pada golongan darah yang meminimalkan
kekeliruan mengenai pola makan pada ponsel. Tujuan pembuatan aplikasi ini
adalah membangun sebuah aplikasi yang dapat memberikan informasi kesehatan
yang tepat dan akurat, dan dapat menyimpan data kesehatan masyarakat secara
berkala agar dapat dipantau setiap saat. Aplikasi ini dirancang menggunakan
metode Fuzzy Logic yang berguna untuk mengetahui status indeks massa tubuh
apakah kurus, normal atau kelebihan berat badan. Dengan adanya aplilkasi ini
diharapkan masyarakat dapat dengan mudah memantau perubahan berat badan
dan nilai massa tubuhnya melalui data monitoring dan grafik berat badan dan
massa tubuh.
Kata Kunci: Panduan Diet Bedasrkan Golongan Darah, Android, Fuzzy
Logic
x
ABSTRACT
Hafizh Fauzan Umar (12130153), Diet Based Blood Type Based Android App
Mobile phones today are not only used to communicate, but have features that are
very helpful in everyday life. The expression of the world is being grasped as it
becomes reality in this day and age. Having an ideal body is certainly a dream for
most people. The problem that arises is when you want to choose what way can be
used to get the ideal body without having to do a strict diet and dangerous for
health based on the blood type of the dieters. To support it then made the
application of a mobile application that provides information about the ideal body
weight and also diet based on the type of diet that minimizes the error about the
diet on the phone. The purpose of making this application is to build an
application that can provide accurate and accurate health information, and can
store public health data on a regular basis to be monitored at any time. This
application is designed using Fuzzy Logic method that is useful to know the status
of body mass index whether thin, normal or overweight. With this aplilkasi
expected people can easily monitor changes in body weight and body mass value
through monitoring data and graphs body weight and body mass.
Keywords: Diet Guides by Blood Type, Android, Fuzzy Logic
xi
DAFTAR ISI
LEMBAR JUDUL SKRIPSI .................................................................................. i
LEMBAR PERSEMBAHAN ................................................................................. ii
LEMBAR PERNYATAAN KEASLIAN SKRIPSI ............................................... iii
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH ... iv
LEMBAR PERSETUJUAN DAN PENGESAHAN SKRIPSI .............................. v
LEMBAR PANDUAN PENGGUNAAN HAK CIPTA ........................................ vi
Kata Pengantar ........................................................................................................ vii
Abstraksi ................................................................................................................. ix
Daftar Isi.................................................................................................................. xi
Daftar Simbol .......................................................................................................... xiii
Daftar Gambar ......................................................................................................... xix
Daftar Tabel ............................................................................................................ xx
Daftar Lampiran ...................................................................................................... xxi
BAB I PENDAHULUAN
1.1. Latar Belakang Masalah ............................................................. 1
1.2. Perumusan Masalah .................................................................... 3
1.3. Maksud dan Tujuan .................................................................... 3
1.4. Metode Penelitian ....................................................................... 4
1.5. Ruang Lingkup ........................................................................... 5
BAB II LANDASAN TEORI
2.1 Tinjauan Jurnal ........................................................................... 6
2.2 Konsep Dasar Program ............................................................... 7
2.3 Metode Algoritma Fuzzy ............................................................ 11
2.4 Pengujian Sistem ........................................................................ 13
2.5 Peralatan Pendukung .................................................................. 14
xii
BAB III ANALISA DAN PERANCANGAN SOFTWARE
3.1 Analisa Kebutuhan Software ...................................................... 22
3.1.1 Identifikasi Masalah .......................................................... 22
3.1.2 Analisa Kebutuhan ........................................................... 23
3.2 Desain ........................................................................................ 24
3.2.1 Rancangan Algoritma ........................................................ 24
3.2.2 Database ............................................................................ 29
3.2.3 Software Architecture ....................................................... 31
A. Pseudocode Algoritma ................................................ 31
B. Permodelan UML ........................................................ 35
3.2.4 User Interface .................................................................... 41
3.3 Testing ....................................................................................... 47
3.4 Implementasi ............................................................................... 55
3.5 Support ........................................................................................ 63
BAB IV PENUTUP
4.1 Kesimpulan ................................................................................. 65
4.2 Saran ........................................................................................... 65
DAFTAR PUSTAKA
DAFTAR RIWAYAT HIDUP
LEMBAR KONSULTASI BIMBINGAN SKRIPSI
LAMPIRAN*
xiii
DAFTAR SIMBOL
A. Simbol Unified Modelling Language (UML)
1. Simbol Use Case Diagram
2. Simbol Class Diagram
CLASS
Merupakan bentuk umum dari objek-objek yang
memilki struktur dan tingkah laku (atribut,
operasi, relasi dan arti/definisi) yang sama. Kelas
merupakan bentuk abstrak dari objek di dunia
nyata.
ACTOR ( ACTOR )
Merupakan sebuah entitas yang berinteraksi
dengan use case. Nama aktor dituliskan di
bawah gambar tersebut. Aktor dapat berupa
orang atau sistem lain diluar sistem yang tengah
dianalis.
USECASE
menggambarkan sebuah fungsi tertentu yang
disediakan oleh sistem, sebuah subsistem atau
urutan pertukaran pesan antar anggota sistem
dan satu atau lebih aktor melakukan aksi yang
dikerjakan oleh sistem.
ASOCIATION
Garis ini digunakan untuk menghubungkan
antara aktor dengan use case. Hubungan ini
berarti actor menggunakan use case.
xiv
ASOSIASI (ASSOSIATION)
Asosiasi menggambarkan kardinalitas dari kelas
yang dihubungkan.
3. Simbol Activity Diagram
AWAL (START POINT)
Menujukkan tempat dimulainya diagram.
Lambang ini boleh diberi label dengan isi berupa
nama kejadian (event) yang memanggilnya.
Sebuah diagram aktivitas hanya boleh memiliki
sebuah awal.
AKHIR (END PONT)
Menunjukkan tempat berakhirnya diagram.
Lambang ini tidak memerlukan label. Diagram
aktivitas dapat memiliki satu atau lebih akhir.
ACTIVITY
Merupakan bentuk khusus dari keadaan (state)
dimana aktivitas menggambarkan kegiatan yang
dilakukan. Nama kegiatan dituliskan di tengah
lambang.
Fork and Join Nodes
Fork dan join mengindikasikan proses yang
parallel. Fork untuk percabangan proses
sedangkan join sebagai titik temu proses-proses
yang parallel menjadi satu flow.
xv
STATE TRANSITION
Menyatakan alur aktifitas.Alur menghubungkan
antara state awal, akhir maupun aktifitas. Alur
dapat menunjuk dari state aktifitas ke dirinya
sendiri.
4. Simbol Sequence Diagram
OBJECT
Object merupakan instance dari sebuah class
dan dituliskan tersusun secara horizontal.
Digambarkan sebagai sebuah class (kotak)
dengan nama obyek didalamnya yang diawali
dengan sebuah titik koma.
ACTOR
Actor juga dapat berkomunikasi dengan
object,maka actor juga dapat diurutkan
sebagai kolom. Simbol Actor sama dengan
symbol pada Actor Use Case Diagram.
LIFELINE
Mengindikasikan keberadaan object dalam
basis waktu. Notasi Lifeline adalah gari s
putus-putus vertikal yang ditarik dari sebuah
obyek.
xvi
MESSAGE
Message, digambarkan dengan anak panah
horizontal antara Activation. Message
mengindikasikan komunikasi antara object-
object.
RETURN
Menyatakan bahwa suatu objek yang telah
menjalankan suatu operasi atau metode
menghasilkan suatu kembalian ke objek
tertentu, arah panah mengarah pada objek
yang menerima kembalian
ACTIVATION
Activation dinotasikan sebagai sebuah kotak
segi empat yang digambar pada sebuah
lifeline. Activation mengindikasikan sebuah
obyek yang akan melakukan sebuah aksi.
5. Simbol Deployment Diagram
PACKAGE
Package merupakan sebuah bungkusan dari
satu atau lebih node
NODE
Menggambarkan aplikasi yang mampu
mengeksekusi program. Maupun Perangkat
keras yang tidak memiliki kemampuan
xvii
melakukan penghitungan/pemrosesan. Contoh
device adalah modem, monitor dan juga
speaker.
PENGHUBUNG
Menghubungkan antara node.
B. Simbol FlowChart
TERMINAL
Digambarkan untuk menggambarkan awal
dan akhir suatu kegiatan.
DECISION
Digunakan untuk menggabarkan proses
pengujian suatu proses yang ada.
FLOW LINE
Digunakan untuk menggambarkan
hubungan proses dari satu proses ke proses
lainnya.
INPUT-OUTPUT
Digunakan untuk menggambarkan proses
memasukan data yang berupa pembacaan
data dan sekaligus proses keluaran yang
berupa pencetakan data.
SUBROTINE
Digunakan untuk menggambarkan proses
pemanggilan sub program dan main
program (recursivitas).
xviii
C. Simbol Entity Relationship Diagram (ERD)
Entitas (Entity)
Adalah sesuatu yang dapat dibedakan
dalam dunia nyata dimana informasi yang
berkaitan dengannya dikumpulkan.
Attribut
Adalah karakteristik dari entity atau
relationship yang menyediakan penjelasan
detail tentang atau relationship tersebut.
Relationship
Adalah hubungan yang terjadi antara satu
atau lebih entity. Relationship tidak
mempunyai keberadaan fisik, kecuali yang
mewarisi hubungan antara entity tersebut.
Participation Constraint
Menjelaskan apakah keberadaan suatu
entity tergantung pada hubungannya
dengan entity lain.
xix
DAFTAR GAMBAR
Gambar III.1. Himpunan fuzzy pada Indeks massa tubuh .............................. 25
Gamabr III.2. Entity Relational Diagram ......................................................... 31
Gambar III.3. Activity Diagram ...................................................................... 35
Gambar III.4. Use Case Diagram .................................................................... 36
Gambar III.5. Class Diagram .......................................................................... 38
Gambar III.6. Sequence Diagram .................................................................... 39
Gambar III.7. Deployment Diagram ............................................................... 40
Gambar III.8. User Interface Menu Utama ..................................................... 41
Gambar III.9. User Interface Input User ......................................................... 42
Gambar III.10. User Interface Menu User ....................................................... 43
Gambar III.11. User Interface Kalkuator IMT ................................................. 44
Gambar III.11. User Interface Panduan Diet Berdasrkan Golongan Darah ..... 46
Gambar III.13. Flowchart Aplikasi ................................................................. 48
Gambar.III.14. Diagram Alir .......................................................................... 49
Gambar III.15. Implementasi Menu Utama ..................................................... 55
Gambar III.16. Implementasi List Data User ................................................... 56
Gambar III.17. Implementasi Input Data User................................................. 56
Gambar III.18. Implementasi Menu User ........................................................ 57
Gambar III.19. Implementasi Data User .......................................................... 57
Gambar III.20. Implementasi Kalkulator Indeks Massa Tubuh ....................... 58
Gambar III.21. Implementasi History Kalkulator IMT .................................... 58
Gambar III.22. Implementasi Grafik Berat ...................................................... 59
Gambar III.23. Implementasi Panduan Diet Berdasarkan Golongan Darah .... 59
Gambar III.24. Implementasi Golongan Darah A ............................................ 60
Gambar III.25. Implementasi Golongan Darah B ............................................ 60
Gambar III.26. Implementasi Golongan Darah AB ......................................... 61
Gambar III.27. Implementasi Golongan Darah O ............................................ 61
Gambar III.28. Implementasi Tips Menambah Berat Badan ........................... 62
Gambar III.29. Implementasi Profil Saya ........................................................ 62
Gamabr III.30. Implementasi Petunjuk ............................................................ 63
xx
DAFTAR TABEL
Tabel III.1. Tabel Ambang Batas Indeks Massa Tubuh Untuk Indoneia................ 25
Tabel III.2. Tabel Panduan Diet Berdasarkan Golongan Darah ............................. 28
Tabel III.3. Tabel Data User ................................................................................... 30
Tabel III.4. Tabel Data IMT .................................................................................... 30
Tabel III.5. Tabel Dekripsi Use Diagram................................................................ 37
Tabel III.6. Tabel Pengujian Interface Aplikasi ...................................................... 52
Tabel III.7. Tabel Pengujian Form Handle Aplikasi ............................................... 54
xxi
DAFTAR LAMPIRAN
Lampiran A. Screen Shoot Interface Pada Smartphone
Lampiran B.1 Source code Menu utama.java
Lampiran B.2 Source code Menu user.java
Lampiran B.3 Source code Panduan diet Berdasarkan Golongan Darah.java
Lampiran B.4 Source code Tips menambbah berat badan.java
Lampiran B.5 Source code Petunjuk.java
Lampiran B.6 Source code Profil Saya.java
1
BAB I
PENDAHULUAN
1.1. Latar Belakang Masalah
Pada era modern ini, perkembangan teknologi dan informasi berkembang
sangat pesat. Hampir semua kalangan masyarakat di dunia mengenal sistem
operasi Android, yang merupakan sistem operasi berbasis Linux yang dirancang
untuk perangkat seluler layar sentuh seperti smartphone dan tablet. Semakin
banyaknya aplikasi yang dihasilkan merupakan bukti dari berkembangnya sistem
operasi Android ini. Banyak aplikasi yang membahas tentang kesehatan pada
umumnya, tetapi tidak banyak yang membahas tentang kesehatan secara khusus,
misalnya kesehatan tubuh dengan berat badan yang ideal.
Memiliki tubuh yang ideal tentunya menjadi dambaan bagi sebagian besar
masyarakat. Banyak sekali cara yang dilakukan untuk dapat memperolehnya.
Mulai dari melakukan diet ketat yang berujung pada tergang gunya kesehatan
tubuh, hingga mencari cara singkat dengan harga mahal. Masalah yang timbul
adalah ketika seseorang belum mengetahui apakah tubuh yang dimiliki sudah
ideal. Masalah lainnya yang terjadi ketika ingin memilih cara apa yang dapat
digunakan untuk mendapatkan tubuh ideal tanpa harus melakukan diet yang ketat
dan berbahaya bagi kesehatan.
Menurut Nugraha dkk (2015:11), Diet di zaman sekarang ini sudah
menjadi suatu gaya hidup masyarakat di kota. Tingginya tingkat obesitas di
berbagai negara termasuk negara Indonesia membuat banyak orang
berbondong-bondong untuk melakukan program diet. Diet ini juga sudah
2
menjadi pilihan sebagian banyak orang yang selalu ingin menjaga pola
makannya. Diet yang dilakukan terkadang juga diberikan oleh seorang dokter
melalui resep dan kiat-kiat menjaga pola makan. Untuk mengatasi masalah
masalah tersebut perlu adanya aplikasi yang menyediakan informasi mengenai
berat badan ideal dan juga panduan diet.
Sekarang banyak website dan buku-buku yang menjelaskan bagaimana
diet sehat alami berdasarkan golongan darah. Akan tetapi ada beberapa faktor
yang kurang efisien, yaitu pengguna harus membuka komputer yang terkoneksi
internet terlebih dahulu untuk mengetahui apa saja yang harus dilakukan selama
diet atau pengguna harus membaca buku sehingga kebanyakan orang harus
membaca dua kali bahkan lebih agar mengerti apa yang ditulis.
Berdasarkan beberapa keterangan diatas, penulis membuat suatu aplikasi
android yang berisi informasi panduan diet berdasarkan golongan darah. Dengan
adanya panduan ini tidak perlu melakukan diet dengan ketat, hanya perlu
melakukannya dengan tekun dan perasaan yang bebas sehingga tidak perlu
menyiksa diri. Aplikasi ini dikhususkan pada perhitungan berat badan,
pengelompokan makanan apa yang di anjurkan dan harus dihindari berdasarkan
masing-masing golongan darah dengan menggunakan software-software
pendukung dalam pembuatan aplikasi android.
Penulisan ini bertujuan untuk menghasilkan sebuah aplikasi berbasis
android. Dengan adanya aplikasi android yang dapat menganalisa berat badan
ideal dan memasukkan data perkembangan berat badan tanpa harus menulis di
sebuah kertas serta memberikan panduan bagi para pelaku diet untuk menghindari
3
kekeliruan dalam menjalankan program diet, yang dikelompokkan berdasarkan
golongan darah.
Karena aplikasi ini belum banyak, maka penulis bermaksud untuk
mengangkat tema ini agar pemanfaatannya lebih berkembang lagi sehingga bisa
mempermudah masyarakat untuk menjaga pola makan.
Berdasarkan kendala atau masalah diatas penulis mengangkat sebuah tema
untuk penulisan Skripsi ini dengan judul : “APLIKASI PANDUAN DIET
BERDASARKAN GOLONGAN DARAH BERBASIS ANDROID”.
1.2. Perumusan Masalah
Rumusan masalah pada penulisan skripsi ini adalah sebagai berikut :
1. Apakah aplikasi Panduan Diet berdasarkan golongan darah berbasis android
dapat di bangun dengan menggunakan bahasa java.
2. Bagaimana membangun aplikasi perhitungan berat badan ideal dan panduan
diet berbasis android dengan menggunakan bahasa java dan dapat
diimplementasikan pada smartphone.
1.3. Maksud Dan Tujuan
Pada penulisan skripsi ini, penulis membuat aplikasi dengan maksud
sebagai berikut :
1. Mempermudah masyarakat untuk menghitung berat badan ideal.
2. Menghasilkan aplikasi yang dapat mengetahui data kesehatan berdasarkan
rumus medis untuk mempermudah dan membantu masyarakat untuk
4
mengetahui berat badan ideal dan makanan yang sehat menurut golongan
darah.
Sedangkan tujuan dari penyusunan skripsi ini adalah sebagai salah satu
syarat kelulusan pada program strata satu (S1) pada program studi Teknik
Informatika di Sekolah Tinggi Manajemen Informatika dan Komputer (STMIK)
Nusa Mandiri Jakarta.
1.4. Metode Penelitian
Metode penelitian yang digunakan penulis adalah metode Studi Pustaka
yaitu mengambil atau mengumpulkan data dari buku, jurnal, artikel di internet
maupun e-book tentang golongan darah berdasarkan golongan darah dan Android.
Selain itu digunakan pendekatan metode System Development Life Cycle (SDLC)
yang terdiri dari beberapa tahap yaitu:
1. Identifikasi (Identification)
Tahap ini merupakan proses mengidentifikasi masalah yaitu tentang banyak
masyarakat yang kesulitan mengetahui kesehatan pada tubuh, baik status
berat badan idealnya maupun makanan yang harus dikonsumsi.
2. Analisis (Analysis)
Tahapan ini adalah proses analisa kebutuhan, keperluan, dan penggunaan apa
saja yang dibutuhkan pada aplikasi yang akan di bangun. Tahapan ini akan
menghasilkan data yang berhubungan dengan keinginan pengguna dalam
pembuatan aplikasi, termasuk rencana yang akan dilakukan.
3. Perancangan (Designing)
perancangan aplikasi yang dapat diperkirakan sebelum dibuat coding. Proses
5
ini berfokus pada rancangan struktur data, arsitektur aplikasi, representasi
interface, dan detail (algoritma) prosedural.
4. Code
Tahap ini merupakan penerjemah rancangan dalam tahap desain ke dalam
bahasa pemrograman Java.
5. Uji Coba (Testing)
Tahap ini merupakan uji coba dan evaluasi terhadap program yang dibangun.
Sehingga analisis hasil implementasi yang didapat dari sistem disesuaikan
dengan kebutuhan sistem tersebut. Jika penerapan sistem sudah berjalan
dengan lancar, maka sistem dapat diimplementasikan.
6. Implementasi (Implementation)
Tahapan ini merupakan proses penerapan dari hasil rancangan yang telah
dihasilkan dengan membuat aplikasi menggunakan bahasa pemrograman Java
Android dengan software Eclipse sebagai editor.
1.5. Ruang Lingkup
Dalam penulisan skripsi ini, penulis membatasi pembahasan hanya
difokuskan untuk mengukur berat badan ideal. Berisi informasi mengenai
Panduan diet berdasarkan golongan darah yang dikhususkan pada jenis makanan
yang dikonsumsi. Algoritma yang dipakai pada aplikasi ini adalah metode fuzzy.
6
BAB II
LANDASAN TEORI
2.1. Tinjauan Jurnal
Berikut penulis sajikan 2 jurnal ilmiah yang relevan dengan masalah yang
penulis bahas.
Menurut Kusuma dkk (2011:157) :
Perkembangan teknologi yang cepat, terutama handphone, diikuti juga dengan
semakin pesatnya perkembangan software atau aplikasi yang tersedia. Kemajuan
di bidang software sangat membantu pengguna dalam melakukan berbagai
kegiatan seperti mengolah data, mengatur jadwal kegiatan, berselancar di dunia
maya dan sebagainya. Salah satu contohnya adalah Aplikasi Mobile Perhitungan
Indeks Massa Tubuh dan Berat Badan Ideal. Pengembangan aplikasinya
menggunakan bahasa pemrograman Java. Java berdiri diatas sebuah mesin
interpreter yang diberi nama Java Virtual Machine (JVM). Dalam penelitiannya
telah dibuat sebuah aplikasi yang dapat digunakan untuk menentukan indeks
massa tubuh dan berat badan ideal seseorang dengan alasan bahwa masih banyak
orang yang belum mengerti bagaimana cara menentukan apakah seseorang dalam
kondisi tubuh yang ideal atau tidak. Sedangkan manfaat yang diharapkan adalah
dapat memberikan kemudahan bagi pengguna untuk dapat mengetahui
berapakah nilai indeks massa tubuhnya dan juga untuk mengetahui berapakah
berat badan ideal yang disarankan.
Menurut Wijayanto dkk (2014:12) :
Untuk memberikan rekomendasi terhadap hasil pencarian resep makanan
yang akan dipilih oleh pengguna, diperlukan suatu metode yang dapat
mengolah data tentang menu makanan, misalnya logika fuzzy. Dari uraian
Pokok masalah diatas mempunyai kesamaan dengan latar belakang masalah
penulisan skripsi ini yaitu membuat aplikasi panduan diet berdasarkan golongan
darah, dan disini penulis menggunakan algoritma fuzzy. Logika fuzzy sudah
diterapkan dalam berbagai hal, mulai dari bidang matematika itu sendiri,
software, sampai pada hardware. Dalam bidang software, salah satu
penerapannya adalah pembuatan Sistem Pendukung Keputusan (SPK) Dalam
penelitian ini sebuah aplikasi mobile dibuat untuk memberikan rekomendasi
menu makanan menggunakan logika fuzzy. Teknologi mobile dipilih karena
kecenderungan penggunaan mobile yang terus meningkat perkembangannya
yang sangat pesat, terutama dalam hal pengembangan aplikasi. Selain itu
juga untuk memudahkan pengguna dalam menyusun menu makanannya.
7
Dari uraian pokok masalah diatas mempunyai kesamaan dengan latar
belakang masalah penulisan skripsi ini yaitu aplikasi panduan diet berdasarkan
golongan darah, dan disini penulis menggunakan algoritma metode fuzzy.
2.2. Konsep Dasar Program
Menurut Yulikuspartono (2009:1) “Program merupakan sederetan
instruksi atau statement dalam bahasa yang dimengerti oleh komputer yang
bersangkutan”. Bahasa pemrograman dapat dikelompokkan dalam berbagai
macam sudut pandang. Salah satu pengelompokkan bahasa pemrograman adalah
pendekatan dari notasi bahasa pemrograman tersebut, apakah lebih dekat ke
bahasa mesin atau ke bahasa manusia. Dengan cara ini, bahasa pemrograman
dapat dikelompokkan menjadi dua yakni bahasa tingkat rendah (low-level
languanges) dan bahasa tingkat tinggi (high-level languanges).
Menurut Binanto (2009 : 1) Pemrograman merupakan suatu kumpuluan
urutan perintah ke komputer untuk mengerjakan sesuatu. Program adalah
kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam
program adalah algoritma. Program ditulis dengan menggunakan bahasa
pemrograman. Jadi dapat dikatakan bahwa program adalah suatu implementasi
dari bahasa pemrograman.Bahasa tingkat tinggi merupakan bahasa yang mudah
dipahami oleh manusia contohnya adalah C, C++, Pascal, Perl, Java dan lain
sebagainya. Sedangkan bahasa tingkat rendah merupakan bahasa mesin atau
bahasa assembly.
Untuk program yang penulis buat, penulis menggunakan bahasa Java
Android dengan software Eclipse, Android SDK (Software Development Kit) dan
ADT (Android Development Tools).
8
2.2.1. Java
Menurut Bima (2011:2) ”Bahasa pemrograman Java pada awalnya dibuat
oleh James Gosling pada tahun 1995 sebagai bagian dari Sun Microsystem Java
Platform”. Sintaks Java banyak diturunkan dari C dan C++ tetapi lebih sederhana,
ketat dan mempunyai akses ke OS yang lebih terbatas. Hal ini karena Java
ditujukan sebagai bahasa pemrograman yang cukup sederhana untuk dipelajari
dan mudah dibaca.
Java ditujukan agar bisa “ditulis sekali, bisa jalan di manapun”. Sekarang
ini Java adalah bahasa pemrograman paling populer dan paling banyak digunakan
untuk membuat aplikasi baik aplikasi di embedded system, mobile, desktop hingga
web application. Java mempunyai empat prinsip penting yang dijadikan sebagai
tujuannya, keempat prinsip ini adalah :
1. Java harus sederhana, object oriented dan mudah dimengerti.
2. Java harus kuat dan aman.
3. Java harus netral terhadap arsitektur system (OS, processor) dan bisa jalan
di manapun.
4. Java harus bisa dijalankan dengan kinerja yang tinggi.
5. Java harus interpreted, threaded dan dinamis.
Dengan kelima prinsip di atas, aplikasi java mempunyai popularitas yang sangat
tinggi terutama di dunia enterprise application. Dimana semua prinsip di atas
sangat cocok untuk jenis aplikasi ini. Industri yang mempunyai budget tinggi
untuk IT seperti perbankan dan telekomunikasi menggunakan Java secara
ekstensif. Banyak aplikasi dengan skala raksasa dibangun menggunakan platform
Java.
9
2.2.2. Android
Menurut Murya (2013:1) “Android adalah sistem operasi berbasis Linux
yang digunakan oleh telepon seluler (mobile) seperti telepon pintar (smartphone)
dan komputer tablet”. Android menyediakan platform terbuka bagi para
pengembang untuk menciptakan aplikasi mereka sendiri yang digunakan
bermacam piranti bergerak.. Android kini telah menjelma menjadi sistem operasi
mobile terpopuler di dunia. Perkembangan Android tidak lepas dari peran sang
raksasa Google. Android pada mulanya didirikan oleh Andy Rubin, Rich Milner,
Nick Sears dan Chris White pada tahun 2003.
Android bergantung pada Linux Versi 2.6 untuk inti sistem pelayanan
seperti keamanan, manajemen memori, proses manajemen, susunan jaringan, dan
driver model. Kernel juga bertindak sebagai lapisan yang abstrak antara hardware
dan software stack-nya.
Dalam pengembangan aplikasi Android, ada beberapa hal yang harus
diperhatikan, antara lain:
1. Konsep yang dipakai adalah memisahkan coding untuk logika aplikasi
(algoritma) dan coding untuk tampilan aplikasi (user interface).
2. Untuk coding logika (algoritma), Android menggunakan bahasa
pemrograman Java. Sedangkan untuk pengaturan tampilan, Android
menggunakan XML.
2.2.3. Eclipse
Menurut Murya (2013:17) “Eclipse adalah sebuah IDE (Integrated
Development Environment) untuk mengembangkan perangkat lunak dan dapat
10
dijalankan di semua platform (platform-independent)”. Berikut ini adalah sifat
dari Eclipse:
1. Multi-platform
Target sistem operasi Eclipse adalah Microsoft Windows, Linux,Solaris,
AIX, HP-UX dan Mac OS X.
2. Multi-languange
Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi
Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman
lainnya, seperti C/C++ Cobol, Python, Perl PHP, dan lain sebagainya.
3. Multi-role
Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun bisa
digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak,
seperti dokumentasi, test perangkat lunak, pengembangan web, dan lain
sebagainya.
Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakan gratis
dan open source. Selain itu, kelebihan dari Eclipse yang membuatnya populer
adalah kemampuannya untuk dapat dikembangkan oleh pengguna dengan
komponen yang dinamakan plug-in.
2.2.4. Android SDK
Menurut Murya (2013:15-16) “Android SDK (Software Development Kit)
adalah tool API (Application Programming Interface) yang diperlukan untuk
memulai mengembangkan aplikasi pada platform Android atau dapat dikatakan
perangkat lunak yang digunakan dalam pengembangan aplikasi pada Android”.
11
Android SDK dapat di unduh melalui situs resminya yaitu
http//:www.developer.android.com/sdk/index/html.
2.2.5. Android Development Tools
Menurut Murya (2013:19) “Android Development Tools atau lebih dikenal
dengan sebutan ADT merupakan plugin pada Eclipse yang digunakan untuk
membuat project berbasis Android”. ADT wajib di-install sehingga Eclipse yang
sudah ter-install dikomputer dapat digunakan sebagai tempat atau media untuk
melakukan pemrograman Android.
2.3. Metode Algoritma Fuzzy
Menurut Rinaldi Munir dan Leony Lidya (2016:5) “Algoritma adalah
urutan langkah-langkah untuk menyelesaikan suatu persoalan”. Pada penulisan
ini, penulis menggunakan algoritma metode Fuzzy untuk menentukan status berat
badan ideal dengan rumus indeks massa tubuh. Fuzzy secara bahasa diartikan
sebagai kabur atau samar - samar. Suatu nilai dapat bernilai besar atau salah
secara bersamaan. Dalam fuzzy dikenal derajat keanggotaan yang memiliki
rentang nilai 0 (nol) hingga 1(satu). Berbeda dengan himpunan tegas yang
memiliki nilai 1 atau 0 (ya atau tidak).
Logika Fuzzy merupakan seuatu logika yang memiliki nilai kekaburan atau
kesamaran (fuzzyness) antara benar atau salah. Dalam teori logika fuzzy suatu nilai
bisa bernilai benar atau salah secara bersama. Namun berapa besar keberadaan
dan kesalahan suatu tergantung pada bobot keanggotaan yang dimilikinya. Logika
fuzzy memiliki derajat keanggotaan dalam rentang 0 hingga 1. Berbeda dengan
12
logika digital yang hanya memiliki dua nilai 1 atau 0. Logika fuzzy digunakan
untuk menterjemahkan suatu besaran yang diekspresikan menggunakan bahasa
(linguistic), misalkan besaran kecepatan laju kendaraan yang diekspresikan
dengan pelan, agak cepat, cepat, dan sangat cepat. Dan logika fuzzy menunjukan
sejauh mana suatu nilai itu benar dan sejauh mana suatu nilai itu salah. Tidak
seperti logika klasik (scrisp), suatu nilai hanya mempunyai 2 kemungkinan yaitu
merupakan suatu anggota himpunan atau tidak. Derajat keanggotaan 0 (nol)
artinya nilai bukan merupakan anggota himpunan dan 1 (satu) berarti nilai
tersebut adalah anggota himpunan.
Logika fuzzy adalah suatu cara yang tepat untuk memetakan suatu ruang
input kedalam suatu ruang output, mempunyai nilai kontinyu. Fuzzy dinyatakan
dalam derajat dari suatu keanggotaan dan derajat dari kebenaran. Oleh sebab itu
sesuatu dapat dikatakan sebagian benar dan sebagian salah pada waktu yang sama.
Ada beberapa hal yang perlu diketahui dalam memahami sistem fuzzy
(Aplikasi logika fuzzy untuk pendukung keputusan, Sri Kusumadewi,Hari
Purnomo, Edisi kedua, Graha Ilmu, 2010), yaitu:
a. Variable fuzzy
Variable fuzzy merupakan variabel yang hendak dibahas dalam suatu
sistem fuzzy. Contoh: umur, temperature, permintaan, dsb.
b. Himpunan Fuzzy
Himpunan fuzzy merupakan suatu grup yang mewakili suatu kondisi atau
keadaan tertentu dalam suatu variabel fuzzy.
13
c. Semesta Pembicaraan
Semesta pembicaraan adalah keseluruhan nilai yang diperbolehkan untuk
dioperasikan dalam suatu variabel fuzzy. Semesta pembicaraan merupakan
himpunan bilangan real yang senantiasa naik (bertambah) secara monoton
dari kiri ke kanan. Nilai semesta pembicaraan dapat berupa bilangan
positif maupun negatif. Ada kalanya nilai semesta pembicaraan ini tidak
dibatasi batas atasnya.
d. Domain
Domain himpunan fuzzy adalah keseluruhan nilai yang diijinkan dalam
semesta pembicaraan dan boleh dioperasikan dalam suatu himpunan fuzzy.
Seperti halnya semesta pembicaraan, domain merupakan himpunan
bilangan real yang senantiasa naik (bertambah) secara monoton dari kiri ke
kanan. Nilai domain dapat berupa bilangan positif dan bilangan negatif.
2.4. Pengujian Sistem
Pengujian merupakan bagian yang tidak terpisahkan dari perangkat lunak.
Proses pengujian juga mempengaruhi masa penggunaan perangkat lunak. Semakin
terperinci proses pengujian yang dilakukan, semakin lama rentang waktu yang
akan diperlukan pada satu pemeliharaan perangkat lunak dan untuk proses
selanjutnya. Pengujian perangkat lunak dapat dilakukan pada setiap tahapan
pengembangan hingga pada pemeliharaan perangkat lunak.
Pengujian perangkat lunak merupakan aktivitas menantang yang
melibatkan beberapa kegiatan yang saling berkaitan satu sama lain. Proses
14
pemilihan teknik pengujian merupakan titik tolak untuk melangkah pada aktivitas-
aktivitas berikutnya.
Pentingnya pengujian perangkat lunak dan implikasinya mengacu pada
kualitas perangkat lunak yang tidak dapat terlalu ditekan karena melibatkan
sederetan aktivitas produksi dengan peluang terjadinya kesalahan manusia yang
sangat besar dan ketidakmampuan manusia untuk melakukan dan berkomunikasi
dengan sempurna.
Aplikasi mobile yang telah dibuat, selanjutnya diuji melalui pengujian
perangkat lunak yang meliputi pengujian Black Box dan White Box.
2.4.1. Pengujian White Box
Menurut Rizky (2011:264) “Metode pengujian White Box adalah suatu
metode desain test case yang menggunakan struktur kontrol desain prosedural
(Structural Testing) untuk memperoleh test case”. Pengujian white box
mengasumsikan bahwa logik spesifik adalah penting dan harus diuji untuk
menjamin sistem melakukan fungsi dengan benar. Inti dari pengujian white box
adalah menguji berdasarkan kesalahan ketika kita siap menguji semua objek di
aplikasi dan semua metode eksternal atau publik dari objek. Sasaran dari
pengujian ini adalah memeriksa semua pernyataan program. Maksud dari
pemeriksaan adalah mencari kemungkinan kombinasi jalur statement .
2.4.2. Pengujian Black Box
Menurut Rizky (2011:261) “Metode black box merupakan pengujian user
interface oleh pengguna setelah sistem selesai dibuat dan di uji coba kepada
15
pengguna”. Metode pengujian ini didasarkan pada spesifikasi sistem. Dalam
sistem ini pengujian dilakukan dengan mengujikan semua navigasi yang ada,
pengujian ini memastikan apakah proses-proses yang dilakukan menghasilkan
output yang sesuai dengan rancangan.
2.5. Peralatan Pendukung
Menurut Rosa dan M. Shalahudin (2011:118) “UML (unified Modeling
Language) merupakan bahasa visual untuk pemodelan dan komunikasi mengenai
sebuah sistem dengan menggunakan diagram dan teks-teks khusus”. Bagaimana
elemen pada model-model yang kita buat berhubungan satu dengan yang lainnya
harus mengikuti standar yang ada. UML menyediakan bahasa pemodelan visual
yang memungkinkan bagi pengembang sistem untuk mengembangkan visi mereka
dalam bentuk yang baku, mudah dimengerti serta dilengkapi dengan mekanisme
yang efektif untuk berbagi (sharing) dan mengkomunikasikan rancangan mereka
dengan yang lain.
UML merupakan kesatuan dari bahasa pemodelan yang dikembangkan
oleh Booch, Object Modelling Technique (OMT) dan Object Oriented Software
Engineering (OOSE). Metode Booch terkenal dengan nama metode Object
OrientedDesign.. UML mendefinisikan diagram-diagram sebagai berikut :
1. Activity Diagram
Menurut Rosa dan M. Shalahudin (2013:161) “diagram aktivitas atau
activity
diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah
16
sebuah sistem atau proses bisnis atau menu yang ada pada perangkat lunak”. Pada
tahap, pemodelan bisnis, diagram aktivitas dapat digunakan untuk menunjukan
aliran kerja bisnis (business work-flow). Dapat juga digunakan untuk
menggambarkan aliran kejadian (flow of events) dalam use case.
Activity diagram mempunyai peran seperti halnya flowchart, akan tetapi
perbedaannya dengan flowchart adalah activity diagram bisa mendukung perilaku
paralel sedangkan flowchart tidak bisa. 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 actor
menggunakan sistem untuk melakukan aktivitas. Sama seperti state, standar UML
menggunakan segi empat dengan sudut membulat untuk menggambarkan
aktivitas. Decision digunakan untuk menggambarkan behaviour pada kondisi
tertentu, digambarkan dengan simbol belah ketupat. Untuk mengilustrasikan
proses paralel (fork and join) digunakan titik sinkronisasi yang dapat berupa titik,
garis horizontal atau vertikal. Aktivity diagram dapat dibagi menjadi beberapa
objectswimlane untuk menggambarkan objek mana yang bertanggung jawab
untuk aktivitas tertentu.
17
2. Use Case Diagram
Menurut Rosa dan M. Shalahudin (2013:155) “use case atau diagram use
case merupakan pemodelan untuk kelakuan (behavior) sistem informasi yang
akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih
aktor dengan sistem informasi yang akan dibuat”. Use case diagram
menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Hal 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 dan sebagainya.
Seorang 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, dan merancang test case untuk semua feature
yang ada pada sistem.
3. Sequence Diagram
Menurut Rosa dan M. Shalahudin (2013:165) “diagram sekuen
menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu
hidup objek dengan massage yang dikirimkan dan diterima antar objek”.
Sequence diagram terdiri antar dimensi vertikal (waktu) dan dimensi horizontal
(objek-objek yang terkait). Diawali dari apa yang men-trigger aktivitas tersebut,
proses dan perubahan apa saja yang terjadi secara internal dan output apa yang
dihasilkan. Masing-masing objek, termasuk aktor, memiliki lifeline vertikal.
Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya.
18
Pada fase desain berikutnya, message akan dipetakan menjadi operasi/metoda dari
class.Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya
diawali dengan diterimanya sebuah message. Untuk objek-objek yang memiliki
sifat khusus, standar UML mendefinisikan icon khusus untuk objek boundary,
controller dan persistent entity.
4. Class Diagram
Menurut Rosa dan M. Shalahudin (2013:141) “diagram kelas atau class
diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang
akan dibuat untuk membangun system”. Class menggambarkan keadaan
(atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk
memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan
struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain
seperti containment, pewarisan, asosiasi, dan lain-lain. Class memiliki tiga area
pokok, meliputi: Nama (dan stereo type), Atribut dan method.
Class dapat merupakan implementasi dari sebuah interface, yaitu class
abstrak yang hanya memiliki metoda. Interface tidak dapat langsung
diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class.
Dengan demikian interface mendukung resolusi metoda pada saat run-time.
5. Deployment Diagram
Menurut Rosa dan M. Shalahuddin (2013:154) “Deployment diagram
menunjukan konfigurasi komponen dalam proses eksekusi aplikasi”.
19
Bagian hadware adalah node yaitu nama untuk semua jenis sumber
komputasi. Ada dua tipe node yaitu processor dan device. Processor adalah node
yang bisa mengeksekusi sebuah komponen sedangkan device tidak. Device adalah
perangkat keras seperti printer, monitor dan perangkat keras.
Deployment diagram menggambarkan detail bagaimana komponen di-
deploy dalam infrastruktur sistem, di mana komponen akan terletak (pada mesin,
server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi
tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal. Sebuah node
adalah server, workstation, atau piranti keras lain yang digunakan untuk men-
deploy komponen dalam lingkungan sebenarnya.
6. ERD (Entity Relationship Diagram)
Menurut Sutanta (2011:91) “Entity Relationship Diagram (ERD)
merupakan suatu model data yang dikembangkan berdasarkan objek”. Entity
Relationship Diagram (ERD) digunakan untuk menjelaskan hubungan antar
data dalam basis data kepada pengguna secara logis. Entity Relationship
Diagram (ERD) didasarkan pada suatu persepsi bahwa real world terdiri atas
obyek-obyek dasar tersebut. Penggunaan Entity Relationship Diagram (ERD)
relatif mudah dipahami, bahkan oleh para pengguna yang awam. Bagi
perancang atau analis sistem, Entity Relationship Diagram (ERD) berguna
untuk memodelkan sistem yang nantinya, basis data akan di kembangkan.
Model ini juga membantu perancang atau analis sistem pada saat melakukan
analis dan perancangan basis data karena model ini dapat menunjukkan macam
data yang dibutuhkan dan kerelasian antar data didalamnya.
20
A. Komponen Entity Relationship Diagram (ERD)
Komponen Entity Relationship Diagram menurut Sutanta (2011:91) adalah
sebagai berikut :
1. Entitas
Entitas merupakan suatu objek yang dapat dibedakan dari lainnya yang dapat
diwujudkan dalam basis data. Objek dasar dapat berupa orang, benda, atau hal
yang keterangannya perlu disimpan didalam basis data. Untuk menggambarkan
sebuah entitas digunakan aturan sebagai berikut :
a. Entitas dinyatakan dengan simbol persegi panjang.
b. Nama entitas dituliskan didalam simbol persegi panjang.
c. Nama entitas berupa kata benda, tunggal.
d. Nama entitas sedapat mungkin menggunakan nama yang mudah dipahami
dan dapat menyatakan maknanya dengan jelas.
2. Atribut
Atribut merupakan keterangan-keterangan yang terkait pada sebuah entitas
yang perlu disimpan dalam basis data. Atribut berfungsi sebagai penjelas pada
sebuah entitas. Untuk menggambarkan atribut digunakan aturan sebagai
berikut:
a. Atribut digambarkan dengan simbol ellips.
b. Nama atribut dituliskan didalam simbol ellips.
c. Nama atribut merupakan kata benda, tunggal.
d. Nama atribut sedapat mungkin menggunakan nama yang mudah dipahami
dan dapat menyatakan maknanya dengan jelas.
21
3. Relasi
Relasi merupakan hubungan antara sejumlah entitas yang berasal
darihimpunan entitas yang berbeda. Aturan penggambaran relasi adalah sebagai
berikut :
a. Relasi dinyatakan dengan simbol belah ketupat.
b. Nama relasi dituliskan didalam simbol belah ketupat
c. Nama relasi berupa kata kerja aktif.
d. Nama relasi sedapat mungkin menggunakan nama yang mudah dipahami
dan dapat menyatakan maknanya dengan jelas.
22
BAB III
ANALISA DAN PERANCANGAN SOFTWARE
3.1. Analisa Kebutuhan Software
Pada bab ini disampaikan tahapan analisis kebutuhan perangkat lunak
yang merupakan langkah awal dalam pembuatan aplikasi ini. Analisis kebutuhan
ini meliputi identifikasi permasalahan dan analisis kebutuhan perangkat lunak.
Dengan tahapan-tahapan tersebut nantinya akan didapatkan pemecahan masalah
untuk membangun sebuah aplikasi.
3.1.1. Identifikasi Masalah
Langkah-langkah yang ditempuh yang berguna untuk mengetahui berbagai
masalah yang ada, sehingga dengan aplikasi “Aplikasi Panduan Diet Berdasarkan
Golongan Darah” berbasis android ini diharapkan bisa membantu permasalahan
yang dihadapi. Adapun beberapa masalah tersebut adalah sebagai berikut :
1. Banyak masyarakat yang tidak mengetahui berat badan ideal nya dan tidak
dapat memantau berat badannya.
2. Sekarang banyak website dan buku-buku yang menjelaskan bagaimana diet
sehat alami berdasarkan golongan darah. Akan tetapi ada beberapa faktor
yang kurang efisien karena Masyarakat lebih memilih aplikasi mobile karena
lebih mudah dan efisien.
3. Pengembangan dan penggunaan aplikasi android pada smartphone yang
semakin meningkat pada saat ini
23
3.1.2. Analisa Kebutuhan
Setelah melakukan identifikasi dan mendefinisikan masalah, selanjutnya
penulis merumuskan kebutuhan untuk menyelesaikan permasalahan yang
ditemukan sebagai berikut:
1. Spesifikasi Ponsel
Untuk dapat menjalankan aplikasi yang akan penulis buat. Berikut adalah
spesifikasi ponsel yang dibutuhkan:
a. Layar 5.0” (720x1280 pixel)
b. Processor Quad Core (2 GHz)
d. RAM (Random Acces Memory) 1 GB
e. Memory penyimpanan minimal 4 GB
f. Android versi 4.2 (Jelly Bean)
2. Spesifikasi Komputer
Untuk membuat dan mengembangkan aplikasi yang akan dibuat
dibutuhkan spesifikasi komputer hardware dan software sebagai berikut:
a. Processor Core I3 2.0 GHz
b. RAM 4 GB
c. Harddisk 500 GB
d. Windows 7
e. Eclipse 3.8
f. Android SDK
g. Android DevelopmentTool
24
3.2. Desain
3.2.1. Rancangan Algoritma
Dalam Fuzzy terdapat fungsi keanggotaan (membership function), yaitu
suatu kurva yang menunjukkan pemetaan titik-titik input data ke dalam nilai
keanggotaannya (sering juga disebut dengan derajat keanggotaan) yang memiliki
interval antara 0 sampai 1. Salah satu cara yang dapat digunakan untuk
mengutahui berat badan ideal adalah dengan mendapatkan nilai keanggotaan
status Indeks Massa Tubuh adalah dengan menggunakan nilai batas ambang
Indeks Massa Tubuh.
Indeks Massa Tubuh adalah berat badan dalam kilogram di bagi dengan
tinggi badan kuadrat dalam meter. Untuk mengetahui nilai Indeks Massa Tubuh
dapat di hitung dengan rumus sebagai berikut:
Hasil perhitungan indeks massa tubuh pada orang dewasa akan
disesuaikan dengan ambang batas indeks massa tubuh orang dewasa. Berikut
adalah tabel ambang batas pengelompokkan status Indeks Massa Tubuh untuk
orang Indonesia.
25
Tabel III.1
Tabel Ambang Batas Indeks Massa Tubuh Untuk Indonesia.
Kategori
Indeks Massa
Tubuh
Kurus
Kekurangan berat badan tingkat berat ˂ 17 kg/m²
Kekurangan berat badan tingkat ringan 17 – 18,5 kg/m²
Normal Berat badan ideal > 18,5 – 25,0 kg/m²
Gemuk
Kelebihan berat badan tingkat ringan > 25,0 – 27,0 kg/m²
Kelebihan berat badan tingkat berat > 27 kg/m²
Sumber : Depkes (2011)
Untuk menentukan status Indeks Massa Tubuh dapat menggunakan
variabel fuzzy. Berikut adalah gambar himpunan fuzzy dengan variabel indeks
massa tubuh.
Kurus Kurus Normal Obesitas Obesitas
Berat Ringan Ringan Berat
1
0.5
0
0 10 15 17 18 20 25 27 30
Gambar III.1.
Himpunan fuzzy pada variabel Indeks Massa Tubuh
26
Maka fungsi keanggotaannya dapat dirumuskan sebagai berikut :
1. Fungsi keanggotaan status Indeks Massa Tubuh Kurus Tingkat Berat
x ˂ 17
[ ] ( )
( ) ( ) 17 ˂ x ˂ 18,5
0 x > 18,5
2. Fungsi keanggotaan status Indeks Massa Tubuh Kurus Tingkat Ringan
x ˂ 17 atau x ˂ 20
[ ] ( )
( ) ( ) 17 ˂ x ˂ 18,5
( ) 18,5 ˂ x ˂ 20
3. Fungsi keanggotaan status Indeks Massa Tubuh Normal
0 x > 18,5 atau x ˂ 25
[ ] ( )
( ) ( ) 18,5 ˂ x ˂ 20
( ) ( ) 20 ˂ x ˂ 25
4. Fungsi keanggotaan status Indeks Massa Tubuh Obesitas Tingkat Ringan
0 x ˂ 25 atau x ˂ 27
[ ] ( )
( ) 20 ˂ x ˂ 25
( ) 25 ˂ x ˂ 27
27
5. Fungsi keanggotaan status Indeks Massa Tubuh Obesitas Tingkat Berat
0 x ˂ 25
[ ] ( )
( ) 25 ˂ x ˂ 27
1 x > 27
Untuk menghitung status Indeks Massa Tubuh adalah dengan mengambil
nilai keanggotaan fuzzy yang paling mendekati nilai 1 pada setiap fungsi
keanggotaan.
Pada metode fuzzy Tsukamoto, setiap konsekuen pada aturan yang
berbentuk if – then harus direpresentasikan dengan suatu himpunan fuzzy dengan
fungsi keanggotaan. yang dapat diselesaikan menggunakan perhitungan Indeks
Massa Tubuh. Dari tabel III.1 batas pengelompokan di atas, maka status Indeks
Massa Tubuh dapat diperoleh seperti berikut:
a. IF Batas Ambang Indeks Massa Tubuh <17 THEN status Indeks Massa
Tubuh Kurus Tingkat Berat Silahkan Lihat Tips Menambah Berat Badan
b. IF Batas Ambang Indeks Massa Tubuh ≥17 AND Batas Ambang Indeks
Massa Tubuh ≤18,5 THEN status Indeks Massa Tubuh Kurus Tingkat Ringan
Silahkan Lihat Tips Menambah Berat Badan.
c. IF Batas Ambang Indeks Massa Tubuh >18,5 AND Batas Ambang Indeks
Massa Tubuh ≤25 THEN status Indeks Massa Tubuh Normal.
d. IF Batas Ambang Indeks Massa Tubuh >25 AND Batas Ambang Indeks
Massa Tubuh ≤27 THEN status Indeks Massa Tubuh Obesitas Tingkat
Ringan Silahkan Lihat Panduan Diet Berdasarkan Golongan Darah.
28
e. IF Batas Ambang Indeks Massa Tubuh >27 THEN status Indeks Massa
Tubuh Gemuk Tingkat berat Silahkan Lihat Panduan Diet Berdasarkan
Golongan Darah.
Rumus-rumus di atas apabila diimplementasikan pada bahasa pemrograman java
seperti berikut
double hs=0; {hs=(dBB)/((dTB*dTB)/(100*100));} String hasil="-"; String ps="?";
if(hs<17){hasil="Kurus Tingkat Berat";ps="Tips Menambah Berat Badan";} else if(hs>17 && hs <=18.5){hasil="Kurus Tingkat Ringan";ps="Tips Menambah Berat Badan";} else if(hs>18.5 && hs <=25){hasil="Normal";ps="Selamat Anda Normal";} else if(hs>25 && hs <=27){hasil="Obesitas Ringan";ps="Panduan Diet;} else {hasil="Obesitass Berat";ps="Panduan Diet;} keterangan.setText(hasil); Toast.makeText(detailTBBB.this, ps,Toast.LENGTH_LONG).show();
Tabel III.2
Tabel Panduan Diet Berdasarkan Golongan Darah.
Panduan Diet Berdasarkan Golongan darah
Golongan Darah
A
Golongan Darah B
Golongan Darah AB
Golongan Darah O
Makanan yang di anjurkan
Makanan yang di anjurkan
Makanan yang di anjurkan
Makanan yang di anjurkan
Makanan yang di hindari
Makanan yang di hindari
Makanan yang di hindari
Makanan yang di hindari
Informasi Informasi Informasi Informasi
Sumber : http://www.isdaryanto.com/diet-sesuai-golongan-darah
Untuk Panduan diet berdasarkan golongan darah kita mengunakan metode
fuzzy Pada metode fuzzy Tsukamoto, setiap konsekuen pada aturan yang
berbentuk if – then harus direpresentasikan dengan suatu himpunan fuzzy dengan
29
fungsi keanggotaan. batas pengelompokan di atas, maka status Panduan diet
berdasarkan golongan darah dapat diperoleh seperti berikut:
a. IF Panduan Diet Berdasarkan Golongan Darah AND Golongan Darah A
THEN Makanan Yang Di Anjurkan dan Makanan Yang Di Hindari.
b. IF Panduan Diet Berdasarkan Golongan Darah AND Golongan Darah B
THEN Makanan Yang Di Anjurkan dan Makanan Yang Di Hindari.
c. IF Panduan Diet Berdasarkan Golongan Darah AND Golongan Darah AB
THEN Makanan Yang Di Anjurkan dan Makanan Yang Di Hindari.
d. IF Panduan Diet Berdasarkan Golongan Darah AND Golongan Darah O
THEN Makanan Yang Di Anjurkan dan Makanan Yang Di Hindari.
3.2.2. Database
Database adalah kumpulan data logis yang saling terkait, dan sebuah
deskripsi data, desain untuk memenuhi kebutuhan dari sebuah organisasi. Android
menyediakan database relasional yang ringan untuk setiap aplikasi menggunakan
SQLite. SQLite adalah sebuah embedded database dan open source database
yang menggabungkan antarmuka SQL dengan memori yang sangat kecil dan
kecepatan yang baik. Dalam pembuatan aplikasi ini penulis menggunakan 2
database. Dalam setiap database terdapat satu tabel, yaitu table user yang terdapat
dalam database data user dan table IMT yang terdapat dalam database imt.
30
Tabel III.3
Tabel Data User
Kolom Tipe Atribut Panjang Keterangan
id Integer Primary Key 11 Untuk menyimpan data id user
nama Text - 50 Untuk menyimpan data nama
usia Text - 5 Untuk menyimpan data usia
jenis_kelamin Text - 15 Untuk menyimpan data jenis kelamin
Tabel III.4
Tabel Data IMT
Kolom Tipe Atribut Panjang Keterangan
id Integer Primary Key 11 Untuk menyimpan data id IMT
iduser Text - 50 Untuk mengambil data dari table user
tanggal Text - 15 Untuk menyimpan data tanggal
timbang
tb Text - 5 Untuk menyimpan data tinggi badan
bb Text - 5 Untuk menyimpan data berat badan
mt Text - 10 Untuk menimpan data IMT
keterangan Text - 50 Untuk menyimpan data status IMT
31
1. ERD ( Entity Relational Diagram )
USER Menghitung IMT
nama usia
id Jenis_kelamin
Id user
tanggal tb
id
bb
mt
keterangan
1 1
Gambar III.2.
Entity Relational Diagram
3.2.3. Software Architecture
Berikut ini adalah sedikit pseudo code dari aplikasi Panduan Diet
Bedasarkan Golongan Darah.
A. Pseudo Code Algoritma
1. Pseudo code Algoritma Aplikasi
//Tombol ImageView Aplikasi ImageView login=(ImageView)findViewById(R.id.login);
login.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent i = new Intent(menuutama.this,
listdatauser.class);
startActivity(i);
}});
2. Pseudo code Algoritma Data User
//Tombol ImageView Data User ImageView datuser=(ImageView)findViewById(R.id.datuser); datuser.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { Intent i = new Intent(menuuser.this, Datauser.class); i.putExtra("_iduser",_iduser); startActivity(i); }});
3. Pseudo code Algoritma Kalkulator IMT
//Tombol ImageView Hitung IMT ImageView Kalkulator=(ImageView) findViewById(R.id.kalkulator);
32
kalkulator.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { Intent i = new Intent(menuuser.this, detailTBBB.class); i.putExtra("_iduser",_iduser); startActivity(i);
}});
4. Pseudo code Algoritma Grafik //Tombol ImageView Grafik ImageView grafik=(ImageView)findViewById(R.id.grafik);
grafik.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent i = new Intent(menuuser.this, grafik.class);
i.putExtra("_iduser",_iduser);
startActivity(i);
}});
5. Pseudo code Algoritma Histori
//Tombol ImageView Histori ImageView history=(ImageView)findViewById(R.id.histori);
history.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent i = new Intent(menuuser.this,
listdataTBBB.class);
i.putExtra("_iduser",_iduser);
startActivity(i);
}});
6. Pseudo code Algoritma Panduan Diet Golongan Darah
//Tombol ImageView Panduan Diet Golongan Darah ImageView
panduandiet=(ImageView)findViewById(R.id.panduandiet);
panduandiet.setOnClickListener(newView.OnClickListener()
{
public void onClick(View arg0) {
Intent i = new Intent(menuuser.this,
panduandietgolongandarah.class);
i.putExtra("_iduser",_iduser);
startActivity(i);
}});
7. Pseudo code Algoritma Golongan Darah A
//Tombol ImageView Golongan Darah A ImageView gola = (ImageView) findViewById (R.id.gola);
gola.setOnClickListener(new View.OnClickListener(){
public void onClick(View arg0) {
Intent i = new Intent
(panduandietgolongandarah.this,gola.class);
startActivity(i);
}});
8. Pseudo code Algoritma Golongan Darah B
//Tombol ImageView Golongan Darah B
33
ImageView gola = (ImageView) findViewById (R.id.golb);
golb.setOnClickListener(new View.OnClickListener(){
public void onClick(View arg0) {
Intent i = new Intent
(panduandietgolongandarah.this,golb.class);
startActivity(i);
}});
9. Pseudo code Algoritma Golongan Darah AB
//Tombol ImageView Golongan Darah AB ImageView gola = (ImageView) findViewById (R.id.golab);
golab.setOnClickListener(new View.OnClickListener(){
public void onClick(View arg0) {
Intent i = new Intent
(panduandietgolongandarah.this,golab.class);
startActivity(i);
}});
10. Pseudo code Algoritma Golongan Darah O
//Tombol ImageView Golongan Darah O ImageView gola = (ImageView) findViewById (R.id.golo);
golo.setOnClickListener(new View.OnClickListener(){
public void onClick(View arg0) {
Intent i = new Intent
(panduandietgolongandarah.this,golo.class);
startActivity(i);
}});
11. Pseudo code Algoritma Tips Menambah Berat Badan
//Tombol ImageView Tips Menambah Berat Badan ImageView
tipsgemuk=(ImageView)findViewById(R.id.tipsgemuk);
tipsgemuk.setOnClickListener(new View.OnClickListener()
{public void onClick(View arg0)
{Intent i = new intent
(menuuser.this,tipstambahberat.class);
i.putExtra("_iduser",_iduser);
startActivity(i);
}});
12. Pseudo code Algoritma Profil Saya
//Tombol ImageView Profil Saya ImageViewprofil=(ImageView)findViewById(R.id.profilsaya;
profil.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent i = new Intent(menuutama.this, tentang.class);
startActivity(i);
}});
34
13. Pseudo code Algoritma Petunjuk
//Tombol ImageView Petunjuk ImageView petunjuk=(ImageView)findViewById
(R.id.petunjuk);
petunjuk.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent i = new Intent(menuutama.this, petunjuk.class);
startActivity(i);
}});
14. Pseudo code Algoritma Keluar
//Tombol ImageView Keluar ImageView close = (ImageView) findViewById (R.id.close);
close.setOnClickListener(new View.OnClickListener(){
public void onClick(View arg0)
{keluarYN();
}});
public void keluar(){new AlertDialog.Builder(this)
.setTitle("Menutup Aplikasi")
.setMessage("Terima kasih, semoga aplikasi ini
bermanfaat untuk anda")
.setNeutralButton("Tutup", new
DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {
finish();
}})
.show();
}
public void keluarYN(){
AlertDialog.Builder ad=new
AlertDialog.Builder(menuutama.this);
ad.setTitle("Konfirmasi");
ad.setMessage("Anda ingin keluar aplikasi ?");
ad.setPositiveButton("Ya",new OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
keluar();
}});
ad.setNegativeButton("Tidak",new OnClickListener(){
public void onClick(DialogInterface arg0, int arg1) {
}});
ad.show();
36
Pada gambar di atas menggambarkan berbagai aliran aktivitas
dalam sistem yang sedang dirancang, bagaimana masing-masing alir yang
mungkin terjadi dan akhir dari aktivitas.
2. Use Case Diagram
Gambar III.4.
Use Case Diagram
37
Tabel III.5.
Tabel Dekripsi Use Diagram
No Use Case Deskripsi
1. Menu Utama Halaman pertama pada aplikasi
2. Aplikasi Untuk melihat daftar user dan membuat user baru
3. Nama Untuk memasukan nama
4. Usia Untuk memasukan usia
9. Profil saya Merupakan halaman profil pembuat program
10. Petunjuk Untuk memberikan informasi dari fitur penggunaan
aplikasi menampilkan informasi fungsi dari menu
menu aplikasi tersebut.
11. Keluar Untuk keluar dari aplikasi
38
3. Class Diagram
Gambar III.5.
Class Diagram
Gambar III.4. Aplikasi yang dibuat memiliki class diagram seperti
yang terlihat pada Tabel. Seperti menu utama, menu user, data user,
History , grafik, hitung IMT, panduan diet berdasarkan golongan darah,
tips menambah berat badan, profil saya dan petunjuk pada aplikasi ini dan
apa saja yang diperlukan serta cara membuatnya.
39
4. Sequence Diagram
Gambar III.6.
Sequence Diagram
Gambar III.5. Merupakan sequence diagram untuk
menggambarkan suatu interaksi yang terjadi antara user dengan aplikasi
panduan diet berdasarkan golongan darah.
40
5. Deployment Diagram
Gambar III.7.
Deployment Diagram
Gambar III.6. Merupakan diagram Deployment sebuah komputer/laptop
yang telah terinstal Eclipse dan SDK bisa membuat sebuah aplikasi android
sehingga sebuah aplikasi android yang dibuat bisa di install kedalam sebuah
handphone/smartphone yang besistem operasi android
3.2.4. User Interface
Berikut adalah user interface beserta penjelasan dari aplikasi yang dibuat.
41
1. User Interface Menu Utama
Saat aplikasi dibuka, pengguna akan masuk ke dalam halaman
utama, seperti gambar di bawah ini:
Gambar III.8.
User Interface Menu Utama
a. ImageView Aplikasi, merupakan halaman yang akan masuk ke dalam
daftar user dan menu user. Pengguna dapat memasukkan nama user
atau memilih nama user yang sudah ada. Kemudian akan masuk ke
dalam halaman menu user.
b. ImageView Profil Saya, merupakan halaman profil pembuat aplikasi.
c. ImageButton Petunjuk, terdapat informasi dari fitur penggunaan
aplikasi ini. Dimana pengguna atau user dapat memahami fungsi dari
aplikasi ini.
d. ImageView Keluar, merupakan tombol apabila pengguna ingin keluar
Aplikasi Profil
Saya
Keluar Petunjuk
42
2. User Interface Input Nama User
Ketika pengguna menekan ImageView Menu User, pengguna akan
masuk ke halaman daftar user dan pengguna bisa memilih nama user yang
sudah ada atau memasukkan data user baru, seperti gambar berikut:
Gambar III.9.
User Interface Input User
a. Nama, pengguna dapat memasukkan nama user
b. Usia, pengguna dapat memasukkan usianya
c. Jenis Kelamin, pengguna dapat memasukkan jenis kelamin.
d. Button Simpan/Ubah, pengguna dapat menyimpan dan atau mengubah
data, kemudian akan masuk ke menu user
e. Button Hapus, pengguna dapat menghapus data user yang sudah diinput
jika ada kesalahan dan dapat memasukkan data dari awal.
Nama
Usia
Jenis Kelamin
Simpan/Ubah
Hapus
43
3. User Interface Menu User
Setelah pengguna memilih nama user atau input nama baru,
pengguna akan masuk ke dalam menu user, seperti berikut:
Gambar III.10.
User Interface Menu User
a. ImageView Data User, merupakan data dari nama user yang dipilih saat
pengguna masuk ke daftar user di menu sebelumnya
b. ImageView Kalkulator IMT, merupakan halaman untuk memasukkan
data dari penimbangan berat badan dan pengukuran tinggi badan user.
c. ImageView Grafik, merupakan halaman grafik yang datanya diambil
dari data IMT.
d. ImageView History, merupakan halaman data dari riwayat
penimbangan berat badan dan pengukuran tinggi badan user.
e. ImageView Panduan Diet, merupakan halaman yang berisi tentang
informasi panduan diet berdasarkan golongan darah
Data User Kalkulator
IMT
History
IMT Grafik
Panduan
Diet Tips
44
f. ImageView Tips, merupakan halaman yang berisi tentang tips
menambah berat badan.
4. User Interface Kalkulator IMT
Gambar III.11.
User Interface Hitung IMT
a. Nama otomatis muncul dan tidak dapat diganti
b. Jenis Kelamin akan otomatis muncul dan tidak dapat diganti
c. Tanggal Timbang, akan otomatis muncul dan tidak dapat diganti
Nama
Jenis Kelamin
Tanggal Timbang
Usia
Tinggi
Berat
Massa Tubuh :
Status IMT :
Simpan
Hapus
Hitung IMT
Pesan
45
d. Tinggi, pengguna dapat memasukkan data tinggi badan yang sudah
diukur dalam satuan cm.
e. Berat, pengguna dapat memasukkan data berat badan yang sudah
ditimbang dalam satuan kg.
f. Button Hitung IMT, pengguna dapat menghitung status Indeks Massa
Tubuh.
g. Massa Tubuh, pengguna dapat melihat hasil perhitungan Indeks Massa
Tubuh.
h. Status IMT, pengguna dapat melihat status Indeks Massa Tubuh
i. Pesan, pengguna akan mendapat pesan apabila hasil dari hitung IMT
obbesitas maka akan muncul pesan untuk melakukan panduan diet
berdasarkan golongan darah di Menu User dan apabila kurus maka akan
muncul untuk melihat tips menambah berat badan Di menu user.
j. Button Simpan, pengguna dapat menyimpan data dan kemudian akan
masuk ke menu History.
k. Button Hapus, pengguna dapat menghapus data yang sudah diinput jika
ada kesalahan dan dapat memasukkan data dari awal.
46
5. User Interface Panduan Diet Berdasarkan Golongan Darah
Gambar III.12.
User Interface Panduan Diet Berdasarkan Golongan Darah
a. ImageView Golongan Darah A, merupakan halaman yang berisi tentang
informasi makanan yang bermanfaat dan makanan yang di hindari dari
golongan darah A.
b. ImageView Golongan Darah B, merupakan halaman yang berisi tentang
informasi makanan yang bermanfaat dan makanan yang di hindari dari
golongan darah B.
c. ImageView Golongan Darah AB, merupakan halaman yang berisi
tentang informasi makanan yang bermanfaat dan makanan yang di
hindari dari golongan darah AB.
d. ImageView Golongan Darah O, merupakan halaman yang berisi tentang
informasi makanan yang bermanfaat dan makanan yang di hindari dari
golongan darah O.
Golongan
Darah A
Golongan
Darah B
Golongan
Darah
O
Golongan
Darah
AB
47
3.3. Testing
Untuk melakukan pengujian pada aplikasi yang telah dibuat penulis
menggunakan metode Whitebox dan Blackbox testing.
3.3.1. Whitebox
Pada pengujian Whitebox ini yang penulis uji adalah perintah prosedural
dari keseluruhan program secara utuh untuk menjamin operasi-operasi internal
sesuai dengan spesifikasi yang telah ditetapkan dengan menggunakan struktur
kendali dari prosedur yang dirancang. Grafik alir pada Whitebox adalah sebagai
berikut:
50
Pada aplikasi ini terdapat beberapa sample yang diuji yaitu pengujian white box
aplikasi Panduan Diet Berdasarkan Golongan darah. Pseudocode dari diagram alir
aplikasi Panduan Diet Berdasarkan Golongan darah :
double hs=0; 1
{hs=(dBB)/((dTB*dTB)/(100*100));} 2
Resources res = getResources();
Stringstrhs = String.format(res.getString(R.string.strhs),
hs);
if(hs<17) 3
{hasil="Kurus Tingkat Berat"
4
;ps="Anda kurus, silahkan melihat tips menambah berat badan di
Menu User";}
else if(hs>17 && hs <=18.5) 5
{hasil="Kurus Tingkat Ringan";ps="Anda kurus, silahkan
6
melihat tips menambah berat badan di Menu User";}
else if(hs>18.5 && hs <=25) 7
{hasil="Normal";ps="Selamat berat badan anda normal";}
8
else if(hs>25 && hs <=27) 9
{hasil="Obesitas Ringan diet berdasarkan golongan darah
10
di Menu User";}
else
11
{hasil="Obesitas Berat";ps="Anda kegemukan berat, silahkan
12
melihat panduan diet berdasarkan golongan darah
di Menu User";}
Toast.makeText(detailTBBB.this, ps,Toast.LENGTH_LONG) 13
.show();
}}};
51
Kompleksistas siklomatis atau pengukuran kuantitatif terhadap kompleksitas logis
suatu program, dari grafik alir dapat diperoleh dengan perhitungan :
Dimana :
E : Jumlah edge grafik alir yang ditandakan dengan gambar panah.
N: Jumlah simpul grafik alir yang ditandakan dengan gambar lingkaran.
Sehingga kompleksitas siklomatisnya adalah :
V(G) = 17 – 13 + 2 = 6
Basis set yang dihasilkan dari jalur independent secara linier adalah jalur sabagai
berikut :
1 – 2 – 3 – 4 – 13
1 – 2 – 3 – 5 – 6 – 13
1 – 2 – 3 – 5 – 7 – 8 – 13
1 – 2 – 3 – 5 – 7 – 9 – 10 – 13
1 – 2 – 3 – 5 – 7 – 9 – 11 – 12 – 13
1 – 2 – 3 – 5 – 7 – 9 – 11 - 13
Basis set yang dihasilkan
Simpul telah dieksekusi sekali, berdasarkan ketentuan tersebut diatas dari segi
kelayakan software, sistem telah memenuhi syarat.
V(G) = E – N + 2
52
3.3.2. Blackbox
Pengujian dibagi 2, yaitu pengujian interface aplikasi, dan pengujian form
handle aplikasi.
1. Pengujian Interface Aplikasi
Pengujian interface aplikasi bertujuan untuk mengetahui fungsionalitas
dari elemen-elemen interface yang terdapat di dalam halaman pada
aplikasi. Elemen-elemen interface yang diujikan terutama adalah elemen
ImageView.
Tabel III.6
Tabel Pengujian Interface Aplikasi
No Test Case Hasil yang
diharapkan Hasil yang didapatkan Keterangan
1. Pengujian
ImageView
Aplikasi
Aplikasi akan
menampilkan halaman
menu user, terdiri dari
ImageButton data
user, hitung IMT, data
IMT dan grafik berat
Aplikasi menampilkan
halaman menu user,
terdiri dari ImageButton
data user, hitung IMT,
data IMT dan grafik berat
Berhasil
3. Pengujian
ImageView Data
User
Aplikasi akan
menampilkan halaman
data user
Aplikasi menampilkan
halaman data user
Berhasil
4. Pengujian
ImageView
Kalkulator IMT
Aplikasi akan
menampilkan halaman
Kalkulator IMT
Aplikasi menampilkan
halaman Kalkulator IMT
Berhasil
5. Pengujian
ImageView
History
Aplikasi akan
menampilkan halaman
History
Aplikasi menampilkan
halaman History
Berhasil
6. Pengujian
ImageView Grafik
Aplikasi akan
menampilkan halaman
Aplikasi menampilkan
halaman grafik
Berhasil
53
grafik
7. Pengujian
ImageView
Pandaun Diet
berdasarkan
Golongan Darah
Aplikasi akan
menampilkan panduan
Diet Bedasarkan
golongan Darah
Aplikasi menampilkan
panduan Diet Bedasarkan
golongan Darah
Berhasil
8. Pengujian
ImageView
Golongan darah A
Aplikasi akan
menampilkan
makanan yang
bermanfaat dan yang
dihindari dari
golongan darah A
Aplikasi menampilkan
makanan yang bermanfaat
dan yang dihindari dari
golongan darah A
Berhasil
9. Pengujian
ImageView
Golongan darah B
Aplikasi akan
menampilkan
makanan yang
bermanfaat dan yang
dihindari dari
golongan darah B
Aplikasi menampilkan
makanan yang bermanfaat
dan yang dihindari dari
golongan darah B
Berhasil
10. Pengujian
ImageView
Golongan darah
AB
Aplikasi akan
menampilkan
makanan yang
bermanfaat dan yang
dihindari dari
golongan darah AB
Aplikasi menampilkan
makanan yang bermanfaat
dan yang dihindari dari
golongan darah AB
Berhasil
11. Pengujian
ImageView
Golongan darah O
Aplikasi akan
menampilkan
makanan yang
bermanfaat dan yang
dihindari dari
golongan darah O
Aplikasi menampilkan
makanan yang bermanfaat
dan yang dihindari dari
golongan darah O
Berhasil
12. Pengujian
ImageView Tips
Menambah Berat
Aplikasi akan
menampilkan Tips
menambah Berat
Aplikasi menampilkan
Tips menambah Berat
badan
Berhasil
54
Badan badan
13. Pengujian
ImageView Profil
Saya
Aplikasi akan
menampilkan halaman
profil saya
Aplikasi menampilkan
halaman profil saya
Berhasil
14. Pengujian
ImageView
Petunjuk
Aplikasi akan
menampilkan halaman
petunjuk
Aplikasi menampilkan
halaman petunjuk
Berhasil
15 Pengujian
ImageView Keluar
akan keluar dari
aplikasi
Keluar dari aplikasi Berhasil
2. Pengujian Form Handle Aplikasi
Pengujian form handle aplikasi bertujuan untuk mengetahui kemampuan
aplikasi untuk menangani bermacam-macam input yang diberikan oleh
user.
Tabel III.7
Tabel Pengujian Form Handle Aplikasi
No Test Case Hasil yang
diharapkan
Hasil yang
didapatkan Keterangan
1. Pengujian input
user baru
Input akan
menampilkan profil
user yg terdiri dari
nama user, usia, jenis
kelamin
Input menampilkan
profil user yg terdiri
dari nama user, usia,
jenis kelamin
Berhasil
2. Pengujian input
Kalkulator IMT
Input akan akan
menampilkan tanggal
timbang, berat/tinggi
badan user, massa
tubuh dan status IMT
Serta pesan akan
muncul pesan untuk
Input menampilkan
tanggal timbang,
berat/tinggi badan
user, massa tubuh dan
status IMT serta
muncul pesan untuk
melakukan panduan
Berhasil
55
melakukan panduan
diet berdasarkan
golongan darah di
Menu User dan apabila
kurus maka akan
muncul untuk melihat
tips menambah berat
badan Di menu user.
diet berdasarkan
golongan darah di
Menu User dan apabila
kurus maka akan
muncul untuk melihat
tips menambah berat
badan Di menu user.
Dari semua pengujian yang telah dilakukan, aplikasi dapat berjalan dengan
baik pada perangkat yang memiliki spesifikasi yang telah dibutuhkan pada analisa
kebutuhan.
3.4. Implementasi
Gambar III.15.
Implementasi Menu Utama
58
Gambar III.20.
Implementasi Kalkulator Indeks Massa Tubuh (IMT)
Gambar III.21.
Implementasi History Kalkulator IMT
59
Gambar III.22.
Implementasi Grafik Berat
Gambar III.23.
Implementasi Panduan Diet Berdasarkan Golongan Darah
63
Gambar III.30.
Implementasi Petunjuk
3.5. Support
3.5.1. Perangkat Keras (Hardware) Pada Emulator
Perangkat keras (hardware) pada emulator yang digunakan untuk
menjalankan program tersebut adalah:
1. Layar 5,4” (1024x600 pixel)
2. Processor ARM
3. RAM (Random Acces Memory) 512 MB
4. Android versi 4.2 (Jelly Bean)
3.5.2. Perangkat Keras (Hardware) Pada Komputer
Perangkat keras (hardware) pada komputer yang digunakan untuk
menjalankan program tersebut adalah:
64
1. Laptop HP Pavilion 14
2. Processor Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz 2.60GHz
3. Harddisk 750 GB
4. RAM 4GB
3.5.3. Perangkat Lunak (Software)
Perangkat lunak (software) yang dibutuhkan untuk mengembangkan
aplikasi dan pembuatan skripsi ini adalah sebagai berikut:
1. Windows 10
2. Microsoft office 2010
3. Eclipse 3.8
4. Android SDK
5. ADT (Android Development Tool)
6. Microsoft Visio 2010
7. StarUML
65
BAB IV
PENUTUP
4.1. Kesimpulan
Setelah dilakukan pengujian dan analisa pada aplikasi Panduan Diet
Berdasarkan Golongan Darah Berbasis Android ini, maka dapat diperoleh
beberapa kesimpulan sebagai berikut :
1. Aplikasi ini memberikan kemudahan bagi masyarakat untuk melakukan
perhitungan berat badan ideal.
2. Aplikasi ini memberikan informasi mengenai panduan diet Berdasrkan
golongan Darah yang berisi makanan yang bermanfaat dan makan yang
dihindari.
3. Panduan Diet Berdasarkan Golongan Darah ini di harapkan user dapat
memantau perubahan berat badan dan massa tubuh.
4. Panduan Diet Berdasarkan Golongan Darah ini berhasil dibangun
menggunakan android 4.2 API.
4.2. Saran
Penulis menyadari bahwa skripsi ini masih kurang dari sempurna, untuk
menambah kesempurnaan dari konsep aplikasi Panduan Diet Berdasarkan
Golongan Darah ini dan memaksimalkan pemanfaatan bagi pengguna, maka :
1. Penulis menyarankan agar aplikasi ini dapat dikembangkan lagi dengan
tampilan yang lebih menarik.
66
2. Aplikasi yang di kembangkan lebih lanjut di harapkan dapat memberikan
informasi yang lebih lengkap dan dapat dengan mudah untuk di akses oleh
masyarakat luas.
DAFTAR PUSTAKA
.
Aldi Sudarto Nugraha, Iyan Sugianto, Tri Ferga Prasetyo. 2015. Analisis Sistem
Pakar Cara Diet Berdasarkan Golongan Darah. Teknik Informatika,
Universitas Majalengka. Infotech ISSN : 2460-1861
Binanto, Iwan. 2009. Konsep Bahasa Pemograman. Yogyakarta: Andi Offset
Bima, Ifnu. 2011. Java Desktop. Diambil dari: http://project-
template.googlecode.com/files/Java%20Desktop%20-
%20Ifnu%20Bima.pdf. (27 Desember 2014)
Depkes 2011. Pedoman Praktis Memantau Status Gizi Orang Dewasa. Diambil
dari: http://gizi.depkes.go.id/wp-content/uploads/2011/10/ped-praktis-stat-
gizi-dewasa.doc. (3 Agustus 2017)
Destiya Dian Kusuma Wijayanto, Hindriyanto, D.P, Hendro Steven Tampake.
2014. Pemberian Rekomendasi Menu Makanan Menggunakan Logika
Fuzzy. Teknologi Informasi, Universitas Kristen Satya Wacana.Seminar
Nasional Aplikasi Teknologi Informasi (SNATI) Yogyakarta, 21 Juni 2014.
ISSN 1907-5022
Isdaryanto. 2011. Diet Sesuai Golongan Darah. Diambil dari:
http://www.isdaryanto.com/diet-sesuai-golongan-darah. (1 Juni 2017)
Kusuma, B.J, Pinandita Tito. 2011. Rancang Bangun Aplikasi Mobile Perhitungan
Indeks Massa Tubuh dan Berat Badan Ideal. Teknik Informatika,
Universitas Muhammadiyah Purwokerto. JUITA ISSN : 2086-9398 Vol.I
Nomor 4, November 2011
Kusumadewi,S. Hari,Purnomo. 2010. Aplikasi Logika Fuzzy. Yogyakarta. Graha
Ilmu.
Lily Turangan. 2017. 5 Cara Sehat Menambah Berat Badan. Diambil dari:
http://lifestyle.kompas.com/read/2017/03/14/100500823/5.cara.sehat.mena
mbah.berat.badan. (5 Juni 2017)
Murya, Yosef. 2013. Pemrograman Android Black Box. Jakarta: Jasakom
Ramadhani, Cipta. 2015. Dasar Algoritma & Struktur Data dengan Bahasa
Java. Yogyakarta : Penerbit Andi
Rinaldi Munir dan Leony lidya. 2016. Algoritma dan Pemograman. Bandung.
Informatika Bandung
Rizky,Soetomo. 2011. Konsep Dasar Rekayasa Perangkat Lunak.Jakarta: Prestasi
Pustaka Publisher
Sukamto, Rosa Ariani dan M. Shalahuddin. 2011. Modul Pembelajaran Rekayasa
Perangkat Lunak (Terstruktur dan Berorientasi Objek), Modula, Bandung
Sukamto, Rosa Ariani dan M. Shalahuddin. 2013. Rekayasa Perangkat Lunak
Terstruktur
Dan Berorientasi Objek. Informatika. Bandung
Sutanta, Edhy. 2011. Basis Data Dalam Tinjauan Konseptual. Yogyakarta : Andi
Offset.
Yulikuspartono, 2009. Pengantar Logaritma dan Algoritma, Yogyakarta: Andi
DAFTAR RIWAYAT HIDUP
A. Biodata Mahasiswa
NIM : 12130153
Nama : Hafizh Fauzan Umar
Tempat dan Tanggal Lahir : Jakarta, 8 Januari 1996
Alamat Lengkap : Jl. Bojong Tua No.25, Rt 006/01
Jatimakmur, Pondok Gede, Bekasi 17413
Agama : Islam
Email : [email protected]
No. Telp : 08128859957 / 08981071665
B. Pendidikan Formal
1. 2001 - 2007 SD Negeri Jatiwaringin 15, Bekasi
2. 2007 - 2010 SMP Negeri 6, Bekasi
3. 2010 - 2013 SMKT Kapin, Jakarta Timur
C. Pendidikan Non Formal
1. Tangal 2 April 2012 - 13 April 2012, PELATIHAN
KEWIARAUSAHAAN DAN TEKNISI HANDPHONE, di PUSAT
PELATIHAN PENDIDIKAN KEJURUAN JAKARTA TIMUR.
(Setifikasi)
2. 2012, AWERENESS TRAINING ISO 9001:2008 (Quality Management
System). (Sertifikasi)
Jakarta, 22 Agustus 2017
Saya yang bersangkutan,
Hafizh Fauzan Umar
Lampiran B.1 Source code Menu utama.java
package com.panduandietgoldarah;
import com.panduandietgoldarah.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
public class menuutama extends Activity
{
//called when the activity is first created
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.menuutama);
ImageView login = (ImageView) findViewById (R.id.login);
login.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
Intent i = new Intent (menuutama.this,listuser.class);
startActivity(i);
}
});
ImageView profil = (ImageView) findViewById (R.id.profilsaya);
profil.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
Intent i = new Intent (menuutama.this,profilsaya.class);
startActivity(i);
}
});
ImageView petunjuk = (ImageView) findViewById (R.id.petunjuk);
petunjuk.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
Intent i = new Intent (menuutama.this,petunjuk.class);
startActivity(i);
}
});
ImageView close = (ImageView) findViewById (R.id.close);
close.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
keluarYN();
}
});
}
public void keluar(){
new AlertDialog.Builder(this)
.setTitle("Menutup Aplikasi")
.setMessage("Terima kasih, semoga aplikasi ini bermanfaat untuk anda")
.setNeutralButton("Tutup", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {
finish();
}})
.show();
}
public void keluarYN(){
AlertDialog.Builder ad=new AlertDialog.Builder(menuutama.this);
ad.setTitle("Konfirmasi");
ad.setMessage("Anda yakin ingin keluar aplikasi ?");
ad.setPositiveButton("Ya",new OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
keluar();
}});
ad.setNegativeButton("Tidak",new OnClickListener(){
public void onClick(DialogInterface arg0, int arg1) {
}});
ad.show();
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
keluarYN();
return true;
}
return super.onKeyDown(keyCode, event);
}
// @Override
//public boolean onCreateOptionsMenu(Menu menu){
// new MenuInflater(this).inflate(R.menu.add, menu);
// return(super.onCreateOptionsMenu(menu));
//}
//@Override
//public boolean onOptionsItemSelected(MenuItem item){
// switch (item.getItemId()) {
// case R.id.add:
// startActivity(new Intent (this, Datauser.class));
// return true;
// default:
// return super.onOptionsItemSelected(item);
// }
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.getinformasi, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.info:
info();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void info(){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Aplikasi dibuat oleh Hafizh Fauzan Copyrights 2017")
.setCancelable(false)
.setNeutralButton("Semoga bermanfaat!",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
}
Lampiran B.2 Source code Menu user.java
package com.panduandietgoldarah;
import com.panduandietgoldarah.R;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.DialogInterface.OnClickListener;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class menuuser extends Activity {
String _iduser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menuuser);
_iduser=getIntent().getStringExtra("_iduser");
ImageView datuser=(ImageView)findViewById(R.id.datuser);
datuser.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent i = new Intent(menuuser.this, Datauser.class);
i.putExtra("_iduser",_iduser);
startActivity(i);
}});
ImageView kalkulator=(ImageView)findViewById(R.id.kalkulator);
kalkulator.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent i = new Intent(menuuser.this, kalkulator.class);
i.putExtra("_iduser",_iduser);
startActivity(i);
}});
ImageView grafik=(ImageView)findViewById(R.id.grafik);
grafik.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent i = new Intent(menuuser.this, grafik.class);
i.putExtra("_iduser",_iduser);
startActivity(i);
}});
ImageView history=(ImageView)findViewById(R.id.histori);
history.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent i = new Intent(menuuser.this, history.class);
i.putExtra("_iduser",_iduser);
startActivity(i);
}});
ImageView panduandiet=(ImageView)findViewById(R.id.panduandiet);
panduandiet.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent i = new Intent(menuuser.this, panduandietgolongandarah.class);
i.putExtra("_iduser",_iduser);
startActivity(i);
}});
ImageView tipsgemuk=(ImageView)findViewById(R.id.tipsgemuk);
tipsgemuk.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent i = new Intent(menuuser.this, tipstambahberat.class);
i.putExtra("_iduser",_iduser);
startActivity(i);
}});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.getinformasi, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.info:
info();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void info(){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Aplikasi dibuat oleh Hafizh Fauzan Copyrights 2017")
.setCancelable(false)
.setNeutralButton("Semoga bermanfaat!",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
}
// public void keluarYN(){
// AlertDialog.Builder ad=new AlertDialog.Builder(menuanak.this);
// ad.setTitle("Konfirmasi");
// ad.setMessage("Apakah anda ingin keluar?");
// ad.setPositiveButton("Ya",new OnClickListener(){
// @Override
// public void onClick(DialogInterface dialog, int which) {
// finish();
// }});
//
// ad.setNegativeButton("Tidak",new OnClickListener(){
// public void onClick(DialogInterface arg0, int arg1) {
// }});
// ad.show();
// }
//
//
// public boolean onKeyDown(int keyCode, KeyEvent event) {
// if (keyCode == KeyEvent.KEYCODE_BACK) {
// keluarYN();
// return true;
// }
// return super.onKeyDown(keyCode, event);
// }
// @Override
// public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
// getMenuInflater().inflate(R.menu.activity_main, menu);
// return true;
// }
//public static String userlogin = "";
Lampiran B.3 Panduan diet Berdasarkan Golongan Darah.java
package com.panduandietgoldarah;
import com.panduandietgoldarah.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
public class panduandietgolongandarah extends Activity
{
//called when the activity is first created
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.panduandietgoldarah);
ImageView gola = (ImageView) findViewById (R.id.gola);
gola.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
Intent i = new Intent (panduandietgolongandarah.this,gola.class);
startActivity(i);
}
});
ImageView golb = (ImageView) findViewById (R.id.golb);
golb.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
Intent i = new Intent (panduandietgolongandarah.this,golb.class);
startActivity(i);
}
});
ImageView golab = (ImageView) findViewById (R.id.golab);
golab.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
Intent i = new Intent (panduandietgolongandarah.this,golab.class);
startActivity(i);
}
});
ImageView golo = (ImageView) findViewById (R.id.golo);
golo.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
Intent i = new Intent (panduandietgolongandarah.this,golo.class);
startActivity(i);
}
});
}
public void keluar(){
new AlertDialog.Builder(this)
.setTitle("Menutup Aplikasi")
.setMessage("Terima kasih, semoga aplikasi ini bermanfaat untuk anda")
.setNeutralButton("Tutup", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {
finish();
}})
.show();
}
public void keluarYN(){
AlertDialog.Builder ad=new AlertDialog.Builder(panduandietgolongandarah.this);
ad.setTitle("Konfirmasi");
ad.setMessage("Anda ingin keluar aplikasi ?");
ad.setPositiveButton("Ya",new OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
keluar();
}});
ad.setNegativeButton("Tidak",new OnClickListener(){
public void onClick(DialogInterface arg0, int arg1) {
}});
ad.show();
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
// @Override
//public boolean onCreateOptionsMenu(Menu menu){
// new MenuInflater(this).inflate(R.menu.add, menu);
// return(super.onCreateOptionsMenu(menu));
//}
//@Override
//public boolean onOptionsItemSelected(MenuItem item){
// switch (item.getItemId()) {
// case R.id.add:
// startActivity(new Intent (this, Datauser.class));
// return true;
// default:
// return super.onOptionsItemSelected(item);
// }
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.getinformasi, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.info:
info();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void info(){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Aplikasi dibuat oleh Hafizh Fauzan Copyrights 2017")
.setCancelable(false)
.setNeutralButton("Semoga bermanfaat!",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
}
Lampiran B.4 Source code Tips menambbah berat badan.java
package com.panduandietgoldarah;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Window;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class tipstambahberat extends Activity {
WebView webView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.webview);
webView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("file:///android_asset/tipsgemuk.html");
return;
}
@Override public boolean onCreateOptionsMenu(Menu menu){
menu.add(0, 1, 1, "Refresh")
.setIcon(android.R.drawable.ic_menu_revert);
menu.add(0, 2, 2, "Exit")
.setIcon(android.R.drawable.ic_menu_close_clear_cancel);
return true;
}
@Override public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()) {
case 1: /* refresh */
webView.loadUrl("file:///android_asset/tipsgemuk.html");
break;
case 2: /* exit */
this.finish();
break;
}
return true;
}
public void keluar(){
new AlertDialog.Builder(this)
.setTitle("Menutup Aplikasi")
.setMessage("Terimakasih... Anda Telah Menggunakan Aplikasi Ini")
.setNeutralButton("Tutup", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {
finish();
}})
.show();
}
public void keluarYN(){
AlertDialog.Builder ad=new AlertDialog.Builder(tipstambahberat.this);
ad.setTitle("Konfirmasi");
ad.setMessage("Apakah benar ingin keluar?");
ad.setPositiveButton("OK",new OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
keluar();
}});
ad.setNegativeButton("No",new OnClickListener(){
public void onClick(DialogInterface arg0, int arg1) {
}});
ad.show();
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
Lampiran B.5 Source code Petunjuk.java
package com.panduandietgoldarah;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Window;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class petunjuk extends Activity {
WebView webView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.webview);
webView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("file:///android_asset/petunjuk.html");
return;
}
@Override public boolean onCreateOptionsMenu(Menu menu){
menu.add(0, 1, 1, "Refresh")
.setIcon(android.R.drawable.ic_menu_revert);
menu.add(0, 2, 2, "Exit")
.setIcon(android.R.drawable.ic_menu_close_clear_cancel);
return true;
}
@Override public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()) {
case 1: /* refresh */
webView.loadUrl("file:///android_asset/petunjuk.html");
break;
case 2: /* exit */
this.finish();
break;
}
return true;
}
public void keluar(){
new AlertDialog.Builder(this)
.setTitle("Menutup Aplikasi")
.setMessage("Terimakasih... Anda Telah Menggunakan Aplikasi Ini")
.setNeutralButton("Tutup", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {
finish();
}})
.show();
}
public void keluarYN(){
AlertDialog.Builder ad=new AlertDialog.Builder(petunjuk.this);
ad.setTitle("Konfirmasi");
ad.setMessage("Apakah benar ingin keluar?");
ad.setPositiveButton("OK",new OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
keluar();
}});
ad.setNegativeButton("No",new OnClickListener(){
public void onClick(DialogInterface arg0, int arg1) {
}});
ad.show();
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
Lampiran B.6 Source code Profil Saya.java
package com.panduandietgoldarah;
import com.panduandietgoldarah.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
public class profilsaya extends Activity{
//called when the activity is first created
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.profilsaya);
}
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
}