Featured Posts

Tuesday, September 22, 2020

LOGO JOSS

- No comments

 


Tuesday, September 8, 2020

Install XAMPP Lebih Dari Satu di Satu Komputer

- No comments

Install XAMPP Lebih Dari Satu di Satu Komputer

Pada kesempatan kali ini kita akan membahas bagaimana cara meng install xampp lebih dari satu di satu komputer (environment yang sama).
Jika sobat belum menginstall XAMPP, sobat dapat mengikuti panduannya disini: Cara Install XAMPP di Windows – Panduan Lengkap
Terkadang karena berbagai keperluan, salah satunya ketika kita ingin menjalankan dua aplikasi (web) dengan versi PHP yang berbeda atau dengan dua database berbeda, kita ingin mengunakan dua xampp secara bersamaan.
Misal suatu aplikasi yang hanya bisa berjalan di PHP versi 5.3 keatas, namun sebelumnya telah ada aplikasi lain yang hanya bisa jalan di PHP versi <= 5.2,  atau ingin mencoba dua versi PHP yang berbeda.
Dengan kondisi tersebut, tidak mungkin kedua aplikasi tersebut digabungkan. Salah satu solusi untuk mengatasi hal tersebut adalah:
  1. Menggunakan 2 versi PHP, namun dengan satu server database MySQL
  2. Menggunakan 2 versi PHP dan dengan 2 server MySQL yang berbeda
agar lebih jelas, kita akan mencoba kedua cara tersebut. Kali ini kita akan menggunakan 2 versi XAMPP, yaitu XAMPP 5.6.3 dengan PHP 5.6.3  dan XAMPP 1.8.3 dengan PHP versi 5.5.6.
Untuk file xampp nya dapat didownload di https://www.apachefriends.org/ atau di https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/ untuk melihat semua versi yang ada,
Saya menggunakan versi yang portable dengan format exe, nama file nya seperti ini: xampp-portable-win32-5.6.3-0-VC11-installer.exe

Install XAMPP Lebih Dari Satu di Satu Komputer

Mari kita coba berbagai alternatif yang ada:

1.  Menggunakan 2 versi PHP, namun dengan satu server database MySQL

Langkah yang diperlukan adalah:
  1. Ekstrak/install kedua file xampp yang telah kita siapkan, file dapat di ekstrak di mana saja, saya mengekstraknya di didrive yang sama yaitu drive D
  2. Ubah port apache
    Default port yang digunakan adalah 8080,  salah satu xampp harus di konfigurasi dengan port yang berbeda misal 7777. Nantinya aplikasi/web akan di akses menggunakan alamat http://localhost dan http://localhost:7777.
    Misal kita akan merubah default port untuk yang XAMPP 1.8.3 menjadi 7777, maka yang perlu kita lakukan adalah membuka file httpd.conf (file konfigurasi apache) yang terletak di direktori apache/conf  cari kata-kata Listen 80 dan ServerName localhost:80 ubah angka 80 menjadi 7777
  3. Penting. Ubah juga port ssl nya
    Jika apache xampp 5.6.3 telah dijalankan misal lewat xampp-control, maka ketika kita menjalankan apache untuk xampp 1.8.3 (port 7777) maka biasanya akan muncul pesan error:
    18:46:45 [Apache] Problem detected!
    18:46:45 [Apache] Port 443 in use by "d:\xampp-5.6.3.0\apache\bin\httpd.exe" with PID 8736!
    18:46:45 [Apache] Apache WILL NOT start without the configured ports free!
    18:46:45 [Apache] You need to uninstall/disable/reconfigure the blocking application
    18:46:45 [Apache] or reconfigure Apache and the Control Panel to listen on a different port
    
    Dari pesan tersebut, kalau kita telusuri, ternyata ada port lain selain port 8080 yaitu port 443 yang merupakan port SSL, port ini langsung aktif ketika kita menjalankan apache xampp 1.8.3 tadi.
    Untuk mengatasi hal tersebut kita juga harus merubah port SSL nya, buka file httpd-ssl.conf yang ada di folder apache\conf\extra cari kata-kata 443 (misal: Listen 443 dan ServerName localhost:443), ganti 443 dengan 444, simpan.
    Jalankan kembali apachenya, seharusnya sudah bisa jalan seperti tampak pada gambar dibawah ini:Install XAMPP Lebih Dari Satu - Dua Apache Berjalan BersamaanKeterangan: gambar atas xampp 1.8.3 menggunakan port http 8080 dan post SSL 443, sedangkan gambar bawah xampp 5.6.3 dengan port http 7777 dan port SSL 444.
Sampai dengan langkah ini seharusnya kedua apache tersebut bisa langsung jalan, namun masih menggunakan mysql yang sama (dikarenakan portnya sama, yaitu 3306), baik mysql di xampp 1.8.3 atau di xampp 5.6.3
Perlu diperhatikan
Untuk MySQL dengan versi < 5.5 kedua server dapat berjalan bersama, namun jika kedua xampp yang kita jalankan memiliki versi MySQL yang baru, misal >= 5.5, maka ketika kita menjalankan server mysql yang kedua maka akan muncul error sebagai berikut:
Install XAMPP Lebih Dari Satu - Menjalankan Dua MySQL
error tersebut dikarenakan port 3306 telah digunakan oleh xampp yang menggunakan port 8080, untuk itu kita perlu untuk Mengubah port MySql,  yang akan dibahas pada artike berikut:

2.  Menggunakan 2 versi PHP,  dengan 2 MySQL Server yang berbeda

Langkah yang diperlukan sama dengan langkah pertama, yaitu kita hanya perlu untuk mengubah port MySQL nya.
Untuk mengubah port MySQL, buka file my.ini yang biasanya terletak di dalam folder XAMPP/mysql/bin/my.ini, kemudian cari kata-kata port = 3306, ganti port tersebut dengan port yang lain, misal 3307.
Pada contoh diatas kita ubah port MySQL yang berada di XAMPP 1.8.3.
Jalankan kedua xampp control panel, maka seharusnya keduanya dapat berjalan berdampingan, seperti contoh dibawah:
Install XAMPP Lebih Dari Satu - Menggunakan 2 versi PHP, dengan 2 MySQL Server yang berbeda.
MySQL telah berhasil kita jalankan, NAMUN, pertanyaan selanjutnya, bagaimana menjalankan phpmyadmin di server mysql yang berbeda?

3. Menjalankan phpmyadmin di server mysql yang berbeda

Setelah berhasil meng install xampp lebih dari satu, selanjutnya kita perlu menyesuaikan konfigurasi phpMyAdmin agar dapat mengakses kedua server MySQL yang telah kita buat sebelumnya.
Secara default, phpMyAdmin akan mengakses port 3306, untuk dapat mengakses port 3307 (server MySQL kedua), kita perlu merubah file konfigurasinya.
Buka file config.default.php yang terletak di folder phpMyAdmin\libraries, kemudian cari (Ctrl+F) kata-kata port, pilih baris dengan kata-kata $cfg['Servers'][$i]['port'] = ''
Dalam tanda kutip tersebut diatas, isikan dengan nilai port yang kita inginkan misal 3307, sehingga menjadi $cfg['Servers'][$i]['port'] = '3307';
Jalankan phpMyAdmin di browser dengan alamat sesuai dengan port apache yang telah kita tentukan tadi yaitu http://localhost/phpmyadmin dan http://localhost:7777/phpmyadmin, jika berhasil, maka akan tampak seperti gambar dibawah:
Install XAMPP Lebih Dari Satu - phpMyAdmin Dengan Dua MySQL Server
dari gambar diatas, terlihat bahwa pada localhost:7777 pada keterangan server, tertulis 127.0.0.1:3307
Tambahan: agar kedua apache dan mysql tersebut dapat otomatis jalan ketika kita menjalankan windows, sehingga kita tidak perlu menjalankannya secara manual, maka perlu kita install di service windows. untuk menginstallnya dapat dipaca di artikel berikut ini: Install Apache Service di Windows dan Install MySQL Service di Windows.
Demikian tutorial mengenai cara install xampp lebih dari satu di satu komputer, semoga bermanfaat dan selamat mencoba.
Salam

Mengubah Port Apache dan MySQL di XAMPP

- No comments

Mengubah Port Apache dan MySQL di XAMPP

Untuk keperluan tertentu seperti menginstall dua versi PHP atau Install XAMPP Lebih Dari Satu di Satu Komputer, kita perlu untuk mengganti / mengubah port apache dan MySQL, yang bagi sebagian orang hal tersebut ribet dan sulit untuk dilakukan, oleh karena itu pada kesempatan kali ini kita akan membahas cara mengubah port apache dan mysql.

Mengubah Port Apache

Mengubah port apache pada xampp TIDAK dapat dilakukan melalui XAMPP Control Panel, mungkin sobat pernah membuka menu config yang terletak di sebelah pojok kanan atas XAMPP Control Panel, namun seperti pada peringatan yang muncul, untuk mengubah port yang digunakan oleh XAMPP tetap harus melalui file konfigurasi.
Mengganti / Mengubah Port Apache dan MySQL pada XAMPP
Pada apache terdapat dua port yaitu port HTTP dengan nilai default 80 dan port SSL dengan nilai default 443. Ketika module apache dijalankan, maka secara otomatis juga akan mengaktifkan kedua port tersebut, dan untuk mengubah port HTTP, kita juga harus mengubah port SSL, jika tidak maka akan muncul pesan error.

Mengubah Port HTTP – Apache

Untuk mengubah port HTTP, buka file httpd.conf (file konfigurasi apache) yang terletak di direktori apache/conf  cari kata-kata Listen 80 dan ServerName localhost:80 kemudian ubah angka 80 menjadi angka port yang diinginkan, misal 7777
Cara Mengubah Port Apache Pada XAMPP - HTTP
dan
Mengubah Port Apache Pada XAMPP  - HTTP
Jika sobat menginstall apache dari software lain seperti WAMPP atau dari installer apache langsung, sobat dapat menyesuaikan lokasi file konfigurasinya yang pasti nama filenya adalah httpd.conf

Mengubah Port SSL – Apache

Untuk mengubah port SSL, buka file httpd-ssl.conf yang ada di folder apache\conf\extra, selanjutnya cari kata yang mengandung angka 443 (misal: Listen 443 dan ServerName localhost:443), ganti 443 dengan angka lain misal 444, kemudian simpan file terebut.
Mengubah Port SSL Pada Apache
Selesai.

Mengubah Port MySQL

MySQL memiliki port default 3306.
Sebagaimana port Apache, kita juga TIDAK dapat mengubah port MySQL melalui XAMPP Control Panel, untuk mengubahnya kita perlu untuk meng edit file konfigurasi MySQL.
Untuk mengubah port MySQL, buka file my.ini yang biasanya terletak di XAMPP/mysql/bin/my.ini, cari kata-kata yang mengandung angka 3306, misalL port = 3306, kemudian ganti angka 3306 dengan angka lain, misal 3307.
Cara Mengubah MySQL Port Pada XAMPP
Selesai.
Demilikan cara untuk mengubah port baik Apache maupun MySQL, semoga bermanfaat.

Cara Install XAMPP di Windows – Panduan Lengkap

- 1 comment

Cara Install XAMPP di Windows – Panduan Lengkap

Hi sobat, pada kesempatan kali ini kita akan membahas secara lebih detail mengenai cara install XAMPP di Windows, tulisan ini cukup panjang, namun saya yakin akan membawa manfaat dan bisa menjadi tambahan informasi jika suatu saat sobat menemui kondisi seperti yang kita bahas disini, so.. mari kita ikuti bersama.
Daftar isi:
  1. Apa itu xampp dan apa kegunaannya?
  2. Teknik Download XAMPP
  3. Cara Install XAMPP di Windows
  4. Cara Menjalankan XAMPP di Windows
  5. Cara Mengubah Direktori Instalasi XAMPP
  6. Lebih Lanjut…

I. Apa itu xampp dan apa kegunaannya?

Sebelum membahas cara install xampp di windows, ada baiknya kita berkenalan dengan XAMPP. Menurut Wikipedia, XAMPP merupakan kependekan dari Cross-Platform (X), Apache (A), MariaDB (M), PHP (P) and Perl (P), dari istilah diatas terlihat bahwa software ini terdiri dari software:
  1.  Apache Web Server yang digunakan untuk menjalankan program PHP,
  2. PHP untuk menjalankan program php itu sendiri,
  3. MariaDB (sebelumnya menggunakan MySQL) yang digunakan sebagai database. MariaDB adalah database open source yang merupakan “duplikasi” dari MysQL.
  4. Perl, opsi tambahan, jika kita ingin melakukan pemrograman perl.
sedangkan cross-platform sendiri maksudnya adalah software ini dapat digunakan untuk berbagai operating sistem, saat ini sudah mendukung penggunaan di Windows, Linux, dan MacOS.
Dari penjelasan diatas sudah dapat dibayangkan apa kegunaan XAMPP, yaitu sederhananya untuk menjalankan PHP dan MySQL, karena memang untuk kedua hal tersebut Software ini diperuntukkan.

II. Download XAMPP untuk windows

Download XAMPP Versi FULL Installer

Untuk mendownload file instalasi versi terbaru dari XAMPP (versi FULL bukan portable), sobat dapat mengunjungi official website dari XAMPP yang beralamat di www.apachefriends.org, pada halaman tersebut sobat dapat langsung mendownloadnya dengan mengklik tombol XAMPP for Windows dibagian download.
Halaman Depan Website Apache Friend
Keuntungan dari versi ini adalah kita dapat menginstall apache dan MySQL service melalui XAMPP Control Panel (dengan menjalankannya sebagai Administrator) diamping itu menu XAMPP akan ditambahkan pada start menu Windows

Download XAMPP Versi Portable Intaller

Jika sobat ingin men-download XAMPP Portable versi terbaru, sobat dapat langsung menuju link: https://sourceforge.net/projects/xampp/files/latest/download.
Ketika link di buka, maka otomatis akan mendownload file installer berbentuk (.exe).
Keuntungan dari versi ini adalah installer hanya akan mengekstrak file istalasi saja tidak ada perubahan dalam sistem windows, selain itu kita dapat memindahkan folder instalasi xampp dengan mudah.

Download XAMPP Versi Archive

Alternatif lain, sobat dapat langsung mengunjungi halaman sourceforge XAMPP di alamat  https://sourceforge.net/projects/xampp/files/ kemudian klik pada bagian Windows, selanjutnya akan muncul halaman baru yang berisi daftar direktori versi XAMPP, silakan klik versi yang diinginkan
File Installer XAMPP di Sourceforge
Misal kita klik pada 5.6.19, maka akan muncul daftar file installer xampp versi 5.6.19:
Contoh Jenis File Installer XAMPP
dari gambar diatas dapat di simpulkan setidaknya ada tiga jenis file yang tersedia, yaitu:
  1. XAMPP Full Installer merupakan installer XAMPP versi Full berbentuk file .exe – ukuran file paling besar.
  2. XAMPP Portable Installer yang berbentuk file .exe dan XAMPP Portable Archive yang dikemas dalam file archive (.7z dan .zip). Pada versi portable tidak terdapat FileZilla FTP dan Mercury Mail Server.
  3. XAMPP FULL Archive (XAMPP FULL – termasuk Filezilla dan Mercury Mail Server) yang berbentuk file archive (.7z dan .zip).
Keuntungan dari versi Archive (baik yang full maupun portable) adalah kita hanya perlu mengekstrak filenya saja kemudian menjalankannya tanpa perlu menginstall, namun untuk dapat menggunakannya, komputer kita harus terinstall Microsoft Visual C++ 2008 Redistributable (4Mb),
  • Jika kita telah menggunakan xampp sebelumnya, maka kita bisa langsung menggunakan versi archive ini, karena Mic. Visual C++ sudah terinstall pada xampp sebelumnya.
  • Untuk versi portable yang berbentuk file .exe didalamnya sudah termasuk installer Microsoft Visual C++ 2008.

Penamaan Versi XAMPP

Sebelumnya XAMPP menggunakan penamaan versi sendiri hingga versi 1.8.3, pada versi tersebut, untuk mengetahui versi PHP yang digunakan, kita harus membaca file readme_en.txt yang terdapat pada folder instalasi.
Setelah itu penamaan versi mengikuti versi PHP yang digunakan sehingga mudah untuk diketahui versi berapa yang digunakan.

III. Cara Install XAMPP di Windows

Sampailah kita pada bagian utama yaitu cara install XAMPP di Windows. Untuk meng install xampp di windows, setidaknya terdapat dua cara yang dapat kita lakukan, yaitu:
  1. Jika sobat mendownload file archive (.7z atau .zip), sobat dapat langsung meng ekstraknya ke drive atau direktori yang diinginkan kemudian jalankan file setup_xampp.bat yang ada didalamnya, maka xampp akan mengkonfigurasi path/direktori yang digunakan, dan SELESAI.
    Cara Install XAMPP Portable di Windows
    selanjutnya sobat dapat langsung menuju bagian Cara Menjalankan XAMPP di Windows.
  2. Jika sobat mendownload versi installer maupun versi portable dengan bentuk file .exe, sobat dapat menginstall nya dengan menjalankan file exe tersebut, kemudian mengikuti ikuti wizard yang ada.
Wizard Instalasi
Langkah 1: Dobel klik file .exe, maka akan muncul kotak peringatan terkait User Account Control (khusus windows vista keatas).
Intinya hindari direktori C:\Program Files karena akan ada pembatasan hak akses sehingga menyebabkan XAMPP tidak dapat berjalan sebagaimana mestinya, selanjutnya klik OK untuk melanjutkan instalasi
Cara Install XAMPP di Windows - Notifikasi UAC
Langkah 2: Selanjutnya akan muncul halaman awal wizard, klik Next untuk melanjutkan.
Install XAMPP di Windows - Welcome Screen
Langkat 3: Selanjutnya kita memilih komponen yang ingin diinstall, komponen tambahan yang penting adalah MySQl/MariaDB dan phpMyAdmin, untuk komponen lainnya bisa di uncheck (tetapi perbedaan ukuran file tidak seberapa).
Untuk mudahnya, pilih pilihan default kemudian klik next untuk melanjutkan.
Cara Install XAMPP di Windows - Pilih Komponen
Langkah 4: Langkah selanjutnya pilih direktori dimana XAMPP akan kita install, usahakan lokasinya tidak satu drive dengan operating sistem, hal ini untuk mengantisipasi jika terjadi hal-hal yang tidak diinginkan pada OS kita, selanjutnya klik next.
Install XAMPP di Windows - Pilih Folder Instalasi
Langkah 5: Selanjutnya terdapat tawaran untuk mempelajari lebih lanjut tentang Bitnami yang merupakan installer untuk CMS populer yang dapat langsung diinstall ke XAMPP (url ref: https://bitnami.com/stack/xampp).
Untuk mudahnya hilangkan centangan dan klik next untuk melanjutkan.
Cara Install XAMPP di Windows - Penawaran Bitnami
Langkah 6: Proses instalasi mulai dijalankan, XAMPP akan mengekstrak file yang diperlukan dan melakukan konfigurasi seperlunya, proses ini akan memakan waktu cukup lama hingga beberapa menit.
Install XAMPP di Windows - Proses Install
Langkah 7: Proses instalasi selesai, XAMPP siap untuk digunakan, jika ingin langsung menjalankan XAMPP Control Panel, centang pilihan ‘Do you want to start the control panel now?‘, selanjutnya klik finish untuk menutup jendela instalasi.
Install XAMPP di Windows - Instalasi Selesai

IV. Cara menjalankan XAMPP di Windows

Setelah berhasil meng install xampp di windows, selanjutnya kita bahas cara menjalankannya.
Jika saat proses install sobat mencentang pilihan “Do you want to start the control panel now?” maka secara otomatis XAMPP Control Panel akan terbuka, jika tidak, dapat dijalankan melalui menu START > All Programs > XAMPP > XAMPP Control Panel.
Jika sobat menggunakan versi portable, dapat dilakukan dengan membuka folder instalasi kemudian dobel-klik file xampp-control.exe.
Selanjutnya, setelah XAMPP control panel terbuka,  jalankan module Apache dan MySQL dengan mengklik tombol start yang ada di sebelahnya. Jika tidak ada masalah maka akan muncul warna hijau pada module ini.
Cara Menjalankan XAMPP di Windows - XAMPP Control Panel
Selanjutnya kita  tes apakah software PHP dapat berjalan dengan baik. Buka browser dan ketikkan alamat http://localhost, jika berjalan dengan baik, maka akan muncul tampilan seperti gambar dibawah ini.
Cara Menjalankan XAMPP di Windows - Tes PHP di Localhost
Setelah sukses, sobat dapat mengosongkan folder htdocs dengan cara menghapus file yang ada didalamnya (file bawaan xampp) dan menggantinya dengan file php yang telah / akan sobat buat.
Cara Menjalankan XAMPP di Windows - Hapus File Bawaan xampp

V. Cara Mengubah Direktori Instalasi XAMPP

Jika suatu saat sobat berubah fikiran dan ingin mengubah direktori instalasi XAMPP, sobat cukup mengcopy-paste semua file hasil instalasi ke lokasi yang baru (berlaku untuk semua jenis installer baik .exe/archive).
Setelah itu klik file setup_xampp.bat, ketik angka 1 ketika ada pertanyaan konfirmasi dan ketik enter, secara otomatis XAMPP akan memperberui isi file konfigurasi merujuk ke lokasi yang baru.
cara_mengubah_direktori_xampp
Setelah mengubah direktori installasi XAMPP, untuk versi full install, sobat perlu menyesuaikan link shortcut XAMPP yang ada di start menu.

VI. Lebih Lanjut

Hal penting yang perlu sobat ketahui bahwa setiap kita menjalankan module Apache dan MySQL, kita harus menjalankan XAMPP Control Panel dan mengklik tombol start pada kedua module tersebut.
Hal tersebut tentu saja tidak praktis, terdapat cara lebih praktis yaitu kita jalankan kedua module tersebut sebagai service di windows sehingga keduanya akan aktif ketika windows start, untuk tutorial lengkapnya dapat sobat baca pada artikel: Install Apache Sebagai Service di Windows dan Install MySQL Service di Windows.
Selain itu jika sobat ingin menjalankan 2 XAMPP atau lebih di satu komputer, misal untuk menjalankan 2 versi PHP yang berbeda, atau menjalankan 2 MySQL server, sobat dapat membaca tutorialnya disini: Install XAMPP Lebih Dari Satu di Satu Komputer
Demikian tutorial mengenai cara install xampp di windows, semoga bermanfaat.
Jangan lupa beritahu rekan yang lain:

Optimasi Query MySQL dan MariaDB – eBook

- No comments

Optimasi Query MySQL dan MariaDB – eBook

Pada awalnya, query dapat dieksekusi dengan baik  lancar, namun seiring dengan berjalannya waktu, eksekusi query terasa lambat entah karena query yang tidak optimal atau data yang semakin besar. Jika sudah demikian, maka mau tidak mau kita harus melakukan optimasi query MySQL / MariaDB. Kenapa? karena hal ini akan berdampak signifikan bagi kelangsungan aplikasi kita.
Optimasi Query Database MySQL - MariaDB dan Server MySQL - MariaDB - Cover
Optimasi Query Database MySQL – MariaDB
Kami memahami betul pentingnya kecepatan eksekusi query dan dampaknya bagi database administrator maupun user, untuk itu kami telah memikirkan berbagai aspek yang mungkin kita lakukan untuk mengatasi hal tersebut dan menuangkannya pada ebook eksklusif “Optimasi Query MySQL – Maksimalkan Kecepatan Query MySQL / Maria DB Anda”.
eBook ini membahas secara mendalam teknik yang diperlukan untuk melakukan optimasi query pada database MySQL maupun MariaDB disertai berbagai contoh kasus query dengan jumlah record cukup besar (lebih dari 1 juta), sehingga dapat mencerminkan kondisi riil dilapangan.
Pembahasan oprtimasi query dilakukan mulai dari penggunaan index, seperti kapan perlu menggunakan index, operator yang dapat manfaatkan index, mendeteksi index yang digunakan pada composite index, hingga setting konfigurasi server MySQL/MariaDB agar operasi database dapat maksimal.
Selain belajar bagaimana melakukan optimasi query, pada buku ini juga akan belajar bagaimana mengoptimasi aplikasi yang menjalankan query tersebut sehingga sinkron antara aplikasi dan query, dengan demikian aplikasi tidak memperberat eksekusi Query database.

Materi Optimasi Query MySQL / MariaDB

Berikut ini gambaran singkat pembahasan pada ebook:

1. Memahami Semua Hal Tetang Index.

Seperti kita ketahui bahwa untuk mempercepat eksekusi query, kita Wajib menambahkan index pada tabel. Namun ternyata dengan menambahkan index tidak serta merta query menjadi cepat, kenapa? ternyata ada syarat syarat yang harus dipenuhi agar optimizer dapat menggunakan index, seperti operator pembanding yang digunakan.
Lebih kompleks lagi ketika filter pada klausa WHERE mengandung lebih dari satu kriteria sehingga memaksa kita untuk membuat beberapa individual index atau yang lebih efektif menggunakan komposit index (multi kolom index).
Pada komposit index tidak serta merta semua kolom index digunakan, kita harus teliti lagi apakah benar MySQL menggunakan semua kolom index.

2. Memahami Statement Explain.

Ketika mengeksekusi suatu query, MySQL menyusun rencana apa saja yang akan dilakukan untuk mengeksekusi query tersbut. Rencana ini tertuang dalam Query Execution Plan (QEP). Dengan membaca QEP tersebut kita dapat menganalisa efektifitas suatu query.
QEP ini dapat kita lihat dengan menggunakan statement Explain, misal:
mysql> EXPLAIN SELECT * FROM transaksi
    -> WHERE kode_user = '4322248645' AND id_ekspedisi = 2 \G;
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: transaksi
   partitions: NULL
         type: index_merge
possible_keys: kode_user,id_ekspedisi,kode_user_id_ekspedisi_tgl_trx
          key: kode_user,id_ekspedisi
      key_len: 11,2
          ref: NULL
         rows: 212
     filtered: 100.00
        Extra: Using intersect(kode_user,id_ekspedisi); Using where
QEP ini menyajikan informasi detail baik untuk query sederhana maupun query yang kompleks yang melibatkan banyak tabel. Dengan mempelajari dan memahami setiap bagian dari QEP ini, kita dapat menganalisa bagian query mana yang perlu untuk dioptimasi.
Pada ebook ini juga dibahas mendalam mengenai visual explain.

3. Profiling Query MySQL/MariaDB

Ketika MySQL mengeksekusi sebuah Query, banyak tahapan yang dilakukan. Dengan profiling query, kita dapat mengetahui tahapan yang dilakukan MySQL beserta waktu eksekusinya, sebagai contoh jika kita jalankan query berikut ini:
SELECT event_name AS STAGE
        , COUNT(event_name) JML_STAGE
        , TRUNCATE(TIMER_WAIT/1000000000000,6) AS DURASI
FROM `performance_schema`.`events_stages_history_long` 
WHERE NESTING_EVENT_ID = 4472
GROUP BY EVENT_NAME
ORDER BY TIMER_WAIT DESC
Maka tahapan yang akan dilakukan MySQL adalah:
+------------------------------------------+-----------+----------+
| STAGE                                    | JML_STAGE | DURASI   |
+------------------------------------------+-----------+----------+
| stage/sql/Sending data                   |         1 | 0.844615 |
| stage/sql/Creating sort index            |        34 | 0.011914 |
| stage/sql/removing tmp table             |         1 | 0.001452 |
| stage/sql/statistics                     |         1 | 0.000205 |
| stage/sql/init                           |         1 | 0.000114 |
| stage/sql/freeing items                  |         1 | 0.000114 |
| stage/sql/checking query cache for query |         1 | 0.000107 |
| stage/sql/Creating tmp table             |         1 | 0.000099 |
| stage/sql/Opening tables                 |         2 | 0.000039 |
| stage/sql/starting                       |         2 | 0.000035 |
| stage/sql/closing tables                 |         1 | 0.000027 |
| stage/sql/preparing                      |         1 | 0.000026 |
| stage/sql/query end                      |         1 | 0.000016 |
| stage/sql/optimizing                     |         1 | 0.000015 |
| stage/sql/System lock                    |         3 | 0.000010 |
| stage/sql/logging slow query             |         1 | 0.000007 |
| stage/sql/Sorting result                 |         1 | 0.000007 |
| stage/sql/end                            |         1 | 0.000002 |
| stage/sql/cleaning up                    |         1 | 0.000001 |
| stage/sql/Waiting for query cache lock   |        35 | 0.000000 |
| stage/sql/executing                      |         1 | 0.000000 |
| stage/sql/checking permissions           |         4 | 0.000000 |
+------------------------------------------+-----------+----------+
Dengan membaca dan memahami tahapan query diatas, kita dapat menganalisa tahapan mana yang menyebabkan query menjadi lambat, sehingga kita dapat mengambil tindakan dengan tepat.

4. Slow Query Log

Ketika sistem sudah berjalan, kita tidak dapat memonitor query satu per satu, query yang awalnya sudah optimal bisa jadi menjadi lambat karena penambahan data atau perubahan struktur tabel, dengan bantuan slow query log, kita dapat mengetahui query apa saja yang berjalan lambat.
Cara kerja slow query log ini adalah mencatat kedalam log query yang memerlukan waktu eksekusi melebihi batas yang telah ditentukan. Secara default, fitur ini tidak aktif. Untuk mengakaktifkannya, kita perlu menambahkan parameter pada file konfigurasi, misal pada my.ini:
slow_query_log = 1
long_query_time = 5
slow_query_log_file = D:/MySQL 5.7.22/slow_query_log.log
min_examined_row_limit = 0
log_queries_not_using_indexes
Log ini dapat disimpan di file maupun tabel slow_log yang ada di database mysql, contoh pada tabel database:
mysql> use mysql
mysql> SELECT * FROM slow_log \G;
*************************** 1. row ***************************
    start_time: 2018-08-23 20:34:34.403503
     user_host: root[root] @ localhost [127.0.0.1]
    query_time: 00:00:00.827931
     lock_time: 00:00:00.000170
     rows_sent: 17
 rows_examined: 17
            db: mysql
last_insert_id: 0
     insert_id: 0
     server_id: 1
      sql_text: SHOW TABLE STATUS FROM `online_shop`
     thread_id: 2
*************************** 2. row ***************************
    start_time: 2018-08-23 20:35:58.081422
     user_host: root[root] @ localhost [127.0.0.1]
    query_time: 00:00:01.912297
     lock_time: 00:00:00.000468
     rows_sent: 24490
 rows_examined: 291696
            db: online_shop
last_insert_id: 0
     insert_id: 0
     server_id: 1
      sql_text: SELECT no_invoice
, SUM(IF(id_kategori = 1, jml_barang, NULL)) AS keyboard_mouse
, SUM(IF(id_kategori = 2, jml_barang, NULL)) AS speaker
, SUM(IF(id_kategori = 3, jml_barang, NULL)) AS cd_dvd
, SUM(transaksi.total_harga)
FROM transaksi
LEFT JOIN transaksi_detail AS td USING(no_invoice)
LEFT JOIN produk USING(id_produk)
LEFT JOIN user_profil p USING (kode_user)
WHERE transaksi.tgl_trx >='2018-08-01' AND transaksi.tgl_trx <='2018-08-31'
GROUP BY no_invoice
     thread_id: 2
2 rows in set (0.00 sec)
Setelah mengetahui query mana saja yang berjalan lambat (melebihi waktu yang telah ditentukan) kita analisa lebih jauh query tersebut melalui profiling query maupun statemen explain.

5. Memahami Query Cache

Ketika MySQL mengeksekusi suatu query, MySQL akan menyimpan Query (hanya perintah SELECT) beserta hasilnya di cache. Jika kemudian ada perintah SQL yang sama persis (identik), maka server akan mengambilnya dari cache tanpa perlu mengeksekusi query tersebut, hal ini akan membuat data hasil query dapat di peroleh dengan cepat.
Mengerti dan memahami query cache in dapat memberikan pemahaman bagi kita bagaimana menjalankan query sehingga query tersebut dapat dicache.

6. Optimasi Struktur Tabel Database

Ketika berbicara mengenai optimasi query, maka tidak terlepas dari optimasi tabel, karena meskipun tidak signifikan, pemilihan struktur tabel juga akan mempengaruhi waktu eksekusi query.
Hal – hal yang perlu ketika perhatikan ketika menentukan struktur tabel:
  • Buat index pada tabel, namun sembarangan membuat index berisiko menurunkan performa query secara signifikan.
  • Pilih character set sesuai kebutuhan. Characterset yang tidak tepat akan menambah beban kerja server.
  • Pilih storage engine yang sesuai. Masing masing storage engine di desain untuk operasi tertentu.
  • Gunakan tipe data dan panjang data yang tepat.
  • Buat primary key pada setiap tabel dan tidak perlu menyertakan primary key pada secondary index. Primary Key sangatlah penting ketika kita menggunakan engine InnoDB.
  • Jika memungkinkan definisikan kolom tabel dengan NOT NULL.
  • Sinkronkan kolom tabel yang digunakan sebagai foreign key.
  • Dan lain sebagainya.
Memahami (tidak sekedar mengetahui) hal hal diatas akan membantu kita meningkatkan performa query selain menanamkan habbit dalam diri kita untuk selalu menerapkan best practice dalam setiap pembuatan tabel.

7. Optimasi Query MySQL / MariaDB

Optimasi query dapat dilakukan dengan berbagai cara diantaranya menghindari hal-hal yang menyebabkan MySQL memeriksa baris pada tabel satu per satu, hingga mengubah bentuk query (menyusun ulang query).
Optimasi query dapat dilakukan dengan berbagai cara, diantaranya:
  • Memahami operator yang dapat menyebabkan tidak dapat digunakannya index.
  • Menghindari operasi pada kolom.
  • Optimasi kolom dengan tipe data date.
  • Hindari Type Conversion.
  • Hindari Select * ?, Tidak selalu.
  • Pindahkan filter dari WHERE ke klausa SELECT.
  • Hindari looping query.
  • Dan lain sebagainya.
Pada kondisi tertentu query tidak dapat dioptimasi, misal ketika melibatkan fungsi agregasi pada tabel yang memiliki banyak data.
Penjelasan lebih jauh dibahas lengkap pada eBook.

8. Optimasi Konfigurasi Server MySQL / MariaDB

Server MySQL dijalankan dengan menggunakan berbagai konfigurasi. Ketika MySQL diinstall dan dijalankan pertama kali, maka mysql akan menggunakan konfigurasi standar, agar dapat lebih optimal, kita dapat menyesuaikan konfigurasi ini sesuai dengan kondisi server yang kita gunakan.
Terkait optimasi query, optimasi konfigurasi ini dapat dikelompokkan menjadi tiga bagian, yaitu: optimasi konfigurasi server secara umum, optimasi konfigurasi storage InnoDB, optimasi konfigurasi MyISAM. Pengaturan masing masing konfigurasi disesuaikan dengan keperluan.
Setiap item konfigurasi (lihat daftar isi) dibahas lengkap di eBook

9. Optimasi Query MySQL Pada “Big Database”

Pada aplikasi yang menyimpan data secara rutin, dari waktu ke waktu jumlah data akan semakin bertambah dan akhirnya pada titik tertentu, database sudah tidak dapat menghandle data tersebut dengan baik, yang artinya, waktu eksekusi query sudah tidak ideal lagi, apapun optimasi yang telah dilakukan.
Database dengan jumlah data besar “melebihi batas normal” memerlukan penanganan sendiri karena apapun optimasi yang dilakukan, tidak dapat mendongkrak performa query.
Hal-hal yang dapat dilakukan untuk mengoptimasi query database dengan jumlah data besar adalah:
  • Mempartisi tabel. Mempartisi tabel artinya memecah tabel menjadi bagian bagian yang lebih kecil. Pada MySQL, partisi tabel ini agak ribet karena terdapat beberapa batasan, diantaranya tidak dapat digunakannya foreign key dan kewajiban menyertakan kolom partisi pada primary key dan/atau unique key, selain itu pengelolaan partisi juga perlu dilakukan secara kontinyu.
  • Split tabel manual. Selain menggunakan fitur partisi tabel bawaan MySQL, kita juga dapat mempartisi tabel secara manual yaitu dengan membuat tabel baru kemudian memindahkan data dari tabel utama ke tabel baru.
Masing masing cara diatas memiliki kelibihan dan kekurangan, lantas mana yang harus dipilih?
Selain materi, ebook juga studi kasus riil membuat resume data dari tabel database dengan jumlah data cukup besar, yaitu 32 juta rows.

10. Optimasi Aplikasi

Setelah kita berhasil mengoptimasi query dan mendapatkan waktu eksekusi query yang cepat, hal selanjutnya yang perlu diperhatikan adalah aplikasi untuk menjalankan query tersebut. Karena pengambilan data lambat bisa jadi bukan disebabkan oleh perintah query nya melainkan aplikasi yang digunakan untuk menjalankan perintah query tersebut.
Hal ini umumnya disebabkan oleh query didalam loop, selain itu seringnya query terpecah pecah, di ebook ini dibahas bagaimana mengatasi hal ini dan bagaimana menggabungkan beberapa query menjadi single query MySQL.

11. Optimasi Insert Data

Ketika memasukkan data dalam jumlah besar ke tabel database, seringnya proses insert berjalan lama atau bahkan sangat lama. Untuk mengatasi hal tersebut, kita perlu memahami beberapa hal penting diantaranya:
  • Besarnya disk I/O ketika proses insert.
  • Bentuk query insert dan hubungannya dengan penataan ulang index.
  • Uuran statemen insert.
  • Proses pengiriman data dari server ke client.
  • Dan lain sebagainya
Dengan mengetahui dan memahami hal tersebut diatas, kita dapat mengidentifikasi hal hal yang menyebabkan query insert menjadi lambat dan mengetahui bagaimana cara mengatasinya.

Detil e-Book optimasi query MySQL / MariaDB

Spesifikasi e-Book:
  • Judul: Optimasi Query MySQL – Maksimalkan Kecepatan Query MySQL/MariaDB Anda
  • Penulis: Agus Prawoto Hadi
  • Terbit: November 2018
  • Dimensi: 15,7 cm x 23 cm
  • Jumlah Halaman: xix + 313
Fitur:
  • Ditulis dengan detail dan mudah dipahami.
  • Include source code.
  • Free lifetime update versi berikutnya.
  • Free support materi yang ada di buku via: Whatsapp dan Email
Untuk siapa?
Buku ini cocok bagi Anda yang:
  • Sedang belajar query MySQL/MariaDB. Dengan membaca buku ini, akan memiliki bekal bagaimana menyusun query yang optimal.
  • Ingin mengoptimalkan waktu eksekusi query.
  • Memperdalam ilmu tentang pemanfaatan index pada query database
  • Sedang mengembangkan aplikasi, karena dengan memahami materi di buku ini, masalah besar aplikasi, yaitu waktu eksekusi query database dapat diidentifikasi lebih dini.

Daftar Isi

Daftar isi ebook:
  • Kata Pengantar
  • Source Code
  • Daftar Isi
  • BAB 1 Persiapan
    • 1.1. Server MySQL / Maria DB
    • 1.2. Software Client
  • BAB 2 Mengenal Istilah
    • 2.1. Client dan Server
      • 2.1.1. Server
      • 2.1.2. Client
      • 2.1.3. \g dan \G
    • 2.2. Optimizer dan Query Execution Plan (QEP)
      • 2.2.1. Optimizer
      • 2.2.2. Query Execution Plan (QEP)
    • 2.3 Statement dan Klausa
  • BAB 3 Mengukur Kecepatan Query
    • 3.1. Mengetahui Waktu Eksekusi
    • 3.2. Kecepatan Query Yang Dapat Diterima
  • BAB 4 Alur Eksekusi Query
    • 4.1. MySQL Client / Server Protocol
    • 4.2. Query Cache
    • 4.3. Parser
    • 4.4. Preprocessor
    • 4.5. Optimizer
    • 4.6. Query Execution Engine
    • 4.7. Bagian Yang Dapat Dioptimasi
  • BAB 5 Memahami Explain
    • 5.1. Wajib Diketahui
    • 5.2. Syntax Statemen EXPLAIN
    • 5.3. Output Statemen EXPLAIN
      • 5.3.1. id
      • 5.3.2. select_type
        • 5.3.2.1. SIMPLE
        • 5.3.2.2. PRIMARY
        • 5.3.2.3. DERIVED
        • 5.3.2.4. UNION
        • 5.3.2.5. UNION RESULT
        • 5.3.2.6. MATERIALIZED
        • 5.3.2.7. SUBQUERY
        • 5.3.2.8. DEPENDEN SUBQUERY
      • 5.3.3. table
        • 5.3.3.1. Urutan Join
        • 5.3.3.2. NULL
      • 5.3.4. type
        • 5.3.4.1. All
        • 5.3.4.2. Index
        • 5.3.4.3. Index_merge
        • 5.3.4.4. Range
        • 5.3.4.5. Ref / ref_or_null
        • 5.3.4.6. eq_ref
        • 5.3.4.7. Const, System
        • 5.3.4.8. NULL
      • 5.3.5. possible_key
      • 5.3.6. key
      • 5.3.7. key_len
      • 5.3.8. Ref
      • 5.3.9. Rows
        • 5.3.9.1. Membaca Kolom Rows: Satu Tabel
        • 5.3.9.2. Membaca Kolom Rows: Dua Tabel
        • 5.3.9.3. Membaca Kolom Rows: Tiga Tabel
        • 5.3.9.4. Limit
        • 5.3.9.5. Statistic Table
      • 5.3.10. Filtered
      • 5.3.11. Extra
        • 5.3.11.1. Using Where
        • 5.3.11.2. Using Index
        • 5.3.11.3. Using Index Condition
        • 5.3.11.4. Using Temporary
        • 5.3.11.5. Using Filesort
        • 5.3.11.6. Using Intersec
        • 5.3.11.7. Using Union
        • 5.3.11.8. Using Sort_union
        • 5.3.11.9. Using MMR
        • 5.3.11.10. Select tables optimized way
    • 5.4. Visual Explain
      • 5.4.1. Diagram Visual Explain
      • 5.4.2. Menganalisa Visual Explain
    • 5.5. Statemen EXPLAIN Pada UPDATE dan DELETE
  • BAB 6 INDEX
    • 6.1. Apa Yang Dimaksud Index?
    • 6.2. Seberapa Penting Index?
    • 6.3. Memahami Cara Kerja Index
    • 6.4. Menampilkan Index
    • 6.5. Memahami Kardinalitas Index
      • 6.5.1. Kardinalitas dan Penggunaan Index
      • 6.5.2. Update Kardinalitas
    • 6.6. Membuat Index
    • 6.7. Jenis Index
      • 6.7.1. Individual Index (Satu Kolom Index)
        • 6.7.1.1. Cara Kerja Individual Index
        • 6.7.1.2. Penggunaan Individual Index
      • 6.7.2. Composite Index (Multi Kolom Index)
        • 6.7.2.1. Cara Kerja Komposit Index: Left Most
        • 6.7.2.2. Penggunaan Komposit Index
    • 6.8. Covering Index
    • 6.9. InnoDB Index
      • 6.9.1. Clustered Index
      • 6.9.2. Nonclustered Index
      • 6.9.3. PRIMARY KEY Setiap Tabel ?
    • 6.10. Kelemahan Index
    • 6.11. File Index Pada MySQL
  • BAB 7 Optimasi Index
    • 7.1. Kapan Index Digunakan?
      • 7.1.1. WHERE dan Operator
        • 7.1.1.1. Trik: Operator AND
        • 7.1.1.2. Trik: Operator OR dan IN
        • 7.1.1.3. Trik: Kombinasi AND dan OR
      • 7.1.2. JOIN
      • 7.1.3. Fungsi MIN(), MAX(), dan COUNT()
      • 7.1.4. ORDER BY
        • 7.1.4.1. Tanpa WHERE
        • 7.1.4.2. Dengan WHERE: Komposit Index
        • 7.1.4.3. Dengan WHERE: Komposit Index Harus Urut
        • 7.1.4.4. Index Tidak Digunakan – Type: Range
        • 7.1.4.5. Perlukah Menambahkan Index ?
        • 7.1.4.6. Memahami Filesort.
    • 7.2. Apakah Index Telah Digunakan?
    • 7.3. Index Yang pendek
    • 7.4. Duplikasi Index
      • 7.4.1. Dupliaksi Index, Bahaya ?
      • 7.4.2. Komposit Index
      • 7.4.3. PRIMARY KEY
    • 7.5. More Index, More Better?
    • 7.6. Force Index
  • BAB 8 Optimasi Tabel
    • 8.1. Analyze Table dan Optimize Table
    • 8.2. Tipe Data dan Panjang Data
    • 8.3. Character Set
    • 8.4. Not Null
    • 8.5. Kolom Yang Berhubungan
    • 8.6. Selalu Gunakan PRIMARY KEY
    • 8.7. Memilih Storage Engine
  • BAB 9 Optimasi Query
    • 9.1. Gunakan MySQL Terbaru
    • 9.2. Operasi Pada Kolom
    • 9.3. Optimasi Kolom Tanggal
    • 9.4. Type Conversion
    • 9.5. Hindari Select * ?
    • 9.6. Pindahkan WHERE ke SELECT
    • 9.7. Tidak Semua Dapat Dioptimasi
  • BAB 10 Profiling
    • 10.1. Slow Query Log
      • 10.1.1. Slow Query Log Pada File
      • 10.1.2. Slow Query Log Pada Tabel Database
      • 10.1.3. Menggunakan mysqldumpslow
      • 10.1.4. Menghapus Log
    • 10.2. Profiling Query
      • 10.2.1. Performance Schema
      • 10.2.2. Query Profile
  • BAB 11 Optimasi Konfigurasi
    • 11.1. Optimasi Konfigurasi Server
      • 11.1.1. max_allowed_packet
      • 11.1.2. sort_buffer_size
      • 11.1.3. read_buffer_size
      • 11.1.4. read_rnd_buffer_size
      • 11.1.5. join_buffer_size
      • 11.1.6. net_buffer_length
      • 11.1.7. table_open_cache
    • 11.2. Optimasi Konfigurasi InnoDB
      • 11.2.1. innodb_buffer_pool_size
      • 11.2.2. innodb_buffer_pool_instance
      • 11.2.3. innodb_log_file_size
      • 11.2.4. innodb_log_files_in_group
      • 11.2.5. innodb_log_buffer_size
      • 11.2.6. innodb_flush_log_at_trx_commit
      • 11.2.7. innodb_per_file_table
    • 11.3. Optimasi Konfigurasi MyISAM
      • 11.3.1. key_buffer_size
      • 11.3.2. myisam_max_sort_file_size
      • 11.3.3. myisam_sort_buffer_size
    • 11.4. Contoh Konfigurasi
    • 11.5. Tes dan Ukur
  • BAB 12 Query Cache
    • 12.1. Karakteristik
    • 12.2. Mengktifkan Query Cache
    • 12.3. Cek Apakah Query Cache Telah Bekerja
    • 12.4. Mengetahui Query Yang Disimpan
    • 12.5. Reset Cache
    • 12.6. Batas Optimum Ukuran Cache Query.
  • BAB 13. Optimasi Aplikasi
    • 13.1. Tanamkan Mindset Ini
    • 13.2. Kasus 1: Resume dan Detail
    • 13.3. Kasus 2: Gabungkan Query
  • BAB 14 Insert dan Ekspor Data
    • 14.1. Insert Data
      • 14.1.1. LOAD DATA
      • 14.1.2. STATEMEN INSERT
    • 14.2. Ekspor Data
      • 14.2.1. mysqldump
      • 14.2.2. Menggunakan Database Management
      • 14.2.3. Output: Individual Insert Vs. Bulk Insert Vs. CSV
  • BAB 15 Big Database
    • 15.1. Partisi tabel
      • 15.1.1. Kapan Perlu Partisi Tabel?
      • 15.1.2. Manfaat Partisi Tabel
      • 15.1.3. Tipe partisi
      • 15.1.4. Jenis Partisi
        • 15.1.4.1. RANGE
        • 15.1.4.2. LIST
        • 15.1.4.3. HASH
        • 15.1.4.4. KEY
      • 15.1.5. Batasan Partisi Tabel
      • 15.1.6. Partition Pruning
      • 15.1.7. Manual Partition Pruning
      • 15.1.8. Subpartisi
      • 15.1.9. Mengelola Partisi
        • 15.1.9.1. Melihat Struktur dan Isi Partisi
        • 15.1.9.2. Merubah / Rename Partisi
        • 15.1.9.3. Menambah Partisi
        • 15.1.9.4. Menghapus Partisi
        • 15.1.9.5. Optimasi Partisi
      • 15.1.10. Auto Partition?
    • 15.2. Manual Tabel Split
    • 15.3. Studi Kasus: Resume Data
  • DAFTAR PUSTAKA

Bonus Chet Sheet “Optimasi Query Database MySQL/MariaDB”

Selain e-book, kami juga memberikan bonus eksklusif berupa cheatsheet pdf yang berisi ringkasan dari berbagai materi dalam buku tersebut.
Cheat sheet ini merupakan shortcut setelah anda memahami pembahasan yang ada didalam buku. Dengan cheatsheet ini, Anda dapat dengan cepat mengetahui hal hal yang diperlukan untuk mengoptimasi query dan database.
Cheat Sheet Optimasi Query Database MySQL
Cheat Sheet Optimasi Query Database MySQL
Kategori Cheat Sheet:
  • Optimasi Query MySQL / MariaDB.
  • Optimasi Konfigurasi Server.
  • Optimasi Tabel Database.
  • Optimasi Big Database.

Testimoni

Beberapa testimoni pembaca eBook Jagowebdev.com
Testimoni dari beberapa dosen perguruan tinggi swasta:
Testimoni Dosen PTS Malang - Untuk Bahan Ajar Mahasiswa
Testimoni Dosen PTS Malang – Untuk Bahan Ajar Mahasiswa

Testimoni Ebook Query MySQL Untuk Dosen - Pengajar
Testimoni Dari Dosen PTS Solo – Sangat Bermanfaat Bagi Akademisi
Testimoni dari mahasiswa:
Testimoni Ebook Panduan Query MySQL - Sangat Bagus Bagi Mahasiswa
Testimoni Ebook Panduan Query MySQL – Mahasiswa: Puas Banget Dengan Isinya
Testimoni dari pembaca lain:
Testimoni ebook - Materi yang mendalam
Testimoni – Materi jarang ditemui di buku-buku dalam negeri, apalagi di Google, materi advance namun tetap mudah dipahami dan di praktikkan

Testimoni Ebook Query MySQL
Testimoni Ebook Query MySQL “Penjelasannya Bagus Sekali”

Testimoni Ebook Panduan Lengkap Query MySQL
Testimoni Ebook Query MySQL “#jenius”

Biaya Investasi

Paket diatas merupakan salah satu materi yang disediakan bagi member premium jagowebdev.com. Cukup dengan investasi sebesar Rp. 100.000 Anda sudah dapat menjadi member premium dengan masa keanggotaan selama 1 tahun. Dengan menjadi member premium, Anda dapat mendownload seluruh materi yang ada di halaman member.
Harga diatas dapat berubah sewaktu waktu seiring dengan jumlah item yang akan ditambahkan, jadi, jangan lewatkan kesempatan baik ini, segera join disini.

Paket Lainnya