Hirarki Pemrosesan Efisien OLAP

3.5. Pemrosesan Efisien OLAP

Query Menggunakan Cuboid Langkah yang dilakukan dalam melakukan efisiensi pemrosesan OLAP query dengan menggunakan cuboid adalah : 1. Membentuk hirarki untuk setiap dimensi yang digunakan. Hirarki yang digunakan dalam penelitian ini dibentuk berdasarkan jumlah atribut yang berbeda. 2. Menggunakan bantuan hirarki, menentukan cuboid-cuboid yang mungkin untuk melakukan query. Berikut ini penjelasan detail dari kedua tahap tersebut.

3.5.1. Hirarki

Gambar 3.5 ini merupakan hasil pembentukan hirarki menggunakan tiga dimensi yaitu dimensi nama penyakit, dimensi kelompok umur, dan dimensi waktu. Hirarki tersebut dibentuk berdasarkan pada jumlah atribut yang berbeda. Semakin luar level hirarki maka semakin mungkin cuboid tersebut dipilih. Hal tersebut dikarenakan jika melakukan query maka tidak perlu melakukan query terlalu dan jumlah level terluar memiliki jumlah row yang paling sedikit. Hirarki pada Gambar 3.5 digunakan untuk membantu dalam menentukan cuboid-cuboid yang mungkin. Gambar 3. 5 Hirarki yang terbentuk 3.5.2. Cuboid Pada Query I dan Query II Pemilihan cuboid yang tepat jika cuboid tersebut memiliki kriteria: 1. Bukan merupakan data yang umum. 2. Memiliki level yang baik, ditentukan dengan menggunakan hirarki. 3. Sesuai dengan tujuan query. Didalam penelitian ini menggunakan dua contoh query . Query I merupakan query yang digunakan untuk melihat data rekap tahunan, sedangkan untuk query II digunakan untuk melihat data rekap penyakit setiap bulannya. Selain menggunakan query yang dipilih berdasarkan cuboid tertentu, juga menggunakan query biasa atau query tanpa dipilih menggunakan cuboid. Untuk memudahkan penamaan query maka digunakan istilah a. Query efisien Qef yang dipilih menggunakan cuboid yang paling baik. b. Query biasaQb atau query yang tidak dipilih menggunakan cuboid . c. Query Pembanding Qp1, Qp2, ...., Qn merupakan query yang terbentuk berdasarkan cuboid yang mungkin, namun bukan cuboid yang paling tepat. Qb digunakan untuk membuktikan apakah Qef merupakan query yang tercepat. 3.5.2.1. Query I Query ini yang digunakan untuk melihat data rekap tahunan. Pada query I terdapat query biasa dan query yang dipilih menggunakan cuboid. Berikut ini adalah query biasa untuk query I, query biasa merupakan query yang bukan didapat dari cuboid yang mungkin Qb juga merupakan query yang memenuhi tujuan dilakukannya query I yakni melihat data rekap tahunan. Tabel 3. 9 Qb pada query I select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {[Waktu].[Semua Waktu], [Nama Penyakit].[Semua Penyakit],[Kelompok Umur].[Semua Kelompok Umur]} ON ROWS from [penyakit] Sebelum melakukan query digudang data, maka dengan tujuan query yang sama yaitu melihat data penyakit dengan ICD_X= A15 yaitu penyakit TB Paru BTA + di tahun 2010 tentukan terlebih dahulu cuboid yang mungkin. Tujuannya adalah agar mendapatkan query yang efisien dengan waktu akses cepat untuk melihat data data penyakit dengan ICD_X= A15 yaitu penyakit TB Paru BTA + di tahun 2010. Tabel 3. 10 Cuboid yang mungkin pada query I Tujuan query I Cuboid yang mungkin Melihat data penyakit dengan ICD_X= A15 yaitu penyakit TB Paru BTA + di tahun 2010 Cuboid 1 : {Kelompok umur} where ICD- X=A15 and nama penyakit= TB Paru BTA + and tahun=2010 Cuboid 2 : {ICD-X, Kelompok umur } where ICD-X=A15 and nama penyakit= TB Paru BTA + and tahun=2010 Cuboid 3 : { Kelompok umur, tahun } where ICD-X=A15 and nama penyakit= TB Paru BTA + and tahun=2010 Berdasarkan cuboid-cuboid yang mungkin pada query I maka didapat cuboid 1 merupakan cuboid yang paling tepat digunakan untuk melakukan query. Hal ini dikarenakan jika melakukan pemrosesan query menggunakan cuboid 1 maka tidak perlu mengambil banyak row karena pada cuboid 1 hanya terdapat kelompok umur. Berikut ini ditampilkan query yang terbentuk dari masing-masing cuboid. Tabel 3. 11 Query yang digunakan pada query I Jenis query Cuboid yang mungkin OLAP Query Qef Cuboid 1 : {Kelompok umur} where ICD-X=A15 and nama penyakit= TB Paru BTA + and tahun=2010 select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {[Kelompok Umur].[Semua Kelompok Umur]} ON ROWS from [penyakit] where {[Nama Penyakit].[Semua Penyakit].[A15].[TB Paru BTA +], [Waktu].[Semua Waktu].[2010]} Qp1 Cuboid 2 : {ICD-X, Kelompok umur } where ICD-X=A15 and nama penyakit= TB Paru BTA + and tahun=2010 with member [Nama Penyakit].[Semua Penyakit] as Aggregate{[Nama Penyakit].[Semua Penyakit]} select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {[Kelompok Umur].[Semua Kelompok Umur]} ON ROWS from [penyakit] where {[Nama Penyakit].[Semua Penyakit].[A15].[TB Paru BTA +], [Waktu].[Semua Waktu].[2010]} Qp2 Cuboid 3 : { Kelompok umur, tahun } where ICD- X=A15 and nama penyakit= TB Paru BTA + and tahun=2010 with member [Waktu].[Semua Waktu] as Aggregate{[Waktu].[Semua Waktu]} select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {[Kelompok Umur].[Semua Kelompok Umur]} ON ROWS from [penyakit] where {[Nama Penyakit].[Semua Penyakit].[A15].[TB Paru BTA +], [Waktu].[Semua Waktu].[2010]} Qb select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {[Waktu].[Semua Waktu], [Nama Penyakit].[Semua Penyakit],[Kelompok Umur].[Semua Kelompok Umur]} ON ROWS from [penyakit] 3.5.2.2. Query II Pada query II juga memiliki query biasa dan query yang dipilih menggunakan cuboid. Berikut ini adalah query biasa untuk query II. Tabel 3. 12 Qb pada query II select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {[Waktu].[Semua Waktu], [Nama Penyakit].[Semua Penyakit],[Kelompok Umur].[Semua Kelompok Umur]} ON ROWS from [penyakit] Sebelum melakukan query digudang data, maka dengan tujuan query yang sama yaitu melihat melihat data nama penyakit dan kelompok umur di bulan tertentu yakni bulan oktober pada tahun 2012 dan disemua kelompok umur tentukan terlebih dahulu cuboid yang mungkin. Tujuannya adalah agar mendapatkan query yang efisien dengan waktu akses cepat untuk melihat data nama penyakit dan kelompok umur di bulan tertentu yakni bulan oktober pada tahun 2012 dan disemua kelompok umur. Tabel 3. 13 Cuboid yang mungkin pada query II Tujuan query II Cuboid yang mungkin Melihat data nama penyakit dan kelompok umur di bulan tertentu yakni bulan oktober pada tahun Cuboid 1 : {ICD-X, Kelompok umur} where tahun=2012 and bulan=oktober 2012 dan disemua kelompok umur Cuboid 2 : {bulan, ICD-X, Kelompok umur } where tahun=2012 and bulan=oktober Cuboid 3 : {ICD-X, Kelompok umur, tahun } where tahun=2012 and bulan=oktober Berdasarkan cuboid-cuboid yang mungkin pada query II ini maka didapat cuboid 1 merupakan cuboid yang paling tepat digunakan untuk melakukan query. Berikut ini merupakan query yang terbentuk dari masing-masing cuboid. Tabel 3. 14 Query yang digunakan pada query II Jenis Query Cuboid yang mungkin OLAP Query Qef Cuboid 1 : {ICD-X, Kelompok umur} where tahun=2012 and bulan=oktober select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {[Nama Penyakit].[Semua Penyakit], [Kelompok Umur].[Semua Kelompok Umur]} ON ROWS from [penyakit] where [Waktu].[Semua Waktu].[2012].[Oktober] Qp1 Cuboid 2 : {tahun, ICD-X, Kelompok umur} where tahun=2012 and bulan=oktober with member [Waktu].[Semua Waktu] as Aggregate{[Waktu].[Semua Waktu]} select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {[Nama Penyakit].[Semua Penyakit], [Kelompok Umur].[Semua Kelompok Umur]} ON ROWS from [penyakit] where [Waktu].[Semua Waktu].[2012].[Oktober] Qb select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {[Waktu].[Semua Waktu], [Nama Penyakit].[Semua Penyakit],[Kelompok Umur].[Semua Kelompok Umur]} ON ROWS from [penyakit]

3.6. Menerapkan