modul pembinaan karier

advertisement
MODUL
PEMBINAAN KARIER
Mata Pelajaran
Reakayasa Perangkat Lunak
Sekolah Menengah Kejuruan (SMK)
Kelompok Kompetensi B
Penulis : Joko Pitono
Direktorat Jenderal Guru dan Tenaga Kependidikan
Kementrian Pendidikan dan Kebudayaan
Tahun 2017
Penulis:
1. Joko Pitono
Email : [email protected]
Penelaah:
1.
Siera Maulida Asrin, S.T [081562783394],
Email: [email protected]
2.
Abdul Haliq, S.Pd., M.Pd. [085341259862]
Email : [email protected]
3.
Hasrul Bakri, S.Pd, M.T. [081355723687]
Email : [email protected]
Ilustrator :
1. Siera Maulida Asrin, S.T [081562783394],
Email: [email protected]
2. Faizal Reza Nurzeha, A.Md [085242177945]
Email : [email protected]
Layouter :
1. Janwar Fajrin, S.T [085299970328]
Email : [email protected]
Copyright ©2017
Lembaga Pengembangan dan Pemberdayaan Pendidikan Tenaga
Kependidikan Bidang Kelautan Perikanan Teknologi Informasi dan
Komunikasi.
Hak Cipta Dilindungi Undang-Undang
Dilarang mengkopi sebagian atau keseluruhan isi buku ini untuk
kepentingan komersial tanpa izin tertulis dari Kementrian Pendidikan
Kebudayaan.
i
ii
KATA SAMBUTAN
Peran guru profesional dalam proses pembelajaran sangat penting
sebagai kunci keberhasilan belajar siswa. Guru profesional adalah guru yang
kopeten
membangun
proses
pembelajaran
yang
baik
sehingga
dapat
menghasilkan pendidikan yang berkualitas. Hal ini tersebut menjadikan guru
sebagai komponen yang menjadi fokus perhatian pemerintah pusat maupun
pemerintah daerah dalam peningkatan mutu pendidikan terutama menyangkut
kopetensi guru.
Pengembangan profesionalitas guru melalui program Pembinaan karier
(GP) merupakan upaya peningkatan kompetensi untuk semua guru. Sejalan
dengan hal tersebut, pemetaan kopetensi guru telah dilakukan melalui uji
kompetensi guru (UKG) untuk kompetensi pedagogik dan profesional pada akhir
tahun 2015. Hasil UKG menunjukan peta kekuatan dan kelemahan kompetensi
guru dalam penguasaan pengetahuan. Peta kompetensi guru tersebut
dikelompokan menjadi 10 (sepuluh) kelopok kompetensi. Tindak lanjut
pelaksanaan UKG diwujudkan dalam bentuk pelatihan guru pasca UKG melalui
program Pembinaan karier. Tujuannya untuk meningkatkan kompetensi guru
sebagai agen perubahaan dan sumber belajar utama bagi peserta didik. Program
Pembinaan karier dilaksanakan melalui pola tatap muka, daring (online) dan
campuran (blended) tatap muka dengan online.
Pusat Pengembangan dan Pemberdayaan Pendidik dan Tenaga
Kependidikan
(PPPPTK),
Lembaga
Pengembangan
dan
Pemberdayaan
Pendidik dan Tenaga Kependidikan Kelautan Perikanan Teknologi Informasi dan
Komunikasi (LP3TK KPTK) dan Lembaga Pengembangan dan Pemberayaan
Kepala Sekolah (LP2KS) merupakan Unit Pelaksana Teknis di lingkungan
Direktorat Jendral Guru dan Tenaga Kependidikan yang bertanggung jawab
dalam mengembangkan perangkat dan melaksanakan peningkaan kompetensi
guru sesuai dengan bidangnya. Adapun perangkat pembelajaran yang
dikembangkan tersebut adalah modul untuk program Pembinaan karier tatap
muka dan pembinaan karier online untuk semua mata pelajaran dan kelompok
iii
kompetensi. Dengan modul ini diharapkan Pembinaan Karier
memberikan
sumbangan yang sangat besar dalam peningkatan kualitas kompetensi guru.
Mari kita sukseskan Program Pembinaan Karier
ini untuk mewujudkan Guru
Mulia Karena Karya.
Jakarta, Februari 2017
Direktur Jendral
Guru dan Tenaga Kependidikan
Sumarna Surapranata, Ph.D
NIP. 195908011985031002
iv
KATA PENGANTAR
Profesi guru dan tenaga kependidikan harus dihargai dan dikembangkan
sebagai profesi yang bermartabat sebagaimana diamanatkan Undang-Undang
Nomor 14 Tahun 2005 tentang Guru dan Dosen. Hal ini dikarenakan guru dan
tenaga kependidikan merupakan tenaga profesional yang mempunyai fungsi,
peran, dan kedudukan yang sangat penting dalam mencapai visi pendidikan
2025 yaitu “Menciptakan Insan Indonesia Cerdas dan Kompetitif”. Untuk itu guru
dan tenaga kependidikan yang profesional wajib melakukan pengembangan
keprofesian berkelanjutan.
Buku pedoman Pedoman Penyusunan Modul Diklat Pengembangan
Keprofesian Berkelanjutan Bagi Guru dan Tenaga Kependidikan untuk institusi
penyelenggara program pengembangan keprofesian berkelanjutan merupakan
petunjuk bagi penyelenggara pelatihan di dalam melaksakan pengembangan
modul yang merupakan salah satu sumber belajar bagi guru dan tenaga
kependidikan.
Buku
ini
disajikan
untuk
memberikan
penyusunan modul sebagai salah satu bentuk bahan
informasi
tentang
dalam kegiatan
pengembangan keprofesian berkelanjutan bagi guru dan tenaga kependidikan.
Pada kesempatan ini disampaikan ucapan terima kasih dan penghargaan
kepada berbagai pihak yang telah memberikan kontribusi secara maksimal
dalam mewujudkan buku ini, mudah-mudahan buku ini dapat menjadi acuan dan
sumber inspirasi bagi guru dan semua pihak yang terlibat dalam pelaksanaan
penyusunan modul untuk pengembangan keprofesian berkelanjutan. Kritik dan
saran yang membangun sangat diharapkan untuk menyempurnakan buku ini di
masa mendatang.
Makassar, Februari 2017
Kepala LPPPTK KPTK Gowa
Sulawesi Selatan,
Dr. H. Rusdi, M.Pd,
NIP 19650430 199103 1 004
v
vi
DAFTAR ISI
Sampul ................................................................................................................. i
KATA SAMBUTAN .............................................................................................iii
KATA PENGANTAR ............................................................................................ v
DAFTAR ISI ........................................................................................................ vii
DAFTAR TABEL ................................................................................................ xv
PENDAHULUAN ................................................................................................. 1
A. Latar Belakang ........................................................................................... 1
B. Tujuan ........................................................................................................ 2
C. Peta Kompetensi ........................................................................................ 2
D. Ruang Lingkup ........................................................................................... 3
E. Saran Cara Penggunaan Modul ................................................................. 4
Kegiatan Pembelajaran 1 .................................................................................... 7
A. Pengantar .................................................... Error! Bookmark not defined.
B. Tujuan ........................................................................................................ 7
C. Indikator Pencapaian Kompetensi .............................................................. 7
D. Uraian Materi .............................................................................................. 7
E. Aktivitas Pembelajaran ............................................................................. 17
F. Latihan / Kasus / Tugas ............................................................................ 18
G. Rangkuman .............................................................................................. 19
H. Umpan Balik dan Tindak Lanjut ................................................................ 20
I.
Kunci Jawaban ......................................................................................... 21
Kegiatan Pembelajaran 2 : ................................................................................ 25
A. Tujuan ...................................................................................................... 25
B. Indikator Pencapaian Kompetensi ............................................................ 25
C. Uraian Materi ............................................................................................ 25
D. Aktivitas Pembelajaran ............................................................................. 39
E. Latihan / Kasus / Tugas ............................................................................ 40
F. Rangkuman .............................................................................................. 41
G. Umpan Balik dan Tindak Lanjut ................................................................ 42
H. Kunci Jawaban ......................................................................................... 42
vii
Kegiatan Pembelajaran 3 : ................................................................................. 46
A. Tujuan ...................................................................................................... 46
B. Indikator Pencapaian Kompetensi ............................................................ 46
C. Uraian Materi ............................................................................................ 46
D. Aktivitas Pembelajaran ............................................................................. 69
E. Latihan / Kasus / Tugas ............................................................................ 69
F. Rangkuman .............................................................................................. 71
G. Umpan Balik dan Tindak Lanjut ................................................................ 71
H. Kunci Jawaban ......................................................................................... 72
Kegiatan Pembelajaran 4 : ................................................................................. 76
A. Tujuan ...................................................................................................... 76
B. Indikator Pencapaian Kompetensi ............................................................ 76
C. Uraian Materi ............................................................................................ 76
D. Aktivitas Pembelajaran ............................................................................. 88
E. Latihan / Kasus / Tugas ............................................................................ 89
F. Rangkuman .............................................................................................. 90
G. Umpan Balik dan Tindak Lanjut ................................................................ 91
H. Kunci Jawaban ......................................................................................... 92
Kegiatan Pembelajaran 5: .................................................................................. 96
A. Tujuan ...................................................................................................... 96
B. Indikator Pencapaian Kompetensi ............................................................ 96
C. Uraian Materi ............................................................................................ 96
D. Aktivitas Pembelajaran ........................................................................... 103
E. Lathan / Kasus / Tugas ........................................................................... 104
F. Rangkuman ............................................................................................ 105
G. Umpan Balik dan Tindak Lanjut .............................................................. 105
H. Kunci Jawaban ....................................................................................... 106
Kegiatan Pembelajaran 6: ................................................................................ 110
A. Tujuan .................................................................................................... 110
B. Indikator Pencapaian Kompetensi .......................................................... 110
C. Uraian Materi .......................................................................................... 110
D. Aktivitas Pembelajaran ........................................................................... 115
E. Latihan / Kasus / Tugas .......................................................................... 116
F. Rangkuman ............................................................................................ 117
viii
G. Umpan Balik dan Tindak Lanjut .............................................................. 118
H. Kunci Jawaban ....................................................................................... 118
Kegiatan Pembelajaran 7: ............................................................................... 122
A. Tujuan .................................................................................................... 122
B. Indikator Pencapaian Kompetensi .......................................................... 122
C. Uraian Materi .......................................................................................... 122
D. Aktivitas Pembelajaran ........................................................................... 124
E. Latihan / Kasus / Tugas .......................................................................... 125
F. Rangkuman ............................................................................................ 126
G. Umpan Balik dan Tindak Lanjut .............................................................. 127
H. Kunci Jawaban ....................................................................................... 127
EVALUASI ....................................................................................................... 129
KUNCI JAWABAN ........................................................................................... 134
PENUTUP ....................................................................................................... 135
DAFTAR PUSTAKA......................................................................................... 137
GLOSARIUM ................................................................................................... 139
ix
x
DAFTAR GAMBAR
Gambar 1. 1 Gambaran Relasional Database ..................................................... 8
Gambar 1. 2 Contoh Skenario Model Data .......................................................... 9
Gambar 1. 3 Model Hubungan Entitas (Entity Relationship Model) .................... 10
Gambar 1. 4 Gambar Hubungan ER Multi Tabel ............................................... 12
Gambar 1. 5 Record pada Tabel EMPLOYEES ................................................. 14
Gambar 1. 6 Komunikasi DBMS Menggunakan SQL ......................................... 16
Gambar 2. 1 Contoh Pembatasan Garis dengan Kriteria Tertentu ..................... 26
Gambar 2. 2 Membatasi Baris Yang Dipilih ....................................................... 27
Gambar 2. 3 Query dengan Klausa Where ........................................................ 27
Gambar 2. 4 Query dengan Kasus Campuran ................................................... 28
Gambar 2. 5 Operator yang Terdapat pada Query ............................................ 28
Gambar 2. 6 Hasil Eksekusi Query dengan Kondisi Perbandingan .................... 29
Gambar 2. 7 Hasil Eksekusi Query dengan Kondisi Between ............................ 30
Gambar 2. 8 Hasil Eksekusi Query dengan Kondisi IN ...................................... 30
Gambar 2. 9 Hasil Eksekusi Query dengan Kondisi LIKE .................................. 31
Gambar 2. 10 Hasil Eksekusi Query dengan Kondisi LIKE ................................ 32
Gambar 2. 11 Hasil Eksekusi Query dengan Kondisi NULL ............................... 32
Gambar 2. 12 Hasil Eksekusi Query dengan Logika OR.................................... 34
Gambar 2. 13 Hasil Eksekusi Query dengan Logika NOT ................................. 35
Gambar 2. 14 Hasil Eksekusi Query .................................................................. 37
Gambar 2. 15 Hasil Eksekusi Query dengan Klausa ORDER BY ...................... 38
Gambar 2. 16 Contoh Query dengan ORDER BY ............................................. 39
Gambar 3. 1 Fungsi SQL ................................................................................... 47
Gambar 3. 2 Ilustrasi Fungsi SQL ...................................................................... 47
Gambar 3. 3 Deklarasi Nama Fungsi ................................................................. 48
Gambar 3. 4 Jenis-Jenis Fungsi Single Row ..................................................... 49
Gambar 3. 5 Klasifikasi Fungsi Karakter ............................................................ 49
Gambar 3. 6 Hasil Konversi dengan Fungsi String ............................................ 51
xi
Gambar 3. 7 Hasil Query Menggunakan Fungsi ManipulasiCase ...................... 52
Gambar 3. 8 Hasil Query Menggunakan Fungsi KarakterManipulasi ................. 53
Gambar 3. 9 Hasil Query dengan Fungsi Numerik ............................................. 54
Gambar 3. 10 Hasil Query Fungsi ROUND ........................................................ 55
Gambar 3. 11 Hasil Query Fungsi TRUNC ........................................................ 55
Gambar 3. 12 Hasil Query Fungsi MOD............................................................. 56
Gambar 3. 13 Format Tanggal pada Oracle ....................................................... 56
Gambar 3. 14 Fungsi SYSDATE pada Query .................................................... 57
Gambar 3. 15 Hasil Query SYSDATE dengan Manipulasi Tanggal .................... 58
Gambar 3. 16 Fungsi TRUNC dalam Pemotongan Tanggal............................... 59
Gambar 3. 17 Hasil Query dengan Manipulasi Tanggal ..................................... 60
Gambar 3. 18 Hasil Query dengan fungsi ROUND dan TRUNC ........................ 60
Gambar 3. 19 Hasil Query dengan Konversi TO_CHAR .................................... 61
Gambar 3. 20 Query Menggunakan Fungsi NVL ............................................... 63
Gambar 3. 21 Query dengan Fungsi NVL2 ........................................................ 64
Gambar 3. 22 Query Menggunakan Fungsi NULLIF .......................................... 65
Gambar 3. 23 Hasil Eksekusi Query dengan Fungsi COALESCE ...................... 66
Gambar 3. 24 Query dengan Kondisi CASE ...................................................... 68
Gambar 3. 25 Query dengan Fungsi DECODE .................................................. 68
Gambar 4. 1 Tabel yang akan dimanipulasi ....................................................... 77
Gambar 4. 2 Hasil Query NATURAL JOIN ......................................................... 78
Gambar 4. 3 Query Natural Join dengan KlausaWHERE ................................... 79
Gambar 4. 4 Klausa USING untuk Equijoin........................................................ 80
Gambar 4. 5 Query Penggunaan Tabel Alias ..................................................... 80
Gambar 4. 6 Klausa ON pada Query ................................................................. 81
Gambar 4. 7 Contoh Self Join pada Query ........................................................ 82
Gambar 4. 8 Klausa ON dengan Kombinasi SELF JOIN .................................... 82
Gambar 4. 9 KlausaJOIN pada Query ............................................................... 83
Gambar 4. 10 Tabel EMPLOYEES dan JOB_GRADES ..................................... 84
Gambar 4. 11 Implementasi Non-Equijoins pada Query .................................... 84
Gambar 4. 12 Hasil Query Left Outer Join ......................................................... 85
Gambar 4. 13 Hasil Query Right Outer Join pada .............................................. 86
Gambar 4. 14 Hasil Query Full Outer Join pada................................................. 87
xii
Gambar 4. 15 Hasil Query Cartesian Product .................................................... 88
Gambar 4. 16 Hasil Query CROSS JOIN........................................................... 88
Gambar 5. 1 Query dalam membuat Tabel ........................................................ 97
Gambar 5. 2 Sebelum Data diperbarui .............................................................. 98
Gambar 5. 3 Sesudah Data diperbarui .............................................................. 98
Gambar 5. 4 Data Sebelum diperbarui .............................................................. 99
Gambar 5. 5 Data Sesudah diperbarui ............................................................ 100
Gambar 5. 6 Data Sebelum diperbarui ............................................................ 101
Gambar 5. 7 Data Sesudah diperbarui ............................................................ 101
Gambar 5. 8 Data Sebelum dihapus ................................................................ 102
Gambar 5. 9 Data Sesudah dihapus ................................................................ 102
Gambar 6. 1 Hasil Eksekusi Query Membuat Tabel......................................... 113
Gambar 6. 2 Struktur Awal Tabel ..................................................................... 114
Gambar 6. 3 Struktur Setelah Terjadi Penambahan Kolom.............................. 114
Gambar 7 1 Penggunaan commit .................................................................... 123
Gambar 7 2 Penggunaan rollback ................................................................... 123
xiii
xiv
DAFTAR TABEL
Tabel 1 Kebenaran Logikan AND ..................................................................... 33
Tabel 2 Kebenaran Logikan OR ....................................................................... 34
Tabel 3 Kebenaran Logikan NOT ..................................................................... 35
Tabel 4 Aturan Protokoler ................................................................................. 36
Tabel 5 Fungsi dan Kegunaannya .................................................................... 50
Tabel 6 Fungsi Numerik .................................................................................... 54
Tabel 7 Operasi pada Tanggal ......................................................................... 58
Tabel 8 Fungsi Umum ...................................................................................... 61
xv
…
xvi
PENDAHULUAN
A. Latar Belakang
Guru dan tenaga kependidikan wajib melaksanakan kegiatan pengembangan
keprofesian
secara
profesionalnya.
berkelanjutan
Program
agar
Pembinaan
dapat
karier
melaksanakan
adalah
tugas
pengembangan
kompetensi Guru dan Tenaga Kependidikan yang dilaksanakan sesuai
kebutuhan,
bertahap,
dan
berkelanjutan
untuk
meningkatkan
profesionalitasnya.
Pembinaan karier sebagai salah satu strategi pembinaan guru dan tenaga
kependidikan diharapkan dapat menjamin guru dan tenaga kependidikan
sehingga mampu secara terus menerus
mengembangkan
memelihara, meningkatkan, dan
kompetensinya sesuai dengan standar yang telah
ditetapkan. Pelaksanaan kegiatan Pembinaan karier akan mengurangi
kesenjangan antara kompetensi
yang
dimiliki
guru dan tenaga
kependidikan dengan tuntutan profesional yang dipersyaratkan.
Program Diklat Pembinaan karier ini membutuhkan modul yang berfungsi
sebagai salah satu sumber belajar. Modul Diklat Pembinaan karier Guru
Rekayasa Perangkat Lunak (RPL) Kelompok Kompetensi B “Sistem
Manajemen Basis Data” ini dapat digunakan oleh guru dan tenaga
kependidikan dan berfungsi sebagai acuan untuk memenuhi tuntutan
kompetensinya, sehingga guru dapat melaksanakan tugasnya secara
professional sesuai dengan standar yang telah ditetapkan.
Modul Diklat Pembinaan karier Guru RPL Kelompok Kompetensi B “Sistem
Manajemen Basis Data ” ini mempelajari tentang pembuatan struktur tabel,
mengisi data ke tabel, mengubah data dan menghapus data dari tabel
dengan menggunakan softwareRelational Database Management System
(RDBMS), serta komunikasi Sistem Manajemen Basis Data menggunakan
perintah Structure Query Language (SQL).
1
B. Tujuan
Tujuan disusunnya modul diklat Pembinaan karier Guru RPL Kelompok
Kompetensi B ini adalah memberikan pengetahuan dan keterampilan kepada
guru atau peserta diklat tentang pembuatan struktur tabel, mengisi data ke
tabel, mengubah data dan menghapus data dari tabel dengan benar melalui
aktifitas observasi dan praktikum. Setelah mempelajari modul ini diharapkan
guru dapat : “Merencanakan Database Management System (DBMS)
yang mampu memfasilitasi pengguna untuk menyimpan, memperoleh,
dan mengubah data di dalam basis data”.
Sedangkan indikator pencapaian kompetensinya adalah :
1.
Membuat basis data menggunakan Data Definition Language.
2.
Membuat relasi antar tabel menggunakan fitur visual DBMS
3.
Memanipulasi data menggunakan Data Manipulation Language.
4.
Membuat pengaturan privalages pada DBMS
C. Peta Kompetensi
2
Peta Kompetensi Modul Diklat GP Guru RPL Grade 2
Standar kompetensi
Kompetensi
Kompetensi
Kompetensi Guru
Indikator pencapaian
Utama
Inti Guru (KIG)
Keahlian (KGK)
Kompetensi
Profesional 1. Menguasai
1.1. Merencanakan
materi,
DBMS yang
struktur,
mampu
konsep
dan
memfasilitasi
pola
pikir
pengguna untuk
keilmuan
menyimpan,
yang
memperoleh, dan
mendukung
mengubah data di
mata
dalam basis data.
pelajaran
yang diampu
1.1.1. Menganalisis
struktur hirarki dan
bentuk diagram
antar entitas dalam
basis data.
1.1.2. Membuat Entity
Relationship
Diagram
1.1.3. Menganalisis teknik
normalisasi basis
data
1.1.4. Membuat basis data
menggunakan fitur
visual pada DBMS
1.1.5. Membuat basis data
menggunakan Data
Definition Language
1.1.6. Membuat relasi
antar tabel
menggunakan fitur
visual pada DBMS.
1.1.7. Membuat manipulasi
data menggunakan
Data Manipulation
Language.
1.1.8. Membuat
pengaturan
privilages pada
DBMS
D. Ruang Lingkup
Modul ini terdiri dari tujuh (7) materi pokok. Setiap materi pokok dirancang
dalam kegiatan pembelajaran. Setiap kegiatan pembelajaran terdiri dari
tujuan
pembelajaran,
indikator
essential,
uraian
materi,
aktifitas
pembelajaran, latihan/tugas/kasus, rangkuman dan umpan balik. Tujuh (7)
materi pokok pada modul ini adalah : 1) Database Relasional, 2) Membatasi
dan
Menyortir
Data;
3)
Menggunakan
Fungsi
Single-Baris
Untuk
Menyesuaikan Keluaran; 4) Menampilkan Data Dari Beberapa Tabel; 5) Data
3
Manipulation Language Pada SQL; 6) Data Definition Language Pada SQL;
dan 7) Data Control Language Pada SQL;
E. Saran Cara Penggunaan Modul
Modul Sistem manajemen Basis Data ini terdiri dari sebelas topik utama.
Peserta diklat dapat mempalajari sesui dengan urutan topik mulai topik 1
sampai topik 7. Ketujuh topik tersebut tidak memiliki ketergantungan secara
penuh, sehingga peserta diklat dapat mempelajari tidak secara berurutan.
Akan tetapi untuk masing-masing topik setiap kegiatan pembelajaran
mempunyai keterkaitan secara penuh. Ini berarti untuk setiap topik materi
yang dipelajari harus secara berurutan sesuai urutan kegiatan pembelajaran.
Untuk setiap kegiatan pembelajaran urutan yang harus dilakukan oleh
peserta diklat dalam mempelajari modul ini adalah :
1. Membaca tujuan pembelajaran sehingga memahami target atau goals dari
kegiatan belajar tersebut.
2. Membaca indikator pencapaian kompetensi sehingga memahami obyek
yang
akan
dijadikan kriteria
pengukuran untuk
mencapai
tujuan
pembelajaran.
3. Membaca uraian materi pembelajaran sehingga memiliki pengetahuan,
ketrampilan dan sikap terhadap kompetensi yang akan dicapai
4. Melakukan
aktifitas
pembelajaran
dengan
urutan
atau
kasus
permasalahan sesuai dengan contoh.
5. Mengerjakan latihan/soal atau tugas dengan mengisi lembar kerja yang
telah disediakan.
6. Menjawab pertanyaan dalam umpan balik yang akan mengukur tingkat
pencapaian kompetensi melalui penilaian diri.
4
5
6
Kegiatan Pembelajaran 1
Database Relasional
A. Tujuan
Setelah mengikuti kegiatan pembelajaran 1 ini, peserta diklat diharapkan
dapat:
1. Memperoleh pemahaman tentang sistem manajemen database relasional
(Relational Database Management System/RDBMS) dan sistem objek
manajemen database relasional (Relational Database Management
System/ORDBMS).
2. Memperoleh pemahaman konsep dasar database relasional.
3. Mengkomunikasikan gagasan database menggunakan model data yang
sesuai.
B. Indikator Pencapaian Kompetensi
Indikator pencapaian kompetensi pada kegiatan pembelajaran ini adalah:
1. Menggambarkan struktur tabel relasional
2. Membuat model menggunakan konvensi entitas
3. Berkomunikasi dengan RDBMS menggunakan pernyataan SQL
4. Mengelompokkan pernyataan-pernyataan SQL dalam kelompok DML,
DDL, DCL, dan Transaction Control
C. Uraian Materi
1. Konsep Database Relasional
Dr. E.F. Codd pada tahun 1970 telah memperkenalkan model relasional
sistem database yang merupakan dasar untuk Relational Database
Management System (RDBMS). Sebelum konsep database relasional
telah digunakan dua model database yaitu network dan hierarchical
Database. RDMBS memiliki kemudahan dalam penggunaannya dan
memiliki fleksibilitas dalam struktur, sehingga sangat cepat populer
ditambah dengan beberapa vendor yang inovatif dalam membantu
mengembangkan aplikasi-aplikasi yang powerful serta produk-produk
yang menawarkan solusi. Dalam database relasional, data disimpan
7
dalam bentuk relasi atau tabel dua dimensi, dan antartabel satu dengan
tabel yang lainnya terdapat hubungan atau relationship.
Komponen-komponen model ralasional meliputi : Kumpulan objek yang
memiliki keterkaitan atau relasional antar penyimpan data, Set operator
yang dapat melakukan relasi untuk membuat relasi yang lainnya, dan
Integritas datauntuk akurasidan konsistensi. Untuk membuat struktur
tabel, mengisi data ke tabel, mengubah data dan menghapus data dari
tabel diperlukan software RDBMS, sedangkan perintah yang digunakan
disebut Structure Query Language (SQL) sehingga setiap software
RDBMS dapat digunakan untuk menjalankan perintah SQL
2. Definisi Database Relasional
Sebuah database relasional menggunakan hubungan atau tabel dua
dimensi untuk menyimpan informasi. Sebagai contoh: Kita ingin
menyimpan informasi tentang semua karyawan yang ada pada salah satu
perusahaan. Dalam sebuah database relasional, kita membuat beberapa
tabel untuk menyimpan bagian-bagian informasi yang berbeda tentang
karyawan yang bekerja diperusahaan tersebut, misalnya tabel yang
menyimpan informasi tentang karyawan, tabel yang menyimpan informasi
tentang departemen, tabel yang menyimpan informasi tentang gaji.
Gambar 1. 1 Gambaran Relasional Database
8
Comment [A1]:
Gambar blm
3. Model Data
Model merupakan landasansebuah desain. Sebelum sebuah mobil
diproduksi, terlebih dahalu para perancang membuat model mobil dan
bekerja secara rinci dan detail pada model mobil tersebut.Dalam cara
yang
sama,
perancang
sistem
mengembangkan
model
untuk
mengeksplorasi ide-ide dan meningkatkan pemahaman desain database.
Tujuan sebuah model adalah membantu mengkomunikasikan konsepkonsep yang ada dipikiran orang. Model dapat digunakan untuk
melakukan
hal
mengkategorikan,
berikut:
menyampaikan/mengkomunikasikan,
menggambarkan,
menentukan,
menyelidiki,
mengembangkan, menganalisis, dan meniru. Model yang baik adalah
model yang cocok dalam banyak kegunaan, dapat dipahami oleh
pengguna akhir, dan berisi detail yang cukup untuk pengembang dalam
membangun sistem database.
Gambar 1. 2 Contoh Skenario Model Data
Comment [A2]:
Gambar
4. Model Hubungan Entitas (Entity Relationship Model)
Dalam sistem yang efektif, data dibagi menjadi kategori diskrit atau
entitas. Sebuah hubungan entitas (ER) model adalah sebuah ilustrasi dari
berbagai entitas dalam bisnis dan hubungan diantara mereka. Model ER
berasal dari spesifikasi bisnis atau narasi dan dibangun selama tahap
9
analisis siklus hidup pengembangan sistem (System Development Life
Cycle).
Berikut ini adalah manfaat model ER
a. Informasi Dokumen bagi organisasi dalam format yang jelas tepat.
b. Memberikan gambaran yang jelas tentang ruang lingkup kebutuhan
informasi.
c. Menyediakan peta bergambar yang mudah dipahami untuk desain
database.
d. Menawarkan kerangka kerja yang efektif untuk mengintegrasikan
beberapa aplikasi.
Komponen-komponen Kunci model ER adalah:
a. Entitas: Suatu hal yang penting tentang informasi yang perlu
diketahui. Contohnya adalah departemen, karyawan, dan pesanan.
b. Atribut: Sesuatu yang menggambarkan atau memenuhi syarat suatu
entitas. Sebagai contoh, untuk entitas karyawan, atributnya adalah:
nomor
karyawan,
nama,
jabatan,
tanggal
perekrutan,
nomor
departemen, dan sebagainya. Setiap atribut yang baik adalah
diperlukan atau opsional. Pernyataan ini disebut optionality.
c. Hubungan: Hubungan atau relationship adalah sebuah asosiasi
antara entitas dan derajat. Contohnya adalah karyawan dan
departemen, dan pesanan dan item barang.
Gambar 1. 3 Model Hubungan Entitas (Entity Relationship Model)
5. Konvensi Model Hubungan Entitas
10
Konvensi Model ER
Entitas
Untuk mewakili entitas dalam model, menggunakan konvensi sebagai
berikut :
a. Singular, nama entitas yang unik
b. Nama entitas dalam huruf besar
c. Kotakdengan garis tipis.
d. Nama sinonim opsional dengan huruf besar didalam tanda kurung: ().
Atribut
Untuk mewakili atribut dalam model, menggunakan konvensi sebagai
berikut :
a. Nama singular dalam huruf kecil.
b. Asterisk (*) tanda untuk atribut wajib (yaitu, nilai-nilai yang harus
diketahui).
c. Karakter "o" tanda untuk atribut opsional (yaitu, nilai-nilai yang
mungkin dikenal).
Hubungan
Simbol
Deskripsi
Garis putus-putus
Elemenopsionalyang menunjukkan"mungkin"
Garis penuh
Elemenwajibmenunjukkan"harus"
Crow‟s foot
Menunjukkan"satu atau lebih"
Single line
Menunjukkan"satu dan hanya satu"
6. Hubungan Multi Tabel
Setiap tabel berisi data yang menggambarkan secara tepat satu entitas.
Sebagai contoh, tabel EMPLOYEES berisi informasi tentang karyawan.
Kategori data yang tercantum di bagian atas setiap tabel, dan kasuskasus individu tercantum di bawah tabel. Dengan menggunakan
formattabel, dapat dengan mudah memvisualisasikan, memahami, dan
menggunakan informasi. Karena data tentang entitas yang berbeda
disimpan
dalam
menggabungkan
tabel
dua
yang
atau
berbeda,
lebih
tabel
sehingga
dalam
perlu
untuk
menyelesaikan
11
permasalahan tertentu. Sebagai contoh, untuk mengetahui lokasi
departemen mana seorang karyawan bekerja. Dalam skenario ini,
memerlukan informasi dari tabel EMPLOYEES (yang berisi data tentang
karyawan) dan tabel DEPARTMENTS (yang berisi informasi tentang
departemen). Dengan RDBMS, seseorang dapat menghubungkan data
yang berada dalam satu tabel dengan data yang berada di tabel lain
menggunakan foreign key. Foreign key adalah kolom (atau set kolom)
yang mengacu pada Primary key dalam tabel yang sama atau tabel lain.
Data dalam dua tabel yang terpisah dapat diorganisasi menjadi informasi
baru yang dapat dikelola secara terpisah.
Gambar 1. 4 Gambar Hubungan ER Multi Tabel
7. Terminologi Database Relasional
Sebuah database relasional dapat berisi satu atau banyak tabel. Sebuah
table merupakan struktur penyimpanan dasar dari sebuah RDBMS.
Sebuah table memiliki semuadata yang diperlukan tentang sesuatu di
dunia nyata, seperti karyawan, faktur, atau pelanggan.
Tabel
Didalam
sistem
relasional
database
data
dinyatakan
dengan
menggunakan tabel (relations). Sebuah tabel mempunyai struktur seperti
di bawah ini,
12
kolom 1
kolom 2
………..
………
………
kolom n
Baris ( record )
Sebuah tabel harus diberi nama secara unik sebagai identitasnya dan
terdiri dari beberapa baris sebagai penyimpanan informasi, dan masingmasing baris berisi satu record. Sebuah tabel dapat mempunyai sebuah
kolom atau lebih. Sebuah kolom memiliki sebuah nama dan tipe data
yang diberlakukan dan merupakan deskripsi atribut pada record. Struktur
tabel yang disebut juga relation schema, ditentukan oleh atributatributnya. Tipe informasi yang tersimpan di dalam tabel ditentukan oleh
tipe data yang terdapat pada atribut-atributnya pada saat tabel dibuat.
Sebuah tabel dapat mempunyai lebih dari 254 kolom yang mempunyai
tipe data yang sama atau tipe data yang berbeda sesuai dengan
penempatan values (domain). Kemungkinan-kemungkinan domain yang
dipergunakan adalah alphanumeric data (strings), numbers, dan date
formats. ORACLE menawarkan tipe-tipe data dasar seperti di bawah ini:
a. Char (n): Fixed-lenght character data (strings), mendefinisikan string
sepanjang n karakter. Nilai maksimum untuk n adalah 255 byte (.......
di ORACLE 9i). Bila n tidak dituliskan, maka panjang karakter yang
berlaku adalah 1.
contoh: char(40).
b. Varchar2 (n) : Variable-lenght character strings, mendefiniskan string
yang panjangnya berubah-ubah sesuai dengan kebutuhan dan
dibatasi sebanyak karakter n. Nilai n maksimum adalah 2000 (....... di
ORACLE 9i). Hanya banyaknya byte yang digunakan saja yang
tersimpan pada memori.
contoh: varchar2(80).
c. Number (o,d) : Numeric data type , mendefinisikan angka integerdan
riel, o = jumlah digit, d = jumlah digit yang berada dibelakang koma.
Nilai maksimum: o = 38, d = -84 sampai +127.
contoh: number (8), number (5,2).
13
Number (5,2) nilainya tidak dapat lebih dari 999.99 , jika melebihi nilai
maksimum tersebut maka akan menjadi kesalahan. Tipe data yang
berasal dari number adalah int[eger], dec[imal], smallint dan real.
d. Date: Date data type untuk menempatkan atau mendefinisikan
tanggal, bulan, tahun, hari, jam, menit dan detik. Format keadaan
awal ( default ) untuk date adalah : DD-MMM-YY.
Contoh : ‟10-FEB-94’,’29-NOV-98’.
e. long:
mendefinisikan
tipe
data
binary,
panjangnya
karakter
maksimum adalah 2GB. Setiap tabel hanya diperbolrhkan satu kolom
saja yang mempunyai tipe long.
Catatan:
Di dalam ORACLE–SQL tidak ada tipe data boolean, tetapi dengan data
yang sama dapat menggunakan char(1) atau number(1).
Selama tidak terdapat ketentuan/hambatan lain yang membatasi
kemungkina values pada atribut, dapat digunakan special value yaitu null
(untuk sesuatu yang tidak diketahui). Nilai ini tidak sama dengan angka 0,
dan juga tidak sama dengan angka kosong.
Gambar 1. 5 Record pada Tabel EMPLOYEES
14
Gambar 1.5 menunjukkan isi tabel atau relasi EMPLOYEES. Huruf-huruf
menunjukkan hal-hal sebagai berikut:
a. Baris tunggal (atau tuple) mewakili semua data yang dibutuhkan untuk
karyawan
tertentu.
Setiap
baris
dalam
sebuah
tabel
harus
diidentifikasi oleh primary key, yang memungkinkan tidak ada
duplikasi baris. Urutan baris tidak signifikan; menentukan urutan baris
saat data diambil.
b. Sebuah kolom ataua tribut yang berisi nomor karyawan. Jumlah
karyawan
mengidentifikasi
karyawan
yang
unik
dalam
tabel
EMPLOYEES. Dalam contoh ini, kolom nomor karyawan yang
ditunjuk sebagai primary key. Sebuah primary key harus mengandung
nilai, dan nilai harus unik.
c. Sebuah kolom yang bukan key value. Sebuah kolom merupakan atau
merepresentasikan salah satu jenis data dalam tabel; dalam contoh
ini, data adalah gaji semua karyawan. Urutan kolom tidak signifikan
ketika menyimpan data; menentukan urutan kolom saat data diambil.
d. Sebuah kolom yang berisi nomor departemen, yang juga merupakan
foreign key. Foreign key adalah kolom yang mendefinisikan
bagaimana tabel berhubungan satu sama lain. Foreign key mengacu
pada primary key atau kunci unik di tabel yang sama atau di tabel lain.
Dalam contoh, DEPARTMENT_ID secara unik mengidentifikasi
sebuah departemen dalam tabel DEPARTMENTS.
e. Sebuah field dapat ditemukan di persimpangan dari baris dan kolom.
Hanya ada satu nilai di dalamnya.
f.
Sebuah field mungkin tidak memiliki nilai di dalamnya. Ini disebut nilai
null. Dalam tabel EMPLOYEES,hanya karyawan yang memiliki peran
perwakilan penjualan memiliki nilai di COMMISSION_PCT (komisi).
8. Properti Database Relasional
Dalam sebuah relasional database, pengguna tidak menentukan rute
akses ke tabel, dan tidak perlu tahu bagaimana data diatur secara fisik.
Untuk mengakses database, cukup dengan mengeksekusi perintahperintah atau pernyataan SQL, yang merupakan American National
15
Standards Institute (ANSI) bahasa standar untuk operasi relasional
database. SQL berisi satu set operator-operator yang cukup besar untuk
membagi dan mempertautkan hubungan. Database dapat dimodifikasi
dengan menggunakan pernyataan SQL.
9. Berkomunikasi dengan RDBMS menggunakan SQL
Structured Query Language
Menggunakan SQL, pengguna dapat berkomunikasi dengan server data
base. SQL memiliki beberapa keuntungan: efisien, mudah untuk dipelajari
dan digunakan, dan memiliki fungsi-fungsi yang sangat lengkap
(menentukan, mengambil, dan memanipulasi data dalam tabel).
Gambar 1. 6 Komunikasi DBMS Menggunakan SQL
Pernyataan-pernyataanSQL
SELECT
INSERT
UPDATE
DELETE
MERGE
CREATE
ALTER
DROP
RENAME
TRUNCATE
COMMENT
GRANT
REVOKE
16
Data Manipulation Language (DML)
Data Definition Language (DDL)
Data Control Language (DCL)
COMMIT
ROLLBACK
SAVEPOINT
Transaction Control
Pernyataan
Deskripsi
SELECT
Mengambil datadari database, mengisi baris
INSERT
baru, merubah baris yang ada, dan menghapus
UPDATE
baris yang tidak diinginkan dari tabel dalam
DELETE
database secara berturut-turut, dikenal sebagai
MERGE
data manipulation language (DML).
CREATE
ALTER
Membuat, merubah, dan menghapus struktur
DROP
data dari tabel, dikenal sebagai data definition
RENAME
language (DDL).
TRUNCATE
COMMENT
GRANT
Memberika natau menghilangkan hak akses ke
REVOKE
data base maupun struktur didalamnya.
COMMIT
Mengelola
ROLLBACK
pernyataan
SAVEPOINT
dikelompokkan bersama ke dalam transaksilogis.
perubahan
DML.
yang
Perubahan
dibuat
oleh
data
bisa
D. Aktivitas Pembelajaran
Aktivitas pada kegiatan pembelajaran 1, mencakup topik-topik berikut:
a. Pengenalan konsep DBMS dan model hubungan entitasnya
b. Pengenalan metode komunikasi DBMS menggunakan SQL
c. Pengenalan klasifikasi perintah SQL untuk berkomunikasi dengan DBMS
Modul ini disusun agar dapat dijadikan sebagai panduan pembelajaran
peserta pelatihan untuk menambah wawasan dan pemahaman tentang
kompetensi yang ingin dicapai dalam kegiatan pembelajaran 1. Pada
prinsipnya peserta pelatihan harus mengikuti kegiatan belajar tatap muka
17
dan aktif dalam setiap kegiatan pembelajaran yang dilakukan. Adapun
aktivitas dalam kegiatan pembelajaran 1 tertuang ke dalam tabel berikut ini:
No
Aktivitas Pembelajaran
Keterlaksanaan
1
Apersepsi tentang pengenalan
Ya
Tidak
Ya
Tidak
database relasional
2
Penyampaian materi
3
Membaca
uraian
materi
Ya
Tidak
uraian
materi
Ya
Tidak
kegiatan-
Ya
Tidak
materi
Ya
Tidak
teman
Ya
Tidak
materi
Ya
Tidak
latihan/tugas
Ya
Tidak
pembelajaran
4
Memahami
pembelajaran
5
Melaksanakan
kegiatan
pada
kegiatan
pembelajaran 1
6
Bertanya
tentang
pembelajaran 1
7
Berdiskusi
dengan
tentang materi pembelajaran
8
Mengembangkan
pembelajaran
9
Mengerjakan
yang diberikan
E. Latihan / Kasus / Tugas
1. ER (hubungan entitas) Model merepresentasikan suatu ilustrasi dari
berbagai entitas dalam hal
a. Hubungan di antara mereka
b. Komponen entitas
c. Hubungan antar DBMS
d. Hubungan matriks keduanya
2. Penggunaan tanda kurung “()” pada ER Model merepresentasikan suatu
ilustrasi entitas yang menunjukkan….
18
a. Akronim suatu database
b. Akronis suatu tabel
c. Sinomin suatu database
d. Sinonim suatu tabel
3. Tipe data boolean pada Oracle tidak didukung, sebagai gantinya Oracle
menyediakan model representasi tipe boolean dengan cara…..
a. Menggunakan tipe data varhcar(n)
b. Menggunakan tipe data number(1)
c. Menggunakan tipe data int(1)
d. Menggunakan tipe data long int(1)
4. Perintah SQL COMMENT termasuk kategori perintah SQL dengan tipe
a. Data Definition Language (DDL)
b. Data Manipulation Language (DML)
c. Transaction Control
d. Data Control Language (DCL)
5. Query berikut yang tidak mampu mengelola perubahan hasil operasi DML
adalah
a. COMMIT
b. ROLLBACK
c. SAVEPOINT
d. SELECT
F. Rangkuman
Pada kegiatan pembelajaran 1, telah dipelajari tentang konsep dasar
database relasional dan model data yang digunakan untuk menyampaikan
atau mengkomunikasikan, mengkategorikan, menggambarkan, menentukan,
memenyelidiki, mengembangkan, menganalisis, dan meniru. Model yang baik
adalah model yangcocok dalam banyak kegunaan,dapat dipahamioleh
pengguna akhir, dan berisidetail yang cukupuntuk pengembangdalam
membangun sistem database. Poin penting yang telah dipelajari pada
kegiatan pembelajaran 1 ini adalah pengelompokan pernyataan SQL
kedalam kelompok DML, DDL, DCL, dan Transaction Control. Database
didasarkan pada objek relasional sistem manajemen database. Database
relasional terdiri dari relasional,dikelola oleh operasi relasional, dan diaturoleh
19
integrity constraints. Dengan server Oracle, pengguna dapat menyimpan dan
mengelola informasi dengan menggunakan bahasa SQL.
G. Umpan Balik dan Tindak Lanjut
1. Apakah Anda sudah mampu memahami sistem manajemen database
relasional (RDBMS) dan sistem objek manajemen database relasional
(ORDBMS), serta berapa prosen tingkat pencapaian kompetensinya?
2. Apakah Anda sudah mampu memahami konsep dasar database
relasional dan berapa prosen tingkat pencapaian kompetensinya?
3. Apakah Anda sudah mampu menyajikan gagasan database (sesuai
gagasan sendiri) menggunakan model data yang sesuai dan berapa
prosen tingkat pencapaian kompetensinya?
Untuk mengukur pencapaian kompetensi Anda, silakan mengisi tabel
berikut ini:
IPK
Menggambarkan
struktur tabel relasional
Membuat
model
menggunakan konvensi
entitas
Berkomunikasi dengan
RDBMS menggunakan
pernyataan SQL
Mengelompokkan
pernyataan-pernyataan
SQL dalam kelompok
DML, DDL, DCL, dan
Transaction Control
20
Hasil yang didapat
Rencana Tindak
lanjut
H. Kunci Jawaban
1. a
2. d
3. b
4. a
5. d
21
22
23
24
Kegiatan Pembelajaran 2 :
Membatasi dan Menyortir Data
A. Tujuan
Setelah mengikuti kegiatan pembelajaran 2 ini diharapkan peserta diklat
dapat:
1. Mengambil data dari database, dengan melakukan pembatasan baris
data serta menentukan urutan baris yang akan ditampilkan.
2. Menggunakan kondisi komparasi untuk menampilkan data
B. Indikator Pencapaian Kompetensi
Indikator pencapaian kompetensi pada kegiatan pembelajaran ini adalah:
1. Membatasi baris yang dipilih menggunakan klausa WHERE
2. Menggunakan
kondisi
BETWEEN,
IN,
LIKE,
dan
NULL
untuk
menampilkan informasi pada keluaran.
3. Menggunakan operator logika AND, OR, dan NOT untuk menampilkan
informasi pada keluaran.
C. Uraian Materi
1. Membatasi Baris Menggunakan Selection
Dalam contoh pada Gambar 2.1, anggaplah bahwa pengguna ingin
menampilkan semua karyawan di departemen 90. Baris dengan nilai 90
pada kolom DEPARTMENT_ID adalah satu-satunya yang dikembalikan
atau ditampakkan. Metode pembatasan ini adalah dasar darik lausa
WHERE di dalam SQL.
25
Gambar 2. 1 Contoh Pembatasan Garis dengan Kriteria Tertentu
Membatasi Baris Yang Dipilih
Pengguna dapat membatasi baris yang dikembalikan dari query dengan
menggunakan klausa WHERE. Sebuah klausa WHERE memuat suatu
kondisi yang harus dipenuhi, dan langsung mengikuti klausa FROM. Jika
kondisi benar, maka baris yang memenuhi kondisi yang dipersyaratkan
akan dikembalikan.
Dalamsintak:
WHERE
membatasi query kebaris yang memenuhi kondisi
condition
terdiri dari nama kolom, ekspresi, konstanta, dan
operator perbandingan.
Klausa WHERE dapat membandingkan nilai-nilai dalam kolom, nilai
literal, ekspresi aritmatika, atau fungsi yang terdiri dari tiga unsur:
26

Nama Kolom

Kondisi Perbandingan

Nama Kolom, konstan, atau nilai
Gambar 2. 2 Membatasi Baris Yang Dipilih
Menggunakan Klausa WHERE
Dalam contoh, pernyataan SELECT mengambil employee ID, name, job
ID,dan departmen ID dari semua karyawan yang berada didepartemen
90.
Gambar 2. 3 Query dengan Klausa Where
Character String dan Date
Semua karakter dan tanggal diklausa WHERE harus diapit oleh tanda
kutip tunggal (''), sedangkan konstanta tidak boleh diapit oleh tanda kutip
tunggal.
Semua pencarian karakter adalah case-sensitive. Pada contoh berikut,
tidak adabaris yang dikembalikan karena tabel EMPLOYEES menyimpan
semua nama belakang dalam kasus campuran:
SELECT last_name, job_id, department_id
FROM
employees
WHERE last_name = 'WHALEN';
27
Gambar 2. 4 Query dengan Kasus Campuran
2. Membandingkan Berdasar Pada Kondisi
Kondisi Perbandingan
Kondisi perbandingan digunakan untuk membandingkan satu ekspresi
dengan nilai lain atau ekspresi lain.
Format penggunaan klausa WHERE adalah sebagai berikut:
... WHERE expr Operator value
Contoh
... WHEREhire_date = '01 -Jan-95'
... WHERE salary>= 6000
... WHERE last_name = 'Smith'
Alias tidak dapat digunakan dalam klausa WHERE.
Catatan: Simbol != dan ^ = dapat diartika „tidak sama dengan kondisi‟.
Gambar 2. 5 Operator yang Terdapat pada Query
28
Menggunakan Kondisi Perbandingan
Dalam contoh, pernyataan SELECT mengambil nama belakang dan gaji
daritabel EMPLOYEE untuk setiap karyawan yang gajinya kurang dari
atau sama dengan $ 3.000. Perhatikan bahwa ada nilai eksplisit dipasok
ke klausa WHERE. Nilai eksplisit 3000 dibandingkan dengan nilai gaji di
kolom SALARY dari tabel EMPLOYEE.
Gambar 2. 6 Hasil Eksekusi Query dengan Kondisi Perbandingan
Menggunakan Kondisi Between
Operator BETWEEN akan menguji apakah suatu nilai berada dalam
suatu range tertentu yang dapat diartikan “lebih besar atau sama dengan
nilai terkecil dan lebih kecil atau sama dengan nilai terbesar“.
Pengguna dapat menampilkan baris berdasarkan rentang nilai jangkauan
menggunakan kondisi between. Jangkauan yang pengguna tentukan
berisib atas bawah dan batas atas. Pernyataan SELECT dalam Gambar
2.7 mengembalikan baris dari tabel EMPLOYEEuntukkaryawanyang
gajinyaantara $2.500 dan $3.500.Nilai-nilai yang ditentukan dengan
kondisi between secara inklusif. Pengguna harus menentukan pertama
kali adalah batas bawah. Pengguna juga dapat menggunakan kondisi
between pada nilai karakter:
29
Gambar 2. 7 Hasil Eksekusi Query dengan Kondisi Between
Menggunakan Kondisi IN
Untuk menguji nilai-nilai dalam satu kelompok keanggotaan tertentu,
pengguna dapat menggunakan operator IN. Kondisi IN juga dikenal
sebagai kondisi keanggotaan. Kondisi IN dapat digunakan dengan semua
jenis data. Contoh berikut mengembalikan baris dari tabel EMPLOYEES
untuk setiap karyawan yang nama belakangnya termasuk dalam daftar
nama pada klausa WHERE:
SELECT employee_id, manager_id, department_id
FROM employees
WHERE last_name IN ('Hartstein', 'Vargas');
Gambar 2. 8 Hasil Eksekusi Query dengan Kondisi IN
Jika memuat karakter atau tanggal, makaharus diapit oleh tanda kutip
tunggal ('').
Menggunakan Kondisi LIKE
Pengguna mungkin tidak selalu tahu persis nilai yang akan dicari.
Pengguna dapat memilih baris yang cocok dengan pola karakter dengan
menggunakan operator LIKE. Operasi pencocokan pola karakter disebut
sebagai
30
pencarian
wildcard.
Operator
ini
digunakan
untuk
membandingkan karakter atau string atau CLOB dengan pola yang sudah
ditetapkan dan akan menghasilkan nilai boolean true jika pola yang
dibandingkan cocok dan akan menghasilakn nilai boolean false jika pola
tidak cocok dengan nilai yang dibandingkan. Pola yang dianggap cocok
pada operator like dapat termasuk penggunaan dua karakter spesial
yang biasa disebut wildcards yaitu underscore (_) yang secara eksak
hanya satu karakter yang cocok dan percent ( % ) zero atau
karakter
yang
cocok.
Pernyataan
SELECT
dalam
Gambar
lebih
2.9
mengembalikan nama depan karyawan dari tabel EMPLOYEES untuk
setiap karyawan yang nama depannya dimulai dengan huruf S.
Gambar 2. 9 Hasil Eksekusi Query dengan Kondisi LIKE
Perhatikan huruf besar S. Nama yang diawali dengan huruf kecil s tidak
dikembalikan. Kondisi seperti ini dapat digunakan sebagai jalan pintas
untuk beberapa perbandingan BETWEEN.
Contoh berikut menampilkan last name dan menye wahire date semua
karyawan yang tanggal perekrutannya antara Januari 1995 dan
Desember 1995 :
SELECT last_name, hire_date
FROM
employees
WHERE hire_date LIKE '%95';
31
Gambar 2. 10 Hasil Eksekusi Query dengan Kondisi LIKE
Menggunakan Kondisi NULL
Kondisi NULL termasuk kondisi IS NULL dan kondisi IS NOT NULL.
Kondisi IS NULL untuk menguji null. Sebuah nilai null berarti nilai tidak
tersedia,belum ditetapkan, tidak diketahui, atau tidak berlaku. Oleh
karena itu, pengguna tidak dapat menguji dengan = null karena tidak bisa
sama atau tidak sama dengan nilai apapun.
Contoh pada Gambar 2.10 mengambil last name dan manager ID untuk
semua karyawan yang tidak memiliki manager ID.
Berikut ini adalah contoh lain: Untuk menampilkan last name, job ID, dan
komisi untuk semua karyawan yang tidak berhak menerima komisi,
menggunakan pernyataan SQL berikut:
SELECT last_name, job_id, commission_pct
FROM
employees
WHERE commission_pct IS NULL;
Gambar 2. 11 Hasil Eksekusi Query dengan Kondisi NULL
3. Membandingkan Secara Logika
Sebuah kondisi logis menggabungkan hasil dari dua kondisi komponen
untuk menghasilkan hasil tunggal berdasarkan kondisi mereka, atau
32
membalikkan hasil dari suatu kondisi tunggal. Sebuah baris akan
dikembalikan hanya jika hasil keseluruhan kondisi adalah benar.
Tiga operator logika yang tersedia di SQL:

AND

OR

NOT
Menggunakan Operator AND
Dalam contoh ini, kedua kondisi harus benar, oleh karena ituhanya
karyawan
yang
memiliki
job
ID
yang
memuat
string
'MAN'
danberpenghasilan sebesar $10.000 atau lebih yang akan dipilih.
Semua pencarian karakter adalah case-sensitive. Tidak ada baris yang
dikembalikan jika 'MAN' bukan huruf besar. String karakter harus diapit
oleh tanda kutip.
Tabel Kebenaran Logika AND
Tabel berikut menunjukkan hasil gabungan dua ekspresi dengan logika
AND:
Tabel 1 Kebenaran Logikan AND
AND
TRUE
FALSE
NULL
TRUE
TRUE
FALSE
NULL
FALSE
FALSE
FALSE
FALSE
NULL
NULL
FALSE
NULL
Gambar 2.11 Hasil Eksekusi Query dengan Logika AND
33
Menggunakan Operator OR
Dalam contoh, hanya salah satu kondisi benar maka akan dipilih, oleh
karena itu, setiap karyawanyang memiliki job ID yang memuat string
'MAN' atau berpenghasilan sebesar $10.000 atau lebih akan dipilih.
Tabel Kebenaran Logika OR
Tabel berikut menunjukkan hasil gabungan dua ekspresi dengan logika
OR :
Tabel 2 Kebenaran Logikan OR
OR
TRUE
FALSE
NULL
TRUE
TRUE
TRUE
TRUE
FALSE
TRUE
FALSE
NULL
NULL
TRUE
NULL
NULL
Gambar 2. 12 Hasil Eksekusi Query dengan Logika OR
Menggunakan Operator NOT
Contoh pada Gambar 2.13 menampilkan last name dan job ID dari
semua karyawan yang job ID-nya tidak IT_PROG, ST_CLERK, atau
SA_REP.
34
Tabel Kebenaran Logika NOT
Tabel berikut menunjukkan hasil dari penerapan operator NOT untuk
kondisi:
Tabel 3 Kebenaran Logikan NOT
NOT
TRUE
FALSE
NULL
FALSE
TRUE
NULL
Operator NOT juga dapat digunakan dengan operator SQL lainnya,
seperti BETWEEN, LIKE, danNULL.
...
...
...
...
WHERE
WHERE
WHERE
WHERE
job_id
NOT IN ('AC_ACCOUNT', 'AD_VP')
salary
NOT BETWEEN 10000 AND 15000
last_name NOT LIKE '%A%'
commission_pct IS
NOT NULL
Gambar 2. 13 Hasil Eksekusi Query dengan Logika NOT
Aturan Protokoler
Aturan protokoler menentukan urutan eksekusi dari operator yang
digunakan. Tabel daftar urutan prioritas yang dieksekusi secara default.
Pengguna dapat mengganti urutan default dengan menggunakan tanda
kurung di sekitar ekspresi yang ingindi dahulukan atau diprioritaskan
dalam eksekusi.
35
Tabel 4 Aturan Protokoler
Arti
Operator Aritmetika
Operator Concatenation
Comparison condition
IS [NOT] NULL, LIKE, [NOT] IN
NOT BETWEEN
Not equal to
Not logical condition
AND logical condition
OR logical condition
Operator
1
2
3
4
5
6
7
8
9
a. ContohPrioritas Eksekusi Operator AND
Dalam contoh ini, ada dua kondisi:

Kondisi pertama adalah bahwa job ID adalah AD_PRES
dan salary lebih besar dari $15.000.

Kondisi kedua adalah bahwajob ID adalah SA_REP.
Oleh karena itu, pernyataan SELECT berbunyi sebagai berikut:
"Pilih
baris
jika
seorang
karyawan
adalah
presiden
dan
berpenghasilan lebih dari $15.000, atau jika karyawan adalah
perwakilan penjualan".
b. Contoh Menggunakan Kurung
Dalam contoh ini, ada dua kondisi:
1) Kondisi pertama adalah bahwa ID kerja adalah AD_PRES
atau SA_REP.
2) Kondisi kedua adalah bahwa gaji lebih besar dari$ 15.000.
Oleh karena itu, pernyataan SELECT berbunyi sebagai berikut:
"Pilih baris jika seorang karyawan presiden atau perwakilan
penjualan, dan jika karyawan berpenghasilan lebih dari $15.000"
36
Gambar 2. 14 Hasil Eksekusi Query
Menggunakan Klausa ORDER BY
Urutan baris yang dikembalikan dalam hasil query tidak terdefinisi.
Klausa ORDER BY dapat digunakan untuk mengurutkan baris. Jika
pengguna menggunakan klausa ORDER BY, klausa ini harus menjadi
kalimat terakhir dari pernyataan SQL. Pengguna dapat menentukan
ekspresi, alias, atau posisi kolom sebagai kondisi pilihan urutan.
Sintak:
SELECT expr
FROM table
[WHERE condition(s)]
[ORDER BY {column, expr, numeric_position}
[ASC|DESC]];
di mana :
ORDER BY
menentukan urutan di mana baris yang didapat
ditampilkan
ASC
memerintahkan baris dalam urutan menaik (ini
adalah urutan default)
DESC
memerintahkan baris dalam urutan menurun
Jika klausa ORDER BY tidak digunakan, urutan tidak terdefinisi, dan
server Oracle mungkin tidak mengambil baris dalam urutan yang
sama untuk permintaan yang sama (permintaan pertama belum tentu
mengambil urutan baris yang sama dengan urutan baris pada
permintaan kedua). Gunakan klausa ORDER BY untuk menampilkan
baris dalam urutan tertentu.
37
Gambar 2. 15 Hasil Eksekusi Query dengan Klausa ORDER BY
4. Penyortiran
Default Pengurutan Data
Urutan data standar adalah menaik:
a. Nilai-nilai numerik ditampilkan pertama dengan nilai terendah
(misalnya, 1-999).
b. Tanggal ditampilkan pertama dengan nilaiawal (misalnya, 01-JAN-92
sebelum 01-JAN-95).
c. Nilai karakter yang ditampilkan dalam urutan abjad (misalnya,
Apertama dan terakhir Z).
d. Nilai Null ditampilkan terakhir untuk urutan menaik dan pertama untuk
urutan menurun.
e. Pengguna dapat mengurutkan dengan kolom yang tidak dalam daftar
SELECT.
Contoh
a. Untuk membalik urutan baris yang ditampilkan, gunakan kata kunci
DESC setelah nama kolom dalam klausa ORDER BY. Gambar 2.16
(1) hasil pengurutan karyawan yang terbaru dipekerjakan.
b. Pengguna dapat menggunakan kolom alias di klausa ORDER BY.
Gambar Gambar 2.16(2) mengurutkan data dengan gaji tahunan.
c. Pengguna dapat mengurutkan hasil query dengan lebih dari satu
kolom. Batas pengurutan adalah jumlah kolom yang diberikan dalam
tabel. Dalam klausa ORDER BY, menentukan kolom dan memisahkan
38
nama kolom menggunakan koma. Jika pengguna ingin membalik
urutan kolom, gunakankata kunci DESC setelah nama kolom.
Gambar 2. 16 Contoh Query dengan ORDER BY
D. Aktivitas Pembelajaran
Aktivitas pada kegiatan pembelajaran 2, mencakup topik-topik berikut:
1. Pemilihan data dan mengubah urutan baris yang ditampilkan.
2. Membatasi baris dengan menggunakan klausa WHERE.
3. Penyortiran baris dengan menggunakan klausa ORDER BY.
4. Menggunakan
variabel
substitusi
untuk
menambah
fleksibilitas
pernyataan SQL SELECT.
No
Aktivitas Pembelajaran
Keterlaksanaan
1
Apersepsi tentang Pengenalan
Ya
Tidak
Ya
Tidak
perintah untuk membatasi dan
menyortir data
2
Penyampaian materi
3
Membaca
uraian
materi
Ya
Tidak
uraian
materi
Ya
Tidak
kegiatan-
Ya
Tidak
pembelajaran
4
Memahami
pembelajaran
5
Melaksanakan
kegiatan
pada
kegiatan
pembelajaran 1
39
6
Bertanya
tentang
materi
Ya
Tidak
teman
Ya
Tidak
materi
Ya
Tidak
latihan/tugas
Ya
Tidak
pembelajaran 1
7
Berdiskusi
dengan
tentang materi pembelajaran
8
Mengembangkan
pembelajaran
9
Mengerjakan
yang diberikan
E. Latihan / Kasus / Tugas
1. Anda ingin menuliskan query untuk menampilkan data pegawai dengan
memilih data tertentu berdasarkan kriteria. Pada klausa apa kriteria
tersebut didefinisikan?
a. WHERE
b. FROM
c. ORDER BY
d. SELECT
2. Anda ingin menulis perintah query untuk menampilkan data yang
diurutkan berdasarkan kolom tertentu. Mana pernyataan yang tidak benar
tentang klausa ORDER BY di bawah ini?
a. Ascending dan Descending bisa ditulis dengan ASC dan DESC pada
klausa ORDER BY
b. Hanya satu kolom yang bisa didefinisikan sebagai dasar pengurutan
di klausa ORDER BY
c. Beberapa kolom bisa digunakan sebagai dasar pengurutan data di
klausa ORDER BY
d. Kolom di klausa ORDER BY bisa diganti dengan nomor urut kolom di
klausa SELECT
3. Anda ingin menampilkan pegawai yang ada di bagian 30 dan namanya
diawali dengan karakter „B‟. Perintah yang benar adalah:
a. SELECT nama_pegawai, gaji, kode_bag FROM pegawai WHERE
kode_bag=30 AND nama_pegawai=‟B%‟
40
b. SELECT nama_pegawai, gaji, kode_bag FROM pegawai WHERE
kode_bag=30 OR nama_pegawa LIKE („B_)
c. SELECT nama_pegawai, gaji, kode_bag FROM pegawai WHERE
kode_bag=30 AND nama_pegawai LIKE ‟B%‟
d. SELECT nama_pegawai, gaji, kode_bag FROM pegawai WHERE
kode_bag=30 OR nama_pegawai LIKE ‟B%‟
4. Di bawah ini terdapat perintah-perintah untuk menampilkan data dari
tabel pegawai. Manakah perintah yang gagal dieksekusi?
a. SELECT * FROM pegawai;
b. SELECT id_pegawai FROM pegawai WHERE nama_pegawai =
„WIRA AULIA‟;
c. SELECT id_pegawai, nama_pegawai WHERE id_pegawai = 1004;
d. SELECT * FROM ORDER BY gaji;
5. Anda mengurutkan data pegawai berdasarkan gaji secara descending,
dalam kolom gaji terdapat pegawai yang belum memiliki gaji atau gajinya
NULL. Pada bagian mana pegawai yang gajinya NULL tesebut akan
ditampilkan?
a. Bagian tengah hasil query
b. Pegawai yang gajinya NULL tidak dimunculkan
c. Pada bagian bawah hasil query
d. Pada bagian atas hasi query
F. Rangkuman
Pada kegiatan pembelajaran 2, telah dipelajari penggunaan klausa WHERE
untuk membatasi baris yang akan ditampilkan pada keluaran. Penggunakan
kondisi perbandinngan seperti BETWEEN, IN, LIKE, dan NULL serta
penggunaan operator logika AND, OR, dan NOT disamping penggunaan
ORDER BY untuk mengurutkan baris pada keluaran.
41
G. Umpan Balik dan Tindak Lanjut
1. Apakah anda sudah mampu mengambil data dari database, dengan
melakukan pembatasan baris data serta menentukan urutan baris yang
akan ditampilkan, dan berapa prosen tingkat kompetensinya?
2. Apakah anda sudah mampu menggunakan kondisi komparasi untuk
menampilkan data dan berapa persen tingkat kompetensinya?
Setelah menyelesaiakan lembar kerja dan menjawab latihan,
isilah tabel
berikut ini:
Tabel 3.2. Umpan Balik dan Rencana Tindak Lanjut
IPK
Membatasi
dipilih
baris
yang
menggunakan
klausa WHERE
Menggunakan
BETWEEN,
dan
kondisi
IN,
NULL
menampilkan
LIKE,
untuk
informasi
pada keluaran
Menggunakan
operator
logika AND, OR, dan
NOT untuk menampilkan
informasi pada keluaran.
H. Kunci Jawaban
1. a
2. b
3. c
4. c
5. d
42
Hasil Yang
Rencana Tindak
Diperoleh
Lanjut
43
44
45
Kegiatan Pembelajaran 3 :
Menggunakan Fungsi Single-Baris Untuk
Menyesuaikan Keluaran
A. Tujuan
Setelah mengikuti kegiatan pembelajaran 3 ini, peserta diklat dapat:
Mengeksplorasi fungsi single-baris yang berfokus fungsi karakter, numerik,
dan tanggal, serta fungsi-fungsi yang mengkonversi data dari tipe data
tertentu ke tipe data yang lain (misalnya, konversi dari data karakter ke data
numerik).
B. Indikator Pencapaian Kompetensi
Indikator pencapaian kompetensi pada kegatan pembelajaran ini adalah:
1. Menjelaskan berbagai jenis fungsi yang tersedia dalam SQL.
2. Menggunakan fungsi karakter, numerik, dan tanggal pada pernyataan
SELECT.
3. Menjelaskan penggunaan fungsi konversi
C. Uraian Materi
1. Fungsi-Fungsi SQL
Fungsi merupakan ciri yang sangat menonjol dari SQL. Fungsi-fungsi
tersebut dapat digunakan untuk melakukan hal-hal sebagai berikut:
a. Melakukan perhitungan data
b. Memodifikasi item data individu
c. Memanipulasi keluaran untuk kelompok baris
d. Format tanggal dan nomor untuk tampilan
e. Mengkonversi tipe data kolom
Fungsi
SQL
kadang-kadang
mengembalikan nilai.
46
mengambil
argumen
dan
selalu
Gambar 3. 1 Fungsi SQL
Ada dua jenis fungsi:

Fungsi Single-baris

Fungsi Multiple-baris
Fungsi Single-Baris
Fungsi-fungsi ini beroperasi pada baris tunggal saja dan
hasil
pengembaliannya adalah satu hasil per baris.
Fungsi Multiple-Baris
Fungsi-fungsi ini dapat memanipulasi kelompok baris untuk memberikan
satu hasil per kelompok baris.
Gambar 3. 2 Ilustrasi Fungsi SQL
Fungsi single-baris digunakan untuk memanipulasi item data. Fungsi ini
47
menerima satu atau lebih argumen dan oleh query dikembalikan satu nilai
untuk setiap baris.
Argumen dapat berupa salah satu dari berikut ini :

Nilai atau konstanta yang disiapkan oleh pengguna

Nilai Variabel

Nama Kolom

Ekspresi
Ciri-ciri fungsi single-baris meliputi:

Bertindak pada setiap baris yang dikembalikan dalam query

Satu hasil per baris

Mungkin mengembalikan nilai data dari tipe yang berbeda daripada
yang direferensikan

Mungkin mengharapkan satu atau lebih argumen

Dapat digunakan dalam SELECT, WHERE, dan ORDER BY
Dalam sintak:
function_name
adalah nama fungsi
arg1, arg2
adalah argumen yang akan digunakan oleh
fungsi. Hal ini dapat diwakili oleh nama
kolom atau ekspresi.
Gambar 3. 3 Deklarasi Nama Fungsi

Character functions: Menerima masukkan berupa karakter
dan
pengembaliannya dapat berupa nilai karakter dan nilai number

Number
functions:
Menerima
masukkan
numerik
dan
mengembalikan nilai-nilai numerik

Date functions:
Beroperasi pada nilai-nilai dari tipe data DATE
(Semua fungsi tanggal mengembalikan nilai tipe data DATE kecuali
fungsi MONTHS_BETWEEN, yang mengembalikan nilai number.)

Conversion functions: Konversi nilai dari satu tipe data tipe yang
lain

General functions:
- NVL
48
- NVL2
- NULLIF
- COALESCE
- CASE
- DECODE
Gambar 3. 4 Jenis-Jenis Fungsi Single Row
Fungsi Karakter
Gambar 3. 5 Klasifikasi Fungsi Karakter
Fungsi karakter single-baris menerima data karakter sebagai masuk-kan
dan dapat mengembalikan karakter dan nilai numerik.
Fungsi karakter dibagi menjadi berikut:

Fungsi Kasus-manipulasi

Fungsi Karakter-manipulasi
49
Tabel 5 Fungsi dan Kegunaannya
Fungsi
LOWER (columm / expression)
UPPER (columm / expression)
INITCAP (columm / expression)
CONCAT(columm1 / expression1,
columm2 / expression2)
SUBSTR (columm / expression,
[m,n]
LENGTH (columm / expression)
INST (columm
’string’, [,m], [n])
/
expression,
LPAD ( columm / expression, n,
‘string’ )
Kegunaan
Mengkonversi nilai-nilai karakter
alpha menjadi huruf kecil
Mengkonversi nilai-nilai karakter
alpha menjadi huruf besar
Mengkonversi nilai karakter alpha
ke huruf besar untuk huruf
pertama dari setiap kata; hurufhuruf lainnya dalam huruf kecil
Merangkai nilai karakter pertama
dengan nilai karakter kedua;
setara dengan operator (||)
Pengembalian karakter dari nilai
karakter mulai dari posisi karakter
m, n (Jika m adalah negatif,
hitungan dimulai dari akhir nilai
karakter. Jika n dihilangkan,
semua karakter dari awal hingga
akhir string dikembalikan.)
Mengembalikan jumlah karakter
dalam ekspresi
Mengembalikan posisi numerik
dari karakter string yang telah
ditentukan. Nilai m dan n secara
default adalah 1, yang berarti
memulai pencarian pada awal
pencarian
dan
melaporkan
kejadian pertama.
Pads nilai karakter pada garis
tepi sebelah kanan untuk lebar
total posisi n karakter
RPAD ( columm / expression, n, Pads nilai karakter pada garis
‘string’ )
tepi sebelah kiri untuk lebar total
posisi n karakter
TRIM (leading / trailing / both, Memungkinkan pengguna untuk
memangkas leading atau trailing
trim_character FROM
karakter (atau keduanya) dari
trim_source)
string karakter.
Jika
trim_character
atau
trim_source
adalah
karakter
literal, pengguna harus mengapit
dalam tanda kutip tunggal.
REPLACE (text, search_string, Mencari ekspresi teks untuk
string
karakter
dan
jika
replacement_string)
ditemukan,
menggantinya
50
Fungsi
Kegunaan
dengan pengganti string yang
ditentukan
Fungsi ManipulasiCase
LOWER, UPPER, dan INITCAP adalah tiga fungsi untuk mengkonver-si
atau memanipulasi case.
LOWER
Mengkonversi karakter string campuran huruf besar ke
huruf kecil
UPPER
Mengkonversi karakter string campuran huruf kecil
kehuruf besar
INITCAP
Menguba hhuruf pertama dari setiap kata ke huruf
besardan huruf yang tersisa menjadi atau tetap huruf
kecil
SELECT
'The
job
'||UPPER(last_name)||' is '
||LOWER(job_id)
AS
DETAILS"
FROM employees;
id
for
"EMPLOYEE
Gambar 3. 6 Hasil Konversi dengan Fungsi String
Menggunakan Fungsi Manipulasi Case
Gambar 3.7 menampilkan jumlah karyawan, nama, dan
nomor
departemen pada perusahaan Higgins. Klausa WHERE pada pernyataan
SQL pertama menentukan nama karyawan higgins. Karena semua data
dalam tabel EMPLOYEES disimpan dalam case yang tepat, nama higgins
tidak dapat ditemukan kecocokannya dalam tabel, dan tidak ada baris
yang dipilih.Klausa WHERE pada pernyataan SQL kedua menentukan
bahwa nama karyawan dalam tabel EMPLOYEES dibandingkan dengan
higgins, mengubah kolom LAST_NAME menjadi huruf kecil untuk tujuan
perbandingan. Karena kedua nama sekarang berhuruf kecil, kecocokan
51
ditemukan dan satu baris yang dipilih. Klausa WHERE dapat ditulis
dengan cara berikut untuk menghasilkan hasil yang sama:
...WHERE last_name = 'Higgins'
Nama dalam keluaran muncul seperti yang disimpan pada database.
Untuk menampilkan nama dengan hanya huruf pertama dalam huruf
besar, gunakan fungsi UPPER dalam pernyataan SELECT.
SELECT employee_id, UPPER(last_name),
department_id
FROM employees
WHERE INITCAP(last_name) = 'Higgins';
Gambar 3. 7 Hasil Query Menggunakan Fungsi ManipulasiCase
Fungsi Manipulasi Karakter
CONCAT, SUBSTR, LENGTH, INSTR, LPAD, RPAD, dan TRIM
merupakan fungsi karakter manipulasi.

CONCAT :Menggabung
nilai
bersama-sama
(dibatasi
untuk
menggunakan dua parameter dengan CONCAT)

SUBSTR : Ekstrak string berdasar pada panjang yang ditentukan

LENGTH : Menunjukkan panjang string sebagai nilai numerik

INSTR
: Menemukan posisi numerik dari karakter tertentu

LPAD
: Pad nilai karakter pada garis tepi sebelah kanan

RPAD
: Pad nilai karakter pada garis tepi sebelah kiri

TRIM
: Memangkas atau menyisakan karakter (atau ke-duanya)
dari string karakter (Jikatrim_character atau trim_source adalah
karakter literal, pengguna harus mengapit dalam tanda kutip tunggal.
52
Menggunakan Fungsi Karakter Manipulasi
Gambar 3.8 menampilkan nama depan dan nama belakang karyawan
bergabung bersama-sama, panjang nama belakang, dan posisi numerik
dari huruf nama belakang karyawan untuk seluruh karyawan yang
memiliki REP yang ada dalam job ID dimulai pada posisi keempat dari job
ID.
Contoh
Memodifikasi pernyataan SQL dalam Gambar 3.8 untuk menampilkan
data karyawan yang namanya diakhiri dengan huruf n.
SELECT employee_id, CONCAT (first_name, last_name)
NAME,LENGTH (last_name), INSTR(last_name, 'a')
"Contains 'a'?"
FROM employees
WHERE SUBSTR(last_name, -1, 1) = 'n';
Gambar 3. 8 Hasil Query Menggunakan Fungsi KarakterManipulasi
Fungsi Numerik
Fungsi numerik menerima masukkan numerik dan mengembalikan nilainilai numerik. Bagian ini menjelaskan beberapa fungsi numerik.
53
Tabel 6 Fungsi Numerik
Fungsi
ROUND(columm I expression, n)
TRUNC(column I expression, n)
MOD (m,n)
Kegunaan
Pembulatan nilai pada kolom,
ekspresi, atau nilai desimal kenatau, jika n dihilangkan, tidak
ada tempat desimal.
Pemotongan nilai pada kolom,
ekspresi, atau nilai decimal kenatau, jika n dihilangkan, n
default ke nol.
Mengembalikan sisa hasil m
dibagi dengan n.
Gambar 3. 9 Hasil Query dengan Fungsi Numerik
Fungsi Pembulatan (ROUND)
Fungsi pembulatan nilai pada kolom, ekspresi, atau nilai desimal ke-n.
Jika argumen kedua adalah 0 atau hilang, nilai dibulatkan ke nol desimal.
Jika argumen kedua adalah 2, nilai dibulatkan ke dua tempat desimal.
Sebaliknya, jika argumen kedua adalah -2, nilai dibulatkan ke dua desimal
ke kiri (dibulatkan ke unit terdekat dari 10). Fungsi ROUND juga dapat
digunakan dengan fungsi tanggal.
Tabel DUAL
Tabel DUAL dimiliki oleh pengguna SYS dan dapat diakses oleh semua
pengguna. Tabel ini berisi satu kolom, DUMMY, dan satu baris dengan
nilai X. Tabel DUAL berguna ketika pengguna ingin mengembalikan nilai
sekali saja (misalnya, nilai konstan, pseudocolumn, atau ekspresi yang
tidak berasal dari tabel data pengguna). Tabel DUAL umumnya
digunakan untuk sintak SELECT dan klausa kelengkapannya, karena
SELECT dan klausa FROM keduanya adalah wajib, dan beberapa
perhitungan tidak perlu memilih tabel yang sebenarnya.
54
Gambar 3. 10 Hasil Query Fungsi ROUND
Fungsi TRUNC
Fungsi TRUNC memotong nilai pada kolom, ekspresi, atau atau nilai
desimal ke-n. Fungsi TRUNC bekerja dengan argumen mirip dengan
fungsi ROUND. Jika argumen kedua adalah 0 atau hilang, nilai dipotong
ke nol desimal. Jika argumen kedua adalah 2, nilai dipotong untuk dua
tempat desimal. Sebaliknya, jika argumen kedua adalah -2, nilai dipotong
untuk dua desimal ke kiri. Jika argumen kedua adalah -1, nilai tersebut
dipotong ke satu tempat desimal ke kiri. Seperti fungsi ROUND, fungsi
TRUNC dapat digunakan dengan fungsi tanggal.
Gambar 3. 11 Hasil Query Fungsi TRUNC
55
Fungsi MOD
Fungsi MOD mendapatkan hasil sisa argumen pertama dibagi dengan
argumen kedua.
Gambar 3.12 menghitung hasil sisa gaji setelah membaginya dengan
5.000 untuk semua karyawan yang job ID tugasnya adalah SA_REP.
Gambar 3. 12 Hasil Query Fungsi MOD
2. Bekerja dengan Tanggal
Format Tanggal
Database menyimpan tanggal dalam format numerik internal yang
mewakili abad, tahun, bulan, hari, jam, menit, dan detik.Tampilan default
dan format masukkan untuk setiap tanggal adalah DD-MON-RR. Oracle
database memberlakukan tanggal valid adalah antara1 Januari 4712 SM,
dan 31 Desember 9999 AD.
Gambar 3. 13 Format Tanggal pada Oracle
Gambar 3.13, kolom keluaran HIRE_DATE ditampilkan secara default
dengan format DD-MON-RR. Namun, tanggal tidak disimpan dalam data
base dalam format ini. Semua komponen tanggal dan waktu disimpan.
Jadi, meskipun HIRE_DATE seperti17-Juni-87 ditampilkan sebagai hari,
bulan, dan tahun, ada juga waktu dan informasi abad terkait dengan
56
tanggal. Data lengkap 17 Juni 1987, 05:10:43, disimpan secara internal
sebagai berikut :
Abad
19
Tahun
87
Bulan
06
Hari
17
Jam
17
Menit
10
Detik
43
Abad dan Tahun 2000
Ketika rekor dengan kolom tanggal dimasukkan ke dalam tabel,
informasi abad diambil dari fungsi SYS DATE. Namun, ketika kolom
tanggal ditampilkan di layar, komponen abad tidak ditampilkan
(secara default).
Tipe data DATE selalu menyimpan informasi tahun sebagai angka
empat digit internal: dua digit untuk abad dan dua digit untuk tahun.
Sebagai contoh, database Oracle menyimpan tahun 1987 atau
2004, dan tidak hanya sebagai 87 atau 04.
Fungsi SYSDATE
SYS DATE adalah fungsi tanggal yang mengembalikan tanggal dan
waktu server database sekaramg. Pengguna dapat menggunakan
SYSDATE seperti menggunakan nama kolomlainnya.
Contoh
:
SELECT SYSDATE
FROM DUAL;
Gambar 3. 14 Fungsi SYSDATE pada Query
Penambahan dan Pengurangan Tanggal
Karena tanggal tersimpan dalam database sebagai angka, maka
pengguna dapat melakukan perhitungan dengan menggu-nakan
operator
aritmetika seperti
penambahan
dan
pengurang-an.
Pengguna dapat melakukan operasi berikut:
57
Tabel 7 Operasi pada Tanggal
Operasi
Hasil
Deskripsi
date + angka
Date
Menambahkan jumlah hari
dari tanggal
date - angka
Date
Mengurangi jumlah hari dari
tanggal
date – date
Nilai hari
Mengurangi tanggal dengan
tanggal yang lain
date + angka/24
Date
Menambahkan sejumlah jam
Gambar 3.15 menampilkan nama belakang dan jumlah minggu untuk
semua karyawan pada departemen 90. Tanggal dimana karyawan mulai
dipekerjakan (hire-date) dikurangi dengan tanggal saat ini (SYSDATE)
dan membagi hasilnya dengan 7 untuk menghitung jumlah minggu bahwa
seorang karyawan sudah bekerja.
Catatan: SYSDATE adalah fungsi SQL yang mengembalikan tanggal dan
waktu. Hasilnya eksekusi mungkin berbedadari contoh, karena tenggal
sekarang dikurangi dengan tanggal karyawan mulai bekarja, diperoleh
angka negatif (perbedaan adalah angka negatif).
Gambar 3. 15 Hasil Query SYSDATE dengan Manipulasi Tanggal
Fungsi Date
Fungsi Date mengembalikan nilai dari tipe data DATE kecuali
MONTHS_BETWEEN, yang mengembalikan nilai numerik.
a. MONTHS_BETWEEN (date1, date2),
Menemukan jumlah bulan antara date1 dan date2. Hasilnya bisa
positif atau negatif. Jika date2 adalah lebih awal date1, hasilnya
positif; jika date1 lebih awal dari date2, hasilnya negatif.
58
b. ADD_MONTHS (date, n),
Menambahkan sejumlah n dari bulan kalender. Nilain harus integer
dan bisa negatif.
c. NEXT_DAY (date, 'char'),
Menemukan tanggal hari tertentu berikutnya dalam minggu('char')
pada tanggal sesuai date. Nilai char adalah sejumlah karakter string
yang mewakili hari.
d. LAST_DAY (date),
Menemukan tanggal hari terakhir dari bulan yang berisi tanggal
e. ROUND (date [, 'fmt']),
Mengembalikan
tanggal
dibulatkan
ke
unit
yang
ditentukan
olehformat model fmt. Jika format model fmt dihilangkan, tanggal
dibulatkan ke terdekat hari.
f.
TRUNC (tanggal [, 'fmt']),
Pengembalian tanggal dengan porsi waktu hari dipotong ke unit yang
ditentukan oleh model format fmt. Jika model formatfmt dihilangkan,
tanggal dipotong satu hari.
Gambar 3. 16 Fungsi TRUNC dalam Pemotongan Tanggal
Misalnya, menampilkan ID karyawan, tanggal mereka mulai bekerja,
jumlah bulan bekerja, enam bulan tanggal review, Hari Jum‟at
pertama setelah tanggal mereka mulai bekerja, dan hari terakhir dari
bulan mereka mulai bekerja untuk seluruh karyawan yang telah
bekerja selama kurang dari 70 bulan.
SELECT employee_id, hire_date,
MONTHS_BETWEEN (SYSDATE, hire_date) TENURE,
ADD_MONTHS (hire_date, 6) REVIEW,
NEXT_DAY
(hire_date,
'FRIDAY'),
LAST_DAY(hire_date)
59
FROM employees
WHERE MONTHS_BETWEEN (SYSDATE, hire_date) <
70;
Gambar 3. 17 Hasil Query dengan Manipulasi Tanggal
Fungsi ROUND dan TRUNC dapat digunakan untuk nilai numerik
dan tanggal. Ketika digunakan dengan tanggal, fungsi-fungsi ini bulat
atau memotong dengan model format yang ditentukan.Oleh karena
itu, pengguna dapat menggenapkan tanggal untuk tahun atau
bulanterdekat.
Contoh:
Bandingkan tanggal mulai merekai bekerja untuk semua karyawan
yang dimulai pada tahun 1997.
Tampilan ID karyawan, tanggal dan bulanmereka mulai bekerja
menggunakan fungsi ROUND dan TRUNC.
SELECT employee_id, hire_date,
ROUND(hire_date, 'MONTH'), TRUNC(hire_date,
'MONTH')
FROM employees
WHERE hire_date LIKE '%97';
Gambar 3. 18 Hasil Query dengan fungsi ROUND dan TRUNC
3. Fungsi Bersarang (Nesting Function)
Fungsi single-baris dapat bersarang ke kedalaman. Fungsi
bersarang dievaluasi dari tingkat terdalam ke tingkat terluar.
Gambar 3.19 menampilkan nama belakang dari karyawan didepartemen
60. Evaluasi pernyataan SQL melibatkan tiga langkah yaitu :
a. Fungsi bagian dalam mengambil delapan karakter pertama dari nama
belakang.
60
Result1=substr(LAST_NAME, 1, 8)
b. Fungsi bagian luar merangkai hasil dengan_us.
Result2=CONCAT(Result1, '_ AS)
c. Fungsi terluar mengkonversi hasil ke huruf besar.
Seluruh ekspresi menjadi judul kolom karena tidak ada kolom
aliasyang diberikan.
Contoh
:
Menampilkan tanggal Jumat depan enam bulan dari tanggal mereka
mulai bekerja.Tanggal yang dihasilkan harus muncul sebagai Jumat
13 Agustus1999. Orde hasil berdasarkan tanggal mereka mulai
bekerja.
SELECT TO_CHAR(NEXT_DAY(ADD_MONTHS
(hire_date, 6), 'FRIDAY'),
'fmDay, Month DDth, YYYY')
"Next 6 Month Review"
FROM employees
ORDER BY hire_date;
Gambar 3. 19 Hasil Query dengan Konversi TO_CHAR
4. Fungsi-Fungsi Umum
Fungsi ini bekerja dengan tipe data dan berhubungan dengan
penggunaan nilai null dalam daftar ekspresi.
Tabel 8 Fungsi Umum
Fungsi
NVL
Deskripsi
Mengkonversi nilai null ke nilai yang
sebenarnya
61
Jika expr1 tidak null, NVL2 kembali
expr2 Jika expr1 adalah null, NVL2
kembali expr3. Argumen expr1 dapat
memiliki tipe data.
Membandingkan dua ekspresi dan
mengembalikan null jika mereka sama;
pengembalian ekspresi pertama jika
mereka tidak sama
Mengembalikan ekspresi pertama nonnull dalam daftar ekspresi
NVL2
NULLIF
COALESCE
Fungsi NVL
Untuk mengkonversi nilai null untuk nilai yang sebenarnya, menggunakan
fungsi NVL.
Sintak
NVL(expr1, expr2)
di mana

expr1 adalah nilai sumber atau ekspresi yang mungkin berisi
null

expr2 adalah nilai target untuk mengkon versinol
Pengguna dapat menggunakan fungsi NVL untuk mengkonversi tipe data,
tetapi nilai kembali selalu sama dengan tipe data dari expr1.
Konversi NVL untuk berbagai jenis data.
Tipe Data
NUMBER
DATE
CHAR or VARCHAR2
Contoh Konversi
NVL(number_column,9)
NVL(date_column, ‟01-Jan-2016‟)
NVL(character_column, „Tidak tersedia‟)
Menggunakan Fungsi NVL
Untuk menghitung kompensasi tahunan dari semua karyawan, pengguna
perlu mengalikan gaji bulanan dengan 12 dan kemudian hasilnya
ditambah dengan persentasekomisi :
SELECT last_name, salary, commission_pct,
(salary*12) + (salary*12*commission_pct) AN_SAL
FROM
employees;
62
Perhatikan bahwa kompensasi tahunan dihitung hanya karyawan yang
mendapatkan komisi. Jika ada kolom nilai dalam sebuah ekspresi adalah
null, hasilnya adalah null. Untuk menghitung nilai semua karyawan,
pengguna harus mengubah nilai null untuk angka sebelum menerapkan
operator aritmetika. Dalam Gambar 3.20, fungsi NVL digunakan untuk
mengkonversi nilai null ke nol.
Gambar 3. 20 Query Menggunakan Fungsi NVL
Menggunakan Fungsi NVL2
Fungsi NVL2 meneliti ekspresi pertama. Jika ekspresi pertama tidak null,
maka fungsi NVL2 mengembalikan ekspresi kedua. Jika ekspresi pertama
adalah null, maka ekspresi ketiga dikembalikan.
Sintaks
NVL2 (expr1, expr2, expr3)
di mana:
expr1 adalah nilai sumber atau ekspresi yang mungkin berisi nol
expr2 adalah nilai yang dikembalikan jika expr1 tidak null
expr3 adalah nilai yang dikembalikan jika expr1 adalah null
Dalam
contoh
yang
ditunjukkan
olah
Gambar
3.21,
kolom
COMMISSION_PCT diperiksa. Jika sebuah nilai terdeteksi, ekspresi
63
kedua SAL + COMM dikembalikan. Jika kolom COMMISSION_PCT
memiliki atau menyimpan nilai null, ekspresi ketiga SAL dikembalikan.
Argumen expr1 dapat memiliki tipe data. Argumen expr2 dan expr3 dapat
memiliki tipe data kecuali tipe data LONG. Jika jenis data expr2 dan expr3
berbeda, server akan mengkonversi expr3 dengan jenis data expr2
sebelum membandingkan mereka kecuali expr3 adalah konstan null.
Dalam kasus terakhir, tipe data konversi tidak diperlukan. Tipe data dari
nilai pengembalian selalu sama dengan tipe data dari expr2, kecuali
expr2 adalah data karakter, maka nilai pengembalian memiliki tipe data
VARCHAR2.
Gambar 3. 21 Query dengan Fungsi NVL2
Menggunakan Fungsi NULL IF
Fungsi NULLIF membandingkan dua ekspresi. Jika mereka sama, fungsi
mengembalikan null. Jika mereka tidak sama, fungsi mengembalikan
ekspresi pertama. Pengguna tidak dapat menentukan NULL literal untuk
ekspresi pertama.
Sintak
NULLIF (expr1, expr2)
Dimana:
64
expr1 adalah nilai sumber dibandingkan dengan expr2
expr2 adalah nilai sumber dibandingkan dengan expr1 (Jika tidak sama
dengan expr1, expr1 dikembalikan.)
Gambar
3.22
dibandingkan
panjang
dengan
nama
depan
panjang
nama
dalam
tabel
belakang
EMPLOYEES
dalam
tabel
EMPLOYEES.Ketika panjang dari nama depan dan nama belakang sama
nilai null ditampilkan tetapi jika tidak sama, maka panjang nama depan
ditampilkan.
Catatan: Fungsi NULLIF secara logis setara dengan ekspresi CASE.
CASE WHEN expr1 = expr 2 THEN NULL ELSE
expr1 END
Gambar 3. 22 Query Menggunakan Fungsi NULLIF
Menggunakan Fungsi COALESCE
Fungsi COALESSCE mengembalikan ekspresi non-null pertama dalam
daftar.
Sintak
COALESCE(expr1, expr2, ...exprn)
di mana
expr1 ekspresi ini dikembalikan jika tidak null
65
expr2 mengembalikan ekspresi ini jika ekspresi pertama adalah null
dan ekspresi ini tidaknull
exprn mengembalikan ekspresi ini jika ekspresi sebelumnya null
Semua ekspresi harus memiliki tipe data yang sama.
Dalam contoh yang ditunjukkan pada Gambar 3.23, jika nilai
MANAGER_ID tidak null, ia ditampilkan. Jika nilai MANAGER_ID adalah
null, maka COMMISSION_PCT ditampilkan. Jika nilai-nilai MANAGER_ID
dan COMMISSION_PCT adalah null, maka nilai -1 ditampilkan.
Gambar 3. 23 Hasil Eksekusi Query dengan Fungsi COALESCE
5. Ekspresi Bersyarat
Dua metode yang digunakan untuk melaksanakan pengolahan bersyarat
(logika IF-THEN-ELSE) pada pernyataaan SQLadalah ekspresi CASE
dan fungsi DECODE.
Catatan: Ekspresi CASE sesuai dengan ANSI SQL, sedangkanfungsi
DECODE khusus untuk Oracle sintak.
Ekspresi CASE
Ekspresi CASE menggunakan logika IF-THEN-ELSE dalam pernyataan
SQL tanpa harus memanggil prosedur.
Dalam ekspresi CASE sederhana, Oracle server pertama kali mencari
pasangan
WHEN
...THEN
dimana
jika
exprsama
dengan
comparison_expr maka akan dikembalikan return_expr. Jika tidak ada
pasangan WHEN... THEN yang memenuhi kondisi ini, dan jika klausa
66
ELSE ada, maka server Oracle mengembalikan else_expr. Jika tidak,
server Oracle mengembalikan null. Pengguna tidak dapat menentukanliteral NULL untuk semua return_exprs dan else_expr tersebut.
Semua ekspresi (expr, comparison_expr, danreturn_expr) harus memiliki
tipe data yang sama, dapat berupa CHAR, VARCHAR2, NCHAR, atau
NVARCHAR2.
Menggunakan Ekspresi CASE
Pernyataan SQL dalam Gambar 2-56, nilai job_id telah diuraikan atau
diterjemahkan. Jika job_id adalah IT_PROG, kenaikan gaji adalah 10%;
jika job_id adalah ST_CLERK, kenaikan gaji 15%; jika job_id adalah
SA_REP, kenaikan gaji adalah 20%. Untuk semua peran pekerjaan lain,
tidak ada kenaikan gaji.
Pernyataan yang sama dapat ditulis dengan fungsi DECODE. Contoh di
atas merupakan contoh pencarian yang menggunakan ekspresi CASE.
Pencarian menggunakan ekspresi CASE terjadi dari kiri ke kanan sampai
pada kondisi yang dicari telah ditemukan, maka ekspresi pengembalian
akan dikembalikan. Jika tidak ada kondisi yang ditemukan, tetapi klausa
ELSE ada, maka akan dikembalikan ekspresi pengembalian yang
terdapat dalam klausa ELSE; jika tidak, maka nilai NULL dikembalikan.
SELECT last_name,salary,
(CASE WHEN salary<5000 THEN 'Low'
WHEN salary<10000 THEN 'Medium'
WHEN salary<20000 THEN 'Good'
ELSE 'Excellent'
END) qualified_salary
FROM employees;
67
Gambar 3. 24 Query dengan Kondisi CASE
Fungsi DECODE
Fungsi DECODE menerjemahkan ekspresi dalam cara yang mirip
denganl ogika IF-THEN-ELSE yang digunakan dalam berbagai bahasa.
Fungsi DECODE menerjemahkan ekspresi setelah membandingkannya
dengan nilai masing-masing yang dicari atau nilai pencarian. Jika
ekspresi
adalah
sama
dengan
nilai
pencarian,
hasilnya
akan
dikembalikan.
Menggunakan Fungsi DECODE
Pernyataan SQL dalam Gambar 3.25, nilai job_id diuji. Jika job_id adalah
IT_PROG, kenaikan gaji adalah 10%; jika job_id adalah ST_CLERK,
kenaikan gajia dalah 15%; jika job_id adalah SA_REP, kenaikan gaji
adalah 20%. Untuk semua peran pekerjaan lain, tidak ada kenaikan gaji.
Pernyataan yang sama dapat dinyatakan dalam pseudocode sebagai
pernyataan IF-THEN-ELSE:
IF job_id =
IF job_id =
IF job_id =
ELSE salary
'IT_PROG'
'ST_CLERK'
'SA_REP'
= salary
THEN
THEN
THEN
salary = salary*1.10
salary = salary*1.15
salary = salary*1.20
Gambar 3. 25 Query dengan Fungsi DECODE
68
D. Aktivitas Pembelajaran
Aktivitas pada kegiatan pembelajaran 3, mencakup topik-topik berikut:
1. Pembuatan query yang memerlukan penggunaan fungsi numerik,
karakter, dan tanggal.
2. Melakukan perhitungan tahun dan bulan untuk memecahkan masalah.
3. Menentukantanggalseseorang mulai bekerja
No
Aktivitas Pembelajaran
1
Apersepsi
Keterlaksanaan
tentang
Ya
Tidak
Ya
Tidak
Menggunakan Fungsi SingleBaris
Untuk
Menyesuaikan
2
Keluaran
Penyampaian materi
3
Membaca
uraian
materi
Ya
Tidak
uraian
materi
Ya
Tidak
kegiatan-
Ya
Tidak
materi
Ya
Tidak
teman
Ya
Tidak
materi
Ya
Tidak
latihan/tugas
Ya
Tidak
pembelajaran
4
Memahami
pembelajaran
5
Melaksanakan
kegiatan
pada
kegiatan
pembelajaran 1
6
Bertanya
tentang
pembelajaran 1
7
Berdiskusi
dengan
tentang materi pembelajaran
8
Mengembangkan
pembelajaran
9
Mengerjakan
yang diberikan
E. Latihan / Kasus / Tugas
1. Anda akan mengeksekusi beberapa fungsi matematika. Tabel apa yang
akan anda gunakan untuk melakukan kalkulasi matematika dari ekspresi
atau nilai yang bukan diambil dari tabel di dalam database?
69
a. EMP
b. EMPLOYEES
c. DUAL
d. DUMMY
2. Anda diminta menulis pernyataan SQL untuk mengeksekusi kenaikan gaji
pegawai dengan ketentuan bahwa setiap bagian mempunyai nilai
kenaikan yang berbeda-beda. Misal bagan Administrasi naik 10% ,
Bagian Sales naik 15% , dan Bagian Akunting naik 12 %, selai ketiga
bagian tersebut tidak terjadi kenaikan. Fungsi apa yang akan anda
gunakan ? pilih semua fungsi yang dapat digunakan.
a. DECODE
b. NVL
c. COALESCE
d. CASE
e. NVL2
3. Di bawah ini, mana yang bukan fungsi untuk tipe data numerik ?
a. ROUND ( )
b. MOD ( )
c. TO_NUMBER ( )
d. CEIL ( )
e. TRUNC ( )
4. Dari perintah tentang operasi data tanggal, mana yang gagal pada sa‟at
dieksekusi?
a. SELECT sysdate + 2 FROM DUAL;
b. SELECT sysdate + TO_DATE (‟02-JAN-2015‟,‟DD-MON-YYYY‟)
FROM DUAL;
c. SELECT to_date (‟02-JAN-15‟,‟DD-MON-RR‟) – to_date (‟01-JAN15‟,‟DD-MON-RR‟) FROM DUAL;
d. SELECT to_date (‟02-JAN-15‟,‟DD-MON-RR‟) – sysdate FROM
DUAL;
e. SELECT to_date (‟02-JAN-15‟,‟DD-MON-RR‟) + 12/24 FROM DUAL;
70
F. Rangkuman
Pada kegiatan pembelajaran 3, telah dipelajari fungsi single-baris yang dapat
digunakan untuk dapatmemanipulasiberikut:

DataCharacter
: LOWER, UPPER, INITCAP, CONCAT, SUBSTR,
INSTR, dan LENGTH.

DataNumerik
: ROUND, TRUNC, dan MOD

Data Tanggal
:MONTHS_BETWEEN,ADD_MONTHS, NEXT_
DAY, LAST_DAY,ROUND, dan TRUNC
Hal penting yang perlu diIngat adalah :
Nilai tanggaljuga dapat menggunakanoperatoraritmetika.Fungsikonversidapat
mengkonversikarakter,
tanggal,
dan
–nilai
nilai
numerik:
TO_CHAR,TO_DATE, TO_NUMBER. Ada beberapafungsiyang berhubungan
dengannulls, termasukNVL, NVL2, NULLIF, dan COALESCE. Logika IFTHEN-ELSEdapat
diterapkandalampernyataanSQLdengan
menggunakanekspresi CASEataufungsiDECODE.
SYSDATEadalah fungsitanggalyang mengembalikantanggal dan waktu.
Untuk melakukan kalkulasi matematika dari nilai yang bukan diambil dari
tabel di dalam database digunakan tabel dummy yang disebut tabel DUAL.
G. Umpan Balik dan Tindak Lanjut
1. Apakah anda sudah mampu menulis sub queries di klausa WHERE pada
pernyataan SQL lain untuk mendapatkan nilai-nilai yang kondisinya tidak
diketahui, dan berapa prosen tingkat kompetensinya?
Setelah menyelesaiakan lembar kerja dan menjawab latihan, isilah tabel
berikut ini:
IPK
Melakukan
Hasil Yang
Rencana Tindak
Diperoleh
Lanjut
perhitungan
data
Memodifikasi item data
individu
71
Memanipulasi
keluaran
untuk kelompok baris
Menformat tanggal dan
nomor untuk tampilan
Mengkonversi tipe data
kolom
H. Kunci Jawaban
1. c
2. a, d
3. c
4. b
72
73
74
75
Kegiatan Pembelajaran 4 :
Menampilkan Data Dari Beberapa Tabel
A. Tujuan
Setelah mengikuti kegiatan pembelajaran 4 ini diharapkan peserta diklat
dapat:
1. Menjelaskan bagaimanacara untuk mendapatkan data yang diperoleh
dari beberapa tabel (lebih dari satu tabel).
2. Menggunakan JOIN untuk melihat informasidari beberapa tabel.
3. Menampilkan data yang diperoleh dari beberapa tabel.
B. Indikator Pencapaian Kompetensi
Indikator pencapaian pada kegiatan pembelajaran ini adalah:
1. Menulis pernyataan SELECTuntuk mengakses data dari beberapa tabel
(lebih dari satu tabel) dengan menggunakan equijoin dan none quijoin.
2. Join tabel untuk dirinya sendiri dengan menggunakan self-join.
3. Melihatdata yang secara umum tidak memenuhi kondisi join dengan
menggunakan Outer Join.
4. Menghasilkan produk Cartesian semua baris dari dua tabel atau lebih.
C. Uraian Materi
1. Penggabungan Tabel Menggunakan SQL
Mendapatkan Data dari Beberapa Tabel
Kadang-kadang pengguna perlu menggunakan data lebih dari satu tabel.
Dalam Gambar 4.1, ditampilkan data dari dua tabel yang terpisah:

Employee ID ada dalam tabel EMPLOYEES.

Department
ID
ada
di
tabel
EMPLOYEES
dan
di
tabel
DEPARTMENTS.

Nama Department ada dalam tabel DEPARTMENTS.
Untuk menghasilkan laporan yang mencakup hal-hal di atas, maka
pengguna perlu untuk menghubungkan tabel EMPLOYEES dan tabel
DEPARTMENTS serta data akses dari keduanya.
76
Gambar 4. 1 Tabel yang akan dimanipulasi
Pengertian JOIN
Untuk menggabung tabel, pengguna dapat menggunakan sintak JOIN
yang kompatibel dengan SQL Standar 1999.
Database terdiri dari beberapa tabel, setiap tabel menyimpan data yang
berbeda-beda. Jika pengguna ingin menampilkan informasi yang datanya
diperoleh dari beberapa tabel, maka pengguna harus melakukan join.
Join antara dua tabel memerlukan kondisi join yang digunakan untuk
menghubungkan data dari satu tabel ke data yang berada pada tabel lain.
Kondisi join didefinisikan pada klausa WHERE.
Kondisi JOIN dan Jenis JOIN
Berdasar pada tanda pembanding yang digunakan pada kondisi join di
klausa WHERE, join dibagi kedalam dua bagian yaitu:

Equi Join adalah join antara dua tabel yang kondisi join-nya
menggunakan operator sama dengan ( = )

Non-equi Join adalah join antara dua tabel yang kondisi joinnya
menggunakan selain operator sama dengan : < , >, BETWEEN, serta
tanda pembanding lainnya.
Sedangkan dari data yang dihasilkan jenis join ada tiga, yaitu:

Inner Join adalah join yang menghasilkan data yang bersesuaian
atau data yang memenuhi kondisi join saja, sedangkan data yang
77
tidak
sesuai
atau
tidak
mempunyai
pasangan
tidak
akan
dimunculkan.

Outer Join adalah join yang hasilnya merupakan gabungan data
yang bersesuaian atau data yang memenuhi kondisi join dan data
yang tidak mempunyai pasangan. Outer Join digolongkan menjadi
Left Outer Join, Right Outer Join, dan Full Outer Join.

Self Join adalah join yang dilakukan antar kolom dalam satu tabel.
Join yang kompatibel dengan SQLStandar1999, adalah :
Cross Join, Natural Join, Klausa USING, Full outer join.
Membuat Natural Join
Pengguna dapat menggabung tabel secara otomatis berdasarkan pada
kolom di dua tabel yang memiliki tipe data dan nama yang sama.
Catatan: Natural Join hanya menggabung kolom pada dua tabel yang
memiliki nama dan tipe data yang sama. Jika kolom memiliki nama yang
sama tetapi tipe data berbeda, maka sintak Natural Join akan
menyebabkan kesalahan.
Mengambil Records dengan Natural Join
Gambar 4.2, Tabel LOCATIONS digabung dengan table DEPARTMENT
berdasar pada kolom LOCATION_ID, yang merupakan satu-satunya
kolom dengan nama yang sama dikedua tabel.
Gambar 4. 2 Hasil Query NATURAL JOIN
78
Natural Join dengan Klausa WHERE
Pembatasan tambahan pada Natural Join diimplementasikan dengan
menggunakan klausa WHERE. Contoh berikut membatasi baris keluaran
untuk mereka dengan department ID 20 atau 50.
SELECT department_id, department_name,
location_id, city
FROM
departments
NATURAL JOIN locations
WHERE
department_id IN (20, 50);
Gambar 4. 3 Query Natural Join dengan Klausa WHERE
Klausa USING
Natural Join menggunakan semua kolom dengan nama dan tipe data
yang sama untuk digabung. Klausa USING juga dapat digunakan untuk
menentukan kolom yang harus digabung dengan menggunakan Equi join.
Contoh :
SELECT l.city, d.department_name
FROM
locations l JOIN departments
(location_id)
WHERE location_id = 1400;
d
USING
2. Penggabungan Nama Kolom
Klausa USING untuk Equijoin
Untuk menentukan karyawan pada sebuah departemen, pengguna
membandingkan nilai pada kolom DEPARTMENT_ID dalam tabel
EMPLOYEES dengan nilai pada kolom DEPARTMENT_ID dalam tabel
DEPARTMENTS. Hubungan antara tabel EMPLOYEES dan tabel
DEPARTMENS departemen tabel adalah Equijoin; yaitu, nilai-nilai di
79
kolom DEPARTMENT_ID di kedua tabel harus sama. Dalam beberapa
kasus,
join
ini
melibatkan
primary
key
dan
foreign
key,
Equijoin juga disebut simple join atau inner join.
Gambar 4. 4 Klausa USING untuk Equijoin
Menggunakan Tabel Alias
Kualifikasi nama kolom dengan nama tabel dapat memakan waktu dalam
eksekusinya, terutama jika nama tabel yang panjang. Pengguna dapat
menggunakan tabel alias sebagai ganti nama tabel. Sama seperti kolom
alias yang memberikan nama kolom dengan nama yang lain, tabel alias
memberikan tabel dengan nama tabel yang lain. Penggunaan tabel alias
dapat membantu memperkecil kode SQL, karena penggunaan lokasi
memori yang lebih sedikit. Perhatikan bagaimana tabel alias diidentifikasi
dalam klausa FROM dalam contoh. Nama tabel ditentukan secara penuh,
diikuti dengan spasi dan kemudian tabel alias. Tabe lEMPLOYEES telah
diberikan aliase, dan tabel DEPARTMENTS diberikan alias d.
Gambar 4. 5 Query Penggunaan Tabel Alias
80
Klusa ON
Pada dasarnya kondisi join yang digunakan pada Natural Join adalah
Equijoin dengan menggunakan kolom yang namanya sama. Dengan
klausa ON pengguna dimungkinkn untuk melakukan join pada dua tabel
walaupun pada kedua tabel tersebut tidak memiliki kolom yang namanya
sama untuk dijadikan sebagai kondisi join, tetapi data pada data pada
kolom-kolom tersebut memiliki data yang sama sehingga dimungkinkan
untuk dilakukan join.
Gambar 4. 6 Klausa ON pada Query
Self Join
Kadang-kadang pengguna harus mengabungkan tabel untuk dirinya
sendiri. Untuk menemukan nama manajer setiap karyawan, pengguna
perlu menggabung tabel EMPLOYEES untuk dirinya sendiri, atau
melakukan gabungan diri. Sebagai contoh, untuk menemukan nama
manajer Lorentz, pengguna perlu:
a. Mencari Lorentz dalam tabel EMPLOYEES dengan melihat kolom
LAST_NAME.
b. Mencari
manajer
ID
untuk
Lorentz
dengan
melihat
kolom
MANAGER_ID. Manajer ID Lorentz adalah 103.
c. Mencari nama manajer yang memiliki EMPLOYEE_ID103 dengan
melihat kolom LAST_NAME. EMPLOYEE_ID Hunold adalah 103, jadi
Hunold adalah manajer Lorentz.
81
Pada Gambar 4.7, terlihat tabel yang sama sebanyak 2 kali. Pertama,
terlihat tabel untuk menemukan Lorentz di kolom LAST_NAME dan nilai
MANAGER_ID yaitu 103. Kedua ,terlihat di kolom EMPLOYEE_ID untuk
menemukan 103 dan kolom LAST_NAME untuk menemukan Hunold.
Gambar 4. 7 Contoh Self Join pada Query
Klausa ON juga dapat digunakan untuk menggabung kolom yang memiliki
nama yang berbeda, dalam tabel yang sama atau di tabel yang berbeda.
Contoh yang ditampilkan adalah self join dari tabel EMPLOYEES,
berdasar pada kolom EMPLOYEE_ID dan MANAGER_ID.
Gambar 4. 8 Klausa ON dengan Kombinasi SELF JOIN
82
Kondisi Tambahan untuk JOIN
Pengguna dapat menerapkan kondisi tambahan untuk Join. Contoh pada
Gambar 4.9, ditampilkan perlakuan join pada tabel EMPLOYEES dan
tabel DEPARTEMENTS dan hanya menampilkan karyawan yang memiliki
manajer ID 149. Untuk menambahkan kondisi tambahan untuk klausa
ON, Pengguna dapat menambahkan AND, atau dapat juga menggunakan
klausa WHERE untuk menerapkan kondisi tambahan sebagai alternatif:
SELECT e.employee_id, e.last_name, e.department_id,
d.department_id, d.location_id
FROM
employees e JOIN departments d
ON
(e.department_id = d.department_id)
WHERE e.manager_id = 149;
Gambar 4. 9 KlausaJOIN pada Query
Non-Equijoins
Sebuah non-Equijoin adalah kondisi bergabung yang menggunakan
operator selain operator sama dngan (=). Hubungan antara tabel
EMPLOYEES dan tabel JOB_GRADES adalah contoh dari non-Equijoin.
Hubungan antara dua tabel adalah bahwa kolom SALARY dalam tabel
EMPLOYEES harus memiliki nilai antara kolom LOWEST_SALARY dan
kolom HIGHEST_SALARY dari tabel JOB_GRADES. Hubungan tersebut
diperoleh dengan menggunakan operator selain operator sama dengan
(=).
Contoh pada Gambar 4.10 dan 4.11 membuat non-Equijoin untuk
mengevaluasi kelas gaji karyawan. Gaji harus berada antara setiap
pasangan dari rentang gaji terendah dan gaji tertinggi. Ketika query
dijalankan semua karyawan gajinya berada diantara gaji terendah dan
gaji tertinggi akan dimunculkan dan tidak ada karyawan
yang
83
dimunculkan sebanyak 2 kali, karena semua gaji karyawan terletak dalam
batas-batas yang disediakan oleh tabel job_grades. Artinya, tidak ada
karyawan yang mendapatkan gaji kurang dari nilai terendah yang ada
pada kolom LOWEST_SAL atau lebih dari nilai tertinggi yang ada pada
kolomHIGHEST_SAL. Kondisi lain (seperti <= dan> =) dapat digunakan,
tetapi BETWEEN adalah yang paling sederhana.
Gambar 4. 10 Tabel EMPLOYEES dan JOB_GRADES
Gambar 4. 11 Implementasi Non-Equijoins pada Query
84
Outer Join
Menggabung tabel dengan NATURAL JOIN, Klausa USING, atau Klausa
ON hasilnya berada di dalam Inner Join, sedangkan setiap baris yang tak
bersesuaian atau tidak cocok tidak akan ditampilkan pada keluaran.
Untuk mengembalikan atau menampilkan baris yang tak bersesuaian
atau tidak cocok, pengguna dapat menggunakan Outer Join. Outer Join
mengembalikan semua baris yang memenuhi kondisi join dan juga
mengembalikan beberapa atau semua baris dari satu tabel baik yang
memiliki pasangan ataupun yang tidak memiliki pasangan pada tabel lain.
Ada tiga jenis Outer Join :

LEFT OUTER JOIN

RIGHT OUTER JOIN

FULL OUTER JOIN
Left Outer Join
Query pada Gambar 4.12 akan mengembalikan semua baris dalam tabel
EMPLOYEES yang merupakan tabel kiri, termasuk juga baris yang
nilaianya tidak cocok dengan baris yang berada di tabel DEPARTMENTS.
Gambar 4. 12 Hasil Query Left Outer Join
85
Right Outer Join
Query pada Gambar 4.13, akan mengembalikan semua baris dalam tabel
DEPARTMENTS, yang merupakan tabel kanan, termasuk juga baris yang
nilainya tidak cocok dengan baris yang berada di tabel EMPLOYEES.
Gambar 4. 13 Hasil Query Right Outer Join pada
Full Outer Join
Query pada Gambar 4.14 akan mengembalikan semua baris dalam tabel
EMPLOYEES, termasuk juga baris yang nilainya tidak cocok dengan
baris yang berada di tabel DEPARTMENTS. Selain itu Query juga akan
mengambilkan semua baris dalam tabel DEPARTMENTS, termasuk juga
baris yang nilainya tidak cocok dengan baris yang berada di tabel
EMPLOYEES.
86
Gambar 4. 14 Hasil Query Full Outer Join pada
Produk Cartesian
Ketika kondisi join tidak valid atau kondisi join dihilangkan atau tanpa
menggunakan kondidsi join, maka akan menghasilkan produk Cartesian,
di mana semua kombinasi baris ditampilkan. Semua baris dalam tabel
pertama digabung dengan semua baris dalam tabel kedua.Sebuah
produk Cartesian cenderung menghasilkan sejumlah besar baris, dan
hasilnya adalah jarang berguna.
Pada Gambar 4.15, ditampilkan nama belakang karyawan dan nama
departemen dari tabel EMPLOYEES dan tabel DEPARTMENTS. Karena
tidak ada kondisi join yang ditetapkan atau dinyatakan, semua baris (20
baris) dari tabel EMPLOYEES digabung dengan semua baris (8 baris)
dalam tabel DEPARTMENTS, sehingga menghasilkan keluaran 160
baris.
87
Gambar 4. 15 Hasil Query Cartesian Product
Cross Join
Cross Join akan menghasilkan produk Cartesian dari dua buah tabel.
Jumlah data yang dihasilkan merupakan perkalian jumlah data pada tabel
pertama dengan jumlah data pada tabel kedua seperti ditunjukkan pada
Gambar 4.16.
Gambar 4. 16 Hasil Query CROSS JOIN
D. Aktivitas Pembelajaran
Aktivitas pada kegiatan pembelajaran 4, mencakup topik-topik berikut:
88
1.
Menggabung tabel menggunakan Equi join
2.
Melakukan penggabungan tabel menggunakan Outer Join dan Self Join
3.
Menambah kondisi Join
No
Aktivitas Pembelajaran
1
Apersepsi
Keterlaksanaan
tentang
cara
data
dari
menampilkan
Ya
Tidak
Ya
Tidak
beberapa tabel
2
Penyampaian materi
3
Membaca
uraian
materi
Ya
Tidak
uraian
materi
Ya
Tidak
kegiatan-
Ya
Tidak
materi
Ya
Tidak
teman
Ya
Tidak
materi
Ya
Tidak
latihan/tugas
Ya
Tidak
pembelajaran
4
Memahami
pembelajaran
5
Melaksanakan
kegiatan
pada
kegiatan
pembelajaran 1
6
Bertanya
tentang
pembelajaran 1
7
Berdiskusi
dengan
tentang materi pembelajaran
8
Mengembangkan
pembelajaran
9
Mengerjakan
yang diberikan
E. Latihan / Kasus / Tugas
1. User ingin melakukan join antara tabel pegawai dan bagian. Di dalam
tabel pegawai masih terdapat beberapa pegawai yang belum ditempatkan
ke bagian tertentu. Jika user tersebut ingin menampilkan semua pegawai,
baik yang sudah ditempatkan maupun yang belum ditempatkan ke bagian
tertentu, maka query yang tepat adalah:
a. SELECT a.nama_pegawai, b.nama_bagian FROM pegawai a, bagian
b WHERE a.kode_bagian=b.kode_bagian(+);
89
b. SELECT a.nama_pegawai, b.nama_bagian FROM pegawai a RIGHT
OUTER JOIN bagian b ON (a.kode_bagian=b.kode_bagian);
c. SELECT a.nama_pegawai, b.nama_bagian FROM pegawai a FULL
OUTER JOIN bagian b ON (a.kode_bagian=b.kode_bagian);
d. SELECT a.nama_pegawai, b.nama_bagian FROM pegawai a, bagian
b WHERE a.kode_bagian(+)=b.kode_bagian;
2. Pilih 2 pernyataan klausa USING pada JOIN antartabel yang benar
adalah:
a. Klausa USING digunakan jika ada beberapa kolom yang namanya
sama di tabel yang akan di-join
b. Klausa USING digunakan jika tidak ada kolom yang namanya sama di
kedua tabel
c. Klausa USING hanya akan menampilkan data-data yang namanya
sama di kedua tabel yang di-join
d. Nama kolom yang disebutkan pada klausa USING tidak boleh diawali
dengan nama tabel atau tabel alias
3. Anda ingin membuat laporan dengan melibakan empat buah tabel. Agar
tidak terjadi cartesian product, minimal berapa kondisi join yang
diperlukan untuk mengantisipasi hal tersebut?
a. 1 kondisi join
b. 2 kondisi join
c. 3 kondisi join
d. 4 kondisi join
4. Penggunaan natural join yang paling tepat adalah
a. Jika hanya satu kolom yang namanya sama di tabel yang di-join
b. Jika hanya 2 kolom atau lebih yang namanya sama di tabel yang dijoin
c. Jika tidak ada kolom yang namanya sama di tabel yang di-join
d. Jika hanya satu record yang sama dari tabel yang di-join
F. Rangkuman
Ada beberapa cara untuk menggabung tabel. Jenis untuk menggabung tabel
yaitu: Equijoin, Non-equijoin, Outer join, Self-join, Cross join, Natural join, dan
90
Full (or two-sided) outer join. Hasil produk Cartesian akan menampilkan
semua kombinasi dari baris, yang dapat dilakukan dengan menghilangkan
klausa WHERE atau dengan klausa CROSS JOIN. Tabel Alias dapat
mempercepat akses ke database dan memori yang digunakan relatif lebih
sedikit. Hal penting yang harus diperhatikan adalah:
1. Join memerlukan kondisi join. Tanpa kondisi join maka join akan
menghasilkan produk Cartesian.
2. Kondisi pembanding Equijoin menggunakan tanda sama dengan (=). Join
yang menggunakan selain tanda sama dengan dikondisi join disebut nonequijoin.
3. Inner join menampilkan data yang punya pasangan pada kedua tabel
4. Outer join menampilkan data yang ada pasangannya maupun data yang
tidak memiliki pasangan pada kedua tabel. Ada 3 Outer join yaitu : LEFT
OUTER JOIN, RIGHT OUTER JOIN, dan FULL OUTER JOIN.
5. NATURAL JOIN digunakan jika terdapat satu dan hanya satu kolom yang
namanya sama pada kedua tabel.
G. Umpan Balik dan Tindak Lanjut
1. Apakah anda sudah mampu menjelaskan bagaimana cara untuk
mendapatkan data yang diperoleh dari beberapa tabel (lebih dari satu
tabel) dan berapa prosen tingkat kompetensinya?
2. Apakah anda sudah mampu menggunakan JOIN untuk melihat informasi
dari beberapa tabel dan berapa prosen tingkat kompetensinya?
3. Apakah anda sudah mampu menampilkan data yang diperoleh dari
beberapa tabel dan berapa prosen tingkat kompetensinya?
Setelah menyelesaiakan lembar kerja dan menjawab latihan, isilah tabel
berikut ini:
91
Hasil Yang
Diperoleh
IPK
Menulis
pernyataan
SELECT
untuk
mengakses
data
dari
beberapa tabel (lebih dari
satu
tabel)
dengan
menggunakan
Join
tabel untuk equijoin
dirinya
dan none quijoin. dengan
sendiri
menggunakan self-join.
Melihat data yang secara
umum tidak memenuhi
kondisi
join
dengan
menggunakan
Menghasilkan
Join.
Outer
produk
Cartesian semua baris
dari dua tabel atau lebih.
H. Kunci Jawaban
1. a
2. a
3. c
4. a
92
Rencana Tindak
Lanjut
93
94
95
Kegiatan Pembelajaran 5:
Data Manipulation Language Pada SQL
A. Tujuan
Setelah mengikuti kegiatan pembelajaran 5 ini peserta diklat diharapkan
dapat:
Menulis query dengan mengimplementasikan syntax Data Manipulation
Language pada SQL
B. Indikator Pencapaian Kompetensi
Indikator pencapaian kompetensi pada kegiatan pembelajaran ini adalah:
1. Menjelaskan syntax DML dalam memasukkan data (insert data).
2. Menjelaskan syntax DML dalam mengubah data (update data)
3. Menjelaskan syntax DML dalam menghapus data (delete data)
4. Menjelaskan syntax DML dalam menampilkan data (select data)
C. Uraian Materi
Data Manipulation Language (DML) akan membahas cara memanipulasi
data pada suatu tabel yang pernah dibuat sebelumnya. Kegiatan manipulasi
data meliputi,
1. Memasukan data ke dalam tabel (insert)
2. Memperbaharui data (update)
3. Menghapus data (delete)
4. Memilih atau menyeleksi data (select)
1. Memasukan Data (Insertions)
Cara yang mudah dan sederhana untuk memasukan data ke dalam tabel
ialah dengan menggunakan stetemen insert.
insert into <tabel>[(<kolom i, ...... , kolom j>)]
values (<value i , ........ , value j>);
Untuk setiap kolom yang dituliskan, harus memiliki hubungan dengan
value yang sesuai. Pada kegiatan insert tidak menjadi suatu keharusan
untuk megikuti susunan atribu-atribut seperti dalam pembuatan tabel
(create table). Apabila ada kolom yang disertakan dalam penulisan,
96
maka
akan
ditambahkan
dengan
nilai
null
pada
kolom
yang
bersangkutan.
Contoh :
insert
into
PROJECT
(PNO,
PNAME,
PERSON,
BUDGET,
PSTART)
values (313, ‘DBS’ , 4 , 150000.42, ’10-OCT-94’);
atau
insert into PROJECT
values (313, ‘DBS’ ,7411, null , 150000.42 , ’10OCT-94’ , null );
Jika sudah ada beberapa data pada tabel lain, data-data ini dapat
digunakan sebagia data masukan pada tabel yang baru. Untuk keperluan
ini, digunakan stetemen insert seperti form dibawah ini,
insert into <tabel> [(<kolom i, ..... , kolom j>)] <query>
Contoh :
Tabel baru
create table OLDEMP(
ENO number(4) not null,
HDATE date);
Gambar 5. 1 Query dalam membuat Tabel
Sekarang kita dapat menggunakan tabel EMP yang sudah ada sebagai
masukan pada tabel OLDEMP,
insert into OLDEMP (ENO, HDATE)
select EMPNO, HIREDATE from EMP
where HIREDATE < ’31-DEC-60’;
97
2. Memperbaharui Data ( Updates )
Kegiatan update pada prinsipnya memperbaharui data lama dengan data
yang terbaru. Kegiatan ini dilakukan apabila sudah terdapat dua atau
record, tetapi data yang ada tersebut ternyata tidak berlaku lagi karena
dianggap sudah usang atau bahkan data yang ada ternyata salah akibat
kekurangtelitian saat melakukan pengisian atau akibat yang lain. Untuk
memodifikasi/memperbarui data yang telah ada digunakan statemen
update seperti di bawah ini,
Update <tabel>set
<kolom i> = <ekspresi i> , ........ , <kolom j>
= <ekspresi j>
[where <kondisi>];
Suatu ekspresi dapat terdiri dari salah satu diantara konstanta (nilai
baru), operasi arithmatik atau operasi string, atau suatu SQL query.
Stetemen update tanpa klausa where menghasilkan perubahan pada
atribut yang sesuai pada seluruh baris.
Contoh:
a.
Seorang
pegawai
yang
departemen 20 sebagai
bernama
JONES
dipindahkan
manager dan pendapatannya dinaikan
1000,
Update EMP set
JOB = ‘MANAGER’, DEPTNO = 20, SAL = SAL + 1000
Where ENAME = ‘JONES‘;
Gambar 5. 2 Sebelum Data diperbarui
Gambar 5. 3 Sesudah Data diperbarui
98
ke
b.
Semua pegawai yang bekerja dilingkungan departemen 10 dan 30
memperoleh
Kenaikan gaji sebesar 15%
update EMP set
SAL = SAL * 1.15 where DEPTNO in (10,30);
Gambar 5. 4 Data Sebelum diperbarui
99
Gambar 5. 5 Data Sesudah diperbarui
Sama seperti pada stetemen insert, tabel yang lain juga dapat digunakan
untuk memperbaharui data sebagai masukan baru,
Contoh:
Semua salesman yang bekerja di lingkungan departemen 30 memperoleh
gaji yang sama seperti manager yang berpenghasilan terendah diantara
seluruh manager yang ada,
Update EMP set
SAL = (select min ( SAL ) from EMP
Where JOB = ‘MANAGER’)
Where JOB = ‘SALESMAN’ and DEPTNO = 30;
100
Gambar 5. 6 Data Sebelum diperbarui
Gambar 5. 7 Data Sesudah diperbarui
101
Penjelasan: query mengambil kembali pendapatan minimum dari seluruh
manager nilai ini kemudian diserahkan ke seluruh salesman yang bekerja
di departemen 23.
3. Menghapus Data ( Deletions )
Semua baris atau baris yang dipilih pada sebuah tabel dapat dihapus
dengan menggunakan perintah delete , seperti sintak dibawah ini :
Delete from <tabel> [where<kondisi>];
Contoh:
Menghapus karyawan yang memiliki nama „MILLER‟
Delete from EMP WHERE ENAME=’MILLER’;
Gambar 5. 8 Data Sebelum dihapus
Gambar 5. 9 Data Sesudah dihapus
Jika tidak menggunakan klausa where, maka semua baris akan terhapus
dari tabel. Kejadian ini akan menghasilkan hasil yang sama jika kita
menggunakan perintah (sebagai alternatif) truncate table <tabel>, tetapi
kegiatan penghapusan yang menggunakan perintah truncate table tidak
dapat dianulir (undo).
4. Memiliki atau Menyeleksi Data (Selection)
Sintak SQL select, menampilkan kembali sekelompok data terpilih yang
sudah ada pada sebuah tabel. Select biasanya juga disebut query yang
telah diuraikan pada awal pembahasan. Untuk mendapatkan informasi
102
Comment [A3]: Contoh program secara detail
pada standard ORACLE 10g tentang tabel-tabel yang telah ada dapat
digunakan query.
select table_name from user_tables;
D. Aktivitas Pembelajaran
Aktivitas pada kegiatan pembelajaran 5, mencakup topik-topik berikut:
1. Membuat query untuk memasukkan data (insert data)
2. Membuat query untuk mengubah data (update data)
3. Membuat query untuk menghapus data (delete data)
4. Membuat query untuk menampilkan data (select data)
No
Aktivitas Pembelajaran
1
Apersepsi
Keterlaksanaan
tentang
cara
data
dari
menampilkan
Ya
Tidak
Ya
Tidak
beberapa tabel
2
Penyampaian materi
3
Membaca
uraian
materi
Ya
Tidak
uraian
materi
Ya
Tidak
kegiatan-
Ya
Tidak
materi
Ya
Tidak
teman
Ya
Tidak
materi
Ya
Tidak
latihan/tugas
Ya
Tidak
pembelajaran
4
Memahami
pembelajaran
5
Melaksanakan
kegiatan
pada
kegiatan
pembelajaran 1
6
Bertanya
tentang
pembelajaran 1
7
Berdiskusi
dengan
tentang materi pembelajaran
8
Mengembangkan
pembelajaran
9
Mengerjakan
yang diberikan
103
E. Lathan / Kasus / Tugas
1. Query yang tepat untuk memasukkan data pada tabel EMP yang memiliki
2 kolom (ID_NUMBER,NAME) adalah
a. INSERT INTO EPM (ID_NUMBER,ENAME) VALUES (1,‟Alqodri‟);
b. INSERTINTO EMP (ID_NUMBER,NAME) VALUES (1,‟Alqodri‟);
c. INSERT INTO EMP (ID_NUMBER,NAME) VALUE (1,‟Alqodri‟);
d. INSERT INTO EMP (ID_NUMBER,NAME) VALUES (1,‟Alqodri‟);
2. Query yang tepat untuk mengubah data tabel EMP yang memiliki gaji
1000 menjadi 15000, dimana tabel tersebut hanya memiliki 2 kolom yaitu
ID_NUMBER dan SALadalah
a. UPDATE SET sal=15000 where SAL=1000 from EMP;
b. UPDATE SET sal=15000 where ID_NUMBER=1000 from EMP;
c. UPDATE SET sal=15000 where ID_NUMBER=1 from EMP;
d. UPDATE SET sal=1000 where ID_NUMBER=15000 from EMP;
3. User SCOUT ingin mengubah salah satu data pada tabel EMP yang
memiliki 3 kolom (ID_NUMBER, NAME dan SAL). User tersebut ingin
mengubah nama karyawan yang memiliki ID_NUMBER 15. Query yang
tepat adalah
a. UPDATE SET NAME=‟ALQODRI‟ where ID_NUMBER =15 from
EMP;
b. UPDATE SET ENAME=ALQODRI‟ where ID_NUMBER =15 from
EMP;
c. UPDATE SET NAME=‟ALQODRI‟ where ID_NUMBER =15 from
SCOUT;
d. UPDATE SET ID_NUMBER =15 where NAME=‟ALQODRI‟ from
EMP;
4. Hal yang terjadi jika dalam pembuatan query delete user lupa
menggunakan klausa FROM adalah
a. Data dalam tabel terhapus semua
b. Query error
c. Tidak terdapat data yang terhapus
d. Semua tabel terhapus
104
F. Rangkuman
Data Manipulation Language (DML) membahas cara memanipulasi data
pada suatu tabel yang pernah dibuat sebelumnya. Kegiatan manipulasi data
meliputi,
1. Memasukan data ke dalam tabel (insert),
Sintak dasar untuk memasukkan data adalah:
insert into <tabel>[(<kolom i, ...... , kolom j>)]
values (<value i , ........ , value j>);
2. Memperbaharui data (update),
Sintak dasar untuk memperbarui data adalah:
Update <tabel>set
<kolom i> = <ekspresi i> , ........ , <kolom j>
= <ekspresi j>
[where <kondisi>];
3. Menghapus data (delete),
Sintak dasar untuk memperbarui data adalah:
Delete from <tabel> [where<kondisi>];
Comment [A4]: Contoh program secara detail
4. Memilih atau menyeleksi data (select)
G. Umpan Balik dan Tindak Lanjut
1. Apakah anda sudah mampu menulis query dengan mengimplementasikan syntax Data Manipulation Language pada SQL, dan berapa prosen
tingkat kompetensinya?
Setelah menyelesaiakan lembar kerja dan menjawab latihan,
isilah tabel
berikut ini:
IPK
Hasil Yang
Diperoleh
Rencana Tindak
Lanjut
Menjelaskan syntax DML
dalam memasukkan data
(insert data).
105
Menjelaskan syntax DML
dalam
mengubah
data
(update data)
Menjelaskan syntax DML
dalam menghapus data
(delete data)
Menjelaskan syntax DML
dalam menampilkan data
(select data)
H. Kunci Jawaban
1. d
2. a
3. a
4. a
106
107
108
109
Kegiatan Pembelajaran 6:
Data Definition Language Pada SQL
A. Tujuan
Setelah mengikuti kegiatan pembelajaran 6 ini, peserta diklat diharapkan
dapat:
Menulis query dengan mengimplementasikan syntax Data Definiton
Language pada SQL
B. Indikator Pencapaian Kompetensi
Indikator pencapaian pada kegiatan pembelajaran ini adalah:
1. Menjelaskan syntax DDL dalam membuat tabel baru (create table)
2. Menjelaskan syntax DDL dalam mengubah struktur tabel (alter table)
3. Menjelaskan syntax DDL dalam menghapus tabel (drop table).
C. Uraian Materi
Data
Difinitions
Language
(DDL)
mambahas
tentang
hal-hal
yang
berhubungan dengan struktur tabel yang meliputi,
1. Cara membuat tabel baru (create table) ,
2. Mengubah struktur tabel (alter table) dan
3. Menghapus tabel (drop table).
1. Membuat Tabel ( Create Table )
Sintak untuk membuat sebuah tabel kosong baru adalah seperti dibawah
ini,
create table <table>(
<kolom 1><tipe data>
[not
null]
[unique]
[<kolom
[not
null]
[unique]
[<kolom
constraint>],
......................
<kolom
n><tipe
constraint>],
data>
[<table constraint>]
);
Setiap kolom, harus ditetapkan nama dan type data, sedangkan nama
kolom harus unique atau tidak boleh ada dua nama atribut yang sama di
110
dalam sebuah tabel. Difinisi antara kolom satu dengan kolom yang lain
dipisah dengan menggunakan koma. Penulisan nama tidak membedakan
penggunaan huruf besar maupun huruf kecil.
Contoh :
Stetemen create table untuk tabel EMP2 adalah
create table EMP2
(
EMPNO
ENAME
number(4) not null ,
varchar2(30) not null,
JOB
MGR
varchar2(10) ,
number(4) ,
HIREDATE
SAL
date
number (7,2),
DEPTNO
);
number(2) ,
Catatan :selain kolom EMPNO dan ENAME berlaku nilai null.
Penamaan Constraints
Definisi suatu tabel dapat mencakup beberapa rincian termasuk
didalamnya adalah constraints. Constraints atau batasan nilai merupakan
suatu usaha untuk mengelompokkan nilai dalam himpunan yang berlaku.
Pada dasarnya ada dua tipe constraints yang disediakan yaitu : column
constraints yang berhubungan dengan satu kolom, sedangkan yang
lainnya adalah table constraints yang dapat berhubungan dengan lebih
dari satu kolom atau beberapa kolom. Dalam sesi ini kita hanya
konsentrasi pada constraints yang sangat sederhana.
Spesifikasi constraints (yang sederhana) adalah seperti dibawah ini,
[constraints <nama>] primary key | unique
| not null
Suatu constraints dapat berupa nama yang sangat disarankan agar nama
yang digunakan berupa informasi yang berarti. Jika di dalam constraint
tidak disertakan nama, maka ORACLE secara otomatis akan memberikan
nama SYS_C<number> pada constraint. Constraint yang sangat penting
di dalam database adalah constraint primary key. Constraint primary
key memungkinkan identifikasi pada setiap baris didalam tabel secara
unique. Berdasar pada hal di atas, maka sistim database yang kita buat
111
dapat menjamin tidak akan terjadi duplikasi di dalam sebuah tabel.
Sebagai contoh pada tabel EMP yang kita miliki,
create table EMP (
EMPNO number(4) constraint pk _emp primary key
............ );
Mendefinisikan bahwa atribut EMPNO sebagai primary key, sehingga
setiap nilai untuk atribut EMPNO hanya terdapat satu kali (tidak ada
duplikasi nilai) pada tabel EMP.
Contoh :
Kita akan membuat tabel yang diberi nama PROJECT untuk menyimpan
informasi tentang keproyekan. Setiap proyek, kita ingin menyimpan
nomor dan nama proyeknya, nama pegawai manager proyek, budget dan
jumlah personil yang yang ikut bekerja pada proyek tersebut serta tanggal
proyek dimulai dan tanggal proyek selesai. Kondisi-kondisi lain yang
harus diperhatikan antara lain,
1. Proyek diidentifikasi oleh nomor proyek,
2. Nama proyek harus unique,
3. Manager dan budget proyek harus didefinisikan.
Definisi tabel yang dimaksud adalah,
create table PROJECT (
PNO
number(3) constraint
key,
PNAME varchar2(60) unique,
PMGR
number(4) not null,
PERSONS
BUDGET
number(5),
number(8,2) not null,
PSTART
date,
PEND
date );
112
prj_pk
primary
Gambar 6. 1 Hasil Eksekusi Query Membuat Tabel
Constraint unique dapat memiliki lebih dari satu atribut, tetapi tata tulisnya
harus dirubah menjadi unique (<kolom i, ..... , <kolom j>) sebagai contoh
bahwa tidak ada dua proyek yang mempunyai tanggal selesainya sama,
constraint tgl_tdk_sama unique (PEND.PSTART)
Di bawah ini adalah checklist sederhana yang harus diperhatikan
sebelum membuat tabel,
a. Atribut-atribut apa saja yang akan disimpan?, tipe data apa yang
dipergunakan pada atribut-atribut?, apakah harus menggunakan
varchar2 atau malah menggunakan char .
b. Kolom yang mana yang akan dijadikan primary key?
c. Kolom yang mana menggunakan nilai null?, dan kolom yang mana
yang tidak boleh duplikasi?
d. Apakah ada nilai default untuk kolom tertentu?
2. Mengubah Tabel ( Alter Tabel )
Mengubah tabel dapat disamakan dengan kegiatan memodifikasi suatu
tabel yang sudah ada sebelumnya dengan menggunakan statemen
ALTER TABLE. Kegiatan memodifikasi dapat berarti juga merubah
struktur tabel dalam artian menghapus atau bahkan menambah satu atau
beberapa kolom. Sintak dari stetemen ALTER TABLE adalah sebagai
berikut,
Alter table <tabel>
Add
(<kolom><tipe
data>[default<value>]<kolom
constraint>]);
113
Untuk sintak yang lain akan didiskusikan pada sesi berikutnya.
Contoh:
Jika ingin menambah kolom pada tabel PROJECT yang telah dibuat,
maka query yang digunakan adalah
ALTER TABLE PROJECT
ADD customer_name varchar2(45);
Gambar 6. 2 Struktur Awal Tabel
Gambar 6. 3 Struktur Setelah Terjadi Penambahan Kolom
3. Menghapus Tabel (Drop Table)
Terkadang kita harus menghapus tabel yang pernah dibuat karena sudah
tidak dibutuhkan lagi atau karena salah, untuk keperluan ini kita dapat
menggunakan perintah atau sintak SQL drop table yang secara lengkap
dapat dituliskan sbb,
drop table <tabel>
114
Contoh:
Jika ingin menghapus tabel PROJECT yang telah dibuat, maka query
yang digunakan adalah
DROP TABLE PROJECT;
Gambar 6.3 Hasil Query Menghapus Tabel
Perintah drop table <tabel> akan sukses dilakukan jika tabel yang
dihapus adalah tabel yang berdiri sendiri (tidak mempunyai relasi dengan
tabel yang lain) atau jika menghapus tabel relasi (tabel yang mengacu
pada tabel yang lain) harus dilakukan dengan aturan yang benar.
D. Aktivitas Pembelajaran
Aktivitas pada kegiatan pembelajaran 6, mencakup topik-topik berikut:
1. Membuat query untuk membuat tabel
2. Membuat query untuk mengubah struktur tabel
3. Membuat query untuk menghapus tabel
No
Aktivitas Pembelajaran
1
Apersepsi
tentang
Keterlaksanaan
Data
Ya
Tidak
Ya
Tidak
Definition Language pada SQL
2
Penyampaian materi
3
Membaca
uraian
materi
Ya
Tidak
uraian
materi
Ya
Tidak
kegiatan-
Ya
Tidak
pembelajaran
4
Memahami
pembelajaran
5
Melaksanakan
kegiatan
pada
kegiatan
115
pembelajaran 1
6
Bertanya
tentang
materi
Ya
Tidak
teman
Ya
Tidak
materi
Ya
Tidak
latihan/tugas
Ya
Tidak
pembelajaran 1
7
Berdiskusi
dengan
tentang materi pembelajaran
8
Mengembangkan
pembelajaran
9
Mengerjakan
yang diberikan
E. Latihan / Kasus / Tugas
1. Query yang digunakan untuk menghapus tabel EMP2 adalah
a. Delete table EMP2
b. Drop table EMP2
c. Backspace table EMP2
d. Clear table EMP2
2. Query yang digunakan untuk menambahkan kolomnama dengan tipe
varchar2 dengan panjang karakter 20 pada tabel tabel EMP2 adalah
a.
b.
c.
d.
ALTER
ALTER
ALTER
ALTER
TABLE
TABLE
TABLE
TABLE
EMP2 ADD
EMP2 ADD
nama ADD
EMP2(20)
nama varchar2(20);
nama varchar2(2);
EMP2 varchar2(20);
ADD nama varchar2;
3. Query yang digunakan untuk membuat tabel EMP2 dengan 2 kolom
adalah
a. create table EMP2 (PNO number(3) constraint prj_pk
primary key, PNAME varchar2(60) unique);
b. create table EMP2 unique (PNO number(3) constraint
prj_pk primary key, PNAME varchar2(60));
c. create table EMP2 (PNO number(3) constraint unique
prj_pk primary key, PNAME varchar2(60));
116
d. create table EMP2 unique (PNO number(3) unique
constraint prj_pk primary key, PNAME varchar2(60));
4. Hal yang terjadi jika dalam query drop tabel, user lupa menambahkan
nama tabel yang dihapus adalah
a. Data dalam tabel terhapus semua
b. Query error
c. Tidak terdapat data yang terhapus
d. Semua tabel terhapus
F. Rangkuman
Data Defiinition
Language (DDL)
mambahas tentang
hal-hal yang
berhubungan dengan struktur tabel yang meliputi,
1. Cara membuat tabel baru (create table) ,
Struktur query yang digunakan adalah
create table <table>(
<kolom 1><tipe data> [not null] [unique] [<kolom
constraint>],
......................
<kolom n><tipe data> [not null] [unique] [<kolom
constraint>],
[<table constraint>]
);
2. Mengubah struktur tabel (alter table)
Struktur query yang digunakan adalah
Alter table <tabel>
Add
(<kolom><tipe
data>[default<value>]<kolom
constraint>]);
3. Menghapus tabel (drop table).
Struktur query yang digunakan adalah
drop table <tabel>
117
G. Umpan Balik dan Tindak Lanjut
1. Apakah
Anda
sudah
mampu
menulis
query
dengan
mengimplementasikan syntax Data Definiton Language pada SQL, dan
berapa prosen tingkat kompetensinya?
Setelah menyelesaiakan lembar kerja dan menjawab latihan,
isilah tabel
berikut ini:
Hasil Yang
Diperoleh
IPK
Menjelaskan syntax DDL
dalam
membuat
tabel
baru (create table)
Menjelaskan syntax DDL
dalam mengubah struktur
tabel (alter table)
Menjelaskan syntax DDL
dalam menghapus tabel
(drop table).
H. Kunci Jawaban
1. b
2. a
3. a
4. b
118
Rencana Tindak
Lanjut
119
120
121
Kegiatan Pembelajaran 7:
Data Control Language Pada SQL
A. Tujuan
Setelah mengikuti kegiatan pembelajaran 7 ini diharapkan pesertad iklat
dapat:
Menulis query dengan mengimplementasikan syntax Data Control Language
pada SQL
B. Indikator Pencapaian Kompetensi
Indikator pencapaian pada kegiatan pembelajaran ini adalah:
1. Menjelaskan syntax DCL dalam menyimpan transaksi yang telah
dilakukan (commit)
2. Menjelaskan syntax DCL dalam membatalkan transaksi yang pernah
dilakukan (rollback)
3. Menjelaskan syntax DCL dalam memberikan hak akses user (grant)
4. Menjelaskan syntax DCL dalam mencabut hak akses user (revoke)
C. Uraian Materi
Kegiatan memodifikasi database yang memanfaatkan stetemen insert,
update, dan delete adalah suatu kegiatan yang biasanya disebut tansaksi
(transaction). Kegiatan transaksi ini disimpan secara sementara dalam
database system. Ada beberapa kegiatan yang tergolong dalam Data
Control Language (DCL) ini diantaranya adalah,
1. Menyimpan transaksi yang telah dilakukan (commit)
2. Membatalkan transaksi yang telah terjadi (rollback)
3. Memberi hak akses (grant)
4. Mencabut hak akses (revoke)
Selama kegiatan transaksi yang kita lakukan belum diakhiri dengan
stetemen commit, maka masih dimungkinkan untuk menganulir (undo)
semua modifikasi yang telah kita lakukan dengan menggunakan stetemen
rollback.
122
1. Commit dan Rollback
Secara teoritis, commit adalah syntax untuk menjadikan transaksi menjadi
permanen, sedangkan rollback adalah pembatalan transaksi.
Contoh penggunaan commit:
Gambar 7 1 . Penggunaan commit
Contoh penggunaan rollback:
Gambar 7 2 Penggunaan rollback
123
2. Grant dan Revoke
Untuk memberikan hak/izin akses oleh administrator (pemilik utama)
server kepada user. Hak akses tersebut berupa hak membuat (CREATE),
mengambil (SELECT), menghapus (DELETE), mengubah (UPDATE),
dan hak khusus berkenaan dengan sistem databasenya.Perintah GRANT
digunakan untuk memberikan hak akses menampilkan, menambah,
memodifikasi dan menghapus data pada pada suatu table.Secara umum,
syntax Grant adalah sebagai berikut:
GRANT [akses / privileges]
ON [table]
FROM [user];
Contoh:
Perintah berikut digunakan untuk memberikan hak akses pada tabel
departmens user anakwadung.
GRANT
select,
insert,
update,
delete
ON
departmens TO anakwadung;
REVOKE, merupakan perintah yang digunakan untuk mencabut suatu
hak aksesseorang user pada tabel dalamdatabase tertentu. Secara
umum, syntax Grant adalah sebagai berikut:
REVOKE [akses / privileges]
ON [table]
FROM [User];
Contoh:
Perintah berikut digunakan untuk mencabut hak akses pada tabel
departmens user anakwadung.
REVOKE
select,
insert,
departmens TO anakwadung;
update,
delete
D. Aktivitas Pembelajaran
Aktivitas pada kegiatan pembelajaran 7, mencakup topik-topik berikut:
1. Menyimpan transaksi yang telah dilakukan (commit ),
2. Membatalkan transaksi yang telah terjadi (rollback ),
3. Memberi hak akses (grant) dan
124
ON
4. Mencabut hak akses (revoke)
No
Aktivitas Pembelajaran
Keterlaksanaan
1
Apersepsi tentang Data Control
Ya
Tidak
Ya
Tidak
Language (DCL)
2
Penyampaian materi
3
Membaca
uraian
materi
Ya
Tidak
uraian
materi
Ya
Tidak
kegiatan-
Ya
Tidak
materi
Ya
Tidak
teman
Ya
Tidak
materi
Ya
Tidak
latihan/tugas
Ya
Tidak
pembelajaran
4
Memahami
pembelajaran
5
Melaksanakan
kegiatan
pada
kegiatan
pembelajaran 1
6
Bertanya
tentang
pembelajaran 1
7
Berdiskusi
dengan
tentang materi pembelajaran
8
Mengembangkan
pembelajaran
9
Mengerjakan
yang diberikan
E. Latihan / Kasus / Tugas
1. Berikut ini mana yang bukan merupakan kondisi setelah COMMIT?
a. Semua SAVEPOINT dihapus
b. Semua ROLLBACK dihapus
c. Perubahan data disimpan permanen di dalam database
d. Semua user bisa melihat peribahan data yang sudah dilakukan
2. ROLLBACK dapat diartikan dengan;
a. Menganulir perintah
b. Memulai dari awal konfigurasi
c. Membuat seperti sedia kala
125
d. Membatalkan insert data
3. Perintah berikut digunakan untuk memberikan hak akses CREATE,
READ, UPDATE dan DELETE pada tabel dep user anakwadung adalah
a. GRANT select,
anakwadung;
insert,
update,
drop
ON
dep
TO
b. GRANT select,
anakwadung;
create,
update,
delete
ON
dep
TO
c. GRANT select,
anakwadung;
insert,
update,
delete
ON
dep
TO
dep
TO
d. GRANT read,
anakwadung;
insert,
update,
delete
ON
4. Perintah berikut digunakan untuk melepas hak akses CREATE, READ,
UPDATE dan DELETE pada tabel dep user anakwadung adalah
a. REVOKE select,
anakwadung;
insert,
update,
drop
ON
dep
TO
b. REVOKE select, create, update, delete ON dep TO
anakwadung;
c. REVOKE select, insert, update, delete ON dep TO
anakwadung;
d. REVOKE read,
anakwadung;
insert,
update,
delete
ON
dep
TO
F. Rangkuman
Kegiatan memodifikasi database yang memanfaatkan stetemen insert,
update, dan delete adalah suatu kegiatan yang biasanya disebut tansaksi
(transaction). Kegiatan transaksi ini disimpan secara sementara di dalam
database system. Ada beberapa kegiatan yang tergolong dalam Data
Control Language (DCL) ini diantaranya adalah,
a. Menyimpan transaksi yang telah dilakukan ( commit ),
b. Membatalkan transaksi yang telah terjadi ( rollback ),
c. Memberi hak akses ( grant ) dan
d. Mencabut hak akses (revoke).
Selama kegiatan transaksi yang kita lakukan belum diakhiri dengan
statemen commit, maka masih dimungkinkan untuk menganulir (undo)
126
semua modifikasi yang telah kita lakukan dengan menggunakan stetemen
rollback.
G. Umpan Balik dan Tindak Lanjut
1. Apakah anda sudah mampu menulisquerydengan mengimplementasikan
syntax Data Control Language pada SQL, dan berapa persen tingkat
kompetensinya?
Setelah menyelesaiakan lembar kerja dan menjawab latihan,
isilah tabel
berikut ini:
Hasil Yang
Diperoleh
IPK
Rencana Tindak
Lanjut
Menjelaskan syntax DCL
dalam
transaksi
menyimpan
yang
telah
dilakukan (commit)
Menjelaskan syntax DCL
dalam
transaksi
membatalkan
yang
pernah
dilakukan (rollback)
Menjelaskan syntax DCL
dalam memberikan hak
akses user (grant)
Menjelaskan syntax DCL
dalam
mencabut
hak
akses user (revoke)
H. Kunci Jawaban
1. b
2. a
3. c
4. c
127
128
EVALUASI
1.
Setelah mendeskripsikan table PEGAWAI, Anda menemukan bahwa kolom
GAJI memiliki tipe data NUMBER (8,2). Nilai GAJI manakah yang tidak
diperbolehkan dikolom ini?
A. GAJI=12345678
B. GAJI=123456.78
C. GAJI=123456
D. GAJI=12.34
2.
Bila SYSDATE = 07-JUN-1996 12:05 pm, nilai manakah yang dikembalikan
setelah mengeksekusi pernyataan berikut?
SELECT ADD_MONTHS (SYSDATE,-1) FROM DUAL;
A. 07-MAY-1996 12:05 pm
B. 06-JUN-1996 12:05 pm
C. 07-JUL-1996 12:05 pm
D. 06-MAY-1996 12:05 pm
3.
Nilai manakah yang dikembalikan setelah mengeksekusi pernyataan
berikut? Ingatlah bila 01-JAN-2009 terjadi padaThursday.
SELECT NEXT_DAY ('01-JAN-2009','wed') FROM DUAL;
A. 07-JAN-2009
B. 31-JAN-2009
C. Wednesday
D. Thursday
4.
Jika perintah DELETE memiliki klausal WHERE yang memberikan lingkup
beberapa baris, apa yang akan terjadi jika terdapat bagian error ketika
dieksekusi?
A. Perintah akan melewatkan baris yang menyebabkan kesalahan dan
terus mengeksekusi perintah berikutnya.
B. Perintah akan berhenti dikesalahan, dan baris yang telah dihapus akan
terhapus secara permanen.
129
C. Perintah yang telah dilakukan sebelum baris yang menyebabkan
kesalahan akan di batalkan.
D. Seluruh transaksi akan dibatalkan.
5.
Anda memiliki beberapa indek pada tabel yang ingin dihapus. Namun Anda
ingin menghindari penghapusan indek yang terkait dengan constraint. Pilih
pernyataan berikut yang tidak akan menghapus indek yang terkait dengan
constraint?
A. DROP INDEX
B. ALTER TABLE DROP PRIMARY KEY CASCADE
C. ALTER TABLE DROP CONSTRAINT
D. DROP TABLE
6.
User NOVITA dapat mengelola hak istimewa CREATESESSION. NOVITA
memberikan hak istimewa CREATE SESSION yang sama kepada YONO.
YONO kemudian memberikan hak istimewa kepada SUPRI. NOVITA
menemukan YONO memberikan hak istimewa kepada SUPRI, sehingga hak
istimewa YONO dicabut oleh NOVITA. Siapa yang tidak dapat terhubung ke
database?
A. Hanya YONO
B. Hanya SUPRI dan YONO
C. NOVITA, YONO dan SUPRI
D. Hanya NOVITA dan SUPRI
7. Grup function banyak digunakan untuk melakukan kalkulasi data numerik.
Tetapi ada beberapa grup function yang bisa digunakan pada data karakter
dan tanggal. Di bawah ini, pilih grup function yang bisa digunakan untuk data
numerik, karakter, dan tanggal.
A. MAX()
B. SUM()
C. AVG()
D. DECODE()
130
8. Pilih
pernyataan
WHERE
yang
dapat
mengekstrak
nilai
DEPARTMENT_NAME yang terdapat karakter literal "er" dari tabel
DEPARTMENTS. Pernyataan SELECT dan FROM adalah :
SELECT DEPARTMENT_NAME FROM DEPARTMENTS:
A. WHERE DEPARTMENT_NAME IN ('%e%r');
B. WHERE DEPARTMENT_NAME LIKE '%er%';
C. WHERE DEPARTMENT_NAME BETWEEN 'e' AND 'r';
D. WHERE DEPARTMENT_NAME CONTAINS 'e%r';
9.
Di bawah ini, mana yang bukan fungsi untuk tipe data numerik?
A. ROUND()
B. MOD()
C. TO_NUMBER()
D. CEIL()
10. Perhatikan statment di bawah ini :
create table tab1 (c1 number(1), c2 date);
alter session set nls_date_format='dd-mm-yy';
insert into tab1 values (1.1,‟28-09-15‟);
Apakah insert akan berhasil ?
A. insertakan gagal, sebab nilai 1.1 terlalu panjang
B. insertakan gagal, sebab ‟28-09-15‟ adalah STRING bukan DATE
C. insertakan gagal karena nilai 1.1 dan ‟28-09-15‟
D. insertakan berhasil
11. Perhatikan struktur tabel siswa dan tabel copy_siswa
--Tabel siswa
Kolom
Tipe_data
---------------------ID
NUMBER (6) Primary Key
NAMA
VARCHAR2 (30)
TGL_LHR
DATE
KLS
VARCHAR2 (5)
-- Tabel copy_siswa
Kolom
Tipe_data
---------------------ID
NUMBER (6) Primary Key
NAMA
VARCHAR2 (30)
131
TGL_LHR
KLS
DATE
VARCHAR2 (5)
Anda inigin melakukan penggabungan data dari tabel copy_siswa ke tabel
siswa
Perintah yang benar adalah :
A. MERGE siswa s ON copy_siswa c
USING (s.id = c.id)
WHEN MATCHED THEN
UPDATE set s.id=c.id,
s.nama=c.nama,
s.tgl_lhr = c.tgl_lhr
s.kls=c.kls
WHEN NOT MATCHED THEN
INSERT values (c.id, c.nama, c.tgl_lhr, c.kls);
B. MERGE siswa s USING copy_siswa c
ON (s.id = c.id)
WHEN MATCHED THEN
UPDATE set s.id=c.id,
s.nama=c.nama,
s.tgl_lhr = c.tgl_lhr
s.kls=c.kls
WHEN NOT MATCHED THEN
INSERT values (c.id, c.nama, c.tgl_lhr, c.kls);
C. MERGE siswa s USING copy_siswa c
ON (s.id = c.id)
WHEN MATCHED THEN
UPDATE siswa set s.id=c.id,
s.nama=c.nama,
s.tgl_lhr = c.tgl_lhr
s.kls=c.kls
WHEN NOT MATCHED THEN
INSERT values (c.id, c.nama, c.tgl_lhr, c.kls);
D. MERGE siswa s USING copy_siswa c
ON (s.id = c.id)
WHEN MATCHED THEN
UPDATE siswa set s.id=c.id,
s.nama=c.nama,
s.tgl_lhr = c.tgl_lhr
s.kls=c.kls
WHEN NOT MATCHED THEN
INSERT INTO siswa (c.id, c.nama, c.tgl_lhr, c.kls);
132
12. Perhatikan pernyataan berikut,
create table t1 as select * from regions where 1=2;
Akan menghasilkan :
A. Akan adakesalahankarena kondisitidak mungkin.
B. Tidak ada tabel yangdibuatkarena nilai balikannya FALSE.
C. Tabel t1 akan dibuat tetapi tidak ada baris yang dimasukkan karena
nilai balikannya FALSE.
D. Tabel t1 akan dibuat dan setiap baris dalam REGIONS dimasukkan
karena nilai balikannya NULL sebagai filter baris.
13. Anda diminta untuk melakukan modifikasi tabel siswa dengan menjadikan
kolom ID_SISWA sebagai primary key. Pilih pernyataan yang benar.
A. ALTER TABLE siswa ADD PRIMARY KEY id_siswa;
B. ALTER TABLE siswa ADD CONSTRAINT PRIMARY KEY (id_siswa);
C. ALTER TABLE siswa ADD CONSTRAINT stud_id_pk PRIMARY KEY
id_siswa;
D. ALTER TABLE siswa ADD CONSTRAINT stud_id_pk PRIMARY KEY
(id_siswa);
14. Anda telah menghapus 870 baris dari sebuah tabel. Untuk menyimpan
perubahan database yang telah Anda lakukan, perintah manakah yang
digunakan?
A. SAVEPOINT
B. COMMIT
C. ROLLBACK
D. SET TRANSACTION
15. Anda ingin memberikan user DIMAS kemampuan untuk memperbarui data
dalam table PEGAWAI serta kemampuan untuk mengelola akses bagi orang
lain. Perintah manakah yang digunakan ?
A. GRANT update TO DIMAS;
B. GRANT update ON pegawai TO DIMAS;
C. GRANT update ON pegawai TO DIMAS WITH GRANT OPTION;
D. GRANT update ON pegawai TO DIMAS WITH ADMIN OPTION;
133
KUNCI JAWABAN
1. A
2. A
3. A
4. C
5. A
6. A
7. A
8. B
9. C
10. D
11. B
12. C
13. D
14. B
15. C
134
PENUTUP
Desain sistem basis data merupakan salah satu modul diklat PKB level
dasar yang harus dikuasai oleh guru produktif Rekayasa perangkat Lunak.
Melalui modul ini peserta diklat diharapkan mampu memiliki kompetensi dalam
merancang sistem basis data. Proses perancangan sistem basis data diawali
dengan pemahaman konsep ragam model struktur dan arsitektur aplikasi sistem
basis data melalui aktifitas observasi dan analisis. Hasil dari perancangan
bertujuan untuk mendapatkan sistem basis data yang baik dan benar dengan
menerapkan teknik normalisasi data dan perancangan ERD. Pendekatan yang
dilakukan dalam merancang sistem basis data ini adalah pendekatan praktek
dengan mengambil studi kasus sistem database perusahaan. Diakhir modul
dengan
menggunakan
DBMS
Oracle
database
XE
peserta
dapat
mengimplementasikan rancangan basis data (level konseptual) ke dalam aplikasi
sistem basis data (level fisik). Dalam mengimplementasikan sistem basis data
menitikberatkan kepada penggunaan perangkat GUI yang telah disediakan oleh
Oracle database XE.
135
136
DAFTAR PUSTAKA
Watson, John.2008.SQL Fundamental I Exam Guide, Mc.Graw Hill
Greenberg, Nancy. 2004 Oracle Database 10g: SQL Fundamentals 1, Volume I
– Student Guide, Jobi Varghese
Greenberg, Nancy. 2004 Oracle Database 10g: SQL Fundamentals 1, Volume I
II– Student Guide (Additoinal Practices), Jobi Varghese
Sutejo, Bambang. 2002 Sukses Sertifiksi Oracle Certified Professional (OCP),
Elex Media Komputindo
137
138
GLOSARIUM
Istilah
Alias
Atribut
Definisi
Nama lain dari suatu kolom
Sesuatu yang menggambarkan atau memenuhi syarat suatu
entitas.
Commit
syntax untuk menjadikan transaksi menjadi permanen
CONCAT(colum Merangkai nilai karakter pertama dengan nilai karakter kedua;
m1
/ setara dengan operator (||)
expression1,
columm2
/
expression2)
Delete
kegiatan menghapus data
Entitas
Suatu hal yang penting tentang informasi yang perlu
diketahui.
Entity
sebuah ilustrasi dari berbagai entitas dalam bisnis dan
Relationship
hubungan di antara mereka
Model
Fungsi
Suatu modul yang memiliki tugas teetentu
GRANT
memberikan
hak
akses
menampilkan,
menambah,
memodifikasi dan menghapus data pada pada suatu table
Hubungan
Hubungan atau relationship adalah sebuah asosiasi antara
entitas dan derajat
INITCAP
Mengkonversi nilai karakter alpha ke huruf besar untuk huruf
(columm
/ pertama dari setiap kata; huruf-huruf lainnya dalam huruf kecil
expression)
INST (columm / Mengembalikan posisi numerik dari karakter string yang telah
expression,
ditentukan. Nilai m dan n secara default adalah 1, yang berarti
’string’, [,m], [n]) memulai pencarian pada awal pencarian dan melaporkan
kejadian pertama.
JOIN
klausa untuk menggabungkan tabel
Joining
Membawa data bersama yang disimpan dalam tabel yang
berbeda dengan menentukan gabungan diantara tabel.
Karakter Literal
karakter, angka, atau tanggal yang termasuk dalam daftar
SELECT dan yang bukan nama kolom atau kolom alias
LENGTH
Mengembalikan jumlah karakter dalam ekspresi
(columm
/
expression)
LOWER
Mengkonversi nilai-nilai karakter alpha menjadi huruf kecil
(columm
/
expression)
LPAD ( columm Pads nilai karakter pada garis tepi sebelah kanan untuk lebar
/ expression, n, total posisi n karakter
‘string’ )
MOD (m,n)
Mengembalikan sisa hasil m dibagi dengan n.
139
Istilah
model
Operator
Projection
Record
Relational
Database
Management
System
(RDBMS)
REPLACE (text,
search_string,
replacement_stri
ng)
REVOKE
Definisi
landasan sebuah desain
Simbol yang mampu melakukan operasi matematis pada
query
Memilih kolom dalam tabel yang dikembalikan oleh query
Isi/rekaman data dari database
Sistem Manajemen Basis data relasional
Mencari ekspresi teks untuk string karakter dan jika
ditemukan, menggantinya dengan pengganti string yang
ditentukan
perintah yang digunakan untuk mencabut suatu hak akses
seorang user pada tabel dalam database tertentu
rollback
pembatalan transaksi
ROUND(columm Pembulatan nilai pada kolom, ekspresi, atau nilai desimal keI expression, n)
n atau, jika n dihilangkan, tidak ada tempat desimal.
RPAD ( columm Pads nilai karakter pada garis tepi sebelah kiri untuk lebar
/ expression, n, total posisi n karakter
‘string’ )
SELECT
Perintah Query untuk menampilkan data dengan kriteria
tertentu
Selection
Memilih baris dalam tabel yang dikembalikan oleh query.
Sortir
Usaha mengurutkan data
Subquery
suatu pernyataan query didalam pernyataan query (select
didalam select)
SUBSTR
Pengembalian karakter dari nilai karakter mulai dari posisi
(columm
/ karakter m, n (Jika m adalah negatif, hitungan dimulai dari
expression,
akhir nilai karakter. Jika n dihilangkan, semua karakter dari
[m,n]
awal hingga akhir string dikembalikan.)
TRIM (leading / Memungkinkan pengguna untuk memangkas leading atau
trailing / both, trailing karakter (atau keduanya) dari string karakter.
trim_character
FROM
trim_source)
Jika trim_character atau trim_source adalah karakter literal,
pengguna harus mengapit dalam tanda kutip tunggal.
TRUNC(column Pemotongan nilai pada kolom, ekspresi, atau nilai decimal keI expression, n)
n atau, jika n dihilangkan, n default ke nol.
Update
Kegiatan memperbarui data
UPPER
Mengkonversi nilai-nilai karakter alpha menjadi huruf besar
(columm
/
expression)
Where
klausa yang digunakan untuk memberikan syarat saat seleksi
data
140
Download