Thursday, 29 May 2014

Belajar CASE

Perintah CASE sering digunakan untuk menampilkan nilai tertentu dari beberapa barisan data dengan syarat-syarat atau kondisi yang kita berikan. Kalau kita belajar bahasa pemrograman tentu kita kenal dengan perintah IF Condition, fungsinya CASE hampir sama. Bedanya perintah CASEdigunakan untuk beberapa kondisi sekaligus, dan didalam SQL perintahCASE tidak bisa berdiri sendiri melainkan harus disisipkan dalam perintahSELECT. Jadi berbeda dengan perintah IF yang lebih bebas, akan tetapi perintah IF hanya berguna apabila dimasukan dalam STORE PROCEDURE,FUNCTION dan TRIGGER. Perbedaannya dalam SQL sangat jelas sekali, karena perintah CASE disisipkan dalam perintah SELECT jadi yang dihasilkan langsung berupa DATASET dan langsung bisa dilihat hasilnya.


Perintah CASE ini mempunyai dua format :
1. Simple Case function :
Maksudnya adalah perintah CASE sederhana. Bentuk Sintaknya:

CASE input_expression
WHEN when_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END


2. Searched CASE function:
Maksudnya perintah CASE ini diikuti dengan syarat kondisi boolean, seperti >, <, >=, <= , dan lain-lain. Sintaknya sebagai berikut:

CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END

Oke langsung aja saya akan memberikan contoh CASE untuk kawan-kawan semua, tentu tujuannya agar Anda bisa lebih paham tentang penggunaan CASE. Berikut adalah syntaknya guys:        


1CREATE DATABASE Northwind
    
    MAKSUD DARI SCRIPT DIATAS:

  • Artinya kita membuat database baru dengan nama “Northwind”. Nama database bisa Anda ganti sesuai keinginan Anda guys.



2.CREATE TABLE products (Products_ID INT(10) PRIMARY KEY      AUTO_INCREMENT, Products_Name VARCHAR(100), UnitsInStock INT(10))

     MAKSUD DARI SCRIPT DIATAS:
·        Artinya kita membuat table baru bernama “Products”.
·        Nah, didalam table tersebut terdapat 3 field, yaitu Products_ID, Products_Name dan UnitsInStock. Terus dibelakang field Products_ID itu kan ada int(10) yaa, maksudnya int(10) itu field Products_ID hanya bisa diisi dengan 10 angka. Lalu kenapa angka? Bukan huruf? Karena type datanya adalah int, bukan varchar atau datetime, dll. Untuk type data yang lebih lengkap, anda bisa melihatnya di link ini guys.
·        Terus di field Products_ID setelah int(10) ada kata PRIMARY KEY, maksudnya field Products_ID ini telah menjadi primary key, yaitu kunci utama/no identitas dalam isi field. Itu artinya inilah yang menjadi pembeda antara isi field satu dengan isi field lain, karena tidak ada yang sama.
·        Lalu setelah perintah “PRIMARY KEY” terdapat perintah “AUTO_INCREMENT”. Maksud perintah AUTO_INCREMENT yaitu akan mengisi data secara otomatis dari primary key tersebut. Misal primary key-nya adalah int(angka), maka akan muncul angka 1,2,3,4,dst secara otomatis tanpa kita menginputnya di script SQL.



3. INSERT INTO products VALUES
('', 'Chai', '39'),
('', 'Chang', '17'),
('', 'Aniseed Syrup', '13'),
('', 'Chef Antons Cajun Seasoning', '53'),
('', 'Chef Antons Gumbo Mix', '0'),
('', 'Grandmas Boysenberry Spread', '120'),
('', 'Uncle Bobs Organic Dried Pears', '15'),
('', 'Northwoods Cranberry Sauce', '6'),
('', 'Mishi Kobe Niku', '29'),
('', 'Ikura', '31'),
('', 'Queso Cabrales', '22'),
('', 'Queso Manchego La Pastora', '86'),
('', 'Konbu', '24'),
('', 'Tofu', '35'),
('', 'Genen Shouyu', '39')

       MAKSUD DARI SCRIPT DIATAS:
·         Perintah  INSERT INTO maksudnya kita akan mengisi data ke field products dengan values/data ('', '(isi terserah Anda )', '(isi terserah Anda)'). Lalu kenapa ada satu field yang tidak di isi?? Kenapa hayoo? Ada yang tahu?? Yups jawabanyya karena itu sudah menjadi primary key, jadi tidak perlu diisi karena nanti akan muncul secara otomatis. Agar lebih jelas mending langsung dicoba aja guys. .


4. SELECT Products_ID, Products_Name, UnitsInStock,
CASE
WHEN UnitsInStock <5 THEN 'Stock Habis'
WHEN UnitsInStock BETWEEN 5 AND 15 THEN 'Harus Order'
ELSE 'Stock Cukup'
END AS Keterangan
FROM Products

       MAKSUD DARI SCRIPT DIATAS:
·        SELECT artinya kita akan memilih data yang akan ditampilkan. Disini saya memilih untuk menampilkan data Products_ID, Products_Name, dan UnitsInStock.
·         CASE artinya “yang mana”
·         WHEN (ketika) UnitsInStock <5 (bacanya kurang dari 5. Jika >5 bacanya lebih dari 5. Jika =5 bacanya sama dengan 5, dll) maka akan muncul tulisan 'Stock Habis', kemudian
·         WHEN (ketika) UnitsInStock BETWEEN (diantara) 5 dan 10 maka akan muncul tulisan 'Harus Order'.
·        ELSE artinya “jika tidak” diantara keduanya maka akan muncul tulisan 'Stock Cukup'.
·         END, itu artinya adalah akhir dari rumus tersebut.
·         Selanjutnya jika kita ingin menampilkan itu semua di kolom baru, kita harus menambahkan AS, lalu setelah AS ada nama kolom baru yang kita inginkan. Disini saya menamakan kolom baru tersebut dengan nama Keterangan.
·         FROM Products artinya kita mengambil data tersebut dari table Products




Oke itu adalah contoh CASE yang pernah saya pelajari guys. Gimana? Ente berhasil menerapkannya dikomputer ente gak? Klo gak berhasil yaa sudah, mungkin Anda kurang beruntung..wkwk #juskid. Klo misalnya belum berhasil silahkan dicoba lagi guys, mungkin syntak yang Anda tulis ada yang salah. Terus buat yang udah berhasil, gue punya soal nih buat kalian…,
1.      Buatlah table baru didalam database Northwind dengan nama table customer. Didalam table tersebut terdapat 3 field, yaitu CustomerID,CompanyName, dan Country. Sedangkan type data untuk semua field tersebut adalah varchar. Masing-masing jumlah inputan untuk field tersebut (secara urut) adalah 10 karakter, 100 karakter dan 50 karakter.
2.      Tambahkan data dibawah ini kedalam teble tersebut.
CustomerID
CompanyName
Country
ALFKI
Alfreds Futterkiste
Germany
ANATR
Ana Trujillo Emparedados y helados
Mexico
ANTON
Antonio Moreno Taqueria
Mexico
AROUT
Around the Horn
UK
BERGS
Berglunds snabbkop
Swedan
BLAUS
Blauer See Delikatessan
Germany
BOTTM
Bottom-Dollar Markets
Canada
BSBEV
Bs Beverages
UK
CACTU
Cactus Comidas para Ilever
Argentina
DRACD
Drachenblut Delikatessan
Germany
DUMON
Du monde entier
France
EASTC
Eastern Connection
UK
GOURL
Gourmet Lanchonetes
Brazil
GREAL
Great Lakes Food Market
USA

3.      Tampilkan nilai customerID, CompanyName dan tambahkan 1 field lagi bernama Negara, dimana Negara yang country-nya adalah UK menjadi “United Kingdoms” dan USA menjadi “United State of America”. Untuk lebih jelasnya lihatlah gambar akhir dari soal tersebut.




Gimana guys, soalnya mudah bukan???hehe. Jika Anda berhasil menyelesaikan soal diatas, saya ucapkan selamat, namun jika Anda belum berhasil, tetaplah berusaha. Anda pasti bisa. Oiyya, buat Anda yang pengin mengintip jawaban dari soal diatas, Anda bisa download filenya disini. Buat Anda yang pengin download file contoh CASE yang sudah saya jelaskan diatas, Anda bisa download file-nya disini.

No comments:

Post a Comment