Struktur Kode Program MIDlet As’ad Djamalilleil

Slides:



Advertisements
Presentasi serupa
Mendapatkan Input dari Keyboard
Advertisements

Mendapatkan Input dari Keyboard
GUI MENGGUNAKAN HANDPHONE BERFASILITAS J2ME
BAHASA PEMROGRAMAN JAVA
IT603 Ramos Somya.  Mahasiswa mampu memahami konsep dan penerapan komputasi mobile dan aplikasinya.
MIDP, MIDLet & Antar Muka J2ME
Java Progamming Operasi I/O
Pemrograman Berorientasi Objek
MIDlet User Interface (3) As’ad Djamalilleil
Package As’ad Djamalilleil
Komponen Class Item (2) As’ad Djamalilleil
Inheritance (Pewarisan) As’ad Djamalilleil
WITH FANDI SUSANTO S.SI. Pemrograman Aplikasi Bergerak By Fandi Susanto S.Si.
Struktur Kode Aplikasi Java (2) As’ad Djamalilleil
Pemrograman JAVA (TIB09)
Workshop SCS: Java Game Programming
Abstract & Interface As’ad Djamalilleil
Looping (perulangan) As’ad Djamalilleil
Functions/Fungsi As’ad Djamalilleil
Web Teknologi 3 (MKB721C) Minggu 2 Page 1 MINGGU 2 Web Teknologi 3 (MKB721C) Pokok Bahasan: –Midlet –User Interface Tujuan Instruksional Khusus: Agar.
Komponen Class Item (3) As’ad Djamalilleil
PEMOGRAMAN APLIKASI BERGERAK (Java ME)
MIDlet User Interface (2) As’ad Djamalilleil
Instalasi JME & Uji Coba As’ad Djamalilleil
Java2 Micro Editon (J2ME)
Komponen Class Item (1) As’ad Djamalilleil
Mendapatkan input dari keyboard
Mendapatkan Input dari Keyboard
PROGRAM APLIKASI MOBILE EMHA TAUFIQ LUTHFI PERTEMUAN 3.
Struktur Kode Aplikasi Java (1)
As’ad Djamalilleil Function (method) As’ad Djamalilleil
PEMOGRAMAN APLIKASI BERGERAK (Java ME)
WITH FANDI SUSANTO S.SI. Pemrograman Aplikasi Bergerak By Fandi Susanto S.Si.
Komponen-Komponen dalam J2ME
J2ME, Configuration & Profile
Company LOGO PEMOGRAMAN APLIKASI BERGERAK (Java ME)
MIDP (MIDlet) dan Tools
PROGRAM APLIKASI MOBILE EMHA TAUFIQ LUTHFI PERTEMUAN 5 (18 APRIL 2011)
H. Risdiandri Iskandar, SKom, MM
Company LOGO PEMOGRAMAN APLIKASI BERGERAK (Java ME) Nyimas Artina.
Inheritance, polymorphism, dan interface
PROGRAM APLIKASI MOBILE EMHA TAUFIQ LUTHFI PERTEMUAN 2.
STREAM.
PROGRAM APLIKASI MOBILE EMHA TAUFIQ LUTHFI PERTEMUAN 4 (12 APRIL 2011)
Try, Catch, Finally Throws
High Level User Interface
Inheritance dan Kata Kunci static
MIDP High-Level User Interface
Input/output dan Kelas File
Mendapatkan Input dari Keyboard
POLYMORPHISM.
Mendapatkan input dari keyboard
Tipe Data, Variabel, dan Operator
MIDlet User Interface (2)
Struktur Kode Program MIDlet
As’ad Djamalilleil Komponen Class Item (2) As’ad Djamalilleil
As’ad Djamalilleil Class dan Object As’ad Djamalilleil
As’ad Djamalilleil Komponen Class Item (1) As’ad Djamalilleil
As’ad Djamalilleil Komponen Class Item (3) As’ad Djamalilleil
As’ad Djamalilleil Class List As’ad Djamalilleil
Tipe Data, Variabel, dan Operator
MIDlet User Interface (3)
Mobile Teknologi Pertemuan 3
Instalasi JME & Uji Coba
Mobile Teknologi Pertemuan 2
Pengenalan J2ME, Configuration & Profile
Mendapatkan input dari keyboard
Tipe Data, Variabel, dan Operator
Pemrograman Berorientasi Objek
Mendapatkan Input dari Keyboard
Transcript presentasi:

Struktur Kode Program MIDlet As’ad Djamalilleil

import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class NamaClass extends MIDlet { public NamaClass() { } public void startApp(){ } public void pauseApp(){ } public void destroyApp(boolean unconditional){ }

import javax.microedition.midlet.*; paket midlet harus diimport karena berisi class MIDlet yang diperlukan untuk membuat aplikasi midlet import javax.microedition.lcdui.*; paket lcdui digunakan untuk pemrosesan macam2 komponen user interface public class NamaClass extends MIDlet class yg dibuat harus meng-extends class MIDlet

public NamaClass() { } konstruktor dari class ini public void startApp(){ } fungsi ini dijalankan pada saat aplikasi ini dimulai

public void pauseApp(){ } fungsi ini dijalankan pada saat aplikasi di-minimize public void destroyApp(boolean unconditional){ } fungsi ini dijalankan pada saat aplikasi dihentikan

Siklus MIDlet

MIDlet User Interface As’ad Djamalilleil

Sekilas User Interface Perangkat mobile hanya dapat menampilkan satu window pada satu waktu Kemampuan berpindah dari satu window ke window yang lain harus diprogram dengan menambahkan komponen UI tertentu agar memungkinkan user untuk melakukan hal tersebut

Paket User Interface Library User Interface (UI) pada MIDlet diimplementasikan ke dalam paket javax.microedition.lcdui.* Paket tersebut berisi beberapa class yang dapat digunakan untuk mengatur tampilan dan manajemen window

Class Display dan Displayable Class Display mewakili layar pada perangkat dimana MIDlet dapat menampilkan user interface-nya Kita dapat memperoleh referensi dari layar tersebut lewat metode getDisplay() public static Display getDisplay(MIDlet midlet)

Setiap MIDlet memiliki objek Display tersendiri yang bersifat unik, jadi metode getDisplay() mengembalikan nilai yang sama setiap kali dipanggil Jadi disarankan untuk menyimpan referensi objek Display ke dalam sebuah variabel daripada memanggil metode tersebut berulang-ulang

Sebuah objek Displayable tidak terlihat oleh user sampai objek tersebut dihubungkan dengan objek Display MIDlet tersebut menggunakan metode setCurrent() pada class Display public void setCurrent(Displayable displayable) Atau objek Displayable yang sedang terhubung dengan objek Display dapat diperoleh dengan memanggil metode getCurrent()

public Displayable getCurrent() Setiap layar dimana MIDlet diperlukan untuk ditampilkan, dapat dibangun dengan menempelkan komponen user interface (diistilahkan dengan items) atau gambar ke level teratas pada window yang berasal dari class abstrak Displayable Sebuah MIDlet dapat diketahui apakah objek Displayable dapat dilihat oleh user dengan memanggil metode isShown(), dimana merupakan satu diantara empat metode dalam class Displayable

public abstract class Displayable { public boolean isShown(); public void addCommand( Command cmd); public void removeCommand( Command cmd); public void setCommandListener( CommandListener l); }

Metode isShown() mengembalikan nilai true hanya jika objek Displayable dapat terlihat oleh user, dimana objek tersebut harus merupakan objek Displayable yang tampil pada saat ini dari objek Display MIDlet yang aktif

High-Level & Low-Level API Top-level user interface classes

Ada 2 class yang merupakan turunan langsung dari class Displayable, dimana merupakan titik awal dari 2 macam gaya pemrograman user interface yang didukung oleh paket javax.microedition.lcdui

Class Canvas Class Canvas merupakan dasar dari low- level GUI API Untuk membuat user interface menggunakan low-level API, kita harus membuat subclass dari Canvas dan mengimplementasi metode paint() untuk menggambar langsung pada layar

Class Screen Class Screen merupakan class dasar dari pemrograman high-level API Tidak seperti Canvas, tidak perlu untuk membuat subclass dari class Screen untuk membuat user interface MIDlet Class Screen dapat menampilkan titel berupa string atau pesan berupa scrolling- text/ticker

Class Form merupakan subclass dari Screen yang biasa digunakan untuk membangun user interface dengan menambahkan komponen standard (yang dikenal dengan items) Class List, TextBox dan Alert merupakan subclass lainnya yang sama dengan komponen dialog

Low-level dan high-level API dapat digunakan dalam satu MIDlet Tetapi tidak dapat digunakan dalam satu layar

High-Level User Interface API

Class TextBox TextBox adalah komponen yang digunakan untuk menampilkan dan memodifikasi teks TextBox ditampilkan memenuhi satu layar MIDlet dikarenakan class TextBox merupakan turunan atau berasal dari class Screen, sehingga mampu mengakomodasi teks dalam ukuran yang relatif besar dalam beberapa baris

TextBox dapat dibuat lewat konstruktor berikut public TextBox(String title, String text, int maxSize, int constraints) title –judul yang tampil di atas textbox, dapat diberikan nilai null jika tidak ingin menampilkan judul text –teks yang tampil pertama kali di dalam textbox maxSize –panjang maksimum karakter yang dapat tampil pada textbox, dapat diketahui dengan memanggil metode getMaxSize() constraints –batasan tipe konten atau apa yang boleh diketik di dalam textbox

Argumen constraint akan dibahas lebih lanjut pada materi yang membahas tentang class TextField TextBox mewarisi kemampuan untuk menampilkan sebuah judul dari superclass-nya yaitu class Screen

Aplikasi Demo TextBox 1 //deklarasi class yang diperlukan import java.io.InputStream; import java.io.InputStreamReader; import java.io.IOException; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.TextBox; import javax.microedition.lcdui.TextField; import javax.microedition.lcdui.Ticker; import javax.microedition.midlet.MIDlet; public class IsiTeks extends MIDlet { private TextBox isi; // textbox-nya private Display layar; // siapkan layar

public IsiTeks() { layar = Display.getDisplay(this); } public void startApp() { // membuat textbox isi = new TextBox( "Judul dari textbox", "Teks ini tampil di dalam textbox", 255, TextField.ANY); // menjadikan textbox sebagai layar utama layar.setCurrent(isi); }

public void pauseApp() { } public void destroyApp(boolean unconditional) { }

Metode static getDisplay() dari dalam class Display mendapatkan objek Display untuk MIDlet. Kata kunci “ this ” merujuk kepada objek dari MIDlet yang sedang dijalankan Kebanyakan MIDlet menyimpan referensi dari objek Display ke dalam variabel instance sehingga pemanggilan metode getDisplay() hanya dilakukan satu kali saja Agar textbox dapat terlihat, metode setCurrent() pada class Display digunakan dengan referensi textbox dijadikan sebagai argumen

Aplikasi Demo TextBox 2 import java.io.*; import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class IsiTeks extends MIDlet { private TextBox isi; private Display layar; public IsiTeks() { layar = Display.getDisplay(this); }

public void startApp() { //textbox kosong isi = new TextBox(null, null, 255, 0); layar.setCurrent(isi); //ganti judul isi.setTitle("Coba lagi"); //ganti isi isi.setString("Isi dari textbox"); //ganti ukuran isi.setMaxSize(10); //batasan isi.setConstraints(TextField.ANY); }

public void pauseApp() { } public void destroyApp(boolean unconditional) { }

Aplikasi Demo TextBox 3 import java.io.*; import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class IsiTeks extends MIDlet { // panjang maksimum teks // yang tampil pada textbox private static final int PJG_MAKS = 255; private TextBox isifile; private Display layar;

// variabel utk mengecek status aplikasi public boolean dimulai; public IsiTeks(){ // menjadikan textbox sebagai layar utama layar = Display.getDisplay(this); } public void pauseApp() { } public void destroyApp(boolean unconditional) { }

public void startApp() { if (!dimulai) { String isi = null; try { InputStream is = getClass(). getResourceAsStream("Biodata.txt"); InputStreamReader isr = new InputStreamReader(is); char[] buffer = new char[32]; StringBuffer sb = new StringBuffer(); int jumlah; while ((jumlah = isr. read(buffer, 0, buffer.length)) > -1) sb.append(buffer, 0, jumlah); isi = sb.toString( ); } catch (IOException ex) { isi = "Gagal membaca isi file"; }

// membuat textbox isifile = new TextBox("Contoh TextBox", isi, PJG_MAKS, TextField.ANY); // membuat ticker/scrolling text Ticker ticker = new Ticker("Contoh Scrolling Text"); isifile.setTicker(ticker); layar.setCurrent(isifile); dimulai = true; } Catatan: buat dahulu sebuah file teks dengan nama “Biodata.txt” dengan isi tidak lebih dari 255 karakter dan simpan pada folder “res”

Class java.lang.Class menyediakan implementasi dari metode getResourceAsStream() public InputStream getResourceAsStream( String name); name –nama dari file yang akan dibaca Dengan memberikan nama dari sebuah sumber daya/resource, metode ini akan memberikan sebuah objek InputStream yang dapat digunakan untuk membaca isi dari resource tersebut Untuk menggunakan metode ini diperlukan objek Class dimana metode tersebut dijalankan dan membentuk nama dari resource

Definisi Class Screen Berikut adalah definisi class Screen public abstract class Screen extends Displayable { public Ticker getTicker(); public String getTitle(); public void setTicker( Ticker ticker); public void setTitle( String title); }

setTitle() –mengubah judul pada textbox setTicker() –menambahkan ticker pada textbox getTitle() –membaca judul pada textbox getTicker() –Mendapatkan objek ticker dari sebuah textbox Jadi, dari objek TextBox kita dapat merubah atribut dari textbox tersebut dengan memanfaatkan metode-metode di atas

Class Ticker Berikut adalah definisi class Ticker public class Ticker { public Ticker(String str); public String getString( ); public void setString( String str); }

Sebuah ticker dapat dihubungkan dengan lebih dari satu objek Screen pada saat bersamaan. Fitur ini sangat bermanfaat karena bukan hanya menghemat sumber daya tetapi juga dikarenakan perubahan yang dilakukan pada ticker dengan memanggil metode setString() berpengaruh pada saat itu juga pada semua objek Screen dimana ticker tersebut berada.

Aplikasi Demo Ticker 1 import java.io.*; import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class TeksJalan extends MIDlet { public Ticker teks; public TextBox isi; public Display layar; public TeksJalan() { layar = Display.getDisplay(this); }

public void startApp() { teks = new Ticker("Tulisan ini berjalan"); isi = new TextBox("Textbox ditambah ticker", null, 255, 0); isi.setTicker(teks); layar.setCurrent(isi); } public void pauseApp() { } public void destroyApp(boolean unconditional) { }

Aplikasi Demo Ticker 2 import java.io.*; import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class TeksJalan extends MIDlet { private Ticker teks; private Alert pesan; private Display layar; public TeksJalan() { layar = Display.getDisplay(this); }

public void startApp() { teks = new Ticker("Tulisan ini berjalan"); pesan = new Alert("Contoh kotak pesan", "Ini isi pesannya", null, null); pesan.setTimeout(5000); pesan.setTicker(teks); layar.setCurrent(pesan); } public void pauseApp(){ } public void destroyApp(boolean unconditional) { } }

Tugas 2 Buatlah sebuah aplikasi MIDlet yang dapat membaca isi dari sebuah file teks dan menampilkannya ke sebuah ticker File tersebut hanya berisi satu baris tulisan yaitu NIM dan nama Ticker ditampilkan di atas sebuah kotak Alert selama 10 detik Dikirim ke paling lambat 2 minggu sejak hari ini Pengirim tercepat mendapatkan persentase nilai tertinggi sesuai ketentuan di atas