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
i 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.
iii
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
iv
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
v
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 informasi tentang penyusunan modul sebagai salah satu bentuk bahan 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
vii
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
viii
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
ix
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
xi
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
xii
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
xiii
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
xv
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
xvi
1
PENDAHULUAN
A. Latar Belakang
Guru dan tenaga kependidikan wajib melaksanakan kegiatan pengembangan keprofesian secara berkelanjutan agar dapat melaksanakan tugas profesionalnya. Program Pembinaan karier adalah 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 memelihara, meningkatkan, dan mengembangkan 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).
2
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
3 Peta Kompetensi Modul Diklat GP Guru RPL Grade 2
Kompetensi Utama
Standar kompetensi Kompetensi
Inti Guru (KIG)
Kompetensi Guru Keahlian (KGK) Indikator pencapaian Kompetensi Profesional 1. Menguasai materi, struktur, konsep dan pola pikir keilmuan yang mendukung mata pelajaran yang diampu 1.1. Merencanakan DBMS yang mampu memfasilitasi pengguna untuk menyimpan, memperoleh, dan mengubah data di dalam basis data.
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
4
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.
7
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
8
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 Comment [A1]:
9 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 konsep-konsep yang ada dipikiran orang. Model dapat digunakan untuk melakukan hal berikut: menyampaikan/mengkomunikasikan, mengkategorikan, 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
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
Comment [A2]:
10
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)
11 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 kasus-kasus individu tercantum di bawah tabel. Dengan menggunakan formattabel, dapat dengan mudah memvisualisasikan, memahami, dan menggunakan informasi. Karena data tentang entitas yang berbeda disimpan dalam tabel yang berbeda, sehingga perlu untuk menggabungkan dua atau lebih tabel dalam menyelesaikan
12
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,
13 kolom 1 kolom 2 ……….. kolom n
……… ………
Sebuah tabel harus diberi nama secara unik sebagai identitasnya dan terdiri dari beberapa baris sebagai penyimpanan informasi, dan masing-masing 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 atribut-atributnya. 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).
14
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.
15 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 perintah-perintah atau pernyataan SQL, yang merupakan American National
16
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 MERGEData Manipulation Language (DML)
CREATE ALTER DROP RENAME TRUNCATE COMMENT GRANT REVOKE
Data Definition Language (DDL)
17 Pernyataan Deskripsi SELECT INSERT UPDATE DELETE MERGE
Mengambil datadari database, mengisi baris baru, merubah baris yang ada, dan menghapus baris yang tidak diinginkan dari tabel dalam database secara berturut-turut, dikenal sebagai
data manipulation language (DML).
CREATE ALTER DROP RENAME TRUNCATE COMMENT
Membuat, merubah, dan menghapus struktur data dari tabel, dikenal sebagai data definition
language (DDL).
GRANT REVOKE
Memberika natau menghilangkan hak akses ke data base maupun struktur didalamnya.
COMMIT ROLLBACK SAVEPOINT
Mengelola perubahan yang dibuat oleh pernyataan DML. Perubahan data bisa dikelompokkan bersama ke dalam transaksilogis.
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
COMMIT ROLLBACK SAVEPOINT
18
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
database relasional
Ya Tidak
2 Penyampaian materi Ya Tidak 3 Membaca uraian materi
pembelajaran
Ya Tidak
4 Memahami uraian materi pembelajaran
Ya Tidak
5 Melaksanakan kegiatan-kegiatan pada kegiatan pembelajaran 1
Ya Tidak
6 Bertanya tentang materi pembelajaran 1
Ya Tidak
7 Berdiskusi dengan teman tentang materi pembelajaran
Ya Tidak 8 Mengembangkan materi pembelajaran Ya Tidak 9 Mengerjakan latihan/tugas yang diberikan Ya Tidak
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….
19 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
20
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 Hasil yang didapat Rencana Tindak lanjut 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
21
H. Kunci Jawaban
1. a 2. d 3. b 4. a 5. d25
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.
26
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:
Nama Kolom
Kondisi Perbandingan
27 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
28
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‟.
29 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:
30
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 pencarian wildcard. Operator ini digunakan untuk
31 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 lebih karakter yang cocok. Pernyataan SELECT dalam Gambar 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
32
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
33 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
34
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.
35 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 job_id NOT IN ('AC_ACCOUNT', 'AD_VP') ... WHERE salary NOT BETWEEN 10000 AND 15000 ... WHERE last_name NOT LIKE '%A%'
... WHERE 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.
36
Tabel 4 Aturan Protokoler
Operator Arti
1 Operator Aritmetika 2 Operator Concatenation 3 Comparison condition
4 IS [NOT] NULL, LIKE, [NOT] IN
5 NOT BETWEEN
6 Not equal to 7 Not logical condition 8 AND logical condition 9 OR logical condition
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"
37 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.
38
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
39 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
perintah untuk membatasi dan menyortir data
Ya Tidak
2 Penyampaian materi Ya Tidak 3 Membaca uraian materi
pembelajaran
Ya Tidak
4 Memahami uraian materi pembelajaran
Ya Tidak
5 Melaksanakan kegiatan-kegiatan pada kegiatan pembelajaran 1
40
6 Bertanya tentang materi pembelajaran 1
Ya Tidak
7 Berdiskusi dengan teman tentang materi pembelajaran
Ya Tidak 8 Mengembangkan materi pembelajaran Ya Tidak 9 Mengerjakan latihan/tugas yang diberikan Ya Tidak
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%‟
41 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.
42
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 Hasil Yang Diperoleh
Rencana Tindak Lanjut Membatasi baris yang
dipilih menggunakan klausa WHERE
Menggunakan kondisi BETWEEN, IN, LIKE, dan NULL untuk menampilkan 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. d46
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 mengambil argumen dan selalu mengembalikan nilai.
47 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
48
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
49 - 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
50
Tabel 5 Fungsi dan Kegunaannya
Fungsi Kegunaan
LOWER (columm / expression) Mengkonversi nilai-nilai karakter alpha menjadi huruf kecil
UPPER (columm / expression) Mengkonversi nilai-nilai karakter alpha menjadi huruf besar
INITCAP (columm / expression) Mengkonversi nilai karakter alpha ke huruf besar untuk huruf pertama dari setiap kata; huruf-huruf lainnya dalam huruf-huruf kecil CONCAT(columm1 / expression1,
columm2 / expression2)
Merangkai nilai karakter pertama dengan nilai karakter kedua; setara dengan operator (||) SUBSTR (columm / expression,
[m,n]
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.)
LENGTH (columm / expression) Mengembalikan jumlah karakter dalam ekspresi
INST (columm / expression,
’string’, [,m], [n])
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.
LPAD ( columm / expression, n, ‘string’ )
RPAD ( columm / expression, n, ‘string’ )
Pads nilai karakter pada garis tepi sebelah kanan untuk lebar total posisi n karakter
Pads nilai karakter pada garis tepi sebelah kiri untuk lebar total posisi n karakter
TRIM (leading / trailing / both, trim_character FROM
trim_source)
Memungkinkan pengguna untuk memangkas leading atau trailing karakter (atau keduanya) dari string karakter.
Jika trim_character atau trim_source adalah karakter literal, pengguna harus mengapit dalam tanda kutip tunggal. REPLACE (text, search_string,
replacement_string)
Mencari ekspresi teks untuk string karakter dan jika ditemukan, menggantinya
51
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 id for
'||UPPER(last_name)||' is '
||LOWER(job_id) AS "EMPLOYEE DETAILS"
FROM employees;
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
52
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.
53 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 nilai-nilai numerik. Bagian ini menjelaskan beberapa fungsi numerik.