SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
J.E.N.I.



                                    Bab 11
                     Topik-topik Tambahan

11.1 Tujuan

Setelah menyelesaikan bab ini, siswa diharapkan mampu:
•   mengatur jadwal tugas menggunakan Timers
•   meregister koneksi yang datang pada Push Registry



11.2 Timers

Timer dan TimerTasks berfungsi agar Anda bisa melakukan penjadwalan tugas pada
suatu waktu. Tugas dapat juga dijadwalkan untuk diulang-ulang sampai interval
tertentu.


Anda dapat membuat tugas dengan menurunkan (extending) TimerTask dan
mengimplement method run(). Method run() akan dieksekusi berdasarkan jadwal yang
ada pada Timer.


class CounterTask extends TimerTask {
      int counter = 0;
      public void run() {
           System.out.println("Counter: " + counter++);
      }
}


Untuk menjadwalkan sebuah tugas, buat sebuah Timer dan gunakan method schedule()
yang ada pada Timer untuk menjadwalkan jalannya tugas. Setiap Timer berjalan pada
bagian yang terpisah. Method schedule() memiliki beberapa bentuk. Anda dapat
mengatur waktu tugas untuk mulai dengan memberikan delay dalam mililiseconds atau
dengan memberikan waktu absolut (java.util.Date). Parameter ketiga pada method
schedule() adalah periode pengulangan dari tugas. Jika nilai pengulangan diberikan,
tugas akan dieksekusi dalam periode waktu tertentu.


      Timer timer = new Timer();
      TimerTask task = new CounterTask();



Pengembangan Perangkat Mobile                                                     1
J.E.N.I.


      // task akan dimulai dalam 8 detik dan diulangi setiap 1 detik
      timer.schedule(task, 8000, 1000);
Anda dapat menghentikan timer dengan menggunakan method close(). Method ini dapat
menghentikan timer dan mengabaikan tugas yang dijadwalkan. Perlu Anda catat, bahwa
ketika Timer dihentikan, maka tidak dapat diulangi (direstart) kembali.


  void schedule(TimerTask               task,                Long              delay)


           Melakukan penjadwalan tugas untuk dieksekusi sesudah menentukan delay yang
           diinginkan (dalam milliseconds)
  void schedule(TimerTask          task,      Long      delay       ,      long period)

           Melakukan penjadwalan tugas untuk dieksekusi berulang-ulang, dimulai
           sesudah delay yang ditentukan (dalam milliseconds)
  void schedule(TimerTask                  task,             Date              time)

           Melakukan penjadwalan    tugas    agar   dapat    dieksekusi   pada    waktu   yang
           ditentukan.
  void schedule(TimerTask          task,       Date         time,       long      period)


           Melakukan penjadwalan tugas untuk dieksekusi berulang-ulang, dimulai pada
           waktu yang ditentukan.
  void cancel()


           Menghentikan timer, mengabaikan tugas yang dijadwalkan.


import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;


import java.io.*;
import java.util.Timer;
import java.util.TimerTask;
import java.util.Date;


public class TimerMidlet extends MIDlet implements CommandListener{
      private Command exitCommand;
      private Form form;
      private StringItem textField;
      private Display display;




Pengembangan Perangkat Mobile                                                                2
J.E.N.I.


      public TimerMidlet() {
           exitCommand = new Command("Exit", Command.EXIT, 1);
           textField = new StringItem("Counter", "");


           Timer timer = new Timer();
           TimerTask task = new CounterTask(this);
           timer.schedule(task, 2000, 1000);


           form = new Form("Timer Test");
           form.addCommand(exitCommand);
           form.append(textField);
      }


      public void startApp() {
           display = Display.getDisplay(this);
           form.setCommandListener(this);
           display.setCurrent(form);
      }


      public void pauseApp() {}
      public void destroyApp(boolean unconditional) {
           timer.cancel();
      }


      public void commAndaction(Command c, Displayable d) {
           if (c == exitCommand) {
               destroyApp(true);
               notifyDestroyed();
           }
      }


      public void setText(String text){
           textField.setText(text);
      }
}


class CounterTask extends TimerTask {


Pengembangan Perangkat Mobile                                    3
J.E.N.I.


      int counter = 0;
      TimerMidlet midlet;


      public CounterTask(TimerMidlet midlet){
           this.midlet = midlet;
      }


      public void run() {
           counter++;
           midlet.setText("" + counter);
           System.out.println("Counter: " + counter);
      }
}




11.3 Push Functionality

Push Registry berfungsi agar MIDlet bisa meregister koneksi yang masuk dengan
Application Management Software (AMS). Jika program tidak berjalan, AMS akan
mendengarkan koneksi pada alamat yang telah diregister oleh aplikasi. Hampir semua
tipe koneksi didukung, termasuk ServerSocket dan MessageConnection.


Anda dapat meregister koneksi yang masuk dengan Push Registry menggunakan dua
cara: cara statis dengan menggunakan file application descriptor (JAD) atau dinamis
selama proses runtime menggunakan PushRegistry API.


Pada bab ini kita akan meregister secara statis push application kita pada application
descriptor (JAD) kita. NetBeans Mobility Pack membantu kita untuk memodifikasi
Application Descriptor dengan mudah termasuk pada Push Registry.


Klik kanan pada Project name, selanjutnya klik Properties untuk membuka Properties
Page pada project.




Pengembangan Perangkat Mobile                                                        4
J.E.N.I.




Pilih bagian Push Registry:


Klik "Add" untuk meregister koneksi yang masuk:




Pengembangan Perangkat Mobile                     5
J.E.N.I.


Ulangi proses sebelumnya hingga semua koneksi yang masuk sudah teregister. Dalam
kasus ini, kita melakukan koneksi sms pada port 8888 dan koneksi socket (socket
connection) pada port 1234:




Pengembangan Perangkat Mobile                                                  6
J.E.N.I.


Pilih bagian "API Permissions":




Pilih  "Add" untuk menambah ijin (permission) untuk aplikasi MIDlet. Kita harus
menambahkan API javax.microedition.io.PushRegistry untuk menginstall aplikasi. Kita
juga harus menambahkan semua API yang digunakan oleh aplikasi:




Pengembangan Perangkat Mobile                                                     7
J.E.N.I.


Hilangkan tAnda pada bagian required untuk semua API:




Pengembangan Perangkat Mobile                           8
J.E.N.I.


Pilih bagian "Signing" dan beri tAnda "Sign Distribution" untuk mendaftarkan aplikasi
MIDlet:




Pengembangan Perangkat Mobile                                                       9
J.E.N.I.


Pilih bagian "Running" dan pilih "Execute through OTA (Over the Air Provisioning)". Hal
ini merupakan proses instalasi dan eksekusi aplikasi pada device.




Pengembangan Perangkat Mobile                                                        10
J.E.N.I.


Langkah selanjutnya adalah menjalankan aplikasi MIDlet. Pastikan build berjalan dan
tidak ada error ketika melakukan instalasi device (via OTA provisioning).




Pengembangan Perangkat Mobile                                                    11
J.E.N.I.


Untuk menjalankan aplikasi MIDlet, gunakan WMA console (Tools -> Java Platform
Manager -> J2ME Wireless Toolkit 2.2 -> Open Utilities -> WMA: Open Console -> Send
SMS...). Pilih nomor device, tentukan nomor port yang sudah ada pada PushRegistry,
masukkan pesan dan klik "Send":




Pengembangan Perangkat Mobile                                                    12
J.E.N.I.


AMS akan menerima koneksi yang datang dan menanyakan konfirmasi selanjutnya
kepada user:




Pengembangan Perangkat Mobile                                            13
J.E.N.I.


Ini adalah aplikasi MIDlet, dijalankan melalui Push Registry (melalui pesan SMS masuk):




Pengembangan Perangkat Mobile                                                        14
J.E.N.I.


Ini adalah aplikasi kita yang dijalankan melalui Push Registry (socket pada port 1234).
Untuk menjalankan aplikasi MIDlet dengan cara ini, layar console dan ketik "telnet
localhost 1234".




Pengembangan Perangkat Mobile                                                        15
J.E.N.I.


import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;


import java.io.*;
import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.io.*;


public class PushMidlet extends MIDlet implements CommandListener{
      private Command exitCommand;
      private Form form;
      private StringItem textField;
      private Display display;


      private String[] connections;


      public PushMidlet() {
           exitCommand = new Command("Exit", Command.EXIT, 1);
           textField = new StringItem("Status", "");


           form = new Form("Push via sms message");
           form.addCommand(exitCommand);
           form.append(textField);
      }


      public void startApp() {


           connections = PushRegistry.listConnections(true);


           if (connections != null && connections.length > 0){
               textField.setText(
                    "Launched via Push Registry: " + connections[0]);
           }




           display = Display.getDisplay(this);
           form.setCommandListener(this);


Pengembangan Perangkat Mobile                                           16
J.E.N.I.




           display.setCurrent(form);
      }


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


      public void commAndaction(Command c, Displayable d) {
           if (c == exitCommand) {
               notifyDestroyed();
           }
      }


      public void setText(String text){
           textField.setText(text);
      }
}




Pengembangan Perangkat Mobile                                 17
J.E.N.I.




11.4 Latihan
11.4.1 Time Midlet


Buatlah sebuah aplikasi MIDlet yang menampilkan tanggal dan waktu hari ini dan
terupdate setiap detik. Gunakan Timer untuk melakukan update dan StringItem untuk
menampilkan tanggal dan waktu.




Pengembangan Perangkat Mobile                                                  18

Weitere ähnliche Inhalte

Was ist angesagt?

Laporan praktikum modul 7 pemrogrman mobile j2me
Laporan praktikum modul 7 pemrogrman mobile j2me Laporan praktikum modul 7 pemrogrman mobile j2me
Laporan praktikum modul 7 pemrogrman mobile j2me Devi Apriansyah
 
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan SwingJeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan SwingIndividual Consultants
 
Modul 3-p3-4
Modul 3-p3-4Modul 3-p3-4
Modul 3-p3-4windryika
 
Laporan praktikum iii visual basic
Laporan praktikum iii visual basicLaporan praktikum iii visual basic
Laporan praktikum iii visual basicrahmi wahyuni
 
Laporan praktikum ii visual
Laporan praktikum ii visualLaporan praktikum ii visual
Laporan praktikum ii visualrahmi wahyuni
 
Materi java merancang aplikasi teks dan dekstop berbasis obyek
Materi java merancang aplikasi teks dan dekstop berbasis obyekMateri java merancang aplikasi teks dan dekstop berbasis obyek
Materi java merancang aplikasi teks dan dekstop berbasis obyekOmen Nayto
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Debby Ummul
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)Debby Ummul
 
Modul iii dan iv algo
Modul iii dan iv algoModul iii dan iv algo
Modul iii dan iv algoSTMIK AKAKOM
 

Was ist angesagt? (12)

01 deteksi waktu windows
01 deteksi waktu windows01 deteksi waktu windows
01 deteksi waktu windows
 
Dasar Java Mobile
Dasar Java MobileDasar Java Mobile
Dasar Java Mobile
 
Laporan praktikum modul 7 pemrogrman mobile j2me
Laporan praktikum modul 7 pemrogrman mobile j2me Laporan praktikum modul 7 pemrogrman mobile j2me
Laporan praktikum modul 7 pemrogrman mobile j2me
 
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan SwingJeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
 
Modul 3-p3-4
Modul 3-p3-4Modul 3-p3-4
Modul 3-p3-4
 
Laporan praktikum iii visual basic
Laporan praktikum iii visual basicLaporan praktikum iii visual basic
Laporan praktikum iii visual basic
 
Laporan praktikum ii visual
Laporan praktikum ii visualLaporan praktikum ii visual
Laporan praktikum ii visual
 
Materi java merancang aplikasi teks dan dekstop berbasis obyek
Materi java merancang aplikasi teks dan dekstop berbasis obyekMateri java merancang aplikasi teks dan dekstop berbasis obyek
Materi java merancang aplikasi teks dan dekstop berbasis obyek
 
Belajar Java dasar
Belajar Java dasarBelajar Java dasar
Belajar Java dasar
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
 
Modul iii dan iv algo
Modul iii dan iv algoModul iii dan iv algo
Modul iii dan iv algo
 

Andere mochten auch (8)

rubyonrails
rubyonrailsrubyonrails
rubyonrails
 
Zaal 5 david terrar yes ive got
Zaal 5 david terrar yes ive gotZaal 5 david terrar yes ive got
Zaal 5 david terrar yes ive got
 
instaling
instalinginstaling
instaling
 
11-DWR-and-JQuery
11-DWR-and-JQuery11-DWR-and-JQuery
11-DWR-and-JQuery
 
How%20to%20install%20PHP%20on%20Linux%20_%20laffers
How%20to%20install%20PHP%20on%20Linux%20_%20laffersHow%20to%20install%20PHP%20on%20Linux%20_%20laffers
How%20to%20install%20PHP%20on%20Linux%20_%20laffers
 
Tutorial
TutorialTutorial
Tutorial
 
Perl%20SYLLABUS%20PB
Perl%20SYLLABUS%20PBPerl%20SYLLABUS%20PB
Perl%20SYLLABUS%20PB
 
Sexism
SexismSexism
Sexism
 

Ähnlich wie JADWAL

JENI-J2ME-Bab11-Topik-topik Tambahan.pdf
JENI-J2ME-Bab11-Topik-topik Tambahan.pdfJENI-J2ME-Bab11-Topik-topik Tambahan.pdf
JENI-J2ME-Bab11-Topik-topik Tambahan.pdfJurnal IT
 
Jeni j2 me-bab02-memulai pemrograman mobile
Jeni j2 me-bab02-memulai pemrograman mobileJeni j2 me-bab02-memulai pemrograman mobile
Jeni j2 me-bab02-memulai pemrograman mobileUNIVERSITY Of LAMPUNG
 
JENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdf
JENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdfJENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdf
JENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdfJurnal IT
 
Pemrograman Dasar Android
Pemrograman Dasar AndroidPemrograman Dasar Android
Pemrograman Dasar AndroidAbas Djumadi
 
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104Devi Apriansyah
 
Modul3 algoritma dan pemrograman procedure dan_function
Modul3 algoritma dan pemrograman procedure dan_functionModul3 algoritma dan pemrograman procedure dan_function
Modul3 algoritma dan pemrograman procedure dan_functionPolytechnic State Semarang
 
Aplinet 1100631006
Aplinet 1100631006Aplinet 1100631006
Aplinet 1100631006yolandalala
 
Java2 micro edition_Helmi MH_1100631026
Java2 micro edition_Helmi MH_1100631026Java2 micro edition_Helmi MH_1100631026
Java2 micro edition_Helmi MH_1100631026Helmi Mahfudhatul
 
Program chatting
Program chattingProgram chatting
Program chattingAisy Cuyy
 
Praktikum ii sistem tertanam
Praktikum ii sistem tertanamPraktikum ii sistem tertanam
Praktikum ii sistem tertanamsulaiman yunus
 
Pemograman Java Visual MATERI 2 tentang EVENT HANDLER
Pemograman Java Visual MATERI 2 tentang EVENT HANDLERPemograman Java Visual MATERI 2 tentang EVENT HANDLER
Pemograman Java Visual MATERI 2 tentang EVENT HANDLERramadhani170488
 
Membuat Aplikasi Chatting Client Server Dengan Pemrograman Java
Membuat Aplikasi Chatting Client Server Dengan Pemrograman JavaMembuat Aplikasi Chatting Client Server Dengan Pemrograman Java
Membuat Aplikasi Chatting Client Server Dengan Pemrograman Javayoyomay93
 
Modul vii dan viii algo
Modul vii dan viii algoModul vii dan viii algo
Modul vii dan viii algoSTMIK AKAKOM
 
Modularisasi – function dalam c++
Modularisasi – function dalam c++Modularisasi – function dalam c++
Modularisasi – function dalam c++Akmal Fajar
 

Ähnlich wie JADWAL (20)

JENI-J2ME-Bab11-Topik-topik Tambahan.pdf
JENI-J2ME-Bab11-Topik-topik Tambahan.pdfJENI-J2ME-Bab11-Topik-topik Tambahan.pdf
JENI-J2ME-Bab11-Topik-topik Tambahan.pdf
 
pemrograman mobile
pemrograman mobilepemrograman mobile
pemrograman mobile
 
Jeni j2 me-bab02-memulai pemrograman mobile
Jeni j2 me-bab02-memulai pemrograman mobileJeni j2 me-bab02-memulai pemrograman mobile
Jeni j2 me-bab02-memulai pemrograman mobile
 
JENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdf
JENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdfJENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdf
JENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdf
 
Pemrograman Dasar Android
Pemrograman Dasar AndroidPemrograman Dasar Android
Pemrograman Dasar Android
 
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
 
J2me
J2meJ2me
J2me
 
Praktikum 10
Praktikum 10Praktikum 10
Praktikum 10
 
Modul3 algoritma dan pemrograman procedure dan_function
Modul3 algoritma dan pemrograman procedure dan_functionModul3 algoritma dan pemrograman procedure dan_function
Modul3 algoritma dan pemrograman procedure dan_function
 
Dasar java mobile
Dasar java mobileDasar java mobile
Dasar java mobile
 
Aplinet 1100631006
Aplinet 1100631006Aplinet 1100631006
Aplinet 1100631006
 
Java2 micro edition_Helmi MH_1100631026
Java2 micro edition_Helmi MH_1100631026Java2 micro edition_Helmi MH_1100631026
Java2 micro edition_Helmi MH_1100631026
 
Program chatting
Program chattingProgram chatting
Program chatting
 
Modul psb 2 j2me
Modul psb 2 j2meModul psb 2 j2me
Modul psb 2 j2me
 
Praktikum ii sistem tertanam
Praktikum ii sistem tertanamPraktikum ii sistem tertanam
Praktikum ii sistem tertanam
 
Pemograman Java Visual MATERI 2 tentang EVENT HANDLER
Pemograman Java Visual MATERI 2 tentang EVENT HANDLERPemograman Java Visual MATERI 2 tentang EVENT HANDLER
Pemograman Java Visual MATERI 2 tentang EVENT HANDLER
 
Membuat Aplikasi Chatting Client Server Dengan Pemrograman Java
Membuat Aplikasi Chatting Client Server Dengan Pemrograman JavaMembuat Aplikasi Chatting Client Server Dengan Pemrograman Java
Membuat Aplikasi Chatting Client Server Dengan Pemrograman Java
 
Modul psb 1 j2 me
Modul psb 1 j2 meModul psb 1 j2 me
Modul psb 1 j2 me
 
Modul vii dan viii algo
Modul vii dan viii algoModul vii dan viii algo
Modul vii dan viii algo
 
Modularisasi – function dalam c++
Modularisasi – function dalam c++Modularisasi – function dalam c++
Modularisasi – function dalam c++
 

Mehr von Individual Consultants

O T O M A S I P E N G A W A S R U M A H D E N G A N M E N G G U N A K A N...
O T O M A S I  P E N G A W A S  R U M A H  D E N G A N  M E N G G U N A K A N...O T O M A S I  P E N G A W A S  R U M A H  D E N G A N  M E N G G U N A K A N...
O T O M A S I P E N G A W A S R U M A H D E N G A N M E N G G U N A K A N...Individual Consultants
 
Sistem Penyadapan Intruder In The Darkness
Sistem  Penyadapan  Intruder In  The  DarknessSistem  Penyadapan  Intruder In  The  Darkness
Sistem Penyadapan Intruder In The DarknessIndividual Consultants
 
P R O S P E K T U S P E R U S A H A A N I K K I G R O U P D E N G A N C ...
P R O S P E K T U S  P E R U S A H A A N  I K K I  G R O U P  D E N G A N  C ...P R O S P E K T U S  P E R U S A H A A N  I K K I  G R O U P  D E N G A N  C ...
P R O S P E K T U S P E R U S A H A A N I K K I G R O U P D E N G A N C ...Individual Consultants
 
Jeni Web Programming Bab 16 App Case Study
Jeni Web Programming Bab 16 App Case StudyJeni Web Programming Bab 16 App Case Study
Jeni Web Programming Bab 16 App Case StudyIndividual Consultants
 
Jeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternJeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternIndividual Consultants
 
Jeni Web Programming Bab 5 Sql Dan Jdbc
Jeni Web Programming Bab 5 Sql Dan JdbcJeni Web Programming Bab 5 Sql Dan Jdbc
Jeni Web Programming Bab 5 Sql Dan JdbcIndividual Consultants
 
Jeni Web Programming Bab 10 Advanced Jsf
Jeni Web Programming Bab 10 Advanced JsfJeni Web Programming Bab 10 Advanced Jsf
Jeni Web Programming Bab 10 Advanced JsfIndividual Consultants
 
Jeni Web Programming Bab 8 Advanced Mvc
Jeni Web Programming Bab 8 Advanced MvcJeni Web Programming Bab 8 Advanced Mvc
Jeni Web Programming Bab 8 Advanced MvcIndividual Consultants
 
Jeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced ServletsJeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced ServletsIndividual Consultants
 
Jeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic ServletsJeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic ServletsIndividual Consultants
 
Jeni Web Programming Bab 1 Pengenalan Pemrograman Web
Jeni Web Programming Bab 1 Pengenalan Pemrograman WebJeni Web Programming Bab 1 Pengenalan Pemrograman Web
Jeni Web Programming Bab 1 Pengenalan Pemrograman WebIndividual Consultants
 

Mehr von Individual Consultants (20)

24602905 Karsten Nohl
24602905  Karsten  Nohl24602905  Karsten  Nohl
24602905 Karsten Nohl
 
O T O M A S I P E N G A W A S R U M A H D E N G A N M E N G G U N A K A N...
O T O M A S I  P E N G A W A S  R U M A H  D E N G A N  M E N G G U N A K A N...O T O M A S I  P E N G A W A S  R U M A H  D E N G A N  M E N G G U N A K A N...
O T O M A S I P E N G A W A S R U M A H D E N G A N M E N G G U N A K A N...
 
Sistem Penyadapan Intruder In The Darkness
Sistem  Penyadapan  Intruder In  The  DarknessSistem  Penyadapan  Intruder In  The  Darkness
Sistem Penyadapan Intruder In The Darkness
 
P R O S P E K T U S P E R U S A H A A N I K K I G R O U P D E N G A N C ...
P R O S P E K T U S  P E R U S A H A A N  I K K I  G R O U P  D E N G A N  C ...P R O S P E K T U S  P E R U S A H A A N  I K K I  G R O U P  D E N G A N  C ...
P R O S P E K T U S P E R U S A H A A N I K K I G R O U P D E N G A N C ...
 
Jeni Web Programming Cover
Jeni Web Programming CoverJeni Web Programming Cover
Jeni Web Programming Cover
 
Jeni Web Programming Bab 16 App Case Study
Jeni Web Programming Bab 16 App Case StudyJeni Web Programming Bab 16 App Case Study
Jeni Web Programming Bab 16 App Case Study
 
Jeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternJeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design Pattern
 
Jeni Web Programming Bab 5 Sql Dan Jdbc
Jeni Web Programming Bab 5 Sql Dan JdbcJeni Web Programming Bab 5 Sql Dan Jdbc
Jeni Web Programming Bab 5 Sql Dan Jdbc
 
Jeni Web Programming Bab 10 Advanced Jsf
Jeni Web Programming Bab 10 Advanced JsfJeni Web Programming Bab 10 Advanced Jsf
Jeni Web Programming Bab 10 Advanced Jsf
 
Jeni Web Programming Bab 9 Jsf
Jeni Web Programming Bab 9 JsfJeni Web Programming Bab 9 Jsf
Jeni Web Programming Bab 9 Jsf
 
Jeni Web Programming Bab 8 Advanced Mvc
Jeni Web Programming Bab 8 Advanced MvcJeni Web Programming Bab 8 Advanced Mvc
Jeni Web Programming Bab 8 Advanced Mvc
 
Jeni Web Programming Bab 7 Mvc Intro
Jeni Web Programming Bab 7 Mvc IntroJeni Web Programming Bab 7 Mvc Intro
Jeni Web Programming Bab 7 Mvc Intro
 
Jeni Web Programming Bab 4 Dasar Jsp
Jeni Web Programming Bab 4 Dasar JspJeni Web Programming Bab 4 Dasar Jsp
Jeni Web Programming Bab 4 Dasar Jsp
 
Jeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced ServletsJeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced Servlets
 
Jeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic ServletsJeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic Servlets
 
Jeni Web Programming Bab 1 Pengenalan Pemrograman Web
Jeni Web Programming Bab 1 Pengenalan Pemrograman WebJeni Web Programming Bab 1 Pengenalan Pemrograman Web
Jeni Web Programming Bab 1 Pengenalan Pemrograman Web
 
Jeni J2 Me Bab10 Optional%20 Packages
Jeni J2 Me Bab10 Optional%20 PackagesJeni J2 Me Bab10 Optional%20 Packages
Jeni J2 Me Bab10 Optional%20 Packages
 
Jeni J2 Me Bab09 Optimisasi
Jeni J2 Me Bab09 OptimisasiJeni J2 Me Bab09 Optimisasi
Jeni J2 Me Bab09 Optimisasi
 
Jeni J2 Me Bab08 Web Services
Jeni J2 Me Bab08 Web ServicesJeni J2 Me Bab08 Web Services
Jeni J2 Me Bab08 Web Services
 
Jeni J2 Me Bab07 Security
Jeni J2 Me Bab07 SecurityJeni J2 Me Bab07 Security
Jeni J2 Me Bab07 Security
 

JADWAL

  • 1. J.E.N.I. Bab 11 Topik-topik Tambahan 11.1 Tujuan Setelah menyelesaikan bab ini, siswa diharapkan mampu: • mengatur jadwal tugas menggunakan Timers • meregister koneksi yang datang pada Push Registry 11.2 Timers Timer dan TimerTasks berfungsi agar Anda bisa melakukan penjadwalan tugas pada suatu waktu. Tugas dapat juga dijadwalkan untuk diulang-ulang sampai interval tertentu. Anda dapat membuat tugas dengan menurunkan (extending) TimerTask dan mengimplement method run(). Method run() akan dieksekusi berdasarkan jadwal yang ada pada Timer. class CounterTask extends TimerTask { int counter = 0; public void run() { System.out.println("Counter: " + counter++); } } Untuk menjadwalkan sebuah tugas, buat sebuah Timer dan gunakan method schedule() yang ada pada Timer untuk menjadwalkan jalannya tugas. Setiap Timer berjalan pada bagian yang terpisah. Method schedule() memiliki beberapa bentuk. Anda dapat mengatur waktu tugas untuk mulai dengan memberikan delay dalam mililiseconds atau dengan memberikan waktu absolut (java.util.Date). Parameter ketiga pada method schedule() adalah periode pengulangan dari tugas. Jika nilai pengulangan diberikan, tugas akan dieksekusi dalam periode waktu tertentu. Timer timer = new Timer(); TimerTask task = new CounterTask(); Pengembangan Perangkat Mobile 1
  • 2. J.E.N.I. // task akan dimulai dalam 8 detik dan diulangi setiap 1 detik timer.schedule(task, 8000, 1000); Anda dapat menghentikan timer dengan menggunakan method close(). Method ini dapat menghentikan timer dan mengabaikan tugas yang dijadwalkan. Perlu Anda catat, bahwa ketika Timer dihentikan, maka tidak dapat diulangi (direstart) kembali. void schedule(TimerTask task, Long delay) Melakukan penjadwalan tugas untuk dieksekusi sesudah menentukan delay yang diinginkan (dalam milliseconds) void schedule(TimerTask task, Long delay , long period) Melakukan penjadwalan tugas untuk dieksekusi berulang-ulang, dimulai sesudah delay yang ditentukan (dalam milliseconds) void schedule(TimerTask task, Date time) Melakukan penjadwalan tugas agar dapat dieksekusi pada waktu yang ditentukan. void schedule(TimerTask task, Date time, long period) Melakukan penjadwalan tugas untuk dieksekusi berulang-ulang, dimulai pada waktu yang ditentukan. void cancel() Menghentikan timer, mengabaikan tugas yang dijadwalkan. import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import java.io.*; import java.util.Timer; import java.util.TimerTask; import java.util.Date; public class TimerMidlet extends MIDlet implements CommandListener{ private Command exitCommand; private Form form; private StringItem textField; private Display display; Pengembangan Perangkat Mobile 2
  • 3. J.E.N.I. public TimerMidlet() { exitCommand = new Command("Exit", Command.EXIT, 1); textField = new StringItem("Counter", ""); Timer timer = new Timer(); TimerTask task = new CounterTask(this); timer.schedule(task, 2000, 1000); form = new Form("Timer Test"); form.addCommand(exitCommand); form.append(textField); } public void startApp() { display = Display.getDisplay(this); form.setCommandListener(this); display.setCurrent(form); } public void pauseApp() {} public void destroyApp(boolean unconditional) { timer.cancel(); } public void commAndaction(Command c, Displayable d) { if (c == exitCommand) { destroyApp(true); notifyDestroyed(); } } public void setText(String text){ textField.setText(text); } } class CounterTask extends TimerTask { Pengembangan Perangkat Mobile 3
  • 4. J.E.N.I. int counter = 0; TimerMidlet midlet; public CounterTask(TimerMidlet midlet){ this.midlet = midlet; } public void run() { counter++; midlet.setText("" + counter); System.out.println("Counter: " + counter); } } 11.3 Push Functionality Push Registry berfungsi agar MIDlet bisa meregister koneksi yang masuk dengan Application Management Software (AMS). Jika program tidak berjalan, AMS akan mendengarkan koneksi pada alamat yang telah diregister oleh aplikasi. Hampir semua tipe koneksi didukung, termasuk ServerSocket dan MessageConnection. Anda dapat meregister koneksi yang masuk dengan Push Registry menggunakan dua cara: cara statis dengan menggunakan file application descriptor (JAD) atau dinamis selama proses runtime menggunakan PushRegistry API. Pada bab ini kita akan meregister secara statis push application kita pada application descriptor (JAD) kita. NetBeans Mobility Pack membantu kita untuk memodifikasi Application Descriptor dengan mudah termasuk pada Push Registry. Klik kanan pada Project name, selanjutnya klik Properties untuk membuka Properties Page pada project. Pengembangan Perangkat Mobile 4
  • 5. J.E.N.I. Pilih bagian Push Registry: Klik "Add" untuk meregister koneksi yang masuk: Pengembangan Perangkat Mobile 5
  • 6. J.E.N.I. Ulangi proses sebelumnya hingga semua koneksi yang masuk sudah teregister. Dalam kasus ini, kita melakukan koneksi sms pada port 8888 dan koneksi socket (socket connection) pada port 1234: Pengembangan Perangkat Mobile 6
  • 7. J.E.N.I. Pilih bagian "API Permissions": Pilih "Add" untuk menambah ijin (permission) untuk aplikasi MIDlet. Kita harus menambahkan API javax.microedition.io.PushRegistry untuk menginstall aplikasi. Kita juga harus menambahkan semua API yang digunakan oleh aplikasi: Pengembangan Perangkat Mobile 7
  • 8. J.E.N.I. Hilangkan tAnda pada bagian required untuk semua API: Pengembangan Perangkat Mobile 8
  • 9. J.E.N.I. Pilih bagian "Signing" dan beri tAnda "Sign Distribution" untuk mendaftarkan aplikasi MIDlet: Pengembangan Perangkat Mobile 9
  • 10. J.E.N.I. Pilih bagian "Running" dan pilih "Execute through OTA (Over the Air Provisioning)". Hal ini merupakan proses instalasi dan eksekusi aplikasi pada device. Pengembangan Perangkat Mobile 10
  • 11. J.E.N.I. Langkah selanjutnya adalah menjalankan aplikasi MIDlet. Pastikan build berjalan dan tidak ada error ketika melakukan instalasi device (via OTA provisioning). Pengembangan Perangkat Mobile 11
  • 12. J.E.N.I. Untuk menjalankan aplikasi MIDlet, gunakan WMA console (Tools -> Java Platform Manager -> J2ME Wireless Toolkit 2.2 -> Open Utilities -> WMA: Open Console -> Send SMS...). Pilih nomor device, tentukan nomor port yang sudah ada pada PushRegistry, masukkan pesan dan klik "Send": Pengembangan Perangkat Mobile 12
  • 13. J.E.N.I. AMS akan menerima koneksi yang datang dan menanyakan konfirmasi selanjutnya kepada user: Pengembangan Perangkat Mobile 13
  • 14. J.E.N.I. Ini adalah aplikasi MIDlet, dijalankan melalui Push Registry (melalui pesan SMS masuk): Pengembangan Perangkat Mobile 14
  • 15. J.E.N.I. Ini adalah aplikasi kita yang dijalankan melalui Push Registry (socket pada port 1234). Untuk menjalankan aplikasi MIDlet dengan cara ini, layar console dan ketik "telnet localhost 1234". Pengembangan Perangkat Mobile 15
  • 16. J.E.N.I. import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import java.io.*; import java.util.Timer; import java.util.TimerTask; import javax.microedition.io.*; public class PushMidlet extends MIDlet implements CommandListener{ private Command exitCommand; private Form form; private StringItem textField; private Display display; private String[] connections; public PushMidlet() { exitCommand = new Command("Exit", Command.EXIT, 1); textField = new StringItem("Status", ""); form = new Form("Push via sms message"); form.addCommand(exitCommand); form.append(textField); } public void startApp() { connections = PushRegistry.listConnections(true); if (connections != null && connections.length > 0){ textField.setText( "Launched via Push Registry: " + connections[0]); } display = Display.getDisplay(this); form.setCommandListener(this); Pengembangan Perangkat Mobile 16
  • 17. J.E.N.I. display.setCurrent(form); } public void pauseApp() {} public void destroyApp(boolean unconditional) {} public void commAndaction(Command c, Displayable d) { if (c == exitCommand) { notifyDestroyed(); } } public void setText(String text){ textField.setText(text); } } Pengembangan Perangkat Mobile 17
  • 18. J.E.N.I. 11.4 Latihan 11.4.1 Time Midlet Buatlah sebuah aplikasi MIDlet yang menampilkan tanggal dan waktu hari ini dan terupdate setiap detik. Gunakan Timer untuk melakukan update dan StringItem untuk menampilkan tanggal dan waktu. Pengembangan Perangkat Mobile 18