Modul SQL Dari Senja: "Buat Jadi Data Analyst, Enggak Cukup Mahir Mengoperasikan Python Aja. Semangat!"
Modul SQL Dari Senja: "Buat Jadi Data Analyst, Enggak Cukup Mahir Mengoperasikan Python Aja. Semangat!"
Senja baru saja menaruh tumpukan modul baru di mejaku. Kuintip, beberapa
judulnya bertuliskan SQL. Seperti menjawab rasa keingintahuanku, Senja menyahut,
“SQL adalah bahasa pemograman untuk pengolahan database. Fungsinya untuk
memperbarui, membuat tabel, prosedur, dan sejenisnya. Makanya materinya
banyak. Masih semangat?”
“Yup,” jawabku mantap. Sejak dulu aku selalu menyukai data. Buatku, data adalah
dasar pertimbangan tiap tindakan. Saat ada kesempatan belajar seperti ini, walau
berat aku tidak akan menyerah.
Pendahuluan
Aku menemukan tumpukan modul di meja kerjaku. Aku menemukan post-it kuning di
atas modul itu yang bertuliskan:
“Buat jadi Data Analyst, enggak cukup mahir mengoperasikan Python aja.
Semangat!”
Aku menaruh tas selempangku dan segera membuka laptop. Kalau baca modul saja
enggak akan paham, aku terbiasa membaca sembari mempraktikkannya. Jadi, mari
mulai belajar. Dear SQL, here we go!
Dengan perintah tersebut, sistem database akan mengerti bahwa ‘dia’ harus
menampilkan data ‘nama_produk’ dari suatu tabel yang namanya ‘ms_produk’
seperti berikut.
nama_produk
------------------------------------
Kotak Pensil DQLab
Flashdisk DQLab 64 GB
Gift Voucher DQLab 100rb
Flashdisk DQLab 32 GB
Gift Voucher DQLab 250rb
Pulpen Multifunction + Laser DQLab
Tas Travel Organizer DQLab
Gantungan Kunci DQLab
Buku Planner Agenda DQLab
Sticky Notes DQLab 500 sheets
Terlihat ada sepuluh nama peralatan kantor dengan label DQLab yang ditampilkan.
Ini menunjukkan bahwa interaksi antara SQL dan sistem database telah berjalan
dengan baik.
“Jadi, untuk beberapa alasan inilah, maka tidak heran SQL menjadi keterampilan
utama yang diminta oleh banyak perusahaan?” ujarku menyimpulkan.
Senja mengangguk puas. Aku pun kembali mempelajari isi modul.
Kesimpulan
SQL singkatan dari Structured Query Language, adalah sebuah bahasa
komputer sederhana yang menjadi standar untuk memungkinkan seseorang
berkomunikasi dengan suatu sistem database manajemen relasional (RDBMS).
Karena RDBMS bisa dikatakan digunakan oleh sistem IT oleh seluruh perusahaan di
dunia dan di Indonesia, maka pengetahuan SQL menjadi aset yang penting di
perusahaan. Walaupun sederhana, aspek SQL sangat luas.
Aku semangat sekali, karena pada module Fundamental SQL using SELECT
statement, aku akan mempelajari proses pengambilan data dengan pendekatan best
practice yang dibutuhkan oleh mayoritas perusahaan di dunia dan Indonesia.
Pendahuluan
“Dasar mengenai SQL sudah cukup paham, Aksara?”
“Sudah, ini baru saja selesai baca dan latihan soal,” sahutku sembari membuka
halaman baru modul.
“Oke, berarti sekarang lagi belajar Relational Database Management System ya? Itu
bagian penting karea RDBMS ini perlu kamu kuasai sebelum mempraktikkan
penggunaan SQL lebih lanjut.”
Aku jadi makin penasaran isi materinya!
Basis data relasional sangat popular dan banyak digunakan oleh perusahaan –
perusahaan karena jenis database ini mudah dikelola terlebih jika memiliki banyak
data atau informasi yang perlu disimpan, scalable dan flexibel.
Basis data rasional cukup mudah dikelola. Setiap tabel/data dapat diupdate
atau dimodifikasi tanpa mengganggu tabel/data yang lain.
Flexible : jika perlu memperbarui data, hanya perlu melakukannya sekali saja
- jadi tidak perlu lagi mengubah banyak file satu per satu. Selain itu, basis
data rasional juga cukup mudah untuk di-extend. Misalnya saat data sudah
semakin banyak, dapat dengan mudah memperbesar kapasitas dari database
yang dimiliki.
2. PostgreSQL
Open-source RDBMS product, dan juga umumnya digunakan untuk
pengembangan aplikasi web. Akan tetapi secara kinerja, postgreSQL lebih
lambat dibandingkan MySQL.
3. Oracle DB
Produk RDBMS yang dimiliki oleh Oracle Corporation dan produk ini bersifat
proprietary atau tidak open source. Oracle DB umumnya digunakan di industri
perbankan.
5. SQLite
Open source RDBMS, umumnya digunakan sebagai database di handphone,
MP3 player, and perangkat lainnya.
Selain itu, juga ada MariaDB yang juga gratis atau open source, IBM DB2, Microsoft
Access, dan masih banyak lainnya.
Umumnya RDBMS menggunakan SQL untuk mengakses database dan produk
RDBMS tidak hanya satu macam saja tetapi ada berbagai macam produk, maka
SQL syntax pun bisa jadi sedikit berbeda untuk setiap produk tersebut. Berikut
contoh perbandingan MySQL, Oracle, dan SQLSERVER untuk menampilkan
beberapa baris data dari suatu tabel :
Database
Tabel (table)
Kolom (column) atau Field
Dari sini aku belajar informasi menarik yaitu setiap database bisa berisi beberapa
tabel, dan setiap tabel bisa terdiri dari beberapa kolom. Di setiap database, tabel dan
kolom memiliki nama sendiri sebagai identitas mereka. Tabel dan kolom inilah yang
akan diisi data yang kemudian membentuk row (baris data).
no_urut
kode_produk
nama_produk
harga
Dan dalam tabel tersebut terdapat 10 baris data (row) dengan isi data yang
bervariasi, contoh isi data untuk kolom "nama_produk" pada baris kelima adalah
"Gift Voucher DQLab 250rb".
Kesimpulan
Wah ternyata seru sekali belajar SQL!
Aku mulai membuka catataanku, mengambil pena, dan menuliskan apa yang aku
pelajari:
1. Sistem relasional database atau relational database management system
(RDBMS) adalah sistem database paling populer di dunia saat ini dan
menggunakan bahasa SQL untuk pengolahannya.
2. Beberapa produk RDBMS yang terkenal antara lain adalah Microsoft SQL
Server, Oracle, MySQL, PostgreSQL, IBM DB2, dan masih banyak lainnya.
3. Struktur penyimpanan data di RDBMS menggunakan hirarki:
o Database
o Tabel (Table)
o Kolom (Column)
4. Data akan diisi ke dalam table dalam bentuk Baris (Row) data
Pendahuluan
“Nja, aku sudah selesai dengan SQL dan RDMS. Sekarang mau lanjut ke materi
SELECT. Ada catatan penting darimu soal materi lanjutan ini?” tanyaku karena
biasanya Senja punya catatan khusus untuk tiap materi.
“Oh, sudah? Kalau mau pakai perintah SELECT untuk akses data, lebih baik
belajarnya langsung praktik. Sini perhatikan, sambil bawa modulnya,” tawar Senja.
Nah, kan! Apa kubilang. Senja pasti punya catatan khusus sekaligus metode belajar
sendiri untuk tiap materi. Enggak salah aku nanya dulu.
Senja mengajak aku untuk langsung mempraktekkan perintah SQL SELECT untuk
menampilkan data pada tabel yang bernama ms_produk.
Jika aku menjalankan tombol RUN, maka aku akan mendapatkan tabel seperti
berikut:
Mengambil Satu Kolom dari Tabel
Aku sudah cukup paham dengan penjelasan Senja tadi. Tapi, masih ada satu yang
mengganjal. “Bagaimana kalau aku hanya ingin menampilkan satu kolom saja dari
suatu tabel/data, Nja?”
“Secara umum penggunaan perintah SELECT untuk mengambil satu kolom
dinyatakan oleh sintaks berikut ini,” ujar Senja sambil menggeser layar laptopnya
agar bisa kuperhatikan:
“Kita coba ya dengan menampilkan data pelanggan yang ada di database. Kita
sudah menggunakan perintah SELECT sebelumnya untuk mengambil seluruh
kolom. Nah, berikut adalah contoh query untuk mengambil satu kolom saja
yaitu nama_produk,” tambah Senja.
Aku mencatat beberapa tampilan penting yang menjadi contoh dari Senja buatku.
Ketikkan perintah berikut pada code editor dan kemudian klik tombol Run,
Hasilnya, sistem database akan menampilkan data nama_produk saja dari
tabel ms_produk seperti terlihat sebagai berikut.
Terlihat ada sepuluh nama peralatan kantor yang ditampilkan, dan jumlah ini sesuai
dengan jumlah seluruh row yang terdapat pada tabel ms_produk.
Ingat: untuk MySQL nama kolom sensitif terhadap huruf besar maupun kecil.
Terlihat hanya tiga baris data pertama yang ditampilkan dari keseluruhan sepuluh
baris data yang ada.
Tugas:
Ambillah lima data teratas dari kolom nama_produk dan harga.
Jika perintah yang diketikkan berjalan dengan benar, maka Live Code Editor
Console akan menampilkan hasil seperti berikut.
Untuk menghilangkan data duplikasi, aku bisa menggunakan SELECT
DISTINCT statement. Dengan SELECT DISTINCT, data yang sama atau duplikat
akan dieliminasi dan akan ditampilkan data yang unik saja.
Berikut syntax-nya:
Kesimpulan
Aku mengambil catatanku, dan mulai menulis apa yang aku pelajari, sebelum aku
melanjutkan belajarku:
1. Perintah SELECT dapat digunakan untuk menentukan apa saja kolom yang
akan diambil dengan menuliskan nama-nama kolom yang diinginkan
menggunakan pemisah tanda koma.
2. Perintah SELECT juga dapat digunakan untuk membatasi jumlah data yang
dikeluarkan. Namun untuk berbagai produk bisa berbeda penulisannya.
MySQL menggunakan LIMIT untuk tujuan tersebut.
3. Perintah SELECT DISTINCT dapat digunakan untuk menghilangkan duplikasi
baris dalam tabel dan hanya menampilkan baris data yang unik tanpa
duplikasi.
Pendahuluan
Sejauh ini, aku sudah cukup paham cara menggunakan SQL dengan perintah
SELECT, terutama untuk mengakses data dari database. Aku pun berniat untuk
mengambil dan menganalisis data produk dengan syntax yang ada:
Beberapa detik aku termenung melihat syntax ini. Mengapa ada ‘t1’, dan ‘AS’? Apa
maksudnya? Aku terdorong untuk bertanya kembali pada Senja.
“Nja, sorry gangguin kamu lagi. Aku lagi mau nyoba latihan nih. Tapi aku nemu
syntax ini dan agak bingung terutama karena ada ‘t1’, dan ‘AS’. Maksudnya?”
“Oh, ini hanya variasi penggunaan nama table dan kolom pada bagian SELECT. Sini
saya kasih tahu.”
Aku pun mencatat penjelasan Senja, walau sederhana tapi penting:
Prefix, dimana kita akan menambahkan nama tabel di depan nama kolom.
Alias, dimana kita memberikan alias atau nama lain untuk tabel maupun
kolom.
Untuk mengambil nama kolom nama_produk data dari tabel ms_produk dengan
penulisan prefix nama tabel adalah sebagai berikut.
Ketik dan jalankan tersebut pada code editor, yang jika berjalan dengan lancar akan
muncul hasil sebagai berikut.
no_urut menjadi nomor.
nama_produk menjadi nama.
Berikut adalah contoh yang sama dari sub-chapter sebelumnya, dimana untuk
merubah nama kolom dari kode_produk menjadi product_code dari tabel
ms_produk dapat dilakukan tanpa menggunakan alias.
no_urut menjadi nomor.
nama_produk menjadi nama.
Jika berjalan lancar, maka Live Code Editor akan menampilkan hasil berikut:
Tugas:
Tampilkan kolom harga dari tabel ms_produk dengan nama
alias harga_jual lengkap dengan prefix.
Jika berjalan dengan lancar, Live Code Editor akan mengeluarkan hasil sebagai
berikut.
“Penggunaan nama original tabel sebagai prefix akan menimbulkan error saat query
dijalankan karena dengan penggunaan alias, nama tabel secara temporary sudah di-
gantikan oleh alias, Aksara,” jawab Senja lugas.
Aku mengangguk. Senja pun kembali melanjutkan penjelasannya.
Mari lihat contoh berikut ini dari tabel ms_produk yang telah digunakan sebelumnya
Jalankan dan jika berhasil dengan baik maka akan memunculkan hasil berikut.
Jika kolom dan tabel memiliki alias, dapat dilakukan dengan mengetikkan perintah
berikut di code editor
“Oke, Nja. Sekarang aku sudah paham syntax query,” ujarku bersemangat.
Dari apa yang ditunjukkan Senja, aku bisa mengetahui kalau Senja menggunakan
alias tabel yaitu t1, prefix untuk kolom adalah t1, dan alias untuk nama kolom. Maka
itu, hasil yang diperoleh dengan menjalankan query adalah seperti ini:
Tugas:
Gantilah perintah pada code editor dengan nama alias t2 - tanpa menggunakan
keyword AS - untuk tabel ms_produk dan menampilkan kolom nama_produk dan
harga, lengkap dengan prefix alias.
Jika berjalan dengan lancar maka akan memunculkan hasil berikut.
Kesimpulan
Aku kembali mengambil catatanku dan menuliskan apa yang telah aku pelajari:
1. Perintah SELECT dapat ditulis dengan variasi identitas kolom dan tabel
berupa prefix dan alias.
o Penulisan lengkap untuk nama kolom adalah prefix berupa nama tabel
disertai tanda titik sebelum nama kolom itu sendiri.
o Alias adalah nama lain yang diberikan untuk kolom maupun tabel.
o Alias dapat digunakan dengan keyword AS atau tanpa keyword AS
setelah nama kolom dan tabel.
o Prefix nama tabel bisa menggunakan alias.
Pendahuluan
“Nja, sampai sini aku sudah paham bagaimana menggunakan alias dan prefix. Tapi
aku masih ada pertanyaan. Terkadang kita hanya ingin menampilkan data
berdasarkan kondisi tertentu, jadi kita tidak butuh semua data dari tabel. Kalau
seperti itu, berarti kita hanya ingin mengambil data produk dengan nama produk
tertentu. Nah, di SQL caranya gimana ya?” tanyaku. Hal ini sedari tadi membuatku
penasaran.
“Untuk case dimana kita ingin mengambil data berdasarkan kondisi tertentu saja,
kita bisa menggunakan filter. SQL memiliki fungsi filter dengan menggunakan
klausul WHERE. Jika kondisi WHERE terpenuhi, maka hasil query hanya akan
menampilkan data yang sudah terfilter.”
Seperti biasa, aku akan lebih memahami Senja jika ada praktik yang menyertai
penjelasannya. Jadi kusampaikan saja, “Nja, boleh sekalian praktik enggak?”
Senja hanya tersenyum dan hafal kebiasaanku. “Oke, biar lebih mudah dipahami,
selanjutnya kita akan mempraktikkan bagaimana menggunakan klausul WHERE.”
Aku pun segera membuka modul bagian klausul WHERE:
Klausul WHERE untuk:
Menggunakan WHERE
Klausul WHERE dari SELECT digunakan untuk memfilter data berdasarkan kondisi
tertentu. Untuk syntax lengkapnya adalah sebagai berikut.
Kondisi paling sederhana memiliki format sebagai berikut
Biar lebih jelasnya, mari langsung contohkan dengan perintah berikut.
Jika dijalankan dengan baik, Live Code Editor akan menampilkan hasil berikut.
Terlihat hanya satu baris data saja yang dikeluarkan dari total sepuluh, yaitu data
dimana kolom nama_produk berisi nilai 'Gantungan Kunci DQLab'.
Tugas:
Cobalah ubah perintah SELECT pada code editor untuk mengeluarkan data dengan
nama_produk bernilai 'Tas Travel Organizer DQLab'. Jika semua berjalan dengan
lancar, maka hasilnya akan terlihat sebagai berikut.
Menggunakan Operand OR
Pada subbab sebelumnya, aku telah menggunakan filter teks sederhana untuk
mengeluarkan data masing-masing dengan nama_produk 'Gantungan Kunci DQLab'
dan 'Tas Travel Organizer DQLab'.
Pertanyaannya, bagaimana jika ingin mengeluarkan keduanya sekaligus? Aku bisa
menggunakan Operand OR.
Untuk memunculkan hasil query yang memuat data produk dengan nama_produk
'Gantungan Kunci DQLab' dan 'Tas Travel Organizer DQLab', aku dapat
menggunakan logika sederhana, yaitu: Aku perlu mengambil data dengan kondisi
nama_produk itu bernilai 'Gantungan Kunci DQLab' ATAU 'Tas Travel Organizer
DQLab'. Logika ini bisa dinotasikan dengan menggunakan logika OR.
Sehingga, dengan menggunakan logika OR, aku dapat menggabungkan dua atau
lebih kondisi untuk memfilter data. Jadi, untuk menyelesaikan problem yaitu
memunculkan data dengan kondisi kolom nama_produk bernilai 'Gantungan Kunci
DQLab' ATAU 'Tas Travel Organizer DQLab', dapat menggunakan syntax berikut:
Catatan: Perhatikan bahwa perintah SELECT ini cukup panjang, dan riil-nya bisa
dibagi menjadi beberapa baris. Namun untuk sistem DQLab, ini masih perlu
dijadikan satu baris.
Jika dijalankan dengan baik maka hasilnya akan tampak sebagai berikut.
Terlihat bukan hanya satu baris data, tapi terdapat dua baris data yang diambil
karena memenuhi kondisi yang diberikan pada perintah SELECT.
Tugas:
Tambahkan nama_produk 'Flashdisk DQLab 64 GB' ke dalam tabel. Jika berjalan
dengan lancar, maka hasilnya terlihat sebagai berikut.
Jika dijalankan, maka aku akan mendapatkan tiga baris data sebagai berikut.
Terlihat seluruh data yang diambil memiliki kondisi harga di bawah 50000.
Tugas:
Tampilkan informasi dengan harga diatas 50000. Jika berjalan dengan lancar, maka
akan mendapatkan hasil berikut.
Menggunakan Operand AND
Jika sebelumnya aku mempelajari Operand OR, aku juga bisa menggunakan
operand AND agar dua atau lebih kondisi terpenuhi semuanya. Jika salah satu
kondisi tidak terpenuhi, data tidak akan diambil. Secara umum syntaxnya
diilustrasikan berikut ini
Berikut adalah contoh dimana kedua kondisi digunakan dengan penghubung AND.
Kesimpulan
Wah, semakin seru saja nih belajar SQL! Sebelum aku lupa, aku mencatat apa yang
aku pelajari tadi. Siapa yang punya kebiasaan seperti aku? Dengan mencatat apa
yang aku pelajari, aku merasa ilmu yang aku pelajari tadi lebih mudah untuk aku
pahami.
Pendahuluan
“Oke, selamat Aksara! Materi SQL untuk hari ini sudah selesai dan saya lihat kamu
bisa mengikutinya dengan baik,” puji Senja.
“Ini juga berkat penjelasan dan bimbinganmu, Nja.” Dalam hati aku kembali
menobatkan Senja sebagai mentor terbaik!
“Agar kemampuan di SQL lebih teruji lagi, bagaimana kalau kamu membantu saya
menangani proyek baru dari cabang A ini?”
Aku menggeser bangku ke sebelah Senja untuk melihat tabel yang ditunjukkannya.
Hasil Belajarku
Wah seru sekali bagian pertama dari Module SQL ini! Dari materi yang telah aku
pelajari dalam 'Fundemental SQL using SELECT Statement', aku telah memahami
dan mampu mempraktekkan:
Dengan kemampuan ini, aku telah siap untuk mengambil dan mengolah data secara
sederhana. Keterampilan ini sendiri adalah 60% aktivitas awal yang akan dilakukan
seorang analis.
Semangat belajar!
Silahkan klik tombol Next untuk memperoleh sertifikat bahwa kamu telah
menyelesaikan module ini dengan baik.
Nantikan module selanjutnya, 'Fundemental SQL using FUNCTION and GROUP BY' tanggal
11 Juni 2020!