Kenapa ada data analyst yang hasil kerjanya selalu ditindaklanjuti, sementara yang lain hanya menghasilkan laporan yang berakhir di folder arsip tanpa pernah dibaca?
Jawabannya bukan soal siapa yang lebih jago coding atau siapa yang tahu lebih banyak library. Jawabannya ada di satu kemampuan yang sering diremehkan: kemampuan menghubungkan pertanyaan bisnis dengan data yang tersedia, lalu menyajikan hasilnya dalam bahasa yang dimengerti pengambil keputusan.
Di sinilah kombinasi SQL dan Python masuk sebagai senjata utama. SQL untuk mengambil data yang tepat dari database, Python untuk mengolah dan menyajikannya menjadi insight yang bermakna. Di artikel ini kita akan belajar cara kerjanya langsung dari praktik nyata, bukan sekadar teori.
Mengapa Harus Kombinasi SQL dan Python?
Banyak pemula yang bingung: SQL atau Python, harus pilih yang mana?
Jawabannya, keduanya. Dan bukan karena itu terdengar keren, tapi karena masing-masing punya keunggulan yang berbeda dan saling melengkapi.
SQL adalah bahasa yang dirancang khusus untuk berinteraksi dengan database. Dengan SQL, kamu bisa mengakses, memfilter, menggabungkan, dan meringkas data dari tabel yang berisi jutaan baris dalam hitungan detik. SQL sangat efisien untuk pekerjaan ini karena memang itulah yang dirancang untuknya. Perintah seperti SELECT, WHERE, GROUP BY, dan JOIN adalah alat yang memungkinkan data analyst menarik informasi penting dari database tanpa harus mengunduh semua datanya terlebih dahulu.
Python di sisi lain adalah bahasa pemrograman general yang jauh lebih fleksibel. Dengan library seperti Pandas, kamu bisa melakukan transformasi data yang kompleks. Dengan Matplotlib dan Seaborn, kamu bisa membuat visualisasi yang informatif dan menarik. Dengan Scikit-learn, kamu bahkan bisa masuk ke ranah machine learning. Python mengambil alih di tempat SQL mulai kehabisan kemampuan.
Jadi alur kerjanya jelas: gunakan SQL untuk mengambil dan menyaring data dari database, lalu gunakan Python untuk analisis dan visualisasi yang lebih mendalam. Dua tools ini bersama-sama adalah kombinasi yang dipakai oleh data analyst profesional di hampir semua industri.
Menariknya, menguasai dua tools ini sekaligus juga membuat profilmu sebagai kandidat jauh lebih kuat di mata rekruter. Banyak lowongan data analyst mencantumkan keduanya sebagai persyaratan utama, dan kemampuan mengintegrasikan keduanya dalam satu alur kerja yang mulus adalah nilai tambah yang tidak semua kandidat miliki.
Cara Berpikir Saat Menghadapi Business Question
Sebelum langsung membuka laptop dan menulis kode, ada satu kebiasaan yang membedakan analyst yang efektif dengan yang tidak: memecah pertanyaan bisnis menjadi pertanyaan data yang spesifik dan bisa dijawab.
Misalnya kamu mendapat pertanyaan bisnis seperti ini dari manajemen:
“Kelompok penumpang mana yang memiliki tingkat keselamatan tertinggi?”
Pertanyaan itu terlalu luas untuk langsung dijawab dengan satu query. Kamu perlu memecahnya menjadi pertanyaan-pertanyaan yang lebih kecil dan spesifik
💡 Pecah Business Question Menjadi Pertanyaan Data:
- Bagaimana tingkat keselamatan berdasarkan kelas tiket?
- Bagaimana tingkat keselamatan berdasarkan jenis kelamin?
- Apakah ada perbedaan signifikan antara kombinasi keduanya?
- Kelompok mana yang punya angka paling mencolok?
Dari satu pertanyaan bisnis, kamu bisa mendapat empat pertanyaan data yang masing-masing bisa dijawab dengan query atau analisis yang spesifik. Inilah cara kerja analyst di lapangan yang sesungguhnya. Kemampuan memecah pertanyaan bisnis menjadi langkah-langkah analisis yang konkret adalah skill yang justru paling sering dicari perusahaan, tapi paling jarang dilatih di bangku belajar.
Kebiasaan ini juga membantu kamu menghindari jebakan umum yang disebut analysis paralysis, yaitu kondisi di mana kamu terlalu bingung harus mulai dari mana sehingga akhirnya tidak menghasilkan apa-apa. Dengan memecah pertanyaan besar menjadi pertanyaan-pertanyaan kecil yang konkret, kamu selalu tahu langkah berikutnya yang harus diambil.
Persiapan: Install Library yang Dibutuhkan
Untuk artikel ini kita akan menggunakan SQLite, database ringan yang bisa langsung dijalankan di Python tanpa perlu install server database terpisah. Ini cara paling mudah untuk berlatih SQL dan Python secara bersamaan di lingkungan lokal.
Buka Command Prompt dan pastikan library berikut sudah terinstall:
pip install pandas matplotlib
SQLite biasanya sudah tersedia sebagai library bawaan Python, jadi kamu tidak perlu install tambahan untuk itu.
Mengapa kita pakai SQLite dan bukan database sungguhan seperti MySQL atau PostgreSQL? Karena untuk keperluan belajar, SQLite jauh lebih praktis. Tidak perlu install server, tidak perlu konfigurasi yang rumit, dan hasilnya tetap sama dari sisi cara penulisan query SQL-nya. Setelah kamu menguasai konsepnya dengan SQLite, berpindah ke database lain hanya tinggal menyesuaikan cara koneksinya saja.
Langkah 1 — Siapkan Database dan Data
Buka Jupyter Notebook dan buat notebook baru. Di sel pertama, kita akan membuat database SQLite sederhana menggunakan dataset Titanic yang sudah familiar:
import pandas as pd
import sqlite3
import matplotlib.pyplot as plt
# Baca dataset Titanic
df = pd.read_csv('C:/Users/acer/Downloads/titanic/train.csv')
# Buat koneksi ke database SQLite
conn = sqlite3.connect('titanic.db')
# Simpan DataFrame ke dalam database sebagai tabel
df.to_sql('penumpang', conn, if_exists='replace', index=False)
print("Database berhasil dibuat!")
print(f"Jumlah data: {len(df)} baris")
Jalankan dengan Shift + Enter.
Dengan kode ini, kita mensimulasikan situasi nyata di mana data sudah tersimpan di dalam database dan kita perlu mengaksesnya menggunakan SQL. Dari titik ini, semua pengambilan data akan dilakukan menggunakan query SQL, bukan langsung dari DataFrame.
Langkah 2 — Jawab Business Question dengan SQL
Sekarang kita simulasikan situasi nyata. Manajemen mengajukan pertanyaan bisnis: “Kelompok penumpang mana yang memiliki tingkat keselamatan tertinggi?”
Kita mulai dari pertanyaan data yang paling dasar dan bertahap ke yang lebih kompleks.
Query 1: Tingkat keselamatan per kelas tiket
query1 = """
SELECT
Pclass as Kelas,
COUNT(*) as Total_Penumpang,
SUM(Survived) as Jumlah_Selamat,
ROUND(AVG(Survived) * 100, 1) as Persen_Selamat
FROM penumpang
GROUP BY Pclass
ORDER BY Pclass
"""
hasil1 = pd.read_sql_query(query1, conn)
print("=== Tingkat Keselamatan per Kelas Tiket ===")
print(hasil1)
Perhatikan bagaimana query ini bekerja. Kita menggunakan GROUP BY untuk mengelompokkan data berdasarkan kelas tiket, lalu menghitung jumlah total penumpang, jumlah yang selamat, dan persentasenya. Semua itu dilakukan langsung di level database, jauh lebih efisien dibanding mengunduh semua data lalu menghitungnya di Python.
Query 2: Tingkat keselamatan per jenis kelamin
query2 = """
SELECT
Sex as Jenis_Kelamin,
COUNT(*) as Total_Penumpang,
SUM(Survived) as Jumlah_Selamat,
ROUND(AVG(Survived) * 100, 1) as Persen_Selamat
FROM penumpang
GROUP BY Sex
ORDER BY Persen_Selamat DESC
"""
hasil2 = pd.read_sql_query(query2, conn)
print("=== Tingkat Keselamatan per Jenis Kelamin ===")
print(hasil2)
Query 3: Kombinasi kelas tiket dan jenis kelamin
query3 = """
SELECT
Pclass as Kelas,
Sex as Jenis_Kelamin,
COUNT(*) as Total,
ROUND(AVG(Survived) * 100, 1) as Persen_Selamat
FROM penumpang
GROUP BY Pclass, Sex
ORDER BY Pclass, Persen_Selamat DESC
"""
hasil3 = pd.read_sql_query(query3, conn)
print("=== Kombinasi Kelas dan Jenis Kelamin ===")
print(hasil3)
Query ketiga ini adalah yang paling menarik karena menggabungkan dua dimensi sekaligus. Dari sini kamu bisa melihat bahwa tidak cukup hanya melihat satu faktor, kombinasi antara kelas dan jenis kelamin menghasilkan gambaran yang jauh lebih lengkap dan kaya informasi. Inilah salah satu kekuatan SQL, kemampuan menggabungkan beberapa dimensi analisis dalam satu query yang ringkas dan efisien. Di dunia kerja nyata, pertanyaan bisnis yang kompleks hampir selalu membutuhkan pendekatan multi-dimensi seperti ini.
Langkah 3 — Olah dan Visualisasikan dengan Python
Data dari SQL sudah kita ambil. Sekarang giliran Python mengambil alih untuk membuat visualisasi yang lebih mudah dipahami oleh semua orang, termasuk yang tidak terbiasa membaca tabel angka.
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 6))
# Grafik 1: Per kelas tiket
warna_kelas = ['#2ecc71', '#3498db', '#e74c3c']
bars1 = ax1.bar(['Kelas 1', 'Kelas 2', 'Kelas 3'],
hasil1['Persen_Selamat'],
color=warna_kelas)
for bar in bars1:
height = bar.get_height()
ax1.text(bar.get_x() + bar.get_width()/2, height + 0.5,
f'{height}%', ha='center', fontweight='bold')
ax1.set_title('Tingkat Keselamatan\nper Kelas Tiket', fontsize=13)
ax1.set_ylabel('Persentase Selamat (%)')
ax1.set_ylim(0, 80)
# Grafik 2: Per jenis kelamin
warna_gender = ['#E91E8C', '#2196F3']
bars2 = ax2.bar(['Perempuan', 'Laki-laki'],
hasil2['Persen_Selamat'],
color=warna_gender)
for bar in bars2:
height = bar.get_height()
ax2.text(bar.get_x() + bar.get_width()/2, height + 0.5,
f'{height}%', ha='center', fontweight='bold')
ax2.set_title('Tingkat Keselamatan\nper Jenis Kelamin', fontsize=13)
ax2.set_ylabel('Persentase Selamat (%)')
ax2.set_ylim(0, 100)
plt.suptitle('Analisis Keselamatan Penumpang Titanic', fontsize=15, fontweight='bold')
plt.tight_layout()
plt.savefig('analisis_keselamatan.png', dpi=150, bbox_inches='tight')
plt.show()
Dengan dua baris kode plt.subplots(1, 2), kita bisa menampilkan dua grafik secara berdampingan dalam satu gambar. Ini jauh lebih efisien dan lebih mudah dibandingkan untuk presentasi dibanding dua grafik yang terpisah. Ketika kamu menyajikan laporan kepada manajemen, efisiensi visual seperti ini sangat membantu karena pembaca bisa langsung membandingkan dua temuan sekaligus tanpa harus scroll atau berpindah halaman.
Langkah 4 — Tulis Jawaban Business Question
Setelah data terkumpul dan visualisasi selesai, langkah terakhir dan paling penting adalah menjawab pertanyaan bisnis tadi dalam bahasa yang jelas, singkat, dan mudah dipahami oleh pengambil keputusan yang mungkin tidak punya latar belakang teknis sama sekali.
Di sel Markdown baru di Jupyter, ubah tipe sel ke Markdown lalu ketik:
## Jawaban Business Question
**Pertanyaan:** Kelompok penumpang mana yang memiliki tingkat keselamatan tertinggi?
**Temuan Utama:**
- Penumpang perempuan memiliki tingkat keselamatan 74%, jauh lebih tinggi
dibanding laki-laki yang hanya 19%
- Penumpang kelas 1 memiliki tingkat keselamatan 63%, dibanding kelas 3 yang hanya 24%
- Kombinasi tertinggi: perempuan kelas 1 dengan tingkat keselamatan di atas 96%
**Kesimpulan:**
Jenis kelamin dan kelas tiket adalah dua faktor utama yang menentukan
peluang keselamatan penumpang Titanic. Penumpang perempuan di kelas 1
memiliki peluang selamat hampir empat kali lipat dibanding laki-laki di kelas 3.
**Rekomendasi:**
Standar keselamatan transportasi modern perlu memastikan akses evakuasi
yang setara tanpa memandang kelas atau status penumpang.
Kesalahan yang Harus Dihindari
Ada beberapa kebiasaan yang sering membuat hasil analisis kurang efektif, dan ini perlu dihindari sejak awal.
⚠️ Kesalahan yang Harus Dihindari:
- Langsung nulis kode tanpa memahami pertanyaannya. Banyak orang yang begitu dapat dataset langsung buka Jupyter dan mulai nulis kode tanpa benar-benar memahami apa yang ingin dijawab. Hasilnya, analisis yang panjang tapi tidak menjawab pertanyaan yang sebenarnya.
- Menjawab pertanyaan dengan angka saja tanpa konteks. Angka 63% tidak bermakna apa-apa tanpa konteks. Selalu beri konteks pada setiap angka yang kamu sajikan.
- Mengabaikan pertanyaan lanjutan. Analyst yang baik tidak berhenti di satu jawaban, tapi terus menggali lebih dalam sampai benar-benar memahami cerita di balik angka-angka tersebut.
Rangkuman Alur Kerja
Dari praktik di atas, inilah alur kerja yang bisa kamu terapkan setiap kali menghadapi pertanyaan bisnis di dunia kerja nyata:
- Terima pertanyaan bisnis → Pahami konteksnya, jangan langsung buka laptop
- Pecah menjadi pertanyaan data → Spesifik, terukur, dan bisa dijawab dengan data
- Tulis query SQL → Ambil data yang relevan dari database secara efisien
- Olah dengan Python → Buat visualisasi dan analisis yang lebih mendalam
- Tulis jawaban → Sampaikan temuan dalam bahasa bisnis yang jelas dan actionable
Kesimpulan
Kemampuan menjawab business question adalah inti dari pekerjaan seorang data analyst. Bukan sekadar bisa menulis query atau menjalankan kode, tapi mampu menghubungkan pertanyaan bisnis dengan data yang tersedia dan menyajikan hasilnya dengan cara yang mendorong keputusan nyata.
Kombinasi SQL dan Python memberikan kekuatan penuh untuk melakukan itu. SQL untuk mengakses dan menyaring data dengan efisien, Python untuk menganalisis dan memvisualisasikannya. Dan yang tidak kalah penting: kemampuan memecah pertanyaan bisnis yang luas menjadi langkah-langkah analisis yang konkret adalah skill yang akan membuat pekerjaanmu selalu relevan dan bernilai di mata perusahaan.
Mulai latih kebiasaan ini dari sekarang. Setiap kali kamu menghadapi dataset, tanya dulu: pertanyaan bisnis apa yang ingin dijawab? Dari situ, segalanya akan menjadi lebih terarah dan hasil kerjamu akan jauh lebih berdampak.
Satu hal yang perlu diingat: skill ini tidak datang dalam semalam. Semakin sering kamu berlatih memecah pertanyaan bisnis dan menjawabnya dengan data nyata, semakin tajam intuisimu dalam memilih query yang tepat, visualisasi yang paling efektif, dan bahasa yang paling mudah dipahami audiensmu. Dan itulah yang pada akhirnya membedakan seorang data analyst yang sekadar bisa mengolah data dengan yang benar-benar memberikan nilai strategis bagi perusahaan tempatnya bekerja.
Penulis : Sandya Gifta Ulimaz Sofiamagaski






