BAB IV IMPLEMENTASI
Pada bab IV ini akan menjelaskan implementasi sistem.
4.1 Arsitektur Sistem
Gambar 4.1 Arsitektur Sistem
Gambar 4.1 di atas merupakan arsitektur sistem yang akan digunakan untuk pembuatan gudang data di daam penelitian tugas akhir ini. Proses
pembuatan gudang data penyakit berasal dari file-file excel atau yang bertipe .xls didapatkan dari studi kasus pada puskesmas jebed, kabupaten pemalang. Data file
yang bertipe .xls tersebut kemudian diolah agae dapat disimpan dalam satu database yaitu database penyakit yang selanjutnya akan dilakukan proses ETL
Extract, Transform, Load. Hasil yang didapat dari proses ETL akan disimpan
sebagai gudang data kemudian dilakukan proses OLAP. Melalui proses OLAP, dinas puskesmas Jebed dapat memantau jumlahpenyakit yang ada di
kabupaten Pemalang. Untuk mendukung arsitektur di atas, maka diperlukan beberapa software
dan hardware dalam pembuatannya, yaitu : 1. Dalam proses pembentukan gudang data ini akan memakai database
MySQL. 2.
Tools yang digunakan adalah Kettle-Spoon-4.1.0, Schema Workbench, Mondrian,
dan aoache-tomcat-7.0.16 3.
Spesifikasi hardware yang digunakan dalam penelitian ini adalah sebagai berikut :
Processor : IntelIntelR CoreTM i3-2330M CPU 2.20GHz 4 CPUs, ~2.2GHz
Memory: 2048MB RAM Hardisk : 500GB
Web browser : Mozilla Operating
– System : Windows 7 Ultimate 32-bit 6.1, Build 7600
4.2 Implementasi Usecase
Di dalam implementasi ini, penulis membuat pembentukan OLAP menggunakan cube terbaik dari perhitungan menggunakan Multiway Array
Aggregation. Informasi yang diperoleh dari implementasi usecase memantau
kunjungan wisatawan adalah nama penyakit yang tercatat pada puskesmas Jebed,
waktu, kelompok umur, kemudian jumlahnya. Hasil dari implementasi tersebut dapat dilihat pada gambar 4.2 di bawah ini :
Gambar 4.2 Pemantauan Data Penyakit
Implementasi dalam pembuatan cube menggunakan 6 kelas, diantaranya adalah :
Tabel 4.1 Tabel daftar kelas
No. Nama Kelas
Fungsi 1.
InputDimensi.jsp input dimensi
– dimensi untuk kemudian dikirim
ke kelas berikutnya untuk dipecah
2. PecahDimensi.jsp
mendapatkan kombinasi dan jalur dari dimensi
untuk dilakukan
perhitungan menggunakan multiway
array aggregation 3.
Coba.jsp memanggil
kelas HitungHasil.java
untuk menghitung inputan jalur
serta menyimpannya ke dalam tabel pada sql
untuk dapat ditampilkan hasilnya
4. Generate.jsp
generate hasil
perhitungan, kemudian
dibentuk menjadi file xml 5.
HitungHasil.java terdapat method untuk
perhitungan multiway
array aggregation 6.
DatabaseConnection.java pengaturan
koneksi database.
1. HitungHasil.java
Kelas ini terdapat method-method untuk dilakukannya perhitungan multiway array aggregation
. for int j = jalur.size - 1; j = 0; j-- {
int bil1; int bil2;
switch j { case 2: {
if jalur.getj.charAt0 == N { bil1 = N;
} else if jalur.getj.charAt0 == K { bil1 = K;
} else { bil1 = W;
} if jalur.getj.charAt1 == N {
bil2 = N; } else if jalur.getj.charAt1 == K {
bil2 = K; } else {
bil2 = W; }
hasil2 += bil1 bil2; break;
}
case 1: { if jalur.getj.charAt1 == N {
bil2 = Math.roundfloat N 2; } else if jalur.getj.charAt1 == K {
bil2 = Math.roundfloat K 2; } else {
bil2 = Math.roundfloat W 2; }
if jalur.getj.charAt0 == N { bil1 = N;
} else if jalur.getj.charAt0 == K { bil1 = K;
} else { bil1 = W;
} hasil2 += bil1 bil2;
break; }
case 0: { if jalur.getj.charAt0 == N {
bil1 = Math.roundfloat N 2; } else if jalur.getj.charAt0 == K {
bil1 = Math.roundfloat K 2; } else {
bil1 = Math.roundfloat W 2; }
if jalur.getj.charAt1 == N { bil2 = Math.roundfloat N 2;
} else if jalur.getj.charAt1 == K { bil2 = Math.roundfloat K 2;
} else { bil2 = Math.roundfloat W 2;
} hasil2 += bil1 bil2;
break; }
}
for int i = 0; i jalur.size; i++ { switch i {
case 0: { int bil1;
int bil2; if jalur.geti.charAt0 == N {
bil1 = N; } else if jalur.geti.charAt0 == K {
bil1 = K; } else {
bil1 = W; }
if jalur.geti.charAt1 == N { bil2 = N;
} else if jalur.geti.charAt1 == K { bil2 = K;
} else { bil2 = W;
} hasil1 += bil1 bil2;
break; }
case 1: { int bil1;
int bil2; if jalur.geti.charAt0 == N {
bil1 = Math.roundfloat N 2; } else if jalur.geti.charAt0 == K {
bil1 = Math.roundfloat K 2; } else {
bil1 = Math.roundfloat W 2; }
if jalur.geti.charAt1 == N { bil2 = N;
} else if jalur.geti.charAt1 == K { bil2 = K;
} else { bil2 = W;
} hasil1 += bil1 bil2;
break; }
case 2: { int bil1;
int bil2; if jalur.geti.charAt0 == N {
bil1 = Math.roundfloat N 2; } else if jalur.geti.charAt0 == K {
bil1 = Math.roundfloat K 2; } else {
bil1 = Math.roundfloat W 2; }
if jalur.geti.charAt1 == N { bil2 = Math.roundfloat N 2;
} else if jalur.geti.charAt1 == K { bil2 = Math.roundfloat K 2;
} else { bil2 = Math.roundfloat W 2;
} hasil1 += bil1 bil2;
break; }
} }
return hasil1; }
public static void dataint[] jumlah { N = jumlah[0];
W = jumlah[1]; K = jumlah[2];
}
try { com.penyakit.DataBaseConnection conn = new
com.penyakit.DataBaseConnection; conn.getDataBaseConnection;
String query1 = insert into simpanHasil values + pilihDimensi + , + pilihJalur + , + hasil1 + , + hasil2 + ;
Statement statement = conn.getConnection.createStatement; statement.executeUpdatequery1;
conn.getConnection.close; } catch SQLException ex {
Logger.getLoggerHitungHasil.class.getName.logLevel.SEVERE, null, ex;
}
2. DatabaseConnection.java Pada kelas ini terdapat pengaturan koneksi database yang digunakan
untuk penyimpanan data. private String jdbcURL = jdbc:mysql:localhost:3306penyakit;
private String user = root; private String password = admin;
private Connection connection; public boolean isConnected{
if connection=null return true;
else return false;
} public boolean getClosed{
ifisConnected{ try {
connection.close; connection=null;
} catch SQLException ex { }
return true; } else
return false; }
public void getDataBaseConnection { try {
Class.forNameorg.gjt.mm.mysql.Driver; connection = DriverManager.getConnectionjdbcURL, user,
password; System.out.printlnkoneksi berhasil;
} catch Exception ex { System.out.printlnmessage: + ex.getMessage;
} }
BAB V ANALISIS HASIL