Membuat Query Data

download Membuat Query Data

of 117

Transcript of Membuat Query Data

KODE MODUL DTA.OPR.119.(2).A

Milik Negara Tidak Diperdagangkan

SEKOLAH MENENGAH KEJURUAN BIDANG KEAHLIAN TEKNOLOGI INFORMASI DAN KOMUNIKASI PROGRAM KEAHLIAN REKAYASA PERANGKAT LUNAK

Membuat Query Data

DIREKTORAT PEMBINAAN SEKOLAH MENENGAH KEJURUAN DIREKTORAT JENDERAL MANAJEMEN PENDIDIKAN DASAR DAN MENENGAH DEPARTEMEN PENDIDIKAN NASIONAL 2005

i

KODE MODUL DTA.OPR.119.(2).A

Milik Negara Tidak Diperdagangkan

SEKOLAH MENENGAH KEJURUAN BIDANG KEAHLIAN TEKNOLOGI INFORMASI DAN KOMUNIKASI PROGRAM KEAHLIAN REKAYASA PERANGKAT LUNAK

Membuat Query Data

Tim Penyusun: 1. Drs. Asep Eka Setia P 2. Moh Aries Sy. S. Pd, MT 3. Drs. Moch Jarwanto, SST 4. Muhtadi Zubeir, S. Pd, MT 5. Jam Iyatul Khoir

Tim Fasilitator: 1. Adel Bahrum, S. Pd 2. Cucu Sukman 3. Karsiyah Wati

DIREKTORAT PEMBINAAN SEKOLAH MENENGAH KEJURUAN DIREKTORAT JENDERAL MANAJEMEN PENDIDIKAN DASAR DAN MENENGAH DEPARTEMEN PENDIDIKAN NASIONAL 2005 ii

KATA PENGANTARPuji Syukur dipanjatkan kehadirat Tuhan Yang Maha Esa atas rahmat dan karuniaNya, sehingga kami dapat menyusun bahan ajar modul interaktif dan modul manual. Adapun modul manual terdiri atas bidang-bidang dan programprogram keahlian kejuruan yang berkembang di dunia kerja baik instansi maupun perusahaan. Tahun Anggaran 2005 telah dibuat sebanyak 300 modul manual terdiri atas 9 (sembilan) bidang keahlian dan 32 (tiga puluh dua) program keahlian yaitu: Bisnis dan Manajemen (Administrasi Perkantoran dan Akuntansi), Pertanian (Agroindustri pangan dan nonpangan, Budidaya Tanaman, Budidaya Ternak Ruminansia, Pengendalian Mutu), Seni Rupa dan Kriya (Kriya Kayu, Kriya Keramik, Kriya Kulit, Kriya Logam Kriya Tekstil), Tata Busan, Teknik Bangunan (Gambar Bangunan, Teknik Konstruksi Baja dan Alumunium, Teknik Konstruksi Batu Beton, Tekni Industri Kayu), Teknik Elektronika (Teknik Audio Vidio, Teknik Elektronika Industri), Teknik Listrik (Pemanfaatan Energi Listrik, Teknik Distribusi, Teknik Pembangkit Ketenagalistrik-kan), Teknik Mesin (Mekanik Otomotif, Pengecoran Logam, Teknik Bodi Otomotif, Teknik Gambar Mesin, Teknik Pembentukan, Teknik Pemeliharaan Mekanik Industri, Teknik Pemesinan), Teknologi Informasi dan Komunikasi (Multimedia, Rekayasa Perangkat Lunak, Teknik Komputer dan Jaringan), dan program Normatif Bahasa Indonesia. Modul ini disusun mengacu kepada Standar Kompetensi Kerja Nasional Indonesia (SKKNI), Kurikulum Sekolah Menengah Kejuruan (SMK) Edisi 2004 dengan menggunakan pendekatan pembelajaran berbasis kompetensi (Competency Based Training/CBT). Diharapkan modul-modul ini digunakan sebagai sumber belajar pokok peserta pendidikan dan pelatihan (Diklat) Kejuruan khususnya SMK dalam mencapai standar kompetensi kerja yang diharapkan dunia kerja. Penyusunan modul dilakukan oleh para tenaga ahli kejuruan dibidangnya terdiri atas para Guru SMK, para Widyaiswara Pusat Pengembangan Penataran Guru (PPPG) lingkup Kejuruan dengan para nara sumber dari berbagai perguruan Tinggi, para praktisi Balai Latihan dan Pengembangan Teknologi (BLPT) dan

Modul DTA.OPR.119.(2).A

i

unsure dunia usaha dan industri (DU/DI), dan berbagai sumber referensi yang digunakan baik dari dalam dan luar negri. Modul dilakukan melalui beberapa tahap pengerjaan termasuk validasi dan uji coba kepada para peserta Diklat/Siswa di beberapa SMK. Sesuai perkembangan paradigma yang selalu terjadi, Direktorat Pembinaan Sekolah Menengah Kejuruan Direktorat Jenderal Manajemen Pendidikan Dasar dan Menengah beserta para penulis dan unsure terlibat, menerima masukan-masukan konstruktif dari berbagai pihak khususnya para praktisi dunia usaha dan industri, para akademis, dan para psikologis untuk dihasilkannya Sumber Daya Manusia (SDM) tingkat menengah yang handal. Pada kesempatan baik ini kami sampaikan ucapan terima kasih dan penghargaan sebesar-besarnya kepada berbagai pihak terutama tim penyusun modul, para nara sumber dan fasilitator, serta para editor atas dedikasi dan pengorbanan waktu, tenaga, dan pemikiran untuk dihasilkannya modul ini. Semoga modul ini bermanfaat bagi kita semua, khususnya peserta Diklat SMK atau praktisi yang sedang mengembangkan bahan ajar modul SMK. Jakarta, Desember 2005 a.n. Direktur Jenderal Manajemen Pendidikan Dasar dan Menengah Direktur Pembinaan Sekolah Menengah Kejuruan

Dr. Joko Sutrisno, MM NIP 131415680

Modul DTA.OPR.119.(2).A

ii

DAFTAR ISI MODULKATA PENGANTAR ............................................................................... DAFTAR ISI ......................................................................................... PETA KEDUDUKAN MODUL ................................................................... MEKANISME PEMELAJARAN ................................................................... PERISTILAHAN/ GLOSSARY .................................................................. BAB. I PENDAHULUAN .................................................................... i iii vi viii ix 1 1 1 6 6 7 7 8 10 11 11 11 11 11 12 47 48 48 50 51 51

A. DESKRIPSI JUDUL ..................................................................... B. PRASYARAT ................................................................................ C. PETUNJUK PENGGUNAAN MODUL .............................................. 1. Petunjuk bagi Peserta Diklat .................................................. 2. Peran Guru .......................................................................... D. TUJUAN AKHIR ........................................................................... E. KOMPETENSI ............................................................................. F. CEK KEMAMPUAN ....................................................................... BAB. II PEMELAJARAN .................................................................... A. RENCANA PEMELAJARAN ................................................... B. KEGIATAN BELAJAR .......................................................... Kegiatan Belajar 1. Memahami spesifikasi query data dan Menerapkan pembuatan query data ......... a. Tujuan Kegiatan Pemelajaran .................................................. b. Uraian Materi ......................................................................... c. Rangkuman ........................................................................... d. Tugas.................................................................................... e. Tes Formatif .......................................................................... f. Kunci Jawaban Formatif .......................................................... g. Lembar Kerja ......................................................................... h. Langkah Kerja ........................................................................

Modul DTA.OPR.119.(2).A

iii

KEGIATAN BELAJAR 2. Mempersiapkan Aplikasi Pembuat Query Data ................................................ a. Tujuan Kegiatan Pemelajaran .................................................. b. Uraian Materi ......................................................................... c. Rangkuman ........................................................................... d. Tugas.................................................................................... e. Tes Formatif .......................................................................... f. Kunci Jawaban Formatif .......................................................... g. Lembar Kerja ......................................................................... h. Langkah Kerja ........................................................................ dengan Spesifikasi Query Data........ a. Tujuan Kegiatan Pemelajaran .................................................. b. Uraian Materi ......................................................................... c. Rangkuman ........................................................................... d. Tugas.................................................................................... e. Tes Formatif .......................................................................... f. Kunci Jawaban Formatif .......................................................... g. Lembar Kerja ........................................................................ h. Langkah Kerja ........................................................................ Query Data .................................... a. Tujuan Kegiatan Pemelajaran .................................................. b. Uraian Materi ......................................................................... c. Rangkuman ........................................................................... d. Tugas.................................................................................... e. Tes Formatif .......................................................................... f. Kunci Jawaban Formatif .......................................................... g. Lembar Kerja ......................................................................... h. Langkah Kerja ........................................................................ BAB. III EVALUASI ............................................................................ 53 53 53 68 69 69 71 73 73 74 74 74 87 88 88 89 90 90 91 91 91 95 95 95 97 97 98 99 iv

KEGIATAN BELAJAR 3. Membuat Query pada Aplikasi Query sesuai

KEGIATAN BELAJAR 4. Memeriksa dan Membuat Laporan Hasil

Modul DTA.OPR.119.(2).A

A. PERTANYAAN ........................................................................... B. KUNCI JAWABAN ...................................................................... C. KRITERIA PENILAIAN................................................................ BAB. IV PENUTUP ............................................................................. DAFTAR PUSTAKA..............................................................................

99 101 104 105 106

Modul DTA.OPR.119.(2).A

v

PETA KEDUDUKAN MODULStand Alone Programmer ISLTP & yang sederajat

Multi User Programmer

Web Programmer

A

1

H

2

R

3

B

I

S

C

J

T

D

K

U

E

L

F

M

G

N

O

P

Q

Modul DTA.OPR.119.(2).A

vi

Keterangan :

Kode A B C D E F G H I J K L M N O P Q R S T U

Kode Kompetensi SWR.OPR.100.(1).A SWR.OPR.200.(1).A SWR.MNT.100.(1).A SWR.DEV.100.(1).A SWR.OPR.309.(1).A DTA.OPR.115.(1).A SWR.DEV.500.(1).A HDW.OPR.103.(1).A HDW.OPR.104.(1).A DTA.DEV.101.(3).A SWR.DEV.300.(2).A SWR.DEV.400.(2).A DTA.MNT.101.(2).A DTA.MNT.102.(2).A SWR.OPR.303.(2).A DTA.OPR.119.(2).A SWR.DEV.500.(2).A SWR.DEV.401.(2).A SWR.DEV.402.(3).A SWR.OPR.304.(3).A SWR.DEV.403.(2).A

Kompetensi Mengoperasikan Sistem Operasi Menginstalasi software Mengubah konfigurasi software Menyiapkan dan melakukan survey untuk menentukan kebutuhan data Mengoperasikan software bahasa pemograman level 1 Konversi data level 1 Menguji program level 1 Mengoperasikan sistem operasi jaringan komputer berbasis teks Mengoperasikan sistem operasi jaringan komputer berbasis GUI Melakukan perancangan pengumpulan data Melakukan desain dan perancangan software Melakukan pengkodean program Melakukan back up data Melakukan restore data Mengoperasikan software aplikasi basis data Membuat query data Menguji program Membangun interface dengan bahasa pemograman berorientasi objek Melakukan pengkodean program Mengoperasikan bahasa pemograman berbasis web Membangun program aplikasi remote data interaktif

Modul DTA.OPR.119.(2).A

vii

MEKANISME PEMELAJARANUntuk mencapai penguasaan modul ini dilakukan melalui alur mekanisme pemelajaran sebagai berikut: START

Lihat Kedudukan Modul

Lihat Petunjuk Penggunaan Modul

Kerjakan Cek Kemampuan

Nilai 7 T Kegiatan Belajar 1

Y

Kegiatan Belajar n

Kerjakan Evaluasi

T

Nilai 7

Y

Modul berikutnya/Uji Kompetensi

Modul DTA.OPR.119.(2).A

viii

GLOSARYDatabase Table MySQL ODBC MyODBC Local Client Remote Client: (basis data) secara sederhana bisa disebut sebagai kumpulan dari tabel. : merupakan kumpulan atribut atau entitas. Atribut atribut dalam suatu entitas disebut field : Software Server Basis Data yang bersifat terbuka dikembangkan dan gratis mendapatkannya : Open Database Connectivity Driver yang berfungsi dengan database : Open Database Connectivity dengan 32 Bit yang membuat hubungan antara program aplikasi dengan database MySQL : Dapat berpungsi sebagai client yang dijalankan pada komputer local. : Diakses melalui komputer jaringan dengan cara remot, dengan menggunakan program client yang berjalan sesuai dengan OS yang dipakai, seperti Putty, telnet, Psftp dan sebagainya.

Remote Login DSN

: Dapat diakses dengan menggunakan program MySQL yang berada pada komputer lain. : Database Source Name, nama alias untuk database yang dikoneksikan

Modul DTA.OPR.119.(2).A

ix

BAB. I PENDAHULUANA. DESKRIPSI JUDUL

Membuat query data merupakan modul teori dan praktikum yang berisiinstruksi atau perintah-perintah dalam bahasa SQL (Structure Query Language) yang dapat dijalankan baik dengan modus text maupun Gui. Pada proses pembuatan query data lebih menekankan pada penggunaan bahasa SQL dengan pembahasan data retrieval (pencarian data). Modul ini terdiri dari 4 (empat) kegiatan belajar. Kegiatan belajar 1 berisi tentang Memahami spesifikasi query data dan menerapkan pembuatan query data. Kegiatan Belajar 2 berisi tentang Mempersiapkan aplikasi pembuat query data. Kegiatan Belajar 3 berisi tentang Membuat query data pada aplikasi query sesuai dengan spesifikasi query data. Kegiatan Belajar 4 berisi tentang Memeriksa dan Membuat Laporan hasil query data. Setelah menguasai modul ini diharapkan peserta diklat memahami spesifikasi query data dan mampu menerapkan pembuatan query data, mampu mempersiapkan aplikasi pembuat query data, mampu membuat query data sekaligus mampu memeriksa dan membuat laporan hasil dari query data. Modul ini terkait dengan modul lain yang membahas tentang Mengoperasikan software aplikasi basis data, Melakukan Restore data, Melakukan back up data. B. PRASYARAT Modul Membuat query data memerlukan persyaratan yang harus dimiliki oleh peserta diklat, yaitu peserta diklat telah kompeten dalam Mengoperasikan software aplikasi basis data, Melakukan Restore data, Melakukan back up data. Database yang dipakai untuk pemelajaran modul ini adalah database PSB, sedangkan tabel yang ada pada database PSB antara lain: tabel siswa, tabel sltp dan tabel prg_ahli.

Modul DTA.OPR.119.(2).A

1

Silahkan bangun terlebih dahulu database PSB dengan tabel-tabel yang ada di dalamnya, sesuai dengan kondisi lab yang ada. Struktur tabel siswa+-----------+--------------+------+-----+------------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+------------+-------+ | nodaf | varchar(8) | | PRI | 0 | | | nama | varchar(30) | | | 0 | | | l_p | char(1) | | | 0 | | | tmp_lahir | varchar(25) | | | 0 | | | tgl_lahir | date | | | 0000-00-00 | | | kd_sltp | char(1) | | | | | | nama_sltp | varchar(25) | | | | | | pil_prg1 | char(1) | | | | | | pil_prg2 | char(1) | | | | | | bind | decimal(5,2) | | | 0.00 | | | bing | decimal(5,2) | | | 0.00 | | | matika | decimal(5,2) | | | 0.00 | | | total | decimal(5,2) | | | 0.00 | | | hasil | varchar(25) | | | | | | pilihan | varchar(1) | | | | | +-----------+--------------+------+-----+------------+-------+

Struktur tabel sltp+-------------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------+------+-----+---------+-------+ | kd_sltp | char(1) | | PRI | 0 | | | status_sltp | varchar(4) | | | 0 | | +-------------+------------+------+-----+---------+-------+

Struktur tabel prg_ahli+----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | kd_prg | char(1) | | PRI | 0 | | | prg_ahli | varchar(25) | | | 0 | | +----------+-------------+------+-----+---------+-------+

Masukan data-data di bawah ini ke dalam tabel siswa pada database psb:nodaf 31100366 31100109 31100320 31100116 31100535 31100014 31100017 31100023 31100043 31100046 nama IRMA SAHARA TINTIN WINARTI RATIH HERMAWATI RISNA NOVIANTI SITI NURHAYATI SUCU APRILIA NENDAH NERVINA MAESAROH DIAN RISSA HERDIANTI DESI SUSANTI ENDANG SUSILAWATI l_p P P P P P P P P P P tmp_lahir BANDUNG BANDUNG CIMAHI BANDUNG BANDUNG BANDUNG BANDUNG BANDUNG BANDUNG BANDUNG tgl_lahir 1990-02-17 1990-07-15 1990-04-16 1990-02-14 1990-05-08 1989-04-29 1990-01-06 1991-03-29 1990-04-28 1990-05-07

Modul DTA.OPR.119.(2).A

2

nodaf 31100172 31100199 31100259 31100287 31100337 31100455 31100117 31100145 31100312 31100342 31100480 31100508 31100057 31100234 31100248 31100249 31100261 31100013 31100047 31100049 31100050 31100078 31100217 31100299 31100221 31100231 31100003 31100006 31100031 31100034 31100037 31100038 31100041 31100063 31100093 31100100 31100155 31100159 31100223 31100113 31100124 31100152 31100157 31100370 31100390 31100522 31100523 31100524 31100036 31100138 31100191 31100230 31100316

nama LITA KURNIA DEWI WINDA WULANDARI LISNA SUCITRA FENI ELTIKA RUHAYNIAYAH DINAR HAPLANI PITRIYANI IRMA DAMAYANTI DEVI YANTI NURAENI ANA MARYANA SIREGAR SITI NURHAMIDAH YULIANI RINA PUSPITA SARI DEVI MULYATI IKA RAHAYU NILAWATI HENDARSIH FAUZIAH FAZRIN SILVA HAPPI SUKMAWATI HILDA IHDAWATI SITI MASITOH RIMA MELATI CIKAL DASILVA HANAFI HANUM EKA OCTAVIYANTI ULTAM MUSTIKA RJU YESSI DEA PRATINA WIDI AMBAR LESTARI SITI ROKAYAH AGUSTIN HUSRI NUNI NENENG YULIANTI AI SISKA FITRIYANTI HERLINA TINENGSIH RENA SITI SOLIHAT YANI WARISMA NURHAYANI LINDA HERDIANA SISKA JULIANAWATI RIZKI KURNIAWAN DERRY RIZKINATA FITRI FATMAWATI IRMA YULIANA YULIAWATI CHYNTIA PUTRI GUSTINIAWATI PRISKA NUR FAUZIAH LISTI NURDINI PIYAN SALAMAH ANSHAH RIDHWAN MUQTADIR IQBAL KURNIA FADHLI ONA OKTASARI SRI EKA KUMALA SARI NUR TARWILAH YANTI MARIANTI DIAN MULYANI CUCU WIDIA YUNENGSIH

l_p P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P L L P P P P P P P L L P P P P P P

tmp_lahir BANDUNG CIMAHI SUMEDANG CIMAHI CIMAHI BANDUNG CILILIN SOREANG BANDUNG BANDUNG BANDUNG BANDUNG BANDUNG CILILIN BANDUNG BANDUNG TASIKMALAYA BANDUNG CIMAHI BANDUNG BANDUNG BANDUNG CIMAHI CIMAHI BANDUNG BANDUNG BANDUNG BANDUNG NGAMPRAH GARUT BATUJAJAR BANDUNG BANDUNG CIMAHI BANDUNG BANDUNG CIMAHI BANDUNG BANDUNG BANDUNG BANDUNG BANDUNG GARUT JAKARTA BANDUNG BANDUNG BANDUNG PANGKAL PINANG BANDUNG CIMAHI SUMEDANG BANDUNG BANDUNG

tgl_lahir 1989-12-31 1991-01-14 1989-11-24 1990-03-05 1990-03-09 1990-01-17 1990-04-28 1989-07-18 1990-10-10 1988-11-30 1989-12-12 1990-07-30 1990-02-07 1989-07-31 1990-05-26 1989-12-15 1990-02-20 1989-12-02 1991-01-04 1990-02-12 1990-07-16 1990-10-28 1990-10-25 1989-12-29 1990-08-23 1989-10-30 1990-09-21 1990-08-19 1989-08-11 1990-03-15 1990-07-02 1990-01-25 1989-11-05 1990-01-21 1990-01-23 1990-03-23 1990-05-10 1988-12-19 1990-05-04 1989-07-19 1990-06-25 1990-08-14 1990-04-25 1990-05-05 1989-08-10 1990-12-17 1989-11-05 1990-10-09 1990-02-14 1989-10-11 1989-10-28 1989-10-15 1989-03-25

Modul DTA.OPR.119.(2).A

3

nodaf 31100087 31100229 31100244 31100245 31100246 31100274 31100293 31100025 31100052 31100055 31100072 31100075 31100004 31100005 31100007 31100008 31100009 31100015

nama NUNUNG HAMIDAH FINI HUNDAYANI ZAHRA IIS SOLIHAT HESTI KUSMIATI MARLINA FITRIA AYUNITA RESA JULIAN PRATIWI SITI PERTIWI SITI NURLELA SRI WAHYUNI POPPY RAMDASARI DIAN RATNA WULAN EVY OKTAVIANI RIKA FITRIA MARYANI LIA SONJAYA YATI MARYATI HENHENI SETIANI

l_p P P P P P P P P P P P P P P P P P P

tmp_lahir GARUT CIMAHI BANDUNG CIMAHI CIMAHI PADANG CIMAHI BANDUNG BANDUNG BANDUNG BANDUNG BANDUNG PADALARANG BANDUNG BANDUNG BANDUNG CIPATAT BANDUNG

tgl_lahir 1990-08-12 1990-02-15 1990-10-08 1990-06-29 1990-03-08 1989-06-27 1990-07-22 1990-10-02 1989-05-09 1989-12-24 1990-07-01 1990-09-09 1990-10-09 1990-04-02 1990-06-25 1989-06-28 1989-08-16 1990-09-22

kd_sltp 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 4 1 1 1 1 1 2 2 2 2 2

Nm_sltp 1 CIMAHI 3 PADALARANG 1 CILILIN 1 PADALARANG 2 IBUN PGRI 1 PADALARANG MUTIARA 1 BANDUNG MUTIARA 1 BANDUNG PASUNDAN 2 CIMAHI PASUNDAN 2 CIMAHI SUKASARI CIMAHI SUKASARI CIMAHI SUKASARI CIMAHI SUKASARI CIMAHI SUKASARI CIMAHI 1 BANDUNG AL-ISTIQOMAH "MA" PAMEUNTASAN AZ-AZHRA PARONGPONG MA PAMEUNTASAN AT TAUFIQ ALBIDAYAH 2 PADALARANG 1 MARGAASIH 21 BANDUNG 21 BANDUNG 1 BATUJAJAR MUTIARA 1 BANDUNG PGRI 3 CIMAHI PASUNDAN 2 CIMAHI PASUNDAN 2 CIMAHI PASUNDAN 5 BANDUNG

pil_prg1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2

pil_prg2 4 2 2 4 4 4 4 2 4 4 2 4 4 4 4 2 2 4 4 2 4 4 4 1 1 1 4 4 1 4 4 4

bind 9.33 9.33 8.17 8.5 8.17 7.17 7.83 7.67 8.33 8.5 7.00 7.00 7.00 6.5 8.67 5.67 8.33 8.00 7.17 8.00 7.17 5.67 7.5 7.17 7.00 8.75 7.5 6.67 5.83 5.00 8.17 5.5

bing 8.00 8.33 8.17 9.17 8.5 6.17 7.83 6.17 8.33 8.00 5.33 8.17 8.5 6.67 8.5 6.33 8.33 8.33 7.67 7.33 7.33 5.67 6.5 7.17 5.5 3.75 8.33 6.5 4.5 8.17 7.67 7.00

matika 9.67 9.33 9.67 10.00 9.67 4.67 4.67 5.33 8.33 8.00 6.00 7.00 7.67 6.33 8.33 6.33 7.33 8.67 7.67 8.67 8.33 5.67 5.00 9.33 4.8 5.2 6.67 4.67 4.67 8.67 8.33 6.00

Modul DTA.OPR.119.(2).A

4

kd_sltp 3 3 4 4 1 1 1 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 3 2 2 2 2 2 1 1 1 1 1 1

Nm_sltp SUKASARI CIMAHI SUKASARI CIMAHI AL-ISTIQOMAH AL-ISTIQOMAH 2 PADALARANG 1 BATUJAJAR 1 PADALARANG 10 BANDUNG 1 BATUJAJAR 1 PADALARANG 1 PADALARANG 8 CIMAHI PASUNDAN 4 PASUNDAN 7 BANDUNG WIYATABHAKTI MUTIARA 4 BANDUNG PASUNDAN 7 BANDUNG RONGGA CIKALONGWETAN SUKASARI CIMAHI SUKASARI CIMAHI SUKANAGARA CIANJUR AL-MUKHTARIYAH ZAKARIA ISLAM ZAKARIA ASY-SYARIFIYYAH AL-ISTIQOMAH FATAHILLAH CIMAHI AL ISLAM BANDUNG AL ISLAM BANDUNG AL - AMANAH SUKASARI CIMAHI SUKASARI CIMAHI SUKASARI CIMAHI SUKASARI CIMAHI SUKASARI CIMAHI SUKASARI CIMAHI SUKASARI CIMAHI PGRI 1 PADALARANG PASUNDAN 2 CIMAHI PASUNDAN 2 CIMAHI PASUNDAN 5 BANDUNG PASUNDAN 2 CIMAHI 1 PADALARANG 1 PADALARANG 1 PADALARANG 1 PADALARANG 1 CIPATAT 1 PADALARANG

pil_prg1 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

pil_prg2 4 1 4 1 3 3 3 3 4 1 3 3 3 1 1 3 3 3 3 3 3 3 3 3 3 3 1 1 1 1 2 2 1 1 2 1 1 1 1 2 2 2 2 1 1 1 1 2 1

bind 8.67 5.83 6.5 7.33 7.67 8.00 9.00 7.17 7.5 7.83 7.17 7.33 7.00 6.83 6.33 7.00 6.17 6.17 7.67 6.83 5.83 5.83 6.5 7.67 7.17 5.17 7.00 8.33 7.00 7.00 7.5 6.67 6.00 7.5 7.33 6.83 6.67 6.83 6.67 8.00 7.5 6.00 7.5 8.5 8.00 8.83 6.83 8.5 8.5

bing 8.83 5.83 6.67 8.5 8.33 6.00 9.33 7.17 7.3 8.67 7.83 7.00 7.17 7.00 7.83 6.17 5.33 5.33 7.5 8.33 7.5 7.67 5.33 8.33 8.5 6.33 9.00 8.00 6.33 7.5 6.67 8.67 8.5 6.17 8.67 8.17 7.83 7.00 5.00 8.5 8.00 7.00 8.67 7.83 6.5 8.17 8.00 7.17 7.83

matika 7.3 7.67 8.00 7.33 8.33 6.00 8.00 5.00 6.67 8.33 6.67 6.00 5.33 5.33 8.33 5.00 5.33 6.67 7.00 7.67 7.33 6.33 6.00 8.00 9.67 6.00 8.00 7.67 6.00 5.67 6.67 7.00 7.67 9.33 8.67 8.67 6.00 7.67 4.67 8.33 8.00 5.33 8.00 7.00 7.67 7.67 8.00 8.33 8.33

Modul DTA.OPR.119.(2).A

5

Isi kolom total dengan nilai bind+bing*3+matika*4 Masukan data- data di bawah ini ke dalam tabel sltp pada database psb:kd_sltp 1 2 3 4 status_sltp SMPN SMPS MTsN MTsS

Masukan data-data di bawah ini ke dalam tabel prg_ahli pada database psb:kd_prg 1 2 3 4 prg_ahli Akuntansi Penjualan Rekayasa Perangkat Lunak Administrasi Perkantoran

C. PETUNJUK PENGGUNAAN MODUL 1. Petunjuk bagi Peserta Diklat Peserta diklat diharapkan dapat berperan aktif dan berinteraksi dengan sumber belajar yang dapat digunakan, karena itu harus memperhatikan hal-hal sebagai berikut: a. Langkah-langkah belajar yang ditempuh 1) Persiapkan alat dan bahan! 2) Bacalah dengan seksama uraian materi pada setiap kegiatan belajar! 3) Cermatilah langkah-langkah kerja pada setiap kegiatan belajar sebelum mengerjakan, bila belum jelas tanyakan pada instruktur! 4) Kembalikan semua peralatan praktik yang digunakan! b. Perlengkapan yang Harus Dipersiapkan Guna menunjang keselamatan dan kelancaran tugas/ pekerjaan yang harus dilakukan, maka persiapkanlah seluruh perlengkapan yang diperlukan, pelajarilah terlebih dahulu modul ini dan buku-buku yang menunjang. c. Hasil Pelatihan Peserta diklat mampu melakukan tugas:

Modul DTA.OPR.119.(2).A

6

1) memahami spesifikasi query data dan menerapkan pembuatan query data. 2) mempersiapkan aplikasi pembuat query data 3) membuat query data pada aplikasi query sesuai dengan spesifikasi query data 4) memeriksa hasil query data 5) membuat laporan hasil query data 6) Memahami syntax untuk menghasilkan query data 7) Menampilkan data dengan kondisi tertentu 8) Mengerjakan query data pada modus text 9) Mengerjakan query data pada modus GUI 2. Peran Guru Guru yang akan mengajarkan modul ini hendaknya mempersiapkan diri sebaik-baiknya yaitu mencakup aspek strategi pemelajaran, penguasaan materi, pemilihan metode, alat bantu media pemelajaran dan perangkat evaluasi. Guru harus menyiapkan rancangan strategi pemelajaran yang mampu mewujudkan peserta diklat terlibat aktif dalam proses pencapaian/ penguasaan kompetensi yang telah diprogramkan. Penyusunan rancangan strategi pemelajaran mengacu pada kriteria unjuk kerja (KUK) pada setiap sub kompetensi yang ada dalam GBPP. D. TUJUAN AKHIR Peserta diklat dapat membuat query data untuk dapat menampilkan sesuai dengan target yang telah ditetapkan. data

Modul DTA.OPR.119.(2).A

7

E. KOMPETENSILingkup Sub Kriteria Materi Pokok Pemelajaran Belajar Sikap Pengetahuan Ketrampilan Kompetensi Unjuk Kerja 1 2 3 4 5 6 1. Memaha Spesifikasi Bahasa Meneran Menunjukan Mengguna mi fungsi query kan fungsi query data pemrogra gkan spesifika data dan prosedur man dapat si query operator pembuat (misal: dijelaskan pascal, data dan algoritma an query sesuai menerap pemrogra basic,dsb) data dengan kan man dalam aturan query pembuat pembuatan data an query Prosedur query data data pembuatan query pada aplikasi pembuat query data dapat diaplikasikan sesuai dengan Instructional Manual aplikasi pembuat query data

2. Memper siapkan aplikasi pembuat query data

Perlengkapan Bahasa pemrokerja graman diidentifikasi (misal: sesuai pascal, dengan basic, kebutuhan dsb) aplikasi pembuat query data beroperasi sesuai dengan standar operasi aplikasi Otoritas pembuatan query data diterima (login diterima) Bahasa proses pemropembuatan graman pembuatan query data (misal: pascal, dilakukan basic, sesuai

Mengikuti SOP dalam mempersiapkan

Menjelaskan fungsi software bahasa pemrograman pembuat untuk an query pembuatan data query data

Mengidentif ikasi kebutusan software bahasa pemrogram an untuk pembuatan query data

3. Membuat query data pada aplikasi query sesuai dengan spesifikasi

Mengidentifi MemprakDisiplin kasi langkah- tekkan dalam langkah pembuatan mengikupengoperasi program ti SOP an software dengan bahasa bahasa

Modul DTA.OPR.119.(2).A

8

query data

4. Memeriksa hasil dan Membuat Laporan Hasil query data

dengan dsb) standar operasi aplikasi pembuat query data Query data Bahasa pemrodijalankan graman sesuai (misal: dengan pascal, standar basic, operasi dsb) aplikasi tanpa ada kesalahan Data ditampilkan sesuai dengan spesifikasi query data Laporan dibuat sesuai dengan format dan prosedur / intruksi kerja yang ditetapkan oleh perusahaan

pemrograman

pemrogra man

Teliti dan memperband memvalida ingkan query si query cermat data yang data yang dalam dihasilkan memeriks dihasilkan a validasi Mengidentifi Memprakte kasi langkah- kkan data langkah pembuatan pembuatan query data Disiplin query data dengan dalam bahasa mengikut pemrogra i SOP man

Tabel 1 Kompetensi

Modul DTA.OPR.119.(2).A

9

F. CEK KEMAMPUAN Isilah cek list () seperti pada tabel di bawah ini dengan sikap jujur dan dapat dipertanggung jawabkan untuk mengetahui kemampuan awal yang telah dimiliki.Saya dapat Melakukan Pekerjaan ini dengan Kompeten Ya Tidak Bila Jawaban Ya Kerjakan

Kompetensi

Pernyataan

1. Memahami spesifikasi query data dan menerapkan pembuatan query data 2. Mempersiapkan aplikasi pembuat query data 3. Membuat query data pada aplikasi query sesuai dengan spesifikasi query data 4. Memeriksa dan Membuat Laporan hasil query data

1. Menjelaskan

spesifikasi query data sesuai dengan aturan query data

Tes Formatif 1

2. Mampu

mempersiapkan aplikasi pembuat query data query dengan pada aplikasi query sesuai dengan spesifikasi query data memeriksa dan Membuat Laporan hasil query data

Tes Formatif 2

3. Membuat

Tes Formatif 3

4. Mampu

Tes Formatif 4

Tabel 2 Cek Kemampuan

Apabila anda menjawab TIDAK pada salah satu pernyataan di atas, maka pelajarilah modul ini.

Modul DTA.OPR.119.(2).A

10

BAB. II PEMELAJARANA. RENCANA PEMELAJARAN KompetensiJenis Kegiatan 1. Memahami spesifikasi query data dan menerapkan pembuatan query data 2. Mempersiapkan aplikasi pembuat query data 3. Membuat query data pada aplikasi query sesuai dengan spesifikasi query data 4. 4. Memeriksa dan Membuat laporan hasil query data

: Membuat Query DataTanggal Waktu Tempat Belajar Alasan Perubahan Tanda Tangan Guru

B. KEGIATAN BELAJAR Kegiatan Belajar 1. Memahami Spesifikasi Query Data dan Menerapkan Pembuatan Query Data a. Tujuan Kegiatan Pemelajaran Setelah melaksanakan kegiatan pemelajaran modul ini diharapkan peserta diklat dapat Memahami spesifikasi query data dan menerapkan pembuatan

query data.

Modul DTA.OPR.119.(2).A

11

b. Uraian Materi SQL adalah sebuah bahasa permintaan database yang tersetruktur.

Bahasa SQL dibuat sebagai bahasa alternatif yang dapat merelisasikan beberapa tabel dalam database. Bahasa SQL ditulis langsung dalam sebuah program database sehingga seorang pengguna dapat melihat langsung permintaan yang diinginkan, sekaligus melihat hasilnya. Kaitannya dengan MySQL ialah bahwa MySQL merupakan sebuah program database server yang memerlukan sebuah bahasa permintaan dalam melayani user, SQL lah bahasa permintaan yang dipakai dalam MySQL. Batasan Pembahasan Query Data adalah istilah yang populer dalam pemrograman database untuk ruang lingkup permintaan data atau perncarian dan pemilahan data yang dijalankan dengan perintah SELECT. Dengan perintah Select Tabel-tabel dalam suatu database dapat dikaitkan atau direlasikan antara tabel yang satu dengan tabel lainnya. Hasil dari permintaan dengan perintah select dapat langsung diketahui oleh pengguna database tersebut. Syntax Penulisan pernyataan SELECTSELECT [DISTINCT | DISTINCTROW | ALL] kolom1, kolom2, kolom n FROM nama_tabel ; Atau SELECT * FROM nama_tabel ; Atau SELECT nama_field FROM nama_tabel [WHERE kondisi];

Perintah SELECT adalah perintah untuk mengambil dan menampilkan data dari tabel. Dengan SELECT kita dapat melakukan: Projection Menampilkan data tabel berdasarkan kolom yang diinginkan Selection Menampilkan data tabel berdasarkan baris yang diinginkan Join Table Menampilkan data dari dua tabel atau lebih Modul DTA.OPR.119.(2).A 12

Perintah SELECT harus memiliki kriteria sebagai berikut: Keyword SELECT, untuk menentukan kolom-kolom yang akan ditampilkan Keyword FROM untuk menentukan ditabel mana kolom-kolom pada SELECT statement itu berada. 1. Menampilkan semua Kolom Untuk Menampilkan semua kolom (field) dapat dilakukan dengan 2 (dua) cara: pertama dengan menuliskan semua nama kolom yang terdapat dalam tabel tersebut dengan aturan penulisan pemisah nama kolom yang satu dengan kolom lainnya dipisahkan oleh tanda koma(,), tapi cara ini jarang dipakai. Sedangkan cara kedua yaitu; nama semua kolom dalam tabel dapat digantikan dengan lambang bintang (*). Contoh: Menampilkan semua kolom (field) dari tabel siswa

Gambar 1-1 hasil dari:

SELECT * FROM siswa;

Modul DTA.OPR.119.(2).A

13

Menampilkan semua kolom dari tabel siswa dengan syarat data yang ditampilkan adalah pendaftar yang berusia 17 tahun atau lebih.

Gambar 1-2 hasil dari: SELECT * FROM SISWA WHERE YEAR(CURRENT_DATE())-YEAR(TGL_LAHIR)>16;

2. Menampilkan Kolom Tertentu Perintah SELECT dapat juga menampilkan kolom (field) tertentu dalam suatu tabel dengan menuliskan nama kolom setelah pernyataan SELECT. Pakai koma(,) sebagai pemisah kolom yang satu dengan kolom lainnya. Contoh: Menampilkan kolom Bandung dan Cimahi. nama, tempat lahir, total nilai dari tabel siswa dengan data yang ditampilkan adalah tempat kelahiran selain di Kota

Modul DTA.OPR.119.(2).A

14

mysql> SELECT NAMA,TMP_LAHIR,TOTAL AS "NILAI TOTAL" -> FROM SISWA WHERE TMP_LAHIR !='BANDUNG' AND -> TMP_LAHIR !='CIMAHI'; +---------------------+----------------+-------------+ | NAMA | TMP_LAHIR | NILAI TOTAL | +---------------------+----------------+-------------+ | LISNA SUCITRA | SUMEDANG | 63.18 | | PITRIYANI | CILILIN | 62.64 | | IRMA DAMAYANTI | SOREANG | 67.67 | | DEVI MULYATI | CILILIN | 66.00 | | FAUZIAH FAZRIN | TASIKMALAYA | 59.17 | | NENENG YULIANTI | NGAMPRAH | 68.99 | | AI SISKA FITRIYANTI | GARUT | 48.68 | | HERLINA TINENGSIH | BATUJAJAR | 56.08 | | PRISKA NUR FAUZIAH | GARUT | 57.65 | | LISTI NURDINI | JAKARTA | 54.16 | | ONA OKTASARI | PANGKAL PINANG | 48.16 | | YANTI MARIANTI | SUMEDANG | 49.99 | | NUNUNG HAMIDAH | GARUT | 60.68 | | FITRIA AYUNITA | PADANG | 54.16 | | EVY OKTAVIANI | PADALARANG | 59.99 | | YATI MARYATI | CIPATAT | 63.33 | +---------------------+----------------+-------------+ 16 rows in set (0.07 sec)Gambar 1-3 hasil dari: FROM SISWA SELECT NODAF,NAMA,TMP_LAHIR,TOTAL AS TOTAL NILAI WHERE TMP_LAHIR !=BANDUNG AND TMP_LAHIR !=CIMAHI;

Atau bisa juga dengan syntax seperti : SELECT NODAF,NAMA,TMP_LAHIR,TOTAL AS TOTAL NILAI FROM SISWA WHERE TMP_LAHIR !=BANDUNG && TMP_LAHIR !=CIMAHI; Atau: SELECT NODAF,NAMA,TMP_LAHIR,TOTAL AS TOTAL NILAI FROM SISWA WHERE TMP_LAHIR BANDUNG && TMP_LAHIR CIMAHI;

Operator AritmatikaOperasi * / + Keterangan

Perkalian Pembagian Penjumlahan Pengurangan Tabel 1-1 Operasi dalam Matematika

Contoh: Tampilkan data dari table siswa: NAMA PENDAFTAR, NILAI TOTAL, RATA-RATA Pembobotan dari table siswa, yang dipilih adalah siswa yang memilih program RPL.

Modul DTA.OPR.119.(2).A

15

mysql> SELECT NAMA AS "NAMA PENDAFTAR",TOTAL -> AS "NILAI TOTAL",ROUND(TOTAL/8,2) AS "RATA-RATA" -> FROM SISWA WHERE PIL_PRG1='3'; +----------------------------+-------------+-----------+ | NAMA PENDAFTAR | NILAI TOTAL | RATA-RATA | +----------------------------+-------------+-----------+ | SITI ROKAYAH | 65.98 | 8.25 | | AGUSTIN HUSRI NUNI | 50.00 | 6.25 | | NENENG YULIANTI | 68.99 | 8.62 | | AI SISKA FITRIYANTI | 48.68 | 6.08 | | HERLINA TINENGSIH | 56.08 | 7.01 | | RENA SITI SOLIHAT | 67.16 | 8.39 | | YANI WARISMA | 57.34 | 7.17 | | NURHAYANI | 52.33 | 6.54 | | LINDA HERDIANA | 49.83 | 6.23 | | SISKA JULIANAWATI | 49.15 | 6.14 | | RIZKI KURNIAWAN | 63.14 | 7.89 | | DERRY RIZKINATA | 45.51 | 5.69 | | FITRI FATMAWATI | 43.48 | 5.43 | | IRMA YULIANA | 48.84 | 6.10 | | YULIAWATI | 58.17 | 7.27 | | CHYNTIA PUTRI GUSTINIAWATI | 62.50 | 7.81 | | PRISKA NUR FAUZIAH | 57.65 | 7.21 | | LISTI NURDINI | 54.16 | 6.77 | | PIYAN SALAMAH | 46.49 | 5.81 | | ANSHAH RIDHWAN MUQTADIR | 64.66 | 8.08 | | IQBAL KURNIA FADHLI | 71.35 | 8.92 | | ONA OKTASARI | 48.16 | 6.02 | +----------------------------+-------------+-----------+ 22 rows in set (0.43 sec)Gambar 1-4 hasil dari: SELECT NODAF,NAMA AS NAMA PENDAFTAR,TOTAL AS NILAI TOTAL, ROUND(TOTAL/8,2) AS RATA-RATA FROM SISWA WHERE PIL_PRG1=3;

Catatan

Pada tabel di atas, kolom Rata-rata bukanlah kolom baru yang terdapat pada tabel siswa, sebenarnya hanya tampilan hasil dari kalkulasi dari kolom total. Operator-operator aritmatika memiliki prioritas yang berbeda. Operator kali (*) dan bagi (/) memiliki prioritas yang lebih tinggi dibandingkan operator tambah (+) dan kurang(-) Operator yang memiliki prioritas yang sama dijalankan dari kiri ke kanan. Tanda kurung () digunakan untuk mengatur prioritas dari tiap-tiap operator.

Contoh: 100+2515*4-10/0.5 =

100+(2515)*4-10/0.5 = 100+2515*(410)/0.5 = 100+(2515)*(410)/0.5 =

Modul DTA.OPR.119.(2).A

16

mysql> SELECT 100+25-15*4-10/0.5 AS "HASIL 1", -> 100+(25-15)*4-10/0.5 AS "HASIL 2", -> 100+25-15*(4-10)/0.5 AS "HASIL 3", -> 100+(25-15)*(4-10)/0.5 AS "HASIL 4"; +---------+---------+---------+---------+ | HASIL 1 | HASIL 2 | HASIL 3 | HASIL 4 | +---------+---------+---------+---------+ | 45.000 | 120.000 | 305.000 | -20.000 | +---------+---------+---------+---------+ 1 row in set (0.00 sec)Gambar 1-5 Contoh Penggunaan Operator Aritmatika

Menggunakan Kolom Alias Kolom alias digunakan untuk mengubah tampilan nama judul kolom. Bila judul kolom lebih dari satu kata atau memiliki karakter khusus, maka judul kolom harus diberi tanda kutip ganda. Untuk menetapkan alias menggunakan keyword AS yang

digunakan untuk mendefinisikan kolom alias, tapi keyword AS tidak perlu selalu disertakan untuk mendefinisikan suatu alias kolom. Contoh: Lihat kembali gambar 4 3. Data Berulang dan Cara Menghilangkan Data Berulang Apa yang terjadi bila kita tampilkan data nama_sltp pada tabel siswa? Kita akan melihat data nama-nama sltp sebanyak 81 nama sltp, tetapi nama sltp tersebut banyak yang sama. Pertanyaan selanjutnya ada berapa sltp sebenarnya? Untuk dapat menjawab pertanyaan tersebut, kita dapat mengetahuinya dengan menggunakan keyword DISTINCT

Modul DTA.OPR.119.(2).A

17

mysql> SELECT DISTINCT CONCAT(SLTP.STATUS_SLTP, -> ' ',SISWA.NAMA_SLTP) AS "SEKOLAH ASAL" -> FROM SISWA,SLTP WHERE SISWA.KD_SLTP= -> SLTP.KD_SLTP; +--------------------------+ | SEKOLAH ASAL | +--------------------------+ | SMPN 1 CIMAHI | | SMPN 3 PADALARANG | | SMPN 1 CILILIN | | SMPN 1 PADALARANG | | SMPN 2 IBUN | | SMPN 2 PADALARANG | | SMPN 1 MARGAASIH | | SMPN 21 BANDUNG | | SMPN 1 BATUJAJAR | | SMPN 10 BANDUNG | | SMPN 8 CIMAHI | | SMPN 1 CIPATAT | | SMPS PGRI 1 PADALARANG | | SMPS MUTIARA 1 BANDUNG | | SMPS PASUNDAN 2 CIMAHI | | SMPS PGRI 3 CIMAHI | | SMPS PASUNDAN 5 BANDUNG | | SMPS PASUNDAN 4 | | SMPS PASUNDAN 7 BANDUNG | | SMPS WIYATABHAKTI | | SMPS MUTIARA 4 BANDUNG | | MTsN SUKASARI CIMAHI | | MTsN 1 BANDUNG | | MTsN RONGGA | | MTsN CIKALONGWETAN | | MTsN SUKANAGARA CIANJUR | | MTsS AL-ISTIQOMAH | | MTsS PAMEUNTASAN | | MTsS AZ-AZHRA PARONGPONG | | MTsS AT TAUFIQ | | MTsS ALBIDAYAH | | MTsS AL-MUKHTARIYAH | | MTsS ZAKARIA | | MTsS ASY-SYARIFIYYAH | | MTsS FATAHILLAH CIMAHI | | MTsS AL ISLAM BANDUNG | | MTsS AL - AMANAH | +--------------------------+ 37 rows in set (0.40 sec)Gambar 1-6 Contoh Penggunaan Keywoed DISTINCT

4. Menggunakan Klausa WHERE Klausa WHERE berguna untuk membatasi hasil penyeleksian data yang kita perlukan. Selain itu klausa ini merupakan klausa yang menjadi dasar beberapa klausa lain. Model klausa ini sering disebut dengan fungsi pembanding yang kemudian diikuti pernyataan perbandingan. Ada banyak manfaat dari penggunaan klausa ini, salah satunya untuk menyaring data dengan ketentuan yang diinginkan. Dalam sebuah query, klausa ini paling sering digunakan sehingga tidak ada alasan untuk kita abaikan manfaat penggunaan klausa ini.

Modul DTA.OPR.119.(2).A

18

Contoh penggunaan klausa ini secara tidak sadar sudah diberikan pada pembahasan di atas. a. Operator PerbandinganOperator = > >= < SELECT NODAF AS "NO PENDAFTARAN", -> NAMA AS "NAMA PENDAFTAR", -> TGL_LAHIR AS "TANGGAL LAHIR", -> YEAR(CURDATE())-YEAR(TGL_LAHIR) AS USIA -> FROM SISWA WHERE -> YEAR(CURDATE())-YEAR(TGL_LAHIR) > 16; +------------+--------------------+-----------+-----+ | NO | NAMA | TANGGAL |USIA | | PENDAFTARAN| PENDAFTAR | LAHIR | | +------------+--------------------+-----------+-----+ | 31100342 | ANA MARYANA SIREGAR| 1988-11-30| 17 | | 31100159 | DERRY RIZKINATA | 1988-12-19| 17 | +------------+--------------------+-----------+-----+ 2 rows in set (0.38 sec)

Gambar 1-7 Contoh Penggunaan Operator Perbandingan

Atau bisa juga dengan syntax seperti : SELECT NODAF NO PENDAFTARAN,NAMA NAMA PENDAFTAR, TGL_LAHIR TANGGAL LAHIR,YEAR(CURDATE())-YEAR(TGL_LAHIR) USIA FROM SISWA WHERE YEAR(CURDATE())-YEAR(TGL_LAHIR)>16; Atau: SELECT NODAF NO PENDAFTARAN,NAMA NAMA PENDAFTAR, TGL_LAHIR TANGGAL LAHIR,2005-YEAR(TGL_LAHIR) USIA FROM SISWA WHERE 2005-YEAR(TGL_LAHIR)>16; Atau: SELECT NODAF NO PENDAFTARAN,NAMA NAMA PENDAFTAR, TGL_LAHIR TANGGAL LAHIR,2005-YEAR(TGL_LAHIR) USIA FROM SISWA WHERE 2005-YEAR(TGL_LAHIR)>=17;

Tampilkan dari tabel siswa: NO PENDAFTARAN, NAMA PENDAFTAR, TANGGAL LAHIR, USIA Data yang ditampilkan adalah pendaftar yang saat ini (10-092005) benar-benar sudah genap berusia 16 tahun.

SELECT NODAF NO PENDAFTARAN,NAMA NAMA PENDAFTAR, TGL_LAHIR TANGGAL LAHIR,(YEAR(CURDATE())-YEAR(TGL_LAHIR)) (RIGHT(CURDATE(),5)< RIGHT(tgl_lahir,5)) USIA FROM SISWA WHERE (YEAR(CURDATE())-YEAR(TGL_LAHIR)) (RIGHT(CURDATE(),5) < RIGHT(tgl_lahir,5))=16;

Modul DTA.OPR.119.(2).A

20

mysql> SELECT NODAF "NO PENDAFTARAN",NAMA "NAMA PENDAFTAR", -> TGL_LAHIR "TANGGAL LAHIR",(YEAR(CURDATE())-> YEAR(TGL_LAHIR)) - (RIGHT(CURDATE(),5) < -> RIGHT(tgl_lahir,5)) USIA FROM SISWA -> WHERE (YEAR(CURDATE())-YEAR(TGL_LAHIR)) -> (RIGHT(CURDATE(),5) < RIGHT(tgl_lahir,5))=16; +------------+---------------------+-----------+-----+ | NO | NAMA | TANGGAL |USIA | | PENDAFTARAN| PENDAFTAR | LAHIR | | +------------+---------------------+-----------+-----+ | 31100014 | SUCU APRILIA | 1989-04-29| 16 | | 31100145 | IRMA DAMAYANTI | 1989-07-18| 16 | | 31100342 | ANA MARYANA SIREGAR | 1988-11-30| 16 | | 31100234 | DEVI MULYATI | 1989-07-31| 16 | | 31100031 | NENENG YULIANTI | 1989-08-11| 16 | | 31100159 | DERRY RIZKINATA | 1988-12-19| 16 | | 31100113 | IRMA YULIANA | 1989-07-19| 16 | | 31100390 | PIYAN SALAMAH | 1989-08-10| 16 | | 31100316 | CUCU WIDIA YUNENGSIH| 1989-03-25| 16 | | 31100274 | FITRIA AYUNITA | 1989-06-27| 16 | | 31100052 | SITI NURLELA | 1989-05-09| 16 | | 31100008 | LIA SONJAYA | 1989-06-28| 16 | | 31100009 | YATI MARYATI | 1989-08-16| 16 | +------------+---------------------+-----------+-----+ 13 rows in set (0.11 sec)Gambar 1-8 Contoh Penggunaan Operator Perbandingan

Tampilkan dari tabel siswa: NO PENDAFTARAN, NAMA PENDAFTAR, TANGGAL LAHIR, USIA Data yang ditampilkan adalah pendaftar yang saat ini (10-092005) sudah genap berusia selain 15 tahun.SELECT NODAF NO PENDAFTARAN,NAMA NAMA PENDAFTAR, TGL_LAHIR TANGGAL LAHIR,(YEAR(CURDATE())-YEAR(TGL_LAHIR)) (RIGHT(CURDATE(),5) SELECT NODAF "NO PENDAFTARAN",NAMA -> "NAMA PENDAFTAR", TOTAL "NILAI TOTAL" -> FROM SISWA WHERE TOTAL BETWEEN 70 AND 80; +------------+---------------------+--------+ | NO | NAMA | NILAI | | PENDAFTARAN| PENDAFTAR | TOTAL | +------------+---------------------+--------+ | 31100366 | IRMA SAHARA | 72.01 | | 31100109 | TINTIN WINARTI | 71.64 | | 31100320 | RATIH HERMAWATI | 71.36 | | 31100116 | RISNA NOVIANTI | 76.01 | | 31100535 | SITI NURHAYATI | 72.35 | | 31100523 | IQBAL KURNIA FADHLI | 71.35 | +------------+---------------------+--------+ 6 rows in set (0.00 sec)Gambar 1-9 Contoh Penggunaan Operator BETWEEN

2) Menggunakan Operator IN Operator IN diguanakan untuk menampilkan data berdasarkan nilai yang ada pada list. Apabila nilai yang dimasukkan ke dalam list itu bertipe karakter atau tanggal maka harus menggunakan tanda kutip tunggal Dalam Penggunaan Operator IN dapat digunakan intruksi select (sub query) yaitu query di dalam query

Ingat

Modul DTA.OPR.119.(2).A

22

Contoh: Tampilkan dari tabel siswa: NO PENDAFTARAN, NAMA PENDAFTAR TANGGAL LAHIR Data yang ditampilkan adalah pendaftar yang memiliki bulan kelahiran Februari dan November.SELECT NODAF "NO PENDAFTARAN",NAMA PENDAFTAR",Tgl_LAHIR "TANGGAL LAHIR" FROM SISWA MID(TGL_LAHIR,6,2) IN ('02','11'); mysql> SELECT NODAF "NO PENDAFTARAN",NAMA "NAMA PENDAFTAR", -> Tgl_LAHIR "TANGGAL LAHIR" FROM SISWA WHERE -> MID(TGL_LAHIR,6,2) IN ('02','11'); +------------+---------------------+-----------+ | NO | NAMA | TANGGAL | | PENDAFTARAN| PENDAFTAR | LAHIR | +------------+---------------------+-----------+ | 31100366 | IRMA SAHARA | 1990-02-17| | 31100116 | RISNA NOVIANTI | 1990-02-14| | 31100259 | LISNA SUCITRA | 1989-11-24| | 31100342 | ANA MARYANA SIREGAR | 1988-11-30| | 31100057 | RINA PUSPITA SARI | 1990-02-07| | 31100261 | FAUZIAH FAZRIN | 1990-02-20| | 31100049 | SITI MASITOH | 1990-02-12| | 31100041 | YANI WARISMA | 1989-11-05| | 31100523 | IQBAL KURNIA FADHLI | 1989-11-05| | 31100036 | SRI EKA KUMALA SARI | 1990-02-14| | 31100229 | FINI HUNDAYANI ZAHRA| 1990-02-15| +------------+---------------------+-----------+ 11 rows in set (0.00 sec)Gambar 1-10 Contoh Penggunaan Operator IN

"NAMA WHERE

3) Menggunakan Operator LIKE Operator LIKE berguna bila ingin menampilkan data berdasarkan kriteria, tetapi kita tidak tahu nilai yang tepat untuk dijadikan sebagai nilai pencariannya. Model ini merupakan teknik menampilkan data yang sesuai dengan kondisi. Dalam aplikasi web, teknik ini biasa dipakai untuk membuat form searching atau biasa disebut dengan istilah Search Engin. Klausa IN dapat melakukan perbandingan dengan hasil sama persis atau membandingkan data mirip dengan pembanding.

Modul DTA.OPR.119.(2).A

23

Catatan

Menampilkan dengan kondisi yang sama persis dari penggunaan operator LIKE hasilnya sama jika kita gunakan operator sama dengan (=). Menampilkan dengan kondisi yang mirip bisa kita pakai tanda % sebagai pengenalnya. Penggunaan % bisa setelah kata pembanding (teks%) bisa sebelum kata pembanding (%teks) atau mengapit kata pembanding (%teks%)

Tampilkan dari tabel siswa: NAMA di mana data yang ditampilkan adalah pendaftar yang namanya diawali dengan huruf C Tampilkan dari tabel siswa: NAMA di mana data yang ditampilkan adalah pendaftar yang namanya diakhiri dengan huruf an Tampilkan dari tabel siswa: NAMA di mana data yang ditampilkan adalah pendaftar yang namanya mengandung dengan huruf diamysql> SELECT NAMA FROM SISWA WHERE NAMA LIKE 'C%'; +----------------------------+ | NAMA | +----------------------------+ | CHYNTIA PUTRI GUSTINIAWATI | | CUCU WIDIA YUNENGSIH | +----------------------------+ 2 rows in set (0.00 sec) mysql> SELECT NAMA FROM SISWA WHERE NAMA LIKE '%AN'; +------------------+ | NAMA | +------------------+ | RIZKI KURNIAWAN | | DIAN RATNA WULAN | +------------------+ 2 rows in set (0.01 sec) mysql> SELECT NAMA FROM SISWA WHERE NAMA LIKE '%DIA%'; +----------------------+ | NAMA | +----------------------+ | DIAN RISSA HERDIANTI | | LINDA HERDIANA | | DIAN MULYANI | | CUCU WIDIA YUNENGSIH | | DIAN RATNA WULAN | +----------------------+ 5 rows in set (0.00 sec)Gambar 1-11 Contoh Penggunaan Operator LIKE

Modul DTA.OPR.119.(2).A

24

c. Operator LogikaOperator Keterangan

Mengembalikan nilai true bila kedua AND atau && kondisi bernilai benar Mengembalikan nilai true bila salah OR atau || satu kondisi bernilai benar Mengembalikan nilai true bila kedua NOT atau ! kondisi bernilai salah Mengembalikan nilai true bila hanya XOR data pertama yang bernilai benar Tabel 1-4 Operator Perbandingan yang Lain

1) Menggunakan Operator AND Permintaan kebutuhan data menggunakan operator AND akan ditampilkan jika pernyataan 1 dan pernyataan 2 bernilai sesuai dengan kondisi permintaan. Penulisan Operator AND bisa dengan

keyword AND atau simbol &&Contoh: Tampilkan dari tabel siswa:NAMA, JEN KEL, ASAL SEKOLAH Data yang ditampilkan adalah

pendaftar dengan jenis kelamin laki-laki dan asal sekolah dari SMP Swasta.mysql> SELECT NAMA,IF(L_P='L','Laki-laki','Perempuan') -> AS "JEN KEL",IF(KD_SLTP='2',CONCAT('SMPS ',NAMA_SLTP),'') -> AS "ASAL SEKOLAH" FROM SISWA WHERE KD_SLTP= '2' -> AND L_P = 'L'; +-----------------+-----------+------------------------+ | NAMA | JEN KEL | ASAL SEKOLAH | +-----------------+-----------+------------------------+ | RIZKI KURNIAWAN | Laki-laki | SMPS WIYATABHAKTI | | DERRY RIZKINATA | Laki-laki | SMPS MUTIARA 4 BANDUNG | +-----------------+-----------+------------------------+ 2 rows in set (0.00 sec)

Gambar 1-12 Contoh Penggunaan Operator AND

Atau bisa juga dengan syntax seperti:SELECT NAMA,IF(L_P='L','Laki-laki','Perempuan')AS "JEN KEL", IF(KD_SLTP='2',CONCAT('SMPS ',NAMA_SLTP),'') AS "ASAL SEKOLAH" FROM SISWA WHERE KD_SLTP= '2' && L_P = 'L';

Modul DTA.OPR.119.(2).A

25

2) Menggunakan Operator OR Permintaan kebutuhan data menggunakan operator OR akan ditampilkan jika salah satu pernyataan di antara pernyataan 1 dan pernyataan 2 bernilai sesuai dengan kondisi permintaan. Penulisan Operator OR bisa dengan keyword OR atau simbol || Contoh: Tampilkan dari tabel siswa:NAMA, JEN KEL, SEKOLAH ASAL Data yang ditampilkan adalah

pendaftar dengan jenis kelamin laki-laki atau berasal dari SMP Swasta.SELECT NAMA,IF(L_P='P','Perempuan','Laki-laki')as JEN KEL, CASE WHEN KD_SLTP ='1' THEN CONCAT('SMPN ',NAMA_SLTP) WHEN KD_SLTP ='2' THEN CONCAT('SMPS ',NAMA_SLTP) WHEN KD_SLTP ='3' THEN CONCAT('MTsN ',NAMA_SLTP) WHEN KD_SLTP ='4' THEN CONCAT('MTsS ',NAMA_SLTP) END SEKOLAH ASAL FROM SISWA WHERE L_P ='L' || kd_sltp='2';mysql> SELECT NAMA,IF(L_P='P','Perempuan','Laki-laki')as JEN KEL, -> CASE WHEN KD_SLTP ='1' THEN CONCAT('SMPN ',NAMA_SLTP) -> WHEN KD_SLTP ='2' THEN CONCAT('SMPS ',NAMA_SLTP) -> WHEN KD_SLTP ='3' THEN CONCAT('MTsN ',NAMA_SLTP) -> WHEN KD_SLTP ='4' THEN CONCAT('MTsS ',NAMA_SLTP) -> END SEKOLAH ASAL FROM SISWA WHERE L_P='L' || kd_sltp='2'; +-------------------------+-----------+-------------------------+ | NAMA | JEN KEL | SEKOLAH ASAL | +-------------------------+-----------+-------------------------+ | SUCU APRILIA | Perempuan | SMPS PGRI 1 PADALARANG | | NENDAH NERVINA MAESAROH | Perempuan | SMPS MUTIARA 1 BANDUNG | | DIAN RISSA HERDIANTI | Perempuan | SMPS MUTIARA 1 BANDUNG | | DESI SUSANTI | Perempuan | SMPS PASUNDAN 2 CIMAHI | | ENDANG SUSILAWATI | Perempuan | SMPS PASUNDAN 2 CIMAHI | | SILVA HAPPI SUKMAWATI | Perempuan | SMPS MUTIARA 1 BANDUNG | | HILDA IHDAWATI | Perempuan | SMPS PGRI 3 CIMAHI | | SITI MASITOH | Perempuan | SMPS PASUNDAN 2 CIMAHI | | RIMA MELATI CIKAL | Perempuan | SMPS PASUNDAN 2 CIMAHI | | DASILVA HANAFI HANUM | Perempuan | SMPS PASUNDAN 5 BANDUNG | | LINDA HERDIANA | Perempuan | SMPS PASUNDAN 4 | | SISKA JULIANAWATI | Perempuan | SMPS PASUNDAN 7 BANDUNG | | RIZKI KURNIAWAN | Laki-laki | SMPS WIYATABHAKTI | | DERRY RIZKINATA | Laki-laki | SMPS MUTIARA 4 BANDUNG | | FITRI FATMAWATI | Perempuan | SMPS PASUNDAN 7 BANDUNG | | ANSHAH RIDHWAN MUQTADIR | Laki-laki | MTsS ZAKARIA | | IQBAL KURNIA FADHLI | Laki-laki | MTsS ZAKARIA | | SITI PERTIWI | Perempuan | SMPS PGRI 1 PADALARANG | | SITI NURLELA | Perempuan | SMPS PASUNDAN 2 CIMAHI | | SRI WAHYUNI | Perempuan | SMPS PASUNDAN 2 CIMAHI | | POPPY RAMDASARI | Perempuan | SMPS PASUNDAN 5 BANDUNG | | DIAN RATNA WULAN | Perempuan | SMPS PASUNDAN 2 CIMAHI | +-------------------------+-----------+-------------------------+ 22 rows in set (0.01 sec) Gambar 1-13 Contoh Penggunaan Operator OR

Modul DTA.OPR.119.(2).A

26

3) Menggunakan Operator NOT Permintaan kebutuhan data menggunakan operator NOT akan ditampilkan jika pernyataan yang dimaksudkan bernilai tidak sesuai dengan kondisi permintaan. Penulisan Operator NOT bisa dengan keyword NOT atau simbol ! Contoh: Tampilkan dari tabel siswa:NAMA, JEN KEL, SEKOLAH ASAL Data yang ditampilkan adalah

pendaftar dengan jenis kelamin bukan perempuan.mysql> SELECT NAMA,IF(L_P='P','Perempuan','Laki-laki')as JEN KEL, -> CASE WHEN KD_SLTP ='1' THEN CONCAT('SMPN ',NAMA_SLTP) -> WHEN KD_SLTP ='2' THEN CONCAT('SMPS ',NAMA_SLTP) -> WHEN KD_SLTP ='3' THEN CONCAT('MTsN ',NAMA_SLTP) -> WHEN KD_SLTP ='4' THEN CONCAT('MTsS ',NAMA_SLTP) -> END SEKOLAH ASAL FROM SISWA WHERE L_P NOT IN('P'); +-------------------------+-----------+------------------------+ | NAMA | JEN KEL | SEKOLAH ASAL | +-------------------------+-----------+------------------------+ | RIZKI KURNIAWAN | Laki-laki | SMPS WIYATABHAKTI | | DERRY RIZKINATA | Laki-laki | SMPS MUTIARA 4 BANDUNG | | ANSHAH RIDHWAN MUQTADIR | Laki-laki | MTsS ZAKARIA | | IQBAL KURNIA FADHLI | Laki-laki | MTsS ZAKARIA | +-------------------------+-----------+------------------------+ 4 rows in set (0.00 sec) Gambar 1-14 Contoh Penggunaan Operator NOT

4) Menggunakan Operator XOR Operator XOR merupakan hasil penggabungan dari operator AND, NOT dan OR. Syntax penggabungan adalah sebagai berikut:SELECT x XOR y;

Hasilnya akan sama dengan syntax:SELECT (x AND (NOT y)) OR ((NOT x) AND y);

Atau dengan syntax:SELECT (x AND (NOT( y))) OR ((NOT( x)) AND y);

Permintaan kebutuhan data menggunakan operator XOR akan ditampilkan jika pernyataan 1 bernilai benar, dan akan dianggap bernilai salah apabila kedua pernyataan bernilai salah, atau

Modul DTA.OPR.119.(2).A

27

kedua pernyataan bernilai benar, atau pernyataan 1 bernilai salah. Penulisan Operator XOR dengan keyword XOR Contoh: Tampilkan dari tabel siswa:NAMA, JEN KEL, SEKOLAH ASAL Data yang ditampilkan adalah

pendaftar dengan jenis kelamin Laki-laki tapi bukan dari SMPS atau pendaftar dari SMPS selain laki-lakinya.SELECT NAMA,IF(L_P='P','Perempuan','Laki-laki')as "JEN KEL", CASE WHEN KD_SLTP ='1' THEN CONCAT('SMPN ',NAMA_SLTP) WHEN KD_SLTP ='2' THEN CONCAT('SMPS ',NAMA_SLTP) WHEN KD_SLTP ='3' THEN CONCAT('MTsN ',NAMA_SLTP) WHEN KD_SLTP ='4' THEN CONCAT('MTsS ',NAMA_SLTP) END "SEKOLAH ASAL" FROM SISWA WHERE L_P='L' XOR KD_SLTP ='2';mysql> SELECT NAMA,IF(L_P='P','Perempuan','Laki-laki')as "JEN KEL", -> CASE WHEN KD_SLTP ='1' THEN CONCAT('SMPN ',NAMA_SLTP) -> WHEN KD_SLTP ='2' THEN CONCAT('SMPS ',NAMA_SLTP) -> WHEN KD_SLTP ='3' THEN CONCAT('MTsN ',NAMA_SLTP) -> WHEN KD_SLTP ='4' THEN CONCAT('MTsS ',NAMA_SLTP) -> END "SEKOLAH ASAL" FROM SISWA WHERE L_P='L' XOR KD_SLTP ='2'; +-------------------------+-----------+-------------------------+ | NAMA | JEN KEL | SEKOLAH ASAL | +-------------------------+-----------+-------------------------+ | SUCU APRILIA | Perempuan | SMPS PGRI 1 PADALARANG | | NENDAH NERVINA MAESAROH | Perempuan | SMPS MUTIARA 1 BANDUNG | | DIAN RISSA HERDIANTI | Perempuan | SMPS MUTIARA 1 BANDUNG | | DESI SUSANTI | Perempuan | SMPS PASUNDAN 2 CIMAHI | | ENDANG SUSILAWATI | Perempuan | SMPS PASUNDAN 2 CIMAHI | | SILVA HAPPI SUKMAWATI | Perempuan | SMPS MUTIARA 1 BANDUNG | | HILDA IHDAWATI | Perempuan | SMPS PGRI 3 CIMAHI | | SITI MASITOH | Perempuan | SMPS PASUNDAN 2 CIMAHI | | RIMA MELATI CIKAL | Perempuan | SMPS PASUNDAN 2 CIMAHI | | DASILVA HANAFI HANUM | Perempuan | SMPS PASUNDAN 5 BANDUNG | | LINDA HERDIANA | Perempuan | SMPS PASUNDAN 4 | | SISKA JULIANAWATI | Perempuan | SMPS PASUNDAN 7 BANDUNG | | FITRI FATMAWATI | Perempuan | SMPS PASUNDAN 7 BANDUNG | | ANSHAH RIDHWAN MUQTADIR | Laki-laki | MTsS ZAKARIA | | IQBAL KURNIA FADHLI | Laki-laki | MTsS ZAKARIA | | SITI PERTIWI | Perempuan | SMPS PGRI 1 PADALARANG | | SITI NURLELA | Perempuan | SMPS PASUNDAN 2 CIMAHI | | SRI WAHYUNI | Perempuan | SMPS PASUNDAN 2 CIMAHI | | POPPY RAMDASARI | Perempuan | SMPS PASUNDAN 5 BANDUNG | | DIAN RATNA WULAN | Perempuan | SMPS PASUNDAN 2 CIMAHI | +-------------------------+-----------+-------------------------+ 20 rows in set (0.00 sec)

Gambar 1-15 Contoh Penggunaan Operator XOR

Atau bisa juga dengan syntax seperti: SELECT KEL", NAMA,IF(L_P='P','Perempuan','Laki-laki')as "JEN

Modul DTA.OPR.119.(2).A

28

CASE WHEN KD_SLTP ='1' THEN CONCAT('SMPN ',NAMA_SLTP) WHEN KD_SLTP ='2' THEN CONCAT('SMPS ',NAMA_SLTP) WHEN KD_SLTP ='3' THEN CONCAT('MTsN ',NAMA_SLTP) WHEN KD_SLTP ='4' THEN CONCAT('MTsS ',NAMA_SLTP) END "SEKOLAH ASAL" FROM SISWA WHERE (L_P='L' AND(NOT KD_SLTP ='2')) OR (NOT L_P=L) AND KD_SLTP=2);

5. Bekerja dengan Fungsi MySQL memiliki fungsi-fungsi yang dapat digunakan dalam pengelolaan data, kebanyakan fungsi-fungsi tersebut digunakan pada saat melakukan seleksi data. Fungsi-fungsi tersebut antara lain: Fungsi String Fungsi Numeric Fungsi untuk Tanggal dan Waktu a. Fungsi String Fungsi string adalah fungsi-fungsi untuk mengolah dan memanipulasi data karakter atau data text. Fungsi-fungsi string yang banyak dipakai antara lain: 1) Fungsi CONCAT() Syntax penulisan: CONCAT(string 1,string 2,...,string n) Fungsi ini digunakan untuk menggabungkan dua string atau lebih, atau untuk menggabungkan isi dari suatu kolom. Penggunaan fungsi ini sebenarnya sudah dipakai pada pembahasan sebelumnya silahkan dilihat kembali gambar 6,gambar 13, gambar 14, gambar 15.

Supaya lebih jelas lagi mari kita coba lagi penggunaan fungsi tersebut. Contoh: Tampilkan dari tabel siswa:NAMA, L_P, TEMPAT TGL LAHIR Data yang ditampilkan adalah

pendaftar dengan jenis kelamin L. Syntax Penulisan:

Modul DTA.OPR.119.(2).A

29

SELECT NAMA,L_P,CONCAT(TMP_LAHIR,, ,MID(TGL_LAHIR,9,2), MID(TGL_LAHIR,5,4), MID(TGL_LAHIR,1,4))AS TEMPAT TGL LAHIR FROM SISWA WHERE L_P=L; Atau bisa juga dengan syntax seperti: SELECT NAMA,L_P,CONCAT(TMP_LAHIR,', ',DATE_FORMAT(TGL_LAHIR, '%d-%m-%Y')) AS TEMPAT TGL LAHIR FROM SISWA;mysql> SELECT NAMA,L_P,CONCAT(TMP_LAHIR,', ', -> MID(TGL_LAHIR,9,2), MID(TGL_LAHIR,5,4), -> MID(TGL_LAHIR,1,4))AS "TEMPAT TGL LAHIR" -> FROM SISWA WHERE L_P='L'; +-------------------------+-----+---------------------+ | NAMA | L_P | TEMPAT TGL LAHIR | +-------------------------+-----+---------------------+ | RIZKI KURNIAWAN | L | CIMAHI, 10-05-1990 | | DERRY RIZKINATA | L | BANDUNG, 19-12-1988 | | ANSHAH RIDHWAN MUQTADIR | L | BANDUNG, 17-12-1990 | | IQBAL KURNIA FADHLI | L | BANDUNG, 05-11-1989 | +-------------------------+-----+---------------------+ 4 rows in set (0.00 sec)

Gambar 1-16 Contoh Penggunaan fungsi CONCAT()

2) Fungsi MID() atau SUBSTR() atau SUBSTRING()Syntax penulisan: MID(x,y,z) atau SUBSTR(x,y,z) atau SUBSTRING(x,y,z)

Fungsi ini digunakan untuk mengambil data x mulai dari posisi ke y sebanyak z. Sekarang perhatikan gambar 16. Mari kita bahas fungsi mid pada gambar 16 teresebut:MID(TGL_LAHIR,9,2) atau SUBSTR(TGL_LAHIR,9,2) MID(TGL_LAHIR,5,4) atau SUBSTR(TGL_LAHIR,5,4) MID(TGL_LAHIR,1,4) atau SUBSTR(TGL_LAHIR,1,4)

Tgl_lahir yang terdapat pada fungsi mid() atau substr() adalah nama kolom pada tabel siswa yang berisi data tanggal dengan format yyyy-mm-dd (bilangan tahun 4 digit bilangan bulan 2 digit bilangan hari 2 digit). Jadi yang lahir 10 Mei 1990 akan tertulis (1990-05-10).MID(TGL_LAHIR,9,2) hasilnya = 1 Tgl_lahir (x) 1 9 9 0 Posisi (y) 1 2 3 4 Sebanyak (z)

5

0 6

5 7

8

1 9 1

0 10 2

Modul DTA.OPR.119.(2).A

30

MID(TGL_LAHIR,5,4) hasilnya = -05Tgl_lahir (x) 1 9 9 0 Posisi (y) 1 2 3 4 5 Sebanyak (z) 1 MID(TGL_LAHIR,1,4) hasilnya = 1990 1 9 9 0 Tgl_lahir (x) 1 2 3 4 5 Posisi (y) Sebanyak (z) 1 2 3 4 5

0 6 2 0 6 6

5 7 3 5 7 7

8 4 8 8

1 9 5 1 9 9

0 10 6 0 10 10

Contoh lain:SELECT EKA SELECT EKA SELECT EKA SELECT EKA SELECT EKA SELECT EKA MID(ASEP EKA SETIA PRIATNA,6,5); S MID(ASEP EKA SETIA PRIATNA,6); SETIA PRIATNA SUBSTR(ASEP EKA SETIA PRIATNA,6,5); S SUBSTR(ASEP EKA SETIA PRIATNA,6); SETIA PRIATNA SUBSTRING(ASEP EKA SETIA PRIATNA,6,5); S SUBSTRING(ASEP EKA SETIA PRIATNA,6); SETIA PRIATNA

Ingat

Bila kita menuliskan suatu string atau kata harus menggunakan tanda kutip Parameter Z pada fungsi MID() atau fungsi SUBSTR() bisa tidak diikut sertakan, itu berarti data yang diambil sebanyak dari posisi mengambil data sampai akhir Data Numeric bisa juga diperlakukan oleh fungsi MID() atau fungsi SUBSTR()

3) Fungsi LEFT()Syntax penulisan: LEFT(x,y)

Fungsi ini digunakan untuk mengambil sebagian data dari x sebanyak y dari sebelah kiri ke kanan termasuk spasi. Contoh:SELECT LEFT(ASEP EKA SETIA PRIATNA,8); ASEP EKA

4) Fungsi RIGHT()Syntax penulisan : RIGHT(x,y)

Fungsi ini digunakan untuk mengambil sebagian data dari x sebanyak y dari sebelah kanan ke kiri termasuk spasi. Contoh:SELECT RIGHT(ASEP EKA SETIA PRIATNA,7); PRIATNA

Modul DTA.OPR.119.(2).A

31

5) Fungsi TRIM()Syntax penulisan: TRIM([[BOTH|LEADING|TRAILING][remstr] FROM] str)

Fungsi ini digunakan untuk menghapus spasi pada kedua sisi kiri dan sisi kanan. Bila menggunakan pilihan BOTH akan menghapus karakter yang ditentukan setelah keyword BOTH dari suatu teks pada bagian sebelah kiri dan sebelah kanan. Bila menggunakan pilihan LEADING akan menghapus karakter yang ditentukan setelah keyword LEADING dari suatu teks pada bagian sebelah kiri. Bila menggunakan pilihan TRAILING akan menghapus karakter yang ditentukan setelah keyword TRAILING dari suatu teks pada bagian sebelah kanan.SELECT TRIM(' SMKN 11 BANDUNG '); SMKN 11 BANDUNG SELECT LTRIM(' SMKN 11 BANDUNG '); SMKN 11 BANDUNG SELECT RTRIM(' SMKN 11 BANDUNG '); SMKN 11 BANDUNG SELECT TRIM(BOTH X FROM 'XXXXXSMKN 11 BANDUNGXXXXX'); SMKN 11 BANDUNG SELECT TRIM(LEADING X FROM 'XXXSMKN BANDUNGXXX'); SMKN 11 BANDUNGXXX SELECT TRIM(TRAILING X FROM 'XXXSMKN BANDUNGXXX'); XXXSMKN 11 BANDUNG

11

11

6) Fungsi LCASE() atau LOWER()Syntax penulisan: LCASE(string) atau LOWER(string)

Fungsi ini digunakan untuk mengubah huruf kapital menjadi huruf kecil.SELECT LCASE('SMKN 11 BANDUNG'); smkn 11 bandung SELECT LOWER('SMKN 11 BANDUNG'); smkn 11 bandung

Modul DTA.OPR.119.(2).A

32

7) Fungsi UCASE() atau UPPER()Syntax penulisan: UCASE(string) atau UPPER(string)

Fungsi ini digunakan untuk mengubah huruf huruf kecil menjadi huruf kapital.SELECT UCASE('smkn 11 bandung'); SMKN 11 BANDUNG SELECT UPPER('smkn 11 bandung'); SMKN 11 BANDUNG

b. Fungsi Numeric Fungsi Numeric adalah fungsi-fungsi untuk mengolah data numeric atau data bilangan. Fungsi-fungsi numeric yang banyak dipakai antara lain: 1) Fungsi CEIL() atau CEILING()Syntax penulisan: CEIL(nilai)

Fungsi ini digunakan untuk mendapatkan nilai bilangan bulat dari sebuah bilangan pecahan dan asli, hasilnya merupakan bilangan terdekat yang nilainya lebih besar atau sama dengan bilangan itu sendiri.mysql> SELECT CEIL(-5.25),CEIL(5.25),CEIL(5.99); +-------------+------------+------------+ | CEIL(-5.25) | CEIL(5.25) | CEIL(5.99) | +-------------+------------+------------+ | -5 | 6 | 6 | +-------------+------------+------------+ 1 row in set (0.00 sec)Gambar 1-17 Contoh Penggunaan fungsi CEIL()

2) Fungsi FLOOR()Syntax penulisan: FLOOR(nilai);

Fungsi ini digunakan untuk mendapatkan nilai bilangan bulat dari sebuah bilangan pecahan dan asli, hasilnya merupakan bilangan terdekat yang nilainya lebih kecil atau sama dengan bilangan itu sendiri.

Modul DTA.OPR.119.(2).A

33

mysql> SELECT FLOOR(-5.25),FLOOR(5.25),FLOOR(5.99); +--------------+-------------+-------------+ | FLOOR(-5.25) | FLOOR(5.25) | FLOOR(5.99) | +--------------+-------------+-------------+ | -6 | 5 | 5 | +--------------+-------------+-------------+ 1 row in set (0.00 sec)Gambar 1-18 Contoh Penggunaan fungsi FLOOR()

3) Fungsi LEAST()Syntax penulisan: LEAST(nilai 1,nilai 2,....,nilai n) atau LEAST(string 1,string 2, ...., string n)

Fungsi ini digunakan untuk mendapatkan nilai terkecil dari baris bilangan atau untuk memperoleh karakter terkecil dari deret data.mysql> -> -> -> SELECT LEAST('X','Y','Z','E','F','G') AS "HASIL 1", LEAST(9,7,5,3,1,8,6,4,2) AS "HASIL 2", LEAST('BANDUNG','KOTA','JASA') AS "HASIL 3"; +---------+---------+---------+ | HASIL 1 | HASIL 2 | HASIL 3 | +---------+---------+---------+ | E | 1 | BANDUNG | +---------+---------+---------+ 1 row in set (0.00 sec)Gambar 1-19 Contoh Penggunaan fungsi LEAST()

4) Fungsi GREATEST()Syntax penulisan: GREATEST(nilai 1,nilai 2,....,nilai n) atau GREATEST(string 1,string 2, ...., string n)

Fungsi ini digunakan untuk mendapatkan nilai terbesar dari baris bilangan dan untuk memperoleh karakter terbesar dari deret data.

Modul DTA.OPR.119.(2).A

34

mysql> -> -> ->

SELECT GREATEST('X','Y','Z','E','F','G') AS "HASIL 1", GREATEST(9,7,5,3,1,8,6,4,2) AS "HASIL 2", GREATEST('BANDUNG','KOTA','JASA') AS "HASIL 3"; +---------+---------+---------+ | HASIL 1 | HASIL 2 | HASIL 3 | +---------+---------+---------+ | Z | 9 | KOTA | +---------+---------+---------+ 1 row in set (0.01 sec)Gambar 1-20 Contoh Penggunaan fungsi GREATEST()

5) Fungsi RAND()Syntax penulisan: RAND() atau RAND(nilai)

Fungsi ini akan menghasilkan nilai acak apabila yang dirandom adalah bilangan kosong.mysql> SELECT RAND(),RAND(),RAND(),RAND(); +-----------+-----------+-----------+-----------+ | rand() | rand() | rand() | rand() | +-----------+-----------+-----------+-----------+ | 0.35128856| 0.67000514| 0.29616006| 0.47078492| +-----------+-----------+-----------+-----------+ 1 row in set (0.00 sec)Gambar 1-21 Contoh Penggunaan fungsi RAND()

6) Fungsi ROUND()Syntax penulisan : ROUND(n) atau ROUND(n,x)

Fungsi ROUND(n) digunakan untuk mendapatkan nilai bilangan bulat dari sebuah bilangan pecahan dengan syarat bila bilangan yang akan diolah memiliki nilai pecahan dibelakang koma bernilai > 5 dibulatkan menjadi 1, bila SELECT 200/3,ROUND(200/3),111/2,ROUND(111/2); +-------+--------------+-------+--------------+ | 200/3 | ROUND(200/3) | 111/2 | ROUND(111/2) | +-------+--------------+-------+--------------+ | 66.67 | 67 | 55.50 | 55 | +-------+--------------+-------+--------------+ 1 row in set (0.00 sec) mysql> SELECT ROUND(200/3,1),ROUND(200/3,-1); +----------------+-----------------+ | ROUND(200/3,1) | ROUND(200/3,-1) | +----------------+-----------------+ | 66.7 | 70 | +----------------+-----------------+ 1 row in set (0.00 sec)Gambar 1-22 Contoh Penggunaan fungsi ROUND()

7) Fungsi MOD()Syntax penulisan: MOD(penyebut , pembilang);

Fungsi ini digunakan untuk mendapatkan nilai dari hasil sisa pembagianmysql> select mod(11,3),mod(12,3),mod(13,3); +-----------+-----------+-----------+ | mod(11,3) | mod(12,3) | mod(13,3) | +-----------+-----------+-----------+ | 2 | 0 | 1 | +-----------+-----------+-----------+ 1 row in set (0.03 sec)Gambar 1-23 Contoh Penggunaan fungsi MOD()

7) Fungsi POW()Syntax penulisan: POW(nilai,pangkat);

Fungsi ini digunakan untuk mendapatkan hasil pemangkatanmysql> select pow(9,-1),pow(9,0),pow(9,1/2),pow(9,1),pow(9,2); +-----------+----------+------------+----------+----------+ | pow(9,-1) | pow(9,0) | pow(9,1/2) | pow(9,1) | pow(9,2) | +-----------+----------+------------+----------+----------+ | 0.1111111 | 1 | 3 | 9 | 81 | +-----------+----------+------------+----------+----------+ 1 row in set (0.01 sec)Gambar 1-24 Contoh Penggunaan fungsi POW()

c. Fungsi untuk Tanggal dan Waktu Fungsi Date() dan Time() adalah fungsi-fungsi untuk mengolah data tanggal atau waktu. Fungsi-fungsi ini yang banyak dipakai antara lain:

Modul DTA.OPR.119.(2).A

36

Fungsi

NOW(),

DAY(),

DAYOFMONTH(), DAYOFYEAR(),

DAYOFWEEK(), DAYNAME(),

MONTH(),

WEEKDAY(),

MONTHNAME(), YEAR(), DATE_FORMAT()NOW() : menghasilkan tanggal dan waktu saat ini

DAY(d) DAYOFMONTH(d) DAYOFWEEK(d)

(tanggal, bulan, tahun, jam, menit dan detik sekarang). : menghasilkan hari ke-n dari inputan tanggal.: menghasilkan hari ke-n dalam satuan minggu

WEEKDAY(d) DAYOFYEAR(d) MONTH(d) DAYNAME(d)

:

: : :

MONTHNAME(d) : YEAR(d):

DATE_FORMAT( : d, format)

dari inputan tanggal (1= minggu, 2= senin, ... , 7= sabtu). menghasilkan hari ke-n dalam satuan minggu dari inputan tanggal (0= senin, 1= selasa, ..., 6= minggu). menghasilkan hari ke-n dalam setahun dari inputan tanggal yang jadi parameter. menghasilkan bulan ke-n dari tanggal yang jadi parameter. menghasilkan nama hari dari tanggal yang jadi parameter. menghasilkan nama bulan dari tanggal yang jadi parameter. menghasilkan tahun dari tanggal yang jadi parameter. Menghasilkan informasi waktu tanggal, bulan, tahun, jam, menit dan detik

SELECT NOW(); 2005-08-31 02:30:15 SELECT DAY(NOW()),DAYOFMONTH(NOW()); HASILNYA SAMA 31 SELECT DAYOFWEEK(NOW()); 4 SELECT WEEKDAY(NOW()); 2 SELECT DAYOFYEAR(NOW()); 243 SELECT MONTH(NOW()); 8 SELECT DAYNAME(NOW()); Wednesday SELECT MONTHNAME(NOW()); August SELECT YEAR(NOW()) 2005;

Modul DTA.OPR.119.(2).A

37

Form %a %W %b %M %w %c %m %d %e %r %T %H %k

Deskripsi Sun, , Sat Sunday,, Saturday Jan,...Dec January,,December 0,,6 : 0=Sunday..6=Saturday Bulan 1..12 Bulan 01...12 Tanggal 01,,31 Tanggal 0..31 hh:mm:ss AM or PM hh:mm:ss Jam 00..23 Jam 0..23

Form %i %S, %s %f %j %U %u %V %v %X %x %Y %yTabel 1-5 Format Tanggal

Deskripsi Menit 00..59 Detik 00..59 Micro detik (000000..999999) Hari setahun 001..366 Week (00..53) Week (00..53) Week (01..53) Week (01..53) Year 4 digits; used with %V Year 4 digits; used with %v Year, numeric, 4 digits Year, numeric, 2 digits

%h,%I,%l Jam 01..12

SELECT DATE_FORMAT(NOW(),%d-%m-%Y); 31-08-2005 SELECT DATE_FORMAT(NOW(),'%r atau %T'); 11:26:30 AM atau 11:26:30

1) Membatasi Data dengan Limit Fungsi ini digunakan untuk menentukan dan membatasi data yang akan ditampilkan. Contoh:CREATE TABLE siswa_ak SELECT * FROM siswa WHERE pil_prg1=1 ORDER BY total DESC LIMIT 10;

Perintah query di atas bertujuan untuk membuat tabel baru siswa_ak yang struktur tabelnya hampir sama dengan tabel siswa, kecuali untuk kolom yang menggunakan primary key (pada tabel duplikasi primary key menjadi hilang) untuk menguba menjadi sama persis kita perlu melakukan memperbaiki struktur tabel tersebut:ALTER TABLE siswa_ak CHANGE nodaf nodaf VARCHAR(8) PRIMARY KEY

Tabel siswa_ak ini sudah bersisi data sebanyak 10 record yang sudah disortir dari urutan terbesar berdasarkan kolom total.

Modul DTA.OPR.119.(2).A

38

Pada klausa LIMIT bisa diikuti dengan parameter batas dan jumlah, seperti: LIMIT 0,10 akan menampilkan data dari baris pertama sebanyak 10 baris. LIMIT 10,10 akan menampilkan data dari baris 11 sebanyak 3 baris.mysql> SELECT nodaf,nama,total FROM siswa WHERE pil_prg1='1' -> ORDER BY total DESC LIMIT 0,10; +----------+---------------------+-------+ | nodaf | nama | total | +----------+---------------------+-------+ | 31100116 | RISNA NOVIANTI | 76.01 | | 31100535 | SITI NURHAYATI | 72.35 | | 31100366 | IRMA SAHARA | 72.01 | | 31100109 | TINTIN WINARTI | 71.64 | | 31100320 | RATIH HERMAWATI | 71.36 | | 31100145 | IRMA DAMAYANTI | 67.67 | | 31100337 | RUHAYNIAYAH | 67.49 | | 31100043 | DESI SUSANTI | 66.64 | | 31100342 | ANA MARYANA SIREGAR | 64.67 | | 31100046 | ENDANG SUSILAWATI | 64.50 | +----------+---------------------+-------+ 10 rows in set (0.27 sec) mysql> SELECT nodaf,nama,total FROM siswa WHERE pil_prg1='1' -> ORDER BY total DESC LIMIT 10,3; +----------+-------------------------+-------+ | nodaf | nama | total | +----------+-------------------------+-------+ | 31100259 | LISNA SUCITRA | 63.18 | | 31100117 | PITRIYANI | 62.64 | | 31100480 | SITI NURHAMIDAH | 62.48 | +----------+-------------------------+-------+ 3 rows in set (0.00 sec)Gambar 1-25 Contoh Penggunaan LIMIT

Sekarang coba perhatikan hasil pembuatan tabel siswa_ak kita akan bandingkan dengan tabel asalnya yaitu tabel siswa:SELECT a.nodaf,a.nama AS NM SISWA,b.nama AS NM SISWA AK FROM siswa AS a,siswa_ak AS b WHERE a.nodaf=b.nodaf;

Modul DTA.OPR.119.(2).A

39

mysql> SELECT a.nodaf,a.nama AS "NM SISWA",b.nama AS -> "NM SISWA AK" FROM siswa AS a,siswa_ak AS b WHERE -> a.nodaf=b.nodaf; +----------+---------------------+---------------------+ | nodaf | NM SISWA | NM SISWA AK | +----------+---------------------+---------------------+ | 31100116 | RISNA NOVIANTI | RISNA NOVIANTI | | 31100535 | SITI NURHAYATI | SITI NURHAYATI | | 31100366 | IRMA SAHARA | IRMA SAHARA | | 31100109 | TINTIN WINARTI | TINTIN WINARTI | | 31100320 | RATIH HERMAWATI | RATIH HERMAWATI | | 31100145 | IRMA DAMAYANTI | IRMA DAMAYANTI | | 31100337 | RUHAYNIAYAH | RUHAYNIAYAH | | 31100043 | DESI SUSANTI | DESI SUSANTI | | 31100342 | ANA MARYANA SIREGAR | ANA MARYANA SIREGAR | | 31100046 | ENDANG SUSILAWATI | ENDANG SUSILAWATI | +----------+---------------------+---------------------+ 10 rows in set (0.00 sec)Gambar 1-26 Hasil pengecekan tabel siswa dengan siswa_ak

2) Menggunakan ORDER BY Fungsi Ini digunakan untuk melakukan pengurutan data, sehingga data dari sebuah atau beberapa tabel dapat tampil berurutan sesuai keinginan. Secara default hasil order by adalah berurutan dari kecil ke besar (ASC), bila kita akan melakukan urutan data dari besar ke kecil gunakan keword DESC. Pengurutan data dilakukan dengan cara menuliskan nama kolom setelah klausa ORDER BY atau bisa juga dengan cara menyebutkan no kolom yang ditampilkan.SELECT nodaf,nama,total FROM siswa ORDER BY nodaf; Atau SELECT nodaf,nama,total FROM siswa ORDER BY 1; 1 2 3

ORDER BY 1 sama dengan ORDER BY nodaf, ORDER BY 3 DESC untuk perintah di atas sama artinya dengan ORDER BY total DESC 3) Menggunakan GROUP BY GROUP BY adalah fungsi untuk mengelompokkan data dalam sebuah kolom yang dipilih, fungsi ini akan menghasilkan kelompok data dengan menghilangkan data yang sama dalam satu tabel.

Modul DTA.OPR.119.(2).A

40

mysql> SELECT NODAF,NAMA,PIL_PRG1 FROM SISWA -> GROUP BY PIL_PRG1; +----------+---------------------+----------+ | NODAF | NAMA | PIL_PRG1 | +----------+---------------------+----------+ | 31100366 | IRMA SAHARA | 1 | | 31100057 | RINA PUSPITA SARI | 2 | | 31100003 | SITI ROKAYAH | 3 | | 31100036 | SRI EKA KUMALA SARI | 4 | +----------+---------------------+----------+ 4 rows in set (0.00 sec)Gambar 1-27 Contoh Penggunaan GROUP BY

Tabel siswa yang berisi sebanyak 81 data setelah dikelompokkan dengan kolom pil_prg1 menjadi 4 kelompok. Pada dasarnya fungsi GROUP BY merupakan solusi dalam memenuhi agregate permintaan (pengumpulan yang dan membutuhkan penjumlahan) fungsi-fungsi seperti fungsi

COUNT(), SUM(), AVG(), MIN(), MAX(). Tanpa GROUP BY fungsi agregate tidak dapat berfungsi secara maksimal. Kita akan menampilkan jumlah data pada tabel siswa:mysql> SELECT COUNT(*) FROM SISWA; +----------+ | COUNT(*) | +----------+ | 81 | +----------+ 1 row in set (0.00 sec)Gambar 1-28 Contoh Penggunaan Fungsi COUNT()

Bagaimana bila kita ingin menampilkan dengan kolom lain, misalnya kolom pil_prg1.SELECT PIL_PRG1,COUNT(PIL_PRG1) FROM SISWA;mysql> SELECT PIL_PRG1,COUNT(PIL_PRG1) -> FROM SISWA; ERROR 1140 (42000): Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GR OUP columns is illegal if there is no GROUP BY clauseGambar 1-29 Kesalahan pada fungsi COUNT()

Kesalahan tersebut dapat di atasi dengan menggunakan fungsi GROUP BY. Sehingga query yang kita buat tadi kita lengkapi:

Modul DTA.OPR.119.(2).A

41

SELECT PIL_PRG1,COUNT(PIL_PRG1) FROM SISWA GROUP BY PIL_PRG1;mysql> SELECT PIL_PRG1,COUNT(PIL_PRG1) -> FROM SISWA GROUP BY PIL_PRG1; +----------+-----------------+ | PIL_PRG1 | COUNT(PIL_PRG1) | +----------+-----------------+ | 1 | 22 | | 2 | 14 | | 3 | 22 | | 4 | 23 | +----------+-----------------+ 4 rows in set (0.36 sec)Gambar 1-30 Setelah menggunakan GROUP BY

Catatan

Fungsi MIN() untuk mengetahui nilai terkecil dari kolom MIN(nama_kolom) Fungsi MAX() untuk mengetahui nilai ter besar dari kolom MAX(nama_kolom)

Fungsi COUNT()untuk mengetahui banyak data. COUNT(*) atau COUNT(nama_kolom) Fungsi SUM() untuk mengetahui penjumlahan dari kolom - SUM(nama_kolom) Fungsi AVG() untuk mengetahui rata-rata dari kolom - AVG(nama kolom)

6. Seleksi dari Dua Tabel atau Lebih Pada database yang sudah mendukung RDBMS data biasanya dipecah menjadi beberapa tabel, untuk menampilkan data sesuai dengan permintaan kita perlu menampilkan data dari beberapa tabel yang diperlukan. Contoh: Kita akan menampilkan data nodaf,nama dari tabel siswa_ak dan prg_ahli dari tabel prg_ahli dengan syarat data yang ditampilkan isi nilai kolom total lebih dari nilai 72.SELECT NODAF,NAMA,PRG_AHLI FROM SISWA_AK,PRG_AHLI WHERE TOTAL > 72;

Modul DTA.OPR.119.(2).A

42

mysql> SELECT NODAF, NAMA, PRG_AHLI -> FROM SISWA_AK,PRG_AHLI WHERE TOTAL>72; +----------+----------------+--------------------------+ | NODAF | NAMA | PRG_AHLI | +----------+----------------+--------------------------+ | 31100116 | RISNA NOVIANTI | Akuntansi | | 31100535 | SITI NURHAYATI | Akuntansi | | 31100366 | IRMA SAHARA | Akuntansi | | 31100116 | RISNA NOVIANTI | Penjualan | | 31100535 | SITI NURHAYATI | Penjualan | | 31100366 | IRMA SAHARA | Penjualan | | 31100116 | RISNA NOVIANTI | Rekayasa Perangkat Lunak | | 31100535 | SITI NURHAYATI | Rekayasa Perangkat Lunak | | 31100366 | IRMA SAHARA | Rekayasa Perangkat Lunak | | 31100116 | RISNA NOVIANTI | Administrasi Perkantoran | | 31100535 | SITI NURHAYATI | Administrasi Perkantoran | | 31100366 | IRMA SAHARA | Administrasi Perkantoran | +----------+----------------+--------------------------+ 12 rows in set (0.00 sec)

Gambar 1-31 Penggunaan Join yang tidak benar

Hasil perintah di atas akan menghasilkan data sebanyak 12 record yang terdiri dari 3 record dari tabel siswa_ak dan 4 record dari tabel prg_ahli. Data yang ditampilkan menjadi tidak sesuai dengan yang diharapkan. Hasil seperti di atas dinamakan dengan Cartisian Product. Cartisian Product terjadi bila menggunakan kondisi join yang tidak benar. Untuk menghindari hal tersebut harus menggunakan kondisi join yang benar pada klausa Where.SELECT NODAF,NAMA,PRG_AHLI FROM SISWA_AK,PRG_AHLI WHERE TOTAL > 72 AND PIL_PRG1=KD_PRG;

mysql> SELECT NODAF,NAMA,PRG_AHLI FROM SISWA_AK,PRG_AHLI -> WHERE TOTAL > 72 AND PIL_PRG1=KD_PRG; +----------+----------------+-----------+ | NODAF | NAMA | PRG_AHLI | +----------+----------------+-----------+ | 31100116 | RISNA NOVIANTI | Akuntansi | | 31100535 | SITI NURHAYATI | Akuntansi | | 31100366 | IRMA SAHARA | Akuntansi | +----------+----------------+-----------+ 3 rows in set (0.00 sec))Gambar 1-32 Penggunaan Join yang sudah benar

Ingat

Bila menampilkan data dari dua tabel atau lebih dan pada tiap tabel tersebut tidak memiliki nama kolom yang sama, maka menyertakan nama kolom tidak perlu didahului dengan nama tabel atau nama alias. Bila menampilkan data dari dua tabel atau lebih dan pada tiap tabel tersebut memiliki nama kolom yang sama, maka dalam menyertakan nama kolom harus didahului dengan nama tabel atau nama alias.

Modul DTA.OPR.119.(2).A

43

a. Menggunakan INNER JOIN Perintah join dengan INNER JOIN sama dengan perintah join pada bahasan sebelumnya, hanya pada perintah join dengan menggunakan INNER JOIN ditambahkan keyword ON sebagai

pembanding antara tabel 1 dengan tabel 2SELECT NODAF,NAMA,PRG_AHLI FROM PRG_AHLI ON PIL_PRG1=KD_PRG; SISWA_AK INNER JOIN

b. Menggunakan RIGHT[OUTER] JOIN Fungsi ini digunakan untuk menampilkan dua tabel atau lebih. Bila kita menampilkan dua tabel maka tabel pertama dianggap sebagai tabel kiri (LEFT) dan tabel kedua sebagai tabel kanan (RIGHT). Penggunaan operator RIGHT JOIN akan mengakibatkan seluruh data dari tabel kanan tampil seluruhnya, apabila salah satu kolom angota tabel kanan tidak memiliki hubungan dengan data pada tabel kiri, maka data pada tabel kiri akan diisi dengan nilai NULL.mysql> SELECT NODAF,NAMA,PRG_AHLI FROM SISWA_AK RIGHT OUTER -> JOIN PRG_AHLI ON PIL_PRG1=KD_PRG; +----------+---------------------+--------------------------+ | NODAF | NAMA | PRG_AHLI | +----------+---------------------+--------------------------+ | 31100116 | RISNA NOVIANTI | Akuntansi | | 31100535 | SITI NURHAYATI | Akuntansi | | 31100366 | IRMA SAHARA | Akuntansi | | 31100109 | TINTIN WINARTI | Akuntansi | | 31100320 | RATIH HERMAWATI | Akuntansi | | 31100145 | IRMA DAMAYANTI | Akuntansi | | 31100337 | RUHAYNIAYAH | Akuntansi | | 31100043 | DESI SUSANTI | Akuntansi | | 31100342 | ANA MARYANA SIREGAR | Akuntansi | | 31100046 | ENDANG SUSILAWATI | Akuntansi | | NULL | NULL | Penjualan | | NULL | NULL | Rekayasa Perangkat Lunak | | NULL | NULL | Administrasi Perkantoran | +----------+---------------------+--------------------------+ 13 rows in set (0.00 sec)Gambar 1-33 Contoh Penggunaan RIGHT OUTER JOIN

c. Menggunakan LEFT[OUTER] JOIN Fungsi ini merupakan kebalikan dari fungsi RIGHT JOIN, bila dalam cotoh select menggunakan RIGHT OUTER JOIN tabel siswa_ak sebagai tabel kiri, tabel prg_ahli sebagai tabel kanan. Perintah

Modul DTA.OPR.119.(2).A

44

dengan menggunakan operator LEFT OUTER JOIN maka tabel prg_ahli menjadi tabel kiri dan siswa_ak menjadi tabel kanan. Perhatikan hasilnya akan persis sama dengan menggunakan RIGHT OUTER JOIN.mysql> SELECT NODAF,NAMA,PRG_AHLI FROM PRG_AHLI LEFT OUTER -> JOIN SISWA_AK ON PIL_PRG1=KD_PRG; +----------+---------------------+--------------------------+ | NODAF | NAMA | PRG_AHLI | +----------+---------------------+--------------------------+ | 31100116 | RISNA NOVIANTI | Akuntansi | | 31100535 | SITI NURHAYATI | Akuntansi | | 31100366 | IRMA SAHARA | Akuntansi | | 31100109 | TINTIN WINARTI | Akuntansi | | 31100320 | RATIH HERMAWATI | Akuntansi | | 31100145 | IRMA DAMAYANTI | Akuntansi | | 31100337 | RUHAYNIAYAH | Akuntansi | | 31100043 | DESI SUSANTI | Akuntansi | | 31100342 | ANA MARYANA SIREGAR | Akuntansi | | 31100046 | ENDANG SUSILAWATI | Akuntansi | | NULL | NULL | Penjualan | | NULL | NULL | Rekayasa Perangkat Lunak | | NULL | NULL | Administrasi Perkantoran | +----------+---------------------+--------------------------+ 13 rows in set (0.00 sec)Gambar 1-34 Contoh Penggunaan LEFT OUTER JOIN

Tujuan dari dimanfaatkannya fungsi RIGHT OUTER JOIN atau LEFT OUTER JOIN sebenarnya untuk mengetahui berapa banyak data yang tidak direlasikan. d. Seleksi Tabel dengan Subquery Maksud dari subquery pada modul ini adalah bahwa untuk mendapatkan informasi pada sebuah tabel atau dalam relasi tabel kita dapat memanfaatkan kondisi dengan query lagi. Jadi subquery adalah query di dalam query. Sekarang mari kita coba subquery dalam satu tabel: Tampilkan dari tabel siswa: nodaf,nama,matika data yang ditampilkan adalah data yang nilai matematikanya lebih besar atau sama dengan nilai tertinggi bahasa indonesia.SELECT NODAF,NAMA,MATIKA AS NILAI MATEMATIK SISWA WHERE MATIKA>=SELECT MAX(BIND) FROM SISWA); FROM

Pada perintah di atas kita menggunakan dua bentuk query:

Modul DTA.OPR.119.(2).A

45

Pertama adalah perintah untuk menampilkan kolom nodaf,nama dan nilai matematika. Kedua adalah perintah untuk mencari nilai maximum dari bahasa Indonesia, yang kedua inilah yang kita maksudkan dengan subquery.

Bila kita menjalankan subquery secara tersendiri:SELECT MAX(BIND) FROM SISWA;mysql> SELECT MAX(bind) FROM siswa; +-----------+ | MAX(bind) | +-----------+ | 9.33 | +-----------+ 1 row in set (0.54 sec)Gambar 1-35 Mencari Nilai Maximum

Dengan sudah diketahuinya hasil subquery pada gambar di atas, kita akan menampilkan data yang nilai matematikanya lebih besar sama dengan 9,33.mysql> SELECT nodaf,nama,matika FROM SISWA WHERE -> MATIKA>=(SELECT MAX(bind) FROM SISWA); +----------+---------------------+--------+ | nodaf | nama | matika | +----------+---------------------+--------+ | 31100366 | IRMA SAHARA | 9.67 | | 31100109 | TINTIN WINARTI | 9.33 | | 31100320 | RATIH HERMAWATI | 9.67 | | 31100116 | RISNA NOVIANTI | 10.00 | | 31100535 | SITI NURHAYATI | 9.67 | | 31100234 | DEVI MULYATI | 9.33 | | 31100523 | IQBAL KURNIA FADHLI | 9.67 | | 31100244 | IIS SOLIHAT | 9.33 | +----------+---------------------+--------+ 8 rows in set (0.40 sec)Gambar 1-36 Contoh Penggunaan Subquery pada satu tabel

Kita sudah mencoba subquery dalam satu tabel, selanjutnya mari kita mencoba subquery dalam dua tabel atau lebih: nodaf,nama siswa, sekolah asal, pilihan 1 (nodaf dan nama siswa dari tabel siswa, sekolah asal merupakan gabungan dari tabel siswa dan tabel sltp sedangkan pilihan 1 dari tabel prg_ahli) data yang ditampilkan adalah siswa yang sekolah asalnya dari SMPN yang mengambil pilihan 1 ke program RPL.

Modul DTA.OPR.119.(2).A

46

SELECT A.NODAF NODAF,A.NAMA AS "NAMA SISWA", CONCAT(B.STATUS_SLTP,' ',A.NAMA_SLTP) AS "SEKOLAH ASAL",C.PRG_AHLI FROM SISWA AS A,SLTP AS B,PRG_AHLI AS C WHERE A.KD_SLTP=(SELECT KD_SLTP FROM SLTP LIMIT 0,1) AND A.PIL_PRG1=(SELECT KD_PRG FROM PRG_AHLI LIMIT 2,1) AND A.KD_SLTP=B.KD_SLTP AND A.PIL_PRG1=C.KD_PRG;

Perintah di atas sebenarnya sama dengan perintah :SELECT A.NODAF NODAF,A.NAMA AS "NAMA SISWA", CONCAT(B.STATUS_SLTP,' ',A.NAMA_SLTP) AS "SEKOLAH ASAL",C.PRG_AHLI FROM SISWA AS A,SLTP AS B,PRG_AHLI AS C WHERE A.KD_SLTP='1' AND A.KD_SLTP=B.KD_SLTP AND A.PIL_PRG1='3' AND A.PIL_PRG1=C.KD_PRG;mysql> SELECT A.NODAF NODAF,A.NAMA AS "NAMA SISWA", CONCAT( -> B.STATUS_SLTP,' ',A.NAMA_SLTP) AS "SEKOLAH ASAL", -> C.PRG_AHLI FROM SISWA AS A,SLTP AS B,PRG_AHLI AS C WHERE -> A.KD_SLTP=(SELECT KD_SLTP FROM SLTP LIMIT 0,1) AND A.PIL_PRG1= -> (SELECT KD_PRG FROM PRG_AHLI LIMIT 2,1) AND -> A.KD_SLTP=B.KD_SLTP AND A.PIL_PRG1=C.KD_PRG; +--------+-------------------+-----------------+-----------------------+ | NODAF | NAMA SISWA | SEKOLAH ASAL | PRG_AHLI | +--------+-------------------+-----------------+-----------------------+ |31100003|SITI ROKAYAH |SMPN 2 PADALARANG|Rekayasa Perangkat Lunak| |31100006|AGUSTIN HUSRI NUNI |SMPN 1 BATUJAJAR |Rekayasa Perangkat Lunak| |31100031|NENENG YULIANTI |SMPN 1 PADALARANG|Rekayasa Perangkat Lunak| |31100034|AI SISKA FITRIYANTI|SMPN 10 BANDUNG |Rekayasa Perangkat Lunak|Gambar 1-37 Contoh Subquery dengan banyak tabel

c. Rangkuman Query Data adalah istilah yang populer dalam pemrograman database untuk ruang lingkup permintaan data atau perncarian dan pemilahan data yang dijalankan dengan perintah SELECT. Dengan perintah Select Tabel-tabel dalam suatu database dapat dikaitkan atau direlasikan antara tabel yang satu dengan tabel lainnya. Hasil dari permintaan dengan perintah select dapat langsung diketahui oleh pengguna database tersebut. Dengan SELECT kita dapat melakukan: Projection Menampilkan data tabel berdasarkan kolom yang diinginkan Selection

Modul DTA.OPR.119.(2).A

47

Menampilkan data tabel berdasarkan baris yang diinginkan Join Table Menampilkan data dari dua tabel atau lebih Perintah SELECT harus memiliki kriteria sebagai berikut: Keyword SELECT, untuk menentukan kolom-kolom yang akan ditampilkan Keyword FROM untuk menentukan ditabel mana kolom-kolom pada SELECT statement itu berada. d. Tugas Setelah memiliki database yang kita bahas pada modul ini, silahkan kerjakan kembali perintah-perintah yang telah ditampilkan mulai dari gambar 1 sampai dengan gambar 37. Hasil pekerjaan yang diselesaikan dikumpulkan dalam bentuk hardcopy. e. Test FormastifSELECT [DISTINCT | DISTINCTROW | ALL] kolom1, kolom2, kolom n FROM nama_tabel ; Atau SELECT * FROM nama_tabel ; Atau SELECT nama_field FROM nama_file [WHERE kondisi];

1. Untuk apa syntax penulisan yang selalu diawali dengan kata select? 2. Perhatikan dengan baik syntax penulisan di atas. Ada dua kata yang selalu muncul yaitu select dan from. Jelaskan masing-masing kegunaan kedua kata tersebut! 3. Untuk apa tanda bintang (*) pada perintah di atas? 4. Data seperti apa yang akan tampil dari tabel siswa, dengan perintah ini:SELECT NAMA FROM SISWA WHERE TMP_LAHIR NOT IN ('BANDUNG','CIMAHI');

5. Buat perintah yang berbeda tetapi hasilnya sama dengan no. 4 6. Kasus Permintaan:SELECT DISTINCT CONCAT(SLTP.STATUS_SLTP,' ', SISWA.NAMA_SLTP) AS "SEKOLAH ASAL" FROM SISWA,SLTP WHERE SISWA.KD_SLTP = SLTP.KD_SLTP;

a. Informasi apa yang dihasilkan dengan perintah di atas?

Modul DTA.OPR.119.(2).A

48

b. Kenapa digunakan klausa distinct, fungsi concat dan klausa as. 7. Jelaskan klausa like di bawah ini: a. ... where nama like E%; b. ... where nama like %an; c. ... where nama like %mul%; 8. Di bawah ada dua perintah select, yaitu:SELECT NAMA,CONCAT(TMP_LAHIR,', ',MID(TGL_LAHIR,9,2),MID(TGL_LAHIR,5,4),MID(TGL_LAHIR,1,4))AS "TEMPAT TGL LAHIR" FROM SISWA WHERE L_P='L';

DanSELECT NAMA,CONCAT(TMP_LAHIR, ',DATE_FORMAT(TGL_LAHIR,%d-%m-%Y)),AS "TEMPAT LAHIR"FROM SISWA WHERE L_P='L'; ', TGL

Bagaimana hasil dari kedua perintah di atas, jika dijalankan! 9. Isi dari tabel siswa, Bagaimana kita dapat mengetahui ada berapa pendaftar yang mengambil pilihan 1 ke Akuntansi, Penjualan, RPL dan Administrasi Perkantoran? 10. Tampilkan dari tabel siswa: nodaf, nama, matika data yang ditampilkan adalah data yang nilai matematikanya lebih besar atau sama dengan nilai tertinggi bahasa indonesia. 11. Data seperti apa yang akan tampil dengan perintah ini:SELECT A.NAMA "NAMA SISWA", CONCAT(B.STATUS_SLTP,' ',A.NAMA_SLTP)"SEKOLAH ASAL",C.PRG_AHLI FROM SISWA A,SLTP B,PRG_AHLI C WHERE A.KD_SLTP=(SELECT KD_SLTP FROM SLTP LIMIT 0,1)AND A.PIL_PRG1=(SELECT KD_PRG FROM PRG_AHLI LIMIT 2,1) AND A.KD_SLTP=B.KD_SLTP AND A.PIL_PRG1=C.KD_PRG;

Modul DTA.OPR.119.(2).A

49

f. Kunci Jawaban 1. Perintah SELECT adalah perintah untuk mengambil dan menampilkan data dari tabel sesuai dengan permintaan. 2. SELECT, untuk menentukan kolom-kolom yang akan ditampilkan FROM untuk menentukan ditabel mana kolom-kolom pada SELECT statement itu berada. 3. Untuk mengganti semua nama kolom