Sunday, April 7, 2019

Aplikasi RT Online dengan List View Menu

Aplikasi RT Online

Pengurus Rukun Tetangga di lingkungan sebuah perumahan XYZ berencana membuat aplikasi mobile berbasis android untuk mengelola data warga, keuangan, dan kegiatan warga yang tinggal pada lingkungan tersebut.

Pada aplikasi tersebut diharapkan mencakup beberapa hal, yaitu:
  1. Terdapat halaman login untuk pengurus dan warga yang akan melakukan pendaftaran
  2. Terdapat halaman menu utama berupa List Menu sesuai fungsinya
  3. Terdapat halaman untuk mengisi informasi terkait data kepala keluarga, status tempat tinggal, dan anggota keluarga yang tinggal di dalamnya.
Berikut di bawah ini merupakan langkah-langkah yang dilakukan untuk membuat Aplikasi RT Online sesuai kebutuhan di atas.


1. Login Activity
Screenshot Login Form:

Berikut di bawah ini merupakan xml script untuk login_activity:


<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Login Form"
android:textAppearance="?android:attr/textAppearanceLarge"/>

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "
android:textAppearance="?android:attr/textAppearanceLarge"/>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Username :"/>

<EditText
android:id="@+id/etxtUsernane"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"/>
<requestFocus/>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Password :"/>

<EditText
android:id="@+id/etxtPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:inputType="textPassword">
</EditText>

</LinearLayout>

<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "
android:textAppearance="?android:attr/textAppearanceLarge"/>

<Button
android:id="@+id/btnLogin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Login"/>

<Button
android:id="@+id/btnExit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Exit"/>

</LinearLayout>

</RelativeLayout>
    Berikut di bawah ini merupakan java script untuk login_activity:

packagecom.anggi.aplikasirtonline;

importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.content.Intent;
importandroid.view.Menu;
importandroid.view.View;
importandroid.widget.Button;

publicclassLoginActivityextends Activity {
      Button btnLogin;
      Button btnExit;
     
@Override
publicvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
btnLogin = (Button) findViewById(R.id.btnLogin);
btnExit = (Button) findViewById(R.id.btnExit);

btnLogin.setOnClickListener(newView.OnClickListener() {
                 
                  publicvoidonClick(View v) {
                        // TODO Auto-generated method stub
                        Intent i =newIntent(LoginActivity.this, MenuActivity.class);
                        i.putExtra("Pesan""Sukses Login");
                        startActivity(i);
                  }
            });

btnExit.setOnClickListener(newView.OnClickListener() {
                 
                  publicvoidonClick(View v) {
                        // TODO Auto-generated method stub
                        moveTaskToBack(true);
                       android.os.Process.killProcess(android.os.Process.myPid());
                        System.exit(0);  
                  }
            });
    }

@Override
publicbooleanonCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_login, menu);
returntrue;
    }
}

2. Menu Activity
Screenshot Menu Utama
Berikut di bawah ini merupakan xml script untuk menu_activity:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ListView
        android:id="@+id/listMenu"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" >
    </ListView>


</RelativeLayout>

Berikut di bawah ini merupakan java script untuk menu_activity:

package com.anggi.aplikasirtonline;

import java.util.ArrayList;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
import android.support.v4.app.NavUtils;


public class MenuActivity extends Activity {
ListView lv;
String[] daftarMenu = new String[] {
"Pendaftaran Warga Baru",
"Perubahan Data Warga",
"Pemasukan KAS Warga",
"Pengeluaran KAS Warga",
"Buat Kegiatan Warga",
"Logout"
};
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_menu);
        lv = (ListView)findViewById(R.id.listMenu);
        ArrayAdapter adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_single_choice,daftarMenu);
        lv.setAdapter(adapter);
        
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        public void onItemClick(AdapterView<?> arg0, View arg1, int itemKe, long arg3) {
        // TODO Auto-generated method stub
        String itemText=(String) lv.getItemAtPosition(itemKe);
        Toast.makeText(getBaseContext(), "Anda memilih menu "+ itemText, Toast.LENGTH_LONG).show();
        if(itemText.equals("Pendaftaran Warga Baru")){
        Intent MenuPemesananInten=new Intent(arg0.getContext(),PendaftaranActivity.class);
        startActivityForResult(MenuPemesananInten,0);
        }
        }

        });
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_menu, menu);
        return true;
    }

    
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                NavUtils.navigateUpFromSameTask(this);
                return true;
        }
        return super.onOptionsItemSelected(item);
    }

}


3. Pendaftaran Activity
Screenshot Form Pendaftaran

Berikut di bawah ini merupakan xml script untuk pendaftaran_activity:

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbarStyle="insideOverlay"
android:scrollbars="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:scrollbars="vertical">

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Data KepalaKeluarga"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textStyle="bold"/>

<TextView
android:id="@+id/textView11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "
android:textAppearance="?android:attr/textAppearanceSmall"/>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NIK :"/>

<EditText
android:id="@+id/etxtKKNIK"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:inputType="number"/>
<requestFocus/>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NamaLengkap :"/>

<EditText
android:id="@+id/etxtKKNamaLengkap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10">
</EditText>

</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NamaPanggilan :"/>

<EditText
android:id="@+id/etxtKKNamaPanggilan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"/>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="JenisKelamin :"/>

<RadioButton
android:id="@+id/rbtnKKJKPria"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pria"/>

<RadioButton
android:id="@+id/rbtnKKJKWanita"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Wanita"/>

</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Kota Kelahiran :"/>

<EditText
android:id="@+id/etxtKKKotaKelahiran"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"/>

</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TanggalLahir :"/>

<EditText
android:id="@+id/etxtKKTanggalLahir"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:inputType="date"/>

</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="e-mail :"/>

<EditText
android:id="@+id/etxtKKEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:inputType="textEmailAddress"/>

</LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<TextView
android:id="@+id/textView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Pekerjaan :"/>

<EditText
android:id="@+id/etxtKKPekerjaan"
android:layout_width="245dp"
android:layout_height="wrap_content"
android:ems="10"/>

</LinearLayout>

<TextView
android:id="@+id/textView10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "
android:textAppearance="?android:attr/textAppearanceMedium"/>

<Button
android:id="@+id/btnKKSelanjutnya"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Selanjutnya"/>

</LinearLayout>

</RelativeLayout>
    Berikut di bawah ini merupakan java script untuk pendaftaran_activity:
 packagecom.anggi.aplikasirtonline;

importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.view.Menu;
importandroid.view.MenuItem;
import android.support.v4.app.NavUtils;

public class PendaftaranActivity extends Activity {

    @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pendaftaran);
getActionBar().setDisplayHomeAsUpEnabled(true);
    }

    @Override
publicbooleanonCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_pendaftaran, menu);
return true;
    }


    @Override
publicbooleanonOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
caseandroid.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
        }
returnsuper.onOptionsItemSelected(item);
    }

}

Demikian yang dapat saya sampaikan.
Penulis menyadari terdapat kekurangan pada penulisan ini, sehingga penulis membuka kesempatan bagi pembaca untuk dapat memberikan kritik dan saran yang membangun untuk penulisan yang lebih baik lagi di masa depan.

Semoga tulisan ini dapat bermanfaat.