skripsi - repository.bsi.ac.id filegolongan darah berbasis android” adalah hasil karya tulisan...

111
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

Upload: phamtuyen

Post on 25-May-2019

231 views

Category:

Documents


0 download

TRANSCRIPT

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.

iii

iv

v

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();

35

B. Permodelan UML

1. Activity Diagram

Gambar III.3.

Activity Diagram

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:

48

Gambar III.13.

Flowchart Aplikasi

49

2

1

3

13

5

7

4

6

8

9

11

10

12

Gambar III.14.

Diagram Alir

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

56

Gambar III.16.

Implementasi List Data User

Gambar III.17.

Implementasi Input Data User

57

Gambar III.18.

Implementasi Menu User

Gambar III.19.

Implementasi Data User

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

60

Gambar III.24.

Implementasi Golongan darah A

Gambar III.25.

Implementasi Golongan Darah B

61

Gambar III.26.

Implementasi Golongan Darah AB

Gambar III.27.

Implementasi Golongan Darah O

62

Gambar III.28.

Implementasi Tips Mananmbah Berat Badan

Gambar III.29.

Implementasi Profil Saya

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 A. Screen Shoot Interface Aplikasi Pada Smartphone

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);

}

}