Arsitektur Sistem Implementasi Usecase

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