SQL Server Indonesia User Groups Community Rachmat Hariyanto
Welcome to SQL Server User Group Indonesia
Sign in JoinHelp | Sign In Live ID

Rachmat Hariyanto

There's always time for coding! My friends are Visual Studio 2008 Team System (ASP .NET 3.5, LINQ, VB .NET), jQuery, CodeSmith and SQL Server 2005/2008.

Sekalian mendokumentasikan apa yang saya presentasikan hari senin, 16 Maret 2009 di Auditorium Microsoft Indonesia.  Pada hari itu saya dapat giliran presentasi membawakan materi tentang salah satu fitur baru dari Microsoft SQL Server 2008, yaitu Spatial Data Type.

Spatial Data Model

Sebelum kita sampai pada penjelasan tentang Spatial Data Type yang disediakan oleh SQL Server 2008, kita cari tahu mengenai Spatial Data secara umum. 

Nah, jika kita berbicara mengenai spatial data, sebenarnya kita berbicara mengenai lokasi (posisi) suatu object atau kumpulan objek pada suatu ruang. 

Secara umum spatial model dibagi 2, yaitu :

  1. Geodetic Model
  2. Planar Model

Geodetic Model

Planar Model

image

 

 

Geodetic model merepresentasikan koordinat bola, dimana posisi suatu titik dinyatakan dalam longitude (bujur) dan latitude (lintang).

 

 

 

 

 

image Sedangkan planar model merepresentasikan koordinat cartesian biasa, dimana posisi suatu titik dinyatakan dalam absis (X) dan ordinat (Y). 

 

Dalam pelajaran fisika, kita pernah belajar bahwa posisi suatu benda relatif terhadap suatu titik acuan tertentu.  Sehingga baik pada geodetic atau planar memiliki satu titik acuan sebagai titik nol perhitungan posisi suatu titik.

Posted by Rachmat Hariyanto | with no comments

Berikut ini adalah script SQL yang dapat digunakan untuk memasukkan suatu file image (misalkan myImage.jpg) ke dalam sebuah tabel dalam suatu database SQL Server 2005.

CREATE TABLE myTable(Document varbinary(max))

GO

INSERT INTO myTable(Document)

SELECT * FROM

OPENROWSET(BULK N'D:myImage.JPG', SINGLE_BLOB)

AS Document

 

Semoga bermanfaat!

Di bawah ini merupakan script SQL yang kita gunakan untuk mencari daftar stored procedure pada suatu database, yang scriptnya mengandung kata atau kalimat tertentu (misalkan kata ‘JKT’).

 

SELECT ROUTINE_NAME, ROUTINE_DEFINITION

FROM INFORMATION_SCHEMA.ROUTINES

WHERE ROUTINE_DEFINITION LIKE '%JKT%'

AND ROUTINE_TYPE='PROCEDURE'

 

Semoga bermanfaat !

Pada tulisan sebelumnya saya sudah bahas perbedaan antara Data Warehouse dan Data Mining. Tulisan kali ini akan memberikan paparan singkat mengenai Business Intelligence (BI).

Mari kita cari definisi Business Intelligence tersebut, saya ambil sebuah potongan paragraph dari bukunya Steve and Nancy Williams “The Profit Impact of Business Intelligence”.

BI as business information and business analyses within the context of key business processes that lead to decisions and actions and that result in improved business performance. In particular, BI means leveraging information assets within key business processes to achieve improved business performance.

Dari kutipan di atas bisa kita simpulkan tujuan utama BI adalah improvisasi performance business via keputusan-keputusan dan aksi yang dilakukan berdasarkan informasi business dan hasil analisis business dari BI ini.  Nah, karena itu, betapa krusialnya laporan-laporan (report) (aka informasi business) yang harus dihasilkan dari BI ini.  Laporan-laporan yang dihasilkan bukan seperti laporan biasa, seperti laporan yang dihasilkan sistem OLTP biasa, tetapi lebih dari itu, merupakan laporan-laporan yang lebih analitis.

Laporan yang analitis merupakan laporan yang bisa dilihat dari banyak parameter, sehingga bisa membantu analisis dari berbagai perspektif.  Yang nantinya hal ini akan terkait dengan istilah cube di dalam BI. 

Seperti yang sudah kita bahas, Business Intelligence merupakan salah satu implementasi dari  Data Warehouse.  Perhatikan gambar di bawah ini.

BusinessIntelligence

Dari gambar tersebut, terlihat secara sederhana bagaimana posisi suatu Data Warehouse pada sebuah Business Intelligence Platform

Di sana digambarkan bahwa beberapa hal.  Pertama, sumber data “mentah” berasal dari data ERP (Enterprise Resource Planning), CRM (Customer Relationship Management) dan LOB (Line of Business) Data.   Dari sumber-sumber data tersebut data ditransformasikankan menjadi suatu data warehouse.  Proses transformasi data ini lebih dikenal dengan istilah ETL (Extract Transform and Loading). Dari istilah ETL itu sendiri tergambar adanya 3 proses utama yaitu proses ekstraksi data dari sumber data, transformasi data dan loading data ke data warehouse.  Data dari sumber data dipilih dan dipilah, dibersihkan (cleansing), digabungkan dan kemudian  dimuat (load) ke data warehouse.  Salah satu tools yang dapat kita gunakan untuk menjalankan proses ini adalah Microsoft SQL Server 2005/2008 Integration Services (SSIS).

Seperti penjelasan di atas, Business Intelligence harus bisa menghasilkan  laporan dan query yang analitis.  Maka, kita harus melakukan proses analisis dari data warehouse (Data Analysis).  Pada data warehouse sudah terdefinisi penyimpanan data dalam bentuk tabel-tabel Fact dan Dimension.  Table Fact berisi nilai-nilai yang nantinya akan dilaporkan, sedangkan dimensi akan menjadi parameter (perfective) nilai-nilai Fact tersebut.  Berdasarkan tabel-tabel Fact dan Dimension inilah kita membangun cube.  Pada cube ini kita definisi ukuran-ukuran (measures), target monitoring (KPI – Key Performance Indicator) dan lain-lain.  Kita bisa gunakan Microsoft SQL Server 2005/2008 Analysis Services (SSAS) untuk membantu merealisasikan proses analisis ini. Dan jika diperlukan juga aspek-aspek menemukan pola (pattern) atau trend berdasarkan data pada data warehouse tersebut SSAS juga menyediakan fitur-fitur yang terkait dengan Data Mining.

Proses terakhir, kita tinggal berdeliver laporan-laporan dan query hasil analisis tersebut ke berbagai media yang diperlukan.  Kita bisa gunakan  Microsoft SQL Server 2005/2008 Reporting Services (SSRS) atau Microsoft Office Excel dan lain-lain.

 

Semoga bermanfaat!

Building a Data Warehouse Pertanyaan soal perbedaan kedua istilah ini terkadang sulit untuk dipahami, sering kali kita bingung karena kedua istilah tersebut mirip-mirip, sering dipertukarkan dan banyak bersinggungan dalam konteks yang sama.

Kita mulai cari definisi data warehouse dulu.  Saya coba ambil salah satu definisi yang ada pada bukunya Vincent Rainardi - Building a Data Warehouse With Examples in SQL Server.  Beliau menyampaikan definisi sebagai berikut.

A data warehouse is a system that retrieves and consolidates data periodically from the source systems into a dimensional or normalized data store. It usually keeps years of history and is queried for business intelligence or other analytical activities. It is typically updated in batches, not every time a transaction happens in the source system.

Jadi data warehouse merupakan suatu sistem yang mengkonsolidasikan data secara periodik dari sistem-sistem yang ada (OLTP) ke dalam suatu penyimpanan dimensional. Pada umumnya, data warehouse menyimpan data histori beberapa tahun dan di-quey untuk keperluan business intelligence atau aktifitas analisis lainnya.  Data warehouse diremajakan secara batch, tidak serta-merta setiap terjadinya transaksi pada sistem-sistem sumber tersebut.

Dari penjelasan di atas terlihat jelas perbedaan antara data warehouse dibandingkan business intelligence ataupun data mining. 

Sebagai tambahan informasi, perkembangan saat ini data warehouse digunakan sebagai sumber data untuk Business Intelligence (BI), penyempurnaan CRM (Customer Relationship Management) ataupun Data Mining (DM). 

Lalu, apa yang dimaksud dengan Data Mining?

Coba kita buka lagi, definisi data mining dari buku tersebut.  Dalam buku tersebut, kita coba telaah paragraph berikut ini :

Data mining is a field that has been growing fast in the past few years. It is also known as knowledge discovery, because it includes trying to find meaningful and useful information from a large amount of data. It is an interactive or automated process to find patterns describing the data and to predict the future behavior of the data based on these patterns.

Data Mining disebut juga knowledge discovery karena merupakan bidang yang berupaya untuk menemukan informasi yang punya arti dan berguna dari jumlah data yang besar.  Data mining merupakan suatu proses yang interaktif atau terotomatisasi untuk menemukan pola (pattern) data tersebut dan memprediksi kelakuan (trend) di masa mendatang berdasarkan pola data tersebut.

Nah, mudah-mudahan dengan penjelasan singkat tersebut, sekarang kita sudah bisa membedakan kedua istilah tersebut.

Semoga bermanfaat.

Sekalian mengingat kembali dan mendokumentasikan apa yang pernah aku presentasikan pada event TechNet Deep Dive SQL Server yang diadakan di Auditorium Microsoft Indonesia tanggal 22 Juli 2008 yang lalu,  coba kutuliskan pada tulisan di bawah ini. Semoga bisa bermanfaat.

 

 

Secara umum kompresi data (Data Compression) diartikan dengan proses mengubah ukuran suatu file menjadi file yang ukurannya lebih kecil.

Berdasarkan definisi di atas, kompresi data dapat dibagi menjadi 2 jenis, yaitu : 

1.                  Lossy Data Compression

2.                  Lossless Data Compression

 

Lossy Data Compression memiliki kelebihan dalam hal kecepatan dan rasio kompresi yang lebih besar, tetapi sebagian data akan hilang (loss) pada saat dilakukan proses uncompression.  Salah satu contoh jenis kompresi ini digunakan untuk mengubah file audio menjadi mp3.

Sebaliknya Lossless Data Compression mensyaratkan bahwa data hasil rekontruksi akan persis sama dengan data yang terkompress.

 

Terdapat 2 teknik kompresi yang umum digunakan dalam Lossless Data Compression yaitu :

1.              Berdasarkan pada prinsip data yang sering muncul akan dikodekan dengan lebih sedikit bit.  Contoh : Huffman Coding

2.                Berdasarkan pada permodelan statistik untuk data teks.  Misalkan dengan membangun suatu kamus (dictionary) dari simbol-simbol yang sering muncul pada suatu blok dan kemudian hanya akan diacu (reference) dengan menggunakan pointer.  Contoh : LZ (Lempel-Ziv) algorithm.

 

Nah, bagaimana dengan kompresi pada database? Hal pertama yang harus dipahami bahwa tujuan utama dari kompresi data pada database bukan untuk mendapatkan rasio kompresi yang maksimum, tetapi untuk mendapatkan keimbangan terbaik antara rasio kompresi yang didapat dengan cost dari proses kompresi/dekompresi. Sehingga kompresi yang didapat akan bergantung pada distribusi dan skema data yang ada.

 

Masalah-masalah terkait kompresi data yang harus kita perhatikan adalah :

  1. Storage Cost
  2. Manageability Cost
    1. Backup/recovery
    2. Create/Rebuild indexes
    3. Bulk import
    4. Consistency Checking

 

Sebenarnya, Microsoft sudah mulai mengupayakan masalah kompresi data pada database sejak meluncurkan SP2 untuk SQL Server 2005, yaitu dengan mengimplementasikan fitur variable-length decimal storage format.

 

Sedangkan pada SQL Server 2008 fitur terkait kompresi data diimplementasikan dalam :

  1. Backup Compression
  2. Data Compression
    1. ROW Compression
    2. PAGE Compression

 

 

Pada tulisan berikutnya akan kutuliskan secara lebih detail bagaimana mekanisme kompresi data ini dilakukan oleh SQL Server 2008. 

Posted by Rachmat Hariyanto | with no comments

Besok dan lusa, aku harus melupakan sejenak "tetek-bengek" soal programming dan database.  Besok dan lusa (18-19 November 2008) aku harus ikut training dunia asuransi, tentang "Directors and Officers Liability Insurance" (DOLI).

Liability Insurance dalam bahasa Indonesia sering  diterjemahkan menjadi Asuransi Tanggung Gugat, yang memiliki pengertian Asuransi yang memberikan perlindungan bagi tertanggung terhadap tuntutan hukum dari pihak ketiga (third party).  

Asuransi Tanggung Gugat terdiri atas beragam produk, antara lain:

  1. General Liability:
    • Public Liability
    • Product Liability
    • Comprehensive General Liability
  2. Professional Liability:
    • Medical Malpractice
    • Professional Indemnity
    • Directors' and Officers' Liability
  3. Employer's Liability dan Workmen's Compensation

D&O Insurance ditujukan untuk memberikan perlindungan bagi eksekutif & officer (pejabat) di perusahaan agar terbebas dari risiko pengambilan keputusan bisnis yang mereka lakukan dimana pihak ketiga dapat menuntutnya.

Obyek pertanggungan dalam asuransi ini adalah tuntutan hukum dari pihak ketiga akibat keputusan-keputusan yang dibuat oleh pihak eksekutif dan officer perusahaan tersebut ketika melakukan kegiatan usahanya.

Tuntutan hukum dari pihak ketiga, termasuk biaya-biaya yang dikeluarkan untuk melakukan pembelaan (defense cost).

Sedangkan risiko-risiko yang tidak dijamin dalam D&O Insurance antara lain adalah :

  • Hal-hal yang berhubungan dengan unsur kesengajaan
  • Hal-hal yang berhubungan dengan penyuapan
  • Majority shareholder
  • Professional indemnity
  • Perang, terorisme
  • Radioaktif dan polusi
  • Tuntutan yang mengarah kepada cedera badan atau kerusakan/kerugian property

 Semoga besok dan lusa tidak terkendala apa-apa, sehingga ilmu yang diberikan oleh instruktur dari Miller Insurance akan membekas di kepalaku.  Dan yang pasti, tugas berikutnya adalah membuat software aplikasi yang akan mendukung soal ini.

Posted by Rachmat Hariyanto | 2 comment(s)
Filed under:

Rasanya lama sekali aku tidak nulis di blog, ternyata benar "menulis itu tidak gampang, bukan karena tidak bisa, tetapi lebih kepada niat untuk menulis itu sendiri".  Makanya, aku angkat jempol deh (two thumbs up!) buat orang-orang yang rajin menulis di blog.

Dan tidak adil rasanya, kalau aku menyuruh anak-anakku untuk memulai belajar menulis blog, tetapi aku sendiri tidak memberikan contoh buat mereka. Bisa-bisa aku dikutuk jadi batu atau kodok.  Jadi, yeahh, hari ini kumulai lagi untuk sekedar menulis sebagai pemicu (trigger) untuk tulisan-tulisanku berikutnya. 

Selamat datang di blog saya ... wilujeng sumping (sunda red)!

 

Posted by Rachmat Hariyanto | with no comments
Filed under:
More Posts