tugas mandiri java

(1)

TUGAS MANDIRI

MAKALAH

Pemrograman Mobile Praktek

Oleh:

CHARLES HARIANTO BANCIN

120310033

MATA KULIAH

:

Pemrograman Mobile Praktek

DOSEN

: Tukino, S.Kom., M.SI..

PROGRAM STUDI SISTEM INFORMASI

UNIVERSITAS PUTERA BATAM


(2)

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

Tukino, S.Kom., M.SI..

selaku dosen mata kuliah Pemrograman Mobile Praktek

2. Dosen dan Staff Universitas Putera Batam. 3. Teman teman saya yang telah medukung saya 4. Keluarga saya yang selalu mendukung saya

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

Batam, 05 januari 2015


(3)

DAFTAR ISI

KATA PENGANTAR ... 2

DAFTAR ISI ... 3

BAB I PENDAHULUAN ... 4

BAB I Latar Belakang Masalah ... 4

BAB II LANDASAN TEORI ... 8

BAB III PEMBAHASAN ... 11


(4)

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


(5)

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.


(6)

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


(7)

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.


(8)

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 “Oak”, namun pada tahun 1995 diganti namanya 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 istilah „write once, run everywhere‟, yang berarti kode program hanya ditulis sekali, namun dapat 9 dijalankan di bawah kumpulan pustaka (platform) manapun, tanpa harus melakukan perubahan kode program.


(9)

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)


(10)

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.


(11)

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 :


(12)

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


(13)

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 :


(14)

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.


(15)

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.


(16)

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

4) 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.

5) 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.


(17)

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


(18)

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 :


(19)

2) res

Menyimpan sumber daya yang dibutuhkan oleh MIDlet, sepertimisalnya gambar icon.

3) lib

menyimpan file JAR atau ZIP yang berisi library tambahan yangdibutuhkan MIDlet.

4) bin

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

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


(20)

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.


(21)

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


(22)

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


(23)

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.


(24)

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.


(25)

/*

* 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");


(26)

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){


(27)

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


(28)

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

} } }


(29)

Program 1 /*

* To change this template, choose Tools | Templates * and open the template in the editor.


(30)

*/

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);


(31)

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);


(32)

}

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';


(33)

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


(34)

*/

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;


(35)

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(){


(36)

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();

} }


(37)

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.*; /**


(38)

* @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();}


(39)

}

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)); } }


(40)

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.2SARAN

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


(41)

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

3) Tambahkan fasilitas seperti hasil kalkulasi dapat disimpan ke dalam memoritelepon dalam format jpg ataupun tabel.2

4) 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.


(1)

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();

} }


(2)

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.*; /**


(3)

* @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();}


(4)

}

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)); } }


(5)

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.2SARAN

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


(6)

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

3) Tambahkan fasilitas seperti hasil kalkulasi dapat disimpan ke dalam memoritelepon dalam format jpg ataupun tabel.2

4) 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.