Transact-SQL
Disampaikan oleh:
Agus Wahyu Widodo, ST
Program Studi Ilmu Komputer
Jurusan Matematika – FMIPA Unibraw
Agenda
• Pengertian T-SQL
• Bagaimana kerangka T-SQL
• Pendefinisian variabel
• Select statement dalam T-SQL
• Print statement
• Variabel global
• If statement
• While
• Continue dan Break
• Return statement
• Case statement
Pemahaman Dasar (1)
• TRANSACT-SQL adalah bahasa pemrograman yang
dikembangan dari SQL. Seperti diketahui, SQL adalah bahasa
non procedural, artinya alur program tidak seperti bahasa
pemrograman biasa, melainkan melalui "request" dan
"response".
• Melalui instruksi SQL seseorang melakukan query atau
transaksi, yang kemudian akan menerima jawaban dari
Database Server berupa hasil atau ResultSet.
• Query dan Transaksi dilakukan di bagian Client, sedangkan
pemrosesan dilakukan pada Server.
Pemahaman Dasar (2)
• TRANSACT-SQL mengembangkan kemampuan SQL,
sehingga TRANSACT-SQL dapat melengkapi SQL dengan
instruksi logic (procedural logic), yaitu program aplikasi.
• Hasil proses SQL-Server (ResultSet) dapat dioleh lebih lanjut
dengan menggunakan logic pemrograman procedural seperti
Fungsi, Prosedur, Loop, Case, If Then Else dan lainnya.
Kerangka TRANSACT-
SQL
• TRANSACT-SQL dimulai dengan deklarasi variable dan
disusul dengan Blok Program.
VARIABLE DECLARATION –
DECLARE
BLOK PROGRAM –
WITH OR WITHOUT BEGIN - END
Pendefinisian Variable T-
SQL
• Variable harus dideklarasikan sebelum digunakan.
• Nama variable selalu dimulai dengan karakter @.
• Variable dapat diberikan nilai melalui instruksi SELECT
ataupun SET.
• Contoh
o DECLARE
o /* deklarasi variable */
o @v1 int,
o @nama varchar(30)
o select @v1=100 /* memberikan nilai 100 ke v1 */
SELECT dalam T-SQL
• SELECT digunakan juga untuk eksekusi aritmatika atau
lainnya.
• Contoh:
o select @v1 = @v1 – 100
o select @tgl_skrg = now
• Variable dapat digunakan untuk mengambil nilai dari sebuah
query:
• Contoh: (1)
o declare @nama char(30)
o select @nama = namainstruktur
o from instruktur where inisial = 'YS'
• Contoh: (2)
o select @jml_maksimal = max(sallary) from SallaryEmployee
PRINT dalam T-SQL
• PRINT adalah fungsi yang menampilkan teks dan variable
pada console (layar).
• Contoh: (listingTSQL01.sql)
o declare @nama char(30)
o select @nama = namainstruktur
o from instruktur where inisial = 'YS'
o PRINT "Nama yang ditemukan adalah : "
o PRINT @nama
o PRINT "Nama yang ditemukan adalah : " + @nama
Variable Global
• Variable Global adalah variable yang disiapkan oleh SQL-
Server untuk memberikan informasi kepada Client. Variable
globar bersifat read-only.
• Nama variable global diawali dengan @@.
• Contoh:
• @@error
o Bilangan bulat, yang menyatakan nomor error. Jika variable tersebut
tidak sama dengan 0, maka sistem memberikan indikasi bahwa terjadi
error dan identitas error dinyatakan dalam angka.
• @@cursor_rows
o Nilai balik dari cursor yang terakhir kali dioleh.
If - Statement
• Model 3 • IF digunakan dalam
IF kondisi mengendalikan alur
BEGIN
program berdasarkan
kondisi.
Instruksi1
Instruksi2
• Model 1
IF kondisi
.. Instruksi
.. • Model 2
END IF kondisi
Instruksi1
ELSE
Instruksi2
Contoh 1: If – Statement
• ListingTSQL02.sql
declare
@honor int,
@rata_rata int
select @honor=100000
select @rata_rata=200000
if @honor > @rata_rata
PRINT "Honor di atas rata-rata"
else
PRINT "Honor di bawah rata-rata"
Contoh 2: If – Statement
• Bila diaplikasikan pada tabel instruktur, maka nilai honor dapat diambil
dari instruktur (listingTSQL03.sql)
declare
@honor int,
@rata_rata int,
@instruktur char(2)
select @instruktur = 'AW'
select @honor=honor
from instruktur
where inisial = @instruktur
select @rata_rata = 200000
if @honor > @rata_rata
PRINT "Honor di atas rata-rata"
else
PRINT "Honor di bawah rata-rata"
Contoh 3: If – Statement
• Nilai rata-rata dapat dihitung langsung dari tabel instruktur sebagai berikut
(listingTSQL04.sql)
declare
@honor int,
@rata_rata int,
@instruktur char(2)
select @instruktur='DE'
select @honor=honor, @nama=namainstruktur
from instruktur
where inisial=@instruktur
select @rata-rata=AVG(honor) from instruktur
if @honor > @rata_rata
PRINT "Honor di atas rata-rata"
else
PRINT "Honor di bawah rata-rata"
Contoh 4: If – Statement
• Berikutnya, program mendemonstrasikan penggunaan blok IF BEGIN END bila
instruksi dalam IF lebih dari satu instruksi (listingTSQL05.sql)
declare
@honor int,
@rata_rata int,
@instruktur char(2),
@nama varchar(16)
select @instruktur='DE'
select @honor=honor, @nama=namainstruktur
from instruktur
where inisial=@instruktur
select @rata_rata=AVG(honor) from instruktur
if @honor > @rata_rata
BEGIN
PRINT "Nama Instruktur : " + @nama
PRINT "Honor di atas rata-rata"
END
else
BEGIN
PRINT "Nama Instruktur : " + @nama
PRINT "Honor di bawah rata-rata"
END
While – Statement
• WHILE digunakan dalam mengeksekusi satu blok program berulang-ulang sampai
kondisi pada WHILE menjadi false.
WHILE kondisi
BEGIN
..
..
END
• Contoh:
declare @i int
select @i=5
while @i > 0
begin
PRINT "i = " + str(@i)
select @i= @i – 1
End
• Perhatikan bahwa fungsi str() diperlukan untuk mengkonvesi bilangan integer
menjadi string (teks).
Continue dan Break
• Continue dan Break berkaitan dengan WHILE. Continue
melanjutkan alur program pada pemeriksaan kondisi WHILE
sedangkan Break menghentikan alur program dari WHILE.
WHILE kondisi1
BEGIN
..
..
if kondisi2
CONTINUE
..
END
Return - Statement
• RETURN akan menghentikan program dari eksekusi.
RETURN dapat digunakan dalam memproses error.
IF @@error <> 0
BEGIN
PRINT "Error .. "
RETURN
END
Case Statement
• CASE menyederhanakan IF yang berlapis dengan tujuan agar
program dapat dimengerti/dibaca dengan lebih mudah.
• Sintaks:
CASE
WHEN kondisi1 THEN
WHEN kondisi2 THEN
WHEN kondisi3 THEN
ELSE
END
Contoh 1: Case -
Statement
declare
@t char(1),
@hasil varchar(255)
select @t='B'
select @hasil =
case
when @t='A' then
'Karakter A'
when @t='B' then
'Karakter B'
else
'Tidak Diketahui'
end
PRINT "Hasil adalah : " + @hasil
Contoh 2: Case -
Statement
declare
@jk char,
@nama varchar(16),
@teks varchar(255)
select @jk=jenkel, @nama=nama from peserta
where nopeserta = 3
select @teks=
case @jk
when 'L' then 'Laki-laki'
when 'P' then 'Perempuan'
else '?'
PRINT @nama + " adalah " + @teks
Thanking You
Comment & Action Items