Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang...

33
Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang Programmer Basis Data Basit Adhi Prabowo Penerbit: Studio: i

Transcript of Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang...

Page 1: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

Seri: Kekuatan Super GRATISAN

MySQL: Menjadi Seorang Programmer BasisData

Basit Adhi Prabowo

Penerbit:

Studio:

i

Page 2: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

Seri: Kekuatan Super GRATISAN

MySQL: Menjadi Seorang Programmer Basis Data

No ISBN : 978-602-72262-1-0

Halaman Isi : xxiii + 267 halaman

Penulis:

Basit Adhi Prabowo

Penyunting:

Basit Adhi Prabowo

Desain Sampul:

Arif Kurniawan

Penerbit:

tamanpena.com

Jogjakarta

http://www.tamanpena.com

Studio:

Studio Genius Al-Faruq

Perum Villa Banguntapan H-12, Banguntapan, Bantul, DIY

0857-2915-2315

[email protected]

Hak Cipta dilindungi undang-undang. Dilarang memperbanyakkarya tulis ini dalam bentuk dan dengan cara apapun tanpa ijin

tertulis dari penerbit.Isi diluar tanggung jawab Penerbit danPercetakan. Isi merupakan tanggung jawab Studio Genius Al-Faruq

2014

ii

Page 3: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

COPY RIGHT

Ikon dan Perangkat Lunak MySQL:

Oracle

Ikon IGOS:

www.ristek.go.id

Perangkat Lunak yang digunakan:

Sistem Operasi: Ubuntu Linux

Penulisan: LibreOffice

Manipulasi Gambar: Gimp, Shotwell Viewer, GThumb

Perambah Internet: Mozilla Firefox

Penampil PDF: Okular

Pengolah Query: MySQL Workbench

iii

Page 4: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

KATA PENGANTAR

Segala puji bagi Allah SWT yang telah memberikan begitubanyak nikmat kepada makhluk-Nya. Sholawat dan salam semogaselalu terlimpah kepada Rasulullah Muhammad SAW. Amin.

Buku ini disusun berdasarkan manual resmi dari MySQLdan pengalaman panjang penulis. Pada masa kuliah, penulissebenarnya sudah mempelajari basis data pada matakuliah basisdata dan basis data lanjut. Selain mendapatkan teori tentang konsepbasis data, termasuk relasi dan sebagainya, penulis juga diajarkanbagaimana cara menggunakan basis data dengan Ms Access.Namun, materi praktikum hanya berkisar pembuatan tabel,pengisian data, pembuatan form dan melakukan relasi tabel. Haltersebut membuat penulis menganggap remeh basis data.Selanjutnya penulis berkenalan dengan bahasa pemrograman webPHP dan bahasa pemrograman desktop Ms Visual Basic yangberhubungan dengan basis data. Namun, sekali lagi, basis datahanya digunakan sebagai media simpan saja, belum menggunakanfitur-fitur MySQL. Akhirnya penulis lulus dan diterima untukbekerja pada Institusi Pendidikan swasta. Pekerjaan utama padaawal-awal bekerja adalah membuat program aplikasi untukmendukung proses pendidikan, tetapi masih berupa aplikasidesktop dan datanya masih terpisah-pisah. Setelah beberapa lamabekerja, penulis mendapatkan tawaran untuk membuat aplikasiberbasis web dengan bahasa Java dan framework ZK. Wow, duahal yang belum pernah penulis ketahui sebelumnya, tetapi bahasaJava memiliki kemiripan dengan C dan PHP, bahasapemrograman yang sudah penulis pelajari. Mulai pada saat itulah,pemahaman penulis semakin berkembang. Framework ZK

iv

Page 5: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

menawarkan konsep pembuatan aplikasi berbasis tim, yaitu dengankonsep MVC (Model, View dan Control). Model merepresentasikanmodel data dari basis data, View merepresentasikan tampilan danControl merepresentasikan pengolahan interaksi antara manusiadengan mesin. Model menjadi urusan programmer basis data, Viewmenjadi urusan programmer tampilan dan Control menjadi urusanprogrammer aplikasi. Sebuah konsep pembagian kerja yang bagus,meskipun pada kenyataannya semua dikerjakan sendiri, sepertikebanyakan aplikasi yang dibuat oleh orang-orang Indonesia padaumumnya, hehehe. Sebenarnya proyek tersebut dikerjakan olehbeberapa orang, tetapi pembagian tugasnya berdasarkan jenisaplikasi, misalnya aplikasi akademik, aplikasi perpustakaan,aplikasi kemahasiswaan dan sebagainya. Meskipun demikian,konsep ini memberikan pencerahan dan menambah pengetahuantentang basis data secara tidak langsung, karena semua query didalam Java harus dimodelkan, baik untuk pernyataan SELECT

sederhana maupun JOIN. Mulailah penulis 'dengan terpaksa'

(dengan terpaksa dalam tanpa petik, hehehe) belajar tentangVIEW di dalam MySQL untuk merepresentasikan model JOIN.

Selanjutnya, 'dengan terpaksa' belajar stored routine dan akhirnyadengan ikhlas mempelajari semua yang ada di dalam buku inikarena begitu besar manfaat yang dapat diperoleh. Dalamperjalanan, penulis mendapatkan proyek untuk membuat programuntuk MLM. Dalam program tersebut, pemrograman MySQLbanyak digunakan seperti pada Bagian 5. Kolaborasi Dengan

Programmer Aplikasi5 halaman 149. Pada program tersebut, kerja dariprogrammer aplikasi benar-benar lebih ringan.

Sungguh, merupakan suatu penyesalan karena tidakmengetahui suatu fitur yang sebenarnya sangat bermanfaat. Penulisterlalu memandang sebelah mata mempelajari basis data. Benarlahsuatu pernyataan dalam bentuk pertanyaan: "Apakah sama orangyang mengetahui dengan orang yang tidak mengetahui?"

Sungguh, merupakan suatu kesyukuran karena beranimengambil pekerjaan yang belum pernah diketahui sebelumnya(Java dan framework ZK), berbekal pengetahuan lain yang mirip(C dan PHP) dan pengetahuan lain yang mendukung (MySQL).

v

Page 6: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

Benarlah pernyataan bahwa belajar itu mulai dari ayunan hinggaliang lahat. Oleh karena itu, belajarlah. Carilah ilmu seluas-luasnya. Ajarkanlah kepada orang lain ilmu-ilmu yang benar danbermanfaat. Mengajarkan ilmu tidak membuat ilmu kita berkurang,tetapi akan menambah tingkat keilmuan dan wawasan kita, karenabisa jadi orang yang kita ajari itu memiliki sesuatu yang tidak kitaketahui atau alami sebelumnya, atau bisa jadi orang yang kita ajariitu memiliki suatu permasalahan yang aneh atau sulit sehinggamemaksa otak kita bekerja untuk menyelesaikannya.

Sekarang, Sistem Informasi di Institusi penulismenggunakan aplikasi berbasis Java dan framework ZK, denganbasis data MySQL dan dengan basis data yang terpadu.Pengalaman selama mempelajari dan bekerja dengan MySQLitulah yang dituangkan ke dalam buku ini, dengan berpedomanpada buku manual resmi dari MySQL.

Penulis menyadari bahwa penulis adalah seorang manusia,tempatnya salah dan lupa. Oleh karena itu, penulis sangatmengharapkan kritik dan saran. Apabila buku ini bermanfaat, makatularkanlah ilmu yang pembaca miliki untuk memberi kemanfaatanbagi orang lain.

Yogyakarta, 3 Desember 2014

Wassalam,

ttd.

Basit Adhi Prabowo

vi

Page 7: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

UCAPAN TERIMA KASIH

Kami mengucapkan terima kasih yang tidak terhinggakepada:

1. Allah SWT

2. Ayahanda (alm) Bahir Kun Marjani dan Ibunda IstibanahSuwardi

3. Istri Cholifah Setyo Mumpuni, Ananda PramuditaSholikhah Azzahra dan Ananda (alm) Mukhammad GeniusAl Faruq

4. Saudara-saudaraku dan rekan-rekanku

5. "Laptop Sekon Jadul"-ku yang sudah rusak baterainya

6. Guru-guru dan teman-teman diskusi

7. Komunitas Gratisan dan Open Source (Copy Right halaman3), baik perangkat lunak, tulisan maupun multimedia.

8. Rekan penulis (Daftar Pustaka halaman 265)

9. STIKes 'Aisyiyah Yogyakarta

10. Rekan pendiri tamanpena.com: Arif Kurniawan danNurdin Syaiful Baladi

11. Pembaca yang budiman

12. Dan pihak lain yang membantu secara langsung maupuntidak langsung atas terbitnya buku ini

vii

Page 8: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

DAFTAR GAMBAR

Gambar 1.1: Flowchart kontrol IF-ELSEIF-ELSE........................28Gambar 1.2: Flowchart kontrol LOOP...........................................29Gambar 1.3: Flowchart kontrol REPEAT......................................30Gambar 1.4: Flowchart kontrol WHILE........................................31Gambar 1.5: Penyimpanan data ke dalam satu tabel tanpa

menggunakan partisi.................................................................60Gambar 1.6: Penyimpanan data ke dalam satu tabel menggunakan

partisi berdasarkan bulan dan tahun..........................................62Gambar 1.7: Kondisi partisi ketika tidak ada data.........................68Gambar 1.8: Penyisipan data pada tabel lib_klas2.........................69Gambar 1.9: Kondisi partisi ketika disisipkan 1 buah data pada

tabel lib_klas2...........................................................................69Gambar 1.10: Kondisi partisi ketika disisipkan 2 buah data pada

tabel lib_klas2...........................................................................70Gambar 1.11: Kondisi partisi ketika disisipkan 3 buah data pada

tabel lib_klas2...........................................................................71Gambar 1.12: Perbandingan menggunakan inside filter dan outside

filter...........................................................................................81Gambar 2.1: Tabel-tabel yang berhubungan..................................85Gambar 3.1: Perbandingan pengolahan di aplikasi dengan

pengolahan di server MySQL.................................................122Gambar 4.1 Membuka MySQL Workbench................................124Gambar 4.2 Membuat model baru................................................125Gambar 4.3 Tab MySQL Model...................................................126Gambar 4.4 Memulai proses Reverse Engineer...........................126Gambar 4.5 Memasukkan informasi koneksi ke server basis data

.................................................................................................127Gambar 4.6 Memasukkan kata sandi server Mysql.....................127Gambar 4.7 Koneksi ke server MySQL berhasil.........................128Gambar 4.8 Memilih basis data yang akan dibuat modelnya......128Gambar 4.9 Informasi untuk membuat model berhasil diambil. .129Gambar 4.10 Pemilihan obyek yang akan dibuat modelnya........129Gambar 4.11 Pembentukan model berhasil..................................130Gambar 4.12 Proses Reverse Engineer selesai............................130Gambar 4.13 Diagram EER dan schema terbentuk.....................131

viii

Page 9: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

Gambar 4.14 Diagram EER terbentuk.........................................131Gambar 4.15 Mengubah nama schema........................................132Gambar 4.16 Memberi nama schema dan menyimpan perubahan

.................................................................................................133Gambar 4.17 Menggambar diagram EER....................................133Gambar 4.18 Membuat tabel........................................................133Gambar 4.19 Memilih opsi pembuatan tabel dan memposisikan

tabel.........................................................................................134Gambar 4.20 Mengubah tabel......................................................134Gambar 4.21 Mengatur nama, jenis huruf, mesin dan komentar dari

tabel.........................................................................................135Gambar 4.22 Membuat kolom......................................................135Gambar 4.23 Memberi nama indeks............................................136Gambar 4.24 Menentukan indeks.................................................136Gambar 4.25 Menambahkan trigger.............................................136Gambar 4.26 Menulis kode trigger...............................................136Gambar 4.27 Membuat partisi tabel.............................................137Gambar 4.28 Menyisipkan data dasar..........................................137Gambar 4.29 Membuat view........................................................138Gambar 4.30 Memilih opsi pembuatan view dan memposisikan

view.........................................................................................138Gambar 4.31 Mengisi definisi dari view......................................138Gambar 4.32 Membuat Group Routine........................................139Gambar 4.33 Memilih opsi pembuatan stored routine dan

memposisikan routine group...................................................139Gambar 4.34 Membuat Stored Routine pada Routine Group......140Gambar 4.35 Membuat Layer......................................................140Gambar 4.36 Memilih opsi pembuatan layer dan memposisikan

layer.........................................................................................141Gambar 4.37 Mengatur nama dan latar belakang dari layer........141Gambar 4.38 Membuat teks.........................................................142Gambar 4.39 Mengisi teks............................................................142Gambar 4.40 Memulai proses Forward Engineer........................143Gambar 4.41 Memilih koneksi ke server.....................................143Gambar 4.42 Opsi pembuatan basis data.....................................144Gambar 4.43 Memilih obyek yang akan dibuat di server MySQL

.................................................................................................145

ix

Page 10: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

Gambar 4.44 Review baris kode yang akan dijalankan di dalam server MySQL.........................................................................145

Gambar 4.45 Proses Forward Engineer selesai............................146Gambar 4.46 Pembuatan basis data dengan pemodelan..............147Gambar 4.47 Pembuatan basis data dengan perangkat lunak GUI

tanpa pemodelan......................................................................147Gambar 4.48 Pembuatan basis data berbasis teks tanpa pemodelan

.................................................................................................148Gambar 5.1 Pohon perusahaan.....................................................149Gambar 5.2 Simulasi penyisipan anggota baru ke sponsor dengan

jumlah anak genap atau 0........................................................150Gambar 5.3 Simulasi penyisipan anggota baru ke sponsor dengan

jumlah anak hanya 1................................................................151Gambar 5.4 Simulasi penyisipan anggota baru ke sponsor dengan

jumlah anak ganjil...................................................................151Gambar 5.5 Model Basis Data dengan MySQL Workbench.......154Gambar 5.6 Halaman Depan (Registrasi)....................................212Gambar 5.7 Halaman Depan (Login)...........................................212Gambar 5.8 Halaman Simpan Data Registrasi.............................219Gambar 5.9 Halaman Rumah – Anggota.....................................226Gambar 5.10 Halaman Daftar Transaksi – Anggota....................235Gambar 5.11 Halaman Daftar Bonus – Anggota..........................237Gambar 5.12 Halaman Pemesanan Barang – Anggota................239Gambar 5.13 Halaman Depan – Admin.......................................241Gambar 5.14 Halaman Konfigurasi..............................................247Gambar 5.15 Halaman Set Nominal Transaksi............................249Gambar 5.16 Halaman Set Data Peringkat...................................251Gambar 5.17 Halaman Transfer Bonus........................................254Gambar 5.18 Halaman Setujui Pemesanan Barang......................256Gambar 5.19 Halaman Set Pembayaran Anggota Baru...............257Gambar 5.20 Halaman Pohon Perusahaan...................................259

x

Page 11: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

DAFTAR TABEL

Tabel 1.1. Tipe Data Bilangan Tidak Bertanda di Mysql.................8Tabel 1.2. Tipe Data Bilangan Bertanda di Mysql.........................10Tabel 1.3. Native Routine dan Operator di MySQL......................13Tabel 1.4 Contoh resultset ketika menggunakan variabel pengguna

pada klausa where.....................................................................41Tabel 1.5 Contoh resultset ketika tidak menggunakan variabel

pengguna pada klausa where.....................................................42Tabel 2.1 Resultset dari penggunaan yang salah untuk variabel

pada USING pada PREPARED STATEMENT........................99Tabel 2.2 Contoh data pada tabel waitinglistQuery.....................108Tabel 2.3 contoh isi dari TABEL debug.......................................118Tabel 5.1 Pemeringkatan anggota................................................153

xi

Page 12: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

DAFTAR ISI

Copy Right......................................................................................iiiKata Pengantar.................................................................................ivUcapan Terima Kasih.....................................................................viiDaftar Gambar...............................................................................viiiDaftar Tabel.....................................................................................xiDaftar Isi.........................................................................................xiiDaftar Kode.................................................................................xviiiBagian 1. Basis Data MySQL..........................................................1

A.MySQL....................................................................................11.Pendahuluan........................................................................12.Mendapatkan MySQL........................................................23.Instal MySQL.....................................................................34.Tautan..................................................................................7

B.Tipe Data, Operator dan Native Routine.................................71.Tipe Data.............................................................................72.Strategi Pemilihan Tipe Data............................................103.Presedensi Operator..........................................................124.Native Routine dan Operator............................................13

C.Kontrol...................................................................................271.IF-ELSEIF-ELSE (jika-maka-selain itu)..........................272.CASE (kasus)....................................................................283.LOOP (putaran)................................................................294.REPEAT (ulangan)...........................................................305.WHILE (selama)...............................................................306.LEAVE (tinggalkan), ITERATE (iterasi) dan RETURN

(kembali)........................................................................31D.Deklarasi Handler..................................................................32

1.Konsep Deklarasi Handler................................................322.Sinstaksis Deklarasi Handler............................................323.Contoh Deklarasi Handler................................................334.Batasan Deklarasi Handler...............................................34

E.View.......................................................................................341.Konsep View.....................................................................342.Sintaksis View..................................................................363.Contoh View #1................................................................36

xii

Page 13: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

4.Contoh View #2................................................................375.Batasan View....................................................................38

a.Batasan View dengan Algoritma Merge......................38b.Batasan Non-Updatable View.....................................38c.Batasan Insertable View..............................................38d.Batasan Deletable View..............................................39

F.Variable (Variabel).................................................................391.Konsep Variabel................................................................392.Sintaksis Variabel..............................................................403.Batasan Variabel...............................................................41

G.Stored Routine (Rutin Tersimpan)........................................421.Konsep Stored Routine.....................................................422.Sintaksis Stored Routine...................................................423.Pemanggilan Stored Routine............................................444.Contoh Stored Routine.....................................................455.Batasan Stored Routine....................................................46

H.Prepared Statement (Pernyataan Tersiapkan).......................471.Konsep Prepared Statement..............................................472.Keuntungan Menggunakan Prepared Statement..............473.Sintaksis Prepared Statement...........................................474.Contoh Prepared Statement di dalam MySQL.................485.Contoh Prepared Statement Menggunakan API...............486.Batasan Prepared Statement.............................................49

I.Cursor (Kursor).......................................................................511.Konsep Kursor..................................................................512.Sintaksis Kursor................................................................513.Contoh Kursor..................................................................534.Batasan Kursor..................................................................55

J.Trigger (Pemicu).....................................................................561.Konsep Trigger.................................................................562.Sintaksis Trigger...............................................................563.Contoh Trigger..................................................................584.Batasan Trigger.................................................................59

K.Partition (Pembagian / Partisi)..............................................591.Konsep Partisi...................................................................592.Satu Tabel dengan Partisi vs Banyak Tabel......................613.Jenis Partisi.......................................................................62

xiii

Page 14: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

4.Sub partisi.........................................................................635.Sintaksis Partisi.................................................................64

a.Sintaksis Partisi RANGE.............................................64b.Sintaksis Partisi LIST..................................................65c.Sintaksis Partisi HASH atau LINEAR HASH............65d.Sintaksis Partisi KEY atau LINEAR KEY.................65

6.Contoh Partisi #1..............................................................667.Contoh Partisi #2..............................................................678.Batasan Partisi..................................................................71

L.Event Scheduler (Penjadwalan Tugas)..................................721.Konsep Event Scheduler...................................................722.Mengaktifkan Event Scheduler........................................733.Sintaksis Event Scheduler................................................744.Contoh Event Scheduler...................................................755.Batasan Event Scheduler..................................................76

M.Index (Indeks).......................................................................761.Pengertian Indeks..............................................................762.Indeks multi kolom...........................................................773.Sintaksis Indeks................................................................774.Contoh Indeks...................................................................785.Batasan Indeks..................................................................78

N.Inside dan Outside Filter.......................................................791.Inside Filter.......................................................................79

a.Pengertian Inside Filter...............................................79b.Contoh Inside Filter.....................................................79

2.Outside Filter....................................................................80a.Pengertian Outside Filter.............................................80b.Contoh Outside Filter..................................................80

3.Perbedaan Inside Filter dan Outside Filter.......................80Bagian 2.Optimasi dan Trik............................................................82

A.Optimasi................................................................................821.Optimasi View: Buat View dengan algorithm=merge,

Hindari algorithm=undefined.........................................822.Optimasi View: Berikan WHERE NULL pada View yang

Digunakan Sebagai Struktur Data Untuk MenghindariOutside Filter..................................................................83

3.Optimasi View: Hindari Melakukan Join yang Melibatkan

xiv

Page 15: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

Lebih dari 1 View...........................................................834.Optimasi Indeks: Selalu Gunakan Key Partisi pada Klausa

Where.............................................................................845.Optimasi Indeks: Masukkan Kolom-kolom yang

Berhubungan ke dalam Indeks dengan Tipe Data dan Ukuran yang Sama.........................................................85

6.Optimasi Indeks: Gunakan Indeks pada Klausa Group By atau Join, Hindari Menggunakan Char atau Binary.......86

7.Optimasi Filter: Ubah Filter Dengan Klausa In MenjadiJoin.................................................................................87

8.Optimasi Filter: Gunakan Inside Filter untuk Klausa Group By dan Sub-query...............................................88

9.Optimasi Prepared Statement: Jangan Gunakan Prepared Statement pada Stored Procedure..................................89

B.Trik.........................................................................................941.Trik Variabel Pengguna: Gunakan Variabel Pengguna

Dengan Nama yang Unik Untuk Setiap Function / Procedure / Trigger / Event Apabila Tidak Untuk Mengirimkan Nilai.........................................................94

2.Trik Stored Routine: Hindari Terlalu Banyak Menggunakan Stored Routine untuk Menjalankan Query........................................................................................96

3.Trik Prepared Statement: Ubah Function Menjadi Procedure Jika Terdapat SQL dinamis...........................96

4.Trik Prepared Statement: Hindari Penggunaan Prepared Statement untuk Mengeksekusi Query yang Berbeda Pada Nama yang Sama Tanpa Parameter.......................97

5.Trik Prepared Statement: Hindari Penggunaan Parameter pada USING untuk Selain Nilai Konstan, GunakanConcat3...........................................................................98

6.Trik Waiting for Metadata Lock: Buat Penjadwalan untuk Perubahan Struktur atau Eksekusi Statement DDL.....100

7.Trik Array: Buat Tabel Pengganti Array.........................1108.Trik Debug: Buat Tabel Untuk Mencari Kesalahan.......116

C.Tautan Optimasi MySQL....................................................118Bagian 3.Programmer Basis Data.................................................119

A.Programmer Basis Data.......................................................119

xv

Page 16: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

B.Menjadi Programmer Basis Data yang Handal...................120C.Keuntungan Mengaplikasikan Pemrograman MySQL.......121

Bagian 4.MySQL Workbench......................................................123A.MySQL Workbench.............................................................123

1.Pengertian.......................................................................1232.Instalasi...........................................................................124

B.Bekerja Dengan MySQL Workbench..................................1241.Menampilkan MySQL Workbench.................................1242.Reverse Engineering.......................................................124

a.Pengertian Reverse Engineering...............................124b.Mengapa Menggunakan Reverse Engineering?.......125c.Reverse Engineering Dengan MySQL Workbench. .125

3.Forward Engineering......................................................132a.Pengertian Forward Engineering...............................132b.Mengapa Menggunakan Forward Engineering?.......132c.Pemodelan Basis Data Dengan MySQL Workbench132d.Forward Engineering Dengan MySQL Workbench..142

4.Perbandingan Pembuatan Basis Data Dengan Pemodelan Menggunakan MySQL Workbench Dan PembuatanBasis Data Tanpa Pemodelan.......................................146

Bagian 5.Kolaborasi Dengan Programmer Aplikasi....................149A.Kebutuhan Klien.................................................................149B.Model...................................................................................154C.Program MySQL.................................................................155

1.Tabel User.......................................................................1552.Tabel Jenis Transaksi dan Konfigurasi...........................1773.Tabel Peringkat...............................................................1794.Tabel Transaksi...............................................................1795.Penjadwalan Bonus.........................................................183

a.Per Pekan...................................................................183b.Per Bulan...................................................................186

6.Array...............................................................................1887.Fungsi dapatkan_3levelanak..........................................1928.View................................................................................195

a.View v_bonus............................................................195b.View v_hargabarang..................................................195c.View v_kirim_bonus.................................................196

xvi

Page 17: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

d.View v_kualitatif, fungsi bonus_berikut dan fungsi peringkat_berikut....................................................196

e.View v_kuantitatif.....................................................198f.View v_pemesanan_barang.......................................199g.View v_profil.............................................................200h.View v_transaksi.......................................................200i.View v_tree_perusahaan............................................201

9.Debug..............................................................................201D.Program Aplikasi (PHP)......................................................202

1.Umum.............................................................................202a.save.php.....................................................................202b.gambar.inc.php..........................................................207

2.Halaman Anggota...........................................................211a.Halaman Depan.........................................................211b.Halaman Simpan Data Registrasi.............................218c.Cek Login..................................................................223d.Halaman Rumah – Anggota......................................225e.Halaman Daftar Transaksi – Anggota.......................234f.Halaman Daftar Bonus – Anggota.............................236g.Halaman Pemesanan Barang – Anggota...................238

3.Halaman Admin..............................................................241a.Halaman Depan – Admin..........................................241b.Cek Login..................................................................242c.Halaman Rumah – Admin.........................................244d.Halaman Konfigurasi................................................246e.Halaman Set Nominal Transaksi...............................249f.Halaman Set Data Peringkat......................................251g.Halaman Transfer Bonus...........................................254h.Halaman Setujui Pemesanan Barang........................255i.Halaman Set Pembayaran Anggota Baru...................257j.Halaman Pohon Perusahaan.......................................259

Indeks Buku..................................................................................263Daftar Pustaka...............................................................................265Buku Penulis.................................................................................266Tentang Penulis.............................................................................267

xvii

Page 18: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

DAFTAR KODE

[kode 1] Perintah untuk menginstal paket MySQL melaluirepositori YUM yang ada di mysql.com.....................................3

[kode 2] Perintah untuk menginstal paket MySQL melaluirepositori YUM yang ada di distribusi Linux.............................4

[kode 3] Perintah untuk menginstal paket MySQL melaluirepositori APT yang ada di mysql.com.......................................4

[kode 4] Perintah untuk menginstal paket MySQL melaluirepositori APT yang ada di distribusi Linux...............................5

[kode 5] cara untuk mengecek bilangan numerik yang bertanda. .10[kode 6] cara untuk mengecek teks................................................11[kode 7] sintaks kontrol IF.............................................................27[kode 8] sintaks kontrol CASE.......................................................28[kode 9] sintaks kontrol LOOP......................................................29[kode 10] sintaks kontrol REPEAT................................................30[kode 11] sintaks kontrol WHILE..................................................30[kode 12] contoh LEAVE, ITERATE dan RETURN.....................32[kode 13] sintaks deklarasi HANDLER.........................................32[kode 14] sintaksis aksi_handler pada deklarasi HANDLER........33[kode 15] sintaksis nilai_kondisi pada deklarasi HANDLER.......33[kode 16] contoh deklarasi Handler...............................................34[kode 17] sintaks pembuatan VIEW..............................................36[kode 18] sintaks melihat VIEW....................................................36[kode 19] contoh pembuatan VIEW v_contoh1.............................36[kode 20] contoh pemakaian VIEW v_contoh1.............................36[kode 21] perubahan pernyataan ketika VIEW v_contoh1

dijalankan pada algoritma merge..............................................36[kode 22] contoh lain dari pemakaian VIEW v_contoh1...............37[kode 23] perubahan pernyataan ketika VIEW v_contoh1

dijalankan melalui pernyataan kedua........................................37[kode 24] contoh pembuatan VIEW yang mengandung kolom

turunan.......................................................................................39[kode 25] Sintaks deklarasi VARIABEL........................................40[kode 26] sintaks melihat VARIABEL...........................................40[kode 27] Sintaks pengisian VARIABEL.......................................40[kode 28] Sintaks variabel global, variabel pengguna dan

xviii

Page 19: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

VARIABEL lokal......................................................................41[kode 29] sintaks pembuatan PROSEDUR....................................42[kode 30] sintaks pembuatan FUNGSI..........................................43[kode 31] sintak melihat PROSEDUR/FUNGSI...........................43[kode 32] sintaks pemanggilan PROSEDUR.................................44[kode 33] sintaks pemanggilan FUNGSI.......................................44[kode 34] contoh pembuatan PROCEDURE p_prosedur1............45[kode 35] contoh pemanfaatan PROCEDURE p_prosedur1.........45[kode 36] sintaks pembuatan PREPARED STATEMENT............47[kode 37] sintaks untuk mengeksekusi PREPARED STATEMENT

...................................................................................................47[kode 38] sintaks untuk mengakhiri PREPARED STATEMENT..48[kode 39] contoh penggunaan PREPARED STATEMENT...........48[kode 40] contoh penggunaan API PREPARED STATEMENT....49[kode 41] sintaks/konstruksi KURSOR.........................................52[kode 42] contoh penggunaan KURSOR.......................................54[kode 43] perbandingan KURSOR dengan FETCH pada bahasa

pemrograman PHP....................................................................54[kode 44] optimasi kode PHP menggunakan PREPARED

STATEMENT............................................................................55[kode 45] sintaks pembuatan TRIGGER.......................................56[kode 46] sintaks melihat TRIGGER.............................................57[kode 47] contoh pembuatan TRIGGER t_pemicu1......................58[kode 48] contoh pernyataan yang mengeksekusi TRIGGER

t_pemicu1..................................................................................58[kode 49] contoh pernyataan yang tidak akan mengeksekusi

TRIGGER t_pemicu1................................................................58[kode 50] rumus untuk menentukan posisi partisi dari partisi jenis

HASH........................................................................................63[kode 51] sintaks melihat PARTISI/TABEL..................................64[kode 52] sintaks pembuatan partisi RANGE................................65[kode 53] sintaks pembuatan partisi LIST.....................................65[kode 54] sintaks pembuatan partisi HASH atau LINEAR HASH

...................................................................................................65[kode 55] sintaks pembuatan partisi KEY atau LINEAR KEY.....65[kode 56] contoh pembuatan tabel yang memiliki partisi: RANGE,

LIST dan HASH........................................................................66

xix

Page 20: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

[kode 57] contoh data yang disisipkan ke dalam tabel yang sudahdipartisi......................................................................................67

[kode 58] Sintaksis menghidupkan eksekusi EVENTSCHEDULER...........................................................................74

[kode 59] Sintaksis mematikan eksekusi EVENT SCHEDULER 74[kode 60] sintaksis pembuatan EVENT SCHEDULER................74[kode 61] sintaksis jadwal pada EVENT SCHEDULER...............75[kode 62] sintaksis interval pada EVENT SCHEDULER.............75[kode 63] sintaks melihat EVENT SCHEDULER.........................75[kode 64] contoh penggunaan EVENT SCHEDULER.................76[kode 65] sintaks pembuatan INDEKS..........................................77[kode 66] opsi pembuatan INDEKS...............................................78[kode 67] contoh pembuatan PRIMARY KEY, UNIQUE dan

INDEX.......................................................................................78[kode 68] cara untuk mengecek INDEKS......................................79[kode 69] contoh Inside Filter........................................................79[kode 70] contoh Outside Filter......................................................80[kode 71] contoh penggunaan view yang menghasilkan

algorithm=merge (tepat)............................................................82[kode 72] contoh penggunaan view yang menghasilkan

algorithm=undefined (tidak tepat)............................................82[kode 73] penggunaan algorithm=undefined untuk kepentingan

pembuatan struktur data............................................................83[kode 74] penggunaan objek yang dibuat berdasarkan hasil dari

VIEW.........................................................................................83[kode 75] contoh join view yang benar..........................................84[kode 76] contoh join view yang salah...........................................84[kode 77] contoh optimasi query yang melibatkan tabel berpartisi

...................................................................................................84[kode 78] memasukkan kolom-kolom yang memiliki hubungan ke

dalam INDEX dengan tipe data dan ukuran yang sama...........86[kode 79] contoh yang benar dari query yang menggunakan group

by...............................................................................................87[kode 80] contoh tidak tepat dari query yang menggunakan group

by...............................................................................................87[kode 81] contoh penggunaan klausa IN (tidak tepat)...................88[kode 82] contoh penggunaan JOIN sebagai ganti dari klausa IN

xx

Page 21: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

(tepat).........................................................................................88[kode 83] contoh penggunaan inside filter pada klausa group by

(tepat).........................................................................................88[kode 84] contoh penggunaan outside filter pada klausa group by

(tidak tepat)...............................................................................89[kode 85] pembuatan PROCEDURE tanpa prepared statement p1()

dan PROCEDURE dengan prepared statement p2()................90[kode 86] perbandingan waktu ekseskusi PROCEDURE tanpa

prepared statement p1() dan PROCEDURE dengan preparedstatement p2()............................................................................93

[kode 87] Contoh penamaan variabel pengguna yang tepat..........95[kode 88] Contoh penamaan variabel pengguna yang tidak tepat. 95[kode 89] cara mengubah FUNCTION menjadi PROCEDURE...97[kode 90] penggunaan nama yang sama untuk beberapa prepared

statement (tidak tepat)...............................................................98[kode 91] query biasa tanpa menggunakan prepared statement

(tepat).........................................................................................98[kode 92] contoh penggunaan yang salah untuk variabel pada

USING pada PREPARED STATEMENT.................................98[kode 93] contoh penggunaan PREPARED STATEMENT yang

benar..........................................................................................99[kode 94] contoh lain penggunaan yang salah untuk variabel pada

USING pada PREPARED STATEMENT.................................99[kode 95] contoh lain penggunaan yang salah untuk variabel pada

USING pada PREPARED STATEMENT...............................100[kode 96] penjadwalan pada Linux..............................................101[kode 97] perintah untuk restart secara reguler pada cron...........101[kode 98] perintah untuk penjadwalan eksekusi DDL.................107[kode 99] contoh DDL yang dimasukkan ke dalam jadwal.........109[kode 100] cara melihat hasil eksekusi DDL...............................110[kode 101] jumlah kolom yang dibutuhkan untuk membuat array

.................................................................................................110[kode 102] pembuatan TABEL array_inf.....................................111[kode 103] pembuatan PROCEDURE untuk id_array baru dan

pencatatan ke tabel array_inf..................................................113[kode 104] pembuatan PROCEDURE pembersihan_array dan

EVENT bersihkan_array.........................................................114

xxi

Page 22: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

[kode 105] contoh pembuatan TABEL pengganti array...............115[kode 106] contoh pemanfaatan array..........................................116[kode 107] pembuatan TABEL debug..........................................116[kode 108] contoh program sebelum diketahui kesalahan...........117[kode 109] contoh menangkap error.............................................117[kode 110] rumus bonus pasangan...............................................152[kode 111] rumus bonus pasive income.......................................153[kode 112] pembuatan tabel User.................................................162[kode 113] pembuatan tabel Anggota User..................................168[kode 114] pembuatan prosedur sisip_anggota(), simpan_anggota()

dan setjumlahanakuntukatasan() serta view v_perusahaansiapisi.....................................................................176

[kode 115] pembuatan prosedur resetgambar_3atasan()..............177[kode 116] pembuatan tabel Jenis Transaksi dan Konfigurasi.....178[kode 117] pembuatan tabel Peringkat.........................................179[kode 118] pembuatan tabel Transaksi.........................................181[kode 119] pembuatan prosedur setjumlahpembelianuntukatasan()

.................................................................................................183[kode 120] pembuatan event set_bonusperpekan()......................184[kode 121] pembuatan prosedur bonusperpekan().......................186[kode 122] pembuatan event set_bonusbulanan..........................186[kode 123] pembuatan prosedur bonusbulanan().........................188[kode 124] pembuatan TABEL virtual_memory dan array_inf,

serta PROCEDURE, FUNCTION dan EVENT pendukungnya.................................................................................................192

[kode 125] pembuatan function dapatkan_3levelanak()..............195[kode 126] pembuatan view v_bonus...........................................195[kode 127] pembuatan view v_hargabarang................................196[kode 128] pembuatan view v_kirim_bonus................................196[kode 129] pembuatan fungsi bonus_berikut() dan

peringkat_berikut()..................................................................198[kode 130] pembuatan view v_kualitatif......................................198[kode 131] pembuatan view v_kuantitatif....................................199[kode 132] pembuatan view v_pemesanan_barang.....................200[kode 133] pembuatan view v_profil...........................................200[kode 134] pembuatan view v_transaksi......................................201[kode 135] pembuatan view v_tree_perusahaan..........................201

xxii

Page 23: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

[kode 136] kode save.php.............................................................207[kode 137] kode gambar.inc.php..................................................211[kode 138] kode Halaman Depan.................................................218[kode 139] kode Halaman Simpan Data Registrasi.....................222[kode 140] kode Halaman Konfirmasi.........................................223[kode 141] kode Cek Login..........................................................225[kode 142] kode Halaman Rumah – Anggota..............................227[kode 143] kode Menu – Anggota................................................227[kode 144] kode Profil – Anggota................................................234[kode 145] kode Halaman Daftar Transaksi – Anggota...............236[kode 146] kode Halaman Daftar Bonus – Anggota....................238[kode 147] kode Halaman Pemesanan Barang – Anggota...........240[kode 148] kode Halaman Depan – Admin..................................242[kode 149] kode Cek Login – Administrator...............................243[kode 150] kode Halaman Rumah – Admin.................................245[kode 151] kode Menu – Admin...................................................246[kode 152] kode Halaman Konfigurasi........................................249[kode 153] kode Halaman Set Nominal Transaksi.......................251[kode 154] kode Halaman Set Data Peringkat.............................254[kode 155] kode Halaman Transfer Bonus...................................255[kode 156] kode Halaman Setujui Pemesanan Barang................257[kode 157] kode Halaman Set Pembayaran Anggota Baru..........258[kode 158] kode Halaman Pohon Perusahaan..............................262

xxiii

Page 24: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

BAGIAN 1. BASIS DATA MYSQL1

A. MySQL

1. PendahuluanMySQL adalah sebuah perangkat lunak sistem manajemen

basis data (database management system). Sebuah basis dataadalah koleksi data yang terstruktur. Server MySQL bersifat cepat,dapat diandalkan dan mudah untuk digunakan. Ada banyakaplikasi yang menggunakan server MySQL untuk menyimpan data,mulai dari perangkat lunak desktop, perangkat lunak perkantoran,aplikasi web dan sebagainya. Selain itu, server MySQL dapatdigunakan secara lokal maupun digunakan untuk aplikasi berbasisjaringan. Meskipun selalu dalam pengembangan, server MySQLmemiliki banyak fitur dan kemampuan yang lebih dari cukupuntuk mendukung aplikasi-aplikasi yang dibuat.

Perangkat lunak MySQL bersifat Open Source. Open Sourceberarti setiap orang boleh menggunakan dan mengubah perangkatlunak, dengan kata lain siapapun boleh mengunduh MySQL dariinternet dan menggunakannya tanpa membayar apapun. Siapapunboleh mempelajari dan mengubah kode yang ada untukdisesuaikan dengan kebutuhan. MySQL menggunakan lisensi GPL(GNU General Public License), http://www.fsf.org/licenses/.MySQL yang gratis disebut juga MySQL versi komunitas(community version). Selain itu, MySQL juga tersedia dalam versikomersil (commercial version), tentu saja dengan fasilitas yanglebih dibandingkan versi komunitas. Pada buku ini, penulismenggunakan MySQL versi komunitas, MySQL 5.5.38-0ubuntu0.14.04.1 yang berjalan pada sistem operasi Ubuntu 14.04.

1 Sebagian besar diadaptasi dari Manual MySQL 5.6, sehinggabeberapa hal mungkin berbeda atau tidak dapat dijalankan padaversi di bawahnya atau di atasnya

Bagian 1. Basis Data MySQL - Halaman 1

Page 25: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

BAGIAN 2. OPTIMASI DAN TRIK2

A. Optimasi

1. Optimasi View: Buat View Dengan Algorithm=merge,

Hindari Algorithm=undefined

Buat view dengan algorithm=merge, hindari

algorithm=undefined, kecuali memang butuh seperti itu. Hal

tersebut hanya akan menghasilkan outside filter. Lihat Bagian 1.N.3

Perbedaan Inside Filter dan Outside Filter halaman 80.

Contoh yang benar:

CREATE DEFINER=`root`@`localhost` ALGORITHM=MERGE

VIEW v_mhs AS SELECT * FROM ak_mahasiswa;

[kode 71] contoh penggunaan view yang menghasilkanalgorithm=merge (tepat)

Contoh yang salah:

CREATE OR REPLACE DEFINER=`root`@`localhost`

ALGORITHM=UNDEFINED VIEW v_mhs AS SELECT * FROM ak_mahasiswa;

[kode 72] contoh penggunaan view yang menghasilkanalgorithm=undefined (tidak tepat)

Untuk beberapa kasus, secara otomatis akan diubah kealgorithm=undefined, meskipun dibuat dengan

algorithm=merge. Oleh karena itu, dalam membuat view perlu

memperhatikan kaidah-kaidah yang ada pada Bagian 1.E.5 Batasan

View halaman 38. Untuk menjamin bahwa view yang dihasilkanmemiliki algoritma yang sesuai dengan keinginan, maka penggunaperlu menjalankan perintah seperti pada [kode 18] halaman 36.

2 Masing-masing tabel pada setiap contoh adalah independen danspesifikasi tabel unik untuk setiap contoh

Bagian 2.Optimasi dan Trik - Halaman 82

Page 26: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

BAGIAN 3. PROGRAMMER BASIS DATA

A. Programmer Basis Data4

Seorang programmer basis data profesional bertanggungjawab untuk menangani basis data, termasuk melakukan integrasidata. Programmer basis data dapat mendesain, membuat danmengimplementasikan basis data yang sebenarnya dari nol, tetapikebanyakan perusahaan menggunakan basis data komersial dariOracle, IBM, atau Microsoft. Sekolah yang memberikan gelarDatabase Administration juga dapat ditemukan di beberapasekolah (Luar Negeri).

Sebuah basis data menyimpan informasi sehingga informasimudah untuk diakses oleh program komputer atau query. Adabanyak model basis data: flat-file, hierarchical, network,relational, dan object-oriented. Model yang sering digunakanadalah model relational.

Programmer basis data atau kadang disebut sebagaiadministrator basis data, melindungi informasi yang ada pada basisdata. Tanggung jawab hariannya secara umum meliputi tigakategori: perawatan basis data, pemrosesan basis data ataumembuat program.

Buku ini menitik beratkan pada pembuatan program padabasis data, keahlian yang paling sulit diantara ketiga kategori diatas.

Menurut www.payscale.com, sebagian besar analis danprogrammer basis data mendapatkan gaji diantara $36,329 hingga$96,289 per tahun, pada bulan Januari 2014. Bureau of LaborStatistics (BLS, www.bls.gov) Amerika membuat proyek bahwaprogrammer basis data tumbuh sekitar 15% pada rentang 2012hingga 2022, sebuah kecepatan yang tinggi dibandingkan rata-ratakecepatan pertumbuhan pekerjaan lain.

4 Terjemahan bebas darihttp://degreedirectory.org/articles/What_Does_a_Database_Programming_Professional_Do.html pada tanggal 28 September2014

Bagian 3.Programmer Basis Data - Halaman 119

Page 27: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

BAGIAN 4. MYSQL WORKBENCH

A. MySQL Workbench

1. PengertianMySQL Workbench menyediakan peralatan berbentuk

antarmuka grafis untuk bekerja dengan basis data MySQL. MySQLWorkbench mendukung penuh MySQL versi 5.1 ke atas. Informasilebih lanjut dapat di lihat padahttp://dev. mysql.com/doc/workbench/en/. MySQL Workbenchversi komunitas mencakup empat area:

1. SQL Development

Memungkinkan pengguna untuk mengatur koneksi keserver dan mengatur basis data, termasuk membuat basisdata, membuat tabel, melihat isi tabel (misal: select, join),manipulasi data dari tabel (misal: insert, update, delete)dan sebagainya

2. Data Modeling

Memungkinkan pengguna untuk membuat model daribasis data secara visual. Pengguna juga dapat melakukanreverse engineer dan forward engineer antar basis data,bahkan pada basis data yang aktif secara langsung. LihatBagian 4.B Bekerja Dengan MySQL Workbench halaman 124

3. Server Administration

Memungkinkan pengguna untuk mengatur server,termasuk melihat koneksi aktif, melihat pengaturan,ekspor-impor dan sebagainya.

4. Data Migration

Memungkinkan pengguna untuk berpindah dari MicrosoftSQL Server, Sybase ASE, SQLite, SQL Anywhere,PostreSQL, dan lainnya ke MySQL, termasuk dari MySQLversi lama ke versi terbaru.

Bagian 4.MySQL Workbench - Halaman 123

Page 28: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

BAGIAN 5. KOLABORASI DENGANPROGRAMMER APLIKASI5

A. Kebutuhan Klien1. Aturan penempatan anak:

a. Sponsor teratas adalah perusahaan dengan 38 cabangutama yang bisa di set yang mana yang aktif sepertipada Gambar 5.1 di bawah ini.

Gambar 5.1 Pohon perusahaan

b. Apabila tidak ada sponsor, maka sponsornya adalahperusahaan.

5 Program di dalam Bagian 5. merupakan program yangberasal dari proyek yang riil. Semua kode, baik kode dalam bentukMySQL maupun kode dalam bentuk PHP, merupakan hasil karyapenulis. Nama perusahaan disamarkan. Proyek ini dipilih karenamemiliki tingkat kesulitan yang lumayan dan membutuhkanpemahaman keilmuan yang cukup banyak. Program yangditampilkan adalah versi terakhir tanpa sejarah perubahan programuntuk mengurangi kerumitan. Semua program dijelaskan di dalambaris kode untuk melatih pembaca dalam memahami/membacabaris program programmer lain.

Bagian 5.Kolaborasi Dengan Programmer Aplikasi - Halaman 149

Page 29: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

INDEKS BUKU

batasan......xiipp., 34p., 38p., 41, 46, 49, 55, 59, 71, 76, 78, 96, 155catatan..............................................xxi, 64, 100, 113, 120, 135, 137contoh xipp., xviiipp., 25, 27, 31pp., 36p., 39, 41p., 45, 48p., 53pp.,

58, 66p., 75p., 78pp., 82pp., 87pp., 94pp., 108p., 114pp., 121,212, 241

gratis..................................................................................................1konsep.................ivp., xiipp., 32, 34, 39, 42, 47, 51, 56, 59, 72, 121linux....................................................................2pp., xviii, xxi, 101mac................................................................................................3, 5mysql. . .1pp., xvp., xviii, 27, 33, 35pp., 40, 42p., 45, 48, 50p., 54p.,

57, 59pp., 68, 72p., 75pp., 84, 90pp., 96, 100p., 110, 116, 118,121pp., 131p., 142, 144pp., 149, 154p., 183, 202, 213, 239, 247,250, 252, 255p., 258, 260, 276

optimasi....................................2, xivp., xixp., 54p., 82pp., 118, 121pemrograman mysql...........................................................................

cursor....................................xiii, 51, 53, 103, 113, 184, 187, 191deklarasi handler....................................................xii, xviii, 32pp.event scheduler....xivp., xxpp., 31, 40, 51, 72pp., 94, 100, 107p.,

114, 122, 183p., 186, 191p.indeks..2, ix, xivpp., 19p., 27, 60, 63, 76pp., 83pp., 96, 110, 114,

135p., 188, 263inside filter......................................viii, xivp., xxp., 79pp., 83, 88kontrol....................................................viii, xii, xviii, 27pp., 192

case.........12, 14, xviii, 28p., 41, 44, 171, 174pp., 202pp., 226,244p.

if viii, 10pp., 18, 27p., 31pp., 42p., 45, 52p., 56, 58, 66, 74p.,78p., 86, 89, 94pp., 102pp., 111pp., 155, 161pp., 168pp.,176pp., 194pp., 201p., 219pp., 224, 226, 229, 233, 235,237, 243p., 247, 250

iterate.........................................................xii, xviii, 29pp., 106leave...........xii, xviii, 29pp., 52, 59, 106, 170, 173p., 177, 183loop..................................................viii, xii, xviii, 29, 31p., 52repeat. . .viii, xii, xviii, 23, 30p., 52, 103pp., 112, 152p., 163p.,

180p., 187p., 190, 198, 216p., 219p.

Indeks Buku - Halaman 263

Page 30: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

return.....xii, xviii, 31p., 54p., 59, 96, 105, 107, 112, 190, 195,197p., 210p.

while viii, xii, xviii, 30p., 52pp., 89p., 94p., 106, 113p., 116p.,170p., 173p., 177, 182p., 185p., 188, 191, 193, 195, 250,252

outside filter..........................................viii, xiv, xxp., 79pp., 88p.partition..............................................................xiii, 59, 62, 64pp.prepared statement.......xi, xiii, xv, xix, xxi, 46pp., 54p., 59, 89p.,

93p., 96pp., 202, 213, 239, 247, 250, 252, 255p., 258, 260c.stored routine....v, ix, 13, xv, 32, 40, 42, 44pp., 50, 76, 96, 100,

122, 139p.function....2, 13, xvip., xix, xxii, 31p., 39, 42pp., 46p., 49, 59,

63, 96p., 139, 192, 196pp., 207, 209pp.procedure....13, xix, xxii, 42pp., 49p., 95, 97, 100, 103p., 108,

112, 117p., 139, 169, 171, 176p., 181, 183p., 186pp., 234trigger....ix, 11, xiii, xv, xix, 31p., 40, 49, 56pp., 72, 94, 96, 100,

102, 111, 122, 136, 155, 161pp., 168, 180p., 189, 203, 205p.,221, 223, 233

variable.....xi, xiii, xv, xviiip., xxi, 39pp., 44pp., 55, 58, 72p., 76,94p., 98pp., 118

view......v, ix, xiipp., xx, xxii, 34pp., 46, 50p., 82pp., 100, 109p.,122, 138, 169, 176, 195p., 198pp., 234

perbedaan.............................................................xiv, 43, 80, 96, 118programmer......v, xvp., 61, 98, 100, 110, 114, 116, 119p., 122, 140,

146, 149, 202, 210, 218, 222, 225, 227, 234, 236, 238, 240,242p., 246, 249, 251, 254p., 257p., 262, 278programmer aplikasi......v, xvi, 61, 122, 149, 202, 218, 222, 225,

227, 234, 236, 238, 240, 242p., 246, 249, 251, 254p., 257p.,262, 278

programmer basis data......v, xvp., 61, 100, 119p., 122, 146, 210,218, 225, 234, 236, 238, 240, 255, 257, 262, 278

rekomendasi................................................................................8, 63sintaksis.. .xiipp., xviii, xx, 33, 36, 40, 42, 47, 51, 56, 64p., 74p., 77trik........................................xivp., 82, 94, 96pp., 100, 110, 116, 188unduh.........................................................................................3p., 7windows.....................................................................................3, 6p.

Indeks Buku - Halaman 264

Page 31: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

DAFTAR PUSTAKA

Pujiyono, Wahyu, 2002, Diktat: Struktur Data Menggunakan C++,Universitas Ahmad Dahlan, Yogyakarta

http://degreedirectory.org/articles/What_Does_a_Database_Programming_Professional_Do.html, What Does a DatabaseProgramming Professional Do, diakses pada tanggal 28September 2014

http://dev. mysql.com/doc/ mysql-apt-repo-quick-guide/en/, AQuick Guide to Using the MySQL APT Repository, diaksespada tanggal 30 November 2014

http://downloads. mysql.com/docs/refman-5.6-en.a4.pdf,MySQL 5.6 Reference Manual, diakses pada tanggal 9September 2014

http://php.net/manual/en, PHP Manual, diakses pada tanggal 15April 2010

Daftar Pustaka - Halaman 265

Page 32: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

BUKU PENULIS

2014. Standarisasi/Otomatisasi Penulisan dengan

LibreOffice Writer. Yogyakarta: tamanpena.com

Buku Penulis - Halaman 266

Page 33: Seri: Kekuatan Super GRATISAN MySQL: Menjadi Seorang ...pdsi.unisayogya.ac.id/.../2015/03/Programmer-Basis-Data.sampel.pdfPenampil PDF: Okular Pengolah Query: ... materi praktikum

TENTANG PENULIS

Basit Adhi Prabowo lahir di Yogyakarta tanggal 5Oktober 1984. Menempuh pendidikan di SDMuhammadiyah Ngupasan II Yogyakarta lulus tahun1996, SMP Negeri 3 Yogyakarta tahun 1999, SMUNegeri 5 Yogyakarta tahun 2002 dan UniversitasAhmad Dahlan Yogyakarta Program Studi TeknikInformatika tahun 2006 dengan gelar Sarjana Teknik(S.T.). Selama kuliah, selain menempuhpembelajaran juga membuat perusahaan IT bersama

dengan teman-teman dengan nama CV Goedang IT, menjadiasisten praktikum, mengikuti beberapa kegiatan organisasi danpernah menjadi Sie Acara dalam sebuah Seminar Nasional tentangIndonesia Go Open Source (IGOS). Skripsi yang disusun untukmenyelesaikan kuliah berjudul "Pembuatan Kompiler denganMetode Recursive Descent Parser". Pada tahun 2007 bekerja diSTIKes 'Aisyiyah Yogyakarta sebagai calon pegawai di bagianEDP (Elektronik Data Processing) yang kemudian berubahmenjadi BPTI (Bagian Pengembangan Teknologi Informasi).Alhamdulillah, diangkat sebagai pegawai tetap pada tahun 2008.Pekerjaan yang ditekuni di STIKes 'Aisyiyah Yogyakarta adalahsebagai Programmer Aplikasi, Programmer Basis Data, Help Desk,Teknisi Jaringan dan Administrasi. Berpengalaman menjadi kepalaBPTI dari tahun 2013 dan insyaAllah sampai tahun 2016.Mendirikan penerbit tamanpena.com bersama Arif Kurniawan, S.T.dan Nurdin Syaiful Baladi, S.T.. Memiliki istri bernama CholifahSetyo Mumpuni serta memiliki dua orang anak bernama PramuditaSholikhah Azzahra dan (Alm.) Mukhammad Genius Al Faruq.Kontak: [email protected]

Tentang Penulis - Halaman 267