• Tidak ada hasil yang ditemukan

Gambar 1. Konfigurasi Bluetooth Devices

N/A
N/A
Protected

Academic year: 2022

Membagikan "Gambar 1. Konfigurasi Bluetooth Devices"

Copied!
64
0
0

Teks penuh

(1)

1. Java 2 Second Edition .

• Software yang diperlukan :

- Java 2 Platform, J2SE SDK (Development Kit) versi j2sdk- 1_4_2_08-windows- i586-p.

- BlueCove Bluetooth Stack <http://sourceforge.net/projects/bluecove/>

nama file BlueCove-20050514.jar.

- Microsoft Bluetooth Stack, terdapat pada Windows XP service pack 2.

Jika pada komputer telah ter-install driver Bluetooth lainnya (seperti wildcomm stack), supaya untuk di uninstall.

- JDBC driver : Connector/J MySQL versi mysql-connector-java- 3.1.10. <http://www.mysql.com/ products/connector/> nama file mysql-connector-java-3.1.10-bin.jar

- File PesanTiket.java yang merupakan aplikasi server.

• Instalasi

- Konfigurasi pada Bluetooth Devices. Langkah- langkahnya yaitu

Control Panel > Bluetooth Devices > Options > Discovery > Cek Turn discovery on seperti pada gambar 1

.

Gambar 1. Konfigurasi Bluetooth Devices

(2)

Lampiran 1 : Panduan Instalasi (sambungan)

- J2SE SDK di install, setelah selesai di install lakukan konfigurasi PATH.

Langkah- langkah konfigurasi PATH pada Windows XP yaitu klik kanan ikon MyComputer > Properties > Advance > Environment Variables, kemudian pada System Variables klik New dan masukan Variable name dengan PATH serta Variable value dengan lokasi lengkap dari SDK.

Gambar 2. Konfigurasi PATH

- Masukkan file BlueCove

-20050514.jar, mysql-connector-java- 3.1.10-bin.jar

,

PesanTiket.java

dalam satu folder. Compile file PesanTiket.java dan jalankan file

PesanTiket.class

. Seperti pada gambar 3.

Gambar 3. Compile dan menjalankan aplikasi Java server.

- Jika muncul window Pesan Tiket, pilih Bluetooth menu, pilih Bluetooth

item, tekan tombol Start untuk mengawali koneksi dengan client.

(3)

2. Java 2 Micro Edition .

• Software yang diperlukan :

- Wireless Tool Kit (WTK) 2.2 <http://java.sun.com/products /sjwtoolkit/download-2_2.html> di install pada komputer, untuk compile file J2ME. Java API Bluetooth, terdapat pada telepon selular yang mendukung JSR-82.

• Compile dan Running.

- Setelah WTK 2.2 di install (diasumikan ter-install pada directory C:\WTK22), buka Ktoolbar dari start menu.

- Tekan tombol New Project.

- Masukkan BT-Ticketing pada Project Name.

- Masukkan bluetooth.client.BluetClient pada MIDlet Class Name,kemudian tekan tombol Create Project.

- Pada Setting for project “BT-Ticketing” dialog, pilih Bluetooth/OBEX for J2ME (JSR82) cek bok pada bagian Additional APIs.

- Buka file

LibraryConnect.java

, ganti alamat USB Bluetooth dongle dengan alamat USB bluetooth dongle yang dipakai.

private static final String BT_ADDRESS = "001060D08581";

pada aplikasi ini alamat USB bluetooth dongle yaitu 001060D08581. Untuk mengetahui alamat USB bluetooth dongle, Control Panel > Bluetooth Device >

Hardware > Generic Bluetooth Radio > tekan tombol Properties >

Radio Information > address. Kemudian Save.

- Masukkan semua file J2ME pada C:\WTK22\apps \BT-Ticketing\scr directory.

- Tekan tombol Build.

- Buka Project menu > Package item > Create Package item. Ini akan membuat file JAD dan JAR yang diletakkan pada directory C:\WTK22\apps \BT-Ticketing\bin.

- Pindahkan file JAR ke telepon selular dan install. Jalankan MIDlet

bersamaan dengan aplikasi server.

(4)

Lampiran 1 : Panduan Instalasi (sambungan) 3. MySQL.

• Setelah MySQL di install, buat database dengan nama

tiket

, lalu keluar.

• Ketik perintah

[Commandpromt]mysql -localhost -u root -p tiket < PesanTiket.sql

(5)

Lampiran 2:

Listing Program

(6)

Lampiran 2 : Listing Program Katalog Perpustakaan U.K. Petra

import javax.microedition.midlet.MIDlet;

import javax.microedition.lcdui.Command;

import javax.microedition.lcdui.CommandListener;

import javax.microedition.lcdui.Display;

import javax.microedition.lcdui.Displayable;

import javax.microedition.lcdui.*;

import java.io.*;

public final class LibraryClient extends MIDlet implements CommandListener {

static final int ALERT_TIMEOUT = 2000;

private final Command KELUAR_CMD = new Command("Exit",Command.EXIT,1 );

private final Command OK_CMD = new Command( "Ok", Command.SCREEN, 2 );

private final Form menu = new Form( "Bluetooth Library" );

private LibraryGUI LibraryBTClient = null;

public LibraryClient() {

menu.addCommand( KELUAR_CMD );

menu.addCommand( OK_CMD );

menu.setCommandListener( this );}

public void startApp() { show( null );}

public void pauseApp() {}

public void destroyApp( boolean unconditional ) { if ( LibraryBTClient != null ) {

LibraryBTClient.destroy();}}

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

destroyApp( true );

notifyDestroyed();}

if ( c == OK_CMD ){

LibraryBTClient = new LibraryGUI( this );}}

void show( Alert a ) { if ( a == null ){

Display.getDisplay(this).setCurrent(menu);}

else{

Display.getDisplay(this).setCurrent( a, menu );}}

Displayable getDisplayable(){

return menu;}

}

(7)

import javax.bluetooth.BluetoothStateException;

import javax.bluetooth.DataElement;

import javax.bluetooth.DeviceClass;

import javax.bluetooth.DiscoveryAgent;

import javax.bluetooth.DiscoveryListener;

import javax.bluetooth.LocalDevice;

import javax.bluetooth.RemoteDevice;

import javax.bluetooth.ServiceRecord;

import javax.bluetooth.UUID;

import javax.microedition.io.Connector;

import javax.microedition.io.StreamConnection;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.Enumeration;

import java.util.Hashtable;

import java.util.Vector;

import java.io.*;

/**

* Inisialisasi Bluetooth Device, pencarian Bluetooth Service, * login, pemesanan tiket bioskop oleh pelanggan.

*/

final class LibraryConnect implements Runnable, DiscoveryListener {

/** UUID Server */

private static final UUID LIBRARY_UUID =

new UUID( "102030405060708090A0B0C0D0E0F010", false );

/** Menyatakan bahwa program berjalan */

private static final int SIAP = 0;

/** Menyatakan bahwa pencarian bluetooth device dilakukan */

private static final int SEARCH_BT_DEVICES = 1;

/** Menyatakan bahwa pencarian bluetooth service dilakukan */

private static final int SEARCH_BT_SERVICE = 2;

private static final int LOGIN_STATE = 3;

private static final int JUDUL_STATE = 4;

private static final int SUBYEK_STATE = 5;

private static final int PENGARANG_STATE = 6;

private static final int DETAIL_JUDUL_STATE = 7;

private static final int DETAIL_SUBYEK_STATE = 8;

private static final int DETAIL_PENGARANG_STATE =9 ; private static final int STATUS_JUDUL_STATE = 10;

private static final int STATUS_SUBYEK_STATE = 11;

private static final int STATUS_PENGARANG_STATE = 12;

private static final int EMPTY_JUDUL = 13;

private static final int EMPTY_SUBYEK = 14;

private static final int EMPTY_PENGARANG = 15;

/**Kata sandi server */

private static final String AUTHENTIC = "P312PUST4K44N;";

private static final String BT_ADDRESS = "001060A8E3A9";

/** Kondisi awal dari program */

private int kondisi = SIAP;

/** Referensi discovery agent */

private DiscoveryAgent discoveryAgent = null;

/** Referensi local device ( local bluetooth manager ) */

private LocalDevice localDevice = null;

(8)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

private boolean isClosed;

/** Proses loginScreen dijalankan */

private boolean isLogin;

/** Autentikasi server */

private boolean isServer;

/** Proses pengiriman data */

private boolean isOrderCanceled;

/** Mendeteksi proses autentikasi */

private boolean AUT_PROC = true;

/** Mendeteksi proses login */

private boolean Process_Login = false;

/** Mendeteksi proses list judul */

private boolean Menu_List = false;

private boolean MENU_LIST = false;

/* Mendeteksi proses List Judul */

private boolean judul = false;

/** Mendeteksi proses List Subyek **/

private boolean subyek = false;

/** Mendeteksi proses list Pengarang **/

private boolean pengarang = false;

/** Mendeteksi Tampilan inputan */

private boolean tampilanjudul = false;

/** Mendeteksi Tampilan inputan */

private boolean tampilansubyek = false;

/** Mendeteksi Tampilan inputan */

private boolean tampilanpengarang = false;

/* Mendeteksi Tampilan Detail Judul */

private boolean detailjudul = false;

/* Mendeteksi Tampilan Detail Subyek */

private boolean detailsubyek = false;

/* Mendeteksi Tampilan Detail Pengarang */

private boolean detailpengarang = false;

/*Input status */

private boolean inputstatus = false;

/* Mendeteksi Status */

private boolean statusjudul = false;

private boolean statussubyek = false;

private boolean statuspengarang = false;

// private boolean status = false;

/* Mendeteksi Konfirmasi */

private boolean konfirmasi = false;

/** nilai proses device discovery */

private int discType;

/** service search ID */

private int[] searchIDs;

/** Proses pencarian dan pengiriman data */

private Thread thread;

/** Pengumpulan remote device selama pencarian */

private Vector devices = new Vector();

/** Pengumpulan service device selama pencarian */

private Vector Blue_Services = new Vector();

public int selectedDevice;

/** Koneksi Serial Port Profile */

private StreamConnection con = null;

private DataOutputStream out = null;

(9)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

private DataInputStream in = null;

/** */

private UUID[] uuidSet = null;

private int[] attrSet;

private String data = null;

private String[] array;

private String[] arrayBackUpTitle;

/** referensi parent */

private LibraryGUI parent;

/**

* Construct ticketing server */

LibraryConnect( LibraryGUI parent ) { this.parent = parent;

thread = new Thread( this );

thread.start();

}

public void run() {

/** Inisialisasi local device untuk mendapatkan discoveryAgent yang digunakan pada proses device, service discovery*/

boolean LbBlue_Ok = false;

try {

LocalDevice localDevice = LocalDevice.getLocalDevice();

discoveryAgent = localDevice.getDiscoveryAgent();

LbBlue_Ok = true;

}

catch( Exception e ) {

System.err.println( "Tidak dapat di inisialisasi..." );}

parent.completeInizialization( LbBlue_Ok );

if ( !LbBlue_Ok ) { return;}

uuidSet = new UUID[2];

// UUID untuk btspp, (0x300) uuid untuk koneksi RFCOM //

// LIBRARY_UUID merupakan UUID server //

uuidSet[0] = new UUID( 0x0003 );

uuidSet[1] = LIBRARY_UUID;

attrSet = new int[1];

LbBlue_Connect();}

public void deviceDiscovered( RemoteDevice remoteDevice, DeviceClass deviceClass ) {

int majorDeviceClass = deviceClass.getMajorDeviceClass();

// Beberapa Bluetooth device telah ditemukan dalam pencarian if ( devices.indexOf( remoteDevice ) == -1 ){

if ( remoteDevice.getBluetoothAddress().equals(BT_ADDRESS) &&

majorDeviceClass == 0x0100 ){

devices.addElement( remoteDevice );}}}

/** discType nilai proses device discovery */

public void inquiryCompleted( int discType ) { this.discType = discType;

synchronized( this ) {

(10)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

notify();}}

public void servicesDiscovered( int transID,ServiceRecord[]servRecord ) {

for ( int i = 0 ; i < servRecord.length ; i++ ) { Blue_Services.addElement( servRecord[i] );}}

public void serviceSearchCompleted( int transID, int respCode ) { int index = -1;

for ( int i = 0; i < searchIDs.length; i++ ) { if ( searchIDs[i] == transID ) {

index = i;

break;}}

if ( index == -1 ) {

System.err.println( "Unexpected transaction index :" + transID );

} else{

searchIDs[index] = -1;}

for ( int i = 0; i < searchIDs.length; i++ ) { if ( searchIDs[i] != -1 ) {

return;}}

synchronized( this ) { notify();}}

public ServiceRecord getFirstDiscoveredService() { if ( Blue_Services.size() > 0 )

return ( ServiceRecord ) Blue_Services.elementAt( 0 );

else

return null;}

// Mengsinkronkan pada Blue_Connect() untuk pencarian device dan service //

void searchRequest() { synchronized( this ) { notify();}}

void selectRequest() {

// selectedDevice = selcReq; //

synchronized( this ) { notify();}}

void searchCancel() { synchronized( this ) {

if ( kondisi == SEARCH_BT_DEVICES ) {

discoveryAgent.cancelInquiry( this );}

else if ( kondisi == SEARCH_BT_SERVICE ) {

for ( int i = 0; i < searchIDs.length; i++ ) {

discoveryAgent.cancelServiceSearch( searchIDs[i] );}}}}

void Send_Req( String strLogin, int i ) { synchronized( this ) {

switch ( i ) { case 0 :

Menu_List = true;

(11)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

data = strLogin;

notify();

break;

case 1 :

Menu_List = false;

judul = false;

subyek = false;

pengarang = false;

tampilanjudul = true;

tampilansubyek = false;

tampilanpengarang = false;

data = strLogin;

notify();

break;

case 2 :

Menu_List = false;

judul = false;

tampilanjudul = false;

subyek = false;

tampilansubyek = true;

pengarang = false;

tampilanpengarang = false;

data = strLogin;

notify();

break;

case 3 :

Menu_List = false;

judul = false;

tampilanjudul = false;

subyek = false;

tampilansubyek = false;

pengarang = false;

tampilanpengarang = true;

detailjudul = false;

statusjudul = false;

data = strLogin;

notify();

break;

case 4 :

Menu_List = false;

judul = false;

tampilanjudul = false;

subyek = false;

tampilansubyek = false;

pengarang = false;

tampilanpengarang = false;

detailjudul= true;

konfirmasi = false;

data = strLogin;

notify();

break;

case 5 :

Menu_List = false;

judul = false;

tampilanjudul = false;

subyek = false;

(12)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

tampilansubyek = false;

pengarang = false;

tampilanpengarang = false;

detailjudul = false;

detailsubyek = true;

statussubyek = false;

konfirmasi = false;

data = strLogin;

notify();

break;

case 6 :

Menu_List = false;

judul = false;

tampilanjudul = false;

subyek = false;

tampilansubyek = false;

pengarang = false;

tampilanpengarang = false;

detailjudul = false;

detailsubyek = false;

detailpengarang = true;

data = strLogin;

notify();

break;

case 7 :

Menu_List = false;

judul = false;

tampilanjudul = false;

subyek = false;

tampilansubyek = false;

pengarang = false;

tampilanpengarang = false;

detailjudul = false;

detailsubyek = false;

detailpengarang = false;

statusjudul = true;

data = strLogin;

notify();

break;

case 8 :

Menu_List = false;

judul = false;

tampilanjudul = false;

subyek = false;

tampilansubyek = false;

pengarang = false;

tampilanpengarang = false;

detailjudul = false;

detailsubyek = false;

detailpengarang = false;

statusjudul = false;

statussubyek = true;

data = strLogin;

notify();

break;

(13)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

case 9 :

Menu_List = false;

judul = false;

tampilanjudul = false;

subyek = false;

tampilansubyek = false;

pengarang = false;

tampilanpengarang = false;

detailjudul = false;

detailsubyek = false;

detailpengarang = false;

statusjudul = false;

statussubyek = false;

statuspengarang = true;

data = strLogin;

notify();

break;

default :

data = strLogin;

notify();

break;}}}

void destroy() {

synchronized( this ) { isClosed = true;

isOrderCanceled = true;

cleanUp();

notify();}

try {

thread.join();}

catch( InterruptedException e ) {}}

private synchronized void LbBlue_Connect() { while ( !isClosed ) {

kondisi = SIAP;

isLogin = true;

// Menunggu permintaan pencarian ( search request ) dari user try {

wait();}

catch( InterruptedException e ) {

System.err.println( "Unxepected interuption : " + e );

return;}

// Mengecek komponen telah di hilangkan if ( isClosed ) {

return;}

// Pencarian untuk bluetooth device if ( !searchDevices() ) {

return;}

else if ( devices.size() == 0 ) { continue;}

if ( !searchServices() ) { return;}

(14)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

else if ( Blue_Services.size() == 0 ) { continue;}

if ( AUT_PROC ) { data = AUTHENTIC;

AUT_PROC = false;}

Send_Data( getFirstDiscoveredService(), data );

if (!isLogin) { continue;}

if ( Process_Login ) { kondisi = LOGIN_STATE;

parent.loginScreen();}

while( true ) {

isOrderCanceled = false;

try {

wait();

}

catch( InterruptedException e ) {

System.err.println( "Unxepected interuption : " + e );

return;}

if ( Process_Login ) {

Process_Login = false;

MENU_LIST = true;}

if ( data == null ) { break;}

if ( isClosed ) { return;}

// urut urutan proes pengiriman data...//

Send_Data( getFirstDiscoveredService(), data );

if ( isClosed ) { return;}

if ( Process_Login ) { Menu_List = true;

continue;}

if ( Menu_List ) {

parent.showMessageMenu();

Menu_List = false;

continue;}

if ( judul ) {

parent.judulbuku();

tampilanjudul = true;

continue;}

if (tampilanjudul){

(15)

parent.tampilanjudul(array);

tampilanjudul = false;

tampilansubyek = false;

detailjudul = true;

statusjudul = true;

continue;}

if (detailjudul){

parent.detailbuku(array);

detailjudul = false;

statusjudul = true;

continue;}

if (statusjudul){

detailjudul = false;

parent.status(array);

statusjudul = false;

tampilanjudul = true;

continue;}

if ( subyek ){

parent.subyekbuku();

tampilansubyek = true;

continue;}

if ( tampilansubyek ) {

parent.tampilansubyek(array);

tampilansubyek = false;

detailsubyek = true;

statussubyek = true;

continue;}

if (detailsubyek){

parent.detailbuku(array);

detailsubyek = false;

statussubyek = true;

continue;}

if (statussubyek){

detailsubyek = false;

parent.status(array);

statussubyek = false;

tampilansubyek = true;

continue;}

if ( pengarang ){

parent.pengarangbuku();

tampilanpengarang = true;

continue;}

if (tampilanpengarang){

parent.tampilanpengarang(array);

tampilanpengarang = false;

detailpengarang = true;

statuspengarang = true;

continue;}

(16)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

if (detailpengarang){

parent.detailbuku(array);

detailpengarang = false;

statuspengarang = true;

continue;}

if (statuspengarang){

detailpengarang = false;

parent.status(array);

statuspengarang = false;

tampilanpengarang = true;

continue;}

if ( inputstatus ){

parent.inputstatus();

inputstatus = false;}

if ( MENU_LIST ) {

parent.showMessageMenu();

continue;}

if ( isClosed ) { return;}

if ( isOrderCanceled ) { continue;}

continue;}}}

private boolean searchDevices() {

// Proses yang dilakukan pertama kali adalah inquiry//

String[] friendlyName;

kondisi = SEARCH_BT_DEVICES;

devices.removeAllElements();

try {

discoveryAgent.startInquiry( DiscoveryAgent.GIAC, this );}

catch( BluetoothStateException bse ) { System.out.println( "Inquiry Fail" );

parent.Send_Error( "Can't start device search", SEARCH_BT_DEVICES );

return true;}

/**

* Menunggu bluetooth device ditemukan

* sampai proses inquiry complete, proses berikutnya akan dilanjutkan

try {

wait();}

catch( InterruptedException e ) {

System.err.println( "Unexpected interuption : " + e );

return false;}

if ( isClosed ) { return false;}

(17)

switch ( discType ) { case INQUIRY_ERROR :

parent.Send_Error( "Inquiry fail...", SEARCH_BT_DEVICES );

case INQUIRY_TERMINATED : devices.removeAllElements();

break;

case INQUIRY_COMPLETED : if ( devices.size() == 0 ) {

parent.Send_Error( "No Devices in range", SEARCH_BT_DEVICES );}

break;

default:

System.err.println( "system error : unexpected device discovery code: " + discType );

destroy();

return false;}

return true; }

private boolean searchServices() { kondisi = SEARCH_BT_SERVICE;

searchIDs = new int[devices.size()];

boolean isSearchStarted = false;

String[] friendlyName = new String[devices.size()];

RemoteDevice rd = null;

if ( devices.size() > 0 ) {

System.out.println( devices.size() + "Device found" );}

for ( int i = 0; i < devices.size(); i++ ) {

rd = ( RemoteDevice ) devices.elementAt( i );

try {

searchIDs[i] =discoveryAgent.searchServices( null, uuidSet, rd, this );

}catch( BluetoothStateException e ) {

System.err.println( "Cant't search services for: "

+ rd.getBluetoothAddress() + " due to " + e );

searchIDs[selectedDevice] = -1;}

isSearchStarted = true;}

if ( !isSearchStarted ) {

parent.Send_Error( "Can't search services.", SEARCH_BT_SERVICE );

return true;}

try {

wait();}

catch( InterruptedException e ) {

System.err.println( "Unexpected interuption : " + e );

return false;}

if ( isClosed ) { return false;}

(18)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

if ( Blue_Services.size() == 0 ) {

parent.Send_Error( "No proper service were found", SEARCH_BT_SERVICE );}

return true;}

//proses Pengiriman dan Penerimaan Data//

void Send_Data( ServiceRecord r, String s ) {

System.out.println( "Pesan yang dikirim : " + s );

String url = r.getConnectionURL(

ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false );

System.out.println( "url:\\" + url );

try {

con = ( StreamConnection ) Connector.open( url );

out = con.openDataOutputStream();

out.writeUTF( s );

out.flush();

out.close();

in = con.openDataInputStream();

String ackMessage = in.readUTF();

System.out.println( "Pesan ack : " + ackMessage );

if ( s.equals( ackMessage ) ) { Process_Login = true;}

else {

AUT_PROC = true;}

if ( !Process_Login ) {

string2array( ackMessage );

if ( array[0].equals( "LOGIN_INVALID" ) ) { convertData( true, LOGIN_STATE );

parent.Send_Error( "Password atau Username Salah!!!", LOGIN_STATE);}

else if ( array[0].equals( "NULL_JUDUL" ) ) { convertData( true, EMPTY_JUDUL );

parent.Send_Error( array[1], EMPTY_JUDUL);}

else if ( array[0].equals( "NULL_SUBYEK" ) ) { convertData( true, EMPTY_SUBYEK );

parent.Send_Error( array[1], EMPTY_SUBYEK);}

else if ( array[0].equals( "NULL_PENGARANG" ) ) { convertData( true, EMPTY_PENGARANG );

parent.Send_Error( array[1], EMPTY_PENGARANG);}}

cleanUp();}

catch(Exception e ) { cleanUp();

parent.failMessage( "Pesan Tidak Terkirim !!" );

e.printStackTrace();

}}

(19)

void cleanUp() { try {

if ( out != null ) { out.close();}

if (in != null ) { in.close();}

if ( con != null ) {con.close();}}

catch ( IOException e ) {}}

// Untuk memperose jika ingin kembali ke halaman sebelumnnya, Menyimpan kondisi namun dalam tampilan List//

void convertData( boolean convert, int state ) { if ( state == LOGIN_STATE ) {

Process_Login = true;

tampilansubyek = false;

pengarang = false;

tampilanpengarang = false;

detailjudul = false;

konfirmasi = false;}

if ( state == JUDUL_STATE ) { Process_Login = false;

Menu_List = false;

tampilanjudul = true;

subyek = false;

tampilansubyek = false;

pengarang = false;

tampilanpengarang = false;

detailjudul = true;

konfirmasi = false;}

if (state == SUBYEK_STATE){

Process_Login = false;

Menu_List = false;

judul = false;

tampilanjudul = false;

tampilansubyek = true;

pengarang = false;

tampilanpengarang = false;

detailsubyek = false;

konfirmasi = false;}

if ( state == PENGARANG_STATE){

Process_Login = false;

Menu_List = false;

judul = false;

tampilanjudul = false;

subyek = false;

tampilansubyek = false;

tampilanpengarang = true;

detailpengarang = false;

konfirmasi = false;}

(20)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

if ( state == DETAIL_JUDUL_STATE){

Process_Login = false;

Menu_List = false;

judul = false;

tampilanjudul = false;

subyek = false;

tampilansubyek = false;

pengarang = false;

detailjudul = true;

detailsubyek = false;

detailpengarang = false;

tampilanpengarang = false;

konfirmasi = false;}

if ( state == DETAIL_SUBYEK_STATE){

Process_Login = false;

Menu_List = false;

judul = false;

detailjudul = false;

detailsubyek = true;

detailpengarang = false;

tampilanpengarang = false;

konfirmasi = false;}

if ( state == DETAIL_PENGARANG_STATE){

Process_Login = false;

Menu_List = false;

judul = false;

tampilanjudul = false;

subyek = false;

tampilansubyek = false;

pengarang = false;

detailjudul = false;

detailsubyek = false;

detailpengarang = true;

tampilanpengarang = false;

konfirmasi = false;}

if ( state == STATUS_JUDUL_STATE ){

statusjudul = true;}}

void string2array( String sta ) { String data = sta;

int jumlahIndex = 0;

int j = 0;

for ( int i = 0; i < data.length(); i++ ) { if ( data.charAt(i) == ';' ) {

jumlahIndex++;}}

array = new String[jumlahIndex];

int k = 0;

for ( int i = 0; i < data.length(); i++ ) { if ( data.charAt(i) == ';' ) {

if ( j == 0 ){

(21)

array[j] = data.substring(0,i);

k = i + 1;

j = j + 1;

} else {

array[j] = data.substring(k,i);

k = i + 1;

j = j + 1;}}}

if ( Menu_List ) {

arrayBackUpTitle = new String[jumlahIndex];

arrayBackUpTitle = array;}}}

(22)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

import javax.microedition.midlet.MIDlet;

import javax.microedition.lcdui.*;

final class LibraryGUI implements CommandListener {

private static final int SEARCH_BT_SERVICE = 2;

private static final int LOGIN_STATE = 3;

private static final int JUDUL_STATE = 4;

private static final int SUBYEK_STATE = 5;

private static final int PENGARANG_STATE = 6;

private static final int DETAIL_JUDUL_STATE = 7;

private static final int DETAIL_SUBYEK_STATE = 8;

private static final int DETAIL_PENGARANG_STATE= 9;

private static final int STATUS_JUDUL_STATE = 10;

private static final int STATUS_SUBYEK_STATE = 11;

private static final int STATUS_PENGARANG_STATE = 12;

private final Command BACK_CMD = new Command( "Kembali", Command.SCREEN, 2 );

private final Command Login_Back_CMD = new Command( "Kembali", Command.BACK, 1 );

private final Command SEARCH_CANCEL_CMD = new Command( "Kembali", Command.BACK, 1 );

private final Command BACK_LAYANAN = new Command( "Kembali", Command.BACK, 1 );

private final Command BACK_INPUT_JUDUL = new Command( "Kembali", Command.BACK, 1 );

private final Command BACK_INPUT_SUBYEK = new Command( "Kembali", Command.BACK, 1 );

private final Command BACK_INPUT_PENGARANG = new Command(

"Kembali", Command.BACK, 1 );

private final Command BACK_DETAIL_BUKU = new Command( "Kembali", Command.BACK, 1);

private final Command BACK_INPUT_PESAN = new Command( "Kembali", Command.BACK, 1);

private final Command BACK_LIST = new Command( "Kembali", Command.BACK, 1);

private final Command BACK_LOGIN = new Command( "Kembali", Command.BACK, 1);

private final Command BACK_LOGIN1 = new Command( "Kembali", Command.BACK, 1);

private final Command BACK_DETAIL_INPUTJUDUL = new Command(

"Kembali Jdl", Command.BACK, 2);

private final Command BACK_DETAIL_INPUTSUBYEK = new Command(

"Kembali Sby", Command.BACK, 2);

private final Command BACK_DETAIL_INPUTPENGARANG = new Command(

"Kembali Pgr", Command.BACK, 2);

private final Command BACK_JUDUL_DETAIL = new Command("Kembali Jdl", Command.BACK, 2);

private final Command BACK_SUBYEK_DETAIL = new Command("Kembali Sby", Command.BACK, 2);

private final Command BACK_PENGARANG_DETAIL = new Command("Kembali Pgr", Command.BACK, 2);

private final Command CONNECT_CMD = new Command( "Koneksi", Command.BACK, 1 );

private final Command Login_Send_CMD = new Command( "Kirim", Command.SCREEN, 2 );

(23)

private final Command SELECT_MENU_CMD = new Command( "Pilih", Command.BACK, 1 );

private final Command SELECT_CMD = new Command( "Pilih", Command.SCREEN, 2 );

private final Command STATUS_BUKU = new Command("Pilih", Command.SCREEN, 2);

private final Command KONFIRMASI = new Command( "Pilih", Command.SCREEN, 2);

private final Command TAMPILAN_DETAIL_JUDUL = new Command(

"Pilih", Command.SCREEN, 2);

private final Command TAMPILAN_DETAIL_SUBYEK = new Command(

"Pilih", Command.SCREEN, 2);

private final Command TAMPILAN_DETAIL_PENGARANG = new Command(

"Pilih", Command.SCREEN, 2);

private final Command STATUS_JUDUL = new Command("Pilih", Command.SCREEN, 2);

private final Command STATUS_SUBYEK = new Command ("Pilih", Command.SCREEN, 2);

private final Command STATUS_PENGARANG = new Command ("Pilih", Command.SCREEN, 2);

private final Command DETAIL_INPUT_JUDUL = new Command( "Detail", Command.SCREEN, 2 );

private final Command DETAIL_INPUT_SUBYEK = new Command( "Detail", Command.SCREEN, 2 );

private final Command DETAIL_INPUT_PENGARANG = new Command(

"Detail", Command.SCREEN, 2 );

private final Command STATUSBUKUJUDUL = new Command ("Status", Command.SCREEN,2);

private final Command STATUSBUKUSUBYEK = new Command ("Status", Command.SCREEN,2);

private final Command STATUSBUKUPENGARANG = new Command ("Status", Command.SCREEN,2);

private final Command STATUS = new Command ("Status", Command.SCREEN, 1);

private final Command PEMESANAN = new Command( "Pesan", Command.SCREEN, 2 );

private final Command EXIT_PGRM_CMD = new Command( "Keluar", Command.SCREEN, 2 );

private final Form formMenuDisplay = new Form( "Main" );

private final Form formLoginDisplay = new Form( "Login" );

private final Form formSendData = new Form( "Pengiriman Data" );

private final Form formLayananDisplay = new Form( "Layanan");

private final Form formDisplay_judul = new Form( "Judul");

private final Form formDisplay_subyek= new Form( "Subyek");

private final Form formDisplay_pengarang = new Form( "Pengarang");

private final Form formTampilan_detail = new Form( "Detail");

private final Form formList_status = new Form( "Status Buku");

private final Form formInputStatus = new Form( "Input KNOKAT Buku

");

private List menuDisplayLibrary = null;

private List bluetoothListDisplay = null;

private List list = null;

private List formList_judul = null;

private List formList_subyek = null;

private List formList_pengarang = null;

(24)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

private List detailDisplaySubyek = null;

private List detailDisplayPengarang= null;

private List detailDisplay = null;

private Form formDisplay;

private Form formKonfirmasi;

private Form f = new Form( "Proses Pencarian" );

private String[] array;

private final TextField username = new TextField( "Username :",

"", 9, TextField.ANY );

private final TextField password = new TextField( "Password :",

"", 9, TextField.PASSWORD );

private final TextField judul = new TextField( "Masukan Judul :",

"", 50, TextField.ANY );

private final TextField subyek = new TextField( "Subyek :", "", 50, TextField.ANY );

private final TextField pengarang = new TextField( "Pengarang :",

"", 50, TextField.ANY );

private final TextField inputstatus = new TextField("No Knokat:",

"", 20,TextField.NUMERIC);

private String dataStream;

private LibraryClient parent;

private LibraryConnect bc_client;

public LibraryGUI( LibraryClient parent ) { this.parent = parent;

bc_client = new LibraryConnect( this );

//Tampilan awal//

formMenuDisplay.setTitle( "Koneksi" );

formMenuDisplay.addCommand( BACK_CMD );

formMenuDisplay.addCommand( CONNECT_CMD );

formMenuDisplay.setCommandListener( this );

//Tampilan Login //

formLoginDisplay.setTitle( "Login" );

formLoginDisplay.append( username );

formLoginDisplay.append( password );

formLoginDisplay.addCommand( Login_Back_CMD);

formLoginDisplay.addCommand( Login_Send_CMD);

formLoginDisplay.setCommandListener( this );

formSendData.setCommandListener( this );

// form masukan nama Judul //

formDisplay_judul.setTitle( "Judul" );

formDisplay_judul.append( judul );

formDisplay_judul.addCommand( BACK_LAYANAN);

formDisplay_judul.setCommandListener( this );

//form masukan nama subyek//

formDisplay_subyek.setTitle( "Subyek" );

formDisplay_subyek.append( subyek );

formDisplay_subyek.addCommand( BACK_LAYANAN);

formDisplay_subyek.setCommandListener( this );

(25)

//form masukan nama pengarang //

formDisplay_pengarang.setTitle( "Pengarang" );

formDisplay_pengarang.append( pengarang );

formDisplay_pengarang.addCommand( BACK_LAYANAN);

formDisplay_pengarang.setCommandListener( this );

//form masukan no knokat untuk mengetahui sataus//

// tidak digunakan karena sudah langsung di list judul, subyek dan pengarang//

formInputStatus.setTitle(" Status ");

formInputStatus.append( inputstatus );

formInputStatus.addCommand(BACK_LAYANAN);

formInputStatus.setCommandListener( this );

}

public void commandAction( Command c, Displayable d ) {

if ( c == CONNECT_CMD && d == formMenuDisplay ) { Form f = new Form( "Pencarian..." );

f.addCommand( SEARCH_CANCEL_CMD );

f.setCommandListener( this );

f.append( new Gauge( "Pencarian perangkat...", false, Gauge.INDEFINITE,

Gauge.CONTINUOUS_RUNNING ) );

Display.getDisplay( parent ).setCurrent( f );

bc_client.searchRequest();

return;}

if ( c == BACK_CMD ) { destroy();

parent.show( null );

return; }

if (c == BACK_LOGIN){

bc_client.Send_Req( null, 0 );

parent.show( null );

return;}

if (c == BACK_LOGIN1){

//kembali ke tampilan Login //

bc_client.convertData( true, LOGIN_STATE );

Display.getDisplay( parent ).setCurrent( formLoginDisplay );

return;}

if (c == BACK_DETAIL_INPUTJUDUL ){

// kembali ke List judul//

bc_client.convertData( true, JUDUL_STATE );

Display.getDisplay( parent ).setCurrent( formList_judul );

return;}

if (c == BACK_DETAIL_INPUTSUBYEK ){

//kembali ke list subyek //

bc_client.convertData( true, SUBYEK_STATE );

Display.getDisplay( parent ).setCurrent( formList_subyek );

return;}

(26)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

if (c == BACK_DETAIL_INPUTPENGARANG ){

//kembali ke list pengarang //

bc_client.convertData( true, PENGARANG_STATE );

Display.getDisplay(parent).setCurrent( formList_pengarang );

return;}

if (c == BACK_JUDUL_DETAIL){

bc_client.convertData (true, JUDUL_STATE);

Display.getDisplay( parent ).setCurrent (formList_judul);

return;}

if (c == BACK_SUBYEK_DETAIL){

bc_client.convertData (true, SUBYEK_STATE );

Display.getDisplay( parent ).setCurrent (formList_subyek);

return;}

if (c == BACK_PENGARANG_DETAIL){

bc_client.convertData (true, PENGARANG_STATE );

Display.getDisplay( parent ).setCurrent (formList_pengarang);

return;}

if ( c == BACK_LAYANAN){

Display.getDisplay(parent).setCurrent( menuDisplayLibrary );

return;}

if (c == BACK_INPUT_JUDUL){

bc_client.convertData( true, JUDUL_STATE );

Display.getDisplay( parent ).setCurrent( formDisplay_judul );

return;}

if (c == BACK_INPUT_SUBYEK){

bc_client.convertData( true, SUBYEK_STATE );

Display.getDisplay(parent).setCurrent( formDisplay_subyek );

return;}

if (c == BACK_INPUT_PENGARANG){

bc_client.convertData( true, PENGARANG_STATE );

Display.getDisplay( parent ).setCurrent(

formDisplay_pengarang );

return;}

if (c == BACK_LIST){

Display.getDisplay( parent ).setCurrent(

menuDisplayLibrary);

return;}

if ( c == SELECT_CMD ) {

bc_client.selectedDevice =

bluetoothListDisplay.getSelectedIndex();

bc_client.selectRequest();

return;}

if (c == BACK_DETAIL_BUKU ){

Display.getDisplay(parent).setCurrent(formTampilan_detail );

(27)

return;}

if ( c == SELECT_MENU_CMD){

switch (menuDisplayLibrary.getSelectedIndex()) { case 0:

judulbuku();

break;

case 1:

subyekbuku();

break;

default:

pengarangbuku();

break;}}

if ( c == Login_Back_CMD){

bc_client.Send_Req( null, 0 );

destroy();

parent.show( null );

return;}

if(c == TAMPILAN_DETAIL_JUDUL){

String jdl = judul.getString();

String dataPacket= "JUDUL_STATE;" + jdl + ";";

if ( jdl.equals( "" ) || jdl == null ) {

Alert a = new Alert( "Error","Inputan Judul Data Kurang !!", null, AlertType.ERROR );

a.setTimeout( LibraryClient.ALERT_TIMEOUT );

Display.getDisplay( parent ).setCurrent(

a,formDisplay_judul);

return;

} else {

formSendData.deleteAll();

formSendData.addCommand( DETAIL_INPUT_JUDUL );

formSendData.append(new Gauge("Pengiriman Data Judul",false, Gauge.INDEFINITE, Gauge.CONTINUOUS_RUNNING ) );

bc_client.Send_Req( dataPacket, 1 );

Display.getDisplay( parent ).setCurrent( formSendData );

return;}}

if(c == TAMPILAN_DETAIL_SUBYEK){

String sby = subyek.getString();

String dataPacket = "SUBYEK_STATE;" + sby + ";";

if ( sby.equals( "" ) || sby == null ) {

Alert a = new Alert( "Error","Inputan Subyek Data Kurang

!!", null, AlertType.ERROR );

a.setTimeout( LibraryClient.ALERT_TIMEOUT );

Display.getDisplay( parent ).setCurrent(

a,formDisplay_subyek);

return;

} else {

formSendData.deleteAll();

formSendData.addCommand( DETAIL_INPUT_SUBYEK );

formSendData.append( new Gauge( "Pengiriman Data

Subyek",false,Gauge.INDEFINITE,Gauge.CONTINUOUS_RUNNING ) );

bc_client.Send_Req( dataPacket, 2 );

Display.getDisplay( parent ).setCurrent( formSendData );

return;}}

(28)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

if(c == TAMPILAN_DETAIL_PENGARANG){

String pgr = pengarang.getString();

String dataPacket = "PENGARANG_STATE;" + pgr + ";";

if ( pgr.equals( "" ) || pgr == null ) {

Alert a = new Alert( "Error","Inputan Pengarang Data Kurang

!!", null, AlertType.ERROR );

a.setTimeout( LibraryClient.ALERT_TIMEOUT );

Display.getDisplay( parent).setCurrent (a,formDisplay_pengarang);

return;

} else {

formSendData.deleteAll();

formSendData.addCommand( DETAIL_INPUT_PENGARANG );

formSendData.append( new Gauge( "Pengiriman Data Pengarang", false,Gauge.INDEFINITE, Gauge.CONTINUOUS_RUNNING ) );

bc_client.Send_Req( dataPacket, 3 );

Display.getDisplay( parent ).setCurrent( formSendData );

return;}}

if (c == DETAIL_INPUT_JUDUL){

int index = formList_judul.getSelectedIndex();

String dataPacket = "DETAIL_JUDUL_STATE;" + formList_judul.getString( index ) + ";";

bc_client.Send_Req( dataPacket, 4 );

formSendData.deleteAll();

formSendData.append(new Gauge("Pengiriman Data Judul",false, Gauge.INDEFINITE, Gauge.CONTINUOUS_RUNNING ) );

Display.getDisplay( parent ).setCurrent( formSendData );

return;}

if (c == DETAIL_INPUT_SUBYEK){

int index = formList_subyek.getSelectedIndex();

String dataPacket = "DETAIL_SUBYEK_STATE;" + formList_subyek.getString( index ) + ";";

bc_client.Send_Req( dataPacket, 5 );

formSendData.deleteAll();

formSendData.append(new Gauge("Pengiriman Data

Subyek",false,Gauge.INDEFINITE,Gauge.CONTINUOUS_RUNNING ) );

Display.getDisplay( parent ).setCurrent( formSendData );

return;}

if (c == DETAIL_INPUT_PENGARANG){

int index = formList_pengarang.getSelectedIndex();

String dataPacket = "DETAIL_PENGARANG_STATE;" + formList_pengarang.getString( index ) + ";";

bc_client.Send_Req( dataPacket, 6 );

formSendData.deleteAll();

formSendData.append( new Gauge( "Pengiriman Data Penagarang", false,Gauge.INDEFINITE,

Gauge.CONTINUOUS_RUNNING ) );

Display.getDisplay( parent ).setCurrent( formSendData );

return;}

if (c == STATUSBUKUJUDUL){

int index = formList_judul.getSelectedIndex();

(29)

String dataPacket = "STATUS_JUDUL_STATE;" + formList_judul.getString( index ) + ";";

bc_client.Send_Req( dataPacket, 7);

formSendData.deleteAll();

formSendData.append(new Gauge ("Pengiriman Status", false, Gauge.INDEFINITE, Gauge.CONTINUOUS_RUNNING ) );

Display.getDisplay( parent ).setCurrent ( formSendData );

return;}

if (c == STATUSBUKUSUBYEK){

int index = formList_subyek.getSelectedIndex();

String dataPacket = "STATUS_SUBYEK_STATE;" + formList_subyek.getString( index ) + ";";

bc_client.Send_Req( dataPacket, 8);

formSendData.deleteAll();

formSendData.append(new Gauge ("Pengiriman Status", false, Gauge.INDEFINITE, Gauge.CONTINUOUS_RUNNING ) );

Display.getDisplay( parent ).setCurrent ( formSendData );

return;}

if (c == STATUSBUKUPENGARANG){

int index = formList_pengarang.getSelectedIndex();

String dataPacket = "STATUS_PENGARANG_STATE;" + formList_pengarang.getString( index ) + ";";

bc_client.Send_Req( dataPacket, 9);

formSendData.deleteAll();

formSendData.append(new Gauge ("Pengiriman Status", false, Gauge.INDEFINITE, Gauge.CONTINUOUS_RUNNING ) );

Display.getDisplay( parent ).setCurrent ( formSendData );

return;}

if (c == STATUS){

inputstatus();}

if (c == STATUS_BUKU ){

String sts = inputstatus.getString();

String dataPacket= "STATUS_STATE;" + sts + ";";

if ( sts.equals( "" ) || sts == null ) {

Alert a = new Alert( "Error","Inputan KNOKAT salah !!", null, AlertType.ERROR );

a.setTimeout( LibraryClient.ALERT_TIMEOUT );

Display.getDisplay( parent ).setCurrent( a,formInputStatus);

return;}

else {

formSendData.deleteAll();

formSendData.append(new Gauge("Pengiriman Data Status", false,Gauge.INDEFINITE, Gauge.CONTINUOUS_RUNNING ) );

bc_client.Send_Req( dataPacket, 8 );

Display.getDisplay( parent ).setCurrent( formSendData );

return;}}

if ( c == Login_Send_CMD ){

String un = username.getString();

String pswd = password.getString();

dataStream = "LOGIN_STATE;" + un + ";" + pswd + ";";

(30)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

if ( un.equals( "" ) || un == null ||

pswd == null || pswd.equals ( "" ) ) {

Send_Error( "Login tidak lengkap!!!", LOGIN_STATE );

return;

} else {

formSendData.deleteAll();

formSendData.append( new Gauge( "Pengiriman Data", false, Gauge.INDEFINITE, Gauge.CONTINUOUS_RUNNING ) );

bc_client.Send_Req( dataStream, 0 );

Display.getDisplay( parent ).setCurrent( formSendData );

return;}}

if (c == KONFIRMASI ){

Display.getDisplay( parent ).setCurrent( formKonfirmasi );

return;}

if ( c == SEARCH_CANCEL_CMD ) { bc_client.searchCancel();

Display.getDisplay( parent ).setCurrent( formMenuDisplay );

return;}}

void completeInizialization( boolean LbBlue_Ok ) { // Inisialisasi bluetooth sukses

if ( LbBlue_Ok ) {

StringItem si=new StringItem( "Siap Melakukan Koneksi...", null );

si.setLayout(StringItem.LAYOUT_CENTER|StringItem.LAYOUT_VCENTER );

formMenuDisplay.append( si );

formMenuDisplay.setTitle( "Koneksi" );

Display.getDisplay( parent ).setCurrent( formMenuDisplay );

return;}

// Terdapat kesalahan

Alert a = new Alert( "Error", "Tidak dapat menginisialisasi bluetooth",

null, AlertType.ERROR );

a.setTimeout( LibraryClient.ALERT_TIMEOUT );

Display.getDisplay( parent ).setCurrent( a, formMenuDisplay );}

void destroy(){

bc_client.destroy();}

void failMessage( String fm/*, int state */ ) {

Alert afm = new Alert( "Error", fm, null,AlertType.ERROR );

afm.setTimeout( Alert.FOREVER );

list = new List( "Error", List.IMPLICIT );

list.addCommand( BACK_CMD );

list.setCommandListener( this );

Display.getDisplay( parent ).setCurrent( afm, list );}

void showMessageMenu(){

menuDisplayLibrary = new List ("MENU LAYANAN ", List.IMPLICIT);

menuDisplayLibrary.append("1.Judul Buku",null);

menuDisplayLibrary.append("2.Subyek Buku", null);

(31)

menuDisplayLibrary.append("3.Pengarang Buku",null);

menuDisplayLibrary.addCommand(SELECT_MENU_CMD);

menuDisplayLibrary.addCommand(BACK_LOGIN1);

menuDisplayLibrary.setCommandListener(this);

Display.getDisplay( parent).setCurrent(menuDisplayLibrary);}

void judulbuku(){

formDisplay_judul.deleteAll();

formDisplay_judul.append(judul);

formDisplay_judul.addCommand(BACK_LAYANAN);

formDisplay_judul.addCommand(TAMPILAN_DETAIL_JUDUL);

formDisplay_judul.setCommandListener(this);

Display.getDisplay( parent ).setCurrent(formDisplay_judul);}

void subyekbuku(){

formDisplay_subyek.deleteAll();

formDisplay_subyek.append(subyek);

formDisplay_subyek.addCommand(BACK_LAYANAN);

formDisplay_subyek.addCommand(TAMPILAN_DETAIL_SUBYEK);

formDisplay_subyek.setCommandListener(this);

Display.getDisplay( parent).setCurrent(formDisplay_subyek);}

void pengarangbuku(){

formDisplay_pengarang.deleteAll();

formDisplay_pengarang.append(pengarang);

formDisplay_pengarang.addCommand(BACK_LAYANAN);

formDisplay_pengarang.addCommand(TAMPILAN_DETAIL_PENGARANG);

formDisplay_pengarang.setCommandListener(this);

Display.getDisplay(parent).setCurrent(formDisplay_pengarang)

;}

void tampilanjudul(String[] j){

formList_judul = new List( "List Judul", List.IMPLICIT );

for ( int i=0; i<j.length; i++ ) { formList_judul.append( j[i],null );}

formList_judul.addCommand(BACK_INPUT_JUDUL);

formList_judul.addCommand(DETAIL_INPUT_JUDUL);

formList_judul.addCommand(STATUSBUKUJUDUL);

formList_judul.setCommandListener(this);

Display.getDisplay( parent ).setCurrent(formList_judul);}

void tampilansubyek(String[] s){

formList_subyek = new List( "List Subyek", List.IMPLICIT );

for ( int i=0; i<s.length; i++ ) { formList_subyek.append( s[i],null );}

formList_subyek.addCommand(BACK_INPUT_SUBYEK);

formList_subyek.addCommand(DETAIL_INPUT_SUBYEK);

formList_subyek.addCommand(STATUSBUKUSUBYEK);

formList_subyek.setCommandListener(this);

Display.getDisplay( parent ).setCurrent(formList_subyek);

}

(32)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

void tampilanpengarang(String[] p){

formList_pengarang = new List( "List Pengarang", List.IMPLICIT );

for ( int i=0; i<p.length; i++ ) {

formList_pengarang.append( p[i],null );}

formList_pengarang.addCommand(BACK_INPUT_PENGARANG);

formList_pengarang.addCommand(DETAIL_INPUT_PENGARANG);

formList_pengarang.addCommand(STATUSBUKUPENGARANG);

formList_pengarang.setCommandListener(this);

Display.getDisplay(parent ).setCurrent(formList_pengarang);}

void detailbuku(String[] sml){

formTampilan_detail.deleteAll();

for ( int i=0; i<sml.length; i++ ) {

if(i==0) {

formTampilan_detail.append("No KNOKAT : " + sml[i]+ "\n");

}

if(i==1) {

formTampilan_detail.append("No Panggil : " + sml[i]+ "\n");

}

if(i==2) {

formTampilan_detail.append("Judul : " + sml[i]+ "\n");

}

if(i==3) {

formTampilan_detail.append("Pengarang : " + sml[i]+ "\n");

}

if(i==4) {

formTampilan_detail.append("Kota Penerbit : " + sml[i]+

"\n");

}

if(i==5) {

formTampilan_detail.append("No Induk Buku: " + sml[i]+

"\n");

}}

formTampilan_detail.append("Perpustakaan Universitas Kristen Petra\n");

formTampilan_detail.addCommand(BACK_DETAIL_INPUTJUDUL);

formTampilan_detail.addCommand(BACK_DETAIL_INPUTSUBYEK);

formTampilan_detail.addCommand(BACK_DETAIL_INPUTPENGARANG);

formTampilan_detail.setCommandListener(this);

Display.getDisplay( parent ).setCurrent(formTampilan_detail);}

void inputstatus(){

formInputStatus.deleteAll();

formInputStatus.append( inputstatus );

formInputStatus.addCommand(BACK_LAYANAN);

formInputStatus.addCommand(STATUS_BUKU);

formInputStatus.setCommandListener(this);

Display.getDisplay( parent ).setCurrent(formInputStatus);}

(33)

void status(String[] st ){

formList_status.deleteAll();

formList_status.append("\nTanggal Kembali Buku :\n" + st[0]) formList_status.append("\nInformasi :\n ");

formList_status.append("\nJika hasil Pencarian NULL_JUDUL\n");

formList_status.append("Maka Buku tersebut statusnya ADA\n");

formList_status.append("\n\nTERIMAKASIH ATAS KUNJUNGANNYA

\n");

formList_status.addCommand(BACK_JUDUL_DETAIL);

formList_status.addCommand(BACK_SUBYEK_DETAIL);

formList_status.addCommand(BACK_PENGARANG_DETAIL);

formList_status.setCommandListener(this);

Display.getDisplay( parent ).setCurrent(formList_status);}

void Send_Error( String pesan, int kondisi ) {

Alert a = new Alert("Error", pesan, null, AlertType.ERROR );

a.setTimeout( LibraryClient.ALERT_TIMEOUT );

if ( kondisi == 1 ) { f.deleteAll();

f.append( "No Bluetooth server found" );

Display.getDisplay( parent ).setCurrent( a, f );

} else if ( kondisi == 2 ) { f.deleteAll();

f.append( "No Bluetooth sevices found" );

Display.getDisplay( parent ).setCurrent( a, f );

} else if ( kondisi == LOGIN_STATE ) { formSendData.deleteAll();

formSendData.append( pesan + "\nTekan \"Kembali\" untuk ke Login Menu." );

formSendData.addCommand( BACK_LOGIN1 );

Display.getDisplay( parent ).setCurrent( a, formSendData );

} else if ( kondisi == JUDUL_STATE ) { formSendData.deleteAll();

formSendData.append( pesan + "\nTekan \"Kembali\" untuk ke Judul Menu." );

formSendData.addCommand( BACK_INPUT_JUDUL );

Display.getDisplay( parent ).setCurrent( a, formSendData );

} else if ( kondisi == SUBYEK_STATE ) { formSendData.deleteAll();

formSendData.append( pesan + "\nTekan \"Kembali\" untuk ke Subyek Menu." );

formSendData.addCommand( BACK_INPUT_SUBYEK );

Display.getDisplay( parent ).setCurrent( a, formSendData );

} else if ( kondisi == PENGARANG_STATE ) { formSendData.deleteAll();

formSendData.append( pesan + "\nPress \"Kembali\" untuk ke Pengarang Menu." );

formSendData.addCommand( BACK_INPUT_PENGARANG );

Display.getDisplay( parent ).setCurrent( a, formSendData );

} else if ( kondisi == DETAIL_JUDUL_STATE ) { formSendData.deleteAll();

formSendData.append( pesan + "\nTekan \"Kembali\" untuk ke Detail Menu." );

(34)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

formSendData.addCommand( BACK_DETAIL_INPUTJUDUL );

Display.getDisplay( parent ).setCurrent( a, formSendData );

} else if ( kondisi == DETAIL_SUBYEK_STATE ) { formSendData.deleteAll();

formSendData.append( pesan + "\nTekan \"Kembali\" untuk ke Detail Menu." );

formSendData.addCommand( BACK_DETAIL_INPUTPENGARANG );

Display.getDisplay( parent ).setCurrent( a, formSendData );

} else if ( kondisi == DETAIL_PENGARANG_STATE ) { formSendData.deleteAll();

formSendData.append( pesan + "\nTekan \"Kembali\" untuk ke pengarang Menu." );

formSendData.addCommand( BACK_DETAIL_INPUTPENGARANG );

Display.getDisplay( parent ).setCurrent( a, formSendData );

} else if ( kondisi == STATUS_JUDUL_STATE ) { formSendData.deleteAll();

formSendData.append( pesan + "\nTekan \"Kembali\" untuk ke Layanan Menu." );

formSendData.addCommand( BACK_LAYANAN);

Display.getDisplay( parent ).setCurrent( a, formSendData );

} else if ( kondisi == STATUS_SUBYEK_STATE ) { formSendData.deleteAll();

formSendData.append( pesan + "\nTekan \"Kembali\" untuk ke Layanan Menu." );

formSendData.addCommand( BACK_LAYANAN);

Display.getDisplay( parent ).setCurrent( a, formSendData );

}else if ( kondisi == STATUS_PENGARANG_STATE ) { formSendData.deleteAll();

formSendData.append( pesan + "\nTekan \"Kembali\" untuk ke Layanan Menu." );

formSendData.addCommand( BACK_LAYANAN);

Display.getDisplay( parent ).setCurrent( a, formSendData );

}}

boolean loginScreen() {

Display.getDisplay( parent ).setCurrent( formLoginDisplay );

return true;}

void StringToArray( String sta ) {

String data = sta;int jumlahIndex = 0;

int j = 0;

for ( int i = 0; i < data.length(); i++ ) { if ( data.charAt(i) == ';' ) {

jumlahIndex++;}}

array = new String[jumlahIndex];

int k = 0;

for ( int i = 0; i < data.length(); i++ ) { if ( data.charAt(i) == ';' ) {

if ( j == 0 ){

array[j] = data.substring(0,i);

k = i + 1;j = j + 1;

} else {

array[j] = data.substring(k,i);

k = i + 1; j = j + 1;}}}}

void sendScreen( boolean isSended) {

Display.getDisplay( parent ).setCurrent( formSendData );

return;}}

(35)

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.event.*;

import java.sql.*;

import java.util.Date;

import java.util.Random;

import java.util.Vector;

import java.lang.System;

import java.lang.Math;

import javax.swing.table.*;

import javax.bluetooth.*;

import javax.microedition.io.StreamConnectionNotifier;

import javax.microedition.io.StreamConnection;

import javax.microedition.io.Connector;

import java.io.*;

import java.awt.print.*;

import java.awt.geom.*;

import java.text.*;

public class Perpustakaan extends JFrame { JMenuBar menuBar;

JMenu menuSearch,menuAbout, menuLogin;

JMenuItem menuConnection,menuItemConnection,menuExit, menuAuthor, menumasukanlogin, submenumasukanlogin;

final JDesktopPane desktopPane = new JDesktopPane();

final Container container;

private Connection con;

int jumlah = 0;

String[] dataId,dataJudul,dataIdStudio;

private String[][] seatResult = new String[10][20];

public Perpustakaan() {

super( "Perpustakaan Program" );

container = getContentPane();

container.add( desktopPane );

menuBar = new JMenuBar();

setJMenuBar( menuBar );

/************************ MENU CONNECTION **********************/

menuConnection = new JMenu( "Koneksi" );

menuConnection.setMnemonic( 'K' );

menuBar.add( menuConnection );

menuItemConnection = new JMenuItem( "Bluetooth" , KeyEvent.VK_B);

menuConnection.add( menuItemConnection );

menuItemConnection.addActionListener(

new ActionListener() {

public void actionPerformed( ActionEvent e ){

logConnectionFrame lcf = new logConnectionFrame();

}});

(36)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

/********************** MENU INSERT NEW LOGIN *******************/

menuLogin = new JMenu("Perpustakaan");

menuBar.add(menuLogin);

menuLogin.setMnemonic('P');

/********************* Menu Masukan Login ***********************/

menumasukanlogin = new JMenuItem ( "Login", KeyEvent.VK_I);

menumasukanlogin.setAccelerator(KeyStroke.getKeyStroke(

KeyEvent.VK_I, ActionEvent.CTRL_MASK));

menuLogin.add(menumasukanlogin);

menumasukanlogin.addActionListener(

new ActionListener(){

public void actionPerformed( ActionEvent e ){

entryDataMahasiswa MahasiswaBaru = new entryDataMahasiswa();}});

/*********************** MENU ABOUT *****************************/

menuAbout = new JMenu( "Perihal" );

menuAbout.setMnemonic( 'P' );

menuBar.add( menuAbout );

menuAuthor = new JMenuItem( "Mahasiswa" , KeyEvent.VK_U);

menuAbout.add( menuAuthor );

menuAuthor.addActionListener(

new ActionListener() {

public void actionPerformed ( ActionEvent e ) { JOptionPane.showMessageDialog(

desktopPane,"[email protected]" );}});

JMenuItem menuPerpustakaan = new JMenuItem(

"KatalogPerpustakaan" ,KeyEvent.VK_C );

menuAbout.add( menuPerpustakaan );

menuPerpustakaan.addActionListener(

new ActionListener() {

public void actionPerformed ( ActionEvent e ) {

JOptionPane.showMessageDialog( desktopPane,"Copyright (c) 2006 Gerrid Elektro 2002" );}});

addWindowListener(new WindowAdapter() { public void windowClosing( WindowEvent e) { dispose();

System.exit(0);

}});}

class entryDataMahasiswa{

private JButton tombolAdd;

private JTextField textUsername;

private JPasswordField textPassword;

private static final int NORMAL = 0;

private static final int ADD_MAHASISWA = 1;

(37)

private int kondisi = NORMAL;

public entryDataMahasiswa(){

JInternalFrame frameMahasiswaBaru = new JInternalFrame(

"Data Username dan Password Mahasiswa", false,true,false,true);

desktopPane.add( frameMahasiswaBaru );

Container c = frameMahasiswaBaru.getContentPane();

tombolAdd = new JButton( "Add" );

getRootPane().setDefaultButton( tombolAdd );

JLabel labelUsername = new JLabel( "UserName :", SwingConstants.RIGHT );

labelUsername.setBorder(BorderFactory.createEmptyBorder(

5,5,5,5 ) );

textUsername = new JTextField( null,30 );

textUsername.setEnabled( true );

JLabel labelPassword = new JLabel( "Password : ", SwingConstants.RIGHT );

labelPassword.setBorder(BorderFactory.createEmptyBorder(

5,5,0,0 ) );

textPassword = new JPasswordField( null,15 );

// untuk menampilkan panel username dn password//

JPanel panelUsername = new JPanel( new GridLayout(

1,2,0,3));

panelUsername.add( labelUsername );

panelUsername.add( textUsername );

JPanel panelPassword = new JPanel( new GridLayout(

1,2,0,3));

panelPassword.add( labelPassword );

panelPassword.add( textPassword );

// jika dihilangkan maka tampilan untuk memasukan new login tidak tampil //

JPanel panelBawah = new JPanel( new GridLayout( 5,1 ) );

panelBawah.add( panelUsername );

panelBawah.add( panelPassword );

panelBawah.add( panelPassword );

panelBawah.setPreferredSize( new Dimension(340, 110 ) );

c.setLayout( new BorderLayout() );

JPanel panelTombol = new JPanel( new FlowLayout(

FlowLayout.CENTER,0,5 ));

panelTombol.add( tombolAdd );

c.add( panelBawah, BorderLayout.LINE_START );

c.add( panelTombol,BorderLayout.PAGE_END );

TombolHandler handler = new TombolHandler();

tombolAdd.addActionListener( handler );

frameMahasiswaBaru.addInternalFrameListener(

new InternalFrameAdapter() {

public void internalFrameOpened(InternalFrameEvent event){

menumasukanlogin.setEnabled( false );}

(38)

Lampiran 2: Listing Program Katalog Perpustakaan U.K. Petra(sambungan)

public void internalFrameClosed(InternalFrameEvent event){

menumasukanlogin.setEnabled( true );}});

frameMahasiswaBaru.pack();

int offset = 30 * desktopPane.getAllFrames().length;

frameMahasiswaBaru.setLocation( offset,offset );

frameMahasiswaBaru.setVisible( true );

frameMahasiswaBaru.show();}

protected class TombolHandler implements ActionListener { boolean tampil;

public void actionPerformed ( ActionEvent e ){

if ( e.getActionCommand() == "Add" ) { if ( textUsername.getText() == null ||

textUsername.getText().equals( "" ) ||

textPassword.getPassword() == null ||

textPassword.getPassword().equals( "" )) JOptionPane.showMessageDialog(

desktopPane,"Data Kurang Lengkap");

else {

kondisi = ADD_MAHASISWA;

cek();

if ( kondisi == NORMAL ) { mySqlInsertData();

normal();}}}}}

private void mySqlInsertData(){

con = null;

try{

int hasil;

koneksi();

if ( !con.isClosed() )

System.out.println( "Koneksi Sukses" );

String namaUser = textUsername.getText();

char[] password = textPassword.getPassword();

String passwd = new String(password);

String sqlMember = "INSERT INTO m_anggota(

FCKD_INDUK,FCNAMA_LENGKAP)" +

"VALUES( '" + namaUser + "','" + passwd + "')";

Statement stmt = con.createStatement();

hasil = stmt.executeUpdate( sqlMember );

JOptionPane.showMessageDialog( desktopPane, "Pemasukan Data Sukses");

con.close();}

catch ( Exception sqlException ) {

JOptionPane.showMessageDialog( desktopPane,

"Exception: " + sqlException.getMessage() );

System.err.println("Exception: " + sqlException.getMessage());}}

private void cek(){

if ( kondisi == ADD_MAHASISWA) {

Gambar

Gambar 2. Konfigurasi PATH
Gambar 4.1. Blok Diagram Akses Database Perpustakaan Universitas Kristen  Petra.
Gambar  6.1 Arsitektur Bluetooth

Referensi

Dokumen terkait

Peneliti terlibat dalam proses pembentukan dan pembinaan Laskar Pencerah dari tahun 2013 sampai 2016, metode pembelajaran kreatif digunakan untuk me- nyediakan pengetahuan

Faktor Pendukung dan Penghambat Ketua Umum HMI Komisariat Dakwah IAIN Raden Intan Lampung dalam Meningkatkan Prestasi Akademik Kader. Setiap pemimpin pasti mempunyai

kawasan agropolitan, PDRB sub sektor peternakan mengalami peningkatan dari tahun ketahun, harga produk yang relatif stabil terbukanya pasar lokal dan regional

Tutkimuksen mielenterveys- ja päihdeongelmaisten tukiasumisesta tulosten mukaan monet kyselyyn vastanneista olivat tyytyväisiä siitä, että heille on ylipäätään järjestynyt

Hasil penelitian ini secara empiris berbeda dari hasil penelitian sebelumnya yang dilakukan oleh Sumarni (2011) pada variabel turnover intention dan kinerja

Menurut Sastra (2006) masalah perumahan dan permukiman tidak dapat dilihat sebagai permasalahan fisik semata, namun sangat berhubungan dengan aspek sosial, ekonomi

[r]

 Jika dua sisi dari suatu segitiga tidak sama, maka sudut yang berhadapan. dengan sisi ini tidak sama, dan sudut terkecil berhadapan dengan