102
1 MODUL 1 PEMROGRAMAN DASAR DENGAN ECLIPSE 1. Pengertian Aplikasi Mobile Aplikasi Mobile adalah sebuah aplikasi yang memungkinkan anda melakukan mobilitas dengan mengunakan perlengkapan seperti PDA, telepon seluler atau handpone. Dengan mengunakan aplikasi mobile, dapat memudahkan penguna dengan mudah melakukan berbagai aktifitas mulai dari hiburan, berjualan, belajar, browsing dan sebagai lainnya. Pemanfaatan aplikasi mobile unutk hiburan paling banyak digemari oleh hampir 70% penguna telepon seluler, karen dengan memanfaatkan adanya fitur game, music player, sampai video playermembuat kita menjadi semakin mudah menikmati hiburan kapan saja dan dimana saja. 2. Ecplise Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform-independent). Adapun sifat dari Eclipse yaitu: Multi-platform Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP- UX dan Mac OS X. Mulit-language 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.

123659-MODUL PEMROGRAM APLIKASI ANDROID DENGAN ECLIPSE.pdf

Embed Size (px)

DESCRIPTION

android

Citation preview

  • 1

    MODUL 1

    PEMROGRAMAN DASAR DENGAN ECLIPSE

    1. Pengertian Aplikasi Mobile

    Aplikasi Mobile adalah sebuah aplikasi yang memungkinkan anda

    melakukan mobilitas dengan mengunakan perlengkapan seperti PDA, telepon

    seluler atau handpone. Dengan mengunakan aplikasi mobile, dapat memudahkan

    penguna dengan mudah melakukan berbagai aktifitas mulai dari hiburan, berjualan,

    belajar, browsing dan sebagai lainnya. Pemanfaatan aplikasi mobile unutk hiburan

    paling banyak digemari oleh hampir 70% penguna telepon seluler, karen dengan

    memanfaatkan adanya fitur game, music player, sampai video playermembuat kita

    menjadi semakin mudah menikmati hiburan kapan saja dan dimana saja.

    2. Ecplise

    Eclipse adalah sebuah IDE (Integrated Development Environment) untuk

    mengembangkan perangkat lunak dan dapat dijalankan di semua platform

    (platform-independent). Adapun sifat dari Eclipse yaitu:

    Multi-platform

    Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-

    UX dan Mac OS X.

    Mulit-language

    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.

  • 2

    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, yang berarti setiap orang boleh melihat kode pemrograman

    perangkat lunak ini. Selain itu, kelebihan dari Eclipse yang membuatnya populer

    adalah kemampuannya untuk dapat dikembangkan oleh pengguna dengan

    komponen yang dinamakan plug-in.

    3. Instalasi

    Eclipse dapat anda peroleh melalui website www.karya-it.com download

    secara gratis. Setelah anda download seilahkan extrak filenya kemudian copy ke

    dalam drive C:\ pada labtop atau PC anda. Kemudian cari file eclipse.exe dan send

    to dekstop agar menjadi shortcut pada desktop.

    4. Pelaksanaan Praktikum

    Buka Eclipe Pada Desktop maka akan tampil sebagai berikut:

    Gambar 1.1 Workspace Launcer pada Eclipse

    Gambar di atas menunjukan workspace project kita, maka kita harus membuat

    workspace kita sendiri. Setelah itu ikuti langkas berikut :

  • 3

    langkah 1: Membuat Project Baru

    Pilih pada menu File => New => Android Application Project.

    Gambar 1.2 Pengisian Application Name

    Kemudian isi pada application Name Latihan1 (diawali dengan Huruf Kapital)

    dan secara otomatis project name terisi dan pada package Name isi dengan

    nama.latihan1. kemudian klik dan pilih next sampai langkah 2.

    Gambar 1.3 Lanjutan Application Name

  • 4

    Pilih dan klik next

    Gambar 1.4 Configure Launcher Icon

    Pilih dan Klik Next

    Gambar 1.5 Create Aktivity

    Pilih dan Klik Next

  • 5

    Langkah 2: Pengisian Activity

    Gambar 1.6 Pengisian Activity

    Pada langkah 2 ini yaitu pengisian pada Activity Name diisi dengan Latihan1

    dan Layout Name diisi dengan layar_latihan1. Kemudian Pilih dan Klik Finish

    sehingga muncul gambar seperti dibawah ini:

    Gambar 1.7 Tampilan Layar Ecplise

  • 6

    Langkah 3 : Menjalankan AVD

    Pada langkah ini pastikan AVD ( Android Virtual Device) jalan pada saat anda

    membuat project android adapun untuk menjalankannya pilih pada menu

    windows => Android Virtual Device, jika ada device yang tersedia maka

    langsung di start jika tidak pilih dan klik New dan akan tampil seperti gambar

    berikut :

    Gambar 1.8 Pembuatan AVD

    Isi AVD Name denga Android, pada divice pilih Galaxy Nexus dan pada skin

    pilih HVGA kemudian pilih Ok.

    Setelah itu pilih android dan pilih dan klik Start maka akan tampil seperti gambar

    dibawah ini:

  • 7

    Gambar 1.9 Android Virtual Devince

    Langkah 4 : Desain Project

    Pada desain project di android mengunakan xml namun pada eclipse dibantu

    dengan adanya palette yang saling berhubungan dengan xml. Pada project ini

    silahkan letakkan 2 TextView pada Graphical Layout sehingga hasilnya seperti

    gambar dibawah ini.

    Gambar 1.10 Pembuatan Hello World

  • 8

    Kemudian pada propertis TextView pertama pada text isikan dengan Ini adalah

    program pertama saya. Sedangkan pada TextView kedua pembuatan text dibuat

    melalui String.xml dimana String.xml terpadat pada package Latihan1 => values

    => String.xml. pada String.xml silahkan ketik seperti gambar dibawah ini:

    Gambar 1.11 String.xml

    Peringatan : Jangan lupa di simpan

    Kemudian kembali ke desain project dan masuk kedalam layar_latihan1.xml

    silahkan samakan koding xml-nya samakan dengan gambar dibawah ini:

    Gambar 1.12 layar.xml

  • 9

    Setelah siap diketik dan disimpan kemudian lihat perbedaan pada Graphical

    Layout seperti gambar dibawah ini:

    Gambar 1.13 Tampilan Rancangan

    Pada TextView pertama terlihat masih ada tanda seru sementara pada TextView

    kedua tidak ada. Ini artinya pada text pada object harus dikenali pada String.xml

    walapun tanda seru tersebut tidak membuat kesalahan pada sistem.

    Langkah 4 : Menjalankan Program

    Pada langkah ini adalah menjalan program dengan emulator ada pun caranya

    sebagai berikut :

    Klik kanan pada package Latihan1 kemudian pilih Run As kemudian pilih

    android application. Adapun hasilnya terlihat seperti gambar dibawah ini:

  • 10

    Gambar 1.14 Hasil Program

  • 11

    MODUL 2

    PEWARNAAN PADA ANDROID

    Pada Modul 2 ini mahasiswa dituntut untuk mengetahui kode warna pada

    android dan memperdalam perkenalan string.xml

    Pelaksanaan Praktikum

    Buka project baru dengan pilih dan klik Menu File => New => Android Application

    Project.

    Isi data project sesuai dengan tabel dibawah ini :

    Tabel 2.1 Pengisian Nama Project Modul 2

    Application Name Latihan2

    Project Name Latihan2

    Package Name Nama.latihan2

    Activity Name Aktivitas

    Layout Name layar_aktivitas

    Kemudian masuk kedalam layar_aktivitas silahkan masukkan 1 TextView dan

    masuk kedalam String.xml kemudian ketikan seperti di bawah ini.

    Gambar 2.1 Tampilan String.xml

  • 12

    Gambar 2.2 Tampilan layar.xml

    Kemudian pada graphics layout pada propertis klik browse maka akan tampil

    seperti gambar dibawah ini dan silahkan pilih warna yang akan di beri

    bacground.

    Gambar 2.3 Pilihan Warna

  • 13

    Setelah pemilihan warna pada reference chooser maka bacground pada graphics

    layout akan berubah seperti di bawah ini.

    Gambar 2.4 Hasil Program Warna

  • 14

    MODUL 3

    PENGUNAAN TextView, PlainText dan Button

    Pada modul ini mahasiswa akan mengetahui beberapa fungsi dan kegunaan pada

    palette ecplise.

    Pelaksanaan Praktikum

    Buka project baru dengan pilih dan klik Menu File => New => Android Application

    Project.

    Isi data project sesuai dengan tabel dibawah ini :

    Tabel 3.1 Pengisian Nama Project Modul 3

    Application Name Latihan3

    Project Name Latihan3

    Package Name Nama.latihan3

    Activity Name Aktivitas

    Layout Name layar_aktivitas

    Buatlah Tampilan sebagai berikut :

    Gambar 3.1 Target Rancangan Modul 3

  • 15

    Adapun text pada tools di atas di setting pada string.xml

    Latihan3

    Hello world!

    Settings

    Contoh Pengunaak TextView PlainText dan Button

    Masukkan Satu Kata

    OK

    Hapus

    Keluar

    Kemudian desain program dengan buka layar_aktivitas.xml

  • 16

    android:inputType="number"

    android:textSize="18sp" >

    Setelah selesai pada layar_aktivitas.xml kemudian buat koding program pada

    Aktivitas.java.

    package alkho.latihan3;

    import android.support.v7.app.ActionBarActivity;

    import android.os.Bundle;

  • 17

    import android.view.Menu;

    import android.view.View;

    import android.view.View.OnClickListener;

    import android.widget.EditText;

    import android.widget.TextView;

    import android.widget.Button;

    import android.app.AlertDialog;

    import android.content.DialogInterface;

    public class Aktivitas extends ActionBarActivity implements OnClickListener {

    EditText NIM;

    Button OK,Exit,Hapus;

    TextView hNim;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.layar_aktivitas);

    NIM = (EditText)findViewById(R.id.NIM);

    hNim = (TextView)findViewById(R.id.HasilNIM);

    OK = (Button)findViewById(R.id.OK);

    Exit = (Button)findViewById(R.id.Exit);

    Hapus = (Button)findViewById(R.id.Hapus);

    OK.setOnClickListener(this);

    Exit.setOnClickListener(this);

    Hapus.setOnClickListener(this);

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.

    getMenuInflater().inflate(R.menu.aktivitas, menu);

  • 18

    return true;

    }

    public void hapus() {

    hNim.setText("");

    NIM.setText("");

    NIM.requestFocus();

    }

    public void validasi() {

    AlertDialog.Builder bValid = new AlertDialog.Builder(this)

    .setMessage("Form Belum Lengkap").setTitle("Warning")

    .setPositiveButton("OK", new DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dialog, int

    which) {

    // TODO Auto-generated method stub

    }

    });bValid.show();

    }

    public void onClick(View v) {

    if(v==OK) {

    if(NIM.getText().length()==0) {

    validasi();

    return;

    }

    String nim=NIM.getText().toString();

    hNim.setText("Yang Anda Ketik : "+nim);

    }else if(v==Hapus) {

    hapus();

    }else if (v==Exit) {

    AlertDialog.Builder bExit = new AlertDialog.Builder(this)

    .setMessage("Yakin ingin Keluar ?").setTitle("Konfirmasi Keluar")

  • 19

    .setPositiveButton("Ayeuna", new

    DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dialog, int

    which) {

    // TODO Auto-generated method stub

    finish();

    }

    })

    .setNegativeButton("Ngkin", new

    DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dialog, int

    which) {

    // TODO Auto-generated method stub

    }

    }); bExit.show();

    }

    }

    }

    Setelah anda selesaikan langkah di atas maka hasilnya seperti gambar dibawah ini:

    Gambar 3.2 Tampilan Modul 3

  • 20

    Tugas Praktikum:

    Buatlah program sesuai dengan tampilan sebagai berikut :

    Gambar 3.3 Tugas Modul 3

  • 21

    MODUL 4

    PENGUNAAN RadioButton

    Pada modul ini mahasiswa akan mengetahui beberapa fungsi dan kegunaan pada

    RadioButton.

    Pelaksanaan Praktikum

    Buka project baru dengan pilih dan klik Menu File => New => Android Application

    Project.

    Isi data project sesuai dengan tabel dibawah ini :

    Tabel 4.1 Pengisian Nama Project Modul 4

    Application Name Latihan4

    Project Name Latihan4

    Package Name nama.latihan4

    Activity Name Aktivitas

    Layout Name layar_aktivitas

    Buatlah Tampilan sebagai berikut :

    Gambar 4.1 Tampilan Rancangan Modul 4

  • 22

    Adapun text pada string.xml adalah sebagai berikut :

    Latihan4

    Hello world!

    Settings

    Contoh Pengunaan RadioButton

    Pilihan pertama

    Pilihan Kedua

    Pilihan Ketiga

    Hasil

    Kemudian desain tampilan dengan layar_aktivitas.xml seagai berikut:

  • 23

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_alignParentLeft="true"

    android:layout_below="@+id/textView1"

    android:layout_marginTop="22dp"

    android:text="@string/pilih1" />

  • 24

    android:textSize="25sp" />

    Pada Aktivitas.java listing programnya sebagai berikut :

    package alkho.latihan4;

    import android.support.v7.app.ActionBarActivity;

    import android.os.Bundle;

    import android.view.Menu;

    import android.view.View;

    import android.widget.*;

    public class Aktivitas extends ActionBarActivity {

    TextView hasil;

    RadioButton pilihan1,pilihan2,pilihan3;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.layar_aktivitas);

    hasil=(TextView)findViewById(R.id.textView2);

    pilihan1=(RadioButton)findViewById(R.id.radioButton1);

    pilihan2=(RadioButton)findViewById(R.id.radioButton2);

    pilihan3=(RadioButton)findViewById(R.id.radioButton3);

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.

    getMenuInflater().inflate(R.menu.aktivitas, menu);

    return true;

    }

    public void pilih_satu(View view)

  • 25

    {

    if(pilihan1.isChecked())

    {

    pilihan2.setChecked(false);

    pilihan3.setChecked(false);

    hasil.setText("Hasil Pilihan Radiobutton 1");

    }

    }

    public void pilih_dua(View view)

    {

    if(pilihan2.isChecked())

    {

    pilihan1.setChecked(false);

    pilihan3.setChecked(false);

    hasil.setText("Hasil Pilihan Radiobutton 2");

    }

    }

    public void pilih_tiga(View view)

    {

    if(pilihan3.isChecked())

    {

    pilihan1.setChecked(false);

    pilihan2.setChecked(false);

    hasil.setText("Hasil Pilihan Radiobutton 3");

    }

    }

    }

    Setelah selesai menyelesaikan langkah-langkah di atas maka hasilnya sebagai

    berikut :

  • 26

    Gambar 4.2 Tampilan Kegunaan RadioButton

  • 27

    MODUL 5

    PENGUNAAN CheckBox

    Pada modul ini mahasiswa akan mengetahui beberapa fungsi dan kegunaan pada

    CheckBox.

    Pelaksanaan Praktikum

    Buka project baru dengan pilih dan klik Menu File => New => Android Application

    Project.

    Isi data project sesuai dengan tabel dibawah ini :

    Tabel 5.1 Pengisian Nama Project Modul 5

    Application Name Latihan5

    Project Name Latihan5

    Package Name nama.latihan5

    Activity Name Aktivitas

    Layout Name layar_aktivitas

    Buatlah Tampilan sebagai berikut :

    Gambar 5.1 Tampilan Rancangan Modul 5

  • 28

    Adapun text yang ada pada string.xml adalah sebagai berikut :

    Latihan5

    Hello world!

    Settings

    Contoh Penggunaan CheckBox

    Pilihan Pertama

    Pilihan Kedua

    Pilihan Ketiga

    Untuk Pilihan Ke Satu

    Untuk Pilihan Ke Dua

    Untuk Pilihan Ke Ketiga

    Kemudian desain program tersebut dengan layar_aktivitas.xml sebagai berikut :

  • 29

    android:text="@string/ktrng" />

  • 30

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_alignParentLeft="true"

    android:layout_below="@+id/checkBox3"

    android:layout_marginTop="68dp"

    android:text="@string/hasil1"

    android:textSize="20sp" />

    Pada listing program terletak pada Aktivitas.java dengan koding sebagai berikut :

    package alkho.latihan5;

    import android.support.v7.app.ActionBarActivity;

    import android.os.Bundle;

    import android.view.View;

  • 31

    import android.widget.*;

    public class Aktivitas extends ActionBarActivity {

    CheckBox pilihan1,pilihan2,pilihan3;

    TextView hsl1,hsl2,hsl3;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.layar_aktivitas);

    pilihan1=(CheckBox)findViewById(R.id.checkBox1);

    pilihan2=(CheckBox)findViewById(R.id.checkBox2);

    pilihan3=(CheckBox)findViewById(R.id.checkBox3);

    hsl1=(TextView)findViewById(R.id.textView1);

    hsl2=(TextView)findViewById(R.id.textView2);

    hsl3=(TextView)findViewById(R.id.textView3);

    }

    public void pilih_1(View view)

    {

    if(pilihan1.isChecked())

    {

    hsl1.setText("Pilihan Pertama Telah Dipilih");

    }

    else

    {

    hsl1.setText("Pilihan Pertama Tidak Dipilih");

    }

    }

    public void pilih_2(View view)

    {

    if(pilihan2.isChecked())

    {

    hsl2.setText("Pilihan Kedua Telah Dipilih");

    }

  • 32

    else

    {

    hsl2.setText("Pilihan Kedua Tidak Dipilih");

    }

    }

    public void pilih_3(View view)

    {

    if(pilihan3.isChecked())

    {

    hsl3.setText("Pilihan Ketiga Telah Dipilih");

    }

    else

    {

    hsl3.setText("Pilihan Ketiga Tidak Dipilih");

    }

    }

    }

    Adapun tampilannya sebagai berikut :

  • 33

    Gambar 5.2 Tampilan Kegunaan CheckBox

    Tugas Praktikum :

    Buatlah sebuah aplikasi android dengan mengabungkan RadioButton dan

    CheckBox dalam satu layar.

  • 34

    MODUL 6

    Membuat Aplikasi Perhitungan

    Pada modul ini mahasiswa akan mengetahui model-model perhitungan pada

    aplikasi android.

    Pelaksanaan Praktikum

    Pada praktikum modul 6 ini kita akan membuat perhitugan sederhana perhitungan

    luas persegi panjang.

    Buka project baru dengan pilih dan klik Menu File => New => Android Application

    Project.

    Isi data project sesuai dengan tabel dibawah ini :

    Tabel 6.1 Pengisian Nama Project Modul 6

    Application Name Latihan6

    Project Name Latihan6

    Package Name nama.latihan6

    Activity Name Aktivitas

    Layout Name layar_aktivitas

    Buatlah Tampilan sebagai berikut :

    Gambar 6.1 Tampilan Rancangan Modul 6

  • 35

    Adapun text pada string.xml adalah sebagai berikut :

    Perhitungan Luas Persegi Panjang

    Hello world!

    Settings

    Panjang :

    Lebar :

    Luas :

    Hitung

    Kemudian pada desain melalui layar_aktivitas dengan urutas sebagai berikut :

  • 36

    android:inputType="numberSigned|numberDecimal">

  • 37

    Dilanjutkan dengan listing program melalui Aktivitas.java sebagai berikut :

    package alkho.latihan6;

    import android.support.v7.app.ActionBarActivity;

    import android.os.Bundle;

    import android.view.View;

    import android.widget.*;

    public class Aktivitas extends ActionBarActivity {

    private EditText txtPanjang;

    private EditText txtLebar;

    private EditText txtLuas;

    private Button btnHitung;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.layar_aktivitas);

    txtPanjang = (EditText) findViewById(R.id.txtPanjang);

    txtLebar = (EditText) findViewById(R.id.txtLebar);

    txtLuas = (EditText) findViewById(R.id.txtLuas);

    btnHitung = (Button) findViewById(R.id.btnHitung);

    }

    public void hitungLuas(View view) {

    try {

    int panjang = Integer.parseInt(txtPanjang.getText().toString());

    int lebar = Integer.parseInt(txtLebar.getText().toString());

    int luas = panjang * lebar;

    txtLuas.setText(String.valueOf(luas));

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

  • 38

    }

    Setelah menyelesaikan langkah di atas makan hasil program terletas pada gambar

    di bawah ini :

    Gambar 6.2 Aplikasi Perhitungan Bangun Datar

    Tugas Praktikum

    Buatlah aplikasi android untuk mengitung bangun datar di bawah ini :

    1. Perhitungan luas dan keliling persegi.

    2. Perhitungan luas dan keliling jajaran genjang.

    Pada tugas ini ditambah sebuah tombol untuk membersihkan layar.

  • 39

    MODUL 7

    Pembuatan Age Calculator

    Pada modul ini mahasiswa akan memperdalam pembuatan aplikasi android dengan

    eclipse.

    Pelaksanaan Praktikum

    Pada praktikum modul 7 ini kita akan membuat perhitugan usia melalui tanggal

    lahir dengan dua file java.

    Buka project baru dengan pilih dan klik Menu File => New => Android Application

    Project.

    Isi data project sesuai dengan tabel dibawah ini :

    Tabel 7.1 Pengisian Nama Project Modul 7

    Application Name Latihan7

    Project Name Latihan7

    Package Name nama.latihan7

    Activity Name Aktivitas

    Layout Name layar_aktivitas

    Buatlah Tampilan sebagai berikut :

  • 40

    Gambar 7.1 Tampilan Rancangan Modul 7

    Adapun text yang akan dikenali pada string.xml seperti dibawah ini:

    Age Calculator

    Hello world!

    Settings

    Date Of Birth

    Current Date

    Birth Date

    Result

    Kemudian desain sesuai dengan tampilan gambar diatas disamakan dengan

    layar_aktivitas.xml seperti dibawah ini:

  • 41

    tools:context="alkho.agecalcu.AgeCalcu"

    tools:ignore="MergeRootFrame" >

  • 42

    android:text="@string/text3" />

    Kemudian tambahkan sebuah file java dengan cara mengcopy Aktivitas.java dan

    diberi mana AgeCalculator.java dan kode programnya seperti dibawah ini:

    package alkho.latihan7;

    import java.util.Calendar;

    import java.util.Date;

    public class AgeCalculator {

    private int startYear;

    private int startMonth;

    private int startDay;

    private int endYear;

    private int endMonth;

    private int endDay;

    private int resYear;

    private int resMonth;

    private int resDay;

    private Calendar start;

    private Calendar end;

    public String getCurrentDate()

    {

    end=Calendar.getInstance();

    endYear=end.get(Calendar.YEAR);

    endMonth=end.get(Calendar.MONTH);

    endMonth++;

    endDay=end.get(Calendar.DAY_OF_MONTH);

    return endDay+":"+endMonth+":"+endYear;

    }

    public void setDateOfBirth(int sYear, int sMonth, int sDay)

    {

    startYear=sYear;

    startMonth=sMonth;

  • 43

    startMonth++;

    startDay=sDay;

    }

    public void calcualteYear()

    {

    resYear=endYear-startYear;

    }

    public void calcualteMonth()

    {

    if(endMonth>=startMonth)

    {

    resMonth= endMonth-startMonth;

    }

    else

    {

    resMonth=endMonth-startMonth;

    resMonth=12+resMonth;

    resYear--;

    }

    }

    public void calcualteDay()

    {

    if(endDay>=startDay)

    {

    resDay= endDay-startDay;

    }

    else

    {

    resDay=endDay-startDay;

    resDay=30+resDay;

    if(resMonth==0)

    {

    resMonth=11;

    resYear--;

  • 44

    }

    else

    {

    resMonth--;

    }

    }

    }

    public String getResult()

    {

    return resDay+":"+resMonth+":"+resYear;

    }

    public long getSeconde()

    {

    start=Calendar.getInstance();

    start.set(Calendar.YEAR, startYear);

    start.set(Calendar.MONTH, startMonth);

    start.set(Calendar.DAY_OF_MONTH, startDay);

    start.set(Calendar.HOUR, 12);

    start.set(Calendar.MINUTE, 30);

    start.set(Calendar.SECOND, 30);

    start.set(Calendar.MILLISECOND, 30);

    long now=end.getTimeInMillis();

    long old=start.getTimeInMillis();

    long diff=old-now;

    return diff/1000;

    }

    }

    Setelah selesai dengan AgeCalculator.java kemudian lanjut dengan Aktivitas.java

    yang kode programnya seperti dibawah ini:

    package alkho.latihan7;

    import android.support.v7.app.ActionBarActivity;

    import android.support.v7.app.ActionBar;

    import android.support.v4.app.Fragment;

  • 45

    import android.os.Bundle;

    import android.view.LayoutInflater;

    import android.view.Menu;

    import android.view.MenuItem;

    import android.view.View;

    import android.view.ViewGroup;

    import android.os.Build;

    import android.widget.*;

    import android.view.View.OnClickListener;

    import android.app.DatePickerDialog;

    import android.app.Dialog;

    import android.widget.DatePicker;

    public class Aktivitas extends ActionBarActivity implements OnClickListener{

    private Button btnStart;

    static final int DATE_START_DIALOG_ID = 0;

    private int startYear=1970;

    private int startMonth=6;

    private int startDay=15;

    private AgeCalculator age = null;

    private TextView currentDate;

    private TextView birthDate;

    private TextView result;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.layar_aktivitas);

    age=new AgeCalculator();

    currentDate=(TextView) findViewById(R.id.textView1);

    currentDate.setText("Tanggal Hari ini(Hari/Bulan/Tahun) : "+age.getCurrentDate());

    birthDate=(TextView) findViewById(R.id.textView2);

    result=(TextView) findViewById(R.id.textView3);

    btnStart=(Button) findViewById(R.id.button1);

    btnStart.setOnClickListener(this);

    }

    protected Dialog onCreateDialog(int id) {

  • 46

    switch (id) {

    case DATE_START_DIALOG_ID:

    return new DatePickerDialog(this,

    mDateSetListener,

    startYear, startMonth, startDay);

    }

    return null;

    }

    private DatePickerDialog.OnDateSetListener mDateSetListener

    = new DatePickerDialog.OnDateSetListener() {

    public void onDateSet(DatePicker view, int selectedYear,

    int selectedMonth, int selectedDay) {

    startYear=selectedYear;

    startMonth=selectedMonth;

    startDay=selectedDay;

    age.setDateOfBirth(startYear, startMonth, startDay);

    birthDate.setText("Tanggal Lahir(DD/MM/YY):

    "+selectedDay+":"+(startMonth+1)+":"+startYear);

    calculateAge();

    }

    };

    public void onClick(View v) {

    // TODO Auto-generated method stub

    switch (v.getId()) {

    case R.id.button1:

    showDialog(DATE_START_DIALOG_ID);

    break;

    default:

    break;

    }

    }

    private void calculateAge()

    {

    age.calcualteYear();

    age.calcualteMonth();

  • 47

    age.calcualteDay();

    Toast.makeText(getBaseContext(), "click the resulted

    button"+age.getResult() , Toast.LENGTH_SHORT).show();

    result.setText("Umur Kamu (DD/MM/YY) :"+age.getResult());

    }

    }

    Adapun hasil programnya terlihat pada gambar dibawah ini:

    Gambar 7.2 Aplikasi Menghitung Usia

    Kemudian klik tombol date of birth dan hasilnya seperti dibawah ini:

  • 48

    Gambar 7.3 Aplikasi Perhitungan Usia (2)

    Sehingga hasil akhirya pada gambar dibawah ini:

    Gamabr 7.4 Aplikasi Perhitungan Usia (3)

  • 49

    MODUL 8

    PENGUNAAN ListView

    Pada modul ini mahasiswa akan memperdalam pembuatan aplikasi android dengan

    eclipse.

    Pelaksanaan Praktikum

    Buka project baru dengan pilih dan klik Menu File => New => Android Application

    Project.

    Isi data project sesuai dengan tabel dibawah ini :

    Tabel 8.1 Pengisian Nama Project Modul 8

    Application Name Latihan8

    Project Name Latihan8

    Package Name nama.latihan8

    Activity Name Aktivitas

    Layout Name layar_aktivitas

    Buatlah Tampilan sebagai berikut :

    Gamabr 8.1 Tampilan Rancangan Modul 8

  • 50

    Adapun text yang ada pada string.xml adalah sebagai berikut :

    Latihan8

    Hello world!

    Settings

    Contoh Pengunaah Listview

    Kemudian desain sesuai dengan tampilan gambar diatas disamakan dengan

    layar_aktivitas.xml seperti dibawah ini:

    Dilanjutkan dengan listing program melalui Aktivitas.java sebagai berikut :

    package alkho.latihan8;

  • 51

    import android.support.v7.app.ActionBarActivity;

    import android.os.Bundle;

    import android.os.Build;

    import android.widget.ListView;

    import android.widget.TextView;

    import android.widget.ArrayAdapter;

    import android.app.ListActivity;

    import android.widget.*;

    import android.view.View;

    import android.widget.AdapterView;

    import android.widget.ArrayAdapter;

    import android.widget.ListView;

    import android.widget.Toast;

    import android.widget.AdapterView.OnItemClickListener;

    public class Aktivitas extends ActionBarActivity implements

    OnItemClickListener {

    private ListView ls_menu;

    private String[] menu = {"Menu 1", "Menu 2", "Menu 3", "Menu 4",

    "Menu 5"};

    @Override

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.layar_aktivitas );

    ls_menu = (ListView) findViewById(R.id.list );

    ArrayAdapter adapter = new

    ArrayAdapter(this,android.R.layout.simple_list_item_1, menu);

  • 52

    ls_menu.setAdapter(adapter);

    ls_menu.setOnItemClickListener(this);

    }

    public void onItemClick(AdapterView arg0, View arg1, int posisi,

    long arg3) {

    Toast.makeText(Aktivitas.this, "Anda memilih "+menu[posisi],

    Toast.LENGTH_SHORT).show();

    }

    }

    Adapun hasilnya terlihat pada gambar dibawah ini:

    Gambar 8.2 Contoh Pengunaan ListView

  • 53

    MODUL 9

    INTENT

    Pada modul ini mahasiswa akan memperdalam pembuatan aplikasi android dengan

    eclipse.

    Pelaksanaan Praktikum

    Buka project baru dengan pilih dan klik Menu File => New => Android Application

    Project.

    Pada saat project pertama kali dibuat ada 3 file penting yang langsung dibuat, yaitu

    main.xml

    string.xml

    BelajarExplicitIntentActivity.java

    Kemusian Kita siapkan layout untuk Activity pertama kita, edit main.xml lalu

    isikan dengan kode berikut:

  • 54

    3. Siapkan juga layout activity ke dua, buat file xml baru lalu simpan dengan

    nama main2.xml lalui isikan dengan kode berikut

  • 55

    Sekarang masuk ke file javanya, edit File BelajarExplicitIntentActivity.java lalu

    isikan kode berikut

    package com.agus.explicit.intent;

    import android.app.Activity;

    import android.content.Intent;

    import android.os.Bundle;

    import android.view.View;

    import android.widget.Button;

    public class BelajarExplicitIntentActivity extends Activity {

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

  • 56

    Button btnOpen = (Button) findViewById(R.id.btnOpen);

    //set OnClickListener event to btnOpen

    btnOpen.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {

    callIntent();

    }

    });

    }

    //method for call SecondActivity

    public void callIntent(){

    Intent i = new Intent(this, SecondActivity.class);

    startActivity(i);

    }

    }

    Perhatika kode

    Intent i = new Intent(this, SecondActivity.class);

    startActivity(i);

    Kode inilah yang digunakan untuk memanggil class SecondActivity

    Kita buat file java baru untuk Activity Kedua, simpan dengan nama

    SecondActivity.java lalu isikan dengan kode berikut

    package com.agus.explicit.intent;

    import android.app.Activity;

    import android.os.Bundle;

    import android.view.View;

    import android.widget.Button;

  • 57

    public class SecondActivity extends Activity {

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main2);

    Button btnOpen = (Button) findViewById(R.id.btnClose);

    btnOpen.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View arg0) {

    // TODO Auto-generated method stub

    finish(); //close activity

    }

    });

    }

    }

    Jangan lupa daftarkan Activity (SecodActivity.java) yang kita buat tadi pada

    Androidmanifest.xml dengan Tambahkan kode

    Sehingga isi AndroidManifes.xmlmenjadi seperti ini

  • 58

    7. Sekarang mari kita jalankan programnya

    Klik button Call Second Activity dan Klik tombol Close Second Activity akan

    Menutup SecondActivity dan menampilkan Activity sebelumnya

    Kita juga bisa mengirimkan data ke Activity yang dipanggil. Untuk mengirimkan

    data gunakan peritnha putExtra, untuk itu pada class

    BelajarExplicitIntentActivity.java, pada method callIntent rubah menjadi seperti

    ini.

    public void callIntent(){

    Intent i = new Intent(this, SecondActivity.class);

    EditText text1 = (EditText) findViewById(R.id.editTextdr1);

    String dataactivity_1 = text1.getText().toString();

    //untuk mengirim data gunakan putExtra

    i.putExtra("value1", dataactivity_1 );

    startActivity(i);

  • 59

    }

    Untuk membaca data yang dikirim dari Activity yang memanggil, pada class

    SecondActivity.java dalam method onCreate sesudah

    setContentView(R.layout.main); tambah kode ini

    Bundle extras = getIntent().getExtras();

    if (extras == null) {

    return;

    }

    String value1 = extras.getString("value1");

    if (value1 != null ) {

    EditText text1 = (EditText) findViewById(R.id.editText1);

    text1.setText(value1);

    }

    sekarang mari kita run kembali dan Isi Inputan Activity 1 dengan mau makan apa

    ?, lalu klik button Call Second Activity, Secara ototmatis Inputan Dari Activity 1

    akan terisi sesuai dengan isian yang kita inputkan pada Activity Pemanggil. Isi

    inputan Activity 2 dengan nasi dengan ayam, lalu klik tombol Close Second

    Activity Jawaban dari Second Activity tidak terbaca oleh Activity Pemanggilnya.

    Untuk membaca data yang dikirim dari SecondActivity pada saat Activity tersebut

    ditutup. Maka kita perlu menambahkan kode pada class

    BelajarExplicitIntentActivity.java berikut kode lengkapnya.

    package com.agus.explicit.intent;

    import android.app.Activity;

    import android.content.Intent;

    import android.os.Bundle;

  • 60

    import android.view.View;

    import android.widget.Button;

    import android.widget.EditText;

    public class BelajarExplicitIntentActivity extends Activity {

    private static final int REQUEST_CODE = 1;

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    Button btnOpen = (Button) findViewById(R.id.btnOpen);

    //set OnClickListener event to btnOpen

    btnOpen.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {

    callIntent();

    }

    });

    }

    //method for call SecondActivity

    public void callIntent(){

    Intent i = new Intent(this, SecondActivity.class);

    EditText text1 = (EditText) findViewById(R.id.editText1);

    String dataactivity_1 = text1.getText().toString();

    //untuk mengirim data gunakan putExtra

    i.putExtra("value1", dataactivity_1 );

    startActivityForResult(i, REQUEST_CODE);

    }

  • 61

    @Override

    protected void onActivityResult(int requestCode, int resultCode, Intent

    data) {

    if (resultCode == RESULT_OK && requestCode ==

    REQUEST_CODE) {

    if (data.hasExtra("return_value1")) {

    EditText text2 = (EditText)

    findViewById(R.id.editTextdr2);

    text2.setText(data.getExtras().getString("return_value1"));

    }

    }

    }

    }

    Perhatikan code startActivityForResult(i, REQUEST_CODE);

    Agar Activity pemanggil dapat menangkap data yang dikirimkan oleh activity yang

    dipanggil, maka kita harus menggunakan perintah startActivityForResult dan kita

    harus mengoveride method onActivityResult

    Pada Class SecondActivity.java rubah isinya menjadi seperti ini.

    package com.agus.explicit.intent;

    import android.app.Activity;

    import android.content.Intent;

    import android.os.Bundle;

    import android.view.View;

    import android.widget.Button;

    import android.widget.EditText;

  • 62

    public class SecondActivity extends Activity {

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main2);

    Bundle extras = getIntent().getExtras();

    if (extras == null) {

    return;

    }

    String value1 = extras.getString("value1");

    if (value1 != null ) {

    EditText text1 = (EditText)

    findViewById(R.id.editTextdr1);

    text1.setText(value1);

    }

    Button btnOpen = (Button) findViewById(R.id.btnClose);

    btnOpen.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View arg0) {

    // TODO Auto-generated method stub

    finish(); //close activity

    }

    });

    }

    @Override

    public void finish() {

    Intent data = new Intent();

    EditText text2 = (EditText) findViewById(R.id.editText2);

  • 63

    String dataactivity_2 = text2.getText().toString();

    data.putExtra("return_value1", dataactivity_2);

    setResult(RESULT_OK, data);

    super.finish();

    }

    }

    Agar dapat mengirim data ke activity pemanggil pada saat activity ini diclose maka

    kita perlu mengoverride method finish

    Sekarang mari kita jalankan programnya, lakukan langkah-langkah sebelumnya,

    Sekarang pada saat kta klik tombol Close Second Activity maka tampilannya adalah

    Kita telah berhasil membaca data yang dikirimkan oleh Second Activity, agar lebih

    memahami cobalah praktekan konsep Explicit Intent ini pada aplikasi yang kita

    buat. Kita sudah belajar tentang Explicit Intent, ada tugas nih buatlah aplikasi yang

    Activity pertamanya berisi List nama buah yang pabila diklik akan memanggil

    Activity ke 2 yang akan menampilkan gambar buahnya

    Gamabr 9.1 Pembuatan Project

  • 64

    Pada saat project pertama kali dibuat ada 3 file penting yang langsung dibuat,

    yaitu

    main.xml

    string.xml

    BelajarExplicitIntentActivity.java

    2. Kita siapkan layout untuk Activity pertama kita, edit main.xml lalu isikan

    dengan kode berikut

  • 65

    3. Siapkan juga layout activity ke dua, buat file xml baru lalu simpan dengan

    nama main2.xml lalui isikan dengan kode berikut

  • 66

    4. Sekarang masuk ke file javanya, edit File BelajarExplicitIntentActivity.java

    lalu isikan kode berikut

    package com.agus.explicit.intent;

    import android.app.Activity;

    import android.content.Intent;

    import android.os.Bundle;

    import android.view.View;

    import android.widget.Button;

    public class BelajarExplicitIntentActivity extends Activity {

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    Button btnOpen = (Button) findViewById(R.id.btnOpen);

    //set OnClickListener event to btnOpen

    btnOpen.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {

    callIntent();

    }

    });

    }

  • 67

    //method for call SecondActivity

    public void callIntent(){

    Intent i = new Intent(this, SecondActivity.class);

    startActivity(i);

    }

    }

    Perhatika kode

    Intent i = new Intent(this, SecondActivity.class);

    startActivity(i);

    Kode inilah yang digunakan untuk memanggil class SecondActivity

    5. Kita buat file java baru untuk Activity Kedua, simpan dengan nama

    SecondActivity.java lalu isikan dengan kode berikut

    package com.agus.explicit.intent;

    import android.app.Activity;

    import android.os.Bundle;

    import android.view.View;

    import android.widget.Button;

    public class SecondActivity extends Activity {

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main2);

    Button btnOpen = (Button) findViewById(R.id.btnClose);

    btnOpen.setOnClickListener(new View.OnClickListener() {

    @Override

  • 68

    public void onClick(View arg0) {

    // TODO Auto-generated method stub

    finish(); //close activity

    }

    });

    }

    }

    6. Jangan lupa daftarkan Activity (SecodActivity.java) yang kita buat tadi pada

    Androidmanifest.xml.

    Tambahkan kode

    Sehingga isi AndroidManifes.xmlmenjadi seperti ini

  • 69

    7. Sekarang mari kita jalankan programnya

    Gambar 9.2 Tampilan Pertama

    Klik button Call Second Activity

  • 70

    Gambar 9.3 Tampilan Kedua

    Klik tombol Close Second Activity akan Menutup SecondActivity dan

    menampilkan Activity sebelumnya

    8. Kita juga bisa mengirimkan data ke Activity yang dipanggil. Untuk

    mengirimkan data gunakan peritnha putExtra, untuk itu pada class

    BelajarExplicitIntentActivity.java, pada method callIntent rubah menjadi seperti

    ini.

    public void callIntent(){

    Intent i = new Intent(this, SecondActivity.class);

    EditText text1 = (EditText) findViewById(R.id.editTextdr1);

    String dataactivity_1 = text1.getText().toString();

  • 71

    //untuk mengirim data gunakan putExtra

    i.putExtra("value1", dataactivity_1 );

    startActivity(i);

    }

    9. Untuk membaca data yang dikirim dari Activity yang memanggil, pada class

    SecondActivity.java dalam method onCreate sesudah

    setContentView(R.layout.main); tambah kode ini

    Bundle extras = getIntent().getExtras();

    if (extras == null) {

    return;

    }

    String value1 = extras.getString("value1");

    if (value1 != null ) {

    EditText text1 = (EditText)

    findViewById(R.id.editText1);

    text1.setText(value1);

    }

    10. sekarang mari kita run kembali

  • 72

    Gambar 9.4 Hasil 1

    Isi Inputan Activity 1 dengan mau makan apa ?, lalu klik button Call Second

    Activity

  • 73

    Gambar 9.5 Hasil kedua

    Secara ototmatis Inputan Dari Activity 1 akan terisi sesuai dengan isian yang kita

    inputkan pada Activity Pemanggil.

    Isi inputan Activity 2 dengan nasi dengan ayam, lalu klik tombol Close

    Second Activity

  • 74

    Gambar 9.6 Hasil Ketiga

    Jawaban dari Second Activity tidak terbaca oleh Activity Pemanggilnya.

    11. Untuk membaca data yang dikirim dari SecondActivity pada saat Activity

    tersebut ditutup. Maka kita perlu menambahkan kode pada class

    BelajarExplicitIntentActivity.java berikut kode lengkapnya.

    package com.agus.explicit.intent;

    import android.app.Activity;

    import android.content.Intent;

    import android.os.Bundle;

    import android.view.View;

  • 75

    import android.widget.Button;

    import android.widget.EditText;

    public class BelajarExplicitIntentActivity extends Activity {

    private static final int REQUEST_CODE = 1;

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    Button btnOpen = (Button) findViewById(R.id.btnOpen);

    //set OnClickListener event to btnOpen

    btnOpen.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {

    callIntent();

    }

    });

    }

    //method for call SecondActivity

    public void callIntent(){

    Intent i = new Intent(this, SecondActivity.class);

    EditText text1 = (EditText) findViewById(R.id.editText1);

    String dataactivity_1 = text1.getText().toString();

    //untuk mengirim data gunakan putExtra

    i.putExtra("value1", dataactivity_1 );

    startActivityForResult(i, REQUEST_CODE);

    }

    @Override

  • 76

    protected void onActivityResult(int requestCode, int resultCode, Intent

    data) {

    if (resultCode == RESULT_OK && requestCode ==

    REQUEST_CODE) {

    if (data.hasExtra("return_value1")) {

    EditText text2 = (EditText)

    findViewById(R.id.editTextdr2);

    text2.setText(data.getExtras().getString("return_value1"));

    }

    }

    }

    }

    Perhatikan code startActivityForResult(i, REQUEST_CODE);

    Agar Activity pemanggil dapat menangkap data yang dikirimkan oleh activity

    yang dipanggil, maka kita harus menggunakan

    perintahstartActivityForResult dan kita harus mengoveride

    method onActivityResult

    12. Pada Class SecondActivity.java rubah isinya menjadi seperti ini.

    package com.agus.explicit.intent;

    import android.app.Activity;

    import android.content.Intent;

    import android.os.Bundle;

    import android.view.View;

    import android.widget.Button;

    import android.widget.EditText;

    public class SecondActivity extends Activity {

  • 77

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main2);

    Bundle extras = getIntent().getExtras();

    if (extras == null) {

    return;

    }

    String value1 = extras.getString("value1");

    if (value1 != null ) {

    EditText text1 = (EditText)

    findViewById(R.id.editTextdr1);

    text1.setText(value1);

    }

    Button btnOpen = (Button) findViewById(R.id.btnClose);

    btnOpen.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View arg0) {

    // TODO Auto-generated method stub

    finish(); //close activity

    }

    });

    }

    @Override

    public void finish() {

    Intent data = new Intent();

    EditText text2 = (EditText) findViewById(R.id.editText2);

    String dataactivity_2 = text2.getText().toString();

  • 78

    data.putExtra("return_value1", dataactivity_2);

    setResult(RESULT_OK, data);

    super.finish();

    }

    }

    Agar dapat mengirim data ke activity pemanggil pada saat activity ini diclose

    maka kita perlu mengoverride method finish

    13. Sekarang mari kita jalankan programnya, lakukan langkah-langkah seperti

    pada point 10.

    Sekarang pada saat kta klik tombol Close Second Activity maka tampilannya

    adalah

    Gambar 9.7 Hasil Keempat

  • 79

    14. Kita telah berhasil membaca data yang dikirimkan oleh Second Activity, agar

    lebih memahami cobalah praktekan konsep Explicit Intent ini pada aplikasi yang

    kita buat.

    Kita sudah belajar tentang Explicit Intent, ada tugas nih buatlah aplikasi yang

    Activity pertamanya berisi List nama buah yang pabila diklik akan memanggil

    Activity ke 2 yang akan menampilkan gambar buahnya

  • 80

    MODUL 10

    DATABASE SQLITE

    Berikut merupakan contoh penggunaan sqlite ini saya akan membuat

    sebuah aplikasi android untuk menyimpan Contact, data yang saya simpan

    adalahNama dan Nomer Telepon. Untuk langkah pertama saya mempersiapkan

    sebuah class entity untuk Contact. Berikut ini classnya.

    package com.example.sqlitetutorials;

    public class Contact

    {

    private int id;

    private String name;

    private String telp;

    public Contact()

    {

    // TODO Auto-generated constructor stub

    }

    public Contact(String name, String telp)

    {

    super();

    this.name = name;

    this.telp = telp;

    }

    public int getId()

    {

    return id;

    }

    public void setId(int id)

    {

    this.id = id;

    }

    public String getName()

    {

    return name;

    }

  • 81

    public void setName(String name)

    {

    this.name = name;

    }

    public String getTelp()

    {

    return telp;

    }

    public void setTelp(String telp)

    {

    this.telp = telp;

    }

    }

    class ini hanyalah berisi nama table yang akan ada didatabase kita nanti, beserta

    method getter dan setter.

    Selanjut adalah mepersiapkan class untuk menangani proses CRUD(Create, Read,

    Update, Delete). Disini saya membuat sebuah class yang saya berinama

    package com.example.sqlitetutorials;

    import android.content.ContentValues;

    import android.content.Context;

    import android.database.Cursor;

    import android.database.SQLException;

    import android.database.sqlite.SQLiteDatabase;

    import android.database.sqlite.SQLiteOpenHelper;

    import android.util.Log;

    public class DBAdapter

    {

    private static final String DB_NAME = "contact_db";

  • 82

    private static final int DB_VER = 1;

    public static final String TABLE_NAME = "contact";

    public static final String COL_ID = "_id";

    public static final String COL_NAME = "name";

    public static final String COL_TELP = "telp";

    private static final String TAG =

    "ContactDBAdapter";

    private DatabaseHelper dbHelper;

    private SQLiteDatabase db;

    private static final String DB_CREATE = "create table contact (_id

    integer primary key, name text not null, telp text not null);";

    private final Context context;

    private static class DatabaseHelper extends SQLiteOpenHelper

    {

    public DatabaseHelper(Context context)

    {

    // TODO Auto-generated constructor stub

    super(context, DB_NAME, null, DB_VER);

    }

    @Override

    public void onCreate(SQLiteDatabase db)

    {

    // TODO Auto-generated method stub

    db.execSQL(DB_CREATE);

  • 83

    }

    @Override

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int

    newVersion)

    {

    // TODO Auto-generated method stub

    Log.d(TAG, "upgrade DB");

    db.execSQL("DROP TABLE IF EXISTS " +

    TABLE_NAME);

    onCreate(db);

    }

    }

    public DBAdapter(Context context)

    {

    this.context = context;

    // TODO Auto-generated constructor stub

    }

    public DBAdapter open() throws SQLException

    {

    dbHelper = new DatabaseHelper(context);

    db = dbHelper.getWritableDatabase();

    return this;

    }

    public void close()

    {

  • 84

    dbHelper.close();

    }

    public void createContact(Contact contact)

    {

    ContentValues val = new ContentValues();

    val.put(COL_NAME, contact.getName());

    val.put(COL_TELP, contact.getTelp());

    db.insert(TABLE_NAME, null, val);

    }

    public boolean deleteContact(int id)

    {

    return db.delete(TABLE_NAME, COL_ID + "=" + id, null) > 0;

    }

    public Cursor getAllContact()

    {

    return db.query(TABLE_NAME, new String[]

    {

    COL_ID, COL_NAME, COL_TELP

    }, null, null, null, null, null);

    }

    public Cursor getSingleContact(int id)

    {

    Cursor cursor = db.query(TABLE_NAME, new String[]

    {

    COL_ID, COL_NAME, COL_TELP

    }, COL_ID + "=" + id, null, null, null, null);

  • 85

    if (cursor != null)

    cursor.moveToFirst();

    return cursor;

    }

    public boolean updateContact(Contact contact)

    {

    ContentValues val = new ContentValues();

    val.put(COL_NAME, contact.getName());

    val.put(COL_TELP, contact.getTelp());

    return db.update(TABLE_NAME, val, COL_ID + "=" +

    contact.getId(), null) > 0;

    }

    }

    pada class DBAdapter, terdapat method untuk update, insert, sampai delete..

    untuk class mainactivitynya penampakannya seperti berikut :

    package com.example.sqlitetutorials;

    import android.os.Bundle;

    import android.app.Activity;

    import android.content.Intent;

    import android.database.Cursor;

    import android.support.v4.widget.SimpleCursorAdapter;

    import android.view.Menu;

    import android.view.MenuItem;

    import android.view.View;

    import android.widget.AdapterView;

  • 86

    import android.widget.AdapterView.OnItemClickListener;

    import android.widget.EditText;

    import android.widget.ListView;

    public class MainActivity extends Activity implements OnItemClickListener

    {

    public static final String KEY_ID = "_id";

    private static final int INSERT_ID = Menu.FIRST;

    EditText empty;

    private ListView listview;

    private DBAdapter db;

    @Override

    protected void onCreate(Bundle savedInstanceState)

    {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    db = new DBAdapter(this);

    db.open();

    listview = (ListView) findViewById(R.id.list);

    listview.setEmptyView(findViewById(R.id.empty));

    listview.setOnItemClickListener(this);

    loadData();

    }

    private void loadData()

  • 87

    {

    // TODO Auto-generated method stub

    Cursor cur = db.getAllContact();

    String[] from = new String[]

    {

    DBAdapter.COL_NAME, DBAdapter.COL_TELP

    };

    int[] to = new int[]

    {

    R.id.txtName, R.id.txtPhoneNumber

    };

    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,

    R.layout.list_adapter, cur, from, to);

    listview.setAdapter(adapter);

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu)

    {

    // Inflate the menu; this adds items to the action bar if it is present.

    menu.add(0, INSERT_ID, 0, R.string.menu_add);

    return true;

    }

    @Override

    public boolean onOptionsItemSelected(MenuItem item)

    {

    // TODO Auto-generated method stub

    switch (item.getItemId())

  • 88

    {

    case INSERT_ID:

    startActivity(new Intent(MainActivity.this,

    AddContact.class));

    break;

    }

    return super.onOptionsItemSelected(item);

    }

    @Override

    public void onItemClick(AdapterView arg0, View v, int pos, long id)

    {

    // TODO Auto-generated method stub

    Bundle bundle = new Bundle();

    bundle.putLong(KEY_ID, id);

    Intent intent = new Intent(MainActivity.this, EditActivity.class);

    intent.putExtras(bundle);

    db.close();

    startActivity(intent);

    }

    }

    di file mainActivity saya menggunakan SimpleCursorAdapter untuk menampilkan

    data yang ada kedalam listview yang sudah saya tambahkan di file xml nya.

    Kemudian mainActivity ini juga memiliki menu option yang akan muncul ketika

    user mengklik tombol menu yang ada di handset, jika user menekan tombol menu,

    maka akan muncul menu Insert dan activity berpindah ke AddContact,

  • 89

    untuk file main_activity.xml sebagai berikut :

    untuk class AddContact sebagai berikut :

    package com.example.sqlitetutorials;

    import android.app.Activity;

    import android.content.Intent;

    import android.os.Bundle;

    import android.view.View;

    import android.view.View.OnClickListener;

  • 90

    import android.widget.Button;

    import android.widget.EditText;

    public class AddContact extends Activity implements OnClickListener

    {

    EditText inputName, inputNumber;

    Button btnAdd;

    DBAdapter db;

    @Override

    protected void onCreate(Bundle savedInstanceState)

    {

    // TODO Auto-generated method stub

    super.onCreate(savedInstanceState);

    db = new DBAdapter(this);

    db.open();

    setContentView(R.layout.add);

    inputName = (EditText) findViewById(R.id.inputName);

    inputNumber = (EditText) findViewById(R.id.inputNumber);

    btnAdd = (Button) findViewById(R.id.btnAdd);

    btnAdd.setOnClickListener(this);

    }

    @Override

    public void onClick(View v)

    {

    // TODO Auto-generated method stub

    switch (v.getId())

    {

  • 91

    case R.id.btnAdd:

    Contact contact = new Contact();

    contact.setName(inputName.getText().toString());

    contact.setTelp(inputNumber.getText().toString());

    db.createContact(contact);

    startActivity(new Intent(AddContact.this,

    MainActivity.class));

    db.close();

    finish();

    break;

    default:

    break;

    }

    }

    }

    dan file xml nya

  • 92

    untuk bagian edit atau delete contact saya membuat sebuah activity yakni

    EditActivity untuk menangani Edit contact dam delete contact

    package com.example.sqlitetutorials;

    import android.os.Bundle;

  • 93

    import android.app.Activity;

    import android.content.Intent;

    import android.database.Cursor;

    import android.view.Menu;

    import android.view.View;

    import android.view.View.OnClickListener;

    import android.widget.Button;

    import android.widget.EditText;

    public class EditActivity extends Activity implements OnClickListener

    {

    DBAdapter db;

    EditText editName, editPhone;

    Button btnSave, btnDelete;

    int id;

    @Override

    protected void onCreate(Bundle savedInstanceState)

    {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_edit);

    db = new DBAdapter(this);

    db.open();

    Bundle b = getIntent().getExtras();

    id = (int) b.getLong(MainActivity.KEY_ID);

    editName = (EditText) findViewById(R.id.editName);

    editPhone = (EditText) findViewById(R.id.editPhone);

  • 94

    btnSave = (Button) findViewById(R.id.editBtnSave);

    btnDelete = (Button) findViewById(R.id.editBtnDelete);

    btnSave.setOnClickListener(this);

    btnDelete.setOnClickListener(this);

    tampilData();

    }

    private void tampilData()

    {

    // TODO Auto-generated method stub

    Cursor cursor = db.getSingleContact(id);

    editName.setText(cursor.getString(cursor.getColumnIndexOrThrow(DBA

    dapter.COL_NAME)));

    editPhone.setText(cursor.getString(cursor.getColumnIndexOrThrow(DBA

    dapter.COL_TELP)));

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu)

    {

    // Inflate the menu; this adds items to the action bar if it is present.

    getMenuInflater().inflate(R.menu.edit, menu);

    return true;

    }

    @Override

    public void onClick(View v)

  • 95

    {

    // TODO Auto-generated method stub

    switch (v.getId())

    {

    case R.id.editBtnSave:

    Contact contact = new Contact();

    contact.setId(id);

    contact.setName(editName.getText().toString());

    contact.setTelp(editPhone.getText().toString());

    db.updateContact(contact);

    startActivity(new Intent(EditActivity.this,

    MainActivity.class));

    finish();

    break;

    case R.id.editBtnDelete:

    db.deleteContact(id);

    startActivity(new Intent(EditActivity.this,

    MainActivity.class));

    finish();

    break;

    }

    }

    }

    file xmlnya..

  • 96

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context=".EditActivity" >

  • 97

    android:layout_marginTop="32dp"

    android:text="@string/str_hp" />

    Ketika program pertama kali dijalankan..

  • 98

    Gambar 10.1 Tampilan Rancangan Layar

    Tutorial Android SQLite Database

    akan muncul text Empty Data hal ini dikarenakan kita sudah menset ketika list

    empty akan menampikan text empty data..

    listview.setEmptyView(findViewById(R.id.empty));

    Ketika tombol menu ditekan

  • 99

    Gambar 10.2 Tampilan Rancangan Data

    Tutorial Android SQLite Database

    tampilan insert data

  • 100

    Gambar 10.3 Tampilan Rancangan Inputan

    Tutorial Android SQLite Database

  • 101

    Gambar 10.4 Hasil Inputan

    Tutorial Android SQLite Database

    tampilan main activity ketika data sudah terisi..

  • 102

    Gamabr 10.5 Tampilan Data