Hindari Anak-anak Dari situs PORNO…! Nawala Project solusi terbaik…!

Nawala Project adalah sebuah layanan yang bebas digunakan oleh pengguna internet yang membutuhkan saringan konten negatif. Nawala Project secara spesifik akan memblokir jenis konten negatif yang tidak sesuai dengan peraturan perundangan, nilai dan norma sosial, adat istiadat dan kesusilaan bangsa Indonesia seperti pornografi dan perjudian. Selain itu, Nawala Project juga akan memblokir situs Internet yang mengandung konten berbahaya seperti malware, situs phising (penyesatan) dan sejenisnya.

Perlindungan pengguna, terutama anak-anak menjadi perhatian utama Nawala Project. Dengan adanya layanan ini diharapkan Internet dapat menjadi tempat yang lebih aman dan nyaman agar dapat dimanfaatkan secara optimal oleh masyarakat Indonesia untuk mempercepat kemajuan serta kesejahteraan.

Layanan ini sejak awal dirancang untuk menerima masukan langsung dari komunitas internet dan Masyarakat Umum yang menjadi pengguna layanan. Masukan inilah yang ditelaah oleh Tim Nawala Project untuk menentukan apakah sebuah situs layak di filter atau tidak.

Apa sih DNS Nawala?
o DNS Nawala adalah salah satu layanan yang diberikan oleh Nawala Project yang membantu pengguna internet menghindari akses ke situs-situs yang mengandung materi pornografi, judi, phising dan malware

– Bagaimana cara menggunakan DNS Nawala?
o Ubah DNS pada komputer anda ke alamat IP DNS Nawala maka anda sudah siap menggunakan DNS Nawala. IP DNS Nawala adalah:
� 180.131.144.144
� 180.131.145.145

– Operating System apa saja yang bisa menggunakan DNS Nawala?
o Hampir semua OS yang umum digunakan (Windows, Mac, Linux) dapat memanfaatkan DNS Nawala. Silahkan baca petunjuk penggunaan pada situs nawala.org

– Siapa yang boleh menggunakan DNS Nawala? Apakah dikenakan biaya?
o DNS Nawala dapat digunakan siapa saja, mulai dari pengguna rumahan sampai pengguna komersial. Tanpa batasan penyedia jasa layanan internet yang digunakan.
o Pengguna tidak dikenakan biaya apapun

– Jika tidak berbayar, siapa yang membiayai Nawala? Apakah saya dapat berkontribusi?
o Nawala saat ini dibiayai oleh komunitas Warnet/Awari dan beberapa pihak yang tertarik membantu inisiatif Internet yang bersih, aman dan sehat
o Silahkan hubungi kami melalui info@nawala.org jika tertarik memberikan kontribusi/bantuan kepada Nawala Project

– Bagaimana jika masih ada situs berkandungan negatif yang lolos?
o Jika ada situs yang anda anggap memenuhi kriteria situs negatif dan belum tersaring oleh DNS Nawala, silahkan dilaporkan kepada kami melalui email info@nawala.org atau mengisi formulir online di situs nawala.org

– Apa yang harus dilakukan jika ada situs yang berkandungan postif terblokir?
o Selalu ada kemungkinan terjadinya perubahan status domain ataupun kesalahan memasukkan data. Jika anda menemukan situs yang seharusnya tidak disaring oleh DNS Nawala, laporkan kepada kami melalui email info@nawala.org

– Selain DNS Nawala, apakah ada layanan lain yang diberikan oleh Nawala Project?
o Untuk saat ini baru DNS Nawala yang dapat dipergunakan oleh pengguna internet, namun dalam perencanaan jangka panjang Nawala Project juga akan memberikan layanan URL Filtering dan Anti SPAM

hmmm cocok ya untuk di terapkan di rumah ….!

sumber : http://www.nawala.org


Iklan

Membuat PC Router Dengan Ubuntu Untuk Setting Jaringan LAN – WAN (Tutorial 1)

Router adalah sebuah device yang berfungsi untuk meneruskan paket-paket dari sebuah network ke network yang lainnya (baik LAN ke LAN atau LAN ke WAN) sehingga host-host yang ada pada sebuah network bisa berkomunikasi dengan host-host yang ada pada network yang lain. Jenis router ada yang diproduksi oleh vendor tertentu (cisco, juniper, dst) atau yang dapat difungsikan menggunakan komputer (pc router).

PC (Personal Computer) Router adalah sebuah komputer yang berfungsi sebagai router. PC Router dapat diterapkan dengan menggunakan spesifikasi minimal :
aka akan terlihat seperti berikut :
untuk ip static :
—————cut————–
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT 0 — 192.168.0.0/24 anywhere to:10.10.1.81
—————cut————–

untuk ip DHCP :
—————cut————–
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE 0 — 192.168.0.0/24 anywhere

Router adalah sebuah device yang berfungsi untuk meneruskan paket-paket dari sebuah network ke network yang lainnya (baik LAN ke LAN atau LAN ke WAN) sehingga host-host yang ada pada sebuah network bisa berkomunikasi dengan host-host yang ada pada network yang lain. Jenis router ada yang diproduksi oleh vendor tertentu (cisco, juniper, dst) atau yang dapat difungsikan menggunakan komputer (pc router).

PC (Personal Computer) Router adalah sebuah komputer yang berfungsi sebagai router. PC Router dapat diterapkan dengan menggunakan spesifikasi minimal :
– Dua buah NIC
– OS *nix (BSD, Linux, Unix), OS Windows Server, Open Solaris, dst
Pada installasi kali ini, kita akan membuat PC Router dengan menggunakan OS Linux Ubuntu Desktop 7.10 Punyanya “Om Gusty”.

Saat ini aku make dua buah lan cards yang satu buat ke luar dan yang atunya buat ke dalam.

KONFIGURASI
1. Konfigurasi IP address
* eth0 : IP Address 10.10.1.81 Netmask 255.255.255.0
* eth1 : IP Address 192.168.0.1 Netmask 255.255.255.0
* DNS Server : 127.0.0.1 (disesuaikan dengan punya kita yang konek internet)
* Search Domains : perusahaan.com (boleh di isi boleh gak)

perintah seting ip (bisa lewat gui, tp ni ak pake terminal):
* sudo ifconfig eth0 10.10.1.81 netmask 255.255.255.0 (lan card 1)
* sudo ifconfig eth 192.168.0.1 netmask 255.255.255.0 (lan card 2)
* route add default gw 10.10.1.1 (klo pake modem ya GATEWAY nya modem)

klik panel System->Administration->Network trus meminta password administrasi, maka masukan password user yang pertama kali dibuat. Pilih bagian eth0 (network eksternal) lalu klik “Properties” . Uncheck pilihan “Enable roaming mode” lalu ganti “Configuration” menjadi “Static IP Address“. Masukan :

* IP address : 10.10.1.81
* Subnet mask : 255.255.255.0
* Gateway address : 10.10.1.1 (Gateway di isi sesuai dengan ip modem ato alat yg konek internet tu pokoke)

Lalu klik tombol “OK“.

Pilih bagian eth1 (network internal) lalu klik “Properties” . Uncheck pilihan “Enable roaming mode” lalu ganti “Configuration” menjadi “Static IP Address“. Masukan :

* IP address : 192.168.0.1
* Subnet mask : 255.255.0.0
* Gateway address :

Lalu klik tombol “OK“.
Gateway pada eth1 dikosongkan, karena router harus menentukan default gateway-nya. Sedangkan default gateway yang digunakan adalah yang melalui eth0.
Lanjuttt …. Pilih tab “General“. Masukan :

* Host name : PCrouter
* Domain name : Nyobain.com

Pilih tab “DNS“
Klik “Add” pada bagian “DNS Servers” lalu masukan IP Address dns servernya yaitu 127.0.0.1, tekan enter. Itu Kita memasukan IP Address localhost (127.0.0.1) karena kita akan menggunakan DNS local untuk semua manajemennya. Ato klo make koneksi lainnya disesuaikan aja yah.
Klik “Add” pada bagian “Search domains” lalu masukan Nyobain.com, tekan enter
Tekan tombol “Close” apabila konfigurasi sudah sesuai. Secara otomatis seharusnya IP Address sudah terkonfigurasi sendiri, apabila masih belum maka bisa direstart networknya atau restart aja komputernya

2. Konfigurasi IP Forward
IP Forward adalah suatu system yang berfungsi untuk meneruskan paket-paket dari suatu jaringan ke jarinagn yang lain. Untuk mengkonfigurasinya, kita perlu mengubah modul kernel ip_forward menjadi enable. Tapi sebelumnya ubah password root dahulu biar gak ngerepotin nantinya. Klik panel System->Administration->Users and Groups. Pilih login name “root“, lalu klik Properties. Dibagian “Password“, ubah :

* User password : password_root
* Confirmation : password_root

Atau “Generate random password“, apabila ingin menggunakan password yang dibuat secara random. Lalu klik tombol “OK“.
Untuk mengaktifkan IP Forward, kita dapat mengklik panel Applications->Accecories->TerminalSetelah muncul terminalnya, ketik perintah :

* su –
* Password : password_root

Maka kita sudah masuk ke mode root, dengan ditandai oleh tanda “#” (tanda kress). Lalu dilanjutkan dengan perintah berikut :

* echo “net.ipv4.ip_forward=1? >> /etc/sysctl.conf
* sysctl -p /etc/sysctl.conf

Apabila pada file /etc/systecl.conf sudah terdapat entry-an “net.ipv4.ip_forward=0“, maka ubah saja nilainya menjadi 1. Untuk mengubah nilainya dapat menggunakan editor “pico” ato “vi“ ato “nano” ato apalah perintah linux lainnya. Untuk mengecek apakah IP Forward sudah diaktifkan pada PC, maka jalankan perintah berikut :

* sysctl net.ipv4.ip_forward

Apabila hasilnya adalah 1, maka IP Forward sudah di enable. Selanjutnya paket-paket yang dikirim oleh network sudah dapat diteruskan ke network yang lainnya.

3. Konfigurasi IP yang Dituju pada saat Nge-routing
Perintah yang aku pakai di bawah ini buat ip yang static :

* sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -j SNAT –to 10.10.1.81

Sedangkan untuk IP yang DHCP bisa pakai cara mas Hanadi :

* sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -j MASQUERADE

untuk mengecek hasilnya ketikan perintah berikut :

* iptables -L -t nat

Maka akan terlihat seperti berikut :
untuk ip static :
—————cut————–
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT 0 — 192.168.0.0/24 anywhere to:10.10.1.81
—————cut————–

untuk ip DHCP :
—————cut————–
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE 0 — 192.168.0.0/24 anywhere
—————cut————–

Konfigurasi IP Masquerade tidak bersifat permanen, maka disarankan untuk mengaplikasikan cara berikut :

* pico /etc/init.d/iptables
Isikan file tersebut dengan entry-an berikut :
—–start—–

#!/bin/sh
#
#This is a ubuntu adapted iptables script from gentoo
#(http://www.gentoo.org) which was originally distributed
# under the terms of the GNU General Public License v2
#and was Copyrighted 1999-2004 by the Gentoo Foundation
#
#This adapted version was intended for and ad-hoc personal
#situation and as such no warranty is provided.

IPTABLES_SAVE=”/etc/default/iptables-rules”
SAVE_RESTORE_OPTIONS=”-c”
SAVE_ON_STOP=”yes”

checkrules() {
if [ ! -f ${IPTABLES_SAVE} ]
then
echo “Not starting iptables. First create some rules then run”
echo “\”/etc/init.d/iptables save\””
return 1
fi
}

save() {
echo “Saving iptables state”
/sbin/iptables-save ${SAVE_RESTORE_OPTIONS} > ${IPTABLES_SAVE}
}

start(){
checkrules || return 1
echo “Loading iptables state and starting firewall”
echo -n “Restoring iptables ruleset”
start-stop-daemon –start –quiet –exec /sbin/iptables-restore — ${SAVE_RESTORE_OPTIONS} &2
exit 1
;;
esac

exit 0

sumber:
http://www.iso.web.id

Monitoring Network dengan Dude

Dude… Sebuah aplikasi berbasis GUI yang diperuntukkan untuk admin, dalam mengelola Netnya. Mmm, tools ini memang gak begitu jauh dengan scanning network lainnya yang sudah gui sprt Languard atau yang lainnya. Namun yang menarik adalah…Gratis.. alias Free.

Ada beberapa hal yang bisa kita dapatkan dari tools ini :

1.Scanning Network
2.Layout network
3.Melihat services

dan masih banyak lagi yang bisa kita dapatkan pada Dude. untuk downloadnya dapat dilakukan di
http://www.mikrotik.com/thedude.php

berikut Screen Shot dari dude:

Berbagai Software Gratis Edit Audio (mp3, wma, wav, ogg)


Jika kita memerlukan konversi file audio sudah begitu banyak software gratis yang bisa dipakai (audio converter). Tetapi bagaimana halnya dengan software untuk mengedit audio seperti MP3, OGG, WAV dan WMA ? Ternyata juga tidak kalah banyak.

Berikut berbagai software gratis dan open source yang dapat kita gunakan untuk mengedit, merekam, menggabung dan menambah berbagai efek file audio.

1. Audacity

Software Open source ini cukup populer karena mungkin merupakan software opensource terlengkap. Audacity mampu merekam live audio atau dari microphine, meng-edit (cut, copy, paste) berbagai format audio, seperti OGG, MP3, WAV, AIFF, menambahkan berbagai effek, mengubah kualitas audio, dan juga berbagai fitur lainnya termasuk dukungan terhadap plugins.

audacity-small

Audacity tersedia untuk platform Windows, Mac OS X, dan GNU/Linux, dengan ukuran sekitar 4.1 MB.

2. WavePad Sound File Editor

WavePad dapat digunakan untuk mengedit berbagai format audio seperti wav, mp3, vox, gsm, real audio, au, aif, flac ogg dan lainnya. Selain fitur standard (cut,copy,paste), berbagai fitur tersedia, seperti audio effect, batch convert, analysis, merekam audio, mendukung mono atau stereo, dan berbagai fitur lainnya.

wavepad-small

WavePad dapat berjalan di sistem operasi Windows 95/NT4/98/2000/Me/XP/2003/Vista atau sesudahnya, Mac OS X 10.2 keatas, dan dapat berjalan di Linux dengan WINE. Ukuran Installasi windows hanya sekitar 459 KB dan 1 MB untuk Mac.

3. Wavosaur

Wavosaur merupakan editor audio wav dan mp3, juga untuk memproses dan merekam audio. Fitur standard seperti cut, copy, paste tersedia. Termasuk fitur analyze, audio loops dan batch convert. Wavosaur juga mendukung VST plugins, ASIO driver, multichannel files dan real time effect processing.

wavesour-small

Selain berbagai fitur diatas, wavosaur juga mempunyai berbagai fitur lainnya seperti resample, interpolate, konversi bit-depth dan lainnya. Salah satu kemudahan software ini mungkin aplikasinya yg tidak perlu di install ( juga tidak menambah isi registry windows), ukuran yang cukup kecil (file exe 540 KB, dalam zip/download hanya sekitar 220 KB). Wavosaur berjalan di Win98/XP/Vista.

4. Free Audio Editor 2009 (FAE 2009)

Free Audio Editor tampil dengan skin Ribbon ( seperti office 2007), dengan kemampuan merekam maupun mengedit file audio/sound. Format yang didukung adalah mp3, wma, wav dan ogg. Seperti software lainnya FAE 2009 juga dilengkapi dengan audio effect, noise reduction, batch processing, CD ripper dan lainnya.

fae-2009

Mungkin karena tampilannya yang menggunakan skin ribbon, maka ukuran installasi FAE 2009 sekitar 13.9 MB. Lebih besar dibanding yang lainnya.

5. Power Sound Editor Free

Power Sound Editor tampilannya mirip FAE 2009 sebelumnya dan mengusung fitur yang hampir sama juga. Seperti Merekam audio baik dari microphone atau aplikasi yang berjalan, mengedit dengan fitur standard, menggabung dengan file lain, menambah effek yang berbeda, Juga rip audio dan Burn audio ke CD.

free-sound-editor

Power Sound editor mendukung format MPEG (MP3, MP2), WAV, Windows Media Audio (WMA) , Ogg Vorbis, Audio Tracks dan Dialogic VOX. Ukurannya hampir sama dengan FAE 2009 sekitar 13.6 MB.

Sepertinya Antara Free Audio Editor 2009 dan Power Sound Editor merupakan software yang sama (minimal mirip), selain keduanya terdapat software lainnya yang juga mirip di http://www.music-editor.net.

6. Mp3DirectCut

Software ini seperti namanya, di design khusus untuk mengedit ( memotong file audio mp3). Karena kekhususan ini, maka Mp3DirectCut dapat bekerja sangat cepat (dibanding program lainnya). Fiturnya seperti : cut, copy, paste, mengubah volume, fade, normaliasai, merekam audio, trim, crop, VU meter, bit rate visualisation dan lainnya.

mp3directcut

Ukuran installasi software ini cukup kecil, hanya sekitar 190 KB dan sistem yang diperlukan pun cukup ringan yaitu : CPU 300 MHz, Windows atau Linux ( dengan Wine), mp3 ACM codec (sudah disertakan di windows XP/Vista) atau mpglib.dll dan Untuk merekam diperlukan encoding ACM atau Lame encoder.

7. Traverso DAW

Tranverso DAW merupakan software Open Source yang bisa berjalan di Windows, LInux dan Mac OS. Dengan fitur multitrack audio recording dan kemampuan editing, Unlimited undo/redo, Konversi sample rate, Multiple driver backends, Lockless realtime audio processing ( untuk menghindari proses perekaman yang terpotong), integrasi dengan CD burning dan lainnya.

transverso-small

Salah satu keunggulan tranverso adalah Multitrack audio recorder, sehingga mampu menambahkan jumlah track yang hampir tak terbatas. Ukuran file installer untuk windows sekitar 6.43 MB dengan lisensi GPL (open source).

Untuk Daftar yang lebih lengkap, bisa melihat artikel berikut 25 Free Digital Audio Editors You Should Know ( ebsoft.web.id)

FTP Service di Windows XP Profesional SP3 (Tutorial 1)

Thanks to Camtasia Studio 6.0

SOFTWARE SCREEN RECORD UNTUK MEMBUAT VIDEO PEMBELAJARAN

Karena kita akan membuat materi video tutorial, sebagai contoh kita akan membuat tutorial komputer, kita membutuhkan software untuk merekam gerakan kita di komputer (screen record). Ada banyak software yang bisa Anda gunakan, mulai dari yang gratis hingga yang berbayar. Anda bisa menggunakan Camtasia Studio sebagai software screen record yang bisa Anda download disini.

  • Langkah awal adalah download dulu software diatas dan install programnya, setelah selesai jalankan software tersebut.
  • Sebelum Anda merekam, saran saya atur terlebih dahulu output file. Caranya, pada jendela Camtasia Recorder, Klik ToolsOptions. Pada tab Capture pilih saja pilihan Save as AVI pada kolom File Options.
  • Pilih area yang Anda kehendaki untuk direkam
    Region of the screen, bila Anda ingin memilih secara bebas area yang akan direkam. Specific window, bila Anda ingin memilih jendela tertentu yang akan direkam. Entire screen, bila Anda ingin satu layar penuh untuk direkam.
  • Anda juga bisa menentukan media audio dan video (bila menggunakan camera) mana saja yang akan dimasukkan kedalam rekaman Anda.

  • Langkah selanjutnya adalah memilih perangkat audio yang akan digunakan untuk input suara, bisa melalui microphone, speaker audio, microphone dan speaker audio, ataupun secara manual.
    Setelah semua setting diatur, berikutnya adalah dengan meng-klik tombol RECORD.Mulai deh bercuap-cuap seolah-olah sedang memberikan materi pada peserta didik. Bisa juga dengan menggunakan tombol F9 untuk Start/Pause dan F10 untuk Stop merekam.

  • Langkah terakhir adalah menyimpan hasil rekaman Anda.

    Anda bisa meng-edit hasil rekaman Anda sebelum diupload dan di-publish dalam website Anda.
    Selamat mencoba dan semoga bermanfaat…

    Referensi :  http://video.techsmith.com/camtasia/latest/edu/howto/enu/howto_cs4.html

    Cinta Sampai Mati

    Software Video Converter Gratis (Mendukung Format avi, flv, mov, mp4, wmv dll)

    To The Point ….!

    Nama softwarenya adalah WinFF. Software ini mampu meng-convert berbagai macam jenis video (avi, flv, mov, mp4, XviD, wmv de el el). Software ini menggunakan library yang bernama FFmpeg. Kabar baiknya, software ini dapat digunakan secara gratis dan dapat dijalankan baik di Windows maupun di Linux. Asik kan? Walopun tampilan pas-pasan, tapi kinerjanya mantap bro!


    Aslinya, FFmpeg dijalankan menggunakan command prompt. Jadi, ketika mulai melakukan convert, akan muncul command prompt tanda aplikasi sedang meng-convert video. Tunggu aja ampe selesai.


    Ahh.. dengan software ini kerjaanku terbantu.

    Tutorial MySQL


    Menjalankan MySQL

    Menjalankan MySQL dapat dilakukan melalui menu Windows: Start -> Programs -> MySQL ->
    MySQL Server 5.0 -> MySQL Command Line Client. Kemudian Anda masukkan password
    yang telah Anda buat pada saat instalasi MySQL.
    Enter password: ******
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 60
    Server version: 5.0.45-community-nt MySQL Community Edition (GPL)
    Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
    mysql>

    Menampilkan database

    Kita coba dengan perintah “SHOW DATABASES” yang akan menampilkan database yang ada di
    dalam sistem MySQL kita.
    mysql> show databases ;
    +——————–+
    | Database |
    +——————–+
    | information_schema |
    | mysql |
    | test |
    ———————+
    3 rows in set (0.00 sec)

    Catatan: Istilah database perlu dipahami dengan baik. Database di dalam MySQL adalah
    sekumpulan tabel-tabel. Jumlah tabel minimal satu buah, dan maksimalnya tidak terbatas.
    Semakin banyak tabel, maka akan semakin besar ukuran database Anda. Yang membatasi besarnya
    database adalah kemampuan sistem operasi kita, dan juga jumlah kapasitas ruang dalam haarddisk
    dan memori komputer Anda. Keterangan selengkapnya mengenai hal ini dapat dilihat pada situs
    MySQL (http://www.mysql.com).

    Membuat database baru

    Sudah ada 3 buah database di dalam sistem MySQL. Sekarang kita akan membuat sebuah database
    untuk latihan kita. Gunakan perintah “CREATE DATABASE” untuk membuat sebuah database.
    mysql> create database latihan1 ;
    Query OK, 1 row affected (0.02 sec)

    Anda perhatikan dari dua perintah MySQL di atas,bahwa setiap perintah selalu diakhiri dengan
    tanda “;” (titik-koma). Memang pada umumnya perintah-perintah MySQL diakhiri oleh tanda “;”
    ini. Perhatikan perintah dibawah ini bila ditulis tanpa tanda titik-koma “;’.

    mysql> create database latihan2
    ->

    Sistem MySQL akan menampilkan tanda panah ‘->’ yang menyatakan bahwa perintah MySQL
    tersebut dianggap belum selesai (karena belum diakhiri dengan tanda titik-koma ‘;’).
    Sekarang kita lengkapi perintah sebelumnya dengan tanda titik-koma ‘;’

    mysql> create database latihan2
    -> ;
    Query OK, 1 row affected (0.02 sec)

    Nah, semuanya berjalan normal bukan? 🙂
    Mari kita lanjutkan tutorialnya…
    Kita periksa lagi hasil dari perintah di atas dengan “SHOW DATABASE”.

    mysql> show databases ;
    +——————–+
    | Database |
    +——————–+
    | information_schema |
    | latihan1 |
    | latihan2 |
    | mysql |
    | test |
    +——————–+
    5 rows in set (0.00 sec)

    Menghapus database

    Kita tidak memerlukan database latihan2, maka kita dapat menghapusnya dengan perintah DROP
    DATABASE. Hati-hati dalam menggunakan perintah DROP DATABASE ini, karena database
    beserta seluruh isinya akan lenyap dari muka bumi tanpa bisa kita kembalikan lagi! Parahnya lagi,
    sistem MySQL tidak memberikan pertanyaan konfirmasi kepada Anda sebelum melakukan proses
    penghapusan database ini!

    mysql> drop database latihan2 ;
    Query OK, 0 row affected (0.02 sec)

    Anda bisa memeriksanya lagi hasil dari perintah di atas dengan “SHOW DATABASE”.
    mysql> show databases ;
    +——————–+
    | Database |
    +——————–+
    | information_schema |
    | latihan1 |
    | mysql |
    | test |
    +——————–+
    4 rows in set (0.00 sec)
    Anda perhatikan, database latihan2 sudah menghilang. Sekali lagi, hati-hati dalam menggunakan

    perintah DROP DATABASE!

    Memilih dan membuka sebuah database
    Sekarang kita pilih database “latihan1” dan kita buka dengan perintah “USE”
    mysql> use latihan1 ;
    Database change
    Melihat isi sebuah database
    Untuk melihat apa isi dari sebuah database, kita gunakan perintah “SHOW TABLES”. Mari kita
    coba.

    mysql> show tables ;
    Empty set (0.00 sec)

    Hasil dari perintah SHOW TABLES diatas adalah “Empty Set”, yang berarti belum ada tabel
    apapun didalam database latihan1.


    Membuat tabel baru

    Kita akan membuat sebuah tabel baru dengan menggunakan perintah “CREATE TABLE”.
    Contohnya sebagai berikut..

    mysql> create table karyawan ;
    ERROR 1113 (42000): A table must have at least 1 column

    Ternyata ada kesalahan yang terjadi. Untuk membuat sebuah tabel di MySQL, kita harus
    menentukan minimal satu buah field/kolom di dalamnya. Sekrang kita ubah perintah di atas menjadi
    sebagai berikut…

    mysql> create table karyawan
    -> (nopeg INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    -> nama VARCHAR(50) NOT NULL)
    -> ;
    Query OK, 0 rows affected (0.14 sec)

    Cukup panjang ya perubahan perintahnya. Mungkin sintaks perintahnya agak membingungkan pada
    awalnya. Tidak apa-apa, nanti akan kita bahas artinya. Secara umum, kita akan membuat sebuah
    tabel Karyawan dengan 2 buah kolom/field. Kolom pertama adalah NOPEG dengan jenis data
    bilangan bulat (INTeger), tanpa tanda negatif (UNSIGNED), yang akan bertambah nilainya secara
    otomatis (AUTO_INCREMENT), dan kolom NOPEG adalah kolom utama (PRIMARY KEY).
    Kemudian pada kolom kedua, NAMA akan menampung nama karyawan, dengan jenis data
    VARiabel CHARacter, lebar datanya dapat menampung maksimal 50 karakter, dan tidak boleh
    dikosongkan (NOT NULL). Kurang lebih seperti itulah ceritanya.. 🙂
    Kita lihat kembali apa isi dari database latihan1:

    mysql> show tables ;
    +——————–+
    | Tables_in_latihan1 |
    +——————–+
    | karyawan |
    +——————–+
    1 row in set (0.00 sec)

    Dari hasil perintah di atas, kita lihat bahwa database latihan1 telah memiliki sebuah tabel yang
    bernama karyawan. Selanjutnya kita akan lihat apa struktur dari tabel karyawan tersebut.


    Melihat struktur tabel

    Untuk melihat struktur sebuah tabel dapat menggunakan perintah “DESCRIBE” atau bisa juga
    menggunakan perintah “SHOW COLUMNS FROM”. Contohnya berikut ini…

    mysql> describe karyawan ;
    +——-+——————+——+—–+———+—————-+
    | Field | Type | Null | Key | Default | Extra |
    +——-+——————+——+—–+———+—————-+
    | nopeg | int(10) unsigned | NO | PRI | NULL | auto_increment |
    | nama | varchar(50) | NO | | | |
    +——-+——————+——+—–+———+—————-+
    2 rows in set (0.02 sec)

    Atau menggunakan perintah “SHOW COLUMNS FROM…”

    mysql> show columns from karyawan ;
    +——-+——————+——+—–+———+—————-+
    | Field | Type | Null | Key | Default | Extra |
    +——-+——————+——+—–+———+—————-+
    | nopeg | int(10) unsigned | NO | PRI | NULL | auto_increment |
    | nama | varchar(50) | NO | | | |
    +——-+——————+——+—–+———+—————-+
    2 rows in set (0.00 sec)

    Tidak ada perbedaan hasil dari dua perintah di atas, bukan? Sekarang kita buat sebuah tabel baru
    lagi, kita namakan saja tabel contoh1.

    mysql> create table contoh1
    -> (noid INT)
    -> ;
    Query OK, 0 rows affected (0.13 sec)

    Sekarang kita lihat berapa tabel yang ada di dalam database latihan1:

    mysql> show tables ;
    +——————–+
    | Tables_in_latihan1 |
    +——————–+
    | contoh1 |
    | karyawan |
    +——————–+
    2 rows in set (0.00 sec)


    Menghapus tabel

    Tabel contoh1 yang baru saja kita buat ini akan kita hapus kembali. Perintah untuk menghapus
    sebuah tabel dalam MySQL adalah “DROP TABLE”. Cukup mirip dengan perintah menghapus
    database, bukan? Kita harus menggunakan perintah “DROP” ini dengan kehati-hatian yang tinggi.
    Sistem MySQL tidak akan memberikan peringatan awal atau konfirmasi untuk proses penghapusan
    tabel. Dan bila sudah dihapus, maka tabel tersebut tidak bisa lagi kita kembalikan. Maka, berhatihatilah!

    mysql> drop table contoh1 ;
    Query OK, 0 rows affected (0.03 sec)

    Kita lihat lagi tabel yang ada di dalam database latihan1:

    mysql> show tables ;
    +——————–+
    | Tables_in_latihan1 |
    +——————–+
    | karyawan |
    +——————–+
    1 rows in set (0.00 sec)


    Mengubah struktur sebuah tabel

    Ada saatnya kita perlu mengubah struktur tabel yang pernah kita buat sebelumnya. Pengubahan
    struktur bisa dalam hal penambahan kolom (ADD), pengubahan lebar dan jenis kolom (MODIFY),
    atau bisa saja penghapusan kolom dan indeks (DROP), penggantian nama kolom (CHANGE),
    pengantian nama tabel (RENAME), dan sebagainya. Apa pun juga yang anda lakukan pada kolom
    tersebut tentu akan mempunyai dampak langsung pada data-data yang sudah ada. Nah, sekarang
    kita perlu menambahkan beberapa kolom baru, yaitu kolom jenis kelamin, kota, tanggal lahir dan
    kodepos pada tabel karyawan.
    Perintah untuk mengubah struktur tabel adalah “ALTER TABLE”. Mari kita coba…

    mysql> alter table karyawan
    -> ADD jenkelamin CHAR(2) NOT NULL,
    -> ADD kota VARCHAR(25) NOT NULL,
    -> ADD kodepos CHAR(5) NOT NULL,
    -> ADD tgllahir DATE
    -> ;
    Query OK, 0 rows affected (0.20 sec)
    Records: 0 Duplicates: 0 Warnings: 0

    Sekarang kita lihat hasilnya:

    mysql> describe karyawan ;
    +————+————-+——+—–+———+—————-+
    | Field | Type | Null | Key | Default | Extra |
    +————+————-+——+—–+———+—————-+
    | nopeg | int(10) | NO | PRI | NULL | auto_increment |
    | nama | varchar(50) | NO | | | |
    | jenkelamin | char(2) | YES | | NULL | |
    | kota | varchar(25) | NO | | | |
    | kodepos | char(5) | NO | | | |
    | tgllahir | date | YES | | NULL | |
    +————+————-+——+—–+———+—————-+
    6 rows in set (0.00 sec)

    Mungkin ada baiknya kalau nama kolom nopeg kita ubah aja menjadi noid. Begitupun dengan nama
    kolom jenkelamin, kita ubah namanya menjadi jenkel saja. Dalam pengubahan kolom ini sebaiknya
    ‘sifat-sifat’ kolom yang asli tetap ditulis ulang. Misal bila kolom nopeg memiliki sifat
    ‘auto_increment’, maka selama sifat itu tetap dipertahankan, maka dia (auto_increment) harus ditulis
    ulang. Begini caranya…
    Mengubah kolom jenkelamin menjadi jenkel, sekaligus mengubah jenis datanya dari CHAR(2)
    menjadi CHAR(1):

    mysql> alter table karyawan
    -> change jenkelamin jenkel char(1) ;
    Query OK, 0 rows affected (0.24 sec)
    Records: 0 Duplicates: 0 Warnings: 0

    Mengubah kolom nopeg menjadi noid, tanpa mengubah jenis datanya (tetap INT(10), dan tetap
    auto_increment):
    mysql> alter table karyawan
    -> change nopeg noid int(10) auto_increment
    -> ;
    Query OK, 0 rows affected (0.16 sec)
    Records: 0 Duplicates: 0 Warnings: 0

    Sekarang kita lihat struktur tabel setelah pengubahan:
    mysql> describe karyawan ;
    +———-+————-+——+—–+———+—————-+
    | Field | Type | Null | Key | Default | Extra |
    +———-+————-+——+—–+———+—————-+
    | noid | int(10) | NO | PRI | NULL | auto_increment |
    | nama | varchar(50) | NO | | | |
    | jenkel | char(1) | YES | | NULL | |
    | kota | varchar(25) | NO | | | |
    | kodepos | char(5) | NO | | | |
    | tgllahir | date | YES | | NULL | |
    +———-+————-+——+—–+———+—————-+
    6 rows in set (0.00 sec)

    Bagaimana, sudah sesuai dengan perubahan struktur yang kita inginkan, bukan? Nah, sekarang
    bagaimana kalau kita ingin mengubah nama tabel karyawan menjadi tabel pegawai? Silakan dicoba
    dibawah ini:

    mysql> alter table karyawan
    -> rename pegawai ;
    Query OK, 0 rows affected (0.09 sec)

    Kita lihat lagi hasilnya:
    mysql> show tables ;
    +——————–+
    | Tables_in_latihan1 |
    +——————–+
    | pegawai |
    +——————–+
    1 row in set (0.00 sec)

    Sekarang kita kembalikan lagi nama tabel pegawai menjadi karyawan. Tetapi dengan perintah yang
    berbeda, yaitu “RENAME TABLE”.
    mysql> rename table pegawai
    -> to karyawan
    -> ;
    Query OK, 0 rows affected (0.06 sec)
    Jangan lupa untuk memeriksa hasilnya:
    mysql> show tables ;
    +——————–+
    | Tables_in_latihan1 |
    +——————–+
    | karyawan |
    +——————–+
    1 row in set (0.00 sec)

    Nah, sampai sejauh ini tidak sulit kan untuk mempelajari MySQL? Sekarang kita lanjutkan dengan
    cara-cara pengisian data. Yuuukk..

    Mengisi data ke dalam tabel

    Kita akan mulai mengisi data karyawan ke dalam tabel. Perintah yang digunakan adalah “INSERT
    INTO”.
    Caranya sebagai berikut:

    mysql> insert into karyawan
    -> (nama, jenkel, kota, kodepos, tgllahir)
    -> values
    -> (“Ahmad Zobari”, “L”, “Bandung”,”41011″,”1977-10-02″)
    -> ;
    Query OK, 1 row affected (0.17 sec)

    Anda perhatikan bahwa dalam pemasukkan data yang berjenis karakter, selalu diapit dengan tanda
    kutip ganda (“). Bisa juga digunakan tanda kutip tunggal (‘). Tetapi jangan dicampur dengan tanda
    kutip ganda dan tanda kutip tunggal, misal: “Ahmad Sobari’. Perhatikan juga pada penulisan tanggal
    lahir, menggunakan format “tahun-bulan-tanggal”. Memang agak janggal. Tapi begitulah memang
    standar MySQL untuk format penulisan tanggal. Kalau Anda perhatikan lebih teliti, mengapa kita
    tidak memasukkan data untuk kolom “noid”? Ini karena sifat kolom noid yang auto_increment,
    sehingga dia akan secara otomatis berisi dengan angka 1, dan terus bertambah 1, seiring dengan
    penambahan data.

    Nah, kita akan masukkan 4 buah record lagi dengan cara:
    mysql> insert into karyawan
    -> (nama, jenkel, kota, kodepos, tgllahir)
    -> values
    -> (“Sundariwati”, “P”, “Bandung”, “40123”, “1978-11-12”),
    -> (“Ryan Cakep”, “L”, “Jakarta”, “12111”, “1981-03-21”),
    -> (“Zukarman”,”L”, “Bekasi”, “17211”, “1978-08-10”),
    -> (“Yuliawati”, “P”, “Bogor”, “00000”, “1982-06-09″)
    -> ;
    Query OK, 4 rows affected (0.05 sec)
    Records: 4 Duplicates: 0 Warnings: 0

    Sekarang kita coba memasukkan data dengan cara yang lain lagi:
    mysql> insert into karyawan
    -> set nama=”Mawar”,
    -> jenkel=”P”,
    -> kota=”Bogor”,
    -> kodepos=”12345″,
    -> tgllahir=”1985-07-07″
    -> ;
    Query OK, 1 row affected (0.05 sec)

    Kita sudah memasukkan beberapa data. Bagaimana untuk melihat data-data yang sudah kita
    masukkan tadi?
    Melihat data pada tabel
    Kita bisa melihat data yang ada di dalam tabel dengan menggunakan perintah “SELECT”. Perintah
    SELECT adalah perintah yang akan sering kita gunakan nantinya. Kita mulai dengan cara yang
    paling sederhana dulu yaa..

    mysql> select * from karyawan ;
    +——+————–+——–+———+———+————+
    | noid | nama | jenkel | kota | kodepos | tgllahir |
    +——+————–+——–+———+———+————+
    | 1 | Ahmad Sobari | L | Bandung | 41011 | 1977-10-02 |
    | 2 | Sundariwati | P | Bandung | 40123 | 1978-11-12 |
    | 3 | Ryan Cakep | L | Jakarta | 12111 | 1981-03-21 |
    | 4 | Zukarman | L | Bekasi | 17211 | 1978-08-10 |
    | 5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 |
    | 6 | Mawar | P | Bogor | 12345 | 1985-07-07 |
    +——+————–+——–+———+———+————+
    6 rows in set (0.02 sec)

    Perintah di atas menampilkan seluruh data yang ada di dalam tabel karyawan, karena menggunakan
    tanda asterik “*” di dalam perintah SELECT. Bagaimana kalau kita hanya mau menampilkan
    kolom nama dan jenis kelamin saja?
    mysql> select nama, jenkel from karyawan
    -> ;
    +————–+——–+
    | nama | jenkel |
    +————–+——–+
    | Ahmad Sobari | L |
    | Sundariwati | P |
    | Ryan Cakep | L |
    | Zukarman | L |
    | Yuliawati | P |
    | Mawar | P |
    +————–+——–+
    6 rows in set (0.00 sec)

    Kalau kita hanya mau menampilkan data-data karyawan yang berjenis kelamin perempuan saja,
    bagaimana caranya? Cukup dengan menambahkan perintah “WHERE” pada “SELECT”
    mysql> select nama, jenkel from karyawan
    -> where jenkel=”P”
    -> ;
    +————-+——–+
    | nama | jenkel |
    +————-+——–+
    | Sundariwati | P |
    | Yuliawati | P |
    | Mawar | P |
    +————-+——–+
    3 rows in set (0.00 sec)

    Kita tampilkan data berdasarkan urutan nama karyawan dengan menambahkan perintah
    “ORDER BY” pada “SELECT”:
    mysql> select * from karyawan
    -> order by nama ;
    +——+————–+——–+———+———+————+
    | noid | nama | jenkel | kota | kodepos | tgllahir |
    +——+————–+——–+———+———+————+
    | 1 | Ahmad Sobari | L | Bandung | 41011 | 1977-10-02 |
    | 6 | Mawar | P | Bogor | 12345 | 1985-07-07 |
    | 3 | Ryan Cakep | L | Jakarta | 12111 | 1981-03-21 |
    | 2 | Sundariwati | P | Bandung | 40123 | 1978-11-12 |
    | 5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 |
    | 4 | Zukarman | L | Bekasi | 17211 | 1978-08-10 |
    +——+————–+——–+———+———+————+
    6 rows in set (0.00 sec)

    Atau diurut berdasarkan kota:
    mysql> select * from karyawan
    -> order by kota ;
    +——+————–+——–+———+———+————+
    | noid | nama | jenkel | kota | kodepos | tgllahir |
    +——+————–+——–+———+———+————+
    | 1 | Ahmad Sobari | L | Bandung | 41011 | 1977-10-02 |
    | 2 | Sundariwati | P | Bandung | 40123 | 1978-11-12 |
    | 4 | Zukarman | L | Bekasi | 17211 | 1978-08-10 |
    | 5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 |
    | 6 | Mawar | P | Bogor | 12345 | 1985-07-07 |
    | 3 | Ryan Cakep | L | Jakarta | 12111 | 1981-03-21 |
    +——+————–+——–+———+———+————+
    6 rows in set (0.00 sec)

    Atau diurut berdasarkan tanggal lahir:
    mysql> select * from karyawan
    -> order by tgllahir ;
    +——+————–+——–+———+———+————+
    | noid | nama | jenkel | kota | kodepos | tgllahir |
    +——+————–+——–+———+———+————+
    | 1 | Ahmad Sobari | L | Bandung | 41011 | 1977-10-02 |
    | 4 | Zukarman | L | Bekasi | 17211 | 1978-08-10 |
    | 2 | Sundariwati | P | Bandung | 40123 | 1978-11-12 |
    | 3 | Ryan Cakep | L | Jakarta | 12111 | 1981-03-21 |
    | 5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 |
    | 6 | Mawar | P | Bogor | 12345 | 1985-07-07 |
    +——+————–+——–+———+———+————+
    6 rows in set (0.00 sec)

    Nah kalo yang sekarang diurut berdasarkan nama, tetapi dengan urutan terbalik (descending).
    Cukup dengan menambahkan perintah “DESC” pada SELECT:
    mysql> select * from karyawan
    -> order by nama DESC ;
    +——+————–+——–+———+———+————+
    | noid | nama | jenkel | kota | kodepos | tgllahir |
    +——+————–+——–+———+———+————+
    | 4 | Zukarman | L | Bekasi | 17211 | 1978-08-10 |
    | 5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 |
    | 2 | Sundariwati | P | Bandung | 40123 | 1978-11-12 |
    | 3 | Ryan Cakep | L | Jakarta | 12111 | 1981-03-21 |
    | 6 | Mawar | P | Bogor | 12345 | 1985-07-07 |
    | 1 | Ahmad Sobari | L | Bandung | 41011 | 1977-10-02 |
    +——+————–+——–+———+———+————+
    6 rows in set (0.00 sec)

    Bisa juga kalau yang diurutnya adalah tanggal lahir secara urutan terbalik (descending):
    mysql> select * from karyawan
    -> order by tgllahir DESC ;
    +——+————–+——–+———+———+————+
    | noid | nama | jenkel | kota | kodepos | tgllahir |
    +——+————–+——–+———+———+————+
    | 6 | Mawar | P | Bogor | 12345 | 1985-07-07 |
    | 5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 |
    | 3 | Ryan Cakep | L | Jakarta | 12111 | 1981-03-21 |
    | 2 | Sundariwati | P | Bandung | 40123 | 1978-11-12 |
    | 4 | Zukarman | L | Bekasi | 17211 | 1978-08-10 |
    | 1 | Ahmad Sobari | L | Bandung | 41011 | 1977-10-02 |
    +——+————–+——–+———+———+————+
    6 rows in set (0.00 sec)

    Ternyata kita perlu menambahkan sebuah kolom field lagi, yaitu kolom gaji. Kolom Gaji
    merupakan kolom numerik yang menampung data gaji pokok karyawan per bulannya. Jadi, yang
    kita perlukan adalah jenis data INTeger dengan lebar data 12 digit. Penerapannya sebagai berikut
    dengan menggunakan perintah ALTER.
    mysql> alter table karyawan
    -> ADD gaji INT(12) NOT NULL default 0
    -> ;
    Query OK, 6 rows affected (0.25 sec)
    Records: 6 Duplicates: 0 Warnings: 0

    Kita periksa struktur tabelnya dulu:
    mysql> describe karyawan ;
    +———-+————-+——+—–+———+—————-+
    | Field | Type | Null | Key | Default | Extra |
    +———-+————-+——+—–+———+—————-+
    | noid | int(10) | NO | PRI | NULL | auto_increment |
    | nama | varchar(50) | NO | | | |
    | jenkel | char(1) | YES | | NULL | |
    | kota | varchar(25) | NO | | | |
    | kodepos | char(5) | NO | | | |
    | tgllahir | date | YES | | NULL | |
    | gaji | int(12) | NO | | 0 | |
    +———-+————-+——+—–+———+—————-+
    7 rows in set (0.01 sec)

    Ya, kolom gaji sudah ditambahkan ke dalam tabel karyawan. Sekarang kita akan menambahkan
    data gaji kepada tiap-tiap karyawan yang ada. Untuk memudahkan, kita tampilkan dulu semua data
    yang ada di tabel karyawan:
    mysql> select * from karyawan ;
    +——+————–+——–+———+———+————+——+
    | noid | nama | jenkel | kota | kodepos | tgllahir | gaji |
    +——+————–+——–+———+———+————+——+
    | 1 | Ahmad Sobari | L | Bandung | 41011 | 1977-10-02 | 0 |
    | 2 | Sundariwati | P | Bandung | 40123 | 1978-11-12 | 0 |
    | 3 | Ryan Cakep | L | Jakarta | 12111 | 1981-03-21 | 0 |
    | 4 | Zukarman | L | Bekasi | 17211 | 1978-08-10 | 0 |
    | 5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 | 0 |
    | 6 | Mawar | P | Bogor | 12345 | 1985-07-07 | 0 |
    +——+————–+——–+———+———+————+——+
    6 rows in set (0.00 sec)

    Meng-update data pada tabel

    Sekarang kita masukkan data gaji masing-masing karyawan dengan menggunakan perintah
    UPDATE. Kita mulai dari Ahmad Sobari, dengan noid=1:
    mysql> update karyawan
    -> set gaji=1000000
    -> where noid=1 ;
    Query OK, 1 row affected (0.09 sec)
    Rows matched: 1 Changed: 1 Warnings: 0

    Periksa dulu hasilnya:
    mysql> select * from karyawan
    -> where noid=1 ;
    +——+————–+——–+———+———+————+———+
    | noid | nama | jenkel | kota | kodepos | tgllahir | gaji |
    +——+————–+——–+———+———+————+———+
    | 1 | Ahmad Sobari | L | Bandung | 41011 | 1977-10-02 | 1000000 |
    +——+————–+——–+———+———+————+———+
    1 row in set (0.00 sec)

    Kita lanjutkan dengan karyawan lainnya, seperti Sundariwati dengan noid=2, Ryan Cakep dengan
    noid=3, dan seterusnya. Sayangnya, perintah ini hanya bisa dilakukan satu per satu. Jadi, Anda
    harus sabar menjalankan perintah di bawah ini yaa..:
    mysql> update karyawan
    -> set gaji=1250000 where noid=2 ;
    Query OK, 1 row affected (0.39 sec)
    Rows matched: 1 Changed: 1 Warnings: 0

    mysql> update karyawan
    -> set gaji=1500000 where noid=3 ;
    Query OK, 1 row affected (0.03 sec)
    Rows matched: 1 Changed: 1 Warnings: 0
    mysql> update karyawan
    -> set gaji=1750000 where noid=4 ;
    Query OK, 1 row affected (0.03 sec)
    Rows matched: 1 Changed: 1 Warnings: 0

    mysql> update karyawan
    -> set gaji=2000000 where noid=5 ;
    Query OK, 1 row affected (0.03 sec)
    Rows matched: 1 Changed: 1 Warnings: 0

    mysql> update karyawan
    -> set gaji=2250000 where noid=6 ;
    Query OK, 1 row affected (0.03 sec)
    Rows matched: 1 Changed: 1 Warnings: 0

    Kita periksa semua hasilnya:
    mysql> select * from karyawan ;
    +——+————–+——–+———+———+————+———+
    | noid | nama | jenkel | kota | kodepos | tgllahir | gaji |
    +——+————–+——–+———+———+————+———+
    | 1 | Ahmad Sobari | L | Bandung | 41011 | 1977-10-02 | 1000000 |
    | 2 | Sundariwati | P | Bandung | 40123 | 1978-11-12 | 1250000 |
    | 3 | Ryan Cakep | L | Jakarta | 12111 | 1981-03-21 | 1500000 |
    | 4 | Zukarman | L | Bekasi | 17211 | 1978-08-10 | 1750000 |
    | 5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 | 2000000 |
    | 6 | Mawar | P | Bogor | 12345 | 1985-07-07 | 2250000 |
    +——+————–+——–+———+———+————+———+
    6 rows in set (0.00 sec)

    Cukup mudah kan? Nah, itulah dasar-dasar menggunakan perintah MySQL. Sekarang kita
    membutuhkan lebih banyak data untuk latihan kita. Ya minimal sekitar 30-an data lagi.
    Ya di coba terus sambil belajar lah…

    Kurang lebih seperti contoh dibawah,

    Sekarang kita lihat hasilnya di tabel karyawan:
    mysql> select * from karyawan ;
    +——+————–+——–+————+———+————+———+
    | noid | nama | jenkel | kota | kodepos | tgllahir | gaji |
    +——+————–+——–+————+———+————+———+
    | 1 | Ahmad Sobari | L | Bandung | 41011 | 1977-10-02 | 1000000 |
    | 2 | Sundariwati | P | Bandung | 40123 | 1978-11-12 | 1250000 |
    | 3 | Ryan Cakep | L | Jakarta | 12111 | 1981-03-21 | 1500000 |
    | 4 | Zukarman | L | Bekasi | 17211 | 1978-08-10 | 1750000 |
    | 5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 | 2000000 |
    | 6 | Mawar | P | Bogor | 12345 | 1985-07-07 | 2250000 |
    | 7 | Sobari | L | Jakarta | 41011 | 1976-10-02 | 1100000 |
    | 8 | Melia | P | Bandung | 40123 | 1979-11-12 | 1200000 |
    | 9 | Zanda Cute | L | Jakarta | 12111 | 1980-03-21 | 1300000 |
    | 10 | Maman | L | Bekasi | 17211 | 1977-08-10 | 1400000 |
    | 11 | Yenny | P | Bogor | 00000 | 1985-06-09 | 1150000 |
    | 12 | Rossa | P | Jakarta | 12345 | 1987-07-07 | 1350000 |
    | 13 | Dadan | L | Bandung | 41011 | 1975-10-02 | 1450000 |
    | 14 | Wawan | P | Semarang | 40123 | 1971-11-12 | 1600000 |
    | 15 | The Cute | L | Jakarta | 12111 | 1977-03-21 | 1700000 |
    | 16 | Marpaung | L | Surabaya | 17211 | 1988-08-10 | 1800000 |
    | 17 | Yono | P | Bogor | 00000 | 1989-06-09 | 1900000 |
    | 18 | Dian | P | Jakarta | 12345 | 1980-07-07 | 1650000 |
    | 19 | Donno | L | Bandung | 41011 | 1971-10-02 | 1850000 |
    | 20 | Ratu | P | Yogyakarta | 40123 | 1972-11-12 | 1950000 |
    | 21 | Bambang | L | Jakarta | 12111 | 1982-03-21 | 2100000 |
    | 22 | Dadang | L | Surabaya | 17211 | 1977-08-10 | 2200000 |
    | 23 | Yuliawati | P | Bogor | 00000 | 1974-06-09 | 2300000 |
    | 24 | Miranda | P | Bogor | 12345 | 1980-07-07 | 2400000 |
    | 25 | Subur | L | Bandung | 41011 | 1977-10-02 | 2150000 |
    | 26 | Banowati | P | Malang | 40123 | 1978-11-12 | 2350000 |
    | 27 | Gungun | L | Jakarta | 12111 | 1981-03-21 | 2450000 |
    | 28 | Gunadi | L | Bekasi | 17211 | 1978-08-10 | 2125000 |
    | 29 | Yossy | P | Bogor | 00000 | 1982-06-09 | 2225000 |
    | 30 | Melia | P | Malang | 12345 | 1981-07-07 | 2325000 |
    | 31 | Anwar | L | Purwakarta | 41011 | 1972-10-02 | 2425000 |
    | 32 | Susilowati | P | Bandung | 40123 | 1973-11-12 | 1125000 |
    | 33 | Rahmat | L | Jakarta | 12111 | 1977-03-21 | 1225000 |
    | 34 | Zamzam | L | Bekasi | 17211 | 1974-08-10 | 1325000 |
    | 35 | Nenny | P | Medan | 00000 | 1972-06-09 | 1425000 |
    | 36 | Mardiatun | P | Bogor | 12345 | 1975-07-07 | 1625000 |
    | 37 | Andika | L | Bandung | 41011 | 1978-10-02 | 1725000 |
    | 38 | Siti | P | Medan | 40123 | 1988-11-12 | 1825000 |
    | 39 | Rohimat | L | Jakarta | 12111 | 1980-03-21 | 1925000 |
    | 40 | Beno | L | Bekasi | 17211 | 1978-08-10 | 1175000 |
    | 41 | Yanti | P | Jakarta | 00000 | 1981-06-09 | 1275000 |
    | 42 | Miranti | P | Medan | 12345 | 1975-07-07 | 1375000 |
    +——+————–+——–+————+———+————+———+
    42 rows in set (0.00 sec)

    Kita sudah memiliki lebih banyak data. Cukuplah untuk bahan latihan-latihan berikutnya…

    Operator Pembanding dan Operator Logika

    Sudah saatnya kita melangkah ke permainan data yang lebih mengasyikan lagi dengan
    menggunakan dua operator, yaitu Operator Pembanding dan Operator Logika. Kedua jenis
    operator ini akan sering digunakan dalam proses “query” data.

    Operator Pembanding

    Operator Pembanding Keterangan
    Lebih besar >
    Lebih kecil <=
    Lebih besar atau sama dengan >=
    Lebih kecil atau sama dengan <=
    Sama dengan =
    Tidak sama dengan <>
    Operator Logika
    Operator Logika Keterangan
    Dan AND atau &&
    Atau OR atau ||
    Lebih besar atau sama
    dengan
    NOT atau !
    Lebih kecil atau sama dengan <=
    Tidak sama dengan <>

    Berikut ini adalah penerapan dari kedua operator di atas:
    Kita tampilkan data karyawan yang tanggal lahirnya sebelum tanggal 1 Januari 1980, dan
    tampilan data diurut berdasarkan nama. Cukup hanya kolom nama, jenis kelamin dan tanggal lahir
    saja yang ditampilkan:

    mysql> select nama, jenkel, tgllahir
    -> from karyawan
    -> where tgllahir < “1980-01-01”
    -> order by nama ;
    +————–+——–+————+
    | nama | jenkel | tgllahir |
    +————–+——–+————+
    | Ahmad Sobari | L | 1977-10-02 |
    | Andika | L | 1978-10-02 |
    | Anwar | L | 1972-10-02 |
    | Banowati | P | 1978-11-12 |
    | Beno | L | 1978-08-10 |
    | Dadan | L | 1975-10-02 |
    | Dadang | L | 1977-08-10 |
    | Donno | L | 1971-10-02 |
    | Gunadi | L | 1978-08-10 |
    | Maman | L | 1977-08-10 |
    | Mardiatun | P | 1975-07-07 |
    | Melia | P | 1979-11-12 |
    | Miranti | P | 1975-07-07 |
    | Nenny | P | 1972-06-09 |
    | Rahmat | L | 1977-03-21 |
    | Ratu | P | 1972-11-12 |
    | Sobari | L | 1976-10-02 |
    | Subur | L | 1977-10-02 |
    | Sundariwati | P | 1978-11-12 |
    | Susilowati | P | 1973-11-12 |
    | The Cute | L | 1977-03-21 |
    | Wawan | P | 1971-11-12 |
    | Yuliawati | P | 1974-06-09 |
    | Zamzam | L | 1974-08-10 |
    | Zukarman | L | 1978-08-10 |
    +————–+——–+————+
    25 rows in set (0.00 sec)

    MySQL memiliki kelonggaran dalam penulisan tanggal selama formatnya mengikuti aturan
    “tahun-bulan-tanggal”. Misal “1971-11-12” dapat ditulis 1971-11-12, atau 1971#11#12, atau
    19711112, atau 711112.
    Kita lihat contohnya dibawah ini dimana tanggal “1980-01-01″ ditulis dengan 19800101

    mysql> select nama, jenkel, tgllahir
    -> from karyawan
    -> where tgllahir < 19800101
    -> and jenkel=”L”
    -> order by nama ;
    +————–+——–+————+
    | nama | jenkel | tgllahir |
    +————–+——–+————+
    | Ahmad Sobari | L | 1977-10-02 |
    | Andika | L | 1978-10-02 |
    | Anwar | L | 1972-10-02 |
    | Beno | L | 1978-08-10 |
    | Dadan | L | 1975-10-02 |
    | Dadang | L | 1977-08-10 |
    | Donno | L | 1971-10-02 |
    | Gunadi | L | 1978-08-10 |
    | Maman | L | 1977-08-10 |
    | Rahmat | L | 1977-03-21 |
    | Sobari | L | 1976-10-02 |
    | Subur | L | 1977-10-02 |
    | The Cute | L | 1977-03-21 |
    | Zamzam | L | 1974-08-10 |
    | Zukarman | L | 1978-08-10 |
    +————–+——–+————+
    15 rows in set (0.00 sec)

    Kita lihat contohnya di bawah ini bila tanggal “1980-01-01″ ditulis dengan cara 800101.
    mysql> select nama, jenkel, tgllahir
    -> from karyawan
    -> where tgllahir < 800101
    -> and jenkel=”L”
    -> order by nama;
    +————–+——–+————+
    | nama | jenkel | tgllahir |
    +————–+——–+————+
    | Ahmad Sobari | L | 1977-10-02 |
    | Andika | L | 1978-10-02 |
    | Anwar | L | 1972-10-02 |
    | Beno | L | 1978-08-10 |
    | Dadan | L | 1975-10-02 |
    | Dadang | L | 1977-08-10 |
    | Donno | L | 1971-10-02 |
    | Gunadi | L | 1978-08-10 |
    | Maman | L | 1977-08-10 |
    | Rahmat | L | 1977-03-21 |
    | Sobari | L | 1976-10-02 |
    | Subur | L | 1977-10-02 |
    | The Cute | L | 1977-03-21 |
    | Zamzam | L | 1974-08-10 |
    | Zukarman | L | 1978-08-10 |
    +————–+——–+————+
    15 rows in set (0.00 sec)

    Kita lihat contohnya di bawah ini bila tanggal “1980-01-01” ditulis dengan cara “1980#01#01”.
    mysql> select nama, jenkel, tgllahir
    -> from karyawan
    -> where tgllahir < “1980#01#01″
    -> and jenkel=”L”
    -> order by nama ;
    +————–+——–+————+
    | nama | jenkel | tgllahir |
    +————–+——–+————+
    | Ahmad Sobari | L | 1977-10-02 |
    | Andika | L | 1978-10-02 |
    | Anwar | L | 1972-10-02 |
    | Beno | L | 1978-08-10 |
    | Dadan | L | 1975-10-02 |
    | Dadang | L | 1977-08-10 |
    | Donno | L | 1971-10-02 |
    | Gunadi | L | 1978-08-10 |
    | Maman | L | 1977-08-10 |
    | Rahmat | L | 1977-03-21 |
    | Sobari | L | 1976-10-02 |
    | Subur | L | 1977-10-02 |
    | The Cute | L | 1977-03-21 |
    | Zamzam | L | 1974-08-10 |
    | Zukarman | L | 1978-08-10 |
    +————–+——–+————+
    15 rows in set (0.00 sec)

    Kita lihat contohnya di bawah ini bila tanggal “1980-01-01” ditulis dengan cara “1980.01.01”.
    mysql> select nama,jenkel, tgllahir
    -> from karyawan
    -> where tgllahir < “1980.01.01”
    -> and jenkel=”L”
    -> order by nama ;
    +————–+——–+————+
    | nama | jenkel | tgllahir |
    +————–+——–+————+
    | Ahmad Sobari | L | 1977-10-02 |
    | Andika | L | 1978-10-02 |
    | Anwar | L | 1972-10-02 |
    | Beno | L | 1978-08-10 |
    | Dadan | L | 1975-10-02 |
    | Dadang | L | 1977-08-10 |
    | Donno | L | 1971-10-02 |
    | Gunadi | L | 1978-08-10 |
    | Maman | L | 1977-08-10 |
    | Rahmat | L | 1977-03-21 |
    | Sobari | L | 1976-10-02 |
    | Subur | L | 1977-10-02 |
    | The Cute | L | 1977-03-21 |
    | Zamzam | L | 1974-08-10 |
    | Zukarman | L | 1978-08-10 |
    +————–+——–+————+
    15 rows in set (0.00 sec)

    Perhatikan semua hasil di atas sama walaupun cara penulisan tanggalnya berbeda-beda (tetapi
    formatnya tetap mengikuti “tahun-bulan-tanggal”).

    Sekarang kita tampilkan data karyawan yang tanggal lahirnya antara tanggal 1 Januari 1980 dan
    31 Desember 1985, dan tampilan data diurut berdasarkan nama. Cukup hanya kolom nama, jenis
    kelamin dan tanggal lahir saja yang ditampilkan:
    mysql> select nama, jenkel, tgllahir
    -> from karyawan
    -> where tgllahir >= “1980-01-01”
    -> and tgllahir <= “1985-12-31”
    -> order by nama ;
    +————+——–+————+
    | nama | jenkel | tgllahir |
    +————+——–+————+
    | Bambang | L | 1982-03-21 |
    | Dian | P | 1980-07-07 |
    | Gungun | L | 1981-03-21 |
    | Mawar | P | 1985-07-07 |
    | Melia | P | 1981-07-07 |
    | Miranda | P | 1980-07-07 |
    | Rohimat | L | 1980-03-21 |
    | Ryan Cakep | L | 1981-03-21 |
    | Yanti | P | 1981-06-09 |
    | Yenny | P | 1985-06-09 |
    | Yossy | P | 1982-06-09 |
    | Yuliawati | P | 1982-06-09 |
    | Zanda Cute | L | 1980-03-21 |
    +————+——–+————+
    13 rows in set (0.00 sec)

    Sekarang kita tampilkan data karyawan yang tanggal lahirnya antara tanggal 1 Januari 1980 dan
    31 Desember 1985, dan tampilan data diurut berdasarkan nama. Cukup hanya kolom nama, jenis
    kelamin dan tanggal lahir saja, serta hanya yang berjenis kelamin laki-laki yang ditampilkan:
    mysql> select nama, jenkel, tgllahir
    -> from karyawan
    -> where tgllahir >= “1980-01-01”
    -> and tgllahir <= “1985-12-31″
    -> and jenkel=”L”
    -> order by nama ;
    +————+——–+————+
    | nama | jenkel | tgllahir |
    +————+——–+————+
    | Bambang | L | 1982-03-21 |
    | Gungun | L | 1981-03-21 |
    | Rohimat | L | 1980-03-21 |
    | Ryan Cakep | L | 1981-03-21 |
    | Zanda Cute | L | 1980-03-21 |
    +————+——–+————+
    5 rows in set (0.00 sec)

    Bagaimana, semakin menarik kan? Kita lanjutkan dengan menampilkan semua data karyawan
    dengan usianya pada saat ini. Untuk masalah ini memang cukup panjang solusinya. Tidak apa-apa,
    kita coba saja ya. Disini kita memerlukan bantuan beberapa fungsi-fungsi yang sudah disediakan
    oleh MySQL. Kita lihat dulu ya..:
    mysql> select nama, tgllahir,
    -> current_date AS SEKARANG,
    -> (year(current_date) – year(tgllahir))
    -> – (right(current_date,5) < right(tgllahir,5)) AS USIA
    -> from karyawan ;
    +————–+————+————+——+
    | nama | tgllahir | SEKARANG | USIA |
    +————–+————+————+——+
    | Ahmad Sobari | 1977-10-02 | 2007-08-30 | 29 |
    | Sundariwati | 1978-11-12 | 2007-08-30 | 28 |
    | Ryan Cakep | 1981-03-21 | 2007-08-30 | 26 |
    | Zukarman | 1978-08-10 | 2007-08-30 | 29 |
    | Yuliawati | 1982-06-09 | 2007-08-30 | 25 |
    | Mawar | 1985-07-07 | 2007-08-30 | 22 |
    | Sobari | 1976-10-02 | 2007-08-30 | 30 |
    | Melia | 1979-11-12 | 2007-08-30 | 27 |
    | Zanda Cute | 1980-03-21 | 2007-08-30 | 27 |
    | Maman | 1977-08-10 | 2007-08-30 | 30 |
    | Yenny | 1985-06-09 | 2007-08-30 | 22 |
    | Rossa | 1987-07-07 | 2007-08-30 | 20 |
    | Dadan | 1975-10-02 | 2007-08-30 | 31 |
    | Wawan | 1971-11-12 | 2007-08-30 | 35 |
    | The Cute | 1977-03-21 | 2007-08-30 | 30 |
    | Marpaung | 1988-08-10 | 2007-08-30 | 19 |
    | Yono | 1989-06-09 | 2007-08-30 | 18 |
    | Dian | 1980-07-07 | 2007-08-30 | 27 |
    | Donno | 1971-10-02 | 2007-08-30 | 35 |
    | Ratu | 1972-11-12 | 2007-08-30 | 34 |
    | Bambang | 1982-03-21 | 2007-08-30 | 25 |
    | Dadang | 1977-08-10 | 2007-08-30 | 30 |
    | Yuliawati | 1974-06-09 | 2007-08-30 | 33 |
    | Miranda | 1980-07-07 | 2007-08-30 | 27 |
    | Subur | 1977-10-02 | 2007-08-30 | 29 |
    | Banowati | 1978-11-12 | 2007-08-30 | 28 |
    | Gungun | 1981-03-21 | 2007-08-30 | 26 |
    | Gunadi | 1978-08-10 | 2007-08-30 | 29 |
    | Yossy | 1982-06-09 | 2007-08-30 | 25 |
    | Melia | 1981-07-07 | 2007-08-30 | 26 |
    | Anwar | 1972-10-02 | 2007-08-30 | 34 |
    | Susilowati | 1973-11-12 | 2007-08-30 | 33 |
    | Rahmat | 1977-03-21 | 2007-08-30 | 30 |
    | Zamzam | 1974-08-10 | 2007-08-30 | 33 |
    | Nenny | 1972-06-09 | 2007-08-30 | 35 |
    | Mardiatun | 1975-07-07 | 2007-08-30 | 32 |
    | Andika | 1978-10-02 | 2007-08-30 | 28 |
    | Siti | 1988-11-12 | 2007-08-30 | 18 |
    | Rohimat | 1980-03-21 | 2007-08-30 | 27 |
    | Beno | 1978-08-10 | 2007-08-30 | 29 |
    | Yanti | 1981-06-09 | 2007-08-30 | 26 |
    | Miranti | 1975-07-07 | 2007-08-30 | 32 |
    +————–+————+————+——+
    42 rows in set (0.00 sec)

    Kita lanjutkan dengan menampilkan data karyawan yang usianya sama atau dibawah 25 tahun.
    Nah bagaimana caranya?:
    mysql> select nama, tgllahir,
    -> current_date AS SEKARANG,
    -> (year(current_date) – year(tgllahir))
    -> – (right(current_date,5) < right(tgllahir,5))
    -> AS USIA
    -> from karyawan
    -> where ((year(current_date) – year(tgllahir))
    -> – (right(current_date,5) < right(tgllahir,5)))
    -> <= 25 ;
    +———–+————+————+——+
    | nama | tgllahir | SEKARANG | USIA |
    +———–+————+————+——+
    | Yuliawati | 1982-06-09 | 2007-08-30 | 25 |
    | Mawar | 1985-07-07 | 2007-08-30 | 22 |
    | Yenny | 1985-06-09 | 2007-08-30 | 22 |
    | Rossa | 1987-07-07 | 2007-08-30 | 20 |
    | Marpaung | 1988-08-10 | 2007-08-30 | 19 |
    | Yono | 1989-06-09 | 2007-08-30 | 18 |
    | Bambang | 1982-03-21 | 2007-08-30 | 25 |
    | Yossy | 1982-06-09 | 2007-08-30 | 25 |
    | Siti | 1988-11-12 | 2007-08-30 | 18 |
    +———–+————+————+——+
    9 rows in set (0.00 sec)

    Cukup panjang perintahnya ya. Disini kita menggunakan fungsi CURRENT_DATE yang
    mengambil nilai dari tanggal saat ini pada sistem komputer Anda. YEAR adalah fungsi yang
    mengambil nilai tahun. Kemudian AS adalah singkatan dari AliaS, yang seolah-olah memberikan
    nama lain (alias name) pada kolom atau pada hasil suatu proses. Sedangkan RIGHT adalah fungsi
    yang mengambil nilai dari sekian karakter dari sisi kanan sebuah target. Misal RIGHT(“TOMAT”,
    3) maka akan menghasilkan karakter “MAT”.

    Baik kita lanjutkan tutorial ini dengan perintah-perintah lainnya. Mari…
    Kita akan menampilkan karyawan yang kota kelahirannya di “Bandung”:
    mysql> select * from karyawan
    -> where kota=”Bandung” ;
    +——+————–+——–+———+———+————+———+
    | noid | nama | jenkel | kota | kodepos | tgllahir | gaji |
    +——+————–+——–+———+———+————+———+
    | 1 | Ahmad Sobari | L | Bandung | 41011 | 1977-10-02 | 1000000 |
    | 2 | Sundariwati | P | Bandung | 40123 | 1978-11-12 | 1250000 |
    | 8 | Melia | P | Bandung | 40123 | 1979-11-12 | 1200000 |
    | 13 | Dadan | L | Bandung | 41011 | 1975-10-02 | 1450000 |
    | 19 | Donno | L | Bandung | 41011 | 1971-10-02 | 1850000 |
    | 25 | Subur | L | Bandung | 41011 | 1977-10-02 | 2150000 |
    | 32 | Susilowati | P | Bandung | 40123 | 1973-11-12 | 1125000 |
    | 37 | Andika | L | Bandung | 41011 | 1978-10-02 | 1725000 |
    +——+————–+——–+———+———+————+———+
    8 rows in set (0.03 sec)

    Kita tampilkan karyawan yang kota kelahirannya bukan di Bandung:
    mysql> select * from karyawan
    -> where kota != “bandung” ;
    +——+————+——–+————+———+————+———+
    | noid | nama | jenkel | kota | kodepos | tgllahir | gaji |
    +——+————+——–+————+———+————+———+
    | 3 | Ryan Cakep | L | Jakarta | 12111 | 1981-03-21 | 1500000 |
    | 4 | Zukarman | L | Bekasi | 17211 | 1978-08-10 | 1750000 |
    | 5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 | 2000000 |
    | 6 | Mawar | P | Bogor | 12345 | 1985-07-07 | 2250000 |
    | 7 | Sobari | L | Jakarta | 41011 | 1976-10-02 | 1100000 |
    | 9 | Zanda Cute | L | Jakarta | 12111 | 1980-03-21 | 1300000 |
    | 10 | Maman | L | Bekasi | 17211 | 1977-08-10 | 1400000 |
    | 11 | Yenny | P | Bogor | 00000 | 1985-06-09 | 1150000 |
    | 12 | Rossa | P | Jakarta | 12345 | 1987-07-07 | 1350000 |
    | 14 | Wawan | P | Semarang | 40123 | 1971-11-12 | 1600000 |
    | 15 | The Cute | L | Jakarta | 12111 | 1977-03-21 | 1700000 |
    | 16 | Marpaung | L | Surabaya | 17211 | 1988-08-10 | 1800000 |
    | 17 | Yono | P | Bogor | 00000 | 1989-06-09 | 1900000 |
    | 18 | Dian | P | Jakarta | 12345 | 1980-07-07 | 1650000 |
    | 20 | Ratu | P | Yogyakarta | 40123 | 1972-11-12 | 1950000 |
    | 21 | Bambang | L | Jakarta | 12111 | 1982-03-21 | 2100000 |
    | 22 | Dadang | L | Surabaya | 17211 | 1977-08-10 | 2200000 |
    | 23 | Yuliawati | P | Bogor | 00000 | 1974-06-09 | 2300000 |
    | 24 | Miranda | P | Bogor | 12345 | 1980-07-07 | 2400000 |
    | 26 | Banowati | P | Malang | 40123 | 1978-11-12 | 2350000 |
    | 27 | Gungun | L | Jakarta | 12111 | 1981-03-21 | 2450000 |
    | 28 | Gunadi | L | Bekasi | 17211 | 1978-08-10 | 2125000 |
    | 29 | Yossy | P | Bogor | 00000 | 1982-06-09 | 2225000 |
    | 30 | Melia | P | Malang | 12345 | 1981-07-07 | 2325000 |
    | 31 | Anwar | L | Purwakarta | 41011 | 1972-10-02 | 2425000 |
    | 33 | Rahmat | L | Jakarta | 12111 | 1977-03-21 | 1225000 |
    | 34 | Zamzam | L | Bekasi | 17211 | 1974-08-10 | 1325000 |
    | 35 | Nenny | P | Medan | 00000 | 1972-06-09 | 1425000 |
    | 36 | Mardiatun | P | Bogor | 12345 | 1975-07-07 | 1625000 |
    | 38 | Siti | P | Medan | 40123 | 1988-11-12 | 1825000 |
    | 39 | Rohimat | L | Jakarta | 12111 | 1980-03-21 | 1925000 |
    | 40 | Beno | L | Bekasi | 17211 | 1978-08-10 | 1175000 |
    | 41 | Yanti | P | Jakarta | 00000 | 1981-06-09 | 1275000 |
    | 42 | Miranti | P | Medan | 12345 | 1975-07-07 | 1375000 |
    +——+————+——–+————+———+————+———+
    34 rows in set (0.00 sec)

    Perintah di atas dapat juga menggunakan tanda “<>’, dan hasilnya tetap sama dengan di atas:
    mysql> select * from karyawan
    -> where kota <> “bandung” ;
    +——+————+——–+————+———+————+———+
    | noid | nama | jenkel | kota | kodepos | tgllahir | gaji |
    +——+————+——–+————+———+————+———+
    | 3 | Ryan Cakep | L | Jakarta | 12111 | 1981-03-21 | 1500000 |
    | 4 | Zukarman | L | Bekasi | 17211 | 1978-08-10 | 1750000 |
    | 5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 | 2000000 |
    | 6 | Mawar | P | Bogor | 12345 | 1985-07-07 | 2250000 |
    | 7 | Sobari | L | Jakarta | 41011 | 1976-10-02 | 1100000 |
    | 9 | Zanda Cute | L | Jakarta | 12111 | 1980-03-21 | 1300000 |
    | 10 | Maman | L | Bekasi | 17211 | 1977-08-10 | 1400000 |
    | 11 | Yenny | P | Bogor | 00000 | 1985-06-09 | 1150000 |
    | 12 | Rossa | P | Jakarta | 12345 | 1987-07-07 | 1350000 |
    | 14 | Wawan | P | Semarang | 40123 | 1971-11-12 | 1600000 |
    | 15 | The Cute | L | Jakarta | 12111 | 1977-03-21 | 1700000 |
    | 16 | Marpaung | L | Surabaya | 17211 | 1988-08-10 | 1800000 |
    | 17 | Yono | P | Bogor | 00000 | 1989-06-09 | 1900000 |
    | 18 | Dian | P | Jakarta | 12345 | 1980-07-07 | 1650000 |
    | 20 | Ratu | P | Yogyakarta | 40123 | 1972-11-12 | 1950000 |
    | 21 | Bambang | L | Jakarta | 12111 | 1982-03-21 | 2100000 |
    | 22 | Dadang | L | Surabaya | 17211 | 1977-08-10 | 2200000 |
    | 23 | Yuliawati | P | Bogor | 00000 | 1974-06-09 | 2300000 |
    | 24 | Miranda | P | Bogor | 12345 | 1980-07-07 | 2400000 |
    | 26 | Banowati | P | Malang | 40123 | 1978-11-12 | 2350000 |
    | 27 | Gungun | L | Jakarta | 12111 | 1981-03-21 | 2450000 |
    | 28 | Gunadi | L | Bekasi | 17211 | 1978-08-10 | 2125000 |
    | 29 | Yossy | P | Bogor | 00000 | 1982-06-09 | 2225000 |
    | 30 | Melia | P | Malang | 12345 | 1981-07-07 | 2325000 |
    | 31 | Anwar | L | Purwakarta | 41011 | 1972-10-02 | 2425000 |
    | 33 | Rahmat | L | Jakarta | 12111 | 1977-03-21 | 1225000 |
    | 34 | Zamzam | L | Bekasi | 17211 | 1974-08-10 | 1325000 |
    | 35 | Nenny | P | Medan | 00000 | 1972-06-09 | 1425000 |
    | 36 | Mardiatun | P | Bogor | 12345 | 1975-07-07 | 1625000 |
    | 38 | Siti | P | Medan | 40123 | 1988-11-12 | 1825000 |
    | 39 | Rohimat | L | Jakarta | 12111 | 1980-03-21 | 1925000 |
    | 40 | Beno | L | Bekasi | 17211 | 1978-08-10 | 1175000 |
    | 41 | Yanti | P | Jakarta | 00000 | 1981-06-09 | 1275000 |
    | 42 | Miranti | P | Medan | 12345 | 1975-07-07 | 1375000 |
    +——+————+——–+————+———+————+———+
    34 rows in set (0.00 sec)

    Sekarang kita tampilkan karyawan dengan kota kelahiran bukan di Bandung, Jakarta dan Bekasi.
    Tampilan data diurut berdasarkan nama kota. Bagaimana bentuk perintahnya?
    mysql> select * from karyawan
    -> where kota <> “bandung”
    -> and kota <> “Jakarta”
    -> and kota <> “Bekasi”
    -> order by kota ;
    +——+———–+——–+————+———+————+———+
    | noid | nama | jenkel | kota | kodepos | tgllahir | gaji |
    +——+———–+——–+————+———+————+———+
    | 5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 | 2000000 |
    | 36 | Mardiatun | P | Bogor | 12345 | 1975-07-07 | 1625000 |
    | 29 | Yossy | P | Bogor | 00000 | 1982-06-09 | 2225000 |
    | 24 | Miranda | P | Bogor | 12345 | 1980-07-07 | 2400000 |
    | 23 | Yuliawati | P | Bogor | 00000 | 1974-06-09 | 2300000 |
    | 17 | Yono | P | Bogor | 00000 | 1989-06-09 | 1900000 |
    | 6 | Mawar | P | Bogor | 12345 | 1985-07-07 | 2250000 |
    | 11 | Yenny | P | Bogor | 00000 | 1985-06-09 | 1150000 |
    | 30 | Melia | P | Malang | 12345 | 1981-07-07 | 2325000 |
    | 26 | Banowati | P | Malang | 40123 | 1978-11-12 | 2350000 |
    | 38 | Siti | P | Medan | 40123 | 1988-11-12 | 1825000 |
    | 35 | Nenny | P | Medan | 00000 | 1972-06-09 | 1425000 |
    | 42 | Miranti | P | Medan | 12345 | 1975-07-07 | 1375000 |
    | 31 | Anwar | L | Purwakarta | 41011 | 1972-10-02 | 2425000 |
    | 14 | Wawan | P | Semarang | 40123 | 1971-11-12 | 1600000 |
    | 16 | Marpaung | L | Surabaya | 17211 | 1988-08-10 | 1800000 |
    | 22 | Dadang | L | Surabaya | 17211 | 1977-08-10 | 2200000 |
    | 20 | Ratu | P | Yogyakarta | 40123 | 1972-11-12 | 1950000 |
    +——+———–+——–+————+———+————+———+
    18 rows in set (0.00 sec)

    Hampir mirip dengan perintah di atas, tetapi selain diurut berdasarkan kota, nama karyawan pun
    ikut diurut. Kita coba dengan perintah dibawah:
    mysql> select * from karyawan
    -> where kota <> “bandung”
    -> and kota <> “Jakarta”
    -> and kota <> “Bekasi”
    -> order by kota and nama ;
    +——+———–+——–+————+———+————+———+
    | noid | nama | jenkel | kota | kodepos | tgllahir | gaji |
    +——+———–+——–+————+———+————+———+
    | 5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 | 2000000 |
    | 38 | Siti | P | Medan | 40123 | 1988-11-12 | 1825000 |
    | 36 | Mardiatun | P | Bogor | 12345 | 1975-07-07 | 1625000 |
    | 35 | Nenny | P | Medan | 00000 | 1972-06-09 | 1425000 |
    | 31 | Anwar | L | Purwakarta | 41011 | 1972-10-02 | 2425000 |
    | 30 | Melia | P | Malang | 12345 | 1981-07-07 | 2325000 |
    | 29 | Yossy | P | Bogor | 00000 | 1982-06-09 | 2225000 |
    | 26 | Banowati | P | Malang | 40123 | 1978-11-12 | 2350000 |
    | 24 | Miranda | P | Bogor | 12345 | 1980-07-07 | 2400000 |
    | 23 | Yuliawati | P | Bogor | 00000 | 1974-06-09 | 2300000 |
    | 22 | Dadang | L | Surabaya | 17211 | 1977-08-10 | 2200000 |
    | 20 | Ratu | P | Yogyakarta | 40123 | 1972-11-12 | 1950000 |
    | 17 | Yono | P | Bogor | 00000 | 1989-06-09 | 1900000 |
    | 16 | Marpaung | L | Surabaya | 17211 | 1988-08-10 | 1800000 |
    | 14 | Wawan | P | Semarang | 40123 | 1971-11-12 | 1600000 |
    | 11 | Yenny | P | Bogor | 00000 | 1985-06-09 | 1150000 |
    | 6 | Mawar | P | Bogor | 12345 | 1985-07-07 | 2250000 |
    | 42 | Miranti | P | Medan | 12345 | 1975-07-07 | 1375000 |
    +——+———–+——–+————+———+————+———+
    18 rows in set (0.00 sec)

    Coba perhatikan hasilnya. Apakah ini hasil yang kita inginkan? Keliatannya ada yang tidak beres…
    Kita coba lagi dengan menambah tanda kurung ( dan ) pada bagian perintah “ORDER BY”, siapa
    tahu berhasil:
    mysql> select * from karyawan
    -> where kota <> “bandung”
    -> and kota <> “Jakarta”
    -> and kota <> “Bekasi”
    -> order by (kota and nama) ;
    +——+———–+——–+————+———+————+———+
    | noid | nama | jenkel | kota | kodepos | tgllahir | gaji |
    +——+———–+——–+————+———+————+———+
    | 5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 | 2000000 |
    | 38 | Siti | P | Medan | 40123 | 1988-11-12 | 1825000 |
    | 36 | Mardiatun | P | Bogor | 12345 | 1975-07-07 | 1625000 |
    | 35 | Nenny | P | Medan | 00000 | 1972-06-09 | 1425000 |
    | 31 | Anwar | L | Purwakarta | 41011 | 1972-10-02 | 2425000 |
    | 30 | Melia | P | Malang | 12345 | 1981-07-07 | 2325000 |
    | 29 | Yossy | P | Bogor | 00000 | 1982-06-09 | 2225000 |
    | 26 | Banowati | P | Malang | 40123 | 1978-11-12 | 2350000 |
    | 24 | Miranda | P | Bogor | 12345 | 1980-07-07 | 2400000 |
    | 23 | Yuliawati | P | Bogor | 00000 | 1974-06-09 | 2300000 |
    | 22 | Dadang | L | Surabaya | 17211 | 1977-08-10 | 2200000 |
    | 20 | Ratu | P | Yogyakarta | 40123 | 1972-11-12 | 1950000 |
    | 17 | Yono | P | Bogor | 00000 | 1989-06-09 | 1900000 |
    | 16 | Marpaung | L | Surabaya | 17211 | 1988-08-10 | 1800000 |
    | 14 | Wawan | P | Semarang | 40123 | 1971-11-12 | 1600000 |
    | 11 | Yenny | P | Bogor | 00000 | 1985-06-09 | 1150000 |
    | 6 | Mawar | P | Bogor | 12345 | 1985-07-07 | 2250000 |
    | 42 | Miranti | P | Medan | 12345 | 1975-07-07 | 1375000 |
    +——+———–+——–+————+———+————+———+
    18 rows in set (0.00 sec)

    Hm, masih belum tepat juga. Kita coba lagi:
    mysql> select * from karyawan
    -> where kota <> “bandung”
    -> and kota <> “Jakarta”
    -> and kota <> “Bekasi”
    -> order by kota, nama ;
    +——+———–+——–+————+———+————+———+
    | noid | nama | jenkel | kota | kodepos | tgllahir | gaji |
    +——+———–+——–+————+———+————+———+
    | 36 | Mardiatun | P | Bogor | 12345 | 1975-07-07 | 1625000 |
    | 6 | Mawar | P | Bogor | 12345 | 1985-07-07 | 2250000 |
    | 24 | Miranda | P | Bogor | 12345 | 1980-07-07 | 2400000 |
    | 11 | Yenny | P | Bogor | 00000 | 1985-06-09 | 1150000 |
    | 17 | Yono | P | Bogor | 00000 | 1989-06-09 | 1900000 |
    | 29 | Yossy | P | Bogor | 00000 | 1982-06-09 | 2225000 |
    | 5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 | 2000000 |
    | 23 | Yuliawati | P | Bogor | 00000 | 1974-06-09 | 2300000 |
    | 26 | Banowati | P | Malang | 40123 | 1978-11-12 | 2350000 |
    | 30 | Melia | P | Malang | 12345 | 1981-07-07 | 2325000 |
    | 42 | Miranti | P | Medan | 12345 | 1975-07-07 | 1375000 |
    | 35 | Nenny | P | Medan | 00000 | 1972-06-09 | 1425000 |
    | 38 | Siti | P | Medan | 40123 | 1988-11-12 | 1825000 |
    | 31 | Anwar | L | Purwakarta | 41011 | 1972-10-02 | 2425000 |
    | 14 | Wawan | P | Semarang | 40123 | 1971-11-12 | 1600000 |
    | 22 | Dadang | L | Surabaya | 17211 | 1977-08-10 | 2200000 |
    | 16 | Marpaung | L | Surabaya | 17211 | 1988-08-10 | 1800000 |
    | 20 | Ratu | P | Yogyakarta | 40123 | 1972-11-12 | 1950000 |
    +——+———–+——–+————+———+————+———+
    18 rows in set (0.00 sec)

    Nah, ternyata sekarang baru berhasil. Coba sekali lagi perhatikan permintaannya: “tampilkan
    karyawan dengan kota kelahiran bukan di Bandung, Jakarta dan Bekasi. Tampilan data diurut
    berdasarkan nama kota dan juga nama karyawan.” Walaupun ada kata “dan” di sini, tetapi tidak
    semata-mata kita bisa menggunakan operator logika AND. Memang diperlukan kejelian dan cobacoba
    dalam permainan logika ini.

    Fungsi Statistik Dasar

    Sekarang siapa saja yang gajinya diantara Rp 1.500.000 dan Rp 2.500.000? Tampilan data diurut

    berdasarkan kolom gaji dan nama karyawan
    mysql> select * from karyawan
    -> where gaji >= 1500000
    -> and gaji <= 2500000
    -> order by gaji, nama ;
    +——+————+——–+————+———+————+———+
    | noid | nama | jenkel | kota | kodepos | tgllahir | gaji |
    +——+————+——–+————+———+————+———+
    | 3 | Ryan Cakep | L | Jakarta | 12111 | 1981-03-21 | 1500000 |
    | 14 | Wawan | P | Semarang | 40123 | 1971-11-12 | 1600000 |
    | 36 | Mardiatun | P | Bogor | 12345 | 1975-07-07 | 1625000 |
    | 18 | Dian | P | Jakarta | 12345 | 1980-07-07 | 1650000 |
    | 15 | The Cute | L | Jakarta | 12111 | 1977-03-21 | 1700000 |
    | 37 | Andika | L | Bandung | 41011 | 1978-10-02 | 1725000 |
    | 4 | Zukarman | L | Bekasi | 17211 | 1978-08-10 | 1750000 |
    | 16 | Marpaung | L | Surabaya | 17211 | 1988-08-10 | 1800000 |
    | 38 | Siti | P | Medan | 40123 | 1988-11-12 | 1825000 |
    | 19 | Donno | L | Bandung | 41011 | 1971-10-02 | 1850000 |
    | 17 | Yono | P | Bogor | 00000 | 1989-06-09 | 1900000 |
    | 39 | Rohimat | L | Jakarta | 12111 | 1980-03-21 | 1925000 |
    | 20 | Ratu | P | Yogyakarta | 40123 | 1972-11-12 | 1950000 |
    | 5 | Yuliawati | P | Bogor | 00000 | 1982-06-09 | 2000000 |
    | 21 | Bambang | L | Jakarta | 12111 | 1982-03-21 | 2100000 |
    | 28 | Gunadi | L | Bekasi | 17211 | 1978-08-10 | 2125000 |
    | 25 | Subur | L | Bandung | 41011 | 1977-10-02 | 2150000 |
    | 22 | Dadang | L | Surabaya | 17211 | 1977-08-10 | 2200000 |
    | 29 | Yossy | P | Bogor | 00000 | 1982-06-09 | 2225000 |
    | 6 | Mawar | P | Bogor | 12345 | 1985-07-07 | 2250000 |
    | 23 | Yuliawati | P | Bogor | 00000 | 1974-06-09 | 2300000 |
    | 30 | Melia | P | Malang | 12345 | 1981-07-07 | 2325000 |
    | 26 | Banowati | P | Malang | 40123 | 1978-11-12 | 2350000 |
    | 24 | Miranda | P | Bogor | 12345 | 1980-07-07 | 2400000 |
    | 31 | Anwar | L | Purwakarta | 41011 | 1972-10-02 | 2425000 |
    | 27 | Gungun | L | Jakarta | 12111 | 1981-03-21 | 2450000 |
    +——+————+——–+————+———+————+———+
    26 rows in set (0.00 sec)

    Sekarang berapa orang karyawan yang gajinya di bawah Rp 2.000.000?
    mysql> select count(*) from karyawan
    -> where gaji < 2000000 ;
    +———-+
    | count(*) |
    +———-+
    | 29 |
    +———-+
    1 row in set (0.01 sec)

    Berapakah gaji rata-rata karyawan?
    mysql> select avg(gaji) from karyawan ;
    +————–+
    | avg(gaji) |
    +————–+
    | 1719642.8571 |
    +————–+
    1 row in set (0.41 sec)

    Berapakah nilai gaji yang terbesar?
    mysql> select max(gaji) from karyawan ;
    +———–+
    | max(gaji) |
    +———–+
    | 2450000 |
    +———–+
    1 row in set (0.00 sec)

    Berapakah nilai gaji yang terkecil?
    mysql> select min(gaji) from karyawan ;
    +———–+
    | min(gaji) |
    +———–+
    | 1000000 |
    +———–+
    1 row in set (0.00 sec)

    Dan berapakah jumlah gaji seluruh karyawan?
    mysql> select sum(gaji) from karyawan ;
    +———–+
    | sum(gaji) |
    +———–+
    | 72225000 |
    +———–+
    1 row in set (0.00 sec)

    Operator Precedence

    Operator precedence adalah tingkatan hirarki dalam memproses serangkaian operator.

    Tingkatan
    hirarki
    Jenis Operator
    Paling Tinggi BINARY
    NOT !
    – (unary minus)
    * / %
    + –
    << >>
    &
    |
    < <= = <=> != <> >= > IN IS LIKE
    REGEXP RLIKE
    BETWEEN
    AND &&
    Paling Rendah OR ||

    Semakin keatas posisi operator, maka semakin tinggi tingkat hirarki operator tersebut. Begitu pula
    sebaliknya, semakin rendah posisinya maka akan semakin lemah hirarkinya.
    Untuk operator yang sama kuat, misal + dan – digabung dengan operator * / %, maka akan
    ditentukan hirarkinya tergantung dari posisi mana yang paling kiri/paling awal ditemukan. Dan
    untungnya posisi hirarki ini dapat diubah dengan bantuan tanda kurung “(” dan “)”. Sekarang kita
    lihat penerapannya.
    mysql> select 10+15-11*2, (10+15-11)*2,
    -> 2*6-5, 2*(6-5) ;
    +————+————–+——-+———+
    | 10+15-11*2 | (10+15-11)*2 | 2*6-5 | 2*(6-5) |
    +————+————–+——-+———+
    | 3 | 28 | 7 | 2 |
    +————+————–+——-+———+
    1 row in set (0.00 sec)

    Anda bisa perhatikan bahwa walaupun angka dan operatornya sama, tapi hasilnya bisa berbeda.
    Dan itu karena adanya peranan dari tanda kurung “(” dan “)” yang akan mengubah peta posisi
    hirarki operator….
    Operator LIKE, NOT LIKE, REGEXP
    Operator LIKE, NOT LIKE, REGEXP akan banyak kita gunakan terutama dalam operasi
    karakter.

    Sekarang kita kan coba menggunakan operator LIKE. Operator LIKE ini digunakan untuk mencari
    data yang “menyerupai” atau “hampir sama” dengan kriteria tertentu. Biasanya untuk mencari
    data string/teks. Simbol “%” digunakan untuk membantu pelaksanaan operator LIKE. Posisi “%”
    sangat berpengaruh dalam menentukan kriteria. Kita langsung dengan contoh-contohnya saja ya
    biar lebih jelas penggunaannya…
    Tampilkan data karyawan yang namanya berawalan huruf “a”: (perhatikan posisi simbol persennya
    “%”)
    mysql> select noid, nama
    -> from karyawan
    -> where nama LIKE “a%” ;
    +——+————–+
    | noid | nama |
    +——+————–+
    | 1 | Ahmad Sobari |
    | 31 | Anwar |
    | 37 | Andika |
    +——+————–+
    3 rows in set (0.00 sec)

    Tampilkan data karyawan yang namanya berawalan huruf “d”:
    mysql> select noid, nama
    -> from karyawan
    -> where nama LIKE “d%” ;
    +——+——–+
    | noid | nama |
    +——+——–+
    | 13 | Dadan |
    | 18 | Dian |
    | 19 | Donno |
    | 22 | Dadang |
    +——+——–+
    4 rows in set (0.00 sec)

    Tampilkan data karyawan yang namanya berakhiran huruf “i”. Perhatikan posisi penulisan tanda
    “%”.:
    mysql> select noid, nama
    -> from karyawan
    -> where nama LIKE “%i” ;
    +——+————–+
    | noid | nama |
    +——+————–+
    | 1 | Ahmad Sobari |
    | 2 | Sundariwati |
    | 5 | Yuliawati |
    | 7 | Sobari |
    | 23 | Yuliawati |
    | 26 | Banowati |
    | 28 | Gunadi |
    | 32 | Susilowati |
    | 38 | Siti |
    | 41 | Yanti |
    | 42 | Miranti |
    +——+————–+
    11 rows in set (0.00 sec)

    Tampilkan data karyawan yang namanya berakhiran “wati”:
    mysql> select noid, nama
    -> from karyawan
    -> where nama LIKE “%wati” ;
    +——+————-+
    | noid | nama |
    +——+————-+
    | 2 | Sundariwati |
    | 5 | Yuliawati |
    | 23 | Yuliawati |
    | 26 | Banowati |
    | 32 | Susilowati |
    +——+————-+
    5 rows in set (0.00 sec)

    Bagaimana caranya agar operator LIKE dapat membedakan huruf besar dan kecil… Sederhana saja,
    cukup dengan menambahkan kata BINARY saja setelah perintah LIKE (sehingga perintahnya
    menjadi LIKE BINARY). Kita lihat contohnya…
    mysql> select noid, nama
    -> from karyawan
    -> where nama LIKE BINARY “a%” ;
    Empty set (0.34 sec)

    Kenapa hasilnya menjadi “Empty set”? Kita coba dengan mengubah perintah tadi menjadi:
    mysql> select noid, nama
    -> from karyawan
    -> where nama LIKE BINARY “A%” ;
    +——+————–+
    | noid | nama |
    +——+————–+
    | 1 | Ahmad Sobari |
    | 31 | Anwar |
    | 37 | Andika |
    +——+————–+
    3 rows in set (0.00 sec)

    Ya dengan menggunakan LIKE BINARY, penulisan huruf “a” akan dibedakan artinya dengan “A”.
    Jelas kan?

    Sekarang bagaimana kalau kita ingin menampilkan data, dengan kriteria bukan diawal atau diakhir
    kalimat, tapi berada diantara sebuah kata/kalimat? Misal ada berapa nama karyawan yang
    memiliki kata “lia”?
    mysql> select noid, nama
    -> from karyawan
    -> where nama LIKE BINARY “%lia%” ;
    +——+———–+
    | noid | nama |
    +——+———–+
    | 5 | Yuliawati |
    | 8 | Melia |
    | 23 | Yuliawati |
    | 30 | Melia |
    +——+———–+
    4 rows in set (0.00 sec)

    Atau memiliki kata”Di” pada namanya?
    mysql> select noid, nama
    -> from karyawan
    -> where nama LIKE BINARY “%Di%” ;
    +——+——+
    | noid | nama |
    +——+——+
    | 18 | Dian |
    +——+——+
    1 row in set (0.00 sec)

    Operator REGEXP (singkatan dari REGular EXPressions) merupakan bentuk lain dari operator
    LIKE, dengan fungsi yang lebih disempurnakan. Operator REGEXP biasanya ditemani juga dengan
    simbol-simbol tertentu dalam melaksanakan tugasnya, seperti:
    Simbol Keterangan
    .
    Satu tanda titik (.) untuk mewakili satu
    karakter
    [?]
    Untuk mewakili beberapa karakter atau
    range yang ditentukan.
    ^
    Untuk posisi awal dari sebuah kriteria
    yang ditentukan
    $
    Untuk posisi akhir dari sebuah kriteria
    yang ditentukan

    Kita langsung saja pada contohnya. Tampilkan nama karyawan yang berawalan huruf ‘a’:
    mysql> select noid, nama
    -> from karyawan
    -> where nama REGEXP “^a” ;
    +——+————–+
    | noid | nama |
    +——+————–+
    | 1 | Ahmad Sobari |
    | 31 | Anwar |
    | 37 | Andika |
    +——+————–+
    3 rows in set (0.00 sec)

    Tampilkan data karyawan yang namanya berawalan huruf “d”.
    mysql> select noid, nama
    -> from karyawan
    -> where nama REGEXP “^d” ;
    +——+——–+
    | noid | nama |
    +——+——–+
    | 13 | Dadan |
    | 18 | Dian |
    | 19 | Donno |
    | 22 | Dadang |
    +——+——–+
    4 rows in set (0.00 sec)

    Tampilkan nama karyawan yang berawalan huruf ‘a’ sampai dengan huruf ‘d’:
    mysql> select noid, nama
    -> from karyawan
    -> where nama REGEXP “^[a-d]”
    -> order by nama ;
    +——+————–+
    | noid | nama |
    +——+————–+
    | 1 | Ahmad Sobari |
    | 37 | Andika |
    | 31 | Anwar |
    | 21 | Bambang |
    | 26 | Banowati |
    | 40 | Beno |
    | 13 | Dadan |
    | 22 | Dadang |
    | 18 | Dian |
    | 19 | Donno |
    +——+————–+
    10 rows in set (0.00 sec)

    Tampilkan data karyawan yang namanya berakhiran huruf “i”:
    mysql> select noid, nama
    -> from karyawan
    -> where nama REGEXP “i$”
    -> order by nama ;
    +——+————–+
    | noid | nama |
    +——+————–+
    | 1 | Ahmad Sobari |
    | 26 | Banowati |
    | 28 | Gunadi |
    | 42 | Miranti |
    | 38 | Siti |
    | 7 | Sobari |
    | 2 | Sundariwati |
    | 32 | Susilowati |
    | 41 | Yanti |
    | 5 | Yuliawati |
    | 23 | Yuliawati |
    +——+————–+
    11 rows in set (0.00 sec)

    Tampilkan data karyawan yang namanya berakhiran “wati”:
    mysql> select noid, nama
    -> from karyawan
    -> where nama REGEXP “wati$”
    -> order by nama ;
    +——+————-+
    | noid | nama |
    +——+————-+
    | 26 | Banowati |
    | 2 | Sundariwati |
    | 32 | Susilowati |
    | 5 | Yuliawati |
    | 23 | Yuliawati |
    +——+————-+
    5 rows in set (0.00 sec)

    Tampilkan nama karyawan yang panjangnya 10 karakter:
    mysql> select noid, nama
    -> from karyawan
    -> where nama REGEXP “^……….$” ;
    +——+————+
    | noid | nama |
    +——+————+
    | 3 | Ryan Cakep |
    | 9 | Zanda Cute |
    | 32 | Susilowati |
    +——+————+
    3 rows in set (0.00 sec)

    Atau perintah diatas bisa juga ditulis dengan:
    mysql> select noid, nama
    -> from karyawan
    -> where nama REGEXP “^.{10}$” ;
    +——+————+
    | noid | nama |
    +——+————+
    | 3 | Ryan Cakep |
    | 9 | Zanda Cute |
    | 32 | Susilowati |
    +——+————+
    3 rows in set (0.00 sec)

    Nah, kurang lebih itulah dasar-dasar MySQL. Ini baru tutorial perkenalan. Kita akan bertemu lagi
    dengan tutorial berikutnya …