Anda di halaman 1dari 79

 

MAKALAH

Pemograman Mobile

Nama : Wandi Agustio Pratama

Nim : 18040093

Kelas : 4C

POLITEKNIK HARAPAN BERSAMA

KOTA TEGAL

2020

 
KATA PENGANTAR

Puji dan syukur kami sampaikan kepada Tuhan Yang Maha Esa yang telah
melimpahkan segala rahmat dan karuniaNya, sehingga penulis dapat
menyelesaikan laporan tugas mandiri mata kuliah Pemrograman Mobile Praktek.
Penulis menyadari bahwa laporan tugas mandiri ini masih jauh dari sempurna.
Karena itu, kritik dan saran akan senantiasa penulis terima dengan senang hati.

Dengan segala keterbatasan, penulis menyadari pula bahwa laporan tugas mandiri
ini takkan terwujud tanpa bantuan, bimbingan, dan dorongan dari berbagai pihak.
Untuk itu, dengan segala kerendahan hati, penulis menyampaikan ucapan terima
kasih kepada:

1. Dosen dan Staff Politeknik harapan bersaama.

2. Teman teman saya yang telah medukung saya

3. Keluarga saya yang selalu mendukung saya

Semoga Tuhan Yang Maha Esa membalas kebaikan dan selalu mencurahkan
hidayah serta taufikNya, Amin.

 
DAFTAR ISI

KATA PENGANTAR

DAFTAR ISI

BAB I PENDAHULUAN

BAB I LATAR BELAKANG MASALAH

BAB II LANDASAN TEORI

BAB III PEMBAHASAN

11

BAB III PENUTUP

40
3

 
BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Perkembangan industri komunikasi tanpa kabel secara global telah


tumbuh begitu pesat sejak beberapa tahun belakangan ini sehingga menyebabkan
komunikasi tanpa kabel menjadi salah satu teknologi yang paling popular dan
cepat berkembang di seluruh dunia. Teknologi JavaTM Micro Editon (J2ME)
merupakan standar aplikasi bagi peralatan wireless seperti telepon seluler dan
PDA, teknologi ini membuat suatu ponsel dapat diisi program aplikasi dan
permainan yang ada. Jika penggantian kover (casing) dapat mengubah fisik
ponsel, pengubahan program aplikasi / permainan dapat mengubah performa
ponsel tersebut. Dengan adanya

Teknologi JavaTM pemakai dapat menghapus program aplikasi / game


lama dan menambahkan suatu program aplikasi / game baru. Dengan cara seperti
itu, pemakai menjadi tidak bosan dengan standar fasilitas yang ada dan dapat pula
mengembangkan kemampuan ponsel miliknya. Teknologi J2ME ini mendukung
Mobile Information Devices Profile (MIDP), dimana profile ini dibagi menjadi 2
versi yaitu : MIDP 1.0 yang mendukung fitur Mobile Media API yang berfungsi
untuk audio dan video pada ponsel. Kemudian muncul versi baru yaitu MIDP 2.0
yang mendukung fitur Audio Building BlockAPIs untuk memainkan Audio
Tones, gaming API, sesuai untuk membuat komponen yang sederhana pada form,
sesuai untuk integer array yang sederhana dalam memanipulasi gambar, secure
networking dan multimedia.2

Seiring dengan semakin berkembangnya teknologi, banyak orang yang


menginginkan sesuatu yang praktis untuk mencatat segala keperluan pribadi.
Karena selama ini banyak sekali orang-orang yang dirugikan hanya karena lupa
janji penting, kegiatan penting, atau hal penting lainnya. Telah banyak layanan
organizer pada

 
telepon genggam. Namun dalam pembuatan sistem ini organizer disimpan pada
server sehingga pengguna dapat menyimpan data yang lebih banyak. Selain itu,
organizer ini sangat bermanfaat bagi pengguna yang memiliki telepon genggam
yang support java tetapi belum memiliki organizer. Sistem ini berbasis J2ME
(Java 2 Micro Edition) yaitu bahasa pemrograman yang digunakan untuk
menjalankan dan mengembangkan aplikasi-aplikasi Java pada peralatan semacam
telepon genggam secara wireless.

Sistem organizer dapat diakses dengan menggunakan telepon genggam


berbasis Java dan GPRS. Sehingga kualitas aksesnya tergantung dari provider
yang digunakan serta waktu pengaksesan.

Sistem organizer ini dapat digunakan untuk menyimpan atau mengakses


data dari dan ke database server. Pembuatan sistem ini diawali dengan pembuatan
program pada PC (Personal Computer) menggunakan software j2mewtk dan PHP
script, kemudian integrasi dengan memanfaatkan emulator pada
j2mewtk.Lalupada server dilakukan pembuatan database dengan menggunakan
MySQL yangberisi data-data user. Setelah itu dilakukan download program J2ME
menuju telepon genggam dan upload data PHP script pada server.

1.2. Identifikasi Masalah

Pada pembuatan sistem ini digunakan database MySQL sebagai


penyimpan data-data dari organizer tiap pengguna, PHP sebagai bahasa script di
sisi server untuk koneksi database dengan pemrograman J2ME, dan dibuat pada
sistem operasi Windows.
5

 
1.3. Maksud dan Tujuan

Maksud dari pembuatan laporan ini adalah untuk membangun system


organizer pribadi pada telepon genggam berbasis J2ME

Adapun tujuan dari pembuatan sistem organizer pribadi ini adalah :

1. Untuk menyimpan data lebih banyak,aman dan praktis.

1.1 Batasan Masalah

1. Dengan menggunakan program J2ME pada telepon genggam untuk


mengaksesorganizer pribadi.

1.5. Metodologi Penelitian

Metodologi penelitian merupakan tahapan-tahapan yang dilalui oleh


peneliti mulai dari perumusan masalah hingga pada kesimpulan. Metodologi
penelitian ini digunakan sebagai pedoman agar hasil yang dicapai sesuai dengan
yang telah ditentukan sebelumnya.Metode penelitian yang digunakan dalam
penelitian ini antara lain :


Studi Literatur

Dalam pembuatan proyek akhir ini harus terlebih dahulu mempelajari tentang
bahasa pemrograman J2ME, MySQL, dan PHP. Untuk pembuatan tampilan,
database, serta koneksi telepon genggam dengan server.

Perencanaan sistem

Prinsip kerja sistem ini adalah pengguna dapat mengakses organizer atau
pengingat pesan dengan masuk menu-menu utama pada telepon genggam. Jika
memilih organizer, maka pengguna harus memasukkan username dan password
agar terhubung dengan server melalui jaringan internet hingga dapat masuk ke
menu-menu dalam organizer. Namun jika memilih pengingat pesan maka
pengguna akan langsung masuk menu-menu dalam pengingat pesan, seperti pada
gambar. Dalam hal

 
ini, setiap pengguna memiliki batas pemakaian untuk setiap organizer-nya.
Sehingga jika seorang pengguna mengisi organizer-5 nya melebihi kapasitas,
maka pengguna tersebut akan mendapat pesan bahwa telah melebihi kapasitas
yang telah disediakan.

1.Pembuatan Tampilan Pada Telepon Genggam

Terlebih dahulu dibuat tampilan pada telepon genggam berupa menu-menu


untuk mengakses organizer melalui jaringan internet, atau mengakses menu
pengingat pesan. Pembuatan tampilan ini, menggunakan bahasa pemrograman
J2ME. Program ini akan dibuat dengan melihat emulator, dan di-download ke
telepon genggam setelah didapat hasil sesuai yang diharapkan.

2.Pembuatan Database

Pembuatan database untuk menu-menu organizer, yang terdiri dari jadwal


kegiatan sehari-hari, catatan penting, dan diary. Pada pembuatan database ini
digunakan program database MySQL, yang nantinya database ini dapat ter-update
secara otomatis jika pengguna menambah atau mengurangi data melalui telepon
genggam.

3 Pengaturan koneksi

Setelah dibuat tampilan pada telepon genggam, dan pembuatan database


pada server, selanjutnya dibuat program untuk koneksi antara telepon genggam
dengan server dengan menggunakan bahasa pemrograman J2ME dan PHP.6

2. Analisa dan Kesimpulan

Dari hasil pengujian sitem secara keseluruhan dilakukan analisa dan memberikan
kesimpulan dari analisa tersebut.
7

 
BAB II

LANDASAN TEORI

2.1 JAVA

Java merupakan bahasa pemrograman yang disusun oleh


James Gosling yangdibantu oleh rekan-rekannya di suatu
perusahaan perangkat lunak yang bernama Sun Microsystems,
pada tahun 1991. Bahasa pemrograman ini mula-mula
diinisialisasi dengan nama pada“Oak”,tahun1995
digantinamunnamanya menjadi

“Java”.

2.1.1 Pengertian Java

Menurut definisi Sun Microsystem, di dalam buku M.


Shalahuddin dan RosaA.S. (2010 : 1) Java adalah nama
sekumpulan teknologi untuk membuat dan menjalankan
perangkat lunak pada komputer yang berdiri sendiri (standalone)
ataupun pada lingkungan jaringan. Java berdiri di atas sebuah
mesin penterjemah (interpreter) yang diberi nama Java Virtual
Machine (JVM). JVM inilah yang akan membaca kode bit
(bytecode)dalam file .class dari suatu program sebagai
representasi langsung program yang berisi bahasa mesin. Oleh
karena itu bahasa Java disebut sebagai bahasa pemrograman
yang portable karena dapat dijalankan pada berbagai system
operasi, asalkan pada system operasi tersebut terdapat JVM.
Alasan utama pembentukan bahasa Java adalah untuk membuat
aplikasi-aplikasi yang dapat diletakkan di berbagai macam
perangkat elektronik, sehingga Java harus bersifat tidak
bergantung pada platform (platform independent). Itulah yang
menyebabkan

dalam dunia pemrograman Java dikenal adanya


istilahonce,runeverywhere‟,„write yang berarti kode program hanya ditulis sekali,
namun dapat 9 dijalankan di bawah kumpulan pustaka (platform) manapun, tanpa
harus melakukan perubahan kode program.

 
Java adalah suatu teknologi di dunia software komputer, yang merupakan
suatubahasa pemrograman, dan sekaligus suatu platform. Sebagai bahasa
pemrograman,Java dikenal sebagai bahasa pemrograman tingkat tinggi. Java
mudah dipelajari,terutama bagi programmer yang telah mengenal C/C++. Java
merupakan bahasapemrograman berorientasi objek yang merupakan paradigma
pemrograman masadepan. Sebagai bahasa pemrograman Java dirancang menjadi
handal dan aman. Javajuga dirancang agar dapat dijalankan di semua platform,
dan juga dirancang untukmenghasilkan aplikasi-aplikasi dengan performansi yang
terbaik, seperti aplikasidatabase Oracle 8i/9i yang core-nya dibangun
menggunakan bahasa pemrogramanJava. Sedangkan Java bersifat neutral
architecture, karena Java Compiler yang digunakan untuk mengkompilasi kode
program Java dirancang untuk menghasilkankode yang netral terhadap semua
arsitektur perangkat keras. Sebagai sebuah platform, Java terdiri atas dua bagian
utama, yaitu:
Java Virtual Machine (JVM)

Java Application Programming Interface (Java API)

Sun membagi arsitektur Java membagi tiga bagian, yaitu:

1. J2EE (Java 2 Enterprise Edition)

2. J2SE (Java 2 Second Edition)

3. J2ME (Java 2 Micro Edition)


9

 
2.1.2.Arsitektur Java

Secara arsitektur, Java tidak berubah sedikitpun sejak awal mula


bahasatersebut dirilis. Compiler Java (yang disebut dengan javac atau Java
Compiler) akan mentransformasikan kode-kode dalam bahasa Java ke dalam
suatu kode bit. Dimana bytecode adalah sekumpulan perintah hasil kompilasi
yang kemudian dapat dieksekusi melalui sebuah mesin komputer abstrak, yang
disebut dengan JVM (Java Virtual Machine). JVM juga sering dinamakan sebagai
interpreter, karena sifatnya yang selalu menerjemahkan kode-kode yang
tersimpan dalam kode bit dengan cara baris demi baris. Untuk menjalankan
program Java, maka file dengan ekstensi .java harus dikompilasi menjadi file
kode bit. Dimana untuk menjalankan kode bit tersebut dibutuhkan JRE (Java
Runtime Environment) yang memungkinkan pemakai untuk menjalankan
program Java, hanya menjalankan, tidak untuk membuat kode baru lagi. JRE
berisi JVM dan pustaka Java yang digunakan.
10

 
BAB III

PEMBAHASAN

3.1 Java 2 Micro Edition (J2ME)

3.1.1 Pengertian J2ME

Java2 Micro Edition atau yang biasa disebut J2ME adalah lingkungan
pengembangan yang didesain untuk meletakkan perangkat lunak Java pada
barang elektronik beserta perangkat pendukungnya. Pada J2ME, jika perangkat
lunak berfungsi baik pada sebuah perangkat maka belum tentu juga berfungsi baik
pada perangkat yang lainnya. J2ME membawa Java ke dunia informasi,
komunikasi, dan perangkat komputasi selain perangkat komputer desktop yang
biasanya lebih kecil dibandingkan perangkat komputer desktop.

J2ME biasa digunakan pada telepon selular, pager, Personal Digital


Assistants (PDA) dan sejenisnya. J2ME adalah bagian dari J2SE, karena itu tidak
semua library yang ada pada J2SE dapat digunakan pada J2ME. Tetapi J2ME
mempunya beberapa library khusus yang tidak dimiliki J2SE. Arsitektur J2ME
dapat dilihat pada gambar berikut :
11

 
Teknologi J2ME juga memiliki beberapa keterbatasan, terutama
jikadiaplikasikan pada ponsel. J2ME sangat tergantung pada perangkat (device)
yang

digunakan, bisa dari segi merk ponsel, maupun kemampuan ponsel dan
dukungannya terhadap teknologi J2ME. Misalnya, jika sebuah ponsel tidak
memiliki kamera, maka jelas J2ME pada ponsel tersebut tidak dapat mengakses
kamera. Keterbatasan lainnya adalah pada ukuran aplikasi, karena memori pada
ponsel sangat terbatas. Sebagian besar ponsel tidak mengijinkan aplikasi J2ME
menulis pada file karena alas an keamanan. Configuration merupakan Java library
minimum dan kapabilitas yang dipunya oleh para pengembang J2ME, yang
maksudnya sebuah mobile device dengan kemampuan Java akan dioptimalkan
untuk menjadi sesuai. Configuration hanyalah mengatur hal-hal tentang kesamaan
sehingga dapat dijadikan ukuran kesesuaian antar device. Misalnya sebuah lampu
sepeda dirancang sedemikian sehingga dapat digunakan oleh berjenis-jenis
sepeda. Dalam J2ME telah didefinisikan dua buah konfigurasi yaitu CLDC
(Connected Limites Device 11 Configuration) untuk perangkat kecil dan CDC
(Connected Device Configuration) untuk perangkat yang lebih besar. Lingkup
CLDC dan CDC dapat dilihat pada

gambar di bawah ini :

12

 
Profile berbeda dengan configuration, profile membahas sesuatu
yangspesifik untuk sebuah perangkat. Sebagai contoh misalnya, sebuah sepeda
dengan merk tertentu, tentunya mempunyai ciri spesifik dengan sepeda lain.

Dalam gambar J2ME terdapat dua buah profile yaitu MIDP


danFoundation Profile. Keterhubungan antara configuration dan profile yang ada
pada J2ME beserta jenis mesin virtualnya dapat dilihat pada gambar berikut :
3.1.2 Connected Limited Device Configuration (CLDC)

13

 
CLDC atau Connected Limited Device Configuration adalah perangkat
dasar dari J2ME, spesifikasi dasar yang berupa library dan API yang
diimplemetasikan pada J2ME, seperti yang digunakan pada telepon selular, pager
dan PDA. Perangkat tersebut dibatasi dengan keterbatasan memori, sumber daya
dan kemampuan memproses. Spesifikasi CLDC pada J2ME adalah spesifikasi
minimal dari package, kelas dan sebagian fungsi Java Virtual Machine yang
dikurangi agar dapat diimplementasikan dengan keterbatasan sumber daya pada
alat-alat tersebut, JVM yang digunakan disebut KVM (Kilobyte Virtual Machine).
Posisi CLDC pada arsitektur J2ME dapat dilihat pada gambar di atas.

2.1.3 Connected Device Configuration (CDC)

CDC atau Connected Device Configuration adalah spesifikasi dari


konfigurasi J2ME. CDC merupakan komunitas proses pada Java yang
mempunyai standardisasi. CDC terdiri dari virtual machine dan kumpulan
librarydasar untuk dipergunakan pada profile industri. Implementasi CDC pada
J2ME13 adalah source code yang menyediakan sambungan dengan
macam-macam platform.

Perbedaan antara CDC dan CLDC dapat dilihat dari tabel dibawah ini :
14

 
3.2 PROFIL

Profil merupakan bagian perluasan dari konfigurasi, yaitu sekumpulan


kelas yang terdapat pada konfigurasi, terdapat juga kelas-kelas spesifik yang
didefinisikan lagi di dalam profil. Dengan kata lain, profil akan membantu
secarafungsional yaitu dengan menyediakan kelas-kelas yang tidak terdapat di
level konfigurasi. Berikut ini adalah profil J2ME yang tersedia saat ini yaitu :

1) MIDP (Mobile Information Device Profile)

MIDP adalah profil yang disediakan oleh Sun Microsystems. MIDP


menyediakan librari-librari Java untuk implementasi dasar antarmuka
(GUI), implementasi jaringan (networking), database, dan timer. MIDP
dirancang khususnya untuk wireless phone dan pager. 14

2) PDAP (Personal Digital Assistant Profile)


Yaitu profil untuk PDA yang memperluas fungsi-fungsi pada konfigurasi
CLDC dan digunakan khusus untuk menambahkan
kemampuan-kemampuan lebih apabila dibandingkan dengan penggunaan
profil MIDP.

15

 
1) Foundation Profile

Yaitu profil yang digunakan untuk konfigurasi CDC. Profil ini


menambahkan beberapa kelas dari J2SE ke dalam konfigurasi CDC, dan
berperan juga sebagai pondasi untuk membentuk profil baru lainnya.

2) Personal Profile

Yaitu profil yang mendefinisikan ulang PersonalJava sebagai profil


yang dapat digunakan sebagai profil dalam J2ME. Profil ini
merupakan hasil perluasan dari Foundation Profile.

3) RMI Profile

Yaitu profil yang menambahkan dukungan RMI (Remote Method


Invocation) ke dalam konfigurasi CDC.

3.2.1 Mobile Information Device Profile (MIDP)

MIDP atau Mobile Information Device Profile adalah spesifikasi untuk sebuah
profil J2ME. MIDP memiliki lapisan di atas CLDC, API tambahan untuk daur
hidup aplikasi, antarmuka, jaringan dan penyimpanan persisten. Pada saat ini
terdapat MIDP 1.0 dan MIDP 2.0. Fitur tambahan MIDP 2.0 dibandingMIDP 1.0
adalah API untuk multimedia. Pada MIDP 2,0 terdapat dukungan memainkan
tone, tone sequence dan file WAV walaupun tanpa adanya Mobile 15 Media API
(MMAPI). Posisi MIDP pada arsitektur J2ME dapat dilihat pada gambar di atas.

Berikut adalah perbandingan MIDP 1.0 dan MIDP 2.0 :


16

 
MIDP User Interface API memiliki API level tinggi dan level rendah. API
level rendah berbasiskan penggunaan dari kelas abstrak Canvas, sedangkan kelas
API level tinggi antara lain Alert, Form, List dan TextBox yang merupakan
eksistensi dari kelas abstrak Screen. API level rendah lebih memberikan
kemudahan kepada pengembang untuk memodifikasi sesuatu dengan
kehendaknya, sedangkan API level tinggi biasanya hanya memberikan
pengaksesan yang terbatas. Arsitektur antarmuka MIDP dapat dilihat pada
gambar di bawah ini:
3.3 MIDLET

MIDlet adalah bagian dari kelas javax.microedition.midlet.MIDlet yang


didefinisikan pada MIDP. MIDlet berupa sebuah kelas abstrak yang merupakan
sub

17

 
kelas dari bentuk dasar aplikasi sehingga antarmuka antara aplikasi J2MEdan
aplikasi manajemen pada perangkat dapat terbentuk.

3.3.1 Daur Hidup Midlet

MIDlet terdiri dari beberapa metode yang harus ada, yaitu


construktor()protected void startApp() throws MIDletStateChangeException,
protected void pauseApp(), protectedvoid destroyApp(boolean unconditional)
throws MIDletStateChangeException. Alur hidup MIDlet dapat dilihat pada
gambar 2.6.

Ketika MIDlet dijalankan maka akan diinisialisasi dengan kondisi pause dan
dijalankan pauseApp(), kondisi berikutnya adalah fungsi MIDlet dijalankan,yaitu
pada startApp(). Metode tersebut diimplementasikan sebagai protected dengan
maksud agar MIDlet lain tidak dapat memanggil metode tersebut.Ketika keluar
dari MIDlet, maka metode destroyApp() akan dijalankansebelum MIDlet
benar-benar tidak berjalan lagi. DestroyApp() akan memanggil notifyDestroyed(),
dan notifyDestroyed() akan memberitahu platform untuk menterminasi MIDlet
dan membersihkan semua sumber daya yang mengacu padaMIDlet.Dalam
implementasinya, MIDlet memiliki struktur direktori antara lain sebagai berikut :

1) src

menyimpan source code untuk MIDlet dan kelas lain yang diperlukan.

18

 
1) res

Menyimpan sumber daya yang dibutuhkan oleh MIDlet, sepertimisalnya


gambar icon.

2) lib

menyimpan file JAR atau ZIP yang berisi library tambahan


yangdibutuhkan MIDlet.

3) bin

menyimpan file JAR, JAD dan file manifest yang berisi muatankomponen
MIDlet

3.1 COMMAND DAN COMMNDLISTENER

3.4.1 Kelas command

Menuurt definisinyan kelas command adalah sebuah kontruksi


yang membungkus semua hal-hal atau informasi yang berkaitan dengan aksi
.Perilaku tersebut tidak dibungkus di dalam objek command ,melainkan harus
didefinisikan secara eksplisit melalui method commandAction() ,yaiutu method
yang harus didefinisikan pada saat kita mengimplementasikan interface
commandlistener .Ini artinya objek command hanya berisi informasi tentang
perintah ,bukan sebuah aksi actual yang terjadi pada objek command diaktifasi
.Aksi-aksi yang telah didefinisikan pada interface commandlistener kemudian
diasosiasikan dengan layar aktif sehingga objek-objek command yang terdapat
pada layar tersebut dapatdiaktivasi sesuai dengan kebutuhan .

Command adalah sebuah obyek yang digunakan untuk merespon user pada
sebuah aplikasi. Sering diasosiasikan sebagai ​softkey​, tombol ataupun area pada
touchscreen.​ Sangat berperan penting dalam ​event handling​ pada J2ME.

19

 
Pada penggunaanya, Command didefinisikan dengan mengimplementasikan
CommandListener. Command(String label, int commandType, int priority).

Command memiliki 3 atribut, yaitu :

label yaitu menampilkan nama pada tombol Command

type yaitu menentukan fungsi dari Command. Jenis type Command


antara lain BACK, EXIT, OK, HELP, CANCEL, SCREEN, ITEM, dan
STOP.

priority yaitu menentukan urutan prioritas dalam menampilkan


Command pada layar

3.4.2 CommandListener

berfungsi untuk menangani jika user memilih Command tertentu


sedangkan ItemListener berfungsi untuk menangani jika user mengubah nilai
sepert misalnya mengubah pilihan pada ChoiceGroup ,sedangkan ItemListener
berfungsi untuk menangani jika user mengubah nilai.

3.5. User Interface

GUI ( Graphical User Interface ) merupakan sebutan untuk antarmuka


penguna, kebutuhan user interface untuk aplikasi yang berada dalam peralatan –
peralatan kecil seperti telepon selular ,PDA, maupun pager tentu akan berbeda
kebutuhan dengan kita pada saat membuat aplikasi desktop.
Kelas –kelas dasar untuk kebutuhan tersebut disimpan di dalam CDLC
dilengkapi profil ,adapun kelas –kelas resmi yang diperlukan untuk pembuatan
GUI

20

 
dalam Pllaform J2ME tersebut dikembangkan oleh sebuah komunitas yang
dinamakan JCP ( Java Community Process )

3.5.1 Struktur GUI Dalam MIDP


Model High –Level API

Model ini untuk mendukung adanya pengembangan aplikasi yang dapat


bersifat portebel atau dapat dijalankan diatas alat yang berbeda. Model ini
menyediakan kelas -kelas standart untuk keperluan UI seperti komponen form,
textbox, list, alert.


Model Low –Level API

Model ini memberikan akse penuh kepada programmer untuk melakukan


control terhadap semua tampilan layar, termasuk penggambaran dalam pixel dan
pembuatan bentuk geometri.


Arsitektur LCDUI
1.Kelas Display

sebagai penyedia akses ke layar fisik yang memiliki tingkat akses


private 2.Kelas Displayable

Merupakan kelas moyang dari kelas scream dan canvas. kelas scream dan canvas
yaitu suatu kelas yang menyediakan pondasi untuk user interface yang terdapat
didalam aplikasi MIDP.

3.5.1 Kelas –Kelas Dalam High –Level API

Kelas Screen

Merupakan kelas abstrak yang diturunkan langsung dari kelas displayable dan
mempresentasikan komponen –komponen high –level untuk membuat user
interface di dalam aplikasi MIDP.

Terdapat 4 tipe screen antara lain :

21

 

Kelas Alert

Kelas turunan dari kelas screen yang mempresentasikan layar informasi pada saat
kondisi –kondisi tertentu selama aplikasi MIDP dieksekusi.


Kelas List

Kelas turunan dari kelas screen yang menampilkan daftar item pilihan yakni kita
dapat melakukan scroll terhadap item –it.em tersebut. Namjun perlu dipahami,
bahwa kelas scroll tidak akan menimbulkan event aplikasi. Artinya pada saat kita
melakuakn scroll terhadap item –item tertentu, maka kita dianggap belum
memilih item tersebut.


Kelas TextBox

Kelas turunan dari kelas screen yang mempresentasikan sebuah kotak yang dapat
digunakan untuk mengisikan tesk.


Kelas Form

Kelas form merupakan kelas yang paling serba guna, pasalnya kita dapat
menempatkan beraneka ragam control ( turunan dari kelas item ) kedalam ​objek
form, seperti objek TextField, DateField, StringItem, ImageItem ​dll.


Kelas Item

Kelas –kelas turunan dari kelas item merupakan komponen –komponen visual
yang dapat ditambahkan kedalam form. Kelas Item itu sendiri berupa kelas
abstrak sehingga tidak dapat diinstansiasi. Untuk menambahkan item kedalam
form mau tidak mau kita harus menggunakan kelas turunan dari kelas item.

22

 
Berikut ini kerlas turunan dari kelas item antara lain :

StringItem dan ImageItamMasing –masing untuk mempresentasikan objek teks


dan gambar yang dapat ditempatkan dihalaman form

1. Textfield dan DateField

Digunakan untuk melakukan input teks didalam sebuah


form. 2. ChoiceGroup

Mirip dengan List, kedua kelas tersebut sama –sama mengimplementasikan


interface choice yamg memiliki banyak method esensail untuk proses pemilihan
item dari suatu daftar tertentu.

3. Gauge

Adalah sebuah item yang merupakan representasi grafik untuk menampilkan


sebuah progress bar dengan nilai berupa integer.

3.5.3Kelas –Kelas Dalam Low –Level API

∙​ Kelas Canvas

Adalah kelas dasar ( base bar ) untuk semua kelas yang membutuhkan control
tingkat rendah ( low level ) dan proses penggambaran. Canvas adalah sebuah
kelas abstrak sehingga perlu untuk diperluas ,ini artinya kelas –kelas turunan
canvas harus mengimplementasikan method paint()

∙​ Kelas Graphic
Kelas yang menyediakan method –method untuk penggambaran actual di dalam
objek canvas. Objek dalam kelas graphic biasanya dilewatkan pada method
paint() dari kelas canvas.

23

 
3.6BEKERJA DENGAN TICKER

Untuk melengkapi pembuatan user interface didalam layar ponsel,


terkadang kita ingin menampilkan sebuah teks yang berjalan secara
berulang-ulang diatas layar. Teks tersebut disebut dengan ticker dan biasa
digunakan untuk menampilkan informasi-informasi penting. Ini sering kita jumpai
pada layar televise yang sering memunculkan informasi singkat atau
mini-headline yang biasanya ditampilkan pada bagian bawah layar dan bergerak
dari arah kanan ke kiri. Dalam MIDP, ticker dapat dibuat dengan menggunakan
kelas Ticker yang tersimpan dalam paket java.xmicroedition.lcdui.

3.6.1 Lebih jauh tentang Ticker

Perlu kita ketahui bahwa objek Ticker hanya terkait dengan layar, bukan
dengan aplikasi. Ini artinya apabila kita memiliki sebuah aplikasi yang terdiri dari
beberapa layar, kita dapat mengeset Ticker pada layar tertentu saja. Sedamgkan
layar yang lainnya tidak memiliki ticker. Anda jangan beranggapan bahwa apabila
salahsatu layar dalam aplikasi kita menjadi ticker, maka layar yang lainpun secara
otomatis menampilkan ticker tersebut

3.6.2 Model Ticker yang dapat di Share

Sebuah program dapat digunakan bersama-samaoleh dua atau lebih layar


yang terdapat dalam satu aplikasi. Pada aplikasi sebelumnya kita memiliki dua
buah layar yaitu formmenu dan forminfo. Pesan atau informasi yang digunakan
sebagai ticker isinya dapat diubah pada saat runtime. Ini artinya ticker bersifat
dinamis. Terkadang hal ini sangat dibutuhkan dalam aplikasi. Misalnya kita ingin
menampilkan ticker yang isisnya diperoleh dari item pilihan yang disorot atau
untuk menampilkan dua buah iklan yang berbeda dengan selang waktu tertentu,
dan untuk keperluan lainnya.

Contoh program kulkulator sederhana


24

 
/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

//library yang digunakan

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class Calculator extends MIDlet implements CommandListener{


//pendeklarasian object

Display display; // deklarasi display


Form mainForm; // deklarasi form int
N1, N2, NH;// deklarasi variabel

TextField bil1, bil2, result; //deklarasi textfiled

//membuat tombol tambah, kurang, bagi, kali dan keluar

Command keluar = new Command("Keluar", Command.EXIT, 0);


Command tambah = new Command("Tambah", Command.SCREEN, 1);
Command kurang = new Command("Kurang", Command.SCREEN, 2);
Command kali = new Command("Kali", Command.SCREEN, 3);
Command bagi = new Command("Bagi", Command.SCREEN, 4); Ticker
ticker = new Ticker("Calculataor Java Mobile §OFTDISK§");

//konstruktor public
Calculator(){

}
public void startApp() {
if(display==null){

display = Display.getDisplay(this);// tampilan form pada layar


mainForm = new Form("Calculator");

25

 
bil1 = new TextField("Bilangan 1", "", 64, TextField.NUMERIC); bil2 = new
TextField("Bilangan 2", "", 64, TextField.NUMERIC); result = new
TextField("Hasil", "", 64, TextField.UNEDITABLE);
mainForm.addCommand(keluar); // meletakkan tombol keluar

mainForm.addCommand(tambah); // meletakkan tombol tambah


mainForm.addCommand(kurang); // meletakkan tombol kurang
mainForm.addCommand(kali); // meletakkan tombol kali
mainForm.addCommand(bagi); // meletakkan tombol bagi
mainForm.setTicker(ticker); //menampilkan tulian bergerak
mainForm.append(bil1); // meletakkan textfield 1 mainForm.append(bil2);//
meletakkan textfield 2 mainForm.append(result); // meletakkan textfield
hasil mainForm.setCommandListener(this); // agar tombol dapat diKlik

display.setCurrent(mainForm);// menampilkan form

public void pauseApp() {

public void destroyApp(boolean unconditional) {

public void commandAction(Command c, Displayable d) { //jika


tombol di klik

if(c==keluar){
destroyApp(true);// menghentikan aplikasi notifyDestroyed();//
pemberitahuan aplikasi telah berhenti

26

 
if(c==kali){

//Mengkonversi masukan dari txt1 dari string menjadi


integer N1 =
Integer.valueOf(bil1.getString()).intValue();
N2=Integer.valueOf(bil2.getString()).intValue();
NH=N1*N2; //Menampung hasil dari perkalian

result.setString(String.valueOf(NH)); //Menampilkan hasil dari variabel


hasil ke txtHasil

if(c==tambah){

//Mengkonversi masukan dari txt1 dari string menjadi


integer N1 =
Integer.valueOf(bil1.getString()).intValue();
N2=Integer.valueOf(bil2.getString()).intValue();
NH=N1+N2;//Menampung hasil dari penjumlahan

result.setString(String.valueOf(NH)); //Menampilkan hasil dari variabel


hasil ke txtHasil

if(c==kurang){

//Mengkonversi masukan dari txt1 dari string menjadi


integer N1 =
Integer.valueOf(bil1.getString()).intValue();
N2=Integer.valueOf(bil2.getString()).intValue();
NH=N1-N2;//Menampung hasil dari penguranagan

result.setString(String.valueOf(NH));//Menampilkan hasil dari variabel


hasil ke txtHasil
}

if(c==bagi){

//Mengkonversi masukan dari txt1 dari string menjadi


integer N1 =
Integer.valueOf(bil1.getString()).intValue();
N2=Integer.valueOf(bil2.getString()).intValue();
NH=N1/N2;//Menampung hasil dari pembagian

27

 
result.setString(String.valueOf(NH));//Menampilkan hasil dari variabel
hasil ke txtHasil

Hasil ketika program dijalankan sebagai berikut :


28

 
Program 1

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

29

 
*/

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/**

* @author bancin */

public class datamahasiswa extends MIDlet implements CommandListener {


Display layar;

Form form;

Command cmdkeluar,cmdok;

TextField tfnpm,tfnama,tfuas,tfuts,tfnh,tftm,tfts,tfrt2,tfgrade;
Ticker tick;

public datamahasiswa(){

form= new Form("data nilai mahasiswa");

tfnpm= new TextField("NPM","",50,1);

tfnama= new TextField("NAMA","",50,1);

tfuas= new TextField("UAS","",50,1); tfuts=

new TextField("UTS","",50,1);

tfnh= new TextField("NILAI KEHADIRAN","",50,1); tftm=


new TextField("NILAI TUGAS MANDIRI","",50,1);
tfts= new TextField("NILAI TUGUS TERSTUKTUR","",50,1);

30

 
tfrt2= new TextField("NILAI RATA RATA","",50,1); tfgrade= new

TextField("NILAI GRADE","",50,1);

cmdkeluar = new Command("KELUAR",Command.SCREEN,0); cmdok = new

Command("SELESAI",Command.SCREEN,1); tick = new Ticker("Data Nilai

Mahasiswa"); form.append(tfnpm);

form.append(tfnama);

form.append(tfuas);

form.append(tfuts);

form.append(tfnh);

form.append(tftm);

form.append(tfts);

form.append(tfrt2);

form.append(tfgrade);

form.addCommand(cmdok);

form.addCommand(cmdkeluar);

form.setTicker(tick);

public void startApp() {

layar = Display.getDisplay(this);

layar.setCurrent(form);
form.setCommandListener(this);

31

 
}

public void pauseApp() {}

public void destroyApp(boolean unconditional) {}

public void commandAction(Command c, Displayable d) { if


(c==cmdkeluar){

notifyDestroyed();//exit.keluar } else if
(c==cmdok) {

double nh,uas,uts,tm,ts,rt2,nama,npm,grade=0; nh =
Integer.parseInt(tfnh.getString());

uts =Integer.parseInt(tfuts.getString()); tm =

Integer.parseInt(tftm.getString()); ts =

Integer.parseInt(tfts.getString()); uas =

Integer.parseInt(tfuas.getString());

rt2 = (0.1*nh)+(0.3*uts)+(0.35*uas)+(0.1*ts)+(0.15*tm);

tfrt2.setString(String.valueOf(rt2));

if (rt2>=80 ){ grade = 'A';

} else if (rt2>=70 && rt2<80){ grade ='B';

} else if (rt2>=60 && rt2<70){ grade = 'C';


32

 
} else if (rt2>=50 && rt2<60){
grade = 'D';

} else

grade = 'E';

tfgrade.setString(String.valueOf(grade));

tick = new Ticker("NILAI GRADE ANDA : "+String.valueOf(grade));


form.setTicker(tick);

2.program 3 /*
* To change this template, choose Tools | Templates

* and open the template in the editor.

33

 
*/

import javax.microedition.lcdui.*; import

javax.microedition.midlet.MIDlet; /**

* @author Charles Harianto bancin */

public class quiz1 extends MIDlet implements CommandListener {

//Defenisi Variabel Display layar;

TextField tfalas; TextField tftinggi;

TextField tfluas; Form form;

Command cmdExit; Command

cmdok; Command Proses;

Command AboutMe;

Ticker pesan;

public quiz1 (){

34

 
form = new Form("Aplikasi menghitung luas segitiga");
tfalas = new TextField("alas :","",50,1);

tftinggi = new TextField("Tinggi :","",50,1); tfluas

= new TextField("luas :","",50,1);

cmdExit = new Command("Keluar",null,Command.EXIT,0);

Proses = new Command("Proses",null,Command.SCREEN,1);

AboutMe = new Command("Tentang saya : ",null,Command.SCREEN,2);

pesan = new Ticker("**Aplikasi menghitung Luas segitiga**");

form.setTicker(pesan);

form.append(tfalas);

form.append(tftinggi);

form.append(tfluas);

form.addCommand(cmdExit);

form.addCommand(Proses);

form.addCommand(AboutMe);

}
public void startApp(){

layar = Display.getDisplay(this);

35

 
layar.setCurrent(form);

form.setCommandListener(this);

public void pauseApp() {}

public void destroyApp(boolean unconditional) {}

public void commandAction(Command c, Displayable d) { if (c==cmdExit){

notifyDestroyed(); //Exit

else if (c==Proses){ hluas();

}
private void hluas() {

36

 
double vluas, va,vt;

va =Integer.parseInt(tfalas.getString()); vt

=Integer.parseInt(tftinggi.getString()); vluas = (va * vt)/ 2;

tfluas.setString(String.valueOf(vluas));

Program 3 /*

* To change this template, choose Tools | Templates

* and open the template in the editor.


*/
importjavax.microedition.midlet.*;
importjavax.microedition.lcdui.*;

/**

37

 
* @author User
*/

public class MidletaAritmatika extends MIDlet implements CommandListener {


Display layar;

Form form;

Command cmdExit,cmdTambah,cmdKurang,cmdKali,cmdBagi;
TextField tfBil1,tfBil2,tfHasil;

Ticker pesan;

publicMidletaAritmatika () {

form = new Form("Kalkulator Mini");

tfBil1= new TextField("Bilangan Pertama","",50,1);


tfBil2= new TextField("Bilangan Kedua","",50,1);

tfHasil= new TextField("Hasilnya adalah","",50,1); cmdExit=


new Command("Keluar",null,Command.EXIT,0);

cmdTambah= new Command("Tambah",null,Command.SCREEN,1);


cmdKurang= new Command("Kurang",null,Command.SCREEN,2);
cmdKali= new Command("Kali",null,Command.SCREEN,3);
cmdBagi= new Command("Bagi",null,Command.SCREEN,4);

pesan= new Ticker("Kalkulator Mini DibuatOleh: Veronika, Okt 2014");


form.setTicker(pesan);

form.append(tfBil1);
form.append(tfBil2);
form.append(tfHasil);
form.addCommand(cmdExit);
form.addCommand(cmdTambah);
form.addCommand(cmdKurang);
form.addCommand(cmdKali);
form.addCommand(cmdBagi);
}
public void startApp() {

layar= Display.getDisplay(this);
layar.setCurrent(form);
form.setCommandListener(this);
}

public void pauseApp() {}


public void destroyApp(boolean unconditional) {}

public void commandAction(Command c, Displayable d) {


if (c==cmdExit){ notifyDestroyed();}

else if (c==cmdTambah){ hTambah();}


else if (c==cmdKurang) {hKurang();} else
if (c==cmdKali) {hKali();}

else if (c==cmdBagi) {hBagi();}

38

 
}

public void hTambah() { double vBil1,vBil2,vHasil;

vBil1 = Integer.parseInt(tfBil1.getString()); vBil2 =


Integer.parseInt(tfBil2.getString());

vHasil = vBil1 + vBil2 ; tfHasil.setString(String.valueOf(vHasil)); }

public void hKurang() { double vBil1,vBil2,vHasil;

vBil1 = Integer.parseInt(tfBil1.getString()); vBil2 =


Integer.parseInt(tfBil2.getString());

vHasil = vBil1 - vBil2 ; tfHasil.setString(String.valueOf(vHasil)); }

public void hKali() { double vBil1,vBil2,vHasil;

vBil1 = Integer.parseInt(tfBil1.getString()); vBil2 =


Integer.parseInt(tfBil2.getString());

vHasil = vBil1 * vBil2 ; tfHasil.setString(String.valueOf(vHasil)); }

public void hBagi() { double vBil1,vBil2,vHasil;

vBil1 = Integer.parseInt(tfBil1.getString()); vBil2 =


Integer.parseInt(tfBil2.getString());

vHasil = vBil1 / vBil2 ; tfHasil.setString(String.valueOf(vHasil)); }

}
39

 
BAB IV

PENUTUP

4.1 Kesimpulan

1) Java dikenal sebagai bahasa pemrograman yang bersifat strongly, yang


berarti diharuskan mendeklarasikan tipe data dari semua variable yang
apabila lupa atau salah dalam mengikuti aturan pendeklarasian variable,
maka akan terjadi error pada saat proses kompilasi.

2) Tipe data yang terdapat pada bahasa pemrograman Java pada umumnya
tidak jauh berbeda dengan bahasa pemrograman lain seperti C, C++,
Pascal, Basic, dan lainnya, yakni terdiri dari integer, floating point, char,
dan Boolean

3) Program kulkulator sederhana menggunakan java netbeans ini


mungkin tampilannya kurang bagus dikarenakan keterbatasan
kemampuan penulis.

4.2 SARAN
1) Bagi pengembang aplikasi ini penulis menyarankan pada penyajian
hasilkalkulasi mendukung teknologi accelerometer agar tampilan lebih
flexible dan

tertata rapih.

40

 
1) Tambahkan juga beberapa fitur yang mungkin diperlukan dalam
proseskalkulasi, seperti metode subnetting.

2) Tambahkan fasilitas seperti hasil kalkulasi dapat disimpan ke dalam


memoritelepon dalam format jpg ataupun tabel.2

3) Dikarenakan cukup rumitnya bahasa pemrograman Java dan semakin


banyaknya pesaing yang berkompetisi di bidang pemrograman Java, maka
Penulis menyarankan kepada pembaca (khususnya pemula), untuk sejak dini
mempelajari bahasa pemrograman tersebut.
41

Anda mungkin juga menyukai