Modul Mobile Programing

download Modul Mobile Programing

of 35

description

Contoh Modul Praktikum Modul Mobile Programing

Transcript of Modul Mobile Programing

  • MODUL MOBILE PROGRAMING

    DIO BIAN PRIATAMA

    122406109

    KOM C1 12

    D3 TEKNIK INFORMATIKA

    FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

    UNIVERSITAS SUMATERA UTARA

    MEDAN

    2014

  • i

    KATA PENGANTAR

    Dengan rahmat dan karunia Allah SWT ,saya ucapkan rasa syukur saya atas kehadirat Allah

    SWT yang telah memberikan saya nikmat dan karunia-Nya, dan memberikan saya jalan

    sehingga saya berhasil menyelesaikan MODUL ini, MODUL yang saya buat ini berjudul

    MOBILE PROGRAMING .

    Saya sangat menyadari bahwa MODUL ini masih jauh dari sempurna, dikarenakan

    keterbatasan waktu dan kemampuan yang saya miliki, maka dari itu kritik dan saran yang

    bersifat membangun sangat harapkan dari berbagai pihak yang membaca isi MODUL ini.

    Dan akhir kata saya sampaikan terimakasih kepada semua pihak yang berperan dalam

    penyusunan MODUL ini dari awal sampai akhir. Semoga Allah SWT memberikan rahmat dan

    karunia untuk semua usaha kita. Amin.

    Medan, 21 April 2014

    Dio Bian Priatama

  • ii

    DAFTAR ISI

    KATA PENGANTAR

    DAFTAR ISI

    BAB 1 SEJARAH OOP

    1.1 Pengertian OOP 1

    1.2 Sejarah OOP. 1

    BAB 2 OOP PADA JAVA

    2.1 Object... 3

    2.2 Attributes/ Variable.. 3

    2.3 Class. 4

    2.4 Methode/Behavior 4

    2.5 Penggunaan This.. 6

    2.6 Konstruktor. 6

    2.7 Overloading. 7

    2.8 Variabel Kelas.. 10

    2.9 Pewarisan. 11

    2.10 Akses Protected....................................................................................... 13

    2.11 Abstract 15

    2.12 Visibilitas Private dan Public 17

    BAB 3 MOBILE PROGRAMING

    3.1 Perangkat Mobile.. 20

    3.2 Gambaran J2ME... 21

    3.2.1 Platform Java 21

    3.2.2 Gambaran J2ME.. 22

  • iii

    3.2.3 Configuration.. 23

    3.2.4 Profile.. 24

    3.3 CLDC.. 24

    3.3.1 Fitur yang hilang.. 24

    3.3.2 Karakteristik perangkat CLDC... 24

    3.3.3 Verifikasi Class... 25

    3.3.4 Generic Connection Framework. 25

    3.4 CDC 26

    3.5 JTWI... 27

    3.6 MIDP.. 27

    3.7 MIDlet 28

    3.7.1 Siklus MIDlet. 29

    3.7.2 MIDlet suites.. 29

    BAB 4 KESIMPULAN

    4.1 Kesimpulan. 30

    4.2 Kata Penutup... 31

  • BAB 1

    SEJARAH OOP

    1.1 Pengertian OOP

    OOP adalah sebuah metodologi atau cara berpikir dalam melakukan pemrograman dimana

    pendefinisian tipe data disertai dengan pendefinisian fungsi. Struktur data yang seperti ini

    disebut dengan istilah object. Paradigma pemrograman OOP dapat dilihat sebagai interaksi

    sebuah object dalam melakukan tugasnya.

    Segelas teh tentunya memiliki berbagai spesifikasi seperti volume air, rasa, temperatur

    dan sebagainya. Pada pemrograman, spesifikasi-spesifikasi tersebut merupakan variabel yang

    dideklarasikan beserta tipe data. Pada OOP, sebuah object Teh juga memiliki method berupa

    fungsi yang dapat dipanggil untuk merubah kelakuan atau spesifikasi teh tersebut. Method

    minumTeh dapat dideklarasikan sebagai fungsi yang dapat dipanggil untuk mengurangi nilai

    variabel Volume.

    Di samping itu, sebuah object dapat memiliki relasi terhadap object lainnya. Sebagai

    contoh, sebuah object dapat berupa keturunan dari object lain.

    1.2 Sejarah OOP

    Konsep OOP bermula pada era 1960-an. Sebuah bahasa pemrograman

    Simula memperkenalkan berbagai konsep yang mendasari OOP dengan SIMULA I (1962-65)

    dan Simula 67 (1967). Kemudian pada tahun 70-an, bahasa pemrograman Smalltalk menjadi

    yang pertama kali disebut object-oriented.

    Pada tahun 1980-an, dua bahasa pemrograman ADA (US Department of Defense) dan

    PROLOG (the Japanese Fifth Generation Computer Project) dipercayai akan bersaing ketat

    sebagai bahasa pemrograman yang paling dominan. Namun justru OOP yang menjadi

    paradigma pemrograman yang paling dominan sampai sekarang. Bahasa pemrograman yang

    object-oriented seperti C++ pada tahun 80-an menjadi populer. Pada tahun 90-an, bahasa-

    bahasa pemrograman seperti Java mulai menerapkan OOP. Sampai pada 2002, Microsoft

    Visual Studio memperkenalkan bahasa object-oriented baru yang diberi nama C#.

    Disusul VB.NET yang merupakan penyempurnaan Visual Basic 6.0 yang tidak mendukung

    OOP

  • 2

    Object-Oriented Programming (OOP) adalah sebuah pendekatan untuk pengembangan

    / development suatu software dimana dalam struktur software tersebut didasarkan kepada

    interaksi object dalam penyelesaian suatu proses / tugas. Interaksi tersebut mengambil form

    dari pesan-pesan dan mengirimkannya kembali antar object tersebut. Object akan merespon

    pesan tersebut menjadi sebuah tindakan / action atau metode. Jika kita mencoba melihat

    bagaimana tugas disekitar kita diselesaikan, kita akan mengetahui bahwa kita berinteraksi

    dalam sebuah object-oriented world. Jika akan bepergian kita pasti berinteraksi dengan object

    mobil. Sebagai sebuah object, mobil berisi object-object lain yang berinteraksi untuk

    melakukan tugasnya membawa kita.

    Object-oriented programs terdiri dari objects yang berinteraksi satu sama lainnya untuk

    menyelesaikan sebuah tugas. Seperti dunia nyata, users dari software programs dilibatkan dari

    logika proses untuk menyelesaikan tugas. Contoh, ketika kamu mencetak sebuah halaman

    diword processor, kamu berarti melakukan inisialisasi tindakan dengan mengklik tombol

    printer. Kemudian kamu hanya menunggu respon apakah job tersebut sukses atau gagal,

    sedangkan proses terjadi internal tanpa kita ketahui. Tentunya setelah kamu menekan tombol

    printer, maka secara simultan object tombol tersebut berinteraksi dengan object printer untuk

    menyelesaikan job tersebut.

  • BAB 2

    OOP PADA JAVA

    2.1 Object

    adalah instance dari class. Jika class secara umum merepresentasikan (template) sebuah object,

    sebuah instance adalah representasi nyata dari class itu sendiri.

    Contoh : Dari class Fruit kita dapat membuat object Mangga, Pisang, Apel dan lain-lain.

    Membuat Object

    Untuk membuat object, kita menggunakan perintah new dengan sebuah nama class yang akan

    dibuat sebagai instance dari class tersebut.

    String str = new String();

    Random r = new Random();

    Pegawai p2 = new PEgawai();

    Date hari = new Date();

    hari adalah object reference dari class Date yang akan digunakan untuk mengakses class

    Date. Sedangkan operator new adalah operator yang akan menghasilkan hari sebagai reference

    ke instance dari class Date().

    2.2 Attributes/ Variable

    merupakan nilai data yang terdapat pada suatu object yang berasal dari class. Attributes

    merepresentasikan karakteristik dari suatu object. Contoh : pada Class Fruit terdapat attribute

    : warna, berat pada object mangga : warna berisi kuning dan berat misalkan 0.24 kg pada object

    apel : warna berisi merah dan berat misalkan 0.30 kg

    Format:

    tipeData variabel = nilai;

    Contoh:

    String kalimat = "Aiz tukang tidur";

    // variabel 'kalimat' bertipe data String mempunyai nilai "Aiz

    tukang tidur"

  • 4

    int x = 10;

    // variabel 'x' bertipe data integer, mempunyai nilai 10

    2.3 Class

    Pengertian dari Class, Object, dan Method Pada Javamerupakan suatu blueprint atau cetakan

    untuk menciptakan suatu instant dari object. class juga merupakan grup suatu object dengan

    kemiripan attributes/properties, behaviour dan relasi ke object lain. Contoh : Class Person,

    Vehicle, Tree, Fruit dan lain-lain.

    Format pembuatannya :

    ModifierAccess class namaClass{

    // isi class

    }

    Contoh:

    public class mobil{

    String merkMobil = "Nissan Skyline";

    int tipeMobil = 2000;

    }

    2.4 Methode/Behavior

    merupakan suatu operasi berupa fungsi-fungsi yang dapat dikerjakan oleh suatu object. Method

    didefinisikan pada class akan tetapi dipanggil melalui object.

    Contoh : pada object mangga : terdapat method ambilRasa , kupasKulit dan lain-lain.

    Metode menentukan perilaku objek, yakni apa yang terjadi ketika objek itu dibuat serta

    berbagai operasi yang dapat dilakukan objek sepanjang hidupnya.

    Metode memiliki 4 (empat) bagian dasar :

    1. Nama metode

    2. Tipe Objek atau tipe primitive yang dikembalikan metode.

    3. Daftar parameter.

    4. Badan atau isi metode.

    Tiga bagian pertama mengindikasikan informasi penting tentang metode itu sendiri.

    Dengan kata lain, nama metode tersebut=metode lain dalam program. Dalam java kita dapat

  • 5

    memiliki metode-metode berbeda yang memiliki nama sama tetapi berbeda tipe kembalian atau

    daftar argumennya, sehingga bagian-bagian definisi metode ini menjadi penting. Ini disebut

    overloading metode.

    Untuk menjalankan program yang memiliki sifat polymorphism tersebut, diperlukan

    suatu kemampuan overloading, yaitu suatu kemampuan untuk menentukan fungsi yang mana

    yang harus digunakan atau dijalankan jika terdapat nama fungsi yang sama. Polimorfisme bisa

    diartikan seperti kemampuan suatu variable untuk mengubah perangai sesuai dengan objek

    hasil instansiasi yang digunakan. Polimorfisme membiarkan lebih dari 1 objek dari sub class

    sub class dan diperlakukan sebagai objek dari super class tunggal

    Contoh:

    Mahasiswa cowok = new anakSI();

    cowok.methodKU( Bernaz );

    Mahasiswa cewek = new anakTI();

    cewek.mothodKU( Amelia );

    Outputnya:

    -Methodku dengan parameter dengan nilai Bernaz di class anakSI telah dipanggil

    -Methodku dengan parameter dengan nilai Amelia di class anakTI telah dipanggil

    Contoh Program:

    class buku{String pengarang;String judul;void isi (String

    isi1,String isi2)

    {judul = isi1;pengarang = isi2;}

    void cetak()

    {

    if (judul==null&&pengarang==null)return;

    System.out.println(judul= +judul +pengarang= +pengarang);

    }

    }

    class karangan{

    public static void main(String[]args)

    {

  • 6

    2.5 Penggunaan This

    Kata kunci this dipergunakan pada pembuatan kelas dan digunakan untuk menyatakan objek

    sekarang. Untuk menghindari variabel yang sama antara variabel class dengan variabel

    property.

    Contoh listing Program :

    class Siswa{

    String nama;

    String nim;

    void isiData ( String nama,String nim) {

    this.nama=nama;

    this.nim=nim;

    } }

    2.6 Konstruktor

    Metode konstruktor adalah metode yang dapat digunakan untuk memberikan nilai awal saat

    objek diciptakan. Metode ini akan dipanggil secara otomatis oleh Java ketika new dipakai untuk

    menciptakan instan kelas.

    Konstruktor mempunyai sifat:

    a. Namanya sama dengan kelas

    b. Tidak memiliki nilai baik

    c. Tidak boleh ada kata kunci void

    Contoh:

    //nama berkas : konstruktor.java

    class mobil

    {

    private String warna;

    private int tahun;

    public mobil(String warna, int tahun) //Konstruktor

    {

    this.warna = warna;

    this.tahun = tahun; //Variable instan

    }

    public void info() //Metode

  • 7

    {

    System.out.println(Warna mobil saya : + this.warna);

    System.out.println(Dibuat tahun : + this.tahun);

    }

    }

    public class konstruktor

    {

    public static void main (String[] args)

    {

    mobil mobilku = new mobil(Silver, 2008);

    mobilku.info();

    }

    }

    Hasilnya:

    Warna mobil saya : Silver

    Dibuat tahun : 2008

    Keterangan:

    Pada program di atas tampak bahwa nama konstruktor sama dengan nama kelas. Dalam hal ini

    konstruktor memiliki dua parameter, yaitu warna dan tahun. Selain itu penciptaan objek tidak

    lagi dilakukan dengan menggunakan bentuk : mobil = new mobil();

    2.7 Overloading

    Overloading terhadap konstruktor merupakan suatu mekanisme pembuatan konstruktor yang

    memiliki bentuk lebih dari satu. Dalam hal ini, pembeda antara satu konstruktor dengan

    konstruktor yang lain berupa jumlah parameter atau tipe parameter.

    Contoh:

    //nama berkas : konstruktor1.java

    class mobil

    {

    private String warna;

    private int tahun;

    public mobil(String warna, int tahun) //Konstruktor-1

  • 8

    {

    this.warna = warna;

    this.tahun = tahun;

    }

    public mobil() //Konstruktor-2

    {

    }

    public void info()

    {

    System.out.println(Warna mobil saya : + this.warna);

    System.out.println(Dibuat tahun : + this.tahun);

    }

    }

    public class konstruktor1

    {

    public static void main (String[] args)

    {

    mobil mobilku = new mobil(Silver, 2008);

    mobilku.info();

    mobil mobilmu = new mobil();

    mobilmu.info();

    mobil mobilnya = new mobil(Silver, 2008);

    mobilnya.info();

    }

    }

    Hasilnya:

    Warna mobil saya : Silver

    Dibuat tahun : 2008

    Warna mobil saya : null

    Dibuat tahun : 0

    Warna mobil saya : Silver

    Dibuat tahun : 2008

  • 9

    Keterangan:

    Tampak bahwa pemanggilan dengan mobil mobilmu = new mobil(); diperkenankan pada

    program di atas. Mengingat konstruktor yang tidak melibatkan parameter tidak melibatkan

    perintah apapun, maka warna dan tahun diisi dengan nilai default , yaitu null dan 0.

    Overloading juga dapat dikenali pada metode non konstraktor.

    Contoh:

    //nama berkas : overloading.java

    class matematika

    {

    static public double kuadrat(double nilai)

    {

    return nilai*nilai;

    }

    static public int kuadrat(int nilai)

    {

    return nilai*nilai;

    }

    static public double kuadrat(String nilai)

    {

    double bilangan = Double.valueOf(nilai).doubleValue();

    return bilangan*bilangan;

    }

    }

    public class overloading

    {

    public static void main (String[] args)

    {

    System.out.println (Kuadrat dari 25.0 adalah : +

    matematika.kuadrat(25.0));

    System.out.println (Kuadrat dari 25 adalah : +

    matematika.kuadrat(25));

    System.out.println (Kuadrat dari \25\ adalah : +

    matematika.kuadrat(25));

    } }

  • 10

    Hasilnya:

    Kuadrat dari 25.0 adalah : 625.0

    Kuadrat dari 25.0 adalah : 625

    Kuadrat dari 25 adalah : 625.0

    Keterangan:

    Metode kuadrat mempunyai tiga buah bentuk, yaitu double, int, String. Program akan

    menghasilkan keluaran sesuai dengan jenis parameter yang diinput pada program utama.

    2.8 Variabel Kelas

    Variabel kelas adalah variable yang berlaku tidak terbatas hanya pada objek tetapi pada seluruh

    objek. Variabel ini didefinisikan dengan menggunakan kata kunci static.

    Contoh:

    //nama berkas : variabelkelas.java

    class bilangan

    {

    static int pencacah = 0;

    private int nilai;

    public bilangan (int nilai)

    {

    this.nilai = nilai;

    this.pencacah++;

    }

    public void info()

    {

    System.out.println(Data ke- +this.pencacah);

    System.out.println(Bilangan yang Anda ketik : + this.nilai);

    }

    }

    public class variabelkelas

    {

    public static void main (String[] args)

    {

    bilangan satu =new bilangan(44);

    satu.info();

  • 11

    bilangan dua =new bilangan(55);

    dua.info();

    bilangan tiga =new bilangan(66);

    tiga.info();

    }

    }

    Hasilnya:

    Data ke- 1

    Bilangan yang Anda ketik : 44

    Data ke- 2

    Bilangan yang Anda ketik : 55

    Data ke- 3

    Bilangan yang Anda ketik : 66

    Keterangan:

    Terlihat bahwa nilai pencacah bertambah sebesar satu setiap kali objek berkelas bilangan

    dibentuk.

    2.9 Pewarisan

    Pewarisanmerupakan konsep dalam pemograman berorientasi objek yang memungkinkan

    untuk membuat suatu kelas dengan didasarkan pada kelas yang sudah ada sehingga mewarisi

    semua metode dan variabelnya.

  • 12

    Gambar 2.9 Bentuk pewarisan kelas

    Pada gambar, Kelas_A disebut kelas dasar atau superkelas, sedangkan Kelas_B disebut kelas

    turunan atau kelas anak.

    Semua metode dan variable instan yang terdapat pada kelas dasar diturunkan ke kelas turunan.

    Namun kelas turunan dapat menambahkan metode baru atau variable instan baru sendiri.

    Contoh:

    //nama berkas: alpha.java

    class alpha

    {

    private int a=4;

    public void info()

    {

    System.out.println (Nilai a pada program alpha = +a);

    System.out.println (Dipanggil oleh program :

    +this.getClass().getName()); //untuk memperoleh nama kelas

    }

    }

  • 13

    Untuk membuat kelas turunan, secara prinsip dibuat dengan menggunakan bentuk:

    class KelasTurunan extends KelasDasar()

    {

    pernyataan;

    }

    Contoh:

    //nama berkas: bravo.java

    class bravo extend alpha

    {

    public static void main (String[] args)

    {

    bravo cetak = new bravo();

    cetak.info();

    int a = 44;

    System.out.println (Nilai a pada program bravo = +a);

    }

    }

    Hasil :

    Nilai a pada program alpha = 4

    Dipanggil oleh program : bravo

    Nilai a pada program bravo = 44

    2.10 Akses Protected

    Penentu akses ini berguna untuk mengatur agar suatu variable instan ataupun metode yang

    terdapat pada sebuah kelas dapat diakses pada kelas itu sendiri dan pada subkelas.

    Contoh:

    //nama berkas: charlie.java

    class charlie

    {

    private int a=4;

    protected int b=44;

    public void info()

    {

  • 14

    System.out.println (Nilai a = +a);

    System.out.println (Nilai b = +b);

    System.out.println (Dipanggil oleh program :

    +this.getClass().getName());

    }

    }

    Setelah itu buat program berikut sebagai turunan dari program

    charlie.java :

    //nama berkas: delta.java

    class delta extends charlie

    {

    private int c=5;

    public void info()

    {

    System.out.println (Nilai a = +a); //baris ini harus dihapus!

    System.out.println (Nilai b = +b);

    System.out.println (Nilai c = +c);

    System.out.println (Dipanggil oleh program :

    +this.getClass().getName());

    }

    }

    Hasil:

    delta.java:7: a has private access in charlie

    System.out.println(Nilai a= +a);

    1 error

    Keterangan:

    Tampak bahwa pesan kesalahan yang menyatakan variable instan a tidak dikenal karena a

    adalah variable private, sedangkan b dengan variable protected dikenal pada kelas delta.

    Untuk memanggil kelas charlie dan delta, buat program berikut ini:

    //nama berkas: panggil.java

    class panggil

    {

    public static void main (String[] args)

  • 15

    {

    charlie obyek1 = new Charlie();

    obyek1.info();

    delta obyek2 = new delta();

    obyek2.info();

    }

    }

    Hasil

    Nilai a = 4

    Nilai b = 44

    Dipanggil oleh program : Charlie

    Nilai b = 44

    Nilai c = 5

    Dipanggil oleh program : delta

    2.11 Abstract

    Java menyediakan suatu mekanisme yang memungkinkan suatu metode ditentukan dari dalam

    kelas, tetapitidak disertai dengan definisinya. Metode ini dikenal dengan nama metode abstrak,

    sedangkan kelasnya dinamakan kelas abstrak.

    Contoh:

    //nama berkas: kendaraan.java

    public abstract class kendaraan

    {

    protected String nama;

    public abstract void jalankan();

    }

    Pada program di atas tampak bahwa metode abstrak jalankan()tidak mempunyai tubuh program

    karena definisi metode tersebut harus dilakukan pada subkelas.

    Contoh:

    //nama berkas: tesjalankan.java

  • 16

    class sepeda extends kendaraan

    {

    public sepeda(String nama)

    {

    this.nama=nama;

    }

    public void jalankan()

    {

    System.out.println (Duduklah di atas sadel +this.nama+ dan

    kayuhlah);

    }

    }

    class mobil extends kendaraan

    {

    public mobil (String nama)

    {

    this.nama = nama;

    }

    public void jalankan()

    {

    System.out.println (Duduklah di depan stir +this.nama+ dan

    hidupkan mesin);

    }

    }

    public class tesjalankan

    {

    public static void main(String[]args)

    {

    sepeda sepedaku = new sepeda(Sepeda BMX);

    sepedaku.jalankan();

    mobil mobilku = new mobil(Sedan);

    mobilku.jalankan();

    }

    }

  • 17

    Hasil:

    Duduklah di atas sadel Sepeda BMX dan kayuhlah

    Duduklah di depan stir Sedan dan hidupkan mesin

    2.12 Visibilitas Private dan Public

    Java mendukung 4 visibilitas

    a. private : Hanya dapat diakses oleh kelas itu sendiri.

    b. public : Dapat diakses oleh seluruh kelas

    c. protection : Hanya dapat diakses oleh kelas itu sendiri dan kelas turunannya.

    d. Tanpa visibilitas : Hanya dapat diakses oleh kelas kelas yang berada dalam satu paket.

    Visibilitas private merupakan visibilitas yang dapat diguakan pada atribut, metode ataupun

    kelas. Gunanya visibilitas adalah untuk menyembunyikan atribut, meted atau kelas . Atribut,

    metode atau kelas yang menggunakan visibilitas hanya dapat diakses oleh objek itu sendiri.

    Contoh atribut yang menggunakan visibilitas private.

    class Manusia{

    private String nama;

    String alamat;

    void ubahData (String nama, String alamat) {

    this.nama = nama;

    this.alamat = alamat;

    }

    }

    Untuk runningnya jalankan kode berikut.

    public class manusiaBeraksi{

    public static void main(String[] args) {

  • 18

    Manusia manusia = new Manusia ();

    manusia.ubahData ("Paimin", "pekalongan");

    System.out.println("nama : "+manusia.nama);

    System.out.println("alamat : "+manusia.alamat);

    }

    }

    Pada kode diatas, atribut nama menjadi private, sehingga hanya kelas Manusia itu sendiri yang

    bisa mengakses atribut tersebut, dan jika program manusiaBeraksi diatas di eksekusi maka akan

    terjadi ERROR, karena atribut tersebut bersifat privat dan tidak bisa diakses oleh kelas lain

    selain kelas Manusia itu sendiri.

    Selanjutnya adalah visibilitas public merupakan visibilitas yang dapat diterapkan pada atribut,

    metode, dan kelas. Dengan visibilitas public, maka atribut, metode ataupun kelas yang

    memiliki sifat public tersebut dapat diakses oleh kelas manapun dari package manapun.

    Contoh, pada kode sebelumnya, kita akan menambahkan sebuah metode public yang bernama

    ambilNama() yang mengembalikan nama mahasiswa.

    class Manusia{

    private String nama;

    String alamat;

    public String ambilNama () {

    return nama;

    }

    void ubahData (String nama, String alamat) {

    this.nama = nama;

    this.alamat = alamat;

    }

    }

    Dengan demikian untuk mengakses atribut nama, sekarang kita dapat menggunakan metode

    ambilNama()

    public class manusiaBeraksi{

  • 19

    public static void main(String[] args) {

    Manusia manusia = new Manusia ();

    manusia.ubahData ("Paimin", "pekalongan");

    System.out.println("nama : "+manusia.ambilNama () );

    System.out.println("alamat : "+manusia.alamat);

    }

    }

    Class, Method atau Atribut yang menggunakan Visibilitas protected hanya dapat di akses oleh

    Class turunanya dan Class itu sendiri.

  • BAB 3

    MOBILE PROGRAMING

    3.1 Perangkat Mobile

    Perangkat mobile memiliki banyak jenis dalam hal ukuran, desain dan layout, tetapi mereka

    memiliki kesamaan karakteristik yang sangat berbeda dari sistem desktop.

    1. Ukuran yang kecil

    Perangkat mobile memiliki ukuran yang kecil. Konsumen menginginkan perangkat

    yang terkecil untuk kenyamanan dan mobilitas mereka.

    2. Memory yang terbatas

    Perangkat mobile juga memiliki memory yang kecil, yaitu primary (RAM) dan

    secondary (disk). Pembatasan ini adalah salah satu faktor yang mempengaruhi

    penulisan program untuk berbagai jenis dari perangkat ini. Dengan pembatasan jumlah

    dari memory, pertimbangan-pertimbangan khusus harus diambil untuk memelihara

    pemakaian dari sumber daya yang mahal ini.

    3. Daya proses yang terbatas

    Sistem mobile tidaklah setangguh rekan mereka yaitu desktop. Ukuran, teknologi dan

    biaya adalah beberapa faktor yang mempengaruhi status dari sumber daya ini. Seperti

    harddisk dan RAM, Anda dapat menemukan mereka dalam ukuran yang pas dengan

    sebuah kemasan kecil.

    4. Mengkonsumsi daya yang rendah

    Perangkat mobile menghabiskan sedikit daya dibandingkan dengan mesin desktop.

    Perangkat ini harus menghemat daya karena mereka berjalan pada keadaan dimana

    daya yang disediakan dibatasi oleh baterai-baterai.

    5. Kuat dan dapat diandalkan

    Karena perangkat mobile selalu dibawa kemana saja, mereka harus cukup kuat untuk

    menghadapi benturan-benturan, gerakan, dan sesekali tetesan-tetesan air.

    6. Konektivitas yang terbatas

    Perangkat mobile memiliki bandwith rendah, beberapa dari mereka bahkan tidak

    tersambung. Kebanyakan dari mereka menggunakan koneksi wireless.

  • 21

    7. Masa hidup yang pendek

    Perangkat-perangkat konsumen ini menyala dalam hitungan detik kebanyakan dari

    mereka selalu menyala. Coba ambil kasus sebuah handphone, mereka booting dalam

    hitungan detik dan kebanyakan orang tidak mematikan handphone mereka bahkan

    ketika malam hari. PDA akan menyala jika anda menekan tombol power mereka.

    3.2 Gambaran J2ME

    J2ME adalah satu set spesifikasi dan teknologi yang fokus kepada perangkat konsumen.

    Perangkat ini memiliki jumlah memori yang terbatas, menghabiskan sedikit daya dari baterei,

    layar yang kecil dan bandwith jaringan yang rendah.

    3.2.1 Platform JAVA

    Java dibuat pada tahun 1991 oleh James Gosling. Pada awalnya diberi nama Oak, dimana untuk

    menghormati pohon yang ada di luar jendela Gosling. Kemudian namanya diubah ke Java

    karena telah ada sebuah bahasa yang diberi nama Oak.

    Motivasi sesungguhnya dari Java adalah kebutuhan akan sebuah bahasa yang bisa digunakan

    pada berbagai platform yang bisa dimasukkan ke dalam berbagai produk elektronik seperti

    pemanggang roti dan lemari es. Salah satu dari proyek pertama yang dikembangkan

    menggunakan JAVA sebuah remote kontrol yang diberi nama Star 7. Pada saat yang sama,

    World Wide Web dan Internet berkembang sangat cepat. Gosling menyadari bahwa Java dapat

    digunakan untuk pemrograman Internet. Dengan keluarnya versi 1.2, platform Java telah

    dipilah-pilah menjadi beberapa edisi : The Standard Edition(J2SE), Enterprise Edition(J2EE),

    Mobile Edition(J2ME), dan JavaCard API.

    a. J2SE Java 2 Platform, Standard Edition : Aplikasi Desktop

    b. J2EE Java 2 Platform, Enterprise Edition : Aplikasi enterprise dengan fokus pada

    pengembangan sisi webserver, termasuk servlet,JSP,EJB, dan XML

    a. J2ME Java 2 Platform, Micro Edition : Perangkat Mobile

    b. JavaCard : Smart Cards

  • 22

    Gambar 3.2.1 Platform Java

    3.2.2 Gambaran J2ME

    J2ME adalah satu set spesifikasi dan teknologi yang fokus kepada perangkat konsumen.

    Perangkat ini memiliki jumlah memori yang terbatas, menghabiskan sedikit daya dari baterei,

    layar yang kecil dan bandwith jaringan yang rendah. Dengan perkembangbiakan perangkat

    mobile konsumer dari telepon, PDA, kotak permainan ke peralatan-peralatan rumah, Java

    menyediakan suatu lingkungan yang portable untuk mengembangkan dan menjalankan

    aplikasi pada perangkat ini. Program J2ME, seperti semua program JAVA adalah

    diterjemahkan oleh VM. Program-program tersebut dikompile ke dalam bytecode dan

    diterjemahkan denga Java Virtual Machine(JVM).Ini berarti bahwa program-program tersebut

    tidak berhubungan langsung dengan perangkat. J2ME menyediakan suatu interface yang sesuai

    dengan perangkat. Aplikasi-aplikasi tersebut tidak harus dikompile ulang supaya mampu

    dijalankan pada mesin yang berbeda. Inti dari J2ME terletak pada configuration dan profile-

    profile. Suatu configuration menggambarkan lingkungan runtime dasar dari suatu sistem

    J2ME. Ia menggambarkan core library, virtual machine, fitur keamanan dan jaringan.

  • 23

    Gambar 2: Arsitektur J2ME

    Sebuah profile memberikan library tambahan untuk suatu kelas tertentu pada sebuah perangkat.

    profile-profile menyediakan user interface(UI) API,persistence, messaging library dan

    sebagainya.

    Satu set library tambahan atau package tambahan menyediakan kemampuan program

    tambahan. Pemasukan package ini ke dalam perangkat J2ME dapat berubah-ubah karenan

    tergantung pada kemampuan sebuah perangkat. Sebagai contoh, beberapa perangkat MIDP

    tidak memiliki Bluetooth built-in, sehingga Bluetooth API tidak disediakan dalam perangkat

    ini.

    3.2.3 Configuration

    Suatu configuration menggambarkan fitur minimal dari lingkungan lengkap Java runtime.

    Untuk menjamin kemampuan portabilitas dan interoperabilitas optimal diantara berbagai

    macam perangkat yang dibatasi sumber dayanya(memory, prosesor, koneksi yang dibatasi),

    configuration tidak menggambarkan fitur tambahan. Suatu configuration J2ME

    menggambarkan suatu komplemen yang minimum dari teknologi JAVA. Adalah merupakan

    tugas profile-profile untuk menggambarkan tambahan library untuk suatu kategori perangkat

    tertentu.

    configuration menggambarkan:

    a. Subset bahasa pemrograman JAVA

    b. Kemampuan Java Virtual Machine(JVM)

    c. Core platform libraries

    d. Fitur sekuriti dan jaringan

  • 24

    3.2.4 Profile

    Suatu profile menggambarkan set-set tambahan dari API dan fitur untuk pasar tertentu,kategori

    perangkat atau industri. Sementara configuration menggambarkan library dasar, profile-profile

    menggambarkan library yang penting untuk membuat aplikasi-aplikasi efektif. Library ini

    memasukkan user interface, jaringan dan penyimpanan API.

    3.3 CLDC

    The Connected Limited Device Configuration (CLDC) menggambarkan dan menunjuk pada

    area

    berikut ini:

    a. Fitur Bahasa Java dan Virtual Machine(VM)

    b. Library dasar(java.lang.*,java.util.*)

    c. Input/Output(java.io.*)

    d. Kemanan

    e. Jaringan

    f. Internationalization

    3.3.1 Fitur yang hilang

    Fitur tertentu dari J2SE yang dipindahkan dari CLDC adalah :

    a. Finalization of class instances

    b. Asynchronous exceptions

    c. Beberapa error classes

    d. User-defined class loaders

    e. Reflection

    f. Java Native Interface (JNI)

    g. Thread groups dan daemon threads

    Reflection, Java Native Interface (JNI) dan user-defined class loaders potensial menjadi lubang

    keamanan. JNI juga membutuhkan memory yang intensif sehingga dimungkinkan untuk tidak

    mendapat dukungan dari memory rendah sebuah perangkat mobile.

    3.3.2 Karakteristik perangkat CLDC

    Perangkat yang diincar oleh CLDC mempunyai karateristik sebagai berikut:

    a. Memory minimal 192kb untuk platform Java.

    b. Prosesor dengan 16 atau 32 bit.

  • 25

    c. Mengkonsumsi sedikit daya.

    d. Terbatas, koneksi jaringan yang sementara dengan pembatasan bandwith(biasanya

    wireless).

    CLDC tidak menggambarkan instalasi dan daur hidup sebuah aplikasi, antarmuka(UI) dan

    penanganan peristiwa(event handling). Adalah merupakan tugas profile yang berada di bawah

    CLDC untuk menggambarkan area ini. Secara khusus, spesifikasi MIDP menggambarkan daur

    hidup aplikasi MIDP (MIDlet), library UI dan event handling(javax.microedition.lcdui.*).

    3.3.3 Verifikasi Class

    Spesifikasi CLDC memerlukan semua class untuk melewati proses verifikasi dua tingkat.

    Verifikasi pertama dilaksanakan diluar perangkat sebelum instalasi pada perangkat. Verifikasi

    kedua terjadi pada perangkat selama runtime dan dilaksanakan oleh KVM

    Gambar 3: Proses Verifikasi dua tingkat

    3.3.4 Generic Connection Framework

    The Generic Connection Framework menyediakan API dasar untuk koneksi dalam CLDC.

    Framework ini menyediakan suatu pondasi umum untuk koneksi seperti HTTP, Socket, dan

    Datagrams.GCF menyediakan suatu set API yang umum dan biasa yang memisahkan semua

  • 26

    jenis koneksi. Perlu dicatat bahwa tidak semua jenis koneksi dibutuhkan untuk diterapkan oleh

    perangkat MIDP.

    Hirarki interface yang dapat diperluas dari GFC membuat proses penyamarataan menjadi

    mungkin. Jenis koneksi baru mungkin bisa ditambahkan ke dalam framework ini dengan

    memperluas hirarki ini.

    Gambar 4: Hirarki koneksi GCF

    3.4 CDC

    Connected Device Configuration (CDC) adalah super set dari CLDC. CDC menyediakan

    lingkungan Java runtime yang lebih luas dibandingkan CLDC dan lebih dekat kepada

    lingkungan J2SE.

    CDC Java Virtual Machine (CVM) mendukung penuh Java Virtual Machine (JVM). CDC

    berisi semua API dari CLDC. CDC menyediakan suatu subset yang lebih besar dari semua

    class J2SE. Seperti CLDC, CDC tidak menggambarkan setiap class UI. Library UI

    digambarkan oleh profileprofile di bawah configuration ini.

    Semua class yang terdapat dalam CDC datang dari package ini:

    a. java.io

    b. java.lang

    c. java.lang.ref

  • 27

    d. java.lang.math

    e. java.net

    f. java.security

    g. java.security.cert

    h. java.text

    i. java.util

    j. java.util.jar

    k. java.util.zip

    CDC juga memasukkan di dalamnya GCF. CDC memerlukan jenis koneksi tambahan seperti

    file dan dukungan datagram.

    3.5 JTWI

    The Java Technology for the Wireless Industry (JTWI) menetapkan satu set jasa dan spesifikasi

    standar. Berdasar spesifikasi JTWI, kata kuncinya adalah untuk memperkecil fragmentasi API

    di dalam pasar telepon mobile, dan untuk mengirim spesifikasi yang dapat

    diprediksi,spesifikasi yang jelas untuk perangkat pabrik, operator, dan pengembang aplikasi.

    Dengan penyesuaian kepada JTWI, banyak aplikasi akan berjalan di suatu set yang lebih luas

    pada perangkat. Perangkat pabrik juga akan beruntung karena sebuah aplikasi yang besar akan

    tersedia untuk perangkat mereka.

    Gambar 5: Komponen JTWI

    3.6 MIDP

    The Mobile Information Device Profile (MIDP) berada di atas dari CLDC. Anda tidak bias

    menulis aplikasi mobile hanya dengan menggunakan CLDC API. Anda harus tetap

    memanfaatkan MIDP yang mendefinisikan UI. Spesifikasi MIDP, kebanyakan seperti CLDC

    dan API lainnya sudah digambarkan melalui Java Community Process (JCP). JCP melibatkan

  • 28

    sebuah kelompok ahli berasal dari lebih dari 50 perusahaan, yang terdiri atas pabrik perangkat

    mobile, pengembang software. MIDP terus berkembang, dengan versi-versi masa depan yang

    telah lulus dari proses ketat JCP.

    Spesifikasi MIDP menggambarkan suatu perangkat MID yang memiliki

    karakteristikkarateristik ini sebagai batas minimum:

    a. Tampilan:

    1) Ukuran Layar: 96x54

    2) kedalaman tampilan: 1-bit

    3) Ketajaman pixel: sekitar 1:1

    b. Masukan:

    Satu atau lebih mekanisme user-input: satu keybboard, dua keyboard, atau touch screen

    c. Memory:

    1) 256 kilobytes of non-volatile memory untuk implementasi MIDP.

    2) 8 kilobytes of non-volatile memory for application-created persistent data

    3) 128 kilobytes of volatile memory for the Java runtime (e.g., the Java heap)

    d. Jaringan:

    dua jalur, wireless, bandwidth terbatas

    e. Sound:

    Kemampuan untuk memainkan nada-nada

    MIDP menggambarkan model aplikasi, UI API, penyimpanan dan jaringan yang kuat,

    permainan dan media API, kebijakan keamanan, penyebaran aplikasi dan ketetapan over-

    theair.

    3.7 MIDlet

    Suatu aplikasi MIDP disebut MIDlet. Perangkat application management software (AMS)

    berinteraksi langsung dengan MIDlet dengan method MIDlet create, start, pause, dan destroy.

    MIDlet adalah bagian dari package javax.microedition.midlet. Sebuah MIDlet harus di-extend

    dengan class MIDlet. Dan dapat meminta parameter dari AMS seperti dirumuskan dalam

    application descriptor (JAD). Suatu MIDlet tidak harus memiliki (dan memang harus tidak

    mempunyai) sebuah method public static void main(String[] argv).Method tersebut tidak akan

    dikenal lagi oleh AMS sebagai titik awal sebuah program.

    3.7.1 Siklus MIDlet

  • 29

    kehidupan MIDlet dimulai ketika di-instantiate oleh AMS. MIDlet pada awalnya masuk status

    Pause setelah perintah baru dibuat. AMS memanggil constructor public tanpa argumen dari

    MIDlet. Jika sebuah exception terjadi dalam constructor, MIDlet memasuki status Destroyed

    dan membuangnya segera. MIDlet masuk ke dalam status Active atas pemanggilan method

    startUp() oleh AMS.

    MIDlet masuk ke dalam status Destroyed ketika AMS memanggil method destroyApp().

    Status ini juga kembali diakses ketika method notifyDestroyed() kembali dengan sukses kepada

    aplikasi. Dengan catatan bahwa MIDlet hanya bisa memasuki status Destroyed sekali dalam

    masa hidupnya.

    Gambar 6: Daur hidup MIDlet

    3.7.2 MIDlet suites

    Aplikasi-aplikasi MIDlet dibungkus dan dikirim kedalam perangkat sebagai MIDlet suites.

    Sebuah MIDlet suite terdiri dari Java Archive (JAR) dan sebuah tambahan Java Application

    Descriptor (JAD). File JAD adalah suatu file teks yang berisi satu set atribut-atribut, beberapa

    dibutuhkan.

  • BAB 4

    KESIMPULAN

    4.1 Kesimpulan

    Kesimpulan yang dapat kita ambil adalah dimana OOP (Object Oriented Programming) adalah

    suatu metode pemrograman yang berorientasi kepada objek. Tujuan dari OOP diciptakan

    adalah untuk mempermudah pengembangan program dengan cara mengikuti model yang telah

    ada di kehidupan sehari-hari. Jadi setiap bagian dari suatu permasalahan adalah objek, nah

    objek itu sendiri merupakan gabungan dari beberapa objek yang lebih kecil lagi. Saya ambil

    contoh Pesawat, Pesawat adalah sebuah objek. Pesawat itu sendiri terbentuk dari beberapa

    objek yang lebih kecil lagi seperti mesin, roda, baling-baling, kursi, dll. Pesawat sebagai objek

    yang terbentuk dari objek-objek yang lebih kecil saling berhubungan, berinteraksi,

    berkomunikasi dan saling mengirim pesan kepada objek-objek yang lainnya. Begitu juga

    dengan program, sebuah objek yang besar dibentuk dari beberapa objek yang lebih kecil, objek-

    objek itu saling berkomunikasi, dan saling berkirim pesan kepada objek yang lain.

    Sedangkan mobile programming adalah pemograman aplikasi mobile bisa

    menggunakan J2ME, mobile merupakan aplikasi yang bisa jalan di handphone seperti PDA

    atau yang handphone yang berbasis java.

  • 31

    4.2 Kata Penutup

    Demikianlah yang dapat saya sajikan dalam modul ini dan saya sadar masih banyak

    kekurangan di sana-sini namun saya akan terus mencoba memperbaikinya , dan semoga para

    pembaca dapat memaklumi kelemahan dan kekurangan saya.

    Saya sebagai penulis berharap para pembaca sudi kiranya memberikan kritik dan saran

    yang membangun kepada saya, demi sempurnanya MODUL ini dan penulisan modul di

    kesempatan-kesempatan berikutnya. Semoga modul ini berguna bagi kita semua.