RPP Menerapkan Bahasa SQL Lanjut.docx

19
RENCANA PELAKSANAAN PEMELAJARAN (RPP) Kode KD : TIK.KK.070.010.01 Nama Sekolah : SMK Negeri 8 Semarang Mata Pelajaran : Produktif RPL Kelas / Semester : XI / 3 Tahun Ajaran : 2012 - 2013 Alokasi Waktu : 60 x 45 Menit K K M : 7.0 STANDAR KOMPETENSI Menerapkan bahasa pemrograman SQL tingkat lanjut KOMPETENSI DASAR Menentukan formula pembentukan data dengan batasan Membuat dan mengoperasikan prosedur dan fungsi Menulis kode program pembangkitan data dengan batasan waktu Mengoperasikan Trigger INDIKATOR Penggunaan klausa having dalam program di jelaskan Penggunaan kluasa where dalam program dijelaskan Menu menu yang tersedia beserta shortcut-nya dikenali Fitur fitur pengolahan Tabel, View, Store Prosedur, Trigger diaplikasikan Integritas referensial dijelaskan NILAI KARAKTER Karakter siswa yang diharapkan : Mandiri Sikap dan perilaku yang tidak mudah tergantung pada orang lain dalam menyelesaikan tugas-tugas. Berpikir logis, kritis, kreatif, dan inovatif Berpikir dan melakukan sesuatu secara kenyataan atau logika untuk menghasilkan cara atau hasil baru dan termutakhir dari apa yang telah dimiliki. Rasa ingin tahu Sikap dan tindakan yang selalu berupaya untuk mengetahui lebih mendalam dan

Transcript of RPP Menerapkan Bahasa SQL Lanjut.docx

Page 1: RPP Menerapkan Bahasa SQL Lanjut.docx

RENCANA PELAKSANAAN PEMELAJARAN (RPP)

Kode KD : TIK.KK.070.010.01

Nama Sekolah : SMK Negeri 8 SemarangMata Pelajaran : Produktif RPLKelas / Semester : XI / 3Tahun Ajaran : 2012 - 2013Alokasi Waktu : 60 x 45 MenitK K M : 7.0

STANDAR KOMPETENSI Menerapkan bahasa pemrograman SQL tingkat lanjut

KOMPETENSI DASAR Menentukan formula pembentukan data dengan batasan Membuat dan mengoperasikan prosedur dan fungsi Menulis kode program pembangkitan data dengan batasan waktuMengoperasikan Trigger

INDIKATOR Penggunaan klausa having dalam program di jelaskanPenggunaan kluasa where dalam program dijelaskanMenu menu yang tersedia beserta shortcut-nya dikenaliFitur fitur pengolahan Tabel, View, Store Prosedur, Trigger diaplikasikanIntegritas referensial dijelaskan

NILAI KARAKTER Karakter siswa yang diharapkan :Mandiri

Sikap dan perilaku yang tidak mudah tergantung pada orang lain dalam menyelesaikan tugas-tugas.

Berpikir logis, kritis, kreatif, dan inovatifBerpikir dan melakukan sesuatu secara kenyataan atau logika untuk menghasilkan cara atau hasil baru dan termutakhir dari apa yang telah dimiliki.

Rasa ingin tahuSikap dan tindakan yang selalu berupaya untuk mengetahui lebih mendalam dan meluas dari sesuatu yang dipelajarinya, dilihat, dan didengar

Kerja kerasPerilaku yang menunjukkan upaya sungguh-sungguh dalam mengatasi berbagai hambatan guna menyelesaikan tugas (belajar/pekerjaan) dengan sebaik-baiknya.

DisiplinTindakan yang menunjukkan perilaku tertib dan patuh pada berbagai peraturan dan ketentuan

A. Tujuan Pemelajaran

Page 2: RPP Menerapkan Bahasa SQL Lanjut.docx

A.1. AkademikSetelah memperoleh pembelajaran Menerapkan bahasa SQL tingkat dasar diharapkan siswa dapat:

o Memahami store procedure dan store fuction o Memahami triggero Memahami integritas referensial

A.2. Karaktero Peserta didik dapat berpikir dan melakukan sesuatu secara kenyataan atau logika

untuk menghasilkan cara atau hasil baru dan termutakhir dari apa yang telah dimilikio Peserta didik dapat berpikir, bersikap dan berbuat yang menunjukkan kesetiaan,

kepedulian, dan penghargaan yang tinggi terhadap pengetahuano Peserta didik dapat besikap dan bertindak dan selalu berupaya untuk mengetahui

lebih mendalam dan meluas dari sesuatu yang dipelajarinya, dilihat, dan didengaro Peserta didik bisa menunjukkan upaya sungguh-sungguh dalam mengatasi berbagai

hambatan guna menyelesaikan tugas (belajar/pekerjaan) dengan sebaik-baiknya.o Peserta didik dapat bertindak serta berperilaku tertib dan patuh pada berbagai

peraturan dan ketentuan

B. Materi Pemelajaran Pendalaman pernyataan SELECT Penggunaan Klausa HAVING Penggunaan Klausa WHERE Pengolahan tabel dengan prosedur dan fungsi Integritas referensial

C. Metode Pembelajaran Tatap muka Praktikum Tugas

D. Sumber Belajar Buku Paket BSE Belajar database menggunakan MySQL Software XAMPP

E. Kegiatan Pemelajaran

Sesi – 1

Page 3: RPP Menerapkan Bahasa SQL Lanjut.docx

Menentukan formula pembentukan data dengan batasan

a. PendahuluanSalamPembelajaran diawali dengan doa bersamaMelakukan pengecekkan siswa yang hadirApersepsi : Menanyakan materi minggu lalu untuk mengetahui persiapan siswaMotivasi : Menyampaikan kompetensi dasar yang akan dipelajari yaitu Menerapkan bahasa SQL tk lanjut

b. Kegiatan Inti Penggunaan operator pada query

BETWEEN dan NOT BETWEENOperator yang digunakan untuk menangani operasi jangkauanSintaks :SELECT nmfield1, nmfield2FROM tableWHERE nmfield BETWEEN nilai1 AND nilai2

IN dan NOT INOperator yang berguna untuk melakukan pencocokan dengan salah satu yang ada pada daftar nilaiSintaks :SELECT nmfield1, nmfield2FROM tableWHERE nmfield IN (‘nilai1’ , ‘nilai2’, ‘nilai3’)

LIKE dan NOT LIKEOperator yang berguna mencari data dengan criteria tertentu, dengan menggunakan wildcard ( _ : sebuah karakter , % : beberapa karakter)

ContohPola Keterangan% a% Cocok dg apa saja yg mengandung karakter a %a Cocok dg yg berakhiran aa% Cocok dg yg berawalan a

Operator LIKE bersifat case sensitiveSintaks :SELECT nmfield1, nmfield2FROM tableWHERE nmfield LIKE ‘char%’

REGEXP

Page 4: RPP Menerapkan Bahasa SQL Lanjut.docx

Operator yg berfungsi untuk pencocokan string dengan menggunakan symbol tertentuSimbol Keterangan^ Cocok dengan awal string$ Cocok dengan akhir string. Cocok dengan sebarang karakter tunggal[ ] Cocok dengan sebarang karakter yg ada dalam [ ]dst

Mengurutkan DataUntuk menampilkan data secara urut berdasarkan criteria tertentu dapat dilakukan dengan menggunakan klausa ORDER BYSintaks :SELECT nmfield1, nmfield2 FROM tableORDER BY nmfield;

Pengelompokkan DataUntuk menampilkan data berdasarkan kelompok tertentu dengan menggunakan klausa GROUP BYSintaks :SELECT nmfield1, nmfield2FROM tableGROUP BY nmfield;

Klausa HAVINGKlausa yg berfungsi untuk menentukan kondisi bagi group bySintaks :SELECT nmfieldFROM tableWHERE nmfield IS NOT NULLGROUP BY nmfieldHAVING nmfield operator nilai;

Fungsi AgregateAdalah fungsi yg digunakan untuk menghasilkan sebuah nilai berdasarkan sejummlah data AVG( ) COUNT( ) MAX( ) MIN( ) SUM( ) Dll

Klausa LIMITKlausa yang befungsi untuk membatasi jumlah baris yang akan di hasilkan oleh suatu querySintaks :

Page 5: RPP Menerapkan Bahasa SQL Lanjut.docx

SELECT nmfieldFROM tableLIMIT jmlbaris;

Variabel userAdalah variable yang dibuat oleh user yang berfungsi untuk menyimpan nilai tertentuSintaks penciptaan variableSET @nm_variable = ekspresi

Penggunaan ekspressi dalam QueryEkspressi yang digunakan dalam query adalah CASE dan IFSintaks CASE :CASE nilai ekspresiWHEN nilai ekspresiTHEN nilai ekspresi[ WHEN nilai ekspresi THEN nilai ekspresi ][ ELSE nilai ekspresi ]END

Contoh ;SELECT nama

CASE sexWHEN ‘L’ THEN ‘Pria’ELSE ‘Wanita’END AS ‘Jenis kelamin’

FROM pegawai;

Sintaks IF:IF (ekspresi1, ekspresi2, ekspresi3)Contoh :SELECT nama

IF (sex =’L , “Pria”, “Wanita”)FROM pegawai

Penggabungan Data Equijoin

Penggabungan data dengan menggunakan operator ( = )Sintaks :SELECT nmfield1.tbl1, nmfield2.tbl2FROM tbl1, tbl2WHERE nmfield1.tbl1 = nmfield1.tbl2

Natural JoinPenggabungan data dari 2 tabel yang didasarkan pada kolom dengan nama yang sama pada kedua tableSintaks :SELECT nmfiled1.tbl1, nmfield2.tbl2FROM tbl1 NATURAL JOIN tbl2;

Page 6: RPP Menerapkan Bahasa SQL Lanjut.docx

Cross JoinPenggabungan data dari 2 tabel yang didasarkan pada klausa USINGSintaks :SELECT nmfiled1.tbl1, nmfield2.tbl2FROM tbl1 CROSS JOIN tbl2USING (nmfield);

c. Penutup PraktikumTanya jawab ( contoh soal di poin F )

PRAKTIKUM 1Buatlah table dibawah iniTABEL SISWA

NIS NAMA KELAS PROKLI1001 ANI X RPL1002 RULI X TKJ1003 NOVA X RPL1004 LOLA X TKJ1006 DANI X TKJ1005 TIN X RPL

TABEL NILAINIS N_MAT N_BIN

DN_BIG N_PROD

1001

7 7 5 7

1002

6 5 6 8

1003

8 6 7 9

1004

9 8 8 8

1006

6 9 9 8

1005

7 8 7 7

Dari table diatas buatlah perintah SQL untuk soal dibawah ini1. Tampilkan semua data yang ada pada table tersebut2. Tampilkan semua data untuk prokli RPL3. Tampilkan semua data yang namanya diakhiri dengan huruf A4. Tampilkan semua data siswa TKJ urutkan berdasarkan nama5. Buat query untuk menampilkan data nilai matematik dengan kolom

NIS NAMA N_MAT6. Buat query untuk menghitung nilai rata-rata bahasa inggris7. Buat query untuk menampilkan nilai rata-rata masing-masing siswa8. Buat query untuk menampilkan nilai total nilai siswa urutkan mulai nilai tertiggi

Page 7: RPP Menerapkan Bahasa SQL Lanjut.docx

Sesi - 2 Membuat dan mengoperasikan prosedur dan fungsi

a. PendahuluanSalamPembelajaran diawali dengan doa bersamaMelakukan pengecekkan siswa yang hadirApersepsi : Menanyakan materi minggu lalu untuk mengetahui persiapan siswaMotivasi : Menyampaikan kompetensi dasar yang akan dipelajari yaitu

b. Kegiatan inti Pengertian store procedure dan store function

Store procedure / store function adalah suatu modul yang berisi kumpulan pernyataan SQL yang ditujukan untuk melaksanakan tugas tertentu dan letaknya ada pada serverKeuntungan penggunaan store procedure / store function :

- Meningkatkan kinerja- Meningkatkan keamanan- Meningkatkan integritas data

Cara membuat ,menjalankan dan menghapus store procedureSintaks:Membuat procedureCREATE PROCEDURE nmprocedure ([param_pros [....]])

Bagian_kode

Menjalankan procedureCALL nmprocedure;

Cara membuat ,menjalankan dan menghapus store functionSintaks:Membuat functionCREATE FUNCTION nmfunction ([param_pros [....]])

RETURN tipeBagian_kode

Menjalankan functionSELECT nmfunction;

Memahami perintah-perintah untuk rutinPerintah – perintah yang berperan pada pembuatan procedure dan fungsi- BEGIN – END- DECLARE- SET- SELECT ...INTO- DELIMITER

Page 8: RPP Menerapkan Bahasa SQL Lanjut.docx

- Kontrol program :o IFo CASEo REPEATo WHILEo ITERATE

Batasan untuk store function dan procedureBeberapa pernyataan yang tidak boleh digunakan pada store procedure / function yaitu :

- CHECK TABLES - LOCK TABLES / UNLOCK TABLES- LOAD DATA / LOAD TABLE- OPTIMIZE TABLE

Khusus store function tidak boleh menggunakan pernyataan:- PREPARE- EXECUTE- SELECT tanpa INTO- FLUSH- COMMIT- ROLLBACK

c. PenutupPraktikumTanya jawab ( contoh soal di poin F )

PRAKTIKUM 21. Buat procedure untuk menampilkan teks “ SMK Negeri 8 Semarang” sebanyak 10 kali2. Buat procedure untuk menampilkan bilangan genap antara 0 s/d 253. Buat procedure untuk menampilkan data siswa yang nilai matematikanya diatas 7 untuk

table dibawah iniTABEL SISWA

NIS NAMA KLS PROKLI N_MAT N_BIND1001 ANI X RPL 7 71002 RULI X TKJ 6 51003 NOVA X RPL 8 61004 LOLA X TKJ 9 81006 DANI X TKJ 6 91005 TIN X RPL 7 8

Sesi - 3 Menulis kode program pembangkitan data dengan batasan waktu

Integritas ReferensialIntegritas referensial berfungsi untuk menjaga konsistensi hubungan antar table, dengan cara menerapkan foreign key yang berpengaruh pada operasi INSERT, DELETE dan UPDATE

Page 9: RPP Menerapkan Bahasa SQL Lanjut.docx

Kekangan Foreign KeyKekangan foreign key berfungsi untuk mendukung integritas referensialIntegritas referensial merupakan upaya untuk menjaga agar kunci tamu dan kunci primer milik table lain selalu konsisten

Ilustrasi hubungan antar table adalah sbb:

Menerapkan kekangan foreign keyUntuk menerapkan kekangan foreihn key mula-mula buat databel KOTA sbb:CREATE TABLE kota(Kode_kota CHAR(4) NOT NULL, PRIMARY KEY,Nama CHAR(10)) ;

Isi table kota dengan data kota sbb :Kode_kota Nama501 Malang502 Batu503 Lawang504 Pasuruan

Kemudian buat table NASABAH yang mereferensi ke table KOTA sbb:

CREATE TABLE nasabah (Id_nasabah CHAR(5) NOT NULL PRIMARY KEY,Nama CHAR(25),Kode_kota CHAR(4) FOREIGN KEY (Kode_kota)REFERENCES kota(Kode_kota))

Setelah kedua table terbentuk lakukan proses Insert data dengan perintah sbbINSERT INTO nasabah VALUES (‘1001’, ‘Nia’, ‘501’)

Tindakan pemicu Integritas ReferensialMySQL menyediakan fitur yang dapat diantur user sekiranya suatu baris pada tabel induk yang direferensi oleh suatu kunci tamu dihapus atau diubah.Penentuan tindakan ini berbentuk :

Table Nasabah

Id_NasabahNamaKode_kota

Table Kota

Kode_kotaNamaProvinsi

Kunci primer

Kunci Tamu

Tabel yang mereferensi

Table Induk

Page 10: RPP Menerapkan Bahasa SQL Lanjut.docx

[ ON UPDATE { RESTRICT | CASCADE | SET NULL | NO_ACTION } ][ON DELETE RESTRICT | CASCADE | SET NULL | NO_ACTION } ]

Keterangan : UPDATE

Menyatakan tindakan kalau pada tabel induk terjadi perubahan nilai DELETE

Menyatakan tindakan kalau pada tabel induk terjadi penghapusan nilaiTindakan yang dapat didefinisikan adalah :

RESTRICTArtinya pengubahan atau penghapusan ditolak

CASCADEPada UPDATE jika nilai kunci primer pada tabel induk berubah maka kunci asing pada tabel yang mereferensi akan disesuaikanPada DELETE semua kunci tamu yang cocok dengan kunci primer pada tabel induk milik tabel yang dihapus akan ikut dihapus

SET NULLMenyatakan kunci tamu akan diisi dengan NULL kalau kunci primer pada tabel induk yang nilainya sama dengan nilai pada kunci asing diubah atau dihapus

NO ACTIONIdentik dengan RESTRICT

c. PenutupPraktikumTanya jawab ( contoh soal di poin F )

PRAKTIKUM 31. Buatlah kedua tabel dibawah ini dinama tabel Buku sebagai tabel Induk dan tabel

Peminjam sebagai tabel yang mereferensi dg ilustrasi sbbTabel : BUKU Tabel : PEMINJAMNIB NO

JUDUL TANGGALNAMAALAMATNIB

2. Isilah tabel buku dengan nilai sbbNIB JUDUL1001 Pemrograman SQL1002 Pemrograman VB

3. Isilah tabel peminjam dengan data sbbNO TANGGAL NAMA ALAMAT NIB1 02-01-2012 AAA MALANG 1001

Amati apa yang terjadi setelah proses INSERT diatas ?

Page 11: RPP Menerapkan Bahasa SQL Lanjut.docx

NO TANGGAL NAMA ALAMAT NIB2 02-01-2012 AAA MALANG 2001

Amati apa yang terjadi setelah proses INSERT diatas ?

4. Kesimpulan apa yang bisa diambil dari kedua perintah diatas ?

Sesi – 4 Mengoperasikan Trigger

a. PendahuluanSalamPembelajaran diawali dengan doa bersamaMelakukan pengecekkan siswa yang hadirApersepsi : Menanyakan materi minggu lalu untuk mengetahui persiapan siswaMotivasi : Menyampaikan kompetensi dasar yang akan dipelajari yaitu

b. Kegiatan intiTrigger:

a. Konsep triggerTrigger adalah kumpulan pernyataan SQL yang dimaksudkan untuk dieksekusi oleh pernyataan INSERT, UPDATE dan DELETE

b. Cara membuat triggerSintaks:CREATE TRIGGER nmtrigger

Waktu_trigger kejadian_triggerON nmtabel FOR EACH ROW pernyataan

Waktu_Trigger :o BEFOREo AFTER

Kejadian_Trigger:o INSERTo UPDATEo DELETE

c. Batasan triggerTidak bisa melibatkan procedure tersimpanTidak bisa melibatkan pernyataan SQL dinamis PREPARETidak bisa melibatkan pernyataan yang terkait dg transaksi ( START TRANSACTION, COMMIT, ROLLBACKTidak boleh ada perintah SELECT tanpa INTO

Page 12: RPP Menerapkan Bahasa SQL Lanjut.docx

c. PenutupPraktikumTanya jawab ( contoh soal di poin F )

PRAKTIKUM 41. Buatlah trigger untuk table siswa dan nilai dibawah ini untuk kejadian trigger INSERT,

UPDATE dan DELETE

Table_Siswa Table_SiswaNIS NAMA KELAS PROKLI NIS MAT BIG PROD BIND

1001 ANI X RPL 1001 7 5 7 71002 RULI X TKJ 1002 6 6 8 51003 NOVA X RPL 1003 8 7 9 61004 LOLA X TKJ 1004 9 8 8 81006 DANI X TKJ 1006 6 9 8 91005 TIN X RPL 1005 7 7 7 8

F. Contoh Soal Tanya jawabNO SOAL JAWABAN INDIKATOR SOAL1 Perintah SQL dibawah ini yang berfungsi untuk

menampilkan seluruh data dari table SISWA yang namany di awali dengan huruf A adalaha. Select * from siswa where nama=A;b. Select * from siswa where nama =’A’;c. Select * from siswa where nama like ‘A’;d. Select * from siswa where nama like ‘A%’;e. Select * from siswa where nama = ‘A%’;

d Siswa memahami cara menampilkan data dengan batasan tertentu

2 Perintan SQL dibawah ini yang berfungsi untuk menampilkan kolom nama dari table SISWA yang namanya terdapat huruf B adalaha. Select * from siswa where nama like ‘B’;b. Select Nama from siswa where nama like ‘B’,c. Select Nama from siswa where nama regxp ‘^B’;d. Select Nama from siswa where nama regxp ‘[B]’;e. Select * from siswa where nama regxp ‘[B]’;

d Siswa memahami cara menampilkan data dengan batasan tertentu

3 Perintah SQL dibawah ini yang berfungsi untuk menampilkan seluruh data dari table siswa urut mulai NIS yang terkecil adalaha. Select * from siswa order by nis desc;b. Select * from siswa order by nis asc;c. Select * from siswa sort by nis;d. Select * from siswa group by nis;e. Select * from siswa sort by nis asc;

b Siswa memahami cara menampilkan data yang diurutkan berdasarkan criteria tertentu

4 Perintah SQL dibawah ini berfungsi untuk menampilkan data siswa yang dikelompokkan berdasarkan kelas adalaha. Select * from siswa order by kelas;b. Select kelas from siswa;c. Select * from sisea group by kelas;d. Select * from siswa where kelas = 1;

c Siswa memahami cara menampilkan data yang dikelompokkan berdasarkan criteria teretentu

Page 13: RPP Menerapkan Bahasa SQL Lanjut.docx

e. Select * from siswa sort by kelas;5 Klausa yg digunakan untuk penggabungan data dari 2

tabel yang didasarkan pada kolom dengan nama yang sama pada kedua table adalah

a. =b. Natural joinc. Cross joind. Havinge. Where

b Siswa memahami cara menampilkan data dari 2 table yg memiliki kesamaan kolom

6 Perintah SQL yang benar untuk membuat store procedure adalah ...

a. Create procedure nm_pro;b. Create procedure nm_pro(parameter);c. Create procedure;d. Create store procedure;e. Create store procedure nm_pro;

b Siswa memahami cara pembentukan store procedure pada SQL

7 Perintah yang digunakan untuk menjalankan store procedure adalah

a. Selectb. Runc. Calld. Goe. Compile

c Siswa memahami cara menjalankan store procedure

8 Create procedure hitung ( a int, b int )Begin Declare x int; Set x = ( a * b ) + a; Select (x);EndBerapakah nilai X yang dihasilkan dari procedure diatas bila dijalankan dengan perintah Call( 4,2)a. 2b. 4c. 8d. 12e. 24

c Siswa memahami cara kerja store procedure

9 Create function jumlah (int x, int y)Returns floatBegin Declare z float; Set z = x / y; Return z;EndFunction diatas memiliki tipe nilai kembalian ...a. Floatb. Charc. Intd. Doublee. z

a Siswa memahami cara pendeklarasian store function

10 Create function hasil ( x int )Returns charBegin

c Siswa memahami tatacara pengoperasian

Page 14: RPP Menerapkan Bahasa SQL Lanjut.docx

Declare tipe char(25); if (x % 3 = 0 ) then set tipe =’kelipatan 3’ else set tipe = ‘bukan kelipatan 3’;return tipe;endfunction diatas jika dijalankan dengan perintah select hasil( ) akan menghasilkana. kelipatan 3b. bukan kelipatan 3c. errord. bil genape. nol

function

G. PenilaianTeknik

PenilaianBentuk

instrumentInstrumen

1. Praktikum Tugas Praktikum 1 ( Query lanjutan )Praktikum 2 ( Procedure dan fungsi )Praktikum 3 ( Integritas referensial)Praktikum 4 ( Trigger)

H. Rubrik penilaianSoal Nilai Max Cara perhitungan skorePraktikum 9.00 Proses Kerja = 30 % * Nilai max

Hasil kerja = 30 % * Nilai maxSikap = 34 % * Nilai max

Nilai = Proses Kerja + Hasil Kerja + Sikap

Semarang, 15 Juli 2013Ketua Kompetensi Keahlian, Guru Mata Pelajaran

Agung Setiawan, S.Kom Dian Nirmala Santi, S. KomNIP. NIP. -