Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Struktur Kode Program MIDlet As’ad Djamalilleil

Presentasi serupa


Presentasi berjudul: "Struktur Kode Program MIDlet As’ad Djamalilleil"— Transcript presentasi:

1 Struktur Kode Program MIDlet As’ad Djamalilleil http://kampusku.uni.me asad.kom@gmail.com

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

3 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

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

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

6 Siklus MIDlet

7 MIDlet User Interface As’ad Djamalilleil http://kampusku.uni.me asad.kom@gmail.com

8 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

9 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

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

11 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

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

13 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

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

15 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

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

17 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

18 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

19 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

20 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

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

22 High-Level User Interface API

23 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

24 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

25 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

26 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

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

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

29 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

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

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

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

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

34 // 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) { }

35 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"; }

36 // 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”

37 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

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

39 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

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

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

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

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

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

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

46 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 email paling lambat 2 minggu sejak hari ini Pengirim tercepat mendapatkan persentase nilai tertinggi sesuai ketentuan di atas


Download ppt "Struktur Kode Program MIDlet As’ad Djamalilleil"

Presentasi serupa


Iklan oleh Google