DQLAB
DQLAB
R adalah nama sebuah bahasa pemrograman sekaligus software untuk pengolahan data dan
grafik. R sangat popular saat ini karena memiliki jumlah fitur yang sangat besar - mencapai
puluhan ribu fitur.
Mulai dari membaca file teks, membaca database, menghasilkan berbagai grafik, menghasilkan
dashboard yang menarik, sampai ke penggunaan machine learning - semuanya tersedia di R.
Selain itu, R bersifat gratis dan open source. Artinya, dengan R kita tidak perlu biaya lisensi
macam-macam untuk menggunakannya secara bebas dan luas.
Dunia saat ini penuh dengan data, akibat meluasnya penggunaan aplikasi smartphone dan juga
pemakaian sistem pada seluruh perusahaan. Namun data-data ini belum tentu menjadi informasi
yang dibutuhkan oleh organisasi dan bisnis bila tidak bisa diolah dengan baik.
Sekarang muncul sebuah disiplin ilmu untuk menjawab permasalahan tersebut, ilmu yang
mempelajari bagaimana mengolah data menjadi informasi yang berguna, yaitu data science.
Seseorang yang bekerja dengan dibekali ilmu data science dinamakan data scientist - saat ini
merupakan salah satu profesi paling hot menurut LinkedIn.
Untuk membantu pekerjaannya, data scientist perlu dibekali dengan aplikasi yang bagus - R
dengan segala kekayaan adalah jawabannya.
Lebih Mudah Dipelajari (Easier): R relatif lebih mudah dipelajari dibandingkan dengan
bahasa lain, seperti Java, C#, Javascript, dan lain-lain.
Lebih Cepat (Faster): Banyak fungsi R memberikan hasil jauh lebih cepat dibandingkan
dengan aplikasi lain.
Contoh: R dapat menghasilkan berbagai visualisasi yang menarik dalam waktu singkat,
sehingga data scientist dapat jauh lebih produktif dalam memahami data dan
menghasilkan informasi.
Lebih kaya fitur (Richer): Dengan puluhan ribu fitur yang terus berkembang, hampir
semua permasalahan data dapat dijawab oleh R. Sebagai contoh, untuk mengatasi
permasalahan optimasi stok di e-commerce, R memiliki fungsi menghasilkan
rekomendasi product packaging.
Telah terbukti (Proven): R sudah digunakan oleh banyak data scientist perusahaan
besar seperti Anz, Uber, dan Facebook dan memberikan solusi riil. Tidak heran jika
akhirnya dari kisah sukses ini, banyak lowongan data scientist mencamtumkan R sebagai
syarat keterampilan yang harus dimiliki.
Berbekal alasan-alasan tersebut, kami yakin Anda akan lebih percaya diri dengan membekali diri
belajar R!
Terlihat ada sepuluh nama peralatan kantor dengan label DQLab yang ditampilkan. Ini
menunjukkan bahwa interaksi antara SQL dan sistem database telah berjalan dengan baik.
“Begini, Aksara. Pada dasarnya, setiap perusahaan memiliki sistem penyimpanan data,
khususnya untuk perusahaan yang memiliki sistem IT. Sistem penyimpanan ini bukan di
komputer atau laptop dalam bentuk file atau folder, tetapi di suatu sistem database. Nah, sistem
database ini biasanya diakses menggunakan SQL. Sebagai analyst, tugas kita tidak hanya
menganalisa data yang sudah tersedia tetapi juga mampu untuk mengambil, memodifikasi dan
mengakses sendiri data tersebut dari sumber datanya, yaitu dari database,” jelas Senja dengan
rinci. Bahkan, ia juga sempat memberiku buku catatannya padaku.
“Nih coba kamu baca. Selain yang tadi kujelaskan, penguasaan SQL akan membantu perusahaan
pada area berikut,” tunjuk Senja pada salah satu halaman buku catatannya:
Manajemen memerlukan laporan dengan informasi yang semakin beragam, seperti: tren
penjualan bulan ke bulan, pertumbuhan pelanggan, apakah perusahaan mencapai target,
dan lain-lain. Dan ini membutuhkan keahlian SQL yang mumpuni.
Programmer yang membangun sistem aplikasi hampir dipastikan selalu bergantung
kepada sistem database SQL agar aplikasinya berjalan dengan baik. Dengan demikian,
penguasaan SQL adalah hal mutlak.
Bisa meningkatkan kinerja perusahaan karena informasi yang kaya dapat dihasilkan
melalui SQL.
“Jadi, untuk beberapa alasan inilah, maka tidak heran SQL menjadi keterampilan utama yang
diminta oleh banyak perusahaan?” ujarku menyimpulkan.
Akan tetapi, perlu diketahui bahwa tidak semua sistem database mendukung SQL. Hanya sistem
database berbasis relational database management system (RDBMS) yang mendukung bahasa
ini. Untuk RDBMS sendiri akan dijelaskan kemudian.
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.”
Basis data relasional sendiri merupakan suatu jenis database dimana data – data umumnya
disimpan dalam bentuk yang terstruktur berupa tabel (baris dan kolom) dan setiap tabel/ data
yang terdapat dalam database memiliki relasi (relational) satu sama lain. Seperti terlihat pada
gambar berikut
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.
1. MySQL
Open-source SQL database yang cukup populer. Umumnya digunakan untuk
pengembangan aplikasi web.
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 :
Struktur Penyimpanan RDBMS
Sebagai penyimpan data, sistem database relasional memiliki struktur hirarki objek penyimpanan
sebagai berikut:
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).
Jika aku perhatikan, struktur tabel ms_produk terdiri dari empat kolom (column), masing-
masing dengan nama berikut:
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.
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.”
Prefix, dimana kita akan menambahkan nama tabel di depan nama kolom.
Alias, dimana kita memberikan alias atau nama lain untuk tabel maupun kolom.
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.
Pemahaman mengenai prefix dan alias akan mendorong kemampuan identifikasi tabel maupun
kolom yang terlibat untuk perintah SELECT yang lebih kompleks.
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.”
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!
Pendahuluan
Statistika adalah ilmu yang mempelajari cara pengumpulan data, menganalisis data untuk
mendapatkan kesimpulan informasi sampai dapat dijadikan dasar pembuatan kebijakan. Definisi
diatas mirip dengan tugas dari seorang Data Science yaitu mulai dari ekplorasi data, modelling
untuk mendapatakan pola yang tersembunyi dari data kemudian menemukan Insight untuk dasar
kebijakan (data-driven).
Ilmu Statistik fungsinya untuk mengolah data, yang bisa angka maupun bukan angka. Statistik
merupakan pondasi awal sebelum belajar Data Science. Alasannya, banyak tools data science
merupakan pengembangan dari teknik statistik, mulai dari sederhana sampai yang rumit.
Agar dapat memahami konsep-konsep tersebut, pada bab ini juga disertakan satu dataset file
dengan nama data_intro.csv yang akan dijadikan file praktek di R.
Gambaran diatas dapat menjelaskan fungsi dari statistik, yaitu kita dapat mengetahui
karakteristik dari populasi melalui sampel yang kita miliki.
Kemudian untuk mengukur karakteristik dari sampel dan populasi, dengan melihat nilai statistik
dan parameter. Untuk lebih jelasnya dapat dilihat pengertian berikut
Statistik lebih banyak di cari nilainya daripada parameter, alasannya adalah lebih menghemat
biaya,waktu dan tenaga. Selain itu, pengambilan sampel sebenarnya sudah dapat mewakili
populasi.
Dan secara praktis, kita tidak mungkin melakukan pengambilan populasi karena dapat bersifat
merusak. Contoh: pengambilan sample dari produksi seluruh bola lampu untuk menguji
kandungan di dalamnya. Atau pengambilan seluruh populasi udang dari suatu tambak.
Nilai estimasi didapatkan dari data kuantitatif dan kualitatif, untuk mengetahui perbedaanya akan
dijelaskan pada subbab selanjutnya.
Selanjutnya bagaimana untuk mendapatkan nilai karakteristik dari data kuantitatif dan kualitatif,
jawabanya yaitu kita harus menggolongkan kedalam skala pengukuran data.
Nominal: adalah skala yang diberikan hanya sebagai label saja, tidak mengandung
pengertian tingkatan.
Contoh: Jika pria =1 dan wanita = 2, artinya disini 1 dan 2 adalah nominal yang mewakili
pria dan wanita. Disini nilai 2 tidak lebih besar dari nilai 1.
Ordinal: adalah skala yang mengandung pengertian tingkatan.
Contoh: Data kepuasan, 1 = tidak puas, 2 = puas, dan 3 = sangat puas, artinya 1<2<3.
Interval: adalah skala yang mempunyai sifat ordinal dan mengandung jarak(interval).
Misalnya: harga pakaian merk A 100 ribu, harga pakaian merk C 200 ribu, artinya harga
pakian merk A dan C memiliki interval 100 ribu
Rasio: adalah skala yang mempunyai sifat nominal, ordinal, dan interval, serta
mempunyai nilai rasio antar objek yang diukur.
Contoh: harga pakaian merk A 100 ribu, harga pakaian merk C 200 ribu. Rasio harga pakaian A
dengan pakaian C adalah ½. Sehingga dapat dikatakan bahwa harga pakaian A harganya 2 kali
pakaian C.
Dari penjelasan diatas dapat kita simpulkan bahwa data kualitatif dapat kita golongkan menjadi
skala nominal dan ordinal. Sedangkan untuk data kuantitatif maka digolongkan menjadi Interval
dan Rasio.Skala pengukuran nominal dan ordinal pada R di definisikan sebagai factor atau sering
disebut data kategorik sedangkan interval dan rasio di definisikan sebagai numerik.
Estimasi karakteristik
Ukuran pemusatan (mean,modus,median, presentil)
1. Modus adalah nilai yang sering muncul dari suatu distribusi (data nominal-data rasio).
2. Median adalah nilai tengah dari suatu distribusi (data interval dan rasio).
3. Mean adalah rata-rata aritmatik dari suatu distribusi (data interval dan rasio).
Contoh
Modus = 9
Median = 9
Mean = 7,81
Penggunaan Mean dan Median
Dari contoh praktik sebelumnya ada perbedaan hasil Median dan Mean untuk data interval dan
rasio.Maka perlu diperhatikan untuk penggunaanya yaitu: penggunaan mean sebaiknya
digunakan jika tidak ada outlier. Sebaliknya jika ada outlier, maka sebaiknya menggunakan
Median.
Apa itu Outlier ? Outlier adalah data yang jaraknya jauh dari keseluruhan data.
Pada bab ini, analisis deskriptif akan dilakukan pada data sebelumnya dengan tujuan untuk
mendapatkan informasi berikut:
Bagaimana profil pelanggan.
Bagaimana gambaran produk.
Membangun hipotesis.
Kesimpulan Analisis Deskriptif Menggunakan Visualisasi
Dari hasil analisis deskriptif pada praktek sebelumnya kita mendapatkan:
Dari hasil statistik deskriptif diatas kita dapat membangun hipotesis, agar analisis data yang kita
lakukan kaya informasi yang didapatkan. Pembangunan hipotesis berdasarkan intuisi kita
terhadap data yang sudah kita lakukan eksplorasi.
Contoh hipotesis yang dapat kita bangun berdasarkan data diatas adalah sebagai berikut:
Dalam melakukan pengujian statistik kita perlu menggunakan metode statistik uji, yang sering
digunakan yaitu z-test, t-test, chi-square test, dan f-test. Pada bab kali ini kita tidak akan
membahas detail dari setiap statistik uji diatas, tetapi kita akan fokus cara menggunakannya.
Selanjutnya kita harus paham mengenai p-value dan alpha yang akan digunakan dalam statistik
uji.
P-value adalah peluang terkecil dalam menolak Ho. Sedangkan alpha adalah tingkat kesalahan.
Nilai alpha biasanya adalah 1%, 5%, dan 10%. Dalam prakteknya alpha 5% sering digunakan,
karena lebih moderat.
Hipotesis H0 ditolak jika nilai p-value kurang dari alpha (5%), sedangkan jika p-value lebih dari
nilai alpha maka yang H0 diterima. Untuk lebih jelasnya dapat dilihat gambar dibawah ini
P
erbedaan Statistik Deskriptif dan Statistik Inferensia
Dalam statistik ada 2 jenis analisis data, yaitu statistik deskriptif dan statistik inferensi. Uji
hipotesis, yang dijelaskan pada subbab sebelumnya termasuk kedalam statistik inferensia.
Untuk membedakan antara 2 jenis analisis diatas, maka dapat menyimak penjelasan berikut:
a. Statistik Deskriptif adalah statistik yang digunakan untuk analisa data dengan cara
menggambarkan data sampel dengan tanpa membuat kesimpulan untuk data populasi.
Beberapa hal yang dapat dilakukan adalah penyajian data melalui tabel, grafik,
perhitungan modus, median, mean, perhitungan penyebaran data melalui perhitungan
rata-rata dan standar deviasi. Statistik Deskriptif digunakan untuk eksplorasi data.
b. Statistik Inferensia adalah yaitu statistik yang digunakan untuk menganalisis data
sampel dan hasilnya diberlakukan untuk populasi. Beberapa hal yang dapat dilakukan
adalah menguji hipotesis dengan statistik uji, seperti chi-square test, student-t test, f-test,
z-score test.
Statistik Inferensia dapat digunakan untuk konfirmasi dari hasil statistik deskriptif.
Dari penjelasan sebelumnya, kita akan melakukan analisis hubungan antar variable yaitu:
Ada dua cara untuk melihat hubungan antar variabel, yaitu dengan grafik scatter plot dan
analisis korelasi. Grafik scatter plot untuk melihat arah hubungan, poisitif dan negatif.
Sedangkan analisis korelasi adalah untuk menguji/konfirmasi apakah kedua variabel tersebut
memang berhubungan dan sebearapa kuat hubungannya.
Rentang nilai koefisien korelasi antara -1 sampai 1. Korelasi kuat ketika mendakati -1 atau 1,
sedangkan dikatakan lemah jika mendekati 0. Untuk mengetahui ada hubungan atau tidaknya
menggunakan analisis korelasi, dengan hipotesis sebagai berikut
Hipotesis nihil (null): tidak ada hubungan antara kedua variabel.
Hipotesis alternatif: ada hubungan antara kedua variabel.
Untuk mengetahui ada hubungan atau tidaknya menggunakan uji statistik t-test, dengan hipotesis
sebagai berikut
Sebelum memulai menganalisis data harus dilihat summary per tiap variabel.
Analisis Deskriptif digunakan untuk membangun sebuah hipotesis.
Analisis Inferensia digunakan untuk menguji hipotesis.
Pendahuluan
Selamat datang di course Data Visualization with ggplot2, sebuah library tambahan di R yang
sangat populer digunakan untuk visualisasi – populer karena grafik dapat dihasilkan dengan
struktur perintah yang sangat generik tapi jelas dan rapi.
Dan untuk mempelajari ggplot ini disarankan mengikuti pengantar dan prakteknya secara terurut,
bab demi bab. Ini dikarenakan function-function penting akan dicicil sepanjang course sebagai
strategi penyampaian materi – dengan tujuan agar Anda tidak terlalu terbebani dengan materi
yang disampaikan selanjutnya.
Dengan dasar yang diperkenalkan di course ini, diharapkan Anda dapat memiliki kemampuan
untuk memahami dan berkreativitas lebih lanjut dengan ggplot untuk menghasilkan berbagai
grafik yang menarik.
Kesimpulan
Selamat, Anda telah menyelesaikan bab penjelasan tentang ggplot2 dengan materi berikut:
Kita dapat tambahkan komponen grafik lain di atas plot. Dan pada bab ini kita telah
menambahkan:
Selain itu juga ditunjukkan bagaimana sebaiknya objek plot disimpan ke variable. Dengan cara
ini, kita bisa mengolahnya dengan lebih rapi. Terakhir, kita menampilkan informasi plot ini
dengan menggunakan fungsi summary.
Pendahuluan
Plot bisa menerima input data, dan dari data tersebut bisa dipilih beberapa kolom yang akan
"dipetakan" sebagai input untuk komponen visual.
Untuk jelasnya, mari kita lihat data yang dibuka dengan aplikasi Excel pada gambar berikut.
Data ini adalah data luas wilayah dan kependudukan pemerintah provinsi DKI Jakarta.
Pada gambar terlihat banyak kolom informasi seperti TAHUN, NAMA PROVINSI, NAMA
KABUPATEN/KOTA, dll.
Ada tiga kolom yang di-highlight dengan warna kuning, hijau dan biru muda. Ketiga kolom ini
masing-masing akan dipetakan di dalam grafik untuk komponen visual x, y dan color (warna).
Pemetaan data ini disebut dengan aesthetic mapping.
Geom: Bentuk geometri seperti garis (line), batang (bar), titik (point), dan lain-lain.
Stat: Atau suatu fungsi untuk melakukan transformasi statistik terhadap data input.
Contoh paling sederhana adalah transformasi data untuk kepadatan jiwa dari angka
menjadi range atau inverval per lima ribuan. Jadi data input dengan angka 8041 diubah
menjadi interval angka 8001-8500. Transformasi ini disebut dengan bin. Jika kita tidak
ingin mengubah apa-apa, stat yang kita gunakan adalah identity.
Position: Posisi dari beberapa data yang memiliki nilai yang sama. Jika diplot sebagai
scatter plot misalnya, tentunya data-data tersebut akan menumpuk di satu titik. Apakah
perlu ditambahkan nilai acak tertentu sehingga pas digambarkan, terlihat datanya lebih
tersebar? Jika iya, maka ini namanya jitter. Jika kita tidak ingin merubah posisi, maka
kita gunakan identity.
Berikut adalah diagram summary untuk proses menampilkan grafik dengan objek plot dan layer.
Kesimpulan
Layer diperlukan agar grafik sebenarnya dapat digambar di atas objek plot. Layer dibuat dengan
function layer. Parameter function layer yang harus diisi terdiri dari geom, stat dan position.
Dengan pengisian nilai yang berbeda-beda terhadap tiga parameter ini, kita bisa menghasilkan
berbagai macam grafik. Pada bab ini, grafik yang kita hasilkan adalah "scatter plot" dimana
parameter geom bernilai "point", stat dan position bernilai "identity".
Selain menggunakan function layer, tiap objek juga memiliki function yang memiliki prefix
geom_, stat_ , dan position_. Misalkan, untuk geom bertipe point memiliki function geom_point.
Ini dibuat dengan tujuan agar beberapa nilai default untuk tiap-tiap objek sudah dispesifikasikan
di function-function berprefix.
Dan bab ditutup dengan praktek dimana kita bisa menyelesaikan satu grafik lengkap dengan
judul, dan label-label yang lebih mudah dibaca.
Pendahuluan
Histogram adalah tipe visualisasi yang sangat cocok untuk menggambarkan data distribusi dari
jumlah populasi data. Dan dataset kependudukan adalah contoh yang baik dimana kita bisa
menggambarkan distribusi kepadatan penduduk dengan jumlah kelurahan.
Untuk membuat histogram, kita gunakan geom bertipe histogram dan stat bin, yang bisa diwakili
oleh function geom_histogram.
Kesimpulan
Histogram adalah tipe visualisasi yang sangat cocok untuk menggambarkan data distribusi dari
jumlah populasi data. Dan dataset kependudukan adalah contoh yang baik dimana kita bisa
menggambarkan distribusi kepadatan penduduk dengan jumlah kelurahan.
Praktek pada bab ini cukup simpel dan straightforward, dimana kita telah menggunakan function
geom_histogram dengan parameter binwidth untuk menghasilkan grafik distribusi.
Pendahuluan
Line chart atau grafik garis adalah tipe visualisasi yang sangat baik untuk menggambarkan apa
impact (pengaruh) dari perubahan suatu variable dari satu titik ke titik lain atau trend– dan
variable yang paling umum digunakan adalah waktu.
Sebagai contoh, di bidang ekonomi untuk menggambarkan inflasi dari bulan ke bulan. Namun
tentunya tidak harus selalu waktu. Perubahan lain, misalkan pengaruh kecepatan lari dengan
peningkatan detak jantung.
Untuk membuat line chart standar, kita gunakan geom bertipe line dan stat identity, yang bisa
diwakili oleh function geom_line.
Pada bab berikut kita akan gunakan dataset tambahan, yaitu tingkat inflasi bulanan tahun 2017
untuk negara Indonesia dan Singapura. Selain plotting, diperkenalkan juga konsep factoring
untuk menangani data dan grouping untuk grafik.
Dataset Inflasi
Untuk dataset untuk inflasi kita akan "loncat" sedikit ke dataset lain, yaitu dataset inflasi
sepanjang tahun 2017 untuk negara Indonesia dan Singapore. Dataset ini dikumpulkan oleh
DQLab untuk keperluan pelatihan dan dapat didownload di:
https://storage.googleapis.com/dqlab-dataset/inflasi.csv
Terlihat juga bahwa dataset yang kita baca dari file teks ini tidak bisa langsung digunakan begitu
saja karena ada urutan data pada kolom Bulan yang perlu diubah.
Dengan treatment data yang baik dan dengan penambahan aesthetic baru – yaitu grouping – kita
telah menyelesaikan pembuatan line chart sederhana dengan ggplot.
Pendahuluan
Dengan praktek yang telah kita lakukan untuk menghasilkan scatter plot dan line chart, kita
melangkah ke praktek untuk membuat bar chart dan pie chart.
Bar chart atau grafik batang adalah salah satu tipe visualisasi yang sudah umum digunakan yang
sangat baik untuk melakukan perbandingan data multi kategori. Sedangkan pie chart sangat
berguna untuk melihat rasio.
Kita kembali akan menggunakan dataset kependudukan Jakarta, namun telah dirubah untuk
kepentingan kedua chart ini.
Kesimpulan
Pada bab ini, kita telah menyelesaikan teori dan praktek untuk membuat bar chart dan pie chart.
Walaupun kelihatan sederhana, untuk menghasilkan bar chart kita perlu mengerti beberapa
function dan proses sebagai berikut:
Dataset kependudukan yang telah kita gunakan pada bab-bab sebelumnya sangat sulit
digunakan dan perlu ditransformasikan terlebih dahulu.
Geom bar secara default hanya memerlukan aesthetic mapping x, karena secara internal
geom bar ini menggunakan stat = "count".
Jika ingin menghitung agregasi sum, lebih baik kita gunakan variable baru yang
menampung hasil agregasi dengan function aggregate.
Untuk membuat bar chart dengan grouping yang bersisian, kita gunakan aesthetic
mapping fill dan positioning dodge.
Bar chart dan pie chart adalah grafik dari ggplot2 yang memiliki karakteristik yang
hampir sama, kecuali koordinat polarnya.
Dua gambar berikut adalah contoh faceting dari scatter plot tunggal menjadi 6 potongan scatter
plot, dipotong berdasarkan kolom NAMA.KABUPATEN.KOTA.
Kesimpulan
Selamat, Anda telah menyelesaikan seluruh teori pengantar dan praktek mengenai visualisasi
dengan ggplot2.
Sepanjang course ini Anda telah mempelajari fundamental data visualisasi ggplot2 dengan
pembelajaran kunci sebagai berikut:
Konsep rancangan ggplot2 sebagai grammar of graphics yang memecah satu grafik
menjadi komponen-komponen visual.
Komponen plot sebagai kanvas dasar sebelum bisa meghasilkan berbagai macam grafik.
Data dan aesthetic mapping sebagai isi untuk plot dan grafik.
Layer sebagai komponen grafik itu sendiri, yang terdiri dari geom, stat dan position.
Pengunaan layer dan transformasi data yang diperlukan untuk menghasilkan scatter plot,
histogram, line chart, bar chart, dan pie chart.
Faceting untuk memecah grafik sehingga lebih mudah dianalisa.
Selamat Datang
Selamat Datang di course Machine Learning for Marketing: Customer Segmentation, dimana
Anda akan diberikan materi step by step dan langsung praktek dengan berbagai fitur DQLab –
yang memang dirancang untuk membantu Anda agar mudah menyerap materi dan
memanfaatkannya dalam pekerjaan sehari-hari.
Course ini dirancang dengan menggunakan dataset dari kasus skenario nyata di Indonesia. Untuk
course, dataset yang digunakan cukup kecil dengan tujuan Anda dapat lebih mudah memahami
dataset ini dan mampu beradaptasi ketika dihadapkan dataset yang lebih kompleks – seperti
Anda akan temukan di bagian project DQLab.
Pelajari contoh dataset dalam course, karena walaupun kecil tapi mencerminkan
Kerjakan soal dan praktek sesuai dengan irama yang Anda rasa nyaman
Submit soal sesuai dengan permintaan soal
Tekan hint jika Anda merasa kesulitan
Ikut serta dan menyelesaikan project karena memiliki tingkat kompleksitas yang lebih
tinggi dan mencerminkan kasus riil
Kesimpulan
Customer segmentation adalah proses penting yang diperlukan di bisnis untuk mengenal
customer dengan lebih baik
Dengan demikian proses bisnis di marketing (pemasaran) dan CRM (customer
relationship management) bisa dilakukan lebih tajam. Contoh: pesan marketing bisa lebih
personal untuk setiap segment dengan biaya lebih optimal.
Dengan proses yang lebih tajam, performa bisnis berpotensi tinggi menjadi lebih baik
juga.
Untuk menemukan segmentasi yang baik, perlu proses analisa data dari profile customer
yang cukup banyak dan rutin. Ini bisa dibantu dengan algoritma komputer.
Pengantar
Persiapan data adalah langkah pertama yang kita lakukan sebelum menggunakan algoritma
apapun untuk melakukan analisa data.
Ini dikarenakan tiap implementasi algoritma menuntut struktur dan tipe data yang berbeda.
Dan untuk kasus algoritma K-Means yang akan kita gunakan untuk otomatisasi clustering, maka
struktur datanya adalah data.frame atau matrix yang di dalamnya berisi angka semua. Tidak ada
yang boleh bertipe karakter.
Namun pada kasus riil, hal ini tentulah tidak mungkin. Contoh, isi data profesi seperti
"Professional", "Ibu Rumah Tangga" adalah teks. Dan ini perlu dikonversi dulu ke numerik,
namun jika diperlukan tetap bisa kembali mengambil data teks.
Nah, untuk lebih jelasnya. Kita akan lakukan langkah-langkah praktek yang akan kita lakukan
berikut ini adalah untuk mempersiapkan data sebelum dapat digunakan algoritma clustering:
1. Mengenal Contoh File Dataset Pelanggan
2. Membaca File dengan read.csv
3. Vector untuk Menyimpan Nama Field
4. Konversi Data dengan data.matrix
5. Menggabungkan Hasil Konversi
6. Menormalisasikan Nilai Belanja
7. Membuat Data Master
Customer ID: Kode pelanggan dengan format campuran teks CUST- diikuti angka
Nama Pelanggan: Nama dari pelanggan dengan format teks tentunya
Jenis Kelamin: Jenis kelamin dari pelanggan, hanya terdapat dua isi data kategori yaitu
Pria dan Wanita
Umur: Umur dari pelanggan dalam format angka
Profesi: Profesi dari pelanggan, juga bertipe teks kategori yang terdiri dari Wiraswasta,
Pelajar, Professional, Ibu Rumah Tangga, dan Mahasiswa.
Tipe Residen: Tipe tempat tinggal dari pelanggan kita, untuk dataset ini hanya ada dua
kategori: Cluster dan Sector.
NilaiBelanjaSetahun: Merupakan
Terlihat kalau ada kolom yang berisi angka saja, yaitu Umur dan NilaiBelanjaSetahun. Sisanya
diisi data kategori untuku kolom "Jenis Kelamin", "Profesi" dan "Tipe Residen". Sedangkan
"Customer ID" dan "Nama Pelanggan" kita anggap memiliki nilai yang unik untuk tiap baris data
dan mewakili tiap individu.
Karena kolom "Customer ID" dan "Nama Pelanggan" karena unik maka tidak akan dijadikan
variable penentu segmentasi yang kita lakukan, namun sisa kolom lainnya akan digunakan.
Nah dengan contoh dataset inilah, kita akan mencoba mencari jumlah segmentasi yang paling
optimal – dimana antar tiap data pelanggan dalam segmen memiliki kemiripan tinggi –
sepanjang course ini.
Kesimpulan
Selamat, Anda sudah menjalankan praktek-praktek yang menjadi dasar dari semua hal sebelum
penggunaan analisa data, yaitu tahap persiapan data atau data preparation.
Untuk algoritma clustering k-means yang akan kita gunakan di R, maka tahap data
preparationnya adalah menyiapkan data yang di dalamnya harus berisi numerik.
Namun pada banyak kasus riil, data tidak sepenuhnya berisi numerik seperti telah kita lihat
sendiri dan praktekkan dengan contoh dataset yang digunakan pada bab ini dengan langkah-
langkah berikut:
1. Mengenal Contoh File Dataset Pelanggan, dimana kita mengerti dulu bagaimana bentuk
dan isi dari contoh yang digunakan.
2. Membaca File dengan read.csv, dimana kita membaca suatu file teks dengan pemisah
berupa tab menggunakan fungsi read.csv.
3. Vector untuk Menyimpan Nama Field, dimana nama-nama field bisa disimpan dalam
bentuk vector sehingga bisa digunakan berulang ketika kita buturh referensi nama-nama
field yang sama.
4. Konversi Data dengan data.matrix, dimana kita bisa melakukan konversi data dari
kategori teks menjadi numerik.
5. Menggabungkan Hasil Konversi, dimana hasil konversi ini perlu kita gabungkan kembali
ke variable asal agar kita tidak kehilangan referensinya.
6. Menormalisasikan Nilai Belanja, dimana kita merubah skala data nilai belanja dari jutaan
menjadi puluhan dengan tujuan penyederhanaan perhitungan namun tidak mengurangi
akurasi.
7. Membuat Data Master, dimana kita meringkas data kategori dan numerik ke dalam
variable-variable yang kita sebut sebagai data master.
Dengan demikian, kita sudah siap melangkah ke bab berikutnya: Clustering dan Algoritma K-
Means.
Pengelompokan manusia berdasarkan umur: bayi, balita, anak, remaja, dewasa, tua.
Pengelompokan customer berdasarkan daya belinya: regular dan premium.
Pengelompokan makanan berdasarkan kandungan gizinya: biji-bijian, sayuran, buah-
buahan, minyak, protein, dan lain-lain.
Banyak algoritma telah dikembangkan untuk melakukan clustering secara otomatis, salah satu
yang sangat populer adalah K-Means yang akan menjadi fokus utama course kita.
K-means adalah algoritma yang membagi data menjadi sejumlah partisi dengan cara sederhana:
mencari kedekatan dari tiap titik pada suatu cluster dengan sejumlah nilai rata-rata atau mean.
Ada dua konsep kunci yang juga menjadi nama asal k-means:
Algoritma k-means sudah ada di paket dasar R dalam bentuk function bernama kmeans.
Sepanjang bab ini, kita akan menggunakan function ini dan menganalisa output yang dihasilkan.
Kesimpulan
Pada bab ini Anda telah menyelesaikan penggunaan algoritma K-Means dengan function kmeans
dari dataset yang telah dipersiapkan pada bab kedua.
Function kmeans sederhana digunakan tapi outputnya memiliki informasi yang kaya yaitu:
Dengan menganalisa hasil output ini, kita mampu menggabungkan nomor cluster ke data asal.
Selain itu kita juga mengetahui bagaimana kedekatan tiap titik data dari clusternya sehingga
menjadi bekal kita untuk menentukan jumlah cluster yang optimal.
Untuk yang disebutkan terakhir, kita akan lakukan pada bab berikut.
Pengantar
Dari informasi yang dihasilkan oleh function kmeans, metrick Sum of Squares (SS) atau sering
disebut Sum of Squared Errors (SSE) sangat penting untuk dijadikan dasar kita menentukan
jumlah cluster yang paling optimal.
Secara teoritis, berikut adalah beberapa hal yang bisa kita amati dengan SS:
Semakin sedikit jumlah cluster yang dihasilkan maka semakin besar nilai SS.
Begitu juga sebaliknya, semakin banyak jumlah cluster yang dihasilkan maka semakin kecil
nilai SS nya.
Karena sifatnya kuadratik, jika terdapat perbedaan yang cukup signifikan antara tiap
kombinasi cluster maka perbedaan nilai SS akan semakin besar.
Dan seiring bertambahnya jumlah cluster, perbedaan tiap SS ini akan semakin kecil.
Jika dimasukkan ke dalam grafik garis, maka plotting dari total SS untuk tiap cluster berbentuk
sebagai berikut.
Titik paling kiri adalah jumlah SS untuk 1 jumlah cluster, titik kedua adalah untuk 2 jumlah
cluster, dan seterusnya.Perhatikan semakin ke kanan perbedaan jarak antar tiap titik semakin
mengecil.
Grafik garis ini memiliki bentuk seperti siku tangan, dan untuk optimal jumlah cluster biasanya
kita mengambil titik sikunya. Pada contoh di atas kita bisa mengambil 4 atau 5.
Proses pengambilan keputusan berdasarkan plotting siku ini biasa kita sebut Elbow Effect atau
Elbow Method.
Kesimpulan
Dengan memanfaatkan nilai Sum of Squares (SS) atau Sum of Squared Errors (SSE) kita bisa
mengambil keputusan jumlah segmentasi optimal yang kita gunakan.
Ini dilakukan dengan membuat simulasi iterasi jumlah cluster dari 1 sampai dengan jumlah
maksimum yang kita inginkan. Pada contoh di bab ini, kita gunakan angka iterasi 1 sampai
dengan 10.
Setelah mendapatkan nilai SS dari tiap jumlah cluster, kita bisa plotting ke grafik garis dan
menggunakan elbow method untuk menentukan jumlah cluster optimal.
Tahap berikutnya adalah mempaketkan objek kmeans ini dan semua informasi yang berkaitan
sehingga dapat digunakan untuk operasional.
Pengantar
Setelah berhasil mempersiapkan data, menggunakan algoritma kmeans, dan akhirnya bisa
memutuskan jumlah cluster terbaik.
Maka tahapan berikutnya adalah "memaketkan" atau "membungkus" seluruh referensi hasil
konversi dan objek kmeans ini supaya bisa digunakan untuk mengolah data baru dan berguna di
bisnis.
Menamakan cluster dengan karakteristik yang lebih mudah dimengerti. Penamaan ini kita
simpan dalam variable Segmen.Pelanggan.
Menggabungkan variable Segmen. Pelanggan, Profesi, Jenis.Kelamin, Tipe.Residen, dan
Segmentasi ke dalam satu objek bertipe list ke dalam variable Identitas.Cluster.
Menyimpan objek Identitas.Cluster dalam bentuk file sehingga dapat digunakan
kemudian, ini bisa disebut model bagi kita
Kesimpulan
Pada penutup bab ini, Anda sudah menggabungkan seluruh aset yang diperlukan untuk
membentuk suatu model.
Model ini adalah objek yang bisa digunakan untuk mengolah data baru dan terdiri dari objek
kmeans, variable referensi hasil konversi teks ke numerik, dan juga penamaan cluster.
Pengantar
Apa yang dimaksud dengan mengoperasionalkan seperti judul pada bab ini?
Ini artinya objek hasil pengolahan algoritma K-Means dan variable-variable terkait yang kita
hasilkan sebelumnya harus dapat digunakan ke kasus riil sehingga satu siklus lengkap terjadi.
Kasus riil untuk clustering kita adalah cukup sederhana: bagaimana data baru dapat otomatis
membantu tim marketing dan CRM untuk mengidentifikasi segmen mana pelanggan tersebut
berada dengan cepat.
Dengan kecepatan identifikasi, maka organisasi atau bisnis dapat dengan cepat bergerak dengan
pesan marketing yang efektif dan memenangkan persaingan.
Kesimpulan
Praktek terakhir menunjukkan bagaimana data pelanggan baru dianalisa oleh model kita dan
mengeluarkan nomor cluster atau segmen.
Dengan berakhirnya praktek ini, berarti menunjukkan kita sudah menjalani siklus tahap demi
tahap memodelkan dan menggunakan customer segmentation terhadap data kita.
Silahkan lanjutkan ke content berikutnya untuk mendapatkan summary dan apa langkah kita
selanjutnya.
Kesimpulan
Selamat, Anda sudah menyelesaikan rangkaian langkah untuk mengerti penggunaan algoritma k-
means di R dengan tujuan segmentasi pelangggan.
Dimulai dari persiapan data, menggunakan algoritma dan menganalisa hasilnya, mencari jumlah
segmentasi paling optimal, memaketkan model yang dihasilkan agar dapat digunakan dalam
operasional untuk membantu tim marketing melakukan otomatisasi dan menyampaikan pesan ke
target yang tepat.
What Next?
Sejauh ini topik teknis untuk customer segmentation yang kita pelajari adalah mengenai
algoritma K-Means yang diimplementasikan di R.
Perlu diingat bahwa K-Means bukan satu-satunya algoritma clustering, masih banyak algoritma
lain seperti Hierarchical Clustering, Parallelized Hierarchical Clustering, dan lain-lain.
Dan setiap algoritma juga memiliki kekurangan dan kelebihan masing-masing. Namun
pengetahuan dasar dengan berangkat dari satu algoritma yang populer dan menuntaskannya
pastinya akan menjadi bekal berharga.
Untuk selanjutnya, kita akan memperdalam topik penggunaan algoritma clustering ini dalam
bentuk latihan dengan project online. Dan tentunya pada saat project ini, dataset yang diberikan
juga akan jauh lebih kompleks dan besar.
Untuk saat ini, project terkait masih belum tersedia. Kami akan email Anda setelah project
tersedia untuk dikerjakan.
Stay tuned!
Kesimpulan
Dengan memanfaatkan nilai Sum of Squares (SS) atau Sum of Squared Errors (SSE) kita bisa
mengambil keputusan jumlah segmentasi optimal yang kita gunakan.
Ini dilakukan dengan membuat simulasi iterasi jumlah cluster dari 1 sampai dengan jumlah
maksimum yang kita inginkan. Pada contoh di bab ini, kita gunakan angka iterasi 1 sampai
dengan 10.
Setelah mendapatkan nilai SS dari tiap jumlah cluster, kita bisa plotting ke grafik garis dan
menggunakan elbow method untuk menentukan jumlah cluster optimal.
Tahap berikutnya adalah mempaketkan objek kmeans ini dan semua informasi yang berkaitan
sehingga dapat digunakan untuk operasional.
Anda sebagai seorang data scientist, akan ditugaskan membantu Pak Agus untuk
mengidentifikasi paket produk yang menarik untuk dipaketkan sehingga akhirnya bisa
meningkatkan keuntungan dan loyalitas para pelanggan DQLab.id Fashion. Dan untuk
wewujudkan ini, Anda akan menggunakan R dan algoritma aproriari dari paket arules di
sepanjang project ini.