Friday, November 30, 2012


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

Propellerads

Popular Posts