Download - TIK.PR03.002.01_BI
MATERI PELATIHAN BERBASIS
KOMPETENSI
SEKTOR TELEMATIKA
SUB SEKTOR PROGRAMMER KOMPUTER
MENGOPERASIKAN BAHASA PEMROGRAMAN DATA DESKRIPSI
(SQL) LANJUTTIK.PR03.002.01
BUKU INFORMASI
DEPARTEMEN TENAGA KERJA DAN TRANSMIGRASI R.I.DIREKTORAT JENDERAL PEMBINAAN PELATIHAN DAN
PRODUKTIVITAS
Materi Pelatihan Berbasis KompetensiSEKTOR TEKNOLOGI INFORMASI DAN KOMUNIKASI
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) LanjutBuku Penilaian Versi: 2007
Halaman: 2 dari 65
Jl. Jend. Gatot Subroto Kav.51 Lt.7.B Jakarta Selatan
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 1 dari 58
DAFTAR ISI
Daftar Isi........................................................................................................
1
BAB I PENGANTAR.....................................................................................
3
1.1 Konsep Dasar Pelatihan Berbasis
Kompetensi............................... 3
1.2 Penjelasan
Modul....................................................................... 3
1.3 Pengakuan Kompetensi Terkini
(RCC).......................................... 5
1.4 Pengertian Istilah-
Istilah............................................................. 6
BAB II STANDAR KOMPETENSI....................................................................
8
2.1 Peta Paket Pelatihan.................................................................
8
2.2 Pengertian Unit
Standar............................................................. 8
2.3 Unit Kompetensi Yang
Dipelajari................................................. 9
2.3.1 Judul Unit.......................................................................
9
2.3.2 Kode Unit.......................................................................
9
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 2 dari 58
2.3.3 Deskripsi Unit.................................................................
9
2.3.4 Elemen Kompetensi........................................................
10
2.3.5 Batasan Variabel.............................................................
12
2.3.6 Panduan Penilaian...........................................................
12
2.3.7 Kompetensi Kunci...........................................................
13
BAB III STRATEGI DAN METODE
PELATIHAN................................................. 14
3.1 Strategi
Pelatihan...................................................................... 14
3.2 Metode
Pelatihan....................................................................... 15
BAB IV MATERI UNIT KOMPETENSI..............................................................
16
4.1 Tujuan Instruksional
Umum....................................................... 16
4.2 Tujuan Instruksional
Khusus...................................................... 16
4.3 Sekilas Tentang DDL dan
DML................................................... 17
4.4 Constraint dan Rule..................................................................
18
4.5 Fungsi dan Prosedur.................................................................
22
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 3 dari 58
4.5.1 Variabel.........................................................................
23
4.5.2 Statement......................................................................
25
4.5.3 Fungsi-Fungsi.................................................................
30
4.5.4 Stored Procedure............................................................
34
4.5.5 Penanganan Error...........................................................
36
4.6 Mengenal Cursor......................................................................
37
4.7 Trigger....................................................................................
42
4.8 Transaksi Dengan Commit dan
Rollback..................................... 47
BAB V SUMBER – SUMBER YANG DIPERLUKAN UNTUK PENCAPAIAN
KOMPETENSI...................................................................................
52
5.1 Sumber Daya Manusia..............................................................
52
5.2 Literatur..................................................................................
53
5.3 Daftar Peralatan/Mesin dan
Bahan ........................................... 54
5.4 Lain-lain..................................................................................
55
DAFTAR PUSTAKA
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 4 dari 58
BAB I
PENGANTAR
1.1. Konsep Dasar Pelatihan Berbasis Kompetensi
Apakah pelatihan berdasarkan kompetensi?
Pelatihan berdasarkan kompetensi adalah pelatihan yang
memperhatikan pengetahuan, keterampilan dan sikap yang
diperlukan di tempat kerja agar dapat melakukan pekerjaan
dengan kompeten. Standar Kompetensi dijelaskan oleh Kriteria
Unjuk Kerja.
Apakah artinya menjadi kompeten ditempat kerja?
Jika Anda kompeten dalam pekerjaan tertentu, Anda memiliki
seluruh keterampilan, pengetahuan dan sikap yang perlu untuk
ditampilkan secara efektif ditempat kerja, sesuai dengan standar
yang telah disetujui.
1.2 Penjelasan Modul
Modul ini didisain untuk dapat digunakan pada Pelatihan Klasikal dan
Pelatihan Individual/mandiri :
Pelatihan klasikal adalah pelatihan yang disampaikan oleh
seorang pelatih.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 5 dari 58
Pelatihan individual/mandiri adalah pelatihan yang dilaksanakan
oleh peserta dengan menambahkan unsur-unsur/sumber-sumber
yang diperlukan dengan bantuan dari pelatih.
Isi Modul
a. Buku Informasi
Buku informasi ini adalah sumber pelatihan untuk pelatih
maupun peserta pelatihan.
b. Buku Kerja
Buku kerja ini harus digunakan oleh peserta pelatihan untuk
mencatat setiap pertanyaan dan kegiatan praktik baik
dalam Pelatihan Klasikal maupun Pelatihan Individual /
mandiri.
Buku ini diberikan kepada peserta pelatihan dan berisi :
Kegiatan-kegiatan yang akan membantu peserta
pelatihan untuk mempelajari dan memahami informasi.
Kegiatan pemeriksaan yang digunakan untuk memonitor
pencapaian keterampilan peserta pelatihan.
Kegiatan penilaian untuk menilai kemampuan peserta
pelatihan dalam melaksanakan praktik kerja.
c. Buku Penilaian
Buku penilaian ini digunakan oleh pelatih untuk menilai
jawaban dan tanggapan peserta pelatihan pada Buku Kerja
dan berisi :
Kegiatan-kegiatan yang dilakukan oleh peserta pelatihan
sebagai pernyataan keterampilan.
Metode-metode yang disarankan dalam proses penilaian
keterampilan peserta pelatihan.
Sumber-sumber yang digunakan oleh peserta pelatihan
untuk mencapai keterampilan.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 6 dari 58
Semua jawaban pada setiap pertanyaan yang diisikan
pada Buku Kerja.
Petunjuk bagi pelatih untuk menilai setiap kegiatan
praktik.
Catatan pencapaian keterampilan peserta pelatihan.
Pelaksanaan Modul
Pada pelatihan klasikal, pelatih akan :
Menyediakan Buku Informasi yang dapat digunakan peserta
pelatihan sebagai sumber pelatihan.
Menyediakan salinan Buku Kerja kepada setiap peserta
pelatihan.
Menggunakan Buku Informasi sebagai sumber utama dalam
penyelenggaraan pelatihan.
Memastikan setiap peserta pelatihan memberikan jawaban /
tanggapan dan menuliskan hasil tugas praktiknya pada
Buku Kerja.
Pada Pelatihan individual / mandiri, peserta pelatihan
akan :
Menggunakan Buku Informasi sebagai sumber utama
pelatihan.
Menyelesaikan setiap kegiatan yang terdapat pada buku
Kerja.
Memberikan jawaban pada Buku Kerja.
Mengisikan hasil tugas praktik pada Buku Kerja.
Memiliki tanggapan-tanggapan dan hasil penilaian oleh
pelatih.
1.3 Pengakuan Kompetensi Terkini (RCC)
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 7 dari 58
Apakah Pengakuan Kompetensi Terkini (Recognition of Current
Competency).
Jika Anda telah memiliki pengetahuan dan keterampilan yang
diperlukan untuk elemen unit kompetensi tertentu, Anda dapat
mengajukan pengakuan kompetensi terkini (RCC). Berarti Anda
tidak akan dipersyaratkan untuk belajar kembali.
Anda mungkin sudah memiliki pengetahuan dan keterampilan,
karena Anda telah :
a. Bekerja dalam suatu pekerjaan yang memerlukan suatu
pengetahuan dan keterampilan yang sama atau
b. Berpartisipasi dalam pelatihan yang mempelajari kompetensi
yang sama atau
c. Mempunyai pengalaman lainnya yang mengajarkan
pengetahuan dan keterampilan yang sama.
1.4 Pengertian-pengertian Istilah
Profesi
Profesi adalah suatu bidang pekerjaan yang menuntut sikap,
pengetahuan serta keterampilan/keahlian kerja tertentu yang
diperoleh dari proses pendidikan, pelatihan serta pengalaman kerja
atau penguasaan sekumpulan kompetensi tertentu yang dituntut
oleh suatu pekerjaan/jabatan.
Standardisasi
Standardisasi adalah proses merumuskan, menetapkan serta
menerapkan suatu standar tertentu.
Penilaian / Uji Kompetensi
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 8 dari 58
Penilaian atau Uji Kompetensi adalah proses pengumpulan bukti
melalui perencanaan, pelaksanaan dan peninjauan ulang (review)
penilaian serta keputusan mengenai apakah kompetensi sudah
tercapai dengan membandingkan bukti-bukti yang dikumpulkan
terhadap standar yang dipersyaratkan.
Pelatihan
Pelatihan adalah proses pembelajaran yang dilaksanakan untuk
mencapai suatu kompetensi tertentu dimana materi, metode dan
fasilitas pelatihan serta lingkungan belajar yang ada terfokus
kepada pencapaian unjuk kerja pada kompetensi yang dipelajari.
Kompetensi
Kompetensi adalah kemampuan seseorang untuk menunjukkan
aspek sikap, pengetahuan dan keterampilan serta penerapan dari
ketiga aspek tersebut ditempat kerja untuk mencapai unjuk kerja
yang ditetapkan.
Standar Kompetensi
Standar kompetensi adalah standar yang ditampilkan dalam istilah-
istilah hasil serta memiliki format standar yang terdiri dari judul
unit, deskripsi unit, elemen kompetensi, kriteria unjuk kerja, ruang
lingkup serta pedoman bukti.
Sertifikat Kompetensi
Adalah pengakuan tertulis atas penguasaan suatu kompetensi
tertentu kepada seseorang yang dinyatakan kompeten yang
diberikan oleh Lembaga Sertifikasi Profesi.
Sertifikasi Kompetensi
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 9 dari 58
Adalah proses penerbitan sertifikat kompetensi melalui proses
penilaian / uji kompetensi.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 10 dari 58
BAB II
STANDAR KOMPETENSI
2.1. Peta Paket Pelatihan
Modul yang sedang Anda pelajari ini adalah untuk mencapai satu
unit kompetensi, yang termasuk dalam satu paket pelatihan, yang
terdiri atas unit-unit kompetensi berikut:
2.1.1 TIK.PR03.002.01 Mengoperasikan Bahasa Pemrograman
Data Deskripsi (SQL – Structured
Query Language) Lanjut
2.1.2 TIK.PR03.001.01 Mengoperasikan Bahasa Pemrograman
Data Deskripsi (SQL – Structured
Query Language) Dasar
2.2. Pengertian Unit Standar Kompetensi
Apakah Standar Kompetensi? Setiap Standar Kompetensi
menentukan :
a. Pengetahuan dan keterampilan yang diperlukan untuk mencapai
kompetensi.
b. Standar yang diperlukan untuk mendemonstrasikan kompetensi.
c. Kondisi dimana kompetensi dicapai.
Di dalam unit kompetensi ini, Anda akan mempelajari
pemrograman data deskripsi lanjut untuk melengkapi pengetahuan
yang telah Anda kuasai pada pelatihan mengenai pemrograman
data deskripsi dasar sebelumnya.
Sistem pelatihan berbasis kompetensi terfokus pada
pencapaian kompetensi, bukan pada lamanya waktu. Namun
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 11 dari 58
diharapkan pelatihan ini dapat dilaksanakan dan dicapai dalam
jangka waktu tidak lebih dari seminggu, tiga sampai lima hari.
Pelatihan ini diperuntukkan bagi semua pengguna terutama yang
tugasnya berkaitan dengan pengelolaan, pemeliharaan dan
pemrograman basis data seperti Database Administrator dan
Database Developer.
Jika Anda belum mencapai kompetensi pada
usaha/kesempatan pertama, Pelatih Anda akan mengatur rencana
pelatihan dengan Anda. Rencana ini akan memberikan Anda
kesempatan kembali untuk meningkatkan level kompetensi Anda
sesuai dengan level yang diperlukan. Jumlah maksimum
usaha/kesempatan yang disarankan adalah 3 (tiga) kali.
2.3. Unit Kompetensi yang Dipelajari
Dalam sistem pelatihan, Standar Kompetensi diharapkan menjadi
panduan bagi peserta pelatihan untuk dapat :
mengidentifikasikan apa yang harus dikerjakan peserta pelatihan.
memeriksa kemajuan peserta pelatihan.
menyakinkan bahwa semua elemen (sub-kompetensi) dan kriteria
unjuk kerja telah dimasukkan dalam pelatihan dan penilaian.
2.3.1 JUDUL UNIT : Mengoperasikan Bahasa Pemrograman
Data Deskripsi (SQL – Structured Query
Language) Lanjut
2.3.2 KODE UNIT : TIK.PR03.002.01
2.3.3 DESKRIPSI UNIT : Unit ini akan menentukan kompetensi yang
diperlukan untuk mengoperasikan
perangkat aplikasi (bahasa pemrograman)
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 12 dari 58
berbasis data deskripsi atau SQL (Structured
Query Language) . Kemampuan dalam
mengoperasikan bahasa data deskripsi atau
SQL dapat menggunakan perintah-perintah
DDL (Data Definition Language) dan DML
(Data Manipulation Language). Kemampuan
yang dimiliki pada tingkat lanjut ini adalah
kemampuan yang telah dimiliki pada tingkat
dasar dan ditambah kemampuan untuk
membuat dan mengoperasikan prosedur,
fungsi dan trigger.
2.3.4ELEMEN KOMPETENSI
ELEMEN KOMPETENSI KRITERIA UNJUK KERJA
01 Membuat dan
mengoperasikan
prosedur
1.2 Prosedur dibuat dan diatur dengan
menggunakan perintah standar pada
DDL dan DML.
1.3 Parameter prosedur diproses sesuai
dengan kebutuhan di dalam prosedur.
1.4 Prosedur disimpan dan diberi nama.
1.5 Prosedur dapat dijalankan dan bekerja
dengan benar.
02 Membuat dan
mengoperasikan
prosedur dan fungsi
2.2 Fungsi dibuat dan diatur dengan
menggunakan perintah standar pada
DDL dan DML.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 13 dari 58
2.3 Parameter fungsi diproses sesuai
dengan kebutuhan di dalam fungsi.
2.4 Fungsi disimpan dan diberi nama.
2.5 Fungsi dapat dijalankan dan bekerja
dengan benar.
03 Membuat dan
mengoperasikan trigger
3.1 Trigger dibuat dan diatur dengan
penggunaan perintah standar pada
DDL dan DML.
3.2Trigger disimpan dan diberi nama.
3.3Trigger dapat dijalankan dan bekerja
dengan benar.
04Mengoperasikan Commit
dan Rollback data tabel
4.1 Perintah commit digunakan untuk
penyimpanan data ke dalam fisik file.
4.2 Perintah rollback digunakan untuk
pembatalan perintah yang telah
dikerjakan dan penyimpanan data ke
dalam fisik file tidak termasuk.
4.3 Perintah commit dan rollback
dipastikan bekerja dengan benar.
2.3.5Batasan Variabel
Batasan variabel unit kompetensi ini adalah sebagai berikut:
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 14 dari 58
1. Unit ini berlaku untuk seluruh sektor teknologi informasi dan
komunikasi.
2. Mengoperasikan bahasa pemrograman data deskripsi (SQL -
Structured Query Language) Level 2 bersifat internal pada bidang
teknologi informasi dan komunikasi.
2.3.6Panduan Penilaian
Panduan penilaian terdiri dari :
1. Pengetahuan dan keterampilan penunjang
Untuk mendemontrasikan kompetensi, diperlukan bukti
keterampilan dan pengetahuan dibidang berikut ini :
1.1 Pengetahuan dasar yang dibutuhkan :
1.1.1 Pengoperasian software aplikasi basis data.
1.1.2 On site training sesuai dengan perangkat lunak
bahasa pemrograman basis data yang digunakan.
1.1.3 Konsep basis data.
2. Konteks penilaian
Kompetensi harus diujikan di tempat kerja atau tempat lain
secara teori dan praktek dengan kondisi kerja sesuai dengan
keadaan normal.
3. Aspek penting penilaian
Aspek yang harus diperhatikan :
3.1 Kemampuan untuk prosedur dibuat dan diatur dengan
menggunakan perintah standar pada DDL dan DML.
3.2 Kemampuan membuat dan mengoperasikan prosedur dan
fungsi.
3.3 Kemampuan membuat dan mengoperasikan trigger.
3.4 Kemampuan mengoperasikan commit dan rollback data
table.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 15 dari 58
4. Kaitan dengan unit-unit lainnya
4.1 Unit ini didukung di dalam mengoperasikan bahasa
pemrograman data deskripsi (SQL-Structured Query
Language) lanjut, contoh mencakup namun tidak terbatas
pada : Seluruh unit pemrograman basis data.
4.2 Pengembangan pelatihan untuk memenuhi persyaratan
dalam unit ini perlu dilakukan dengan hati-hati. Untuk
pelatihan pra kejuruan umum, institusi harus menyediakan
pelatihan yang mempertimbangkan serangkaian konteks
industri seutuhnya tanpa bias terhadap sektor tertentu.
Batasan variabel akan membantu dalam hal ini. Untuk
sektor tertentu/khusus, pelatihan harus disesuaikan untuk
memenuhi kebutuhan sektor tersebut.
2.3.7Kompetensi Kunci
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 16 dari 58
NO KOMPETENSI KUNCI DALAM UNIT INITINGKA
T
1Mengumpulkan, mengorganisir dan
menganalisa informasi2
2 Mengkomunikasikan ide-ide dan informasi 2
3Merencanakan dan mengorganisir aktivitas-
aktivitas2
4 Bekerja dengan orang lain dan kelompok 1
5 Menggunakan ide-ide dan teknik matematika 2
6 Memecahkan masalah 2
7 Menggunakan teknologi 2
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 17 dari 58
BAB III
STRATEGI DAN METODE PELATIHAN
3.1. Strategi Pelatihan
Belajar dalam suatu sistem Berdasarkan Kompetensi berbeda
dengan yang sedang “diajarkan” di kelas oleh Pelatih. Pada sistem
ini Anda akan bertanggung jawab terhadap belajar Anda sendiri,
artinya bahwa Anda perlu merencanakan belajar Anda dengan
Pelatih dan kemudian melaksanakannya dengan tekun sesuai
dengan rencana yang telah dibuat.
Persiapan/perencanaan
a. Membaca bahan/materi yang telah diidentifikasi dalam setiap tahap
belajar dengan tujuan mendapatkan tinjauan umum mengenai isi
proses belajar Anda.
b. Membuat catatan terhadap apa yang telah dibaca.
c. Memikirkan bagaimana pengetahuan baru yang diperoleh
berhubungan dengan pengetahuan dan pengalaman yang telah
Anda miliki.
d. Merencanakan aplikasi praktik pengetahuan dan keterampilan Anda.
Permulaan dari proses pembelajaran
a. Mencoba mengerjakan seluruh pertanyaan dan tugas praktik
yang terdapat pada tahap belajar.
b. Merevisi dan meninjau materi belajar agar dapat menggabungkan
pengetahuan Anda.
Pengamatan terhadap tugas praktik
a. Mengamati keterampilan praktik yang didemonstrasikan oleh
Pelatih atau orang yang telah berpengalaman lainnya.
b. Mengajukan pertanyaan kepada Pelatih tentang konsep sulit yang
Anda temukan.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 18 dari 58
Implementasi
a. Menerapkan pelatihan kerja yang aman.
b. Mengamati indikator kemajuan personal melalui kegiatan praktik.
c. Mempraktikkan keterampilan baru yang telah Anda peroleh.
Penilaian
Melaksanakan tugas penilaian untuk penyelesaian belajar Anda.
3.2. Metode Pelatihan
Terdapat tiga prinsip metode belajar yang dapat digunakan. Dalam
beberapa kasus, kombinasi metode belajar mungkin dapat
digunakan.
Belajar secara mandiri
Belajar secara mandiri membolehkan Anda untuk belajar secara
individual, sesuai dengan kecepatan belajarnya masing-masing.
Meskipun proses belajar dilaksanakan secara bebas, Anda
disarankan untuk menemui Pelatih setiap saat untuk
mengkonfirmasikan kemajuan dan mengatasi kesulitan belajar.
Belajar Berkelompok
Belajar berkelompok memungkinkan peserta untuk dating bersama
secara teratur dan berpartisipasi dalam sesi belajar berkelompok.
Walaupun proses belajar memiliki prinsip sesuai dengan kecepatan
belajar masing-masing, sesi kelompok memberikan interaksi antar
peserta, Pelatih dan pakar/ahli dari tempat kerja.
Belajar terstruktur
Belajar terstruktur meliputi sesi pertemuan kelas secara formal yang
dilaksanakan oleh Pelatih atau ahli lainnya. Sesi belajar ini umumnya
mencakup topik tertentu.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 19 dari 58
BAB IV
MATERI UNIT KOMPETENSI
4.1 Tujuan Instruksional Umum
o Siswa mampu menceritakan dan menjelaskan konsep
pemrograman data deskripsi (SQL – Structured Query Language)
o Siswa dapat mengoperasikan bahasa pemrograman data
deskripsi (SQL – Structured Query Language)
4.2 Tujuan Instruksional Khusus
o Siswa mengerti dan mampu menjelaskan apa yang dimaksud
dengan DDL (Data Definition Language)
o Siswa dapat menggolongkan perintah apa saja yang temasuk
DDL
o Siswa mengerti dan mampu menjelaskan apa yang dimaksud
dengan DML (Data Manipulation Language)
o Siswa dapat menggolongkan perintah apa saja yang termasuk
DML
o Siswa dapat menjelaskan penggunaan cursor
o Siswa mengerti apa yang dimaksud dengan rule dan constraint
o Siswa dapat membuat dan mengaplikasikan rule dan constraint
o Siswa mengerti apa yang dimaksud dengan fungsi dan prosedur
o Siswa mengetahui dan mampu menggunakan perintah-perintah
DDL dan DML untuk membuat fungsi dan prosedur
o Siswa mengetahui dan mampu menjelaskan penggunaan
Trigger
o Siswa mampu menyebutkan jenis-jenis Trigger
o Siswa mengerti apa yang dinamakan transaksi
o Siswa mengerti pengunaan commit dan rollback
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 20 dari 58
o Siswa dapat mengelola dan mengoperasikan pemrograman data
deskripsi dengan baik dan benar
4.3 Sekilas Tentang DDL dan DML
Seperti yang telah Anda ketahui sebelumnya, SQL secara garis
besar dibagi kedalam 2 kelompok utama, yaitu DDL (Data Definition
Language) dan DML (Data Manipulation Language). Sekedar
mengingatkan kembali, Yang dimaksud dengan DDL adalah
pernyataan-pernyataan yang digunakan untuk membuat dan
mengubah struktur tabel atau obyek di dalam basis data. Sedangkan
DML adalah kumpulan pernyataan-pernyataan yang digunakan
untuk bekerja pada data di dalam basis data.
Pada pembahasan di SQL Dasar, Anda tentu mengenal pernyataan-
pernyataan seperti berikut:
- CREATE DATABASE ...
- CREATE TABLE ...
- ALTER TABLE ...
- CREATE INDEX ...
- DROP TABLE ...
- CREATE VIEW ...
- DROP DATABASE ...
- dll
Pernyataan-pernyataan diatas merupakan DDL yang selalu
digunakan untuk membuat dan mengelola basis data.
Anda tentu juga telah mengetahui pernyataan-pernyataan
seperti SELECT, INSERT, UPDATE dan DELETE pada pembahasan SQL
Dasar. Pernyataan-pernyataan ini merupakan pernyataan DML. Dari
pengertian DDL dan DML yang telah dijelaskan diatas, Anda tentu
sudah dapat membedakan pernyataan mana yang digolongkan ke
dalam DDL dan DML.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 21 dari 58
Dalam pelatihan ini, kita tidak lagi membahas itu, yang akan
kita bahas adalah mengenai cursor, rule, constraint, fungsi,
prosedur, trigger dan transaksi. Sehingga hanya DDL dan DML yang
bersangkutan dengan topik-topik inilah yang akan kita pelajari lebih
lanjut pada sub-bab masing-masing.
Namun perlu digaris-bawahi, DDL dan DML untuk masing-
masing aplikasi SQL (Transact-SQL, Oracle SQL, mySQL, PostgreSQL,
dll) yang digunakan dapat bervariasi, sama dan berbeda. Misalnya,
di mySQL 3.22.15 keatas terdapat pernyataan DML, INSERT
DELAYED ... yang tidak terdapat pada Transact-SQL. Oracle dan
mySQL memiliki pernyataan DDL, TRUNCATE..
Namun, Jadi, untuk DDL dan DML yang lebih spesifik, Anda
sebaiknya mengacu pada referensi aplikasi SQL yang Anda gunakan.
Pada pelatihan ini, sedapat mungkin saya menggambarkan topik-
topik tersebut secara umum dan memberikan contoh-contoh yang
bervariasi untuk beberapa aplikasi SQL yang umum digunakan.
Namun, contoh-contoh pada pelatihan ini lebih banyak
menggunakan Transact-SQL (SQL Server).
4.4 Constraint dan Rule
Anda mungkin telah mengenal apa yang dinamakan constraint
pada pelatihan SQL Dasar sebelumnya. Namun, disini kita akan
membahas lebih rinci mengenai constraint dan apa yang disebut
dengan rule. Constraint adalah obyek yang merupakan bagian dari
tabel dan fungsinya adalah untuk mengecek data agar memenuhi
kondisi tertentu. Sejauh ini, kita mengenal 5 jenis constraint yaitu:
a. Primary Key (PK)
Primary Key adalah suatu kunci utama yang dibentuk dari sebuah
kolom atau lebih sehingga menjadikan setiap data itu bersifat
unik. Primary Key tidak boleh bernilai null. Contoh: Nomor Induk
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 22 dari 58
Pegawai. Tidak mungkin 2 orang pegawai memiliki nomor induk
pegawai yang sama.
b. Foreign Key (FK)
Foreign Key adalah kunci asing yang terdapat pada satu kolom
atau lebih di dalam suatu tabel yang merujuk pada kunci di tabel
lainnya sebagai link antara tabel-tabel tersebut. Foreign Key tidak
bersifat unik dan biasanya mengacu pada primary key di tabel
lain. Contoh:
Pada tabel Pegawai terdapat NIP yang berfungsi sebagai PK,
sedangkan pada tabel Absensi terdapat kolom NIP yang berfungsi
sebagai FK. NIP pada tabel Absensi merujuk pada NIP yang ada
pada tabel Pegawai.
c. Unique Constraint
Unique Constraint biasanya dikenal juga sebagai Alternate Key
(AK). Sifatnya unik, artinya tidak ada data yang sama, berdiri
sendiri (tidak ada
relasi ke tabel lain atau tidak menjadi sumber acuan). Contohnya:
Nomor Identitas Penduduk tiap Pegawai. Setiap pegawai tentu
memiliki KTP dan nomor KTP tersebut tentu berbeda antara setiap
pegawai.
d. Check Constraint (CK)
Check Constraint berfungsi untuk membatasi penyisipan data
pada suatu tabel agar memenuhi kriteria-kriteria yang ditetapkan.
Contoh:
kdAbsensi pada tabel Absensi harus diawali dengan huruf ‘A’
e. Default Constraint (DF)
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 23 dari 58
Default Constraint berfungsi untuk memberkan nilai default pada
data dalam suatu tabel. Jika kita tidak menginisialisasikan nilai
pada sebuah data maka nilai pada data tersebut akan berisi nilai
default yang ditentukan sebelumnya pada DF.
Adapun cara untuk membuat dan menghapus constraint
adalah sebagai berikut:
a. Membuat Constraint
Constraint dapat dibuat pada saat mendefinisikan tabel maupun
secara terpisah dengan sintaks berikut:
ALTER TABLE nama_tabel
ADD CONSTRAINT nama_constraint
jenis_constraint (...)
b. Menghapus Constraint
ALTER TABLE nama_tabel
DROP CONSTRAINT nama_constraint
Berikut adalah contoh penggunaan constraint:
Pada tabel Pegawai jika ada data pada kolom kota yang tidak
diinisialisasi maka nilai defaultnya adalah ‘Jakarta’. Setiap pegawai
harus melakukan absensi saat masuk dan pulang kerja. kdAbsensi
pada tabel Absensi harus diawali huruf ‘AD’ atau ‘AP’.
CREATE TABLE Pegawai
(nip CHAR(10), nama VARCHAR(30), no_ktp CHAR(12)
alamat VARCHAR(30), kota VARCHAR(15),
CONSTRAINT pk_nip PRIMARY KEY(nip))
CREATE TABLE Absensi
(kdAbsensi CHAR(4), nip CHAR(10),
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 24 dari 58
jam_msk DATETIME, jam_klr DATETIME)
ALTER TABLE Absensi
ADD CONSTRAINT pk_absensi PRIMARY KEY(kdAbsensi)
ALTER TABLE Absensi
ADD CONSTRAINT fk_absensi
FOREING KEY(nip) REFERENCES Pegawai(nip)
ALTER TABLE Pegawai
ADD CONSTRAINT ak_pegawai UNIQUE(no_ktp)
ALTER TABLE Pegawai
ADD CONSTRAINT df_pegawai DEFAULT ‘Jakarta’ FOR kota
ALTER TABLE Absensi
ADD CONSTRAINT ck_absensi
CHECK (LEFT(kdAbsensi,2)=’AD’ OR
LEFT(kdAbsensi,2)=’AP’)
Selain constraint, ada juga yang dinamakan rule. Rule adalah
bentuk lain dari Check Constraint dan merupakan sebuah obyek
dalam SQL. Berikut adalah cara membuat rule dengan Transact-
SQL :
CREATE RULE nama_rule AS kondisi
Contoh:
CREATE RULE ruleKdAbsensi
AS LEFT(@kdAbsensi,2) IN (‘AD’,’AP’)
Untuk menerapkan rule pada kolom yang sesuai gunakan fungsi
berikut:
Exec sp_bindrule ‘nm_rule’,’nm_tabel’,’nm_kolom’
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 25 dari 58
Sedangkan untuk memutuskan hubungan rule dari kolom yang
bersangkutan digunakan fungsi :
Exec sp_unbindrule ’nm_tabel’,’nm_kolom’
Sedangkan untuk menghapus rule yang telah dibuat, semua kolom
yang terhubung dengan rule tersebut harus diputuskan terlebih
dahulu. Sintaks :
DROP RULE nama_rule
Contoh:
CREATE RULE ruleKdAbsensi
AS LEFT(@kode,2) IN (‘AD’,’AP’)
sp_bindrule ‘ruleKdAbsensi’,’Absensi’,’kdAbsensi’
sp_unbindrule ‘Absensi’, ‘kdAbsensi’
DROP RULE ruleKdAbsensi
Catatan: @kode adalah nama variabel dalam T-SQL
Transact-SQL juga menyediakan cara lain untuk membuat Default
Constraint, yaitu dengan ‘DDL Default’.
CREATE DEFAULT nama_default
AS expression
Contoh:
CREATE DEFAULT defKota AS ‘Jakarta’
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 26 dari 58
Untuk menghubungkan default ke kolom yang sesuai, dapat
menggunakan fungsi berikut:
Exec sp_bindefault ’nm_default’,’nm_tabel.nm_kolom’
Sedangkan untuk memutuskan hubungan default dari kolom yang
bersangkutan digunakan fungsi :
Exec sp_unbindrule ’nm_tabel.nm_kolom’
4.5 Fungsi dan Prosedur
Sebelum Anda mulai membuat prosedur, Anda terlebih dahulu
harus mengerti tentang variabel dan fungsi-fungsi yang dapat Anda
gunakan. Dalam topik ini, kita cenderung menggunakan bahasa T-
SQL (Transact-SQL) pada SQL Server. Untuk membuat prosedur di
mySQL, Anda membutuhkan mySQL minimal versi 5. Yang penting
disini adalah konsep dalam membuat dan mengoperasikan prosedur.
Dengan mengerti konsep ini, maka aplikasi apapun yang Anda
gunakan tidak menjadi masalah. Anda cukup memahami fungsi-
fungsi atau sintaks-sintaks dari aplikasi yang Anda gunakan. Seperti
yang saya jelaskan di awal bahwa DDL dan DML untuk tiap aplikasi
dan fungsi yang disediakan tidak sama. Namun, semua aplikasi itu
memiliki konsep yang sama dan mengacu pada standar SQL
tertentu.
4.5.1Variabel
Variabel adalah suatu referensi atas lokasi memori yang
menyimpan data. Bila Anda bekerja pada data yang berubah-ubah
dan ingin menempatkan data tersebut pada lokasi memori yang
sama maka Anda harus mendefinisikan variabel. Variabel merujuk
pada lokasi dimana data anda tersebut disimpan. Variabel pada
aplikasi SQL manapun secara umum dikelompokkan ke dalam 2
bagian yaitu:
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 27 dari 58
a. Global Variable
Global Variable adalah variabel yang telah dibuat oleh aplikasi
yang bersangkutan dan diatur oleh sistem. Untuk Transact-SQL,
variabel global ditandai dengan @@. Beberapa variabel global
yang sering digunakan antara lain:
@@FETCH_STATUS
Variabel ini bernilai 0 bila pernyataan FETCH berhasil mengambil
data. Variabel ini diinisialisasi setelah pernyataan FETCH
dieksekusi dan umumnya digunakan untuk menghentikan
perulangan WHILE pada cursor. Variabel @@FETCH_STATUS juga
dapat bernilai –2,
bila baris data yang ingin diambil telah dihapus setelah cursor
dibuat. Nilai ini hanya berlaku untuk cursor keyset-driven (scroll).
@@CURSOR_ROWS, @@ROWCOUNT
Variabel @@CURSOR_ROWS mengembalikan jumlah baris data
dalam cursor yang terbaru. Sedangkan variabel @@ROWCOUNT
mengembalikan jumlah baris data yang terperbaharui akibat
suatu query. Variabel @@ROWCOUNT umumnya digunakan
bersama pernyataan UPDATE dan DELETE untuk mengetahui
berapa jumlah baris data yang telah berhasil diperbaharui.
@@ERROR
Variabel ini mengembalikan nilai kesalahan untuk pernyataan SQL
yang terakhir kali dijalankan. Jika bernilai 0, artinya pernyataan
tersebut suskes dijalankan tanpa kesalahan.
@@IDENTITY
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 28 dari 58
Variabel global ini mengembalikan nilai yang paling terakhir
digunakan untuk kolom identitas. Kolom identitas bersifat read-
only dan dikelola oleh sistem. Setiap ada penambahan data pada
tabel, aplikasi menggunakan informasi ini sebagai kunci untuk
menambahkan data pada tabel lain terutama yang saling
berhubungan melalui foreign key.
Selain variabel global diatas, Transact-SQL masih memiliki banyak
variabel global lain. Berikut adalah daftar beberapa variabel
global yang umum digunakan:
Variabel Global Keterangan
@@CONNECTIONS Jumlah login
@@CPU_BUSY Jumlah total waktu server CPU dalam
detik
@@IDLE Jumlah waktu CPU yang sedang tidak
bekerja
@@IO_BUSY Jumlah waktu Input/Output
@@LANGID ID Bahasa yang sedang aktif
@@LANGUAGE Nama Bahasa yang sedang aktif
@@MAX_CONNECTIONS Maksimum koneksi dalam waktu yang
sama
@@MAX_PRECISION Tingkat ketelitian nilai desimal atau
numerik
@@NEST_LEVEL Jumlah nest level yang sedang aktif
@@SERVER_NAME Nama server lokal
@@SPID ID Server yang sedang proses
@@TOTAL_ERRORS Jumlah kesalahan selama SQL berjalan
@@TOTAL_READ Jumlah pembacaan pada Disk
@@TOTAL_WRITE Jumlah penulisan pada Disk
@@TRANCOUNT Total transaksi yang dilakukan active
user
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 29 dari 58
b. User-Defined Variable
Jika variabel global adalah variabel yang dibuat oleh sistem,
maka variabel ini adalah variabel yang didefinisikan sendiri oleh
user. Dalam T-SQL, caranya adalah:
DECLARE @nama_variabel tipe_variabel
Dalam mySQL atau PostgreSQL, variabel didefinisikan dengan
diawali tanda ‘$’.
Contoh:
DECLARE @intA INT
DECLARE @intX INT, @intY INT, @Z CHAR(5)
SELECT @X = 20
SET @Y = 5
SET @Z = ‘Hasil’
SET @A = @X / @ Y
PRINT @X + ‘/’ + @Y
PRINT @Z + CAST(@A AS CHAR)
4.5.2Statement
Jika Anda sudah terbiasa dalam pemrograman maka istilah
Statement Control tentu sudah tidak asing lagi bagi Anda terutama
flow statement yang terdiri dari Seleksi dan Perulangan. Bagian ini
dipastikan dimiliki oleh semua aplikasi SQL. Yang berbeda hanya
cara penggunaannya berkaitan dengan bentuk pendefinisian sintaks
saja.
a. Seleksi
Seleksi umumnya memiliki 2 statement yaitu:
1. IF...ELSE
Pada T-SQL, Pernyataan IF tidak ditutup dengan END IF. Ada
beberapa format yang bisa digunakan antara lain:
IF kondisi
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 30 dari 58
{statement}
ELSE
{statement}
Atau,
IF kondisi
BEGIN
{multiple statements}
END
ELSE
BEGIN
{multiple statements}
END
Untuk mySQL, perrnyataan IF didefinisikan sebagai berikut:
IF kondisi THEN
{statement}
ELSE
{statement}
END IF
Untuk memudahkan pemahaman, lihatlah contoh berikut:
IF (SELECT COUNT(*) FROM Pegawai
WHERE Kota=’Medan’) > 0
BEGIN
-- Proses pegawai yang
-- berasal dari Medan
END
ELSE
BEGIN
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 31 dari 58
PRINT “Tidak ada pegawai dari Medan!”
END
2. CASE
Fungsi pernyataan CASE sama dengan IF. Berikut adalah
sintaks penggunaannya dalam T-SQL:
CASE ekspresi_input
WHEN ekspresi_1 THEN ekspresi_output_1
...
WHEN ekspresi_n THEN ekspresi_output_n
END
Contoh:
CASE @tingkat_pegawai
WHEN ‘I’ THEN 10
WHEN ‘II’ THEN 15
WHEN ‘III’ THEN 20
END
b. Perulangan (Looping)
Pernyataan perulangan dalam SQL dikenal dengan pernyataan
WHILE. Perulangan sering digunakan terutama ketika ingin
mengambil data dari cursor. Jika pernytaan yang akan
dijalankan hanya sebaris maka BEGIN/END tidak diperlukan
sama halnya dengan pernyataan IF. Sintaks dalam T-SQL
adalah
WHILE kondisi
BEGIN
{multiple statements}
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 32 dari 58
END
Contoh:
DECLARE @x INT
SELECT @x = 0
WHILE (@x<5)
BEGIN
PRINT ‘LOOPING’
SET @x = @x + 1
END
c. Continue dan Break
Kedua keyword ini sering digunakan bersama pernyataan
WHILE untuk mengubah alur eksekusi. Continue menghentikan
perulangan yang sedang berlangsung dan melanjutkan ke
pernyataan berikutnya. Dengan kata lain, kondisi WHILE
dievaluasi dan perulangan terjadi kembali. Jika bernilai salah,
perulangan WHILE dilewatkan dan eksekusi dilanjutkan pada
pernyataan berikutnya. Sedangkan Break akan menghentikan
perulangan pada saat itu juga dan keluar dari perulangan.
Perhatikan contoh dibawah ini!
WHILE <condition>
BEGIN
-- Isi data ke variabel
IF @x < 0
CONTINUE
IF @x > 999
BREAK
-- Proses
END
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 33 dari 58
Jika x bernilai negatif maka kode tidak dijalankan dan
dilanjutkan ke baris berikutnya. Jika x bernilai 1000, maka
perulangan berhenti.
d. GOTO dan RETURN
Kedua pernyataan memungkinkan kita untuk mengubah alur
eksekusi dengan membuat percabangan ke lokasi lain di
dalam prosedur. Pernyataan GOTO dapat memanggil baris
pernyataan lain yang diberi label. Contoh pernyataan GOTO:
RepeatLoop:
FETCH NEXT INTO variable_list
IF @@FETCH_STATUS = 0
BEGIN
-- Proses
GOTO RepeatLoop
END
Pernyataan RETURN menghentikan prosedur tanpa kondisi dan
dapat mengembalikan hasil. Untuk mengembalikan nilai dalam
SQL dapat digunakan sintaks seperti berikut:
RETURN ekspresi
Selain Flow-Control Statement diatas, T-SQL juga
menyediakan pernyataan-pernyataan lain dan yang umumnya
digunakan dalam prosedur adalah PRINT dan RAISERROR.
a. PRINT
PRINT ekspresi
b. RAISERROR
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 34 dari 58
Fungsi ini digunakan untuk mendefinisikan error kita sendiri
dari prosedur yang kita buat. Sintaksnya adalah:
RAISERROR errorNum, severity, state
Argumen pertama adalah nomor error, dan harus bernilai
antara 50,001 s/d 2,147,483,648 karena kode error dibawah
50,001 adalah kode error dari SQL Server. Argumen kedua is
tingkat kesa-
lahan, nilainya antara 1 sampai 18. Dan argumen terakhir
adalah integer antara 1 sampai 127, yang dapat digunakan
untuk mengembalikan informasi tambahan mengenai
kesalahan yang terjadi.
4.5.3Fungsi-fungsi
Pada bagian ini, kita hanya akan bahas fungsi-fungsi yang didukung
oleh T-SQL. Setiap aplikasi yang Anda gunakan memiliki fungsi-
fungsi yang didukungnya sendiri. Fungsi dalam T-SQL dikelompokkan
menjadi beberapa bagian antara lain:
a. Manipulasi String
Fungsi-fungsi terkait manipulasi string adalah sebagai berikut:
- ASCII(karakter), untuk mendapatkan nilai dari karakter
- Char(nilai), kebalikan dari fungsi ASCII
- CharIndex(pola, ekspresi), mengembalikan posisi dari
hasil pertama dari pencarian argumen pertama dalam
argumen kedua. Jika Anda mengenal Visual Basic, maka fungsi
ini sama dengan IntStr().
- Left(string,n), mengembalikan string dari kiri sejauh n
karakter
- Right(string,n), mengembalikan string dari kanan sejauh n
karakter
- Len(string), mengembalikan panjang string
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 35 dari 58
- DataLength(variabel), mengembalikan panjang dari
variabel yang dideklarasikan
- Lower(string), mengubah string menjadi huruf kecil
- Upper(string), mengubah string menjadi huruf kapital
- Ltrim(string), menghilangkan spasi di bagian kiri string
- Rtrim(string), menghilangkan spasi di bagian kanan string
- Space(n), menambah spasi sejumlah n
- STR(float,n,dec), mengubah ekspresi float menjadi string
sesuai dengan panjang karakter n dan dec untuk menentukan
jumlah angka di belakang koma. Misalnya:
PRINT STR(3.14159, 4, 2) Hasilnya 3.14
- Replace(string1,string2,string3), untuk mengganti
setiap kesamaan string1 di dalam string2 dengan string3.
- Replicate(karakter,n), untuk mengembalikan string baru
dengan mengulang karakter sebanyak n-kali.
- Reverse(string), membalikkan urutan karakter dari string
- Substring(string,m,n), mengembalikan string yang
diambil dari m sepanjang n. Sama dengan fungsi Mid() dalam
Visual Basic
- Nchar(nilai), mengembalikan karakter Unicode dari nilai
- STUFF(string1,m,n,string2), mengganti bagian dari
string1 mulai dari m sepanjang n dengan string2. Contoh:
DECLARE @s CHAR(30)
SET @s = "VB Programming"
SET @s = STUFF(@s,1,2,"SQL")
PRINT @s
Yang tercetak adalah “SQL Programming”
- QuoteName(string,quote_char), mengembalikan string
Unicode dengan quote_char sebagai pemisah. Contoh:
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 36 dari 58
QUOTENAME(‘Halim’, ‘"’)
Hasilnya adalah “Halim”
QUOTENAME(‘Halim’, ‘{’)
Hasilnya adalah {Halim}
‘@’ karakter ini tidak diperbolehkan.
b. Fungsi Konversi
Fungsi-fungsi terkait konversi data adalah sebagai berikut:
- Convert(tipedata,var,style), untuk mengkonversi tipe
data dari var menjadi tipe data yang didefinisikan. Sedangkan
argumen style untuk menentukan format tanggal ketika
mengkonversi tipe data DateTime dan SmallDate.
- Cast(variabel AS tipedata), untuk mengkonversi variabel
atau nilai ke dalam tipe data yang ditentukan.
c. Fungsi Tanggal dan Waktu
Fungsi-fungsi terkait dengan penanggalan dan waktu adalah
sebagai berikut:
- GetDate(), mengembalikan tanggal dan waktu saat ini dari
mesin yang menjalankan SQL Server
- DateAdd(interval,num,datetme), menambah nilai argumen
datetime dengan interval yang diberikan. Nilai interval yang
dapat
digunakan
ditunjukkan
dalam tabel
berikut:
Interval Nilai Range
year yy, yyyy 1753–9999
quarter qq, q 1–4
month mm, m 1–12
dayofyear dy, y 1–366
day dd, d 1–31
week wk, ww 1–53
weekday Dw 1–7
hour Hh 0–23
minute mi, n 0–59
second Ss 0–59
millisecond Ms 0–999
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 37 dari 58
- DateDiff(interval,datetime1,datetime2), untuk me-
ngembalikan selisih antara datetime1 dan datetime2 dalam
interval yang diberikan.
- DatePart(interval,datetime), mengembalikan integer
yang mewakili bagian dari datetime.
- DateName(interval,datetime), mengembalikan nama dari
bagian datetime. Contoh:
DateName(month, ‘31/05/2007’)
Hasilnya adalah May
- Day(), Month(), Year(), mengembalikan hari, bulan dan
tahun.
d. Fungsi Lain
- COALESCE(ekspresi1,ekspresi2, "), fungsi ini bertujuan
untuk mengembalikan ekspresi pertama yang tidak null dalam
daftar argumen yang diberikan. Misalnya Anda ingin
mengetahui kolom yang isinya Null, maka Anda dapat
melakukan dengan cara berikut:
SELECT nip, COALESCE(alamat, nama)
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 38 dari 58
FROM Pegawai
- IsNull(kolom,nilai), Jika argumen pertama tidak null
maka yang dikembalikan adalah nilai dari argumen
pertamanya. Bila null maka nilai dari argumen kedua yang
dikembalikan. Misalnya:.
SELECT nama_barang, ISNULL(harga, 0.0)
FROM Barang
- NullIf(ekspresi1,ekspresi2), jika kedua argumen bernilai
sama maka yang dikembalikan adalah null. Jika berbeda maka
argumen pertama yang dikembalikan.
Anda bisa membuat fungsi sendiri dengan perintah CREATE
FUNCTION. Misalnya kita ingin membuat fungsi penjumlahan
antara 2 angka, berikut contoh dalam PostgreSQL.
CREATE FUNCTION Plus(FLOAT, FLOAT) RETURNS FLOAT AS ’
BEGIN
RETURN $1 + $2;
END;’
SELECT Plus(5,8);
4.5.4Stored Procedure
Stored Procedure adalah kumpulan pernyataan SQL yang
disimpan di server, sehingga dapat digunakan kapan saja untuk
melakukan suatu perintah tertentu tanpa harus mendefinisi ulang
perintah-perintah setiap data diperlukan. Setiap aplikasi mempunyai
mekanisme masing-masing untuk membuat dan mengoperasikan
prosedur. mySQL misalnya mengacu pada standar SQL:2003 dan
menggunakan sintaks yang sama dengan IBM DB2. Dan fitur stored
procedure pada mySQL hanya didukung oleh mySQ Lversi 5 keatas.
Lain pula dengan PostgreSQL yang memiliki caranya sendiri dimana
lebih kearah object-oriented.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 39 dari 58
Mengapa prosedur dibutuhkan? Ada beberapa alasan yang
baik untuk menjawab pertanyaan ini, antara lain:
- Ketika beberapa aplikasi klien dari berbagai macam platform
hendak melakukan operasi yang sama terhadap basis data.
- Ketika keamanan menjadi prioritas utama. Prosedur
memberikan konsistensi dan lingkungan yang aman dan semua
prosedur dapat memastikan seluruh operasi tercatat dengan
benar. Pengguna tidak memiliki akses secara langsung kedalam
tabel-tabel di dalam basis data tetapi dapat menjalankan
prosedur-prosedur yang telah didefinisikan sebelumnya.
- Stored procedure meningkatkan kinerja dan efisiensi karena
tidak membutuhkan pengiriman banyak informasi antara klien
dan server.
- Stored procedure dapat dieksekusi dari aplikasi lain diluar
aplikasi SQL. (Reusable)
Sintaks untuk membuat stored procedure pada T-SQL adalah
sebagai berikut:
CREATE PROCEDURE nama_prosedur
AS
{statements}
Sedangkan untuk menjalankan prosedur yang sudah buat adalah
dengan sintaks:
EXEC nama_prosedur
Atau, cukup dengan memanggil nama prosedurnya saja.
Untuk mengubah stored procedure digunakan sintaks:
ALTER PROCEDURE nama_prosedur
AS
{statements}
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 40 dari 58
Contoh:
USE Perusahaan
IF EXISTS (SELECT name FROM sysobjects
WHERE name = ‘CariPegawai’)
DROP PROCEDURE CariPegawai
GO
CREATE PROCEDURE CariPegawai
@Arg1 VARCHAR(99), @Arg2 VARCHAR(99),
AS
DECLARE @CariArg VARCHAR(999)
DECLARE @SQLStr VARCHAR(999)
SET @Arg1 = LTRIM(RTRIM(@Arg1))
SET @Arg2 = LTRIM(RTRIM(@Arg2))
SET @CariArg = "WHERE "
IF LEN(@Arg1) > 0
SET @CariArg = @CariArg + "nama LIKE ‘%" +
@Arg1 + "%’ AND "
IF LEN(@Arg2) > 0
SET @CariArg = @CariArg + "nama LIKE ‘%" +
@Arg2 + "%’ AND "
IF @CariArg > 3
SET @CariArg = SUBSTRING(@CariArg, 1,
LEN(@CariArg)-4)
IF LEN(@CariArg) = 6
SET @SQLStr = "SELECT nama FROM Pegawai"
ELSE
SET @SQLStr = "SELECT nama FROM Pegawai " +
@CariArg
EXECUTE (@SQLStr)
Untuk mengetes prosedur yang kita buat:
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 41 dari 58
DECLARE @arg1 varchar(99)
DECLARE @arg2 varchar(99)
SET @arg1 = ‘Halim’
EXEC CariPegawai @arg1, @arg2
Meskipun @arg2 tidak diinisialisasi atau berisi null, Anda tetap
harus mengirimkan 2 parameter tersebut.
4.5.5Penanganan Error
Penanganan error/kesalahan sangat dianjurkan dalam teknik
pemrograman yang baik sehingga program yang Anda buat tidak
mudah crash. Anda dapat menampilkan pesan kesalahan sesuai
dengan kesalahan yang terjadi pada program Anda sehingga akan
dapat lebih membantu pengguna untuk mendeteksi kesalahan yang
terjadi sehingga memungkinkan untuk perbaikan segera.
Contoh:
DECLARE @err INT
INSERT Pegawai
VALUES(’10.10.5562’,’Halim’,’02.180/201.L’,
‘Pemuda No. 11’,’Jakarta’)
SET @err = @@ERROR
PRINT ‘Error No: ‘ + CONVERT(CHAR(10),@err)
SELECT * FROM Pegawai
GO
Jika tidak ada kesalahan yang terjadi maka Error No yang tercetak
adalah 0.
Berikut adalah daftar nilai error yang dikembalikan oleh SQL Server.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 42 dari 58
4.6 Mengenal Cursor
Cursor dalam basis data hampir sama dengan fungsi cursor
pada aplikasi komputer Anda, misalnya pada layar aplikasi pengolah
kata. Ketika Anda menekan tombol { }, cursor bergeser ke bawah
melalui setiap baris teks setiap kalinya. Demikian pula ketika Anda
menekan tombol { }, cursor bergerak ke atas baris demi baris.
Atau ketika Anda menekan tombol { Page Up } dan { Page Down },
hasilnya cursor berpindah melampaui beberapa baris. Demikian
halnya dengan cursor di dalam basis data. Konsepnya sama.
Cursor memungkinkan Anda untuk memilih sekelompok data
(recordset), mengakses setiap baris data (record) sesuai dengan
yang ditunjuk oleh cursor tersebut. Fungsi umum cursor lainnya
adalah untuk menyimpan hasil query untuk digunakan kembali. Hasil
dari operasi cursor adalah berasal dari hasil pernyataan SELECT. Jika
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 43 dari 58
aplikasi atau prosedur yang Anda buat memerlukan penggunaan
sekelompok data secara berulang-ulang, maka Anda dianjurkan
menggunakan cursor daripada Anda melakukan query (mengekstrak
data) dari basis data secara berulang-ulang untuk data yang sama.
Disamping itu, Anda juga dapat mengakses setiap data hasil query
dengan cursor. Yang paling penting diingat dalam cursor adalah data
didalamnya dan posisi cursor tersebut.
Berikut adalah urutan atau langkah-langkah ketika Anda ingin
mengoperasikan cursor di dalam basis data :
1. Buat cursor terlebih dahulu.
Jika aplikasi yang Anda gunakan adalah Oracle, maka perintah
untuk membuat cursor adalah
DECLARE nama_cursor CURSOR
FOR {SELECT command | statement_name | block_name}
Dalam Transact-SQL, perintah untuk membuat cursor adalah
DECLARE nama_cursor CURSOR [SCROLL|STATIC]
FOR select_statement
[FOR {READ ONLY | UPDATE [of column_name_list]}]
Contoh:
DECLARE cur_Pegawai CURSOR
FOR select * from Pegawai
GO
Hasilnya, Anda sekarang memiliki cursor dengan nama
cur_Pegawai yang menampung semua data dari table Pegawai.
Sebelum dapat digunakan Anda harus membuka cursor tersebut
terlebih dahulu.
2. Buka cursor tersebut untuk digunakan di dalam prosedur atau
aplikasi.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 44 dari 58
Pernyataan untuk membuka cursor adalah
OPEN nama_cursor
Contoh:
OPEN cur_Pegawai
GO
3. Ambil data record, baris demi baris hingga mencapai akhir record
pada cursor.
Dalam hal ini, cursor memiliki 3 fungsi antara lain:
a. Fungsi Foward Only (Cursor hanya bisa maju), Default.
b. Fungsi Scroll (Cursor bisa maju mundur), ... CURSOR SCROLL
FOR ...
c. Cursor Static, ... CURSOR STATIC FOR ...
Untuk mengakses data di dalam cursor, kita menggunakan
perintah FETCH. Dalam Transact-SQL sintaksnya adalah sebagai
berikut:
FETCH [[NEXT|PRIOR|FIRST|LAST|
ABSOLUTE{n|@nvar}|
RELATIVE{n|@nvar}]
FROM]
{{[GLOBAL] nama_cursor}|@nama variabel cursor}
[INTO @nama variabel|[,...n]]
Pada sintaks diatas, Anda melihat beberapa argumen seperti
NEXT, PRIOR, FIRST, LAST, dll. Berikut adalah penjelasan untuk
masing-masing argumen tersebut :
a. NEXT
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 45 dari 58
Argumen NEXT merupakan argumen default. Jika Anda tidak
mendefinisikan argumen apapun, maka argumen NEXT yang
akan digunakan. Argumen NEXT mengembalikan hasil dalam
bentuk baris record yang sedang aktif dan bergerak maju.
b. PRIOR
Argumen PRIOR mengembalikan hasil dalam bentuk baris yang
mendahului baris yang sedang aktif sedangkan baris yang
sedang aktif tidak dikembalikan. Bila posisi cursor ada pada
baris pertama dan Anda melakukan FETCH PRIOR, maka tidak
ada hasil yang dikembalikan.
c. FIRST
Sesuai dengan namanya, argumen ini mengembalikan baris
pertama dalam cursor dan membuatnya aktif.
d. LAST
Kebalikan dari argumen sebelumnya, argumen LAST
mengembalikan baris terakhir dalam cursor dan membuatnya
aktif.
e. ABSOLUTE {n|@nvar}
Argumen ini mengembalikan nilai berdasarkan kondisi
parameter n atau @nvar yang diberikan.
- Jika n atau @nvar bernilai 0 maka tidak ada yang
dikembalikan, n harus bertipe integer constant dan @nvar
harus integer
- Jika n atau @nvar bernilai positif maka baris yang
dikembalikan adalah baris di depan cursor dan baris
tersebut menjadi aktif
- Jika n atau @nvar bernilai negatif maka baris yang
dikembalikan adalah baris yang berada pada posisi sebelum
akhir dari cursor dan baris tersebut menjadi aktif
f. RELATIVE {n|@nvar}
Argumen ini mengembalikan nilai berdasarkan kondisi
parameter n atau @nvar yang diberikan.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 46 dari 58
- Jika n atau @nvar bernilai 0 maka yang dikembalikan
adalah baris yang aktif, n harus bertipe integer constant
dan @nvar harus integer
- Jika n atau @nvar bernilai positif maka baris yang
dikembalikan adalah baris setelah baris yang aktif dan baris
tersebut menjadi aktif
- Jika n atau @nvar bernilai negatif maka baris yang
dikembalikan adalah baris yang mendahului baris yang aktif
dan baris tersebut menjadi aktif
g. Global Cursor
Nama cursor yang diberi argumen GLOBAL akan merujuk ke
suatu Global Cursor. @nama variabel cursor sendiri merupakan
nama dari Open cursor dimana Fetch dibuat.
Contoh:
DECLARE @nip CHAR(10)
DECLARE @nama CHAR(30)
DECLARE @no_ktp CHAR(12)
DECLARE @alamat CHAR(40)
FETCH cur_Pegawai INTO @nip, @nama,
@no_ktp, @alamat
WHILE (@@fetch_status = 0)
BEGIN
PRINT @nip
PRINT @nama
PRINT @alamat
FETCH cur_Pegawai INTO @nip, @nama,
@no_ktp, @alamat
END
GO
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 47 dari 58
4. Tutup cursor bila Anda sudah selesai menggunakannya.
Perintah untuk menutup sebuah cursor adalah
CLOSE nama_cursor
5. Dealokasi cursor tersebut untuk menghilangkannya.
Perintah untuk men-dealokasi sebuah cursor adalah
DEALLOCATE nama_cursor
Berikut adalah proses lengkap dari contoh penggunaan cursor diatas
:
DECLARE @nip CHAR(10)
DECLARE @nama CHAR(30)
DECLARE @no_ktp CHAR(12)
DECLARE @alamat CHAR(40)
DECLARE cur_Pegawai CURSOR
FOR select * from Pegawai
OPEN cur_Pegawai
FETCH cur_Pegawai INTO @nip, @nama,
@no_ktp, @alamat
WHILE (@@fetch_status = 0)
BEGIN
PRINT @nip
PRINT @nama
PRINT @alamat
FETCH cur_Pegawai INTO @nip, @nama,
@no_ktp, @alamat
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 48 dari 58
END
CLOSE cur_Pegawai
DEALLOCATE cur_Pegawai
GO
4.7 Trigger
Trigger adalah kode-kode logik yang didefinisikan agar dapat
dieksekusi apabila terjadi suatu proses yang mengubah kondisi
record dalam tabel baik oleh pernyataan INSERT, UPDATE maupun
DELETE. Trigger biasanya digunakan untuk memeriksa nilai atau
data dari sebuah record sebelum record tersebut dimasukkan ke
dalam tabel. Jika Anda menggunakan Microsoft SQL Server, maka
Anda akan mengenal yang namanya Instead of Trigger. Trigger jenis
ini memungkinkan kita untuk mengubah kegiatan yang dilakukan
apabila salah satu pengguna menjalankan suatu kegiatan tertentu.
Prosedur Trigger dilampirkan pada tabel tertentu. Kita lebih
baik mengatur validasi dan kendali pada Trigger daripada
melakukannya dalam aplikasi. Ada 3 perintah dasar yang
terkandung dalam sebuah Trigger, yaitu:
a. Insert Trigger
b. Update Trigger
c. Delete Trigger
Contoh prosedur Trigger dengan PostgreSQL:
CREATE FUNCTION pgw_insupd() RETURNS OPAQUE AS ’
BEGIN
NEW.nama := UPPER (NEW.nama);
RETURN NEW;
END;’
LANGUAGE ’plpgsql’;
CREATE TRIGGER pegawaiInsUpd BEFORE INSERT OR UPDATE
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 49 dari 58
ON pegawai FOR EACH ROW
EXECUTE PROCEDURE pgw_insupd();
INSERT INTO Pegawai (nip,nama)
VALUES (10.12.1568,’halim’);
SELECT * FROM pegawai;
Yang tersimpan dalam tabel Pegawai adalah HALIM bukan halim.
Jika Anda menggunakan T-SQL pada SQL Server maka
prosedur Trigger dapat dibuat dari Query Analyzer maupun
Enterprise Manager. Adapun sintaks T-SQL untuk membuat trigger
adalah :
CREATE TRIGGER nama_trigger
ON nama_tabel
FOR [INSERT|UPDATE|DELETE]
AS
{statements}
nama_tabel adalah nama tabel dimana prosedur trigger hendak
dibuat. FOR menunjukkan perintah yang akan mengaktifkan trigger.
Jika Anda menggunakan perintah INSERT, maka trigger akan
dijalankan bila ada perintah INSERT yang dijalankan pada tabel yang
bersangkutan. Jika menggunakan perintah UPDATE maka trigger
akan dijalankan bila ada pengguna yang menggunakan perintah
UPDATE pada tabel yang mengandung trigger tersebut. Demikian
halnya dengan perintah DELETE. Jika ada yang menghapus data dari
tabel bersangkutan maka trigger akan dijalankan. AS menandai awal
badan trigger yang berisi pernyataan-pernyataan yang akan
dijalankan disaat trigger aktif.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 50 dari 58
Perintah-perintah dalam T-SQL yang tidak boleh dipergunakan
dalam Trigger adalah:
- CREATE DATABASE
- CREATE PROC
- CREATE DEFAULT
- CREATE INDEX
- CREATE TABLE
- CREATE VIEW
- CREATE RULE
- LOAD LOG
- RESTORE LOG
- DISK RESIZE
- DISK INIT
- ALTER DATABASE
- ALTER TABLE
- ALTER VIEW
- ALTER PROCEDURE
- DROP DATABASE
- DROP TABLE
- DROP PROCEDURE
Contoh prosedur Trigger sederhana dengan T-SQL:
CREATE TRIGGER delPegawai ON pegawai
FOR DELETE
AS
PRINT ‘DELETE Berhasil’
GO
DELETE Pegawai WHERE nip=’10.10.5269’
Jika operasi DELETE berhasil maka ‘DELETE Berhasil’ akan tercetak
dilayar.
Contoh prosedur Trigger lain dengan T-SQL:
USE Perusahaan
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'peg_insupd' AND type = 'TR')
DROP TRIGGER peg _insupd
GO
CREATE TRIGGER peg_insupd ON Pegawai
FOR INSERT, UPDATE
AS
DECLARE @tk_min TINYINT,
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 51 dari 58
@tk_maks TINYINT,
@tk_peg TINYINT,
@kd_pek SMALLINT
SELECT @tk_min = tk_min,
@tk_maks = tk_maks,
@tk_peg = i.tk_pek,
@kd_pek = i.kd_pek
FROM Pegawai p INNER JOIN inserted i ON p.nip = i.nip
JOIN Pekerjaan k ON k.kd_pek = i.kd_pek
IF NOT (@tk_peg BETWEEN @tk_min AND @tk_maks)
BEGIN
RAISERROR ('Tingkat Pegawai untuk Kode Pekerjaan:
%d harus bernilai antara %d dan %d.',
16, 1, @kd_pek, @tk_min, @tk_maks)
ROLLBACK TRANSACTION
END
Pada SQL Server, dikenal pula yang namanya Instead of
Trigger. Jenis trigger ini memungkinkan kita untuk mendefinisikan
trigger pada sebuah view. Namun, tidak diperbolehkan pada pada
view yang menyertakan CHECK OPTION. Pada Instead of trigger,
DELETE tidak diperbolehkan pada tabel yang memiliki relasi dengan
jenis ON DELETE CASCADE. Demikian halnya juga dengan perintah
UPDATE tidak diizinkan pada tabel yang berhubungan dengan relasi
ON UPDATE CASCADE.
Misalnya kita ingin melakukan INSERT data pada sebuah tabel.
Tentu saja kita tidak bisa memasukkan dua data dengan primary key
yang sama. Bila ternyata nilai yang kita masukkan sebagai PK telah
ada, maka akan muncul peringatan kesalahan. Untuk menghindari
hal ini, kita dapat menggunakan Instead of Trigger untuk memproses
data tersebut:
CREATE TABLE tabelTes
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 52 dari 58
(
id_tes INT NOT NULL PRIMARY KEY,
ket_tes VARCHAR(20) NOT NULL
)
GO
CREATE TRIGGER trig_tes ON tabelTes
INSTEAD OF INSERT
AS
IF @@ROWCOUNT = 0
RETURN
UPDATE t –- jika id sudah ada
SET
ket_tes = i. ket_tes
FROM
inserted i
JOIN
tabelTes t ON t.id_tabel = i.id_tabel
INSERT tabelTes
SELECT id_tabel, ket_tes
FROM
inserted i
WHERE NOT EXISTS ( SELECT * FROM tabelTes t
WHERE t.id_tabel = i.id_tabel )
GO
4.8 Transaksi Dengan Commit dan Rollback
Transaksi adalah sekumpulan operasi pada basis data yang
harus berhasil atau gagal secara keseluruhan. Artinya prosesnya
tidak boleh setengah-setengah melainkan harus satu kesatuan.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 53 dari 58
Dengan kata lain, sebuah transaksi hanya memiliki 2 pilihan
berhasil atau gagal. Suatu transaksi dinyatakan berhasil apabila
semua operasi di dalam transaksi tersebut berhasil dieksekusi
sedangkan suatu transaksi dinyatakan gagal apabila salah satu saja
operasi di dalam transaksi tersebut gagal.
Perubahan data hanya disimpan apabila transaksi berhasil
secara keseluruhan. Jika transaksi gagal, maka perubahan yang
terjadi pada data di dalam tabel yang bersangkutan akan diisi
kembali dengan nilai yang semula sehingga tidak mengganggu
integritas dan konsistensi data.
Dengan kata lain, sebuah transaksi hanya akan melakukan
proses terhadap semua perubahan yang terjadi atau tidak sama
sekali. Setelah eksekusi, sistem harus selalu berada dalam kondisi
yang valid.
Transaksi memiliki empat karakteristik dasar yang sering
disebut ACID. Keempat karakteristik tersebut antara lain:
1. A = Atomicity
Sebuah transaksi berhasil diselesaikan dengan sempurna atau
berhasil dikembalikan pada kondisi semula.
2. C = Consistency
Sistem berada pada kondisi baru yang valid atau tetap berada
pada kondisi sebelum transaksi dilakukan.
3. I = Isolation
Transaksi dipisahkan dari yang lainnya selama pemrosesan.
4. D = Durability
Sistem akan selalu berada pada kondisi yang valid meskipun
terjadi kegagalan pada sistem.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 54 dari 58
SQL mengimplementasikan transaksi dengan tiga pernyataan
antara lain sebagai berikut:
a. BEGIN TRANSACTION
Pernyataan ini menandai awal sebuah transaksi. Jika transaksi
yang dikerjakan gagal, maka tabel akan dikembalikan ke kondisi
dimana pernyataan BEGIN TRANSACTION didefinisikan. Basis data
akan dikembalikan pada kondisi sebelum transaksi dilakukan
mengabaikan semua perubahan yang telah dilakukan oleh
aplikasi Anda jika transaksi tidak berhasil sepenuhnya.
b. COMMIT TRANSACTION
Pernyataan ini digunakan apabila seluruh transaksi telah berhasil
dijalankan. Biasanya ditempatkan pada akhir transaksi. Ketika
pernyataan COMMIT dijalankan, maka seluruh perubahan
terhadap data dalam basis data yang dilakukan oleh aplikasi
sejak ekseskusi pernyataan BEGIN TRANSACTION akan dilakukan
dan basis data terperbaharui dengan data yang baru dimana
pengembalian data ke kondisi semula tidak dimungkinkan lagi.
Anda dapat melakukan undo atas perubahan-perubahan tersebut
tetapi tidak lagi dalam bagian sebuah transaksi.
c. ROLLBACK TRANSACTION
Pernyataan ini menandai akhir dari transaksi yang gagal. Ketika
pernyataan ini dijalankan, basis data dikembalikan ke kondisi
dimana ketika pernyataan BEGIN TRANSACTION dijalankan,
Anggapannya pernyataan-pernyataan diantara pernyataan BEGIN
TRANSACTION dan ROLLBACK TRANSACTION seolah-olah tidak
pernah dijalankan sama sekali.
Fungsi pernyataan COMMIT dan ROLLBACK sangat penting
untuk menjaga integritas dan konsistensi data dalam basis data.
Kode berikut menunjukkan bagaimana pernyataan yang
berhubungan dengan transaksi digunakan dalam sebuah batch.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 55 dari 58
BEGIN TRANSACTION
{T-SQL statement}
IF @@ERROR <> 0
BEGIN
ROLLBACK TRANSACTION
RETURN –100
END
{T-SQL statement}
IF @@ERROR <> 0
BEGIN
ROLLBACK TRANSACTION
RETURN –101
END
COMMIT TRANSACTION
{T-SQL statements}
Kode error –100 dan –101 mengidentifikasi kondisi kesalahan.
Setelah setiap operasi Anda harus memeriksa nilai dari variabel
@@ERROR. Jika nilainya bukan 0, berarti telah terjadi kesalahan dan
Anda harus melakukan Rollback pada transaksi yang sedang
dijalankan. Jika bernilai 0 artinya tidak ada kesalahan dan Anda
dapat melakukan Commit pada transaksi sehingga semua
perubahan dapat disimpan.
Transaksi sering juga disebut dengan LUW (Logical Unit of
Work). Dalam hal ini, juga ada perbedaan perintah dan fitur dari
beberapa aplikasi SQL, misalnya Oracle dan Sybase menyediakan
fasilitas SAVEPOINT pada transaksi atau sering disebut semi-commit.
Jadi, sekali lagi perintah DDL dan DML dalam pembahasan ini sangat
tergantung pada aplikasi yang digunakan.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 56 dari 58
Berikut adalah contoh penanganan transaksi dengan commit
dan rollback dengan T-SQL pada SQL Server:
Misalnya dalam perbankan, asumsi terdapat 3 buah tabel yaitu tabel
nasabah, tabungan dan rekening. Dan kita ingin membuka rekening
baru.
CREATE TABLE Nasabah
(
nid INT NOT NULL PRIMARY KEY,
nama VARCHAR(20) NOT NULL,
alamat VARCHAR(30) NOT NULL
)
GO
CREATE TABLE Rekening
(
nid INT NOT NULL PRIMARY KEY,
tid INT NOT NULL PRIMARY KEY
)
GO
CREATE TABLE Tabungan
(
tid INT NOT NULL PRIMARY KEY,
jum_tbgn MONEY NOT NULL
)
GO
BEGIN TRANSACTION nasabah_baru
INSERT Nasabah VALUES (1, "Halim", "Pemuda No. 11")
IF EXISTS(SELECT * FROM Nasabah WHERE nama = "Halim")
BEGIN
BEGIN TRANSACTION
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 57 dari 58
INSERT Tabungan VALUES(2, 100000)
END
ELSE
ROLLBACK TRANSACTION
IF EXISTS(SELECT * FROM Tabungan WHERE tid = 2)
BEGIN
BEGIN TRANSACTION
INSERT Rekening values(1, 2)
END
ELSE
ROLLBACK TRANSACTION
IF EXISTS (SELECT * FROM Rekening WHERE nid = 1 AND
tid = 2)
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
GO
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 58 dari 58
BAB V
SUMBER – SUMBER YANG DIPERLUKAN
UNTUK PENCAPAIAN KOMPETENSI
5.1 Sumber Daya Manusia
Dalam proses pencapaian kompetensi sumber yang dapat
diandalkan adalah sumber daya manusia. Sumber daya manusia
yang dimaksud disiini adalah orang-orang yang dapat mendukung
proses pencapaian kompetensi yang dimaksud, antara lain:
o Pembimbing
Pembimbing Anda merupakan orang yang dapat
diandalkan karena beliau memiliki pengalaman. Peran
Pembimbing adalah untuk :
a. Membantu Anda untuk merencanakan proses belajar.
b. Membimbing Anda melalui tugas-tugas pelatihan yang
dijelaskan dalam tahap belajar.
c. Membantu Anda untuk memahami konsep dan praktik baru
dan untuk menjawab pertanyaan Anda mengenai proses
belajar Anda.
d. Membantu Anda untuk menentukan dan mengakses
sumber tambahan lain yang Anda perlukan untuk belajar
Anda.
e. Mengorganisir kegiatan belajar kelompok jika diperlukan.
f. Merencanakan seorang ahli dari tempat kerja untuk
membantu jika diperlukan.
Penilai
Penilai Anda melaksanakan program pelatihan terstruktur
untuk penilaian di tempat kerja. Penilai akan :
a. Melaksanakan penilaian apabila Anda telah siap dan
merencanakan proses belajar dan penilaian selanjutnya
dengan Anda.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 59 dari 58
b. Menjelaskan kepada Anda mengenai bagian yang perlu
untuk diperbaiki dan merundingkan rencana pelatihan
selanjutnya dengan Anda.
c. Mencatat pencapaian / perolehan Anda.
Teman kerja/sesama peserta pelatihan
Teman kerja Anda/sesama peserta pelatihan juga
merupakan sumber dukungan dan bantuan. Anda juga dapat
mendiskusikan proses belajar dengan mereka. Pendekatan ini
akan menjadi suatu yang berharga dalam membangun
semangat tim dalam lingkungan belajar/kerja Anda dan dapat
meningkatkan pengalaman belajar Anda.
5.2 Literatur
Disamping dengan belajar dengan orang-orang seperti yang
disebutkan diatas, Anda tentu perlu juga terus menambah wawasan
dan pengetahuan
Anda dari sumber-sumber bacaan seperti buku-buku yang berkaitan
dengan kompetensi yang Anda pilih, jurnal-jurnal, majalah, dan
sebagainya.
Literatur dalam hal ini tentu bukan saja material berupa
bacaan atau buku melainkan termasuk pula material-material
lainnya yang menjadi pendukung proses pembelajaran ketika
peserta pelatihan sedang menggunakan Pedoman Belajar ini.
Misalnya rekaman dalam bentuk kaset, videp, dan sebagainya.
Buku referensi, lembar kerja, tugas-tugas kerja juga dapat
digunakan dalam proses pencapaian kompetensi. Peserta boleh
mencari dan menggunakan sumber-sumber alternatif lain yang lebih
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 60 dari 58
baik atau sebagai pendukung tambahan atau jika ternyata sumber-
sumber yang direkomendasikan dalam pedoman belajar ini tidak
tersedia/tidak ada.
Untuk referensi mengenai materi-materi yang dapat
digunakan, Anda dapat melihat dari Daftar Pustaka yang terlampir
dihalaman terakhir modul ini.
5.3 Daftar Peralatan/mesin dan Bahan
Dalam pelatihan ini, tidak ada peralatan khusus yang
dibutuhkan. Yang diperlukan hanya aplikasi SQL dan seperangkat
komputer yang dapat menjalankan atau memenuhi prasyarat
minimal aplikasi SQL bersangkutan yang Anda gunakan.
Misalnya Microsoft SQL Server (2005). Untuk aplikasi ini Anda
membutuhkan perangkat komputer dengan prasyarat sebagai
berikut:
- Sistem operasi minimal Windows 2000, XP, Server 2003 atau
Vista
- Pentium III-compatible processor (min. 600MHz) atau yang lebih
tinggi
- Memori min. 512 MB, dianjurkan 1 GB atau lebih
- Untuk instalasi awal atau upgrade ke SQL Server 2005, Anda
harus memiliki space harddisk sebesar 2 GB pada drive sistem
Anda. Kebutuhan besar media penyimpanan tergantung pada
konfigurasi sistem dan fitur yang hendak Anda install.
Tabel berikut menyajikan jumlah kebutuhan media penyimpanan untuk masing-
masing fitur SQL Server 2005.
FiturDisk Space
Req.
Database Engine and data files, Replication, and Full-Text Search 280 MB
Analysis Services and data files 90 MB
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 61 dari 58
Reporting Services and Report Manager 120 MB
Notification Services engine components, client components, and rules
components50 MB
Integration Services 120 MB
Client Components 850 MB
SQL Server Books Online and SQL Server 2005 Compact Edition Books
Online240 MB
Samples and sample databases. Note that samples and sample databases are
not installed by default.410 MB
5.4 Lain-lain
Untuk memahami penggunaan DDL dan DML dalam penerapan
prosedur, trigger dan transaksi Anda tentu membutuhkan contoh-
contoh penerapan langsung pada aplikasi-aplikasi SQL yang Anda
gunakan. Perintah-perintah dan fitur-fitur yang ditawarkan oleh
masing-masing aplikasi tentu bervariasi. Seperti yang telah saya
tekankan dari awal, disini kita hanya membahas perihal konsep
prosedur, trigger dan transaksi secara umum.
Aplikasi yang digunakan boleh berbeda namun konsep yang
terkandung didalamnya adalah sama dan serupa. Analoginya seperti
bahasa pemrograman. Landasan utama dalam pemrograman bukan
terletak pada bahasa yang digunakan tetapi pada konsep dan
algoritma pemrograman. Dari konsep dan logika yang kita kuasai,
bahasa pemrograman apapun yang kita gunakan tidak menjadi
masalah. Kita hanya perlu sedikit waktu untuk mempelajari sintaks-
sintaks dalam bahasa tersebut. Sama halnya dengan SQL, kita hanya
perlu mencari tahu sintaks-sintaks sesuai dengan aplikasi yang
digunakan.
Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer
Kode ModulTIK.PR03.002.01
Judul Modul: Mengoperasikan Bahasa Pemrograman Data Deskripsi (SQL) Lanjut
Buku Informasi Versi: 2007
Halaman: 62 dari 58
Adapun beberapa aplikasi SQL yang umum digunakan saat ini
dan mendukung penerapan prosedur, trigger dan transaksi adalah
sebagai berikut:
a. Microsoft SQL Server 7, 2000 atau 2005 (Transact SQL)
b. Oracle RDBMS SQL
c. IBM DB2
d. MySQL 5.0.2 keatas
e. PostgreSQL (PL/SQL)
f. Sybase SQL
DAFTAR PUSTAKA
Bennett Wm, McEwan, David Solomon. Teach Yourself Transact-SQL
in 21 Days . MacMillan Publishing
Forta Ben. Teach Yourself SQL in 10 Minutes. SAMS Publishing
Luers Tom, Timothy Atwood, Jonathan Gennick. Teach Yourself
PL/SQL in 21 Days. SAMS Publishing
PostgreSQL, Programmer’s Guide
Momjian, Bruce, PostgreSQL: Introduction and Concepts
MySQL 5, Reference Manual
SQL Server 2000 in Microsoft Development Network (MSDN)
Website:
o http://www.sqlmag.com/
o http://www.w3schools.com/
o http://msdn.microsoft.com/
o http://www.orafaq.com/
o http://www.mysql.com/