Anda di halaman 1dari 21

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 TRANSACTSQL
TRANSACT-SQL dimulai dengan deklarasi variable
dan disusul dengan Blok Program.

VARIABLE DECLARATION
DECLARE

BLOK PROGRAM
WITH OR WITHOUT BEGIN - END

Pendefinisian Variable TSQL


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
o
o
o
o
o

declare @nama char(30)


select @nama = namainstruktur
from instruktur where inisial = 'YS'
PRINT "Nama yang ditemukan adalah : "
PRINT @nama
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 kondisi
BEGIN
Instruksi1
Instruksi2
..
..
END

IF digunakan dalam
mengendalikan alur
program berdasarkan
kondisi.
Model 1
IF kondisi
Instruksi

Model 2
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

Anda mungkin juga menyukai