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