DAFTAR PUSTAKA
Angraini, Rika D. 2014. Hubungan Indeks Massa Tubuh (IMT), Aktivitas Fisik, Rokok, Konsumsi Buah, Sayur Dan Kejadian Hipertensi Pada Lansia Di Pulau Kalimantan (Analisis Data Riskesdas 2007). UEU. Jakarta.
Anugrah dkk. 2013. Hubungan Obesitas, Aktivitas Fisik, Dan Kebiasaan Merokok dengan Penyakit Diabetes Melitus Tipe 2 Pada Pasien Rawat Jalan Rumah Sakit Dr. Wahidin Sudirohusodo Makassar. Jurnal Vol.1, no.6, 2013.
American Diabetes Association (ADA). American Diabetes Association’s Clinical Practice Recommendations 2008. Diabetes Care. Vol 31, No. 1. January 2008.
H, Nazruddin Safaat. 2012. Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android. Bandung: Informatika.
International Diabetes Federation. 2005. The Diabetic Foot: Amputations are Preventable. [http://www.idf.org/position-statement-diabetic-foot].[Diakses:
15 Desember 2015].
Irawan.2012.Membuat aplikasi Android Untuk Orang Awam. Palembag : Maxikom.
Irawan, Dedi. 2010. Prevalensi dan Faktor Risiko Kejadian Diabetes Melitus Tipe 2 di Daerah Urban Indonesia (Analisa Data Sekunder Riskesdas 2007). Thesis Universitas Indonesia.
Mukharromah, 2010.,Sistem Pakar Diagnosa Penyakit Diabetes Berbasis Web, Skripsi Teknik Informatika, IST AKPRIND.
Nugroho, Adi. 2010. Rekayasa Perangkat Lunak Berorientasi Objek.
Yogyakarta :Andi.
Nurhayati, Siti. 2010. Gaya Hidup dan Status Gizi Serta Hubungannya Dengan Hipertensi dan Diabetes Melitus Pada Pria dan Wanita Dewasa di DKI Jakarta.
Thesis Institut Pertanian Bogor.
PERKENI, 2011, Konsensus Pengobatan dan Pencegahan Diabetes Melitus Tipe 2 di Indonesia. Jakarta.
Roger, S. Pressman, Ph.D. , 2012, Rekayasa Perangkat Lunak (Pendekatan Praktisi) Edisi 7 : Buku 1 , Yogyakarta: Andi.
Siswanto.2010. Sistem Pakar Untuk Memecahkan Masalah Personal Digital Asisten(PDA).
Suprianto, Dodit dan Rini Agustina. 2012. Pemograman Aplikasi Android.
Yogyakarta: MediaKom.
Satzinger, Jackson, Burd. 2010. System Analisis and Design with the Unified Process.
USA: Course Technology, Cengage Learning.
Soegondo , Sidartawan .2011.Hidup Secara Mandiri Dengan Diabetes Melitus, Kencing Manis, Sakit Gula FKUI. Jakarta.
Sommerville, Ian. 2011. Software Engineering (Rekayasa Perangkat. Lunak). Jakarta:
Erlangga. [2] Wahana Komputer. 2011.
Tjokroprawiro, Askandar. 2001. Diabetes Melitus, Klasifikasi,Diagnosa dan Terapi.
Gramedia Pustaka Utama; Jakarta
Turban, E., Aronson., 2005., Decision Support System and Intelligent System Jilid 2, Prantice Hall International Inc, 7edition, New Jersey.
Waspadji S. Telaah Mengenai Metabolik dan Respon Imun pada Pasien DM tipe 2 . Jakarta:Program Pasca Sarjana UI ,2000.
LAMPIRAN
package com.cheyrien.diabetescare.fragment;
import android.app.AlarmManager;
import android.app.AlertDialog;
import android.app.PendingIntent;
import android.app.TimePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;
import com.cheyrien.diabetescare.R;
import com.cheyrien.diabetescare.adapter.SelectedMakananAdapter;
import com.cheyrien.diabetescare.application.MyApplication;
import com.cheyrien.diabetescare.background.MyReceiver;
import com.cheyrien.diabetescare.db.SQLHelper;
import com.cheyrien.diabetescare.model.ItemJadwalMakan;
import com.cheyrien.diabetescare.model.JadwalMakan;
import com.cheyrien.diabetescare.model.Kondisi;
import com.cheyrien.diabetescare.model.Makanan;
import com.cheyrien.diabetescare.service.JadwalMakanService;
import com.cheyrien.diabetescare.service.KondisiService;
import com.cheyrien.diabetescare.service.MakananService;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
* Created by Cheyrien on 1/25/16.
*/
public class JadwalMakanFragment extends Fragment { private View view;
private TextView totalKaloriTextView,kkaltargetTextView;
private Spinner kategoriSpinner;
private EditText targetKaloriTextView, waktuTextView;
private Button setWaktuButton, tambahMakananButton, resetButton, simpanButton;
private ListView listView;
private ArrayAdapter<CharSequence> kategoriAdapter;
private SelectedMakananAdapter selectedMakananAdapter;
private List<ItemJadwalMakan> selectedMakananList;
private List<Makanan> makananList;
private List<Integer> qtySelectedMakananList;
private Kondisi kondisi;
private KondisiService kondisiService;
private int id;
private SQLHelper sqlHelper;
private MakananService makananService;
private JadwalMakanService jadwalMakanService;
private JadwalMakan jadwalMakan;
private int selectedMakanan =0;
private int totalKalori = 0;
private PendingIntent pendingIntent;
public Double kalmakan;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_form_jadwal_makan, container, false);
initView();
this.getActivity().setTitle("Jadwal Makan");
this.sqlHelper = new SQLHelper(getContext());
this.makananService = new MakananService(sqlHelper);
this.jadwalMakanService = new JadwalMakanService(sqlHelper);
//kondisi = kondisiService.find(1);
this.makananList = makananService.findAll();
if(getArguments() != null){
if(getArguments().containsKey("id")){
id = getArguments().getInt("id");
} }
if(id >0){
this.jadwalMakan = jadwalMakanService.find(id);
this.selectedMakananList = jadwalMakanService.getMakananItems(id);
fillValue();
}else{
this.selectedMakananList = new ArrayList<>();
}
return view;
}
private void initView(){
this.totalKaloriTextView = (TextView)
view.findViewById(R.id.totalKaloriextView);
this.kategoriSpinner = (Spinner) view.findViewById(R.id.spinner1);
this.targetKaloriTextView = (EditText)
view.findViewById(R.id.editText1);
this.kkaltargetTextView
=(TextView)view.findViewById(R.id.kkalTextView);
this.waktuTextView = (EditText) view.findViewById(R.id.editText2);
this.simpanButton = (Button) view.findViewById(R.id.button1);
this.resetButton = (Button) view.findViewById(R.id.button2);
this.tambahMakananButton = (Button) view.findViewById(R.id.button3);
this.setWaktuButton = (Button) view.findViewById(R.id.button4);
this.listView = (ListView) view.findViewById(R.id.listView);
kategoriAdapter = ArrayAdapter.createFromResource(getContext(), R.array.kategori_jadwal_makan,
android.R.layout.simple_spinner_dropdown_item);
kategoriSpinner.setAdapter(kategoriAdapter);
this.setWaktuButton.setOnClickListener(setWaktuClick());
this.tambahMakananButton.setOnClickListener(setOnTambahMakanan());
this.simpanButton.setOnClickListener(setSimpanClick());
this.resetButton.setOnClickListener(setResetOnClick());
}
private View.OnClickListener setSimpanClick(){
return new View.OnClickListener() {
@Override
public void onClick(View v) {
save();
} };
}
private View.OnClickListener setResetOnClick(){
return new View.OnClickListener() {
@Override
public void onClick(View v) {
selectedMakananList = new ArrayList<>();
targetKaloriTextView.setText("");
waktuTextView.setText("");
selectedMakananAdapter.notifyDataSetChanged();
} };
}
private void fillValue(){
if(jadwalMakan !=
null){ this.kategoriSpinner.setSelection(kategoriAdapter.getPosition(jadwalMa
kan.getKategori()));
if (this.kategoriSpinner.getSelectedItem().toString()=="Sarapan"){
kalmakan=kondisi.getBasal();
this.targetKaloriTextView.setText(String.valueOf(kalmakan));
}
this.targetKaloriTextView.setText(String.valueOf(jadwalMakan.getTarget_kkal() ));
this.waktuTextView.setText(jadwalMakan.getWaktu());
}
if(selectedMakananList != null){
selectedMakananAdapter = new SelectedMakananAdapter(getContext(), selectedMakananList, makananList);
listView.setAdapter(selectedMakananAdapter);
totalKalori = hitungTotalKalori();
totalKaloriTextView.setText("JUMLAH KALORI : " + String.valueOf(totalKalori) + " kkal");
} }
private View.OnClickListener setWaktuClick(){
return new View.OnClickListener() {
@Override
public void onClick(View v) {
Calendar mcurrentTime = Calendar.getInstance();
int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
int minute = mcurrentTime.get(Calendar.MINUTE);
TimePickerDialog mTimePicker;
mTimePicker = new TimePickerDialog(getContext(), new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
waktuTextView.setText( selectedHour + ":" + selectedMinute);
}
}, hour, minute, true);
mTimePicker.setTitle("Select Time");
mTimePicker.show();
} };
}
private View.OnClickListener setOnTambahMakanan(){
return new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builderSingle = new AlertDialog.Builder(getContext());
builderSingle.setIcon(R.drawable.ic_menu_manage);
builderSingle.setTitle("Select One Name:-");
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(getContext(), android.R.layout.select_dialog_singlechoice);
for(int i=0; i<makananList.size(); i++){
Makanan makanan = makananList.get(i);
arrayAdapter.add(makanan.getNama() + "(" + makanan.getKalori() + " kkal)");
{
}
builderSingle.setNegativeButton( "Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which)
dialog.dismiss();
} });
builderSingle.setAdapter(arrayAdapter,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
selectedMakanan = which;
showDialogTakaran();
dialog.dismiss();
} });
builderSingle.show();
} };
}
private void showDialogTakaran(){
AlertDialog.Builder builderSingle = new AlertDialog.Builder(getContext());
builderSingle.setIcon(R.drawable.ic_menu_manage);
builderSingle.setTitle("Input jumlah takaran:-");
final EditText input = new EditText(getActivity());
builderSingle.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
} });
builderSingle.setPositiveButton("Ok",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { if(isValidInteger(input.getText().toString())){
Makanan m = makananList.get(selectedMakanan);
ItemJadwalMakan item = new ItemJadwalMakan();
item.setMakanan_id(m.getId());
item.setJadwal_makan_id(id);
item.setJumlah(Integer.parseInt(input.getText().toString()));
selectedMakananList.add(item);
selectedMakananAdapter = new
SelectedMakananAdapter(getContext(), selectedMakananList, makananList);
listView.setAdapter(selectedMakananAdapter);
totalKalori = hitungTotalKalori();
totalKaloriTextView.setText("JUMLAH KALORI : " + String.valueOf(totalKalori) + " kkal");
dialog.dismiss();
}else{
Toast.makeText(getContext(), "Input harus angka", Toast.LENGTH_SHORT).show();
}
} });
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
input.setLayoutParams(lp);
builderSingle.setView(input);
builderSingle.show();
}
public static Boolean isValidInteger(String value) { try {
Integer val = Integer.valueOf(value);
if (val != null) return true;
else
return false;
} catch (NumberFormatException e) { return false;
} }
public void save(){
if(jadwalMakan == null){
jadwalMakan = new JadwalMakan();
//
jadwalMakan.setTarget_kkal(targetKaloriTextView.getText().toString());
jadwalMakan.setWaktu(waktuTextView.getText().toString());
jadwalMakan.setKategori(kategoriSpinner.getSelectedItem().toString());
id = jadwalMakanService.create(jadwalMakan);
if(id > 0){
for (int i=0; i<selectedMakananList.size();i++){
ItemJadwalMakan item = selectedMakananList.get(i);
item.setJadwal_makan_id(id);
jadwalMakanService.createItem(item);
}
Snackbar.make(view, "Data telah disimpan", Snackbar.LENGTH_LONG).setAction("Action", null).show();
}else{
Snackbar.make(view, "Data gagal disimpan", Snackbar.LENGTH_LONG).setAction("Action", null).show();
} }else{
// jadwalMakan.setTarget_kkal(Double.parseDouble(Kondisi.BASAL));
jadwalMakan.setTarget_kkal(Double.parseDouble(targetKaloriTextView.getText().
toString()));
jadwalMakan.setWaktu(waktuTextView.getText().toString());
jadwalMakan.setKategori(kategoriSpinner.getSelectedItem().toString());
jadwalMakanService.update(jadwalMakan);
Snackbar.make(view, "Data telah disimpan", Snackbar.LENGTH_LONG).setAction("Action", null).show();
} }
private int hitungTotalKalori(){
int res = 0;
if(selectedMakananList != null){
for(int i=0; i< selectedMakananList.size(); i++){
ItemJadwalMakan item = selectedMakananList.get(i);
Makanan makanan = getMakanById(item.getMakanan_id());
res += item.getJumlah() * makanan.getKalori();
} }
return res;
}
private Makanan getMakanById(int id){
for(int i =0; i< makananList.size() ; i++){
Makanan m = makananList.get(i);
if(m.getId() == id){
return m;
}
}
return null;
}
private void makeRemider(String datetime, String title, String msg, int id){
try {
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm");
Date date = formatter.parse(datetime);
MyApplication myapp = (MyApplication) getActivity().getApplication();
myapp.notifTitle = title;
myapp.notifMsg = msg;
Intent myIntent = new Intent(getActivity(), MyReceiver.class);
pendingIntent = PendingIntent.getBroadcast(getActivity(), id, myIntent, PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManager = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, date.getTime(), pendingIntent);
} catch (ParseException e) { e.printStackTrace();
}
}
private void cancelReminder(int id){
Intent myIntent = new Intent(getActivity(), MyReceiver.class);
pendingIntent = PendingIntent.getBroadcast(getActivity(), id, myIntent, PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManager = (AlarmManager)
getActivity().getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
} }