• Tidak ada hasil yang ditemukan

PENUTUP

Dalam dokumen tugas mandiri java (Halaman 11-41)

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 :

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

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 :

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.

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.

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.

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

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 :

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.

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.

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.

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

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.

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.

/*

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

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

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

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

} } }

Program 1 /*

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

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

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

}

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

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

*/

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;

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

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

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

}

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

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

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.

Dalam dokumen tugas mandiri java (Halaman 11-41)

Dokumen terkait