MODUL PEMBINAAN KARIER

Ukuran: px
Mulai penontonan dengan halaman:

Download "MODUL PEMBINAAN KARIER"

Transkripsi

1 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

2

3 Penulis: 1. Joko Pitono j_pitono@yahoo.com Penelaah: 1. Siera Maulida Asrin, S.T [ ], sieraasrin@gmail.com 2. Abdul Haliq, S.Pd., M.Pd. [ ] abdulhaliq88@gmail.com 3. Hasrul Bakri, S.Pd, M.T. [ ] hasrulbakri@unm.ac.id Ilustrator : 1. Siera Maulida Asrin, S.T [ ], sieraasrin@gmail.com 2. Faizal Reza Nurzeha, A.Md [ ] faizalrezanurzeha@gmail.com Layouter : 1. Janwar Fajrin, S.T [ ] djanwar_fajrin@yahoo.com 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

4 ii

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

6 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 iv

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

8 vi

9 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 A. Pengantar... Error! Bookmark not defined. B. Tujuan... 7 C. Indikator Pencapaian Kompetensi... 7 D. Uraian Materi... 7 E. Aktivitas Pembelajaran F. Latihan / Kasus / Tugas G. Rangkuman H. Umpan Balik dan Tindak Lanjut I. Kunci Jawaban Kegiatan Pembelajaran 2 : A. Tujuan B. Indikator Pencapaian Kompetensi C. Uraian Materi D. Aktivitas Pembelajaran E. Latihan / Kasus / Tugas F. Rangkuman G. Umpan Balik dan Tindak Lanjut H. Kunci Jawaban vii

10 Kegiatan Pembelajaran 3 : A. Tujuan B. Indikator Pencapaian Kompetensi C. Uraian Materi D. Aktivitas Pembelajaran E. Latihan / Kasus / Tugas F. Rangkuman G. Umpan Balik dan Tindak Lanjut H. Kunci Jawaban Kegiatan Pembelajaran 4 : A. Tujuan B. Indikator Pencapaian Kompetensi C. Uraian Materi D. Aktivitas Pembelajaran E. Latihan / Kasus / Tugas F. Rangkuman G. Umpan Balik dan Tindak Lanjut H. Kunci Jawaban Kegiatan Pembelajaran 5: A. Tujuan B. Indikator Pencapaian Kompetensi C. Uraian Materi D. Aktivitas Pembelajaran E. Lathan / Kasus / Tugas F. Rangkuman G. Umpan Balik dan Tindak Lanjut H. Kunci Jawaban Kegiatan Pembelajaran 6: A. Tujuan B. Indikator Pencapaian Kompetensi C. Uraian Materi D. Aktivitas Pembelajaran E. Latihan / Kasus / Tugas F. Rangkuman viii

11 G. Umpan Balik dan Tindak Lanjut H. Kunci Jawaban Kegiatan Pembelajaran 7: A. Tujuan B. Indikator Pencapaian Kompetensi C. Uraian Materi D. Aktivitas Pembelajaran E. Latihan / Kasus / Tugas F. Rangkuman G. Umpan Balik dan Tindak Lanjut H. Kunci Jawaban EVALUASI KUNCI JAWABAN PENUTUP DAFTAR PUSTAKA GLOSARIUM ix

12 x

13 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) Gambar 1. 4 Gambar Hubungan ER Multi Tabel Gambar 1. 5 Record pada Tabel EMPLOYEES Gambar 1. 6 Komunikasi DBMS Menggunakan SQL Gambar 2. 1 Contoh Pembatasan Garis dengan Kriteria Tertentu Gambar 2. 2 Membatasi Baris Yang Dipilih Gambar 2. 3 Query dengan Klausa Where Gambar 2. 4 Query dengan Kasus Campuran Gambar 2. 5 Operator yang Terdapat pada Query Gambar 2. 6 Hasil Eksekusi Query dengan Kondisi Perbandingan Gambar 2. 7 Hasil Eksekusi Query dengan Kondisi Between Gambar 2. 8 Hasil Eksekusi Query dengan Kondisi IN Gambar 2. 9 Hasil Eksekusi Query dengan Kondisi LIKE Gambar Hasil Eksekusi Query dengan Kondisi LIKE Gambar Hasil Eksekusi Query dengan Kondisi NULL Gambar Hasil Eksekusi Query dengan Logika OR Gambar Hasil Eksekusi Query dengan Logika NOT Gambar Hasil Eksekusi Query Gambar Hasil Eksekusi Query dengan Klausa ORDER BY Gambar Contoh Query dengan ORDER BY Gambar 3. 1 Fungsi SQL Gambar 3. 2 Ilustrasi Fungsi SQL Gambar 3. 3 Deklarasi Nama Fungsi Gambar 3. 4 Jenis-Jenis Fungsi Single Row Gambar 3. 5 Klasifikasi Fungsi Karakter Gambar 3. 6 Hasil Konversi dengan Fungsi String xi

14 Gambar 3. 7 Hasil Query Menggunakan Fungsi ManipulasiCase Gambar 3. 8 Hasil Query Menggunakan Fungsi KarakterManipulasi Gambar 3. 9 Hasil Query dengan Fungsi Numerik Gambar Hasil Query Fungsi ROUND Gambar Hasil Query Fungsi TRUNC Gambar Hasil Query Fungsi MOD Gambar Format Tanggal pada Oracle Gambar Fungsi SYSDATE pada Query Gambar Hasil Query SYSDATE dengan Manipulasi Tanggal Gambar Fungsi TRUNC dalam Pemotongan Tanggal Gambar Hasil Query dengan Manipulasi Tanggal Gambar Hasil Query dengan fungsi ROUND dan TRUNC Gambar Hasil Query dengan Konversi TO_CHAR Gambar Query Menggunakan Fungsi NVL Gambar Query dengan Fungsi NVL Gambar Query Menggunakan Fungsi NULLIF Gambar Hasil Eksekusi Query dengan Fungsi COALESCE Gambar Query dengan Kondisi CASE Gambar Query dengan Fungsi DECODE Gambar 4. 1 Tabel yang akan dimanipulasi Gambar 4. 2 Hasil Query NATURAL JOIN Gambar 4. 3 Query Natural Join dengan KlausaWHERE Gambar 4. 4 Klausa USING untuk Equijoin Gambar 4. 5 Query Penggunaan Tabel Alias Gambar 4. 6 Klausa ON pada Query Gambar 4. 7 Contoh Self Join pada Query Gambar 4. 8 Klausa ON dengan Kombinasi SELF JOIN Gambar 4. 9 KlausaJOIN pada Query Gambar Tabel EMPLOYEES dan JOB_GRADES Gambar Implementasi Non-Equijoins pada Query Gambar Hasil Query Left Outer Join Gambar Hasil Query Right Outer Join pada Gambar Hasil Query Full Outer Join pada xii

15 Gambar Hasil Query Cartesian Product Gambar Hasil Query CROSS JOIN Gambar 5. 1 Query dalam membuat Tabel Gambar 5. 2 Sebelum Data diperbarui Gambar 5. 3 Sesudah Data diperbarui Gambar 5. 4 Data Sebelum diperbarui Gambar 5. 5 Data Sesudah diperbarui Gambar 5. 6 Data Sebelum diperbarui Gambar 5. 7 Data Sesudah diperbarui Gambar 5. 8 Data Sebelum dihapus Gambar 5. 9 Data Sesudah dihapus Gambar 6. 1 Hasil Eksekusi Query Membuat Tabel Gambar 6. 2 Struktur Awal Tabel Gambar 6. 3 Struktur Setelah Terjadi Penambahan Kolom Gambar 7 1 Penggunaan commit Gambar 7 2 Penggunaan rollback xiii

16 xiv

17 DAFTAR TABEL Tabel 1 Kebenaran Logikan AND Tabel 2 Kebenaran Logikan OR Tabel 3 Kebenaran Logikan NOT Tabel 4 Aturan Protokoler Tabel 5 Fungsi dan Kegunaannya Tabel 6 Fungsi Numerik Tabel 7 Operasi pada Tanggal Tabel 8 Fungsi Umum xv

18 xvi

19 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). 1

20 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

21 Kompetensi Utama Peta Kompetensi Modul Diklat GP Guru RPL Grade 2 Kompetensi Inti Guru (KIG) Profesional 1. Menguasai materi, struktur, konsep dan pola pikir keilmuan yang mendukung mata pelajaran yang diampu Standar kompetensi Kompetensi Guru Keahlian (KGK) 1.1. Merencanakan DBMS yang mampu memfasilitasi pengguna untuk menyimpan, memperoleh, dan mengubah data di dalam basis data. Indikator pencapaian Kompetensi Menganalisis struktur hirarki dan bentuk diagram antar entitas dalam basis data Membuat Entity Relationship Diagram Menganalisis teknik normalisasi basis data Membuat basis data menggunakan fitur visual pada DBMS Membuat basis data menggunakan Data Definition Language Membuat relasi antar tabel menggunakan fitur visual pada DBMS Membuat manipulasi data menggunakan Data Manipulation Language 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

22 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

23 5

24 6

25 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

26 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]: Gambar blm 8

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

28 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

29 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 Garis putus-putus Garis penuh Crow s foot Single line Deskripsi Elemenopsionalyang menunjukkan"mungkin" Elemenwajibmenunjukkan"harus" Menunjukkan"satu atau lebih" 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 tabel yang berbeda, sehingga perlu untuk menggabungkan dua atau lebih tabel dalam menyelesaikan 11

30 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

31 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 contoh: number (8), number (5,2). 13

32 Number (5,2) nilainya tidak dapat lebih dari , 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

33 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

34 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 16 SELECT INSERT UPDATE DELETE MERGE CREATE ALTER DROP RENAME TRUNCATE COMMENT GRANT REVOKE Data Manipulation Language (DML) Data Definition Language (DDL) Data Control Language (DCL)

35 COMMIT ROLLBACK SAVEPOINT Transaction Control Pernyataan SELECT INSERT UPDATE DELETE MERGE CREATE ALTER DROP RENAME TRUNCATE COMMENT GRANT REVOKE COMMIT ROLLBACK SAVEPOINT Deskripsi 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). Membuat, merubah, dan menghapus struktur data dari tabel, dikenal sebagai data definition language (DDL). Memberika natau menghilangkan hak akses ke data base maupun struktur didalamnya. 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 17

36 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 database relasional 2 Penyampaian materi Ya Tidak 3 Membaca uraian materi Ya Tidak pembelajaran 4 Memahami uraian materi Ya Tidak pembelajaran 5 Melaksanakan kegiatankegiatan Ya Tidak pada kegiatan pembelajaran 1 6 Bertanya tentang materi Ya Tidak pembelajaran 1 7 Berdiskusi dengan teman Ya Tidak tentang materi pembelajaran 8 Mengembangkan materi Ya Tidak pembelajaran 9 Mengerjakan latihan/tugas Ya Tidak 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

37 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

38 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 Hasil yang didapat Rencana Tindak lanjut 20

39 H. Kunci Jawaban 1. a 2. d 3. b 4. a 5. d 21

40 22

41 23

42 24

43 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

44 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 Nama Kolom, konstan, atau nilai 26

45 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

46 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>= 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

47 Menggunakan Kondisi Perbandingan Dalam contoh, pernyataan SELECT mengambil nama belakang dan gaji daritabel EMPLOYEE untuk setiap karyawan yang gajinya kurang dari atau sama dengan $ 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

48 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 30

49 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 WHERE hire_date LIKE '%95'; 31

50 Gambar 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 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

51 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 $ 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

52 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 $ 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 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

53 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 AND WHERE last_name NOT LIKE '%A%'... WHERE commission_pct IS NOT NULL Gambar 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

54 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 $ 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$ 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

55 Gambar 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

56 Gambar 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

57 nama kolom menggunakan koma. Jika pengguna ingin membalik urutan kolom, gunakankata kunci DESC setelah nama kolom. Gambar 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 perintah untuk membatasi dan menyortir data 2 Penyampaian materi Ya Tidak 3 Membaca uraian materi Ya Tidak pembelajaran 4 Memahami uraian materi Ya Tidak pembelajaran 5 Melaksanakan kegiatankegiatan Ya Tidak pada kegiatan pembelajaran 1 39

58 6 Bertanya tentang materi pembelajaran 1 7 Berdiskusi dengan teman tentang materi pembelajaran 8 Mengembangkan materi pembelajaran 9 Mengerjakan latihan/tugas yang diberikan Ya Ya Ya Ya Tidak Tidak Tidak 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% 40

59 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

60 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 Hasil Yang Rencana Tindak IPK Diperoleh 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. d 42

61 43

62 44

63 45

64 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. 46

65 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

66 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

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

68 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 / expression, string, [,m], [n]) 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, string ) TRIM (leading / trailing / both, trim_character FROM trim_source) REPLACE (text, search_string, replacement_string) Pads nilai karakter pada garis tepi sebelah kiri untuk lebar total posisi n karakter 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. Mencari ekspresi teks untuk string karakter dan jika ditemukan, menggantinya 50

69 Fungsi Kegunaan dengan pengganti string yang ditentukan Fungsi ManipulasiCase LOWER, UPPER, dan INITCAP adalah tiga fungsi untuk mengkonver-si atau memanipulasi case. LOWER UPPER INITCAP Mengkonversi karakter string campuran huruf besar ke huruf kecil Mengkonversi karakter string campuran huruf kecil kehuruf besar 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 51

70 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

71 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

72 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

73 Gambar 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 Hasil Query Fungsi TRUNC 55

74 Fungsi MOD Fungsi MOD mendapatkan hasil sisa argumen pertama dibagi dengan argumen kedua. Gambar 3.12 menghitung hasil sisa gaji setelah membaginya dengan untuk semua karyawan yang job ID tugasnya adalah SA_REP. Gambar 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 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

75 tanggal. Data lengkap 17 Juni 1987, 05:10:43, disimpan secara internal sebagai berikut : Abad Tahun Bulan Hari Jam Menit Detik 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 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

76 date + angka date - angka date date Tabel 7 Operasi pada Tanggal Operasi Hasil Deskripsi Date Date Nilai hari Menambahkan jumlah hari dari tanggal Mengurangi jumlah hari dari tanggal 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 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

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

78 FROM employees WHERE MONTHS_BETWEEN (SYSDATE, hire_date) < 70; Gambar 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 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 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

79 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 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 NVL Fungsi Deskripsi Mengkonversi nilai null ke nilai yang sebenarnya 61

80 NVL2 Jika expr1 tidak null, NVL2 kembali expr2 Jika expr1 adalah null, NVL2 kembali expr3. Argumen expr1 dapat memiliki tipe data. NULLIF Membandingkan dua ekspresi dan mengembalikan null jika mereka sama; pengembalian ekspresi pertama jika mereka tidak sama COALESCE Mengembalikan ekspresi pertama nonnull dalam daftar ekspresi 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

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

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

83 expr1 adalah nilai sumber dibandingkan dengan expr2 expr2 adalah nilai sumber dibandingkan dengan expr1 (Jika tidak sama dengan expr1, expr1 dikembalikan.) Gambar 3.22 panjang nama depan dalam tabel EMPLOYEES dibandingkan dengan panjang nama belakang 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 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

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

85 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

86 Gambar 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 = 'IT_PROG' THEN salary = salary*1.10 IF job_id = 'ST_CLERK' THEN salary = salary*1.15 IF job_id = 'SA_REP' THEN salary = salary*1.20 ELSE salary = salary Gambar Query dengan Fungsi DECODE 68

87 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 Keterlaksanaan 1 Apersepsi tentang Ya Tidak Menggunakan Fungsi Single- Baris Untuk Menyesuaikan Keluaran 2 Penyampaian materi Ya Tidak 3 Membaca uraian materi Ya Tidak pembelajaran 4 Memahami uraian materi Ya Tidak pembelajaran 5 Melaksanakan kegiatankegiatan Ya Tidak pada kegiatan pembelajaran 1 6 Bertanya tentang materi Ya Tidak pembelajaran 1 7 Berdiskusi dengan teman Ya Tidak tentang materi pembelajaran 8 Mengembangkan materi Ya Tidak pembelajaran 9 Mengerjakan latihan/tugas Ya Tidak 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

88 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-JAN- 15, 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

89 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 IF- THEN-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 perhitungan data Memodifikasi item data individu Hasil Yang Diperoleh Rencana Tindak Lanjut 71

90 Memanipulasi untuk kelompok baris keluaran Menformat tanggal dan nomor untuk tampilan Mengkonversi tipe data kolom H. Kunci Jawaban 1. c 2. a, d 3. c 4. b 72

91 73

92 74

93 75

94 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

95 Gambar 4. 1 Tabel yang akan dimanipulasi Pengertian JOIN Untuk menggabung tabel, pengguna dapat menggunakan sintak JOIN yang kompatibel dengan SQL Standar 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

96 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

97 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 d USING (location_id) WHERE location_id = 1400; 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

98 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

99 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

100 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

101 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

102 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 Tabel EMPLOYEES dan JOB_GRADES Gambar Implementasi Non-Equijoins pada Query 84

103 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 Hasil Query Left Outer Join 85

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

105 Gambar 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

106 Gambar 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 Gambar Hasil Query CROSS JOIN D. Aktivitas Pembelajaran Aktivitas pada kegiatan pembelajaran 4, mencakup topik-topik berikut: 1. Menggabung tabel menggunakan Equi join 2. Melakukan penggabungan tabel menggunakan Outer Join dan Self Join 88

107 3. Menambah kondisi Join No Aktivitas Pembelajaran Keterlaksanaan 1 Apersepsi tentang cara Ya Tidak menampilkan data dari beberapa tabel 2 Penyampaian materi Ya Tidak 3 Membaca uraian materi Ya Tidak pembelajaran 4 Memahami uraian materi Ya Tidak pembelajaran 5 Melaksanakan kegiatankegiatan Ya Tidak pada kegiatan pembelajaran 1 6 Bertanya tentang materi Ya Tidak pembelajaran 1 7 Berdiskusi dengan teman Ya Tidak tentang materi pembelajaran 8 Mengembangkan materi Ya Tidak pembelajaran 9 Mengerjakan latihan/tugas Ya Tidak 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

108 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

109 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

110 Menulis SELECT IPK pernyataan untuk mengakses data dari beberapa tabel (lebih dari satu tabel) dengan menggunakan Join tabel untuk equijoin dirinya sendiri dengan menggunakan self-join. Melihat data yang secara umum tidak memenuhi kondisi join dengan menggunakan Menghasilkan Outer produk Cartesian semua baris dari dua tabel atau lebih. Hasil Yang Diperoleh Rencana Tindak Lanjut H. Kunci Jawaban 1. a 2. a 3. c 4. a 92

111 93

112 94

113 95

114 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

115 maka akan ditambahkan dengan nilai null pada kolom yang bersangkutan. Contoh : insert into PROJECT (PNO, PNAME, PERSON, BUDGET, PSTART) values (313, DBS, 4, , 10-OCT-94 ); atau insert into PROJECT values (313, DBS,7411, null, , 10- OCT-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

116 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 bernama JONES dipindahkan ke departemen 20 sebagai manager dan pendapatannya dinaikan 1000, Update EMP set JOB = MANAGER, DEPTNO = 20, SAL = SAL Where ENAME = JONES ; Gambar 5. 2 Sebelum Data diperbarui Gambar 5. 3 Sesudah Data diperbarui 98

117 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

118 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

119 Gambar 5. 6 Data Sebelum diperbarui Gambar 5. 7 Data Sesudah diperbarui 101

120 Penjelasan: query mengambil kembali pendapatan minimum dari seluruh manager nilai ini kemudian diserahkan ke seluruh salesman yang bekerja di departemen 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>]; Comment [A3]: Contoh program secara detail 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

121 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 Keterlaksanaan 1 Apersepsi tentang cara Ya Tidak menampilkan data dari beberapa tabel 2 Penyampaian materi Ya Tidak 3 Membaca uraian materi Ya Tidak pembelajaran 4 Memahami uraian materi Ya Tidak pembelajaran 5 Melaksanakan kegiatankegiatan Ya Tidak pada kegiatan pembelajaran 1 6 Bertanya tentang materi Ya Tidak pembelajaran 1 7 Berdiskusi dengan teman Ya Tidak tentang materi pembelajaran 8 Mengembangkan materi Ya Tidak pembelajaran 9 Mengerjakan latihan/tugas Ya Tidak yang diberikan 103

122 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

123 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, berikut ini: isilah tabel IPK Menjelaskan syntax DML dalam memasukkan data (insert data). Hasil Yang Diperoleh Rencana Tindak Lanjut 105

124 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

125 107

126 108

127 109

128 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 constraint>],... <kolom n><tipe data> [not null] [unique] [<kolom constraint>], [<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

129 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 number(4) not null, ENAME varchar2(30) not null, JOB varchar2(10), MGR number(4), HIREDATE date SAL 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

130 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 prj_pk primary key, PNAME varchar2(60) unique, PMGR number(4) not null, PERSONS number(5), BUDGET number(8,2) not null, PSTART date, PEND date ); 112

131 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

132 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

133 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 Keterlaksanaan 1 Apersepsi tentang Data Ya Tidak Definition Language pada SQL 2 Penyampaian materi Ya Tidak 3 Membaca uraian materi Ya Tidak pembelajaran 4 Memahami uraian materi Ya Tidak pembelajaran 5 Melaksanakan kegiatankegiatan Ya Tidak pada kegiatan 115

134 pembelajaran 1 6 Bertanya tentang materi pembelajaran 1 7 Berdiskusi dengan teman tentang materi pembelajaran 8 Mengembangkan materi pembelajaran 9 Mengerjakan latihan/tugas yang diberikan Ya Ya Ya Ya Tidak Tidak Tidak Tidak 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. ALTER TABLE EMP2 ADD nama varchar2(20); b. ALTER TABLE EMP2 ADD nama varchar2(2); c. ALTER TABLE nama ADD EMP2 varchar2(20); d. ALTER TABLE EMP2(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

135 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

136 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, berikut ini: 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). Hasil Yang Diperoleh isilah tabel Rencana Tindak Lanjut H. Kunci Jawaban 1. b 2. a 3. a 4. b 118

137 119

138 120

139 121

140 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

141 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

142 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, update, delete ON departmens TO anakwadung; 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

143 4. Mencabut hak akses (revoke) No Aktivitas Pembelajaran Keterlaksanaan 1 Apersepsi tentang Data Control Ya Tidak Language (DCL) 2 Penyampaian materi Ya Tidak 3 Membaca uraian materi Ya Tidak pembelajaran 4 Memahami uraian materi Ya Tidak pembelajaran 5 Melaksanakan kegiatankegiatan Ya Tidak pada kegiatan pembelajaran 1 6 Bertanya tentang materi Ya Tidak pembelajaran 1 7 Berdiskusi dengan teman Ya Tidak tentang materi pembelajaran 8 Mengembangkan materi Ya Tidak pembelajaran 9 Mengerjakan latihan/tugas Ya Tidak 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

144 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, insert, update, drop ON dep TO anakwadung; b. GRANT select, create, update, delete ON dep TO anakwadung; c. GRANT select, insert, update, delete ON dep TO anakwadung; d. GRANT read, insert, update, delete ON dep TO anakwadung; 4. Perintah berikut digunakan untuk melepas hak akses CREATE, READ, UPDATE dan DELETE pada tabel dep user anakwadung adalah a. REVOKE select, insert, update, drop ON dep TO anakwadung; b. REVOKE select, create, update, delete ON dep TO anakwadung; c. REVOKE select, insert, update, delete ON dep TO anakwadung; d. REVOKE read, insert, update, delete ON dep TO anakwadung; 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

145 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: IPK Menjelaskan syntax DCL dalam menyimpan transaksi yang telah dilakukan (commit) Menjelaskan syntax DCL dalam membatalkan transaksi yang pernah dilakukan (rollback) Menjelaskan syntax DCL dalam memberikan hak akses user (grant) Menjelaskan syntax DCL dalam mencabut hak akses user (revoke) Hasil Yang Diperoleh Rencana Tindak Lanjut H. Kunci Jawaban 1. b 2. a 3. c 4. c 127

146 128

147 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= B. GAJI= C. GAJI= D. GAJI= Bila SYSDATE = 07-JUN :05 pm, nilai manakah yang dikembalikan setelah mengeksekusi pernyataan berikut? SELECT ADD_MONTHS (SYSDATE,-1) FROM DUAL; A. 07-MAY :05 pm B. 06-JUN :05 pm C. 07-JUL :05 pm D. 06-MAY :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

148 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

149 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, ); Apakah insert akan berhasil? A. insertakan gagal, sebab nilai 1.1 terlalu panjang B. insertakan gagal, sebab adalah STRING bukan DATE C. insertakan gagal karena nilai 1.1 dan 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

150 TGL_LHR DATE KLS 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

151 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

152 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

153 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

154 136

155 DAFTAR PUSTAKA Watson, John.2008.SQL Fundamental I Exam Guide, Mc.Graw Hill Greenberg, Nancy Oracle Database 10g: SQL Fundamentals 1, Volume I Student Guide, Jobi Varghese Greenberg, Nancy Oracle Database 10g: SQL Fundamentals 1, Volume I II Student Guide (Additoinal Practices), Jobi Varghese Sutejo, Bambang Sukses Sertifiksi Oracle Certified Professional (OCP), Elex Media Komputindo 137

156 138

157 GLOSARIUM Istilah Alias Atribut Commit CONCAT(colum m1 / expression1, columm2 / expression2) Delete Entitas Entity Relationship Model Fungsi Definisi Nama lain dari suatu kolom Sesuatu yang menggambarkan atau memenuhi syarat suatu entitas. syntax untuk menjadikan transaksi menjadi permanen Merangkai nilai karakter pertama dengan nilai karakter kedua; setara dengan operator ( ) kegiatan menghapus data Suatu hal yang penting tentang informasi yang perlu diketahui. sebuah ilustrasi dari berbagai entitas dalam bisnis dan hubungan di antara mereka 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 (columm / Mengkonversi nilai karakter alpha ke huruf besar untuk huruf pertama dari setiap kata; huruf-huruf lainnya dalam huruf kecil expression) INST (columm / expression, string, [,m], [n]) JOIN Joining Karakter Literal LENGTH (columm / expression) LOWER (columm / expression) LPAD ( columm / expression, n, string ) 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. klausa untuk menggabungkan tabel Membawa data bersama yang disimpan dalam tabel yang berbeda dengan menentukan gabungan diantara tabel. karakter, angka, atau tanggal yang termasuk dalam daftar SELECT dan yang bukan nama kolom atau kolom alias Mengembalikan jumlah karakter dalam ekspresi Mengkonversi nilai-nilai karakter alpha menjadi huruf kecil Pads nilai karakter pada garis tepi sebelah kanan untuk lebar total posisi n karakter MOD (m,n) Mengembalikan sisa hasil m dibagi dengan n. 139

Arsitektur Basis Data Oracle

Arsitektur Basis Data Oracle Arsitektur Basis Data Oracle Oracle pertama kali dicetuskan oleh Larry Elisson beserta dua temannya pada tahun 1977. Nama Oracle diambil dari proyek milik CIA di mana dia sebelumnya bekerja. (Wikipedia)

Lebih terperinci

Perkenalan SQL. Ada empat macam tipe database yaitu hirarki, jaringan, relasional, dan objek.

Perkenalan SQL. Ada empat macam tipe database yaitu hirarki, jaringan, relasional, dan objek. Perkenalan SQL Sebuah database adalah sekumpulan informasi yang disusun dengan baik. Untuk mengatur sebuah database, dibutuhkan sebuah Database Management System (DBMS). DBMS merupakan program untuk menyimpan,

Lebih terperinci

STRUCTURE QUERY LANGUAGE DDL & DML

STRUCTURE QUERY LANGUAGE DDL & DML STRUCTURE QUERY LANGUAGE DDL & DML OUTLINE Data Definiton Language (DDL) Data Manipulation Language (DML) Data Control Language (DCL) Proses Pembangunan Database Perintah SQL DATA DEFINITION LANGUAGE (DDL)

Lebih terperinci

Pengertian Query. Query adalah perintah-perintah untuk mengakses data pada sistem basis data

Pengertian Query. Query adalah perintah-perintah untuk mengakses data pada sistem basis data Kompetensi Dasar Setelah mengikuti kegiatan proses belajar mengenai Pengenalan SQL, mahasiswa dapat mendefinisikan dan memanipulasi sistem basis data menggunakan bahasa SQL dengan tepat Tujuan Pembelajaran

Lebih terperinci

Perangkat Lunak Pengembangan Web

Perangkat Lunak Pengembangan Web Perangkat Lunak Pengembangan Web Pertemuan 5 Database I Program Diploma IPB - Aditya Wicaksono, SKomp 1 Apa itu SQL? Structured Query Language SQL adalah bahasa standar untuk mengakses database SQL memungkinkan

Lebih terperinci

MODUL 4. Query SELECT dan DML (INSERT, UPDATE, DELETE) PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

MODUL 4. Query SELECT dan DML (INSERT, UPDATE, DELETE) PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE MODUL 4 Query SELECT dan DML (INSERT, UPDATE, DELETE) PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE BAGIAN 1 QUERY SELECT Tujuan Pembelajaran : Mengetahui kemampuan dari

Lebih terperinci

STRUCTURE QUERY LANGUAGE (SQL)

STRUCTURE QUERY LANGUAGE (SQL) STRUCTURE QUERY LANGUAGE (SQL) Structure Query Language (SQL) adalah bahasa query standar yang digunakan untuk mengakses basis data relasional. SQL mempunyai kemampuan sebagai berikut : a. Query (memperoleh

Lebih terperinci

Praktikum Basis Data 2. BAB 1 : Pendahuluan

Praktikum Basis Data 2. BAB 1 : Pendahuluan BAB 1 : Pendahuluan 1.1. Sasaran Memahami fitur-fitur Oracle9i Dapat menjelaskan aspek teori maupun fisik dari database relasional Menggambarkan Implementasi Oracle pada RDBMS dan ORDBMS 1.2. Oracle9i

Lebih terperinci

Sistem Basis Data Danny Kriestanto, S.Kom., M.Eng

Sistem Basis Data Danny Kriestanto, S.Kom., M.Eng Sistem Basis Danny Kriestanto, S.Kom., M.Eng SQL Introduction Setelah Membuat ERD dan Model Relasional, what s next? Bagaimana cara membangun entitas dan relationship tersebut agar dapat digunakan? Bagaimana

Lebih terperinci

Menggunakan Set Operators

Menggunakan Set Operators 7 Menggunakan Set Operators Tujuan Setelah menyelesaikan pelajaran ini, Anda akan dapat melakukan berikut ini : Menjelaskan set operators Menggunakan suatu set operator untuk mengkombinasikan beberapa

Lebih terperinci

MODUL 5. Advanced Query : Pemilihan dan Pengurutan Data PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

MODUL 5. Advanced Query : Pemilihan dan Pengurutan Data PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE MODUL 5 Advanced Query : Pemilihan dan Pengurutan Data PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE Tujuan Pembelajaran : Membatasi baris yang didapatkan dari suatu query

Lebih terperinci

B a s i s D a t a C H A P T E R. SQL Operasi DML. Arif Basofi PENS 2015

B a s i s D a t a C H A P T E R. SQL Operasi DML. Arif Basofi PENS 2015 C H A P T E R 15 SQL Operasi DML Arif Basofi PENS 2015 Objectives Tujuan: Mengenal operasi perintah SQL dalam: - DML (Data Manipulation Language) [1] - DDL (Data Definition Language) [2] S Q L DML DML

Lebih terperinci

Tutorial Database Oracle Chapter4 Pembatasan dan Pengurutan

Tutorial Database Oracle Chapter4 Pembatasan dan Pengurutan Tutorial Database Oracle Chapter4 Pembatasan dan Pengurutan Oleh: Ardie Jocong Pada Tutorial Database Oracle Chapter4 ini, saya akan Memberikan sedikit ilmu Bagaimana Melakukan Pembatasan dan Pengurutan

Lebih terperinci

Oracle Academic Initiative

Oracle Academic Initiative Oracle Academic Initiative Oracle9i Introduction to SQL Oleh: Tessy Badriyah, SKom.MT Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember Surabaya Oracle Academic Initiative Halaman

Lebih terperinci

Apa yang akan dibahas? Pengertian SQL Penggolongan Statement SQL Aturan Gramatika SQL Struktur Dasar SQL Query Satu (1) Tabel

Apa yang akan dibahas? Pengertian SQL Penggolongan Statement SQL Aturan Gramatika SQL Struktur Dasar SQL Query Satu (1) Tabel Sistem Basis Data 1 Apa yang akan dibahas? Pengertian SQL Penggolongan Statement SQL Aturan Gramatika SQL Struktur Dasar SQL Query Satu (1) Tabel 2 SQL SQL (Structured Query Language) Bahasa standar yang

Lebih terperinci

Konsep Dasar. Relatsional dan RDBMS User dan Schema Database Membuat Tabel dan Mendefinisikan Constraint Input Data ke dalam Tabel

Konsep Dasar. Relatsional dan RDBMS User dan Schema Database Membuat Tabel dan Mendefinisikan Constraint Input Data ke dalam Tabel Konsep Dasar Relatsional dan RDBMS User dan Schema Database Membuat Tabel dan Mendefinisikan Constraint Input Data ke dalam Tabel Halaman 1 dari 12 Relasional Database dan RDBMS Sebelum membahas berbagai

Lebih terperinci

Konsep Dasar Basis Data. Oleh: Harnan Malik Abdullah, ST., MSc. Program Pendidikan Vokasi Universitas Brawijaya 2017

Konsep Dasar Basis Data. Oleh: Harnan Malik Abdullah, ST., MSc. Program Pendidikan Vokasi Universitas Brawijaya 2017 Konsep Dasar Basis Data Oleh: Harnan Malik Abdullah, ST., MSc. Program Pendidikan Vokasi Universitas Brawijaya 2017 Pengertian Basis Data Data fakta mengenai objek, orang, dan lain-lain Basis Data sebuah

Lebih terperinci

Data Manipulation Language (DML) & Data Control Language (DCL) pada Database

Data Manipulation Language (DML) & Data Control Language (DCL) pada Database Data Manipulation Language (DML) & Data Control Language (DCL) pada Database Karunia Suci Lestari k.sucilestari97@gmail.com :: http://ksucilestari97.wordpress.com Abstrak Setelah artikel sebelumnya membahas

Lebih terperinci

MODUL PEMPROGRAMAN SQL TINGKAT DASAR 1 STANDAR KOMPETENSI: MENERAPKAN BAHASA PEMPROGRAMAN SQL TINGKAT DASAR SMK NEGERI 1 MAJALENGKA

MODUL PEMPROGRAMAN SQL TINGKAT DASAR 1 STANDAR KOMPETENSI: MENERAPKAN BAHASA PEMPROGRAMAN SQL TINGKAT DASAR SMK NEGERI 1 MAJALENGKA MODUL PEMPROGRAMAN SQL TINGKAT DASAR 1 STANDAR KOMPETENSI: MENERAPKAN BAHASA PEMPROGRAMAN SQL TINGKAT DASAR SMK NEGERI 1 MAJALENGKA PENGANTAR SQL TINGKAT DASAR Basisdata atau database adalah kumpulan dari

Lebih terperinci

PRAKTIKUM SISTEM INFORMASI MANAJEMEN

PRAKTIKUM SISTEM INFORMASI MANAJEMEN MODUL 2 DATABASE Tujuan Praktikum Adapun tujuan dari praktikum modul 2 ini adalah sebagai berikut: a. Mahasiswa diharapkan memahami tentang MySQL b. Mahasiswa dapat membuat database menggunakan MySQL c.

Lebih terperinci

SEKOLAH TINGGI TEKNOLOGI INDONESIA TANJUNG PINANG

SEKOLAH TINGGI TEKNOLOGI INDONESIA TANJUNG PINANG M O D U L S Q L SISTEM BASIS DATA 2 Disusun oleh : Siti Yuliyanti, ST SEKOLAH TINGGI TEKNOLOGI INDONESIA TANJUNG PINANG Jl. Brigjen Katamso No.92 Km 2.5 Tanjungpinang Kepulauan Riau November 24, 2010 SQL

Lebih terperinci

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS C H A P T E R 15 SQL Operasi DML Objectives Tujuan: Mengenal operasi perintah SQL dalam: - DML (Data Manipulation Language) - DDL (Data Definition Language) S Q L DML DML (Data Manipulation Language) adalah

Lebih terperinci

KURSUS ONLINE JASA WEBMASTERS

KURSUS ONLINE JASA WEBMASTERS KURSUS ONLINE JASA WEBMASTERS SQL Pengenalan Database, SQL, MySQL dan XAMPP JASA WEBMASTERS Jl. Ringin Raya No 124A Condong Catur, Sleman, Yogyakarta Database Database secara singkat dapat diartikan sebagai

Lebih terperinci

Praktikum Basis Data. By. Rita Wiryasaputra, ST., M. Cs.

Praktikum Basis Data. By. Rita Wiryasaputra, ST., M. Cs. Praktikum Basis Data By. Rita Wiryasaputra, ST., M. Cs. SQL: DDL (Data Definition Language) Create Database Create Table Create View Create Index Alter Database Alter Table Alter View Drop Database Drop

Lebih terperinci

Apakah SQL? Membuat basis data dan struktur tabel Input, update, dan delete data dari tabel Membuat query sederhana dan kompleks SQL

Apakah SQL? Membuat basis data dan struktur tabel Input, update, dan delete data dari tabel Membuat query sederhana dan kompleks SQL SQL Basis Data 1 Apakah SQL? SQl singkatan dari Structured Query Language yang merupakan bahasa komputer standar ANSI (American National Standards Institute). Dengan SQL kita dapat Membuat basis data dan

Lebih terperinci

DESAIN DATABASE. Pertemuan 06 3 SKS

DESAIN DATABASE. Pertemuan 06 3 SKS Materi 1. Era Informasi 2. Strategi dan Peluang Yang Kompetitif 3. Database dan Database Warehouse 4. Desain Database 5. Sistem Pendukung Keputusan dan Sistem Cerdas 6. E-Commerce DESAIN DATABASE Pertemuan

Lebih terperinci

Oracle Academic Initiative

Oracle Academic Initiative Oracle Academic Initiative Oracle9i Introduction to SQL Oleh: Tessy Badriyah, SKom.MT Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember Surabaya Oracle Academic Initiative Halaman

Lebih terperinci

Pertemuan 10 Structure Query Language(SQL)

Pertemuan 10 Structure Query Language(SQL) Pertemuan 10 Structure Query Language(SQL) INDIKATOR 1. Mengenal perintah dasar SQL (SELECT,FROM,WHERE) 2. Menggunakan SELECT dan FROM dalam satu tabel 3. Menggunakan asterisk(*) 4. Menggunakan nama lain

Lebih terperinci

PERTEMUAN 2 PEMILIHAN DAN PENGURUTAN DATA

PERTEMUAN 2 PEMILIHAN DAN PENGURUTAN DATA PERTEMUAN 2 PEMILIHAN DAN PENGURUTAN DATA Tujuan Pembelajaran : Membatasi baris yang didapatkan dari suatu query Mengurutkan baris yang didapat dari suatu query TEORI DAN PERCOBAAN 2.1. Membatasi Baris

Lebih terperinci

Basis Data Relational

Basis Data Relational Basis Data Relational Kebanyakan model yang digunakan adalah Model basis data relasional dengan menggunakan Relational Database Management System (RDBMS). RDBMS menyediakan layanan pengorganisasian data

Lebih terperinci

Modul 3 : Query Penggabungan Tabel

Modul 3 : Query Penggabungan Tabel Modul 3 : Query Penggabungan Tabel Tujuan Praktikum - Mahasiswa dapat membedakan perbedaan macam-macam join tabel. - Mahasiswa mampu melakukan query untuk join tabel. - Mahasiswa dapat membedakan union,

Lebih terperinci

STRUCTURED QUERY LANGUAGE (SQL) (Implementasi menggunakan MySQL)

STRUCTURED QUERY LANGUAGE (SQL) (Implementasi menggunakan MySQL) STRUCTURED QUERY LANGUAGE (SQL) (Implementasi menggunakan MySQL) A. Pengenalan SQL SQL pertama kali diterapkan pada sistem R (sebuah proyek riset pada laboratorium riset San Jose, IBM). Kini SQL juga dijumpai

Lebih terperinci

PERTEMUAN 9 MANIPULASI DATA

PERTEMUAN 9 MANIPULASI DATA PERTEMUAN 9 MANIPULASI DATA Tujuan Pembelajaran : Memahami Statement DML (Data Manipulation Language) Menyisipkan baris ke dalam table Merubah baris dalam table Menghapus baris dari table Mengontrol transaksi

Lebih terperinci

SQL (Structure Query Language) Gentisya Tri Mardiani, S.Kom

SQL (Structure Query Language) Gentisya Tri Mardiani, S.Kom SQL (Structure Query Language) Gentisya Tri Mardiani, S.Kom SQL Structure Query Language (SQL) adalah bahasa query standar yang digunakan untuk mengakses basis data relasional. Kemampuan SQL: Query (memperoleh

Lebih terperinci

DATABASE - MySQL. Muhammad Zen S. Hadi, ST. MSc.

DATABASE - MySQL. Muhammad Zen S. Hadi, ST. MSc. DATABASE - MySQL Muhammad Zen S. Hadi, ST. MSc. Objectives Tujuan: Memahami perintah-perintah dasar DDL dan DML Contents Database DBMS Relational model SQL MySQL MySQL yang support ke relational model

Lebih terperinci

Oracle Academic Initiative

Oracle Academic Initiative Oracle Academic Initiative Oracle9i Introduction to SQL Oleh: Tessy Badriyah, SKom.MT Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember Surabaya BAB 9 : Manipulasi Data Halaman

Lebih terperinci

Pertemuan DDL INDIKATOR. Modul Teori Database Aknela

Pertemuan DDL INDIKATOR. Modul Teori Database Aknela Pertemuan 15-16 DDL INDIKATOR 1. Memahami object utama dari database 2. Membuat table 3. Memahami tipe data yang digunakan pada saat pendefinisian kolom pada table 4. Merubah definisi table 5. Drop, rename

Lebih terperinci

Oracle Academic Initiative

Oracle Academic Initiative Oracle Academic Initiative Oracle9i Introduction to SQL Oleh: Tessy Badriyah, SKom.MT Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember Surabaya BAB 10 : Pembuatan & Pengelolaan

Lebih terperinci

15-Jan DATABASE - MySQL. Database. Constraints. Tujuan: Memahami perintah-perintah dasar DDL dan DML

15-Jan DATABASE - MySQL. Database. Constraints. Tujuan: Memahami perintah-perintah dasar DDL dan DML Objectives Tujuan: DATABASE - MySQL Memahami perintah-perintah dasar DDL dan DML Acep Irham Gufroni, M.Eng. Pemrograman Internet Teknik Informatika Univ. Siliwangi Database Constraints Database a collection

Lebih terperinci

Sejarah(1) Sejarah(2) STRUCTURE QUERY LANGUANGE (1) Definisi SQL

Sejarah(1) Sejarah(2) STRUCTURE QUERY LANGUANGE (1) Definisi SQL Sejarah(2) STRUCTURE QUERY LANGUANGE (1) Tahun 1987, American National Standards Institute (ANSI) dan International Standards Organization (ISO) membuat standar untuk SQL Tahun 1992, dibentuk versi baru

Lebih terperinci

Basis Data 1. Dasar SQL Query. Arif Basofi, S.Kom. MT. Teknik Informatika, PENS

Basis Data 1. Dasar SQL Query. Arif Basofi, S.Kom. MT. Teknik Informatika, PENS Basis Data 1 Dasar SQL Query Arif Basofi, S.Kom. MT. Teknik Informatika, PENS Tujuan Mengenal dan Memahami Struktur Dasar Perintah- Perintah SQL Query Database 2 SQL - Pendahuluan Bahasa user yang meminta

Lebih terperinci

KETERAMPILAN KOMPUTER 2B** (IT :S1-SA) Pertemuan 7. Database Dbase IV AHMAD HIDAYAT

KETERAMPILAN KOMPUTER 2B** (IT :S1-SA) Pertemuan 7. Database Dbase IV AHMAD HIDAYAT KETERAMPILAN KOMPUTER 2B** (IT-061208:S1-SA) Pertemuan 7 Database Dbase IV AHMAD HIDAYAT Pengenalan Database Data, dapat didefinisikan sebagai fakta yang direkam atau dicatat. Sebagai contoh adalah nama,

Lebih terperinci

Jobsheet SQL Dasar : Hari Zulianto, ST [Year]

Jobsheet SQL Dasar : Hari Zulianto, ST [Year] JOB SHEET Nama SMK : SMK IPTEK Weru Sukoharjo Kompetensi Keahlian : Rekayasa Perangkat Lunak Mata Pelajaran / SK : SQL Dasar Guru Mapel : Hari Zulianto, ST Semester/Tahun : 3 / 2017 Dasar-Dasar SQL 1.

Lebih terperinci

Esson Sihombing, S.Kom. Lab. Basisdata 1 Sistem Informasi UNIKOM 2013

Esson Sihombing, S.Kom. Lab. Basisdata 1 Sistem Informasi UNIKOM 2013 Esson Sihombing, S.Kom. Lab. Basisdata 1 Sistem Informasi UNIKOM 2013 PRACTICE 1 1. Initiate an isql*plus session using the user ID and password that are provided by the instructor (pada pengerjaan tugas

Lebih terperinci

Praktikum Basis Data 2017 TE UM

Praktikum Basis Data 2017 TE UM MODUL 3 SQL A. TUJUAN - Memahami SQL, komponen-komponen, dan penggunaannya. - Mengenal operasi-operasi DML menggunakan phpmyadmin. - Mampu melakukan operasi-operasi retrieve yang spesifik - Mampu penguraikan

Lebih terperinci

B a s i s D a t a. Tatap MUka. SQL Query & Agregate Function. Arif Basofi PENS

B a s i s D a t a. Tatap MUka. SQL Query & Agregate Function. Arif Basofi PENS Tatap MUka 3 SQL Query & Agregate Function Arif Basofi Topik Sintaks Dasar SQL Query Operasi Aritmatika dalam SQL SQL Fungsi Agregate dan Group SQL Joint Table S Q L - Pendahuluan Bahasa user yang meminta

Lebih terperinci

LAPORAN TUGAS BASIS DATA I

LAPORAN TUGAS BASIS DATA I LAPORAN TUGAS BASIS DATA I Disusun untuk Memenuhi Tugas Matakuliah Basis Data I yang dibimbing oleh Bapak Muhammad Zainal Arifin Oleh : KATYA LINDI CHANDRIKA 140535605307 UNIVERSITAS NEGERI MALANG FAKULTAS

Lebih terperinci

MODUL 7 STRUCTURED QUERY LANGUAGE

MODUL 7 STRUCTURED QUERY LANGUAGE MODUL 7 STRUCTURED QUERY LANGUAGE BAHASA QUERY KOMERSIAL Berdasarkan acuan model relasional, ada 2 bahasa query komersial yang tersedia : 1. SQL (Structured Query Language) 2. QBE (Query By Example ).

Lebih terperinci

Untuk mencoba contoh-contoh perintah join, silahkan eksekusi query create+insert dibawah ini:

Untuk mencoba contoh-contoh perintah join, silahkan eksekusi query create+insert dibawah ini: JOIN Dalam menampilkan sebuah data seringkali kita perlu menggunakan lebih dari 1 tabel, 2 tabel, bahkan lebih, karena data yang akan ditampilkan terletak pada beberapa tabel. Setiap tabel biasanya memiliki

Lebih terperinci

PERTEMUAN 10 PEMBUATAN TABEL

PERTEMUAN 10 PEMBUATAN TABEL PERTEMUAN 10 PEMBUATAN TABEL Tujuan Pembelajaran : Memahami object utama dari database Membuat table Memahami tipe data yang digunakan pada saat pendefinisian kolom pada table Merubah definisi table Drop,

Lebih terperinci

MODUL 1. Pembuatan tabel, pendefinisian constraint, export dan import PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

MODUL 1. Pembuatan tabel, pendefinisian constraint, export dan import PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE MODUL 1 Pembuatan tabel, pendefinisian constraint, export dan import PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE BAGIAN 1 PEMBUATAN TABEL Tujuan Pembelajaran : Memahami

Lebih terperinci

LATAR BELAKANG IBM San Jose Research Laboratory.

LATAR BELAKANG IBM San Jose Research Laboratory. SQL LATAR BELAKANG SQL merupakan bahasa basis data relasional standard. Terdapat macam-macam versi SQL. Versi aslinya pertama kali dikembangkan oleh IBM San Jose Research Laboratory. 2 LATAR BELAKANG Bahasa

Lebih terperinci

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN WEB Semester: 2 MYSQL 200 menit No.: Job: 12 Tgl: Hal.

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN WEB Semester: 2 MYSQL 200 menit No.: Job: 12 Tgl: Hal. A. Kompetensi Mahasiswa diharapkan dapat memahami: 1. Pengertian databases, DBMS, MySQL 2. Apa Itu SQL? 3. Membuat, Menampilkan, Membuka dan Menghapus Database 4. Membuat, Mengubah dan Menghapus Table

Lebih terperinci

Basis Data Spasial Modul 2

Basis Data Spasial Modul 2 Basis Data Spasial Modul 2 Modul 2 Arsitektur DBMS Tabel Data Manipulation Language (DML) Data Definition Language (DDL) LATIHAN Data Base Management System (DBMS) Perangkat lunak (software) untuk mengelola

Lebih terperinci

SISTEM BASIS DATA. Oleh : Devie Rosa Anamisa

SISTEM BASIS DATA. Oleh : Devie Rosa Anamisa SISTEM BASIS DATA Oleh : Devie Rosa Anamisa Pengertian Sistem Basis Data Sistem Keterpaduan yang terdiri atas sejumlah komponen fungsional yang saling berhubungan dan secara bersama-sama bertujuan untuk

Lebih terperinci

Tutorial Database Oracle Chapter3 Menampilkan Data Menggunakan Perintah SQL SELECT

Tutorial Database Oracle Chapter3 Menampilkan Data Menggunakan Perintah SQL SELECT Tutorial Database Oracle Chapter3 Menampilkan Data Menggunakan Perintah SQL SELECT Oleh: Ardie Jocong Pada Tutorial ketiga ini, saya akan memberikan tutorial bagaimana Menampilkan data yang telah dibuat

Lebih terperinci

MODUL III STRUCTURED QUERY ANGUAGE (SQL)

MODUL III STRUCTURED QUERY ANGUAGE (SQL) MODUL III STRUCTURED QUERY ANGUAGE (SQL) Tujuan : 1. Memahami tentang sistem database 2. Memahami instalasi MySQL di lingkungan Windows 3. Memahami dasar-dasar MySQL. Tugas Pendahuluan 1. Apa yang anda

Lebih terperinci

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS Copyright 2005 PENS-ITS C H A P T E R Operasi DML Objectives Tujuan: Mengenal operasi perintah dalam: - DML (Data Manipulation Language) S Q L DML DML (Data Manipulation Language) adalah inti dari. DML

Lebih terperinci

Pertemuan 12 Pengenalan Structured Query Language

Pertemuan 12 Pengenalan Structured Query Language Pertemuan 12 Pengenalan Structured Query Language Apa Itu SQL? Membuat, Menampilkan, Membuka dan Menghapus Database Membuat, Mengubah dan Menghapus Table Menambah Record dengan INSERT Mengedit Record dengan

Lebih terperinci

RENCANA PEMBELAJARAN SEMESTER

RENCANA PEMBELAJARAN SEMESTER RENCANA PEMBELAJARAN SEMESTER Mata kuliah : Data Management Semester : 2 Kode : SM421224 SKS : 4 Prodi : Manajemen Bisnis Telekomunikasi dan Informatika Dosen : Yudi Priyadi, S.T.,M.T. Capaian pembelajaran

Lebih terperinci

Pengenalan Structured Query Language

Pengenalan Structured Query Language Pengenalan Structured Query Language Apa Itu SQL? SQL merupakan singkatan dari Structured Query Language. SQL atau juga sering disebut sebagai query merupakan suatu bahasa (language) yang digunakan untuk

Lebih terperinci

SQL DASAR BASIS DATA. Rajif Agung Yunmar, S.Kom., M.Cs.

SQL DASAR BASIS DATA. Rajif Agung Yunmar, S.Kom., M.Cs. SQL DASAR BASIS DATA Rajif Agung Yunmar, S.Kom., M.Cs. PRETEST Sebutkan apa yang disebut dengan SQL? Jelaskan! Apakah yang disebut sebagai batasan integritas (integrity constraint)? Sebutkan jenis-jenis

Lebih terperinci

RENCANA PEMBELAJARAN

RENCANA PEMBELAJARAN FRM/KUL/01/ Written by Checked by Approved by valid date Leon Andretti Abdillah, S.Kom.,MM Merry Agustina, M.M.,M.Kom M.Izman Herdiansyah, ST., MM., Ph.D Mata Kuliah : Praktikum Basis Data Semester :1

Lebih terperinci

Satuan Acara Perkuliahan

Satuan Acara Perkuliahan Satuan Acara Perkuliahan Mata Kuliah : Sistem Basis Data Kode Mata Kuliah / SKS: KK-1057 / 3 SKS Semester : Ganjil / Genap Dosen : Dini Yuristia, S.T. Hari, jam, ruang : Deskripsi Mata Kuliah Mata kuliah

Lebih terperinci

Agenda SQL. Pemakai SQL. Kemampuan SQL 02/12/2010 STRUCTURED QUERY LANGUAGE (SQL) Structured Query Language (SQL) (Pert. 9)

Agenda SQL. Pemakai SQL. Kemampuan SQL 02/12/2010 STRUCTURED QUERY LANGUAGE (SQL) Structured Query Language (SQL) (Pert. 9) Agenda Structured Query Language (SQL) (Pert. 9) Oleh : Umi Laili Yuhana, S.Kom, M.Sc. Sarwosri, S.Kom, M.T. Dr. Ir. Siti Rochimah Pengantar SQL DDL 1 2 SQL Singkatan dari Structured Query Language, dalam

Lebih terperinci

Oracle Academic Initiative

Oracle Academic Initiative Oracle Academic Initiative Oracle9i Introduction to SQL Oleh: Tessy Badriyah, SKom.MT Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember Surabaya 5.1. Sasaran Dapat menulis statement

Lebih terperinci

MODUL V DATA MANIPULATION LANGUAGE (DML) 1

MODUL V DATA MANIPULATION LANGUAGE (DML) 1 MODUL V DATA MANIPULATION LANGUAGE (DML) 1 Tujuan : Praktikan dapat memahami dan mengisi tabel dalam database Praktikan dapat memahami dan memanipulasi data dalam database Tugas Pendahuluan Apa yang anda

Lebih terperinci

P - 7 Pembahasan UTS PSIK V

P - 7 Pembahasan UTS PSIK V P - 7 Pembahasan UTS PSIK V 1. Jelaskan mengenai Web Applications Architechture dengan ilustrasi gambar. Secara teknis database yang menyimpan hampir semua data dan data tersebut diolah oleh bahasa pemrograman

Lebih terperinci

By Mrs Imana Malia Kondou, S.T. missimanakondou.wordpress.com

By Mrs Imana Malia Kondou, S.T. missimanakondou.wordpress.com Pengantar SQL By Mrs Imana Malia Kondou, S.T. 1 Tujuan Mahasiswa memahami konsep dasar SQL 2 Pokok k Bahasan Statemen Macam-macam macam perintah SQL DDL DML 3 Mengapa SQL? SQL mrpk very-high-level language.

Lebih terperinci

MODUL 2 PENGENALAN DATA DEFINITION LANGUAGE (DDL) & DATA MANIPULATION LANGUAGE (DML)

MODUL 2 PENGENALAN DATA DEFINITION LANGUAGE (DDL) & DATA MANIPULATION LANGUAGE (DML) MODUL 2 PENGENALAN DATA DEFINITION LANGUAGE (DDL) & DATA MANIPULATION LANGUAGE (DML) TUJUAN PRAKTIKUM 1. Praktikan dapat mengetahui pengertian SQL. 2. Praktikan dapat mengetahui klasifikasi SQL. 3. Praktikan

Lebih terperinci

BAB 4 : Interaksi PL/SQL dengan Oracle Server

BAB 4 : Interaksi PL/SQL dengan Oracle Server Oracle9i : Program with PLSQL BAB 4 : Interaksi PLSQL dengan Oracle Server BAB 4 : Interaksi PLSQL dengan Oracle Server Tujuan Pembelajaran : Membuat SELECT Statement dalam PLSQL Membuat DML (Data Manipulation

Lebih terperinci

BAB 2 LANDASAN TEORI Pengertian DBMS (Database Management System)

BAB 2 LANDASAN TEORI Pengertian DBMS (Database Management System) 21 BAB 2 LANDASAN TEORI 2.1. Pengertian DBMS (Database Management System) Database Management System atau DBMS adalah perangkat lunak yang didesain untuk membantu dalam memelihara dan menggunakan koleksi

Lebih terperinci

Sistem Basis Data; Tutorial Konseptual Oleh : Yakub

Sistem Basis Data; Tutorial Konseptual Oleh : Yakub Sistem Basis Data; Tutorial Konseptual Oleh : Yakub Edisi Pertama Cetakan Pertama, 2008 Hak Cipta 2008 pada penulis, Hak Cipta dilindungi undang-undang. Dilarang memperbanyak atau memindahkan sebagian

Lebih terperinci

SISTEM BASIS DATA II S A N T I W I D I A N T I

SISTEM BASIS DATA II S A N T I W I D I A N T I SISTEM BASIS DATA II S A N T I W I D I A N T I SISTEM Definisi sebuah tatanan yang terdiri atas sejumlah komponen fungsional (dengan tugas/fungsi khusus) yang saling berhubungan dan secara bersama-sama

Lebih terperinci

Dasar-dasar SQL Cosmas Haryawan Hal : 1/9 DASAR DASAR SQL (Structured Query Language) SQL adalah bahasa standar dalam basis data yang digunakan untuk melakukan manipulasi data. Standardisasi bahasa ini

Lebih terperinci

LAPORAN PRAKTIKUM IV BASIS DATA (SISTEM BERKAS - LAN)

LAPORAN PRAKTIKUM IV BASIS DATA (SISTEM BERKAS - LAN) LAPORAN PRAKTIKUM IV BASIS DATA (SISTEM BERKAS - LAN) Basis Data Relasional dan Operasi Bahasa Basis Data O L E H Nama : Wahyudi Rahmat NIM : 0506021286 Fak/Jur : F S T/Teknik Elektro Fakultas Sains Dan

Lebih terperinci

Basis Data I. Pertemuan Ke-4 & ke-5 (Model Relasional Part 1) Noor Ifada.

Basis Data I. Pertemuan Ke-4 & ke-5 (Model Relasional Part 1) Noor Ifada. Basis Data I Pertemuan Ke-4 & ke-5 (Model Relasional Part 1) Noor Ifada noor.ifada@if.trunojoyo.ac.id 1 Sub Pokok Bahasan Model Relasional SQL (Structured Query Language) Integrity Constraint Transformasi

Lebih terperinci

PENGANTAR TEKNOLOGI SISTEM INFORMASI MANAGEMENT 2

PENGANTAR TEKNOLOGI SISTEM INFORMASI MANAGEMENT 2 PENGANTAR TEKNOLOGI SISTEM INFORMASI MANAGEMENT 2 PERTEMUAN 5 & 6 STRUCTURE QUERY LANGUAGE STRUCTURE QUERY LANGUAGE SQL adalah bahasa query baku untuk DBMS. SQL diambil sebagai bakuan sejak tahun 1992.

Lebih terperinci

SQL (Structured Query Language)

SQL (Structured Query Language) DIK-034 Database Berbasis Web SQL (Structured Query Language) Dr. Taufik Fuadi Abidin, M.Tech www.informatika.unsyiah.ac.id/tfa Universitas Syiah Kuala Intro: SQL SQL = "Structured Query Language Memiliki

Lebih terperinci

Oracle Academic Initiative

Oracle Academic Initiative Oracle Academic Initiative Oracle9i Introduction to SQL Oleh: Tessy Badriyah, SKom.MT Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember Surabaya BAB 11 : Constraint Halaman : 11-0

Lebih terperinci

S Q L STRUCTURED QUERY LANGUAGE DEFINITION MANIPULATION C O N T R O L D M L SELECT INSERT UPDATE DELETE

S Q L STRUCTURED QUERY LANGUAGE DEFINITION MANIPULATION C O N T R O L D M L SELECT INSERT UPDATE DELETE STRUCTURED QUERY LANGUAGE (SQL) merupakan komponen bahasa relational database system. SQL merupakan bahasa baku (ANSI/SQL), non procedural, dan berorientasi himpunan (set-oriented language). SQL dapat

Lebih terperinci

MODUL II SQL A. TUJUAN

MODUL II SQL A. TUJUAN MODUL II SQL A. TUJUAN Memahami SQL, komponen-komponen, dan kegunaannya Mengenal operasi-operasi DDL dan DML Mampu melakukan operasi-operasi retrieve yang spesifik Mampu menguraikan dan mentranslasikan

Lebih terperinci

SQL Data Definition Language (DDL)

SQL Data Definition Language (DDL) Structured Query Language - DML (Pert. 12) Oleh : Umi Laili Yuhana, S.Kom, M.Sc. Sarwosri, S.Kom, M.T. Dr. Ir. Siti Rochimah 1 SQL Data Definition Language (DDL) Perintah DDL dalam SQL meliputi : CREATE

Lebih terperinci

BAB V. Basis Data Darmawan Satyananda 74

BAB V. Basis Data Darmawan Satyananda 74 BAB V SQL (STRUCTURED QUERY LANGUAGE) Query adalah permintaan untuk mendapatkan data dari basis data. SQL merupakan bahasa standar dalam basis data relasional untuk membuat basis data dan mendapatkan data

Lebih terperinci

STRUCTURE QUERY LANGUAGE

STRUCTURE QUERY LANGUAGE STRUCTURE QUERY LANGUAGE Structure Query Language (SQL) merupakan komponen bahasa relational database system. SQL merupakan bahasa baku (ANSI/SQL), non procedural, dan berorientasi himpunan (set-oriented

Lebih terperinci

INTERNET PROGRAMMING DATABASE

INTERNET PROGRAMMING DATABASE INTERNET PROGRAMMING DATABASE Muhmmad Zen Samsono Hadi, ST. MSc. zenhadi@eepis-its.edu POLITEKNIK ELEKTRONIKA NEGERI SURABAYA Bahasan Sistem Database ER Diagram Database MySQL Internet Application Pendahuluan

Lebih terperinci

BAB II PEMBUATAN DAN MANAJEMEN TABLE

BAB II PEMBUATAN DAN MANAJEMEN TABLE BAB II PEMBUATAN DAN MANAJEMEN TABLE 2.1 Bahasan dan Sasaran 2.1.1 Bahasan - pembuatan tabel - pengelolaan tabel 2.1.1 Sasaran 1. Mahasiswa memahami cara pembuatan maupun penghapusan tabel. 2. Mahasiswa

Lebih terperinci

Oracle Academic Initiative

Oracle Academic Initiative Oracle Academic Initiative Oracle9i Introduction to SQL Oleh: Tessy Badriyah, SKom.MT Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember Surabaya. BAB 12 : Pembuatan View Halaman

Lebih terperinci

Praktikum Basis Data 14 Structure Query Language 2

Praktikum Basis Data 14 Structure Query Language 2 Praktikum Basis Data 14 Structure Query Language 2 Pokok Bahasan : - DDL create table - DDL alter table - DDL drop table - DML insert - DML update - DML delete Tujuan : - Mahasiswa dapat menerapkan perintah

Lebih terperinci

TUGAS I PRAKTIKUM SISTEM BASIS DATA. Nama: Krisna Pandu Wibowo( )

TUGAS I PRAKTIKUM SISTEM BASIS DATA. Nama: Krisna Pandu Wibowo( ) TUGAS I PRAKTIKUM SISTEM BASIS DATA Nama: Krisna Pandu Wibowo(12131353) SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER EL RAHMA YOGYAKARTA 2014 1. Buat database dan 1 tabel dengan objek yang ada

Lebih terperinci

TABLE JOIN SQL SERVER 2005

TABLE JOIN SQL SERVER 2005 i TABLE JOIN SQL SERVER 2005 Disusun untuk : Membuat Laporan Table Join SQL SERVER 2005 Oleh : CHOIRUL FADHOLANII NIM : 0931140068 POLITEKNIK NEGERI MALANG Tahun 2011 DAFTAR ISI 1 DAFTAR GAMBAR 2 1 1.

Lebih terperinci

SQL. Pemrograman Web II. Ganjil

SQL. Pemrograman Web II. Ganjil SQL Pemrograman Web II Ganjil 2015-2016 Review Database Structured Query Language Apa itu database? Kumpulan data terstruktur yang saling berelasi. Definisi : Kumpulan data, yang terorganisir secara logika,

Lebih terperinci

Riyanto

Riyanto SQL (Structured Query Language) Riyanto mohriyan@gmail.com http://www.masto.co.cc Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan

Lebih terperinci

Tujuan : Praktikan mampu untuk memanipulasi data dan mampu mencari data (Retrieval)

Tujuan : Praktikan mampu untuk memanipulasi data dan mampu mencari data (Retrieval) Praktikum 3 MEMANIPULASI DATA Tujuan : Praktikan mampu untuk memanipulasi data dan mampu mencari data (Retrieval) Alat dan Bahan : 1. Buku literatur mengenai sistem database, terutama yang menggunakan

Lebih terperinci

Macam - Macam Perintah Pada SQL

Macam - Macam Perintah Pada SQL Macam - Macam Perintah Pada SQL Secara umum SQL hanya memiliki 3 komponen penting, yang digunakan untuk mendefinisikan, memanipulasi serta sebagai pengontrol data yang ada pada sebuah database. Komponen

Lebih terperinci

Modul 3. Oleh : Mohammad Sholikin. 1

Modul 3. Oleh : Mohammad Sholikin.  1 Modul 3 Oleh : Mohammad Sholikin http://sholikins.wordpress.com 1 SQL (Structured Query Language) adalah sebuah bahasa yang dipergunakan untuk mengakses data dalam basis data relasional. Bahasa ini secara

Lebih terperinci

MODUL 4 INTERNET PROGRAMMING DATABASE

MODUL 4 INTERNET PROGRAMMING DATABASE MODUL 4 INTERNET PROGRAMMING DATABASE A. Tujuan : 1. Memahami tentang penggunaan Ms. Access 2. Memahami tentang pembuatan tabel 3. Memahami tentang relasi antar tabel INTERNET PROGRAMMING PENS-ITS B. Dasar

Lebih terperinci

Database MySql. Mata Pelajaran: Database SMK Qamarul Huda Jurusan TKJ Kelas XII. Disusun oleh: Heru Minandar,ST.

Database MySql. Mata Pelajaran: Database SMK Qamarul Huda Jurusan TKJ Kelas XII. Disusun oleh: Heru Minandar,ST. Mata Pelajaran: Database SMK Qamarul Huda Jurusan TKJ Kelas XII Disusun oleh: Heru Minandar,ST. Database : adalah sebuah system yang di buat untuk mengorganisasi, menyimpan dan menarik data dengan mudah.

Lebih terperinci

Constraint dan Manajemen Data dalam Timezone Berbeda

Constraint dan Manajemen Data dalam Timezone Berbeda Constraint dan Manajemen Data dalam Timezone Berbeda Rosa Ariani Sukamto Email: rosa_if_itb_01@yahoo.com Blog: http://udinrosa.wordpress.com Website: http://www.gangsir.com Constraint Aturan pada basis

Lebih terperinci

BAB 2 : Dasar Penulisan Statemen SQL. 2.1. Sasaran Mengetahui kemampuan dari SQL SELECT Statement Dapat membuat perintah SQL dengan SELECT Statement

BAB 2 : Dasar Penulisan Statemen SQL. 2.1. Sasaran Mengetahui kemampuan dari SQL SELECT Statement Dapat membuat perintah SQL dengan SELECT Statement BAB 2 : Dasar Penulisan Statemen SQL 2.1. Sasaran Mengetahui kemampuan dari SQL SELECT Statement Dapat membuat perintah SQL dengan SELECT Statement 2.2. Dasar Statement SELECT Sintak (cara penulisan) dari

Lebih terperinci