April 6

Merapikan Query di SQL Server

SQL Beautifier / SQL Formatter merupakan suatu tools untuk merapikan dan mempercantik query SQL yang sudah kita buat. Mengapa kita memerlukan SQL Beautifier?

Ketika kita sedang menuliskan sebuah query baik itu untuk membuat sebuah stored procedure, view, trigger, function, ataupun query biasa, terkadang kita kurang terlalu memperhatikan kerapihan penulisan query tersebut dan menjadi hal yang sangat merepotkan kalau kita menulis query dan merapikannya sekaligus. Dan hasilnya, bisa jadi seperti query berikut :

Mungkin untuk query di atas kita masih dapat membacanya, namun apabila query tersebut berisi dari ratusan ataupun ribuan baris, mungkin akan sangat merepotkan saat maintenance query tersebut.

Kali ini saya ingin men-share tools gratis yang bisa teman-teman dapatkan. Benar-benar gratis loh teman-teman. Tools tersebut dapat digunakan sebagai Add-In untuk Microsoft SQL Server Management Studio, plugin Notepad++, maupun dapat digunakan sebagai aplikasi portable. Namanya Poor Man’s T-SQL Formatter. Untuk download, teman-teman dapat men-downloadnya dari halaman resminya langsung :

http://architectshack.com/PoorMansTSqlFormatter.ashx

Untuk saya sendiri, saya lebih suka menggunakannya sebagai Add-In Microsoft SQL Server Management Studio (karena di lingkungan kerja saya menggunakan SQL Server,hihi). Setelah query yang saya contohkan di atas dirapikan, hasilnya akan terlihat seperti ini :

Bagaimana? Lebih mudah dibaca kan?

Mungkin sekian sharing saya, mudah-mudahn bermanfaat.
B

April 3

Join pada SQL Server

Malam ini saya ingin berbagi ilmu mengenai JOIN. Apa itu JOIN? JOIN merupakan salah satu operasi untuk menghubungkan dua atau lebih tabel yang saling berelasi (walaupun dalam prakteknya kita dapat menghubungkan tabel-tabel yang tidak berelasi sama sekali). Operasi JOIN yang akan saya bahas pada tulisan ini terbatas pada operasi JOIN dalam SQL Server. JOIN sendiri memiliki berbagai jenis, diantaranya : JOIN, INNER JOIN, LEFT JOIN, LEFT OUTER JOIN, RIGHT JOIN, RIGHT OUTER JOIN, CROSS JOIN, dan JOIN dengan koma. Akan saya bahas satu-persatu jenis-jenis JOIN tersebut. Dalam setiap penjelasan, saya berikan contoh untuk mempermudah pemahaman. Oleh karena itu, pertama kita siapkan dua buah tabel sebagai contoh dengan nama tabel barang dan tabel gudang (saya anggap SQL Server sudah terinstal di kompiter). Berikut script create tabelnya :

– Tabel barang :

  • Tabel gudang :

Isi kedua tabel dengan data-data berikut :

  • Tabel barang :

Untuk barang yang kode_gudang nya NULL kita anggap barang tersebut belum disimpan di dalam gudang manapun.

  • Tabel gudang :

Pada setiap contoh, akan saya jadikan tabel barang berada di sebelah kiri hasil dan tabel gudang berada di sebelah kanan hasil.

1. JOIN / INNER JOIN

JOIN / INNER JOIN merupakan jenis JOIN yang digunakan untuk mendapatkan data dari dua tabel atau lebih yang persis saling berelasi. Kalau kita gambarkan dengan diagram, hasil dari JOIN dengan menggunakan JOIN / INNER JOIN merupakan irisan dari relasi antar tabel.

Inner JoinContoh kasus :

Seorang pegawai ingin melihat semua data barang beserta nama gudangnya dengan catatan barang tersebut telah berada dalam gudang.

Maka script yang harus kita gunakan dalam kasus ini yaitu menggunakan script JOIN / INNER JOIN.

Berikut script JOIN :

atau menggunakan INNER JOIN :

Hasilnya :

Contoh Inner Join

2. LEFT JOIN / LEFT OUTER JOIN

LEFT JOIN / LEFT OUTER JOIN merupakan jenis JOIN yang digunakan untuk mendapatkan data dari dua tabel atau lebih dimana data di tabel sebelah kiri ditampilkan semua baik yang berelasi dengan data di tabel sebelah kanan maupun tidak. Kalau kita gambarkan dengan diagram, hasil dari JOIN dengan menggunakan LEFT JOIN / LEFT OUTER JOIN seperti berikut :

Left Join

Contoh kasus :

Seorang pegawai ingin melihat semua data barang beserta nama gudangnya baik barang itu sudah berada dalam gudang maupun belum berada dalam gudang.

Maka script yang harus kita gunakan dalam kasus ini yaitu menggunakan script LEFT JOIN / LEFT OUTER JOIN.

Berikut script LEFT JOIN :

atau menggunakan LEFT OUTER JOIN :

Hasilnya :

Contoh Left JoinDari hasil kita dapat lihat bahwa data barang yang tidak berelasi dengan data gudang tetap ditampilkan, namun data di sebelah kanan (data gudang) diisi dengan NULL.

3. RIGHT JOIN / RIGHT OUTER JOIN

RIGHT JOIN / RIGHT OUTER JOIN merupakan jenis JOIN yang digunakan untuk mendapatkan data dari dua tabel atau lebih dimana data di tabel sebelah kanan ditampilkan semua baik yang berelasi dengan data di tabel sebelah kiri maupun tidak. Kalau kita gambarkan dengan diagram, hasil dari JOIN dengan menggunakan RIGHT JOIN / RIGHT OUTER JOIN seperti berikut :

Right Join

Contoh kasus :

Seorang pegawai ingin melihat semua data barang beserta nama gudangnya dengan catatan gudang yang tidak berisi barangpun tetap ditampilkan.

Maka script yang harus kita gunakan dalam kasus ini yaitu menggunakan script RIGHT JOIN / RIGHT OUTER JOIN.

Berikut script RIGHT JOIN :

atau menggunakan RIGHT OUTER JOIN :

Hasilnya :

Contoh Right JoinDari hasil kita dapat lihat bahwa data gudang yang tidak berelasi dengan data barang tetap ditampilkan, namun data di sebelah kiri (data barang) diisi dengan NULL.

4. CROSS JOIN

CROSS JOIN merupakan jenis JOIN yang digunakan untuk mendapatkan data kombinasi dari dua tabel atau lebih. Misalkan, n = jumlah baris data pada tabel di sebelah kiri, dan m = jumlah baris data pada tabel di sebelah kanan. Maka hasil jumlah baris dari CROSS JOIN adalah n X m baris data.

Contoh kasus :

Seorang pegawai ingin melihat semua kombinasi data barang yang dapat disimpan ke dalam gudang.

Maka script yang harus kita gunakan dalam kasus ini yaitu menggunakan script CROSS JOIN.

Berikut script CROSS JOIN :

Hasilnya :

Contoh Cross JoinDi sini kita hasil menggunakan CROSS JOIN yaitu kombinasi antara tabel barang dengan tabel gudang dengan jumlah baris hasilnya 39. Dimana jumlah baris data barang adalah 13 data dan jumlah baris data gudang adalah 3 data. 39 = 13 X 3

5. JOIN dengan koma

Selain menggunakan operator JOIN, kita juga dapat melakukan JOIN antar tabel dengan menggunakan koma. Bila kita tidak menambahkan kondisi relasi dengan menggunakan WHERE, maka JOIN dengan koma akan menghasilkan data yang sama apabila kita menggunakan CROSS JOIN. Misal dengan script berikut :

Maka akan menghasilkan data kombinasi seperti berikut :

Contoh Join Koma tanpa kondisiNamun, apabila kita menambahkan kondisi dengan merelasikan kolom yang berelasi menggunakan WHERE saat JOIN dengan koma. Maka hasilnya seperti kita menggunakan JOIN / INNER JOIN.

Misal dengan script berikut :

Maka hasilnya seperti berikut :

Contoh Join Koma dengan kondisiDengan kata lain, menggunakan koma merupakan alternatif lain dari JOIN pada SQL Server.

Penggunaan operator JOIN mana yang kita gunakan tergantung dari keperluan data yang diinginkan.

April 1

Memperbaiki Hardisk Eksternal Not Accessible

Saat saya sedang bekerja, saya ingin menghibur diri sambil mendengarkan musik dari Hardisk Eksternal saya. Saat saya sambungkan, kok tampil messagebox bertuliskan “Not Accessible”. Kira-kira seperti ini messageboxnya (maklum saya belum sempat printscreen messageboxnya karena panik, tapi tampilannya sama) :

not accessible

Saya berfikir mungkin laptop di rumah bisa. Setelah di rumah, saya cek hardisk, dan hasilnya sama. Panik mulai menyerang. Bagaimana ini? Masa hardisk saya rusak? Banyak file berharga di sana. Setelah saya cari-cari, saya dapatkan cara ampuh untuk memperbaikinya. Langkah-langkahnya sebagai berikut :

  1. Buka command prompt. Bisa dengan tekan windows+R -> cmd -> OK.

cmd

  1. Ketik chkdsk /f [lokasi drive] pada command prompt. Contoh chkdsk /f h:

chkdsk1 chkdsk2

  1. Tunggu hingga proses selesai. Cek dan hardisk kembali terbaca seperti sedia kala.