• Tidak ada hasil yang ditemukan

Hasil implementasi antar muka pengguna untuk OLAP yang sudah dirancang pada bab sebelumnya dapat dilihat sebagai berikut:

Gambar 4.37 Tampilan Halaman Login

Gambar 4.38 merupakan tampilan halaman proses login untuk masuk ke sistem. Pengguna diharuskan melakukan login menuju ke proses selanjutnya. Proses login diawali dengan pengguna mengisi field username dan password yang sesuai kemudian milih tombol “login”.

Listing program yang digunakan untuk tampilan login terdapat pada tabel 4.12.

Tabel 4.12 Listing Program untuk Halaman Login

. . . .

<body>

<div class="container">

<h1 align="center">PT. ASDP INDONESIA FERRY</h1>

<h2 align="center">Data Warehouse Pemantauan Pelayanan Operasional</h2>

<%

if (request.getParameter("action") != null && request.getParameter("action").equals("error")){

%>

<h3 align="center">Username dan Password Salah</h3>

<% } %>

<form method="post" action="Control.jsp" > <table width="400" border="0" cellspacing="0"

align="center"> <tr> <td width="50">&nbsp;</td> <td colspan="1"><span> <label>Username</label> <label></label> </span> </td> <td width="100"><span class="container2"> <input style="width:200px; height:20px" name="user" type="text" class="teks_form" />

</span></td> </tr> <tr> <td>&nbsp;</td> <td colspan="1"><span> <label>Password</label> </span> </td> <td><span class="container4"> <input style="width:200px;

height:20px" type="password" name="pass" value="" id="password"> </span>

</td> </tr> </table>

<table align ="right" width="450" border="0"> <tr> <td colspan="2">&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td colspan="2">&nbsp;</td> <td colspan="2">&nbsp;</td> <td colspan="2">&nbsp;</td> <td colspan="2">&nbsp;</td> <td colspan="2">&nbsp;</td> <td colspan="2">&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td>

<td>&nbsp;</td> <td>&nbsp;</td>

<td><input type="submit" name="login" value="Login" /></td>

<td><a href="index.jsp"><input type="reset" name="Reset" value="Batal"/></a></td> <td>&nbsp;</td> </tr> </table> <p>&nbsp;</p> <p align="left">&nbsp;</p> <p align="left">&nbsp;</p> <p>&nbsp;</p> </form> ….

Proses login mengirimkan data username dan password masukan dari admin ke file Control.jsp. Di dalam file Control.jsp, parameter

username dan password ditangkap dan diproses pada method login. Jika masukan benar maka pengguna akan masuk sebagai admin, tapi jika masukan salah proses dianggap gagal dan harus mengulangi login yang benar. Listing program untuk proses login di file Control.jsp terdapat pada tabel 4.13.

Tabel 4.13 Fungsi Login pada Control.jsp

<%

if (login.login(request.getParameter("user"), request.getParameter("pass"))) {

response.sendRedirect("form_transformasi.jsp");

} else if (request.getParameter("logout") != null && request.getParameter("logout").equals("true")) {

response.sendRedirect("index.jsp");

} else if (request.getParameter("action") != null) { if (request.getParameter("action").equals("1")) { //method runbat 1 boolean result = Tools.Tools.runBat("transfer_data.bat"); out.print(result); } } else { response.sendRedirect("index.jsp?action=error");

}

%>

Proses login mengirimkan data username dan password masukan pengguna kemudian dicocokan dengan data pengguna di database. Proses ini dilakukan oleh kelas Login.java. Listing program untuk kelas Login.java terdapat pada tabel 4.14.

Tabel 4.14 Fungsi Login pada kelas Login

public class Login {

public boolean login(String userName, String password){ // DatabaseConnector test = new DatabaseConnector(); boolean out = false;

DatabaseConnector conn = new DatabaseConnector();

try {

String query = "select * from admin";

Statement st = conn.getConnection().createStatement(); ResultSet rs = st.executeQuery(query); while(rs.next()){ System.out.println("username :" +rs.getString("username")); System.out.println("password :" +rs.getString("password")); out = true; } st.close();

} catch (Exception ex){

System.out.println("message: "+ex.getMessage()); return out;

}

if(userName == null || password == null || !(userName.equals("admin") && password.equals("1234"))) { return false; } else { return true; } } }

Jika kombinasi data username dan password sesuai dengan data pada

database maka proses login berhasil. Jika tidak maka pengguna mengulangi proses login. Gambar 4.38 merupakan tampilan pross login gagal.

Gambar 4.38 Tampilan untuk proses Login gagal

4.4.2 Halaman Menu Utama

Setelah pengguna berhasil melakukan login maka sistem akan langsung menampilkan laporan rekapitulasi produksi dan pendapatan. Halaman menu utama dapat dilihat pada gambar 4.39.

Gambar 4.39 Tampilan halaman utama

Halaman menu utama mengakses halaman LaporanRekapitulasi.jsp. Dalam halaman LaporanRekapitulasi.jsp terdapat struktur MDX yang digunakan untuk mengakses database asdpferry sehingga data diperoleh dalam bentuk multidimensi. Struktur LaporanRekapitulasi.jsp terdapat pada tabel 4.15.

Tabel 4.15 Struktur halaman LaporanRekapitulasi.jsp

select NON EMPTY {[Measures].[Produksi], [Measures].[Pendapatan]} ON COLUMNS,

NON EMPTY Hierarchize(Union(Union({([Dimensi

Lintasan.Lintasan].[Semua Lintasan], [Dimensi Kapal.Kapal].[Semua Kapal], [Dimensi Waktu.Waktu].[Semua Waktu], [Dimensi

Tiket.Tiket].[Semua Tiket])}, Crossjoin([Dimensi

Lintasan.Lintasan].[Semua Lintasan].Children, {([Dimensi

Kapal.Kapal].[Semua Kapal], [Dimensi Waktu.Waktu].[Semua Waktu], [Dimensi Tiket.Tiket].[Semua Tiket])})), Union(Crossjoin({[Dimensi

Lintasan.Lintasan].[Semua Lintasan].[AIMERE_KUPANG]},

Crossjoin([Dimensi Kapal.Kapal].[Semua Kapal].Children, {([Dimensi Waktu.Waktu].[Semua Waktu], [Dimensi Tiket.Tiket].[Semua

Tiket])})), Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[AIMERE_KUPANG]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal].[BALIBO]}, Crossjoin([Dimensi

Waktu.Waktu].[Semua Waktu].Children, {[Dimensi Tiket.Tiket].[Semua Tiket]})), Crossjoin({[Dimensi Kapal.Kapal].[Semua

Kapal].[BALIBO]}, Crossjoin([Dimensi Waktu.Waktu].[Semua Waktu].[2010].Children, {[Dimensi Tiket.Tiket].[Semua Tiket]}))))))) ON ROWS

from [Rekapitulasi_Pelayanan]

4.4.3 Halaman Menu Laporan Produksi

Halaman ini menyajikan informasi jumlah produksi tiket kapal yang terjual pada tahun 2010 dan 2011. Halaman menu laporan produksi dapat dilihat pada gambar 4.40

Halaman menu laporan produksi mengakses halaman LaporanProduksi.jsp. Dalam halaman LaporanProduksi.jsp terdapat struktur MDX yang digunakan untuk mengakses database asdpferry sehingga data diperoleh dalam bentuk multidimensi. Struktur LaporanProduksii.jsp terdapat pada tabel 4.16.

Tabel 4.16 Struktur halaman laporan Produksi.jsp

<jp:mondrianQuery id="query01" jdbcDriver="com.mysql.jdbc.Driver" jdbcUrl="jdbc:mysql://localhost/asdpferry?user=root&password=123456" catalogUri="/WEB-INF/queries/LaporanProduksi.xml">

select NON EMPTY Crossjoin({[Measures].[Produksi]}, Union({[Dimensi Tiket.Tiket].[Semua Tiket]}, [Dimensi Tiket.Tiket].[Semua

Tiket].Children)) ON COLUMNS, NON EMPTY Hierarchize(Union(Union(Union(Union(Union(Union(Union(Union(Union(Union(U nion(Union(Union(Union(Union(Union(Union(Union(Union(Union(Union(Union(Un ion(Union(Union(Union(Union(Union(Union(Union(Union(Union(Union(Union(Uni on(Union(Union(Union(Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi

Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua

Waktu].Children))), Crossjoin({[Dimensi Lintasan.Lintasan].[Semua

Lintasan].[AIMERE_KUPANG]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua

Waktu].Children)))), Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[AIMERE_WAINGAPU]}, Union(Crossjoin({[Dimensi

Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi

Waktu.Waktu].[Semua Waktu].Children)))), Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[BARANUSA_KALABAHI]},

Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua

Lintasan].[BARANUSA_LEWOLEBA]}, Union(Crossjoin({[Dimensi

Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi

Waktu.Waktu].[Semua Waktu].Children)))), Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[ENDE_KUPANG]},

Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[ENDE_WAINGAPU]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi

Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua

Lintasan].[KALABAHI_KUPANG]}, Union(Crossjoin({[Dimensi

Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi

Waktu.Waktu].[Semua Waktu].Children)))), Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[KALABAHI_BARANUSA]},

Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua

Lintasan].[KALABAHI_LEWOLEBA]}, Union(Crossjoin({[Dimensi

Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi

Waktu.Waktu].[Semua Waktu].Children)))), Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[KALABAHI_TELUKGURITA]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[KUPANG_AIMERE]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi

Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[KUPANG_ENDE]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi

Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua

Lintasan].[KALABAHI_LARANTUKA]}, Union(Crossjoin({[Dimensi

Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi

Waktu.Waktu].[Semua Waktu].Children)))), Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[KUPANG_KALABAHI]},

Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua

Lintasan].[KUPANG_LARANTUKA]}, Union(Crossjoin({[Dimensi

Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi

Waktu.Waktu].[Semua Waktu].Children)))), Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[KUPANG_LEWOLEBA]},

Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[KUPANG_ROTE]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi

Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[KUPANG_SABU]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi

Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua

Lintasan].[KUPANG_WAINGAPU]}, Union(Crossjoin({[Dimensi

Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi

Waktu.Waktu].[Semua Waktu].Children)))), Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[LARANTUKA_KALABAHI]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua

Lintasan].[LARANTUKA_KUPANG]}, Union(Crossjoin({[Dimensi

Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi

Waktu.Waktu].[Semua Waktu].Children)))), Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[LARANTUKA_LEWOLEBA]},

Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua

Lintasan].[LARANTUKA_WAIWERANG]}, Union(Crossjoin({[Dimensi

Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi

Waktu.Waktu].[Semua Waktu].Children)))), Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[WAIWERANG_LEWOLEBA]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[ROTE_KUPANG]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi

Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[SABU_KUPANG]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi

Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua

Lintasan].[LEWOLEBA_KALABAHI]}, Union(Crossjoin({[Dimensi

Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi

Waktu.Waktu].[Semua Waktu].Children)))), Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[LEWOLEBA_KUPANG]},

Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua

Lintasan].[LEWOLEBA_BARANUSA]}, Union(Crossjoin({[Dimensi

Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi

Waktu.Waktu].[Semua Waktu].Children)))), Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[LEWOLEBA_LARANTUKA]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[SABU_WAINGAPU]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi

Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua

Lintasan].[TELUKGURITA_KALABAHI]}, Union(Crossjoin({[Dimensi

Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi

Waktu.Waktu].[Semua Waktu].Children)))), Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[LEWOLEBA_WAIWERANG]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua

Lintasan].[WAINGAPU_AIMERE]}, Union(Crossjoin({[Dimensi

Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi

Waktu.Waktu].[Semua Waktu].Children)))), Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[WAINGAPU_ENDE]},

Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua

Lintasan].[WAINGAPU_KUPANG]}, Union(Crossjoin({[Dimensi

Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))), Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[WAIWERANG_LARANTUKA]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[WAINGAPU_SABU]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi

Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children))))) ON ROWS from [Laporan_Produksi]

</jp:mondrianQuery>

4.4.4 Halaman Menu Laporan Pendapatan

Halaman ini menyajikan informasi jumlah pendapatan PT. ASDP Ferry Kupang dalam penjualan tiket kapal pada tahun 2010 dan 2011. Halaman menu laporan produksi dapat dilihat pada gambar 4.41

Gambar 4.41 Tampilan halaman Laporan Pendapatan

Halaman menu laporan pendapatan mengakses halaman LaporanPendapatan.jsp. Dalam halaman laporanPendapatan.jsp terdapat

struktur MDX yang digunakan untuk mengakses database asdpferry sehingga data diperoleh dalam bentuk multidimensi. Struktur LaporanPendapatan.jsp terdapat pada tabel 4.17.

Tabel 4.17 Struktur halaman laporan Pendapatan.jsp

<jp:mondrianQuery id="query01" jdbcDriver="com.mysql.jdbc.Driver" jdbcUrl="jdbc:mysql://localhost/asdpferry?user=root&password=12345 6"

catalogUri="/WEB-INF/queries/LaporanPendapatan.xml"> select NON EMPTY Crossjoin({[Measures].[Pendapatan]}, Union({[Dimensi Tiket.Tiket].[Semua Tiket]}, [Dimensi Tiket.Tiket].[Semua Tiket].Children)) ON COLUMNS,

NON EMPTY Hierarchize(Union(Union(Union(Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan]}, Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].Children))),

Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan]}, Union(Crossjoin([Dimensi Kapal.Kapal].[Semua Kapal].Children, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin([Dimensi

Kapal.Kapal].[Semua Kapal].Children, [Dimensi Waktu.Waktu].[Semua Waktu].Children)))), Union(Crossjoin([Dimensi

Lintasan.Lintasan].[Semua Lintasan].Children,

Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, {[Dimensi Waktu.Waktu].[Semua Waktu]}), Crossjoin({[Dimensi

Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua

Waktu].Children))), Crossjoin([Dimensi Lintasan.Lintasan].[Semua Lintasan].Children, Union(Crossjoin([Dimensi Kapal.Kapal].[Semua Kapal].Children, {[Dimensi Waktu.Waktu].[Semua Waktu]}),

Crossjoin([Dimensi Kapal.Kapal].[Semua Kapal].Children, [Dimensi Waktu.Waktu].[Semua Waktu].Children))))), Crossjoin({[Dimensi Lintasan.Lintasan].[Semua Lintasan].[AIMERE_KUPANG]},

Union(Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua Waktu].[2010].Children), Crossjoin({[Dimensi Kapal.Kapal].[Semua Kapal]}, [Dimensi Waktu.Waktu].[Semua

Waktu].[2010].[January].Children))))) ON ROWS from [Laporan_Pendapatan]

</jp:mondrianQuery>

<c:set var="title01" scope="session">Laporan Pendapatan</c:set>

4.4.5 Halaman Menu Transformasi Data

Gambar 4.42 Tampilan halaman menu Transformasi Data

Pada halaman transformasi data, pengguna diberi kewenangan untuk melakukan transfer data operasional produksi dan pendapatan dengan memilih tombol “Transfer Data”. Listing program untuk implementasi halaman menu transformasi data terdapat pada tabel 4.18.

Tabel 4.18 Listing Program untuk Halaman Transformasi Data

<BODY leftMargin=0 topMargin=0 marginheight="0" marginwidth="0">

<CENTER>

<table><tr><td height="1"></td></tr></table>

<TABLE align="center" cellSpacing=0 cellPadding=0 width=700 border=0>

<TBODY> <TR>

<TD background="images/logo.JPG" width="645" height="120" class="nav" align="center"></TD>

</TR> </TBODY> </TABLE>

<TABLE cellSpacing=0 cellPadding=0 width=700 height="20" border=0> <TBODY>

<TR><TD align="right" background="images/bg1.gif"><SPAN class="txt">

</B></SPAN></TD></TR></TABLE>

<TABLE cellSpacing=0 cellPadding=0 width="700" bordercolor="#000000" border="0" height="200"> <TBODY>

<TR>

<TD width="150" height="200" vAlign=top background="images/bg_side_b.gif">

<TABLE cellSpacing=5 cellPadding=0 width="180" border=0> <TR>

<TD background="images/cel.gif" height="30"

valign="middle" align="center" class="nav"><font color="#FFFFFF" size="3"><u>MENU</u></font></TD> </TR> <TR> <TD background="images/bg_side_b.gif" height="1"></TD> </TR> <TR> <TD background="images/bottom_bar_b.gif" height="30" align="center" valign="top"><A class=nav

href="update_produk.jsp"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Rekapitulasi Pelayanan

</strong></font></A></TD> </TR> <TR> <TD background="images/bg_side_b.gif" height="1"></TD> </TR> <TR> <TD background="images/bottom_bar_b.gif" height="30" align="center" valign="top"><A class=nav

href="update_support.jsp"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Laporan Produksi</strong></font></A></TD> </TR> <TR> <TD background="images/bg_side_b.gif" height="1"></TD> </TR> <TR> <TD background="images/bottom_bar_b.gif" height="30" align="center" valign="top"><A class=nav

href="update_support.jsp"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Laporan

</TR> <TR> <TD background="images/bg_side_b.gif" height="1"></TD> </TR> <TD background="images/bottom_bar_b.gif" height="30" align="center" valign="top"><A class=nav

href="top10.jsp"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Transformasi Data</strong></font></A></TD> </TR> <TR> <TD background="images/bg_side_b.gif" height="1"></TD> </TR> <TD background="images/bottom_bar_b.gif" height="30" align="center" valign="top"><A class=nav

href="proses_apriori.jsp"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Pola Asosiasi

Kapal</strong></font></A></TD> </TR> <TR> <TD background="images/bg_side_b.gif" height="1"></TD> </TR> <TR> <TD background="images/bottom_bar_b.gif" height="30" align="center" valign="top"><A class=nav href="Control.jsp?logout=true"><font size="2" face="Arial, Helvetica, sans-

serif"><strong>Keluar</strong></font></A></TD> </TR>

<TR>

<TD bgColor=#bbbbbb><IMG height=3 alt="" src="images/spacer.gif" width=1></TD></TR>

</TABLE> </TD>

<td valign="top" background="images/bgc.gif"> <table width="100%" border="0" cellspacing="5"> <tr>

<td height="20" background="images/cel.gif"> <div align="center"><font color="#FFFFFF" size="5"><strong><font face="Arial, Helvetica, sans-serif">

Transformasi

Data</font></strong></font></div></td> </tr>

<table cellpadding="0" cellspacing="20">

<tr>

<td class="bodytext" valign="top"> <p align="justify" class="bodytext"><br> <form

action="Control.jsp?action=1" method="post">

<h4 style="font-size:12pt; color:red "></h4> <br>

<input type="button" value="Transfer Data" onclick="ambil()"/>

</form> </tr></table>

</td></TR></TBODY></TABLE>

<table cellspacing="0" width="700"> <tbody><tr>

<td width="750" height="20" background="images/bg1.gif" align="left" class="txt">&copy;

copyright by Esy &nbsp;&nbsp;All Rights Reserved</td> <td width="50%" height="20"

background="images/bg1.gif" align="right" class="txtw"><a href="#"><u>Kembali

ke Atas</u></a></td> </tr></tbody></table> </CENTER>

</BODY>

Proses transfer data operasional dilakukan dengan memanggil file Control.jsp, kemudian menjalankan method runbat untuk mengesekusi file Automatisasi_data.bat. Listing program untuk Control.jsp dapat dilihat pada tabel 4.19 dan listing program method runBat pada kelas Tools.java dapat dilihat pada tabel 4.20.

Tabel 4.19 Fungsi Transformasi pada Control.jsp

. . .

}else if (request.getParameter("action") != null) {

if (request.getParameter("action").equals("1")) { //method runbat 1 boolean result = Tools.Tools.runBat("Automatisasi_data.bat"); out.print(result); } . . .

Tabel 4.20 Method runBat pada kelas Tools.java

public static boolean runBat(String file){ boolean result = false;

try{

String path = System.getProperty("user.dir"); path = path.replace("bin", "webapps");

path = path + "/ASDP/" + file; System.out.println(path); File f = new File(path);

if (Desktop.isDesktopSupported()){ Desktop.getDesktop().open(f); }

result = true; } catch (Exception ex){

} return result;

4.4.6 Halaman Menu Aturan Asosiasi

Halaman menu perhitungan asosiasi dapat dilihat pada gambar 4.43

Gambar 4.43 Tampilan menu perhitungan asosiasi

Pada perhitungan asosiasi, pengguna diberi kewenangan untuk mengisi minimum support dan minimum confidence yang akan digunakan

dalam proses perhitungan algoritma apriori. Listing program untuk implementasi halaman menu pola asosiasi kapal terdapat pada tabel 4.21.

Tabel 4.21 Listing Program halaman pola asosiasi

---

<table cellSpacing=0 cellPadding=0 width="700" bordercolor="#000000" border="0" height="200">

<tbody> <tr>

<td width="150" height="200" vAlign=top background="images/bg_side_b.gif">

<table cellspacing=5 cellpadding="0" width="180" border="0">

<tr> <TD

background="images/cel.gif" height="30" valign="middle" align="center" class="nav"><font color="#FFFFFF"

size="3"><u>MENU</u></font></TD> </tr> <tr> <TD background="images/bg_side_b.gif" height="1"></TD> </tr> <tr> <TD

background="images/bottom_bar_b.gif" height="30" align="center" valign="top"><A class=nav

href="testpage.jsp?query=LaporanRekapitulasi"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Rekapitulasi Pelayanan </strong></font></A></TD> </tr> <tr> <TD background="images/bg_side_b.gif" height="1"></TD> </tr> <tr> <TD

background="images/bottom_bar_b.gif" height="30" align="center" valign="top"><A class=nav

href="testpage.jsp?query=LaporanProduksi"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Laporan Produksi</strong></font></A></TD> </tr> <tr> <TD background="images/bg_side_b.gif" height="1"></TD> </tr> <tr> <TD

background="images/bottom_bar_b.gif" height="30" align="center" valign="top"><A class=nav

href="testpage.jsp?query=LaporanPendapatan"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Laporan Pendapatan</strong></font></A></TD>

Dokumen terkait