Data Scientist dan R
Halo, selamat datang di course perkenalan DQLab yang menandai perjalanan Anda sebagai Data
Scientist!
Data Scientist sendiri adalah profesi yang sangat menjanjikan saat ini, dimana Anda akan
merubah data-data yang sebelumnya tidak kelihatan berguna menjadi informasi yang berharga.
Untuk mewujudkan hal itu, seorang data scientist tetap memerlukan suatu software yang
penggunaan cukup simpel namun kuat (simple but powerful).
Nah, software tersebut dinamakan R yang merupakan software pemrograman untuk data.
Mari kita pelajari cari tahu lebih banyak mengenai R di pembelajaran berikutnya.
Apa dan kenapa R?
R adalah nama sebuah bahasa pemrograman sekaligus software untuk pengolahan data dan
grafik.
R sangat popular saat ini karena tiga hal berikut:
Banyak pilihan pengolahan data dengan jumlah fitur yang sangat komplit - dari grafik
sampai machine learning.
Lebih cepat dipelajari dan dijalankan untuk mengolah data dibandingkan dengan bahasa
lain.
R bersifat gratis dan open source yang artinya, tidak perlu biaya lisensi yang biasanya
sangat mahal untuk software pengolahan data.
Perusahaan mana yang sudah menggunakan R?
"Tidak ada asap tanpa api", demikian suatu peribahasa yang menyatakan tidak ada rumor tanpa
ada fakta yang menyertai.
R sedemikian populer juga disebabkan karena digunakan perusahaan-perusahaan besar dunia.
Beberapa diantaranya adalah AirBnB untuk data science, Microsoft untuk menambahkan
fungsionalitas di produk-produknya, Uber untuk analisa statistik, Facebook untuk behavior
analysis, dan lain-lain.
Apa dan Kenapa Python – Part 1?
Python adalah bahasa pemrograman yang ditujukan untuk general-purpose programming dan
termasuk dalam kategori high-level programming language.
Sebagai general-purpose programming language, Python digunakan untuk berbagai macam
permasalahan seperti: pengembangan aplikasi web ataupun mobile, data science, dll.
Python masuk ke dalam kategori high-level programming language dikarenakan bahasa
pemrograman Python yang mudah untuk dibaca dan dituliskan oleh manusia.
Bahasa pemrograman Python diciptakan oleh Guido van Rossum dan pertama kali
diperkenalkan pada tahun 1991 sebagai sebuah proyek open-source.
Sifat open-source dari Python mengartikan bahwa setiap orang dapat mengembangkan program
komputer dengan menggunakan bahasa pemrograman Python baik untuk tujuan komersil/non-
komersil.
Apa dan Kenapa Python – Part 2?
Bahasa pemrograman Python bersifat dynamically typed (Python akan secara otomatis
mengubah masukan dari pengguna) dan mendukung berbagai paradigma pemrograman baik
pemrograman secara prosedural, berbasis objek (Object-Oriented), atau pun fungsional.
Selain alasan di atas terdapat beberapa alasan lain untuk menggunakan bahasa pemrograman
Python:
1. Python dikembangkan untuk bersifat extendible yang mengartikan bahwa Python dapat
dikembangkan untuk berbagai macam tugas baik untuk pembuatan aplikasi web atau pun
desktop, proses analisis data, dll.
2. Python memiliki komunitas yang besar yang secara aktif berkontribusi untuk
menyediakan berbagai macam fungsionalitas (third-party libraries). Third-party
libraries yang tersedia dalam bahasa pemrograman Python memungkinkan para
pengembang untuk dapat fokus menyelesaikan permasalahan yang ada. Per Januari 2020,
terdapat 214,922 modul third-party yang dapat kita gunakan secara cuma-cuma.
3. Python terintegrasi dengan baik dengan berbagai macam bahasa pemrograman dan
layanan enterprise. Untuk bagian-bagian yang melibatkan sumber daya komputasi yang
besar, pengembang dapat menggunakan fungsionalitas dalam bahasa pemrograman
lainnya yang bersifat low-level yang telah dikemas ke dalam fungsionalitas Python.
Struktur Program Python - Part 2
Setelah mengerjakan tugas yang diberikan Senja, aku kembali lanjut belajar.
1. Reserved Words: Kumpulan kata-kata yang memiliki makna khusus dalam bahasa
pemrograman Python. Kata False, return, dan for merupakan contoh dari reserved words.
Catatan: Ternyata, aku tidak dapat mendeklarasikan variabel dengan menggunakan
sebuah reserved word!
2. Whitespace: Pada bahasa Python, spasi dan tab memiliki makna khusus untuk menandai
serangkaian blok dalam kode Python. Hal ini akan dijelaskan secara lebih lanjut pada bagian
struktur pemilihan dan struktur pengulangan pada bahasa Python.
3. Comments: Comments merupakan sekumpulan teks yang dituliskan di dalam sebuah program
yang tidak akan mempengaruhi hasil dari sebuah program. Walaupun tidak mempengaruhi hasil
program, comments merupakan salah satu komponen yang penting dalam pengembangan
program. Hal tersebut dikarenakan comments dapat diselipkan di antara sekumpulan statements
yang telah dituliskan, untuk berkomunikasi dengan rekan programmer lainnya dalam satu tim.
Terdapat dua jenis comments di dalam Python, yaitu:
a. single line comment (comments dalam satu baris) seperti pada contoh berikut:
b. multi line comment (comments dalam beberapa baris) yang dapat dituliskan seperti pada
contoh berikut:
Dalam bahasa pemrograman Python, LITERAL berfungsi untuk memberikan nilai
dari sebuah variabel.
Python Variables
Setelah mengetahui konsep sederhana dari sebuah variabel. Aku diminta mencoba
mendeklarasikan beberapa variabel dalam bentuk teks ataupun bilangan, dan melakukan operasi
melibatkan sekumpulan variabel.
Pada bagian ini, aku akan mengkaji variabel dan tipe data secara lebih detil. Pada pertemuan
sebelumnya aku berhasil mendeklarasikan variabel dengan menggunakan ekspresi seperti:
Tips:
Dalam mendeklarasikan sebuah variabel, berilah nama yang mewakili isi dari variabel tersebut.
Sebagai contoh :
Aturan Penamaan Python Variables
Penamaan suatu variabel pada python dapat dikatakan valid selama memenuhi aturan-aturan
berikut:
1. Nama dari sebuah variabel harus dimulai dengan huruf (a-z, A-Z) atau karakter garis
bawah underscore (_) dan tidak dapat dimulai dengan angka (0-9).
2. Variabel hanya boleh mengandung karakter alfabet dan bilangan dan underscore (a-z, A-
Z, 0-9, _)
3. Variabel bersifat case-sensitive yang mengartikan bahwa variabel TINGGI, tinggi,
dan Tinggi merujuk pada tiga variabel berbeda.
Kemudian, selain dapat mendeklarasikan nilai dari suatu variabel secara baris per baris, aku juga
dapat mendeklarasikan beberapa variabel dalam satu baris dengan menggunakan ekspresi seperti:
Tipe Data Dasar: Null, Boolean, Numeric dan Text
1. Null Type: Tipe data null dalam Python digunakan untuk menyimpan nilai kosong atau tidak
ada yang dinyatakan dengan None.
2. Boolean Type: Tipe data boolean atau bool digunakan untuk menyimpan nilai kebenaran
(True, False) dari suatu ekspresi logika.
3. Numeric Type: Tipe data yang digunakan untuk menyimpan data berupa angka. Terdapat dua
macam tipe data numeric, yaitu int untuk menyimpan bilangan bulat (e.g.: 0, 1, 2, 404, -500,
-1000) dan float untuk menyimpan bilangan riil (e.g.: 0.5, 1.01, 2.05, 4.04)
4. Text Type: Pada Python, tipe data string (str) digunakan untuk menyimpan data teks. Tipe
data string dimulai dengan tanda kutip (baik kutip satu/ dua) dan diakhir dengan tanda
kutip. Contoh: "Teks", "Contoh teks menggunakan Python", dan 'Teks pada Python'.
Pendahuluan
Setelah aku berhasil mempelajari detil terkait dengan variables dan data type, sekarang aku akan
mempelajari operator-operator yang tersedia di dalam Python. Di dalam Python, operator terbagi
ke dalam 6 kelompok:
1. Arithmetic operators
2. Assignment operators
3. Comparison operators
4. Logical operators
5. Identity operators
6. Membership operators
Arithmetic Operators
Operator arithmetic digunakan pada tipe data numerik, untuk melakukan operasi matematika
sederhana yang terdiri atas:
Simbol
Keterangan Contoh
Operator
+ Penambahan 3 + 2 akan menghasilkan output: 5
- Pengurangan 4 - 2 akan menghasilkan output: 2
* Perkalian 3 * 2 akan menghasilkan output: 6
/ Pembagian 3 / 2 akan menghasilkan output: 1.5
3 % 2 akan menghasilkan output: 1
dikarenakan 3 tidak habis dibagi 2 dan menyisakan 1
% Modulo/sisa bagi
8 % 2 akan menghasilkan output: 0
dikarenakan 8 habis dibagi 2
** Pangkat 3 ** 2 akan menghasilkan output: 9
3 / 2 akan menghasilkan output: 1
Pembagian dengan
// dikarenakan 1.5 akan menjadi 1 saat dibulatkan ke
pembulatan ke bawah
bawah.
Assignment Operators
Operator assignment digunakan untuk mendeklarasikan nilai secara langsung ke suatu variabel.
Simbol
Keterangan Contoh
Operator
x=3
+= Penambahan x += 2 ekivalen dengan x = x + 2
akan mengubah nilai x menjadi 5
x=3
-= Pengurangan x -= 2 ekivalen dengan x = x - 2
akan mengubah nilai x menjadi 1
x=3
*= Perkalian x *= 2 ekivalen dengan x = x * 2
akan mengubah nilai x menjadi 6
x=3
/= Pembagian x /= 2 ekivalen dengan x = x / 2
akan mengubah nilai x menjadi 1.5
%= Modulo/sisa bagi x=3
x %= 2 ekivalen dengan x = x % 2
akan mengubah nilai x menjadi 1
x=3
**= Pangkat x **= 2 ekivalen dengan x = x ** 2
akan mengubah nilai x menjadi 9
x=3
Pembagian dengan
//= x //= 2 sama dengan x = x // 2
pembulatan ke bawah
akan mengubah nilai x menjadi 1
Comparison Operators
Operator comparison dapat digunakan untuk membandingkan dua buah nilai, berikut
merupakan contoh-contoh operator komparasi.
Simbol
Keterangan Contoh
Operator
33 == 33 akan menghasilkan output: True dikarenakan benar
33 sama dengan 33
== Persamaan
34 == 33 akan menghasilkan output: False dikarenakan 34
tidak sama dengan 33
34 != 33 akan menghasilkan output: True dikarenakan benar
bahwa 34 tidak sama dengan 33
!= Pertidaksamaan
33 != 33 akan menghasilkan output: False dikarenakan 33
sama dengan 33
34 > 33 akan menghasilkan output: True dikarenakan 34
lebih besar dari 33
> Lebih besar dari
33 > 34 akan menghasilkan output False dikarenakan tidak
benar 33 lebih besar dari 34
33 < 34 akan menghasilkan output True dikarenakan benar
33 lebih kecil dari 34
< Lebih kecil dari
34 < 33 akan menghasilkan output: False dikarenakan tidak
benar 34 lebih kecil dari 33
34 >= 33 akan menghasilkan output True dikarenakan 34
lebih besar dari 33
Lebih besar atau 34 >= 34 akan menghasilkan output True dikarenakan 34
>=
sama dengan sama dengan 34
33 >= 34 akan menghasilkan output False dikarenakan 33
tidak lebih besar dari 34 dan tidak sama dengan 34
33 <= 34 akan menghasilkan output True dikarenakan 33
lebih kecil dari 34
Lebih kecil atau 33 <= 33 akan menghasilkan output True dikarenakan 34
<=
sama dengan sama dengan 33
34 <= 33 akan menghasilkan output False dikarenakan 34
tidak lebih kecil dari 33 dan tidak sama dengan 34
Logical Operators
Operator logical digunakan untuk menggabungkan beberapa nilai kebenaran atas suatu
statemen logika.
Simbol
Keterangan Contoh
Operator
x=5
x >= 1 and x <= 10
dan - menerima dua nilai
kebenaran dan akan mengembalikan nilai True
and
mengembalikan nilai benar x = 5
jika keduanya benar
x >= 1 and x >= 4
akan mengembalikan nilai False
or atau - menerima dua nilai x = 3
kebenaran dan
x >= 1 or x <= 2
mengembalikan nilai benar
jika salah satu benar akan mengembalikan nilai True dikarenakan
statemen logika pertama terpenuhi
x=3
x >= 5 or x <= 0
akan mengembalikan nilai False dikarenakan
kedua statemen logika tidak terpenuhi (bernilai
False)
negasi - menerima sebuah x = 7
nilai kebenaran dan
not not(x == 7) akan mengembalikan nilai False
mengembalikan
komplemennya not(x >= 10) akan mengembalikan nilai True
Identity Operators
Operator identitas dapat digunakan untuk membandingkan identitas dari dua buah variabel.
Simbol
Keterangan Contoh
Operator
x = ["Ani", "Budi"]
y = ["Ani", "Budi"]
Menerima dua buah objek
dan mengembalikan nilai a=x
True ketika keduanya
is print(a is x) akan menampilkan nilai True dikarenakan
merujuk pada objek yang
a dan x merujuk ke objek yang sama
sama dan False dalam
kondisi lainnya print(a is y) akan menampilkan nilai False dikarenakan
a dan y tidak merujuk ke objek yang sama meskipun isi
di dalam keduanya sama.
is not Menerima dua buah objek x = ["Ani", "Budi"]
dan mengembalikan nilai
y = ["Ani", "Budi"]
True ketika keduanya
merujuk pada objek yang
a=x
print(a is not x) akan menampilkan
nilai False dikarenakan a dan x merujuk ke objek yang
berbeda dan False jika sama sama
print(a is not y) akan menampilkan
nilai True dikarenakan a dan y tidak merujuk ke objek
yang sama
Pada umumnya, operator identitas sering digunakan bersamaan dengan fungsi type(), fungsi
type() menerima sebuah objek dan mengembalikan tipe data dari objek tersebut. Contoh
penggunaan operator identitas dan fungsi type().
Aku mempraktekkan contoh tutorial yang diberikan Senja dengan live code editor.
akan menampilkan pesan True.
Setelah line di bawah ini selesai dieksekusi, Python akan secara otomatis mengubah tipe data
dari x menjadi float
akan menampilkan pesan False, dan
akan menampilkan pesan True
Membership Operators
Operator keanggotaan (membership) dapat digunakan untuk memeriksa anggota dari sebuah
tipe data sequence/set, operator keanggotaan meliputi:
Simbol
Keterangan Contoh
Operator
x = ["Ani", "Budi", "Cici"]
Menerima sebuah
sequence/set dan objek, y = "Cici"
mengembalikan True ketika
in z = "Dodi"
objek merupakan anggota
dari sequence/set, dan False print(y in x) akan menampilkan nilai True
ketika bukan.
print(z in x) akan menampilkan nilai False
x = ["Ani", "Budi", "Cici"]
Menerima sebuah
sequence/set dan objek, y = "Cici"
mengembalikan True ketika
not in z = "Dodi"
objek bukan merupakan
anggota dari sequence/set, print(y not in x) akan menampilkan nilai False
dan False ketika merupakan.
print(z not in x) akan menampilkan nilai True
Nilai Prioritas Operator dalam Python – Part 2
Dalam bahasa pemrograman Python, tabel berikut mencakup nilai prioritas dan arah pengerjaan
dari setiap operator.
Nilai
Operator Arah pengerjaan Deskripsi
Prioritas
() 10 Kiri ke kanan Grouping
x[index] 9 Kiri ke kanan Mengakses elemen array
** 8 Kanan ke kiri pangkat
+x
7 Kiri ke kanan Tanda bilangan positif dan negatif
-x
*
/ 6 Kiri ke kanan Perkalian Pembagian Modulus
%
+
5 Kiri ke kanan Penambahan Pengurangan
-
is, is not, in, not in
Membership operator Comparison
<=, <, >=, > 4 Kiri ke kanan
Operator
==, !=
not 3 Kiri ke kanan Operator logika negasi (not)
and 2 Kiri ke kanan Operator logika konjungsi (and)
or 1 Kiri ke kanan Operator logika disjungsi (or)
Dari tabel di atas, dapat terlihat bahwa tanda () memiliki nilai prioritas yang paling tinggi. Hal itu
menandakan, jika di dalam suatu statemen yang melibatkan beberapa operator secara sekaligus,
setiap operasi yang berada di dalam tanda () akan dikerjakan terlebih dahulu.
Kemudian, jika terdapat beberapa operasi dalam tanda (), tanda kurung yang berada di sebelah
paling kiri akan dikerjakan terlebih dahulu dikarenakan arah pengerjaan dari tanda () adalah dari
kiri ke kanan.
Sebagai contoh, pada proses deklarasi variabel nilai di bawah ini.
Dari contoh di atas, meskipun operator perkalian (*) memiliki nilai prioritas yang lebih tinggi
dari operator pengurangan (-), tanda () akan membuat Python mengerjakan bagian pengurangan
terlebih dahulu, sebelum akhirnya mengalikan hasil pengurangan dengan bilangan 100.
Python Conditioning for Decision – Part 1
Layaknya bahasa pemrograman lainnya, bahasa pemrograman Python menyediakan statemen
desisi (decision statement) untuk berinteraksi dengan variabel bertipe boolean dan operator
logika. Statemen desisi dalam Python dapat dituliskan dengan menggunakan format berikut,
if conditions:
do_action_1
...
do_action_n
Dengan <conditions> berisikan operator yang mengembalikan nilai kebenaran; ataupun
beberapa operator yang mengembalikan nilai kebenaran, yang digabungkan dengan operator
logika. Melalui sebuah statemen desisi (if statement), <do_action_1> sampai
dengan <do_action_n> akan dijalankan saat <conditions> bernilai True.
Dalam menuliskan serangkaian aksi (<do_action_1>, ... , <do_action_n>) dalam sebuah
statemen if, aku harus mengemas setiap aksi dalam sebuah blok dengan menambahkan indentasi
(jorokan) dari pada aksi.
Aku tidak sabar untuk mempraktekkannya.
Python Conditioning for Decision – Part 2
Aku mempelajari kode yang diberikan Senja, dan mencoba mempraktekkannya ke dalam live
code editor:
Ketika aku menjalankan potongan kode ini, live code editor akan menampilkan output:
Kemudian, untuk melengkapi sebuah statement if, aku bisa menambahkan satu ataupun lebih
statemen desisi elif, untuk melakukan pengecekan kondisi lainnya, saat kondisi dalam statement
if atau elif di atasnya tidak terpenuhi.
Python Primitive Loop Control
Loop Control merupakan salah satu fitur yang mengizinkan penggunanya untuk melakukan
serangkaian aksi, selama suatu kondisi yang telah ditetapkan bernilai benar. Dalam Python,
terdapat dua bentuk primitif dari loop kontrol (struktur pengulangan), yaitu
while loops
for loops
Python while loops – Part 1
Pertama-tama aku mempelajari struktur kontrol while loops menggunakan contoh berikut:
Tugas 1:
Hitung total tagihan secara manual dengan menulis potongan kode berikut ke dalam live code
editor:
Setelah aku konfirmasi potongan kode yang aku buat ke Senja, aku belajar bahwa potongan kode
ini tidak efektif apabila ukuran dari list tagihan bertambah. Tentunya aku akan kewalahan untuk
menuliskan ekspresi penambahan pada setiap elemennya, terutama jika elemennya berjumlah
banyak. Untuk mengatasi hal ini Senja memberikan masukan untuk menggunakan struktur
kontrol while.
Tugas 2:
Rubah potongan kode yang telah dibuat dengan arahan senja, dan tuliskan di dalam live code
editor:
Setelah dijalankan, kedua potongan kode akan mencetak output yang sama yaitu 750000.
Dari di atas, aku belajar bahwa statement while akan terus menjalankan aksi di dalamnya, selama
kondisi yang dituliskan di samping kanan statemen while terus terpenuhi. Melalui penambahan
nilai i sebagai salah satu aksi dalam statemen while, saat nilai i = 4, kondisi dari statemen while
tidak akan terpenuhi dan eksekusi program akan dilanjutkan keperintah print(total_tagihan).
Python while loops – Part 2
Dalam sebuah struktur kontrol pengulangan, aku dapat menggunakan perintah break untuk
keluar dari struktur pengulangan dan perintah continue untuk melanjutkan proses pengulangan
berikutnya.
Tugas:
Praktekkan potongan kode berikut pada live code editor.
Output yang akan dihasilkan adalah -1