Setelah memposting program android sederhana saya yang pertama "Hello World", kali ini saya akan share project kedua saya, project yang kedua ini saya beri nama program
menghitung berat badan ideal. Program ini bisa dibilang program yang masih
lumayan gampang, karena di program ini hanya dibutuhkan sebuah inputan, Proses
( berisi rumus untuk menghitung berat badan idealnya ), kemudian sebuah output
( hasil perhitungan dari rumus kita tadi ), selesai.
Yeaah, bisa dibilang program ini adalah program kalkulator, karena
fungsinya adalah untuk menghitung, sama seperti kalkulator yang sering kita
temui, asalkan kita tau rumus n cara menghitungnya aja, kalo gak tau ya sama
aja bhong…hehe, mendingan pkek program ni aja. Tapi jangan salah program ini
sangat bermanfaat bget sob. Coba kamu bayangkan dengan mengetahui berat badan
ideal kamu bisa mengetahui kondisi tubuh kamu, apakah mengalami Obesitas (
kegemukan ) atau tidak. Hal ini penting karena ketika tubuh memiliki berat yang
berlebih akan menyebabkan timbulnya berbagai macam penyakit seperti, diabetes,
kolesterol, dan penyakit berbahasa lainya. Loohh koq jadi ngelantur
sayaa…hehehe, Ups.. jangan diambil hati yaa, bukan maksud saya menyinggung kamu
yang berbadan gemuk, mksudnya saya baik kq, dengan mengetahui kondisi tubuh
kita, kita jadi bisa mengontrol hidup kita untuk menjalankan pola hidup yang
lebih sehat heheh..
Oke kembali ke permasalahan. Rumus yang saya gunakan di
program ini adalah Rumus BMI, BMI adalah singkatan dari bahasa jawa yang
kepanjanganya (Body Mass Index), BMI adalah salah satu rumus yang digunakan
untuk menghitung berat badan ideal. Rumus yang lainnya ada banyak sekali. tapi
yang saya gunakan BMI aja deh, karena apa ? karena yang saya tau cuma BMI saja,
hehehe..
Yaah kurang lebihnya seperti itulah program yang akan saya
buat. sekarang mari kita mulai membangun programnya, siapkan project baru terlebih dahulu.
1. langkah pertama isi file strings.xml di res --> values --> strings.xml
strings.xml
<resources>;
<string name="app_name">;BMICalculator</string>;
<string name="menu_settings">;Settings</string>;
<string name="title_activity_main">;BMI Calculator</string>;
<string name="satu"> BMI < 18.5 --> Badan kurang
Ideal</string>;
<string name="dua"> BMI 18.5 - 22.9 --> Berat badan Ideal</string>;
<string name="tiga"> BMI 23 - 24.9 --> Mendekati Obesitas</string>;
<string name="empat"> BMI 25 - 29.9 --> Diambang batas Obesitas</string>;
<string name="lime"> BMI >; 30 --> Melebihi
Obesitas</string>;
<color name="Kuning">#a2b314</color>;
<color name="merah">#990000</color>;
<color name="MerahOrange">#d25e09</color>
<color name="hijau">#1fb314</color>
<color name="birumuda">#14a6b3</color>
<color name="hitam">#000000</color>
<color name="putih">#ffffff</color>
<string name="InputTinggibadan">Inputkan Tinggi Badan
(cm)</string >
<string name="InputBeratBadan">Inputkan Berat Badan
(kg)</string >
<string name="errorButton_hitung">OK</string >
<string name="errorTitle_hitung">Error !</string >
<string name="errorMessage_hitung">Data kurang lengkap !</string >
<string name="errorButton_hasil">OK</string>
<string name="errorTitle_hasil">Error !</string >
<string name="errorMessage_hasil">hasil masik kosong</string >
</resources>
2. langkah kedua, buat 3 file xml yang akan jadi interface di program kita, dan letakkan di res --> layout :
1. splashe.xml
2. main.xml
3. hasil.xml
1. splashe.xml
<?xml version="1.0"
encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ww"
android:orientation="vertical" >
</LinearLayout>
2. main.xml
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/hitam" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tinggi Badan ( cm )"
android:textColor="@color/putih" />
<EditText
android:id="@+id/tinggi_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/InputTinggibadan"
android:inputType="numberDecimal" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Berat Badan ( kg )"
android:textColor="@color/putih" />
<EditText
android:id="@+id/berat_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/InputBeratBadan"
android:inputType="number|numberDecimal" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_hitung"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hitung" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hasil "
android:textColor="@color/putih" />
<EditText
android:id="@+id/hasil_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10" />
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_lihathasil"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lihat Hasil" />
</TableLayout>
3. hasil.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background="@color/hitam"
android:orientation="vertical" >
<TextView
android:id="@+id/kosong1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Skala BMI"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/putih" />
<FrameLayout
android:id="@+id/abang"
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="@color/merah" >
<TextView
android:id="@+id/textView05"
android:layout_width="305dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:text="@string/lime"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/putih" />
</FrameLayout>
<FrameLayout
android:id="@+id/orange"
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="@color/MerahOrange" >
<TextView
android:id="@+id/textView04"
android:layout_width="306dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:text="@string/empat"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/putih" />
</FrameLayout>
<FrameLayout
android:id="@+id/semuijo"
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="@color/Kuning" >
<TextView
android:id="@+id/textView03"
android:layout_width="306dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:text="@string/tiga"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/putih" />
</FrameLayout>
<FrameLayout
android:id="@+id/ijo"
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="@color/hijau" >
<TextView
android:id="@+id/textView02"
android:layout_width="306dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:text="@string/dua"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/putih" />
</FrameLayout>
<FrameLayout
android:id="@+id/biru"
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="@color/birumuda" >
<TextView
android:id="@+id/TextView01"
android:layout_width="305dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:text="@string/satu"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/putih" />
</FrameLayout>
<TextView
android:id="@+id/TextView04"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Berat badan anda termasuk"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/putih" />
<FrameLayout
android:id="@+id/abang1"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_gravity="center"
android:background="@color/merah" >
<TextView
android:id="@+id/hasilakhir"
android:layout_width="306dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/putih" />
</FrameLayout>
<TextView
android:id="@+id/TextView07"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall" />
<FrameLayout
android:id="@+id/abang2"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_weight="0.88"
android:background="@color/merah" >
<TextView
android:id="@+id/keterangan"
android:layout_width="305dp"
android:layout_height="125dp"
android:layout_gravity="center_vertical|center_horizontal"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/putih" />
</FrameLayout>
</LinearLayout>
Langkah ketiga, buat 3 class.java di folder src --> package kamu :
1. Splash.java
2. Main.java
3. Hasilnyaa.java
1. Class Splash.java
public class Splash extends
Activity{
protected int
_splashTime = 5000;
private Thread splashTread;
/** Called when the activity is first created. */
@Override
public void
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splashe);
final Splash sPlashScreen = this;
// thread for displaying the SplashScreen
splashTread = new
Thread() {
@Override
public void
run() {
try {
synchronized(this){
//wait 5 sec
wait(_splashTime);
}
} catch(InterruptedException e) {}
finally {
finish();
//start a new activity
Intent i = new Intent();
i.setClass(sPlashScreen, Main.class);
startActivity(i);
stop();
}
}
};
splashTread.start();
}
//Function that will handle the touch
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
synchronized(splashTread){
splashTread.notifyAll();
}
}
return true;
}
}
2. Class Main.java
public class Main extends
Activity {
public static
final String statusnya="";
private EditText tinggi_e;
private EditText berat_e;
private EditText hasil_e;
private Button but_hit;
private Button but_has;
private double
BMI;
private double
tinggi;
private double
berat;
private int
status;
@Override
public void
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tinggi_e=(EditText) findViewById(R.id.tinggi_id);
berat_e=(EditText) findViewById(R.id.berat_id);
hasil_e=(EditText) findViewById(R.id.hasil_id);
but_hit=(Button) findViewById(R.id.btn_hitung);
but_has=(Button) findViewById(R.id.btn_lihathasil);
but_hit.setOnClickListener(hitung);
but_has.setOnClickListener(hasile);
}
OnClickListener
hitung=new
OnClickListener() {
public void
onClick(View v) {
if(tinggi_e.getText().length()==0
&& berat_e.getText().length()==0){
AlertDialog.Builder alert = new
AlertDialog.Builder(Main.this);
alert.setTitle(R.string.errorTitle_hitung);
alert.setMessage(R.string.errorMessage_hitung);
alert.setPositiveButton(R.string.errorButton_hitung,
null);
alert.show();
}else{
tinggi=Double.parseDouble(tinggi_e.getText().toString())/100;
berat=Double.parseDouble(berat_e.getText().toString());
BMI = (berat /
(tinggi * tinggi));
hasil_e.setText(String.valueOf(BMI));
if(BMI >= 30){
status=5;
}else if(BMI >= 25 &&BMI
<=29.9){
status=4;
}else if(BMI >= 23 && BMI <=24.9){
status=3;
}else if(BMI >= 18.5 && BMI <=22.9){
status=2;
}else if(BMI < 18.5){
status=1;
}else{
status=0;
} }}};
OnClickListener
hasile=new
OnClickListener() {
public void
onClick(View v) {
if(hasil_e.getText().length()==0){
AlertDialog.Builder alert = new
AlertDialog.Builder(Main.this);
alert.setTitle(R.string.errorTitle_hasil);
alert.setMessage(R.string.errorMessage_hasil);
alert.setPositiveButton(R.string.errorButton_hasil,
null);
alert.show();
}else{
Intent viewCon = new Intent(Main.this,
Hasilnyaa.class);
viewCon.putExtra(statusnya, status);
startActivity(viewCon);
}
}
};
}
3. Class Hasilnyaa.java
public class Hasilnyaa extends Activity{
private int id;
private FrameLayout frame1;
private FrameLayout frame2;
private TextView hasile;
private TextView kandani;
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hasil);
frame1=(FrameLayout) findViewById(R.id.abang1);
frame2=(FrameLayout) findViewById(R.id.abang2);
hasile=(TextView) findViewById(R.id.hasilakhir);
kandani=(TextView) findViewById(R.id.keterangan);
Bundle oleh=getIntent().getExtras();
id=oleh.getInt(Main.statusnya);
if(id==1){
frame1.setBackgroundResource(R.color.birumuda);
frame2.setBackgroundResource(R.color.birumuda);
hasile.setText(R.string.satu);
kandani.setText("Badan kamu
kurus, Disarankan kamu untuk banyak makan dan olah raga ");
}else if(id==2){
frame1.setBackgroundResource(R.color.hijau);
frame2.setBackgroundResource(R.color.hijau);
hasile.setText(R.string.dua);
kandani.setText("Badan kamu
ideal, tetapi tetap jaga pola makan dan olah raga secukupnya");
}else if(id==3){
frame1.setBackgroundResource(R.color.Kuning);
frame2.setBackgroundResource(R.color.Kuning);
hasile.setText(R.string.tiga);
kandani.setText("Berat badan
kamu masih tergolong normal-ideal mendekati obesitas, kamu perlu memperbaiki
pola makan dan perbanyak olahraga");
}else if(id==4){
frame1.setBackgroundResource(R.color.MerahOrange);
frame2.setBackgroundResource(R.color.MerahOrange);
hasile.setText(R.string.empat);
kandani.setText("Berat badan
anda diambang batas obesitas, kondisi bahaya, segera ubah kebiasaan makan
/kembali ke gaya hidup sehat");
}else if(id==5){
frame1.setBackgroundResource(R.color.merah);
frame2.setBackgroundResource(R.color.merah);
hasile.setText(R.string.lime);
kandani.setText("Waduhh parah
nie sob...!! berdoa aja moga2 gak cepet mati !");
}else{
frame1.setBackgroundResource(R.color.putih);
frame2.setBackgroundResource(R.color.putih);
hasile.setText("error");
}
}
}
4. langkah terakhir, kita rubah sedikit file AndroidManifest.xml
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="okin.example.bmicalculator"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".Splash"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="Main"></activity>
<activity android:name="Hasilnyaa"></activity>
</application>
</manifest>
Note : yang berwarna hijau adalah sourcode hasil penambahan atau perubahan
Siiippp program siap dijalankan jangan lupa di build and clean dulu mas Sob.. and coba jalankan.
Klik kanan project --> Run as --> 1. Android Application
Tampilan Splash Screennya.
Saya coba masukkan berat badan dan tinggi badan saya.. kamudian klik hitung akan keluar hasilnya di EditText "Hasil" kemudian klik tombol "Lihat hasil" maka akan keluar form baru yang akan memberi tahu Kondisi berat badan kamu.
Alhamdulillah, berat badan saya termasuk ideal sob hehe,
aku tambahin lagi nie buat seru seruan, jika hasil perhitungan berat badan kamu melebihi batas, lebih dari atau sama dengan 30.
Kaaak kaak kak kakakakka.....!!!
Jika menemukan kesuliatan saat pengerjaan programnya dan mulai stress n depresi berat.. bisa langsung donlot aja sourcecodenya di link ini
Mau tau kondisi berat badan kamu ? download apknya disini
Harusnya dikasih pilihan gender, gan... sebab BMI laki2dan perempuan itu tidak sama...
ReplyDeleteow iya, saya belum baca sampai situ.. nanti bisa di buatkan pilihan gender.
Delete