Anda di halaman 1dari 35

MODUL MOBILE PROGRAMING

DIO BIAN PRIATAMA


122406109
KOM C1 12

D3 TEKNIK INFORMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2014

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.3

3.2.3

Configuration.. 23

3.2.4

Profile.. 24

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, bahasabahasa 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

matematika.kuadrat(25));
} }

dari

\25\

adalah

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 profileprofile. 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 overtheair.

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, objekobjek itu saling berkomunikasi, dan saling berkirim pesan kepada objek yang lain.
Sedangkan mobile programming adalah pemograman aplikasi mobile bisa
menggunakan J2ME, mobile merupakan
atau yang handphone yang berbasis java.

aplikasi yang bisa jalan di handphone seperti PDA

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.

Anda mungkin juga menyukai