• Tidak ada hasil yang ditemukan

BAB IV PEMOGRAMAN GRAFIK DAN SMS DENGAN J2ME - BAB IV Aplikasi Grafik dan SMS

N/A
N/A
Protected

Academic year: 2018

Membagikan "BAB IV PEMOGRAMAN GRAFIK DAN SMS DENGAN J2ME - BAB IV Aplikasi Grafik dan SMS"

Copied!
13
0
0

Teks penuh

(1)

Disusun Oleh : Ferlianus Gulo | Website : ferlianus-gulo.blogspot.com 1

BAB IV

PEMOGRAMAN GRAFIK DAN SMS DENGAN J2ME

PEMBAHASAN MATERI :

Java mobile yang dipelajari adalah J2ME.

Pembuatan Program Grafik dengan Sun Java Wireless Toolkit 2.5.2.

Membuat Aplikasi SMS

TUJUAN BELAJAR :

Mahasiswa dapat mengetahui dan memahami pembuatan program kalkulator ( kali,

bagi, tambah dan kurang ) menggunakan java mobile J2ME dan menampilkannya ke

Ponsel.

A.

JAVA MOBILE

Java Mobile biasa dikenal dengan istilah J2ME (Java 2 MicroEdition) merupakan

salah satu bagian dari paket pemrograman Java. Paket pemrograman Java untuk saat ini pada

umumnya terbagi tiga, yaitu :

a)

Java 2 Enterprise Edition (J2EE).

Paket ini digunakan pada hardware yang mempunyai spesifikasi dan memori yang besar

seperti pada komputer server.

b)

Java 2 Standard Edition (J2SE).

Paket J2SE digunakan pada komputer desktop.

c)

Java 2 MicroEdition (J2ME).

Paket J2ME digunakan pada perangkat keras yang memiliki memori kecil seperti ponsel,

PDA dan sebagainya.

J2ME merupakan superset dari J2SE, yang artinya Java API yang ada di J2ME

sebagian diadopsi dari Java API J2SE. Jika pada J2SE menggunakan JVM (Java Virtual

Machine) sebagai Interprenternya, lain halnya pada J2ME yang menggunakan Kilo Virtual

Machine (KVM) sebagai interprenternya. Berdasarkan spesifikasi perangkat kerasnya J2ME

memiliki 2 macam konfigurasi yaitu CLDC (Connected Limited Device Configuration) dan

CDC (Connected Device Configurations). Untuk aplikasi pada paket J2ME diberi nama

MIDlet.

(2)

Disusun Oleh : Ferlianus Gulo | Website : ferlianus-gulo.blogspot.com 2

CLDC CDC

Mengimplementasikan sebagian fitur dari J2SE Mengimplementasikan seluruh fitur dari J2SE

Menggunakan KVM (Kilo Virtual Machine) Menggunakan CVM

Digunakan pada Handphone, PDA, Pager yang memiliki memori terbatas (160-512)kb

Digunakan pada perangkat internet

Televisi, Nokia communicator yang memiliki memori minimal 2 Mb

Processor 16 / 32 bit Processor 32 bit

B.

Membuat Aplikasi Sederhana dengan J2ME

1.

Membuat Aplikasi Grafik

Ketik kode berikut :

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*; import java.util.Random;

public class Grafik extends MIDlet {

private Command Keluar; private Display Layar;

public Grafik() {

Layar = Display.getDisplay(this);

}

public void startApp() {

Acak TampilLayar=new Acak(this); Layar.setCurrent(TampilLayar);

}

public void pauseApp() { }

public void destroyApp(boolean unconditional) { }

}

class Acak extends Canvas implements Runnable {

(3)

Disusun Oleh : Ferlianus Gulo | Website : ferlianus-gulo.blogspot.com 3 public int Tinggi=this.getHeight();

public MIDlet Tampilan; public Image Gambar;

public Random ProsesAcak; int Jumlah=0;

public Acak(MIDlet mid) { this.Tampilan=Tampilan;

ProsesAcak=new Random(255);

Gambar=Image.createImage(Lebar,Tinggi);

Thread Proses=new Thread(this); Proses.start();

}

public void createpic(){ int red,green,blue;

Graphics Garis=Gambar.getGraphics(); for (int i=0;i<500;i++){

red=Math.abs(ProsesAcak.nextInt() % (255));

green=Math.abs(ProsesAcak.nextInt() % 255);

blue=Math.abs(ProsesAcak.nextInt() % 255);

Garis.setColor(red,green,blue);

Garis.drawLine(Math.abs(ProsesAcak.

nextInt()%Lebar),

Math.abs(ProsesAcak.nextInt() %Tinggi),

Math.abs(ProsesAcak.nextInt() %Lebar),

Math.abs(ProsesAcak.nextInt() %Tinggi));

}; }

public void run(){ while (true){

(4)

Disusun Oleh : Ferlianus Gulo | Website : ferlianus-gulo.blogspot.com 4 this.repaint();

try{

Thread.sleep(500);

}catch(Exception e){ }

} }

public void paint (Graphics g){ g.drawImage(Gambar,0,0,0);

}

public void ClearScreen(Graphics g){

g.setColor(0,0,0);

g.fillRect(0,0,Lebar,Tinggi); };

}

Keterangan pada aplikasi Grafik:

Baris 1-3 merupakan fungsi Java API yang akan kita gunakan untuk memanggil

kompenen-komponen J2ME.

Baris 4-18 mendeklarasikan class MidletGrafik dan mendefinisikan Method- Method

dalam class MidletGrafik.

Baris 19-25 mendeklarasikan class Acak dalam class MidletGrafik kemudian

mendefiniskan Variabel-Variabel dalam class Acak untuk tampilan aplikasi.

Baris 26-32 kode-kode Constructor pada class Acak untuk menampilkan grafik secara

acak.

Baris 33-53 kode-kode yang berfungsi membuat logika grafik dalam format warna RGB

secara acak dan berulang-ulang.

Baris 54-66 kode-kode yang berfungsi untuk menampilkan grafik.

Baris 67-70 kode-kode yang berfungsi untuk membersihkan layar.

Baris 71 akhir dari blok kode class Acak.

2.

Membuat Aplikasi Listp

(5)

Disusun Oleh : Ferlianus Gulo | Website : ferlianus-gulo.blogspot.com 5 import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class Listp extendes MIDlet implements CommandListener {

Display display;

list list;

TextBox texbox;

Command exitCommand = new Command("Exit", Command.EXIT, 1);

Command addCommand = new Command("Add Item", Command.OK, 1); Command removeCommand = new Command("Remove Item", Command.OK,1);

Command okCommand = new Command("OK",Command.OK, 1);

Command cancelCommand = new Command("Cancel",Command.EXIT,1); Ticker ticker = new Ticker("selamat Datang DI budidarma");

public Listp(){

list = new list ("Komputasinirkabel",List.IMPLICIT); list.setTicker(ticker);

list.addCommand(exitCommand); list.addCommand(addCommand);

list.addCommand(removeCommand); list.setCommandListener(this);

textbox = new TextBok("Add list Item","",64, TextField.ANY);

textbox.addCommand(okCommand); textbox.setCommandListener(this);

}

public void starApp() { if (display ==null) {

display = Display.getDisplay(this); display.setCurrent(list);

} }

(6)

Disusun Oleh : Ferlianus Gulo | Website : ferlianus-gulo.blogspot.com 6 public void destroyApp(boolean uncoditional) {

}

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

notifyDestroyed(); }

if (c == addCommand){

textbox.setString(""); display.setCurrent(textbox);

}

if (c == removeCommand){

iny index = list.getselectedIndex(); if (index != -1){

list.insert(index, textbox.getString(),null); }

else{

// list might be empty

list.append(textbox.getString(),null;} display.setCurrent(list);

}

if (c==cancelcommand){

display.setCurrent(list);} }

}

3.

Membuat Aplikasi MidletSMS

Ketik kode berikut :

(7)

Disusun Oleh : Ferlianus Gulo | Website : ferlianus-gulo.blogspot.com 7 import javax.microedition.lcdui.*;

import javax.wireless.messaging.*; import java.io.IOException;

public class MidletSMS extends MIDlet implements CommandListener {

Command exitCommand = new Command( "Keluar", Command.EXIT, 2);

Command okCommand = new Command( "OK", Command.OK, 1);

Display display; String smsPort;

TextBox destinationAddressBox; Alert errorMessageAlert;

Alert sendingMessageAlert;

KirimPesan sender;

Displayable resumeScreen = null;

public MidletSMS() {

smsPort = getAppProperty("PortSMS");

display = Display.getDisplay(this); destinationAddressBox = new TextBox

("Masukkan Nomor HP Tujuan ?", null, 256, TextField.PHONENUMBER);

destinationAddressBox.addCommand( exitCommand);

destinationAddressBox.addCommand( okCommand);

destinationAddressBox.

setCommandListener(this); errorMessageAlert = new Alert(

"SMS", null, null, AlertType.ERROR); errorMessageAlert.setTimeout(5000);

sendingMessageAlert = new Alert( "SMS", null, null, AlertType.INFO);

sendingMessageAlert.setTimeout(5000); sendingMessageAlert.

(8)

Disusun Oleh : Ferlianus Gulo | Website : ferlianus-gulo.blogspot.com 8 sender = new KirimPesan(

smsPort, display, destinationAddressBox, sendingMessageAlert);

resumeScreen = destinationAddressBox; }

public void startApp() {

display.setCurrent(resumeScreen);

}

public void pauseApp() {

resumeScreen = display.getCurrent(); }

public void destroyApp(boolean unconditional) { }

public void commandAction(Command c, Displayable s) {

try {

if (c == exitCommand || c == Alert.DISMISS_COMMAND) {

destroyApp(false); notifyDestroyed();

} else if (c == okCommand) { promptAndSend();

}

} catch (Exception ex) {

ex.printStackTrace(); }

}

private void promptAndSend() {

String address = destinationAddressBox.getString();

if (!MidletSMS.isValidPhoneNumber(address)) { errorMessageAlert.setString(

"Nomor Telepon Tdak DiKenal"); display.setCurrent(errorMessageAlert,

destinationAddressBox); return;

}

String statusMessage = "Mengirim Pesan Ke : "

(9)

Disusun Oleh : Ferlianus Gulo | Website : ferlianus-gulo.blogspot.com 9 sendingMessageAlert.setString(statusMessage);

sender.promptAndSend("sms://" + address); }

private static boolean isValidPhoneNumber( String number) {

char[] chars = number.toCharArray(); if (chars.length == 0) {

return false; }

int startPos = 0; if (chars[0] == '+') {

startPos = 1; }

for (int i = startPos; i < chars.length; ++i) {

if (!Character.isDigit(chars[i])) { return false;

} }

return true; }

}

class KirimPesan

implements CommandListener, Runnable { Command sendCommand = new Command(

"Kirim", Command.OK, 1);

Command backCommand = new Command( "Kembali", Command.BACK, 2);

Display display; String smsPort;

String destinationAddress; TextBox messageBox;

Displayable backScreen; Displayable sendingScreen;

public KirimPesan(String smsPort, Display display, Displayable backScreen, Displayable sendingScreen) {

(10)

Disusun Oleh : Ferlianus Gulo | Website : ferlianus-gulo.blogspot.com 10 this.display = display;

this.destinationAddress = null; this.backScreen = backScreen;

this.sendingScreen = sendingScreen; messageBox = new TextBox(

"Ketik Pesan", null, 65535, TextField.ANY); messageBox.addCommand(backCommand);

messageBox.addCommand(sendCommand); messageBox.setCommandListener(this);

}

public void promptAndSend(String destinationAddress)

{

this.destinationAddress = destinationAddress; display.setCurrent(messageBox);

}

public void commandAction(Command c, Displayable s) {

try {

if (c == backCommand) {

display.setCurrent(backScreen); } else if (c == sendCommand) {

display.setCurrent(sendingScreen); new Thread(this).start();

}

} catch (Exception ex) {

ex.printStackTrace(); }

}

public void run() {

String address = destinationAddress + ":" + smsPort;

MessageConnection smsconn = null; try {

smsconn = (MessageConnection) Connector.open(address);

TextMessage txtmessage = (TextMessage) smsconn.newMessage(

(11)

Disusun Oleh : Ferlianus Gulo | Website : ferlianus-gulo.blogspot.com 11 txtmessage.setAddress(address);

txtmessage.setPayloadText( messageBox.getString());

smsconn.send(txtmessage); } catch (Throwable t) {

System.out.println("Pesan Terkirim"); t.printStackTrace();

}

if (smsconn != null) {

try {

smsconn.close();

} catch (IOException ioe) { System.out.println("Selesai"); ioe.printStackTrace();

} }

} }

Keterangan :

Baris 1-5 merupakan fungsi Java API yang akan kita gunakan untuk memanggil

kompenen-komponen J2ME.

Baris 6-18 mendeklarasikan class MIDletSMS sebagai MIDlet, beserta Command dan

Variabel-Variabelnya.

Baris 19-43 kode-kode Constructor MidletSMS yang berisikan logika-logika yang

akan dipakai pada program.

Baris 44-63 kode-kode Method yang berisikan pengaturan fungsi-fungsi dan

Variabel-Variabel yang akan dipanggil ketika berinteraksi dengan menu dalam

program.

Baris 64-77 kode-kode yang berisikan logika program untuk menampilkan dialog

dalam menu program.

Baris 78-96 kode-kode yang berisikan logika program untuk memeriksa jumlah digit

(12)

Disusun Oleh : Ferlianus Gulo | Website : ferlianus-gulo.blogspot.com 12

Baris 97-108 membuat dan mendeklarasikan class KirimPesan beserta

Variabe-Variabel dan Commandnya di dalam MIDletSMS. Class KirimPesan nantinya akan

berisi logika-logika yang berfungsi untuk melakukan pengiriman pesan.

Baris 109-121 merupakan Constructor class.KirimPesan yang mendeklarasikan

Variabel dan Command. yang akan digunakan.

Baris 122-161 kode-kode logika yang terdapat pada Method-Method Class kirim

pesan yang berfungsi untuk melakukan pengiriman pesan.

Baris 162-165 akhir dari class dan blok kode.

Catatan:

Anda bisa mencoba aplikasi ini pada ponsel anda. Transfer File yang ada di “Folder

Project”

\dist\

”Nama Project”.jar ke Ponsel, kemudian Install aplikasi tersebut.

Kedua aplikasi ini hanya pernah di coba pada Ponsel merk Nokia, belum pernah di

coba pada Ponsel merk lain.

Aplikasi ini pernah dicoba pada Ponsel Nokia seri 6600, hasilnya aplikasi bisa

berjalan tanpa ada masalah.

Aplikasi ini tidak cocok dengan Ponsel nokia seri N-Gage, muncul pesan Error pada

(13)

Disusun Oleh : Ferlianus Gulo | Website : ferlianus-gulo.blogspot.com 13

DAFTAR PUSTAKA

1.

Irawan,

Java Mobile

, maxiko, Palembang, ______

*****

Hak Cipta © 2013 pada penulis,

Hak Cipta dilindungi undang-undang. Seluruh dokumen ini dapat digunakan dan disebarkan

secara bebas untuk tujuan belajar bukan komersial (

non-profit

), dengan syarat tidak

menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam

dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan izin tertulis

terlebih dahulu dari Penulis.

TENTANG PENULIS,

Referensi

Dokumen terkait

Kelainan CVS, SIDS, Endokrin Manajeme n asuhan BBL dengan kelainan Diskusi dan Studi Kasus

Bahan yang digunakan untuk karet perapat sebagian besar langsung berhubungan dengan gas LPG sehingga harus memiliki ketahanan terhadap gas LPG agar kualitas

Bahwa untuk menetapkan hasil Pengkoreksian Ujian Profesi Advokat (UPA) Online Periode 1 (satu) Tahun 2021, Panitia Ujian Profesi Advokat (PUPA) Dewan Pengacara Nasional

Sampel yang digunakan dalam penelitian ini sebanyak 4 perusahaan Tobacco Manufacturers yang go public dan terdaftar di PT Bursa Efek Indonesia tahun 2005 – 2008, sedangkan jenis

Jawaban : ILC adalah salah satu gagasan Bapak Karni Ilyas, sebagai pribadi yang masih terus bersemangat untuk tetap menjadi seorang Jurnalis, meski sudah menjadi

0awaban: Kasus ini meru!akan %amily brandin#, strate#i !emasaran yan# *o*ok adalah den#an men##unakan !romosi besar&amp;besaran a#ar da!at menem!atkan !roduk luwak  white

Gambar vektor adalah sekumpulan objek yang membentuk garis atau bentuk tertentu, yang dapat didefisinikan secara matematis, diisi warna dan memiliki resolusi bebas, karena jenis

Rasa terima kasih penulis haturkan atas bantuan segala pihak yang telah memberikan bantuan dan dukungannya sehingga laporan Tugas Akhir dengan judul “ Program