• Tidak ada hasil yang ditemukan

BAB IV IMPLEMENTASI SISTEM

4.3 Implementasi Program

4.3.1 Aplikasi Server

4.3.1.3 Pembuatan Web Service

Web Service sebagai penyedia layanan pencarian informasi jadwal penerbangan yang dibangun memiliki 2 fungsi yang nantinya akan diakses oleh aplikasi client guna mendapatkan informasi jadwal penerbangan yang diinginkan. Kedua fungsi tersebut adalah sebagai berikut :

a. Fungsi getKategori

Fungsi ini digunakan untuk melayani permintaan data untuk memperoleh data dari database yang akan digunakan untuk melakukan pencarian jadwal penerbangan berdasarkan kategori yang dikirimkan aplikasi mobile client sebelumnya. Ketika pertama kali aplikasi mobile phone mengakses Web Service informasi jadwal penerbangan, fungsi inilah yang akan diakses pertama kali oleh aplikasi mobile phone. Fungsi ini akan memberikan data yang akan digunakan oleh pengguna untuk mendapatkan data yang nantinya digunakan untuk mendapatkan informasi jadwal penerbangan yang diinginkan berdasarkan kategori

yang telah dipilih sebelumnyanya. Ketika aplikasi mobile phone mengakses fungsi ini, maka fungsi ini akan melakukan proses SELECT pada tabel Jadwal untuk mengambil data berdasarkan kategori yang dikirimkan. Ada 3 buah kategori yang disediakan oleh aplikasi mobile phone, yaitu :

a. Kategori Tujuan

SELECT Tujuan FROM Jadwal GROUP BY Tujuan ORDER BY Tujuan

b. Kategori Maskapai

SELECT Maskapai_Penerbangan FROM Pesawat WHERE Kode_Pesawat IN (SELECT j.Kode_Pesawat FROM Jadwal j) GROUP BY Maskapai_Penerbangan

c. Kategori Jam

SELECT Jam FROM Jadwal GROUP BY Jam ORDER BY Jam

Listing program fungsi getKategori pada proses implementasi di komputer personal adalah sebagai berikut :

public ScheduleInfo[] getKategori(String kategori) throws java.rmi.RemoteException { ArrayList daftarData = new ArrayList();

ResultSet tujuan, maskapai, jam; if (kategori.equals("Tujuan")) { try

{ tujuan = kategoriTujuan.executeQuery(); while ( tujuan.next())

{ ScheduleInfo daftarTujuan = new ScheduleInfo(); daftarTujuan.setTujuan(tujuan.getString("Tujuan")); daftarData.add(daftarTujuan); } } … } else if (kategori.equals("Maskapai")) { try { maskapai = kategoriMaskapai.executeQuery(); while (maskapai.next())

{ ScheduleInfo daftarMaskapai = new ScheduleInfo();

daftarMaskapai.setMaskapaiPenerbangan(maskapai.getString ("Maskapai_Penerbangan")); daftarData.add(daftarMaskapai); } } … }

else if (kategori.equals("Jam")) { try

{ jam = kategoriJam.executeQuery(); while(jam.next())

{ ScheduleInfo daftarJam = new ScheduleInfo(); daftarJam.setJam(jam.getString("Jam")); daftarData.add(daftarJam);

} } … }

ScheduleInfo[] hasilData = (ScheduleInfo[]) (daftarData.toArray(new ScheduleInfo[0])); return hasilData; }

Listing program fungsi getKategori pada proses implementasi di komputer server sama dengan listing program fungsi getKategori pada proses implementasi di komputer personal. Hanya ada beberapa bagian yang berbeda karena versi netbeans yang digunakan berbeda. Perbedaan yang ada dalam listing programa fungsi getJadwal adalah sebagai berikut :

@WebMethod

public ScheduleInfo[] getKategori(@WebParam(name = "kategori") String kategori) { …

if (kategori.equals("Tujuan")) { …

while ( tujuan.next())

{ ScheduleInfo daftarTujuan = new ScheduleInfo(); } } else if (kategori.equals("Maskapai")) { … while (maskapai.next())

{ ScheduleInfo daftarMaskapai = new ScheduleInfo(); } } else if (kategori.equals("Jam")) { … while(jam.next())

{ ScheduleInfo daftarJam = new ScheduleInfo();

} }

ScheduleInfo[] hasilData = (ScheduleInfo[]) (daftarData.toArray(new ScheduleInfo[0])); return hasilData;

b. Fungsi getJadwal

Fungsi ini digunakan untuk melayani permintaan data informasi jadwal penerbangan berdasarkan data kategori pencarian yang telah dipilih sebelumnya. Ketika aplikasi mobile client meminta layanan pencarian data jadwal penerbangan, aplikasi mobile client akan mengakses fungsi ini dan mengirimkan data dari kategori pencarian yang telah dipilih. Fungsi ini akan melakukan proses sql yaitu SELECT ke tabel yang ada dalam database flight yaitu tabel jadwal, guna mengambil data jadwal penerbangan yang sesuai berdasarkan data yang dikirimkan oleh aplikasi mobile client.

Listing program fungsi getJadwal pada proses implementasi di komputer personal adalah sebagai berikut :

public ScheduleInfo[] getJadwal(String kategori, String masukan) throws java.rmi.RemoteException

{ ArrayList returnedData = new ArrayList(); ResultSet results, resultsTujuan, resultsJam; if (kategori.equals("Maskapai")) {try { scheduleInfoStatement.setString(1,masukan); results = scheduleInfoStatement.executeQuery(); else {do

{ ScheduleInfo details = new ScheduleInfo(); details.setMaskapaiPenerbangan( results.getString("Maskapai_Penerbangan") ); details.setKodeJadwal(results.getString("Kode_Jadwal") ); details.setKodePesawat(results.getString("Kode_Pesawat") ); details.setNoPenerbangan(results.getString("No_Penerbangan") ); details.setTujuan(results.getString("Tujuan") ); details.setHari(results.getString("Hari") ); details.setJam(results.getString("Jam") ); returnedData.add(details); } while (results.next()); } } } else if (kategori.equals("Tujuan")) { try { scheduleInfoStatementTujuan.setString(1,masukan);

resultsTujuan = scheduleInfoStatementTujuan.executeQuery();

else { do

{ ScheduleInfo details = new ScheduleInfo();

details.setKodeJadwal(resultsTujuan.getString("Kode_Jadwal") ); details.setKodePesawat(resultsTujuan.getString("Kode_Pesawat") ); details.setNoPenerbangan(resultsTujuan.getString("No_Penerbangan") ); details.setTujuan(resultsTujuan.getString("Tujuan") ); details.setHari(resultsTujuan.getString("Hari") ); details.setJam(resultsTujuan.getString("Jam") ); details.setMaskapaiPenerbangan( resultsTujuan.getString("Maskapai_Penerbangan") ); returnedData.add(details); } while (resultsTujuan.next()); } } } else if (kategori.equals("Jam")) { try { scheduleInfoStatementJam.setString(1,masukan); resultsJam = scheduleInfoStatementJam.executeQuery(); else { do

{ ScheduleInfo details = new ScheduleInfo();

details.setMaskapaiPenerbangan(resultsJam.getString ("Maskapai_Penerbangan")); details.setKodeJadwal(resultsJam.getString("Kode_Jadwal") ); details.setKodePesawat(resultsJam.getString("Kode_Pesawat") ); details.setNoPenerbangan(resultsJam.getString("No_Penerbangan")); details.setTujuan(resultsJam.getString("Tujuan") ); details.setHari(resultsJam.getString("Hari") ); details.setJam(resultsJam.getString("Jam") ); returnedData.add(details); } while (resultsJam.next()); } } }

ScheduleInfo[] jadwal = (ScheduleInfo[]) (returnedData.toArray(new ScheduleInfo[0])); return jadwal;

}

Listing program fungsi getJadwal pada proses implementasi di komputer server pada dasarnya adalah sama dengan listing program fungsi getJadwal pada proses implementasi di komputer personal. Hanya ada beberapa bagian yang

berbeda karena versi netbeans yang digunakan berbeda. Perbedaan yang ada dalam listing programa fungsi getJadwal adalah sebagai berikut :

@WebMethod

public ScheduleInfo[] getJadwal(@WebParam(name = "kategori") String kategori, @WebParam(name = "masukan") String masukan)

{ …

if (kategori.equals("Maskapai")) { …

while ( results.next())

{ ScheduleInfo details = new ScheduleInfo(); } } else if (kategori.equals("Tujuan")) { … while (resultsTujuan.next())

{ ScheduleInfo details = new ScheduleInfo(); } } else if (kategori.equals("Jam")) { … while (resultsJam.next())

{ ScheduleInfo details = new ScheduleInfo();

} }

ScheduleInfo[] jadwal = (ScheduleInfo[]) (returnedData.toArray(new ScheduleInfo[0])); return jadwal;

}

Setelah semua fungsi yang diperlukan selesai dibuat, maka Web Service harus di-deploy ke J2EE server yang digunakan pada personal computer, yaitu Sun Java System Application Server 8.2. Setelah proses deploy aplikasi selesai dilakukan, maka Web Service telah dapat diakses. Halaman WSDL dari Web Service yang telah di-deploy dapat dilihat melalui web browser. Gambar 4.1 menunjukkan halaman WSDL dari informasi jadwal penerbangan Web Service.

Gambar 4.1 Halaman WSDL dari Implementasi Web Service pada Komputer Personal

Gambar 4.2 Halaman WSDL Dari Web Service pada implementasi di komputer server

Setelah Web Service sukses dijalankan, hal selanjutnya yang dilakukan adalah melakukan pengetesan terhadap fungsi Web Service. Pengetesan terhadap fungsi dalam Web Service dilakukan dengan menggunakan fasilitas test operation Web Service yang disediakan oleh Netbeans 5.0 maupun Netbeans 5.5. Adapun proses pengetesan fungsi Web Service tersebut adalah sebagai berikut :

1. Pada Impelementasi Di Komputer Personal (dengan Netbeans 5.0 ) a. getKategori

b. getJadwal

Gambar 4.4 Halaman hasil pengetesan fungsi getJadwal di komputer personal

2. Pada Implementasi Di Komputer Server (dengan Netbeans 5.5 )

Gambar 4.5 Halaman pengetesan fungsi-fungsi Web Service pada implementasi di komputer server

a. getKategori

Gambar 4.6 Halaman pengetesan fungsi getKategori di komputer server

a. getJadwal

Dokumen terkait