Module 1 - Foundation For Data Science
Module 1 - Foundation For Data Science
DAFTAR ISI............................................................................................................................... 1
Tujuan & Deskripsi Pembelajaran......................................................................................2
Introduction to Data Science............................................................................................. 3
A. Data Mining vs Data Science........................................................................................ 3
B. Data Science dalam Industri......................................................................................... 4
SQL Foundation..................................................................................................................... 5
A. Introduction to SQL........................................................................................................ 5
B. Environment untuk SQL..................................................................................................6
C. Tipe Data SQL................................................................................................................... 6
D. Perintah pada SQL........................................................................................................... 7
E. Constraint pada SQL....................................................................................................... 9
F. Operator pada SQL.........................................................................................................10
G. Klausa pada SQL............................................................................................................. 13
H. Pernyataan pada SQL.................................................................................................... 14
I. Mengelompokkan Data pada SQL...............................................................................19
J. Menggabungkan Data pada SQL...............................................................................20
Python Foundation............................................................................................................. 25
A. Introduction to Python................................................................................................ 25
B. Environment untuk Python......................................................................................... 26
C. Dasar-Dasar Python......................................................................................................26
D. Pernyataan Kondisional............................................................................................... 33
E. Looping............................................................................................................................. 34
F. Python Function..............................................................................................................38
G. Python Modules............................................................................................................. 42
H. Transforming Data........................................................................................................ 43
I. Data Discovery................................................................................................................. 47
Statistics for Data Science................................................................................................ 51
A. Understanding Data and Business............................................................................ 51
B. Distribusi Peluang..........................................................................................................54
C. Teorema Bayes............................................................................................................... 60
D. Inferential Statistics...................................................................................................... 61
E. Central Limit Theorem.................................................................................................. 62
F. Correlation....................................................................................................................... 63
EXERCISE.............................................................................................................................. 66
1
Tujuan & Deskripsi Pembelajaran
Deskripsi:
2
1.1 Introduction to Data Science
Data Science adalah sebuah ilmu yang lahir dari gabungan antara ilmu
statistik dan ilmu komputer. Dengan kata lain, ini adalah ilmu mengekstraksi pola
yang berguna dari kumpulan data dengan menggunakan kekuatan komputer.
Ketika organisasi dan bisnis mulai menyadari bahwa ada nilai yang
tersembunyi dalam sejumlah besar data yang mereka tangkap secara teratur,
mereka mencoba menggunakan teknik yang berbeda untuk mewujudkan nilai
tersebut. Sementara tujuan utamanya adalah untuk menghasilkan gagasan yang
dapat ditindaklanjuti dari data tersebut, dunia teknologi dipenuhi dengan banyak
istilah teknis. Dan di antara semua istilah ini, mungkin istilah yang paling banyak
dibicarakan adalah Data Science dan Data Mining. Meskipun beberapa orang
menggunakannya secara bergantian, mereka memiliki perbedaan yang signifikan.
Inilah tujuh perbedaan paling menonjol antara Data Science dan Data Mining.
Perbedaan terbesar antara Data Science dan Data Mining terletak pada
istilahnya. Data Science adalah bidang yang luas yang mencakup proses
menangkap data, menganalisis, dan memperoleh wawasan darinya. Di sisi lain,
Data Mining mengenai bagaimana menemukan informasi yang berguna dalam
kumpulan data dan memanfaatkan informasi itu untuk mengungkap pola
tersembunyi.
● Perbedaan utama lainnya antara Data Science dan Data Mining adalah
bahwa Data Science adalah bidang multidisiplin yang terdiri dari statistik,
ilmu sosial, visualisasi data, pemrosesan bahasa alami, Data Mining, dll,
sedangkan Data Mining adalah bagian dari Data Science.
● Peran seorang profesional Data Science dapat dianggap sebagai
kombinasi dari peneliti AI, deep learning engineer, machine learning
engineer, atau data analyst. Orang tersebut mungkin dapat melakukan
peran sebagai data engineer juga. Sebaliknya, seorang profesional data
3
mining tidak harus mampu melakukan semua peran ini.
● Perbedaan penting lainnya antara Data Science dan Data Mining terletak
pada jenis data yang digunakan. Biasanya, Data Science berurusan dengan
setiap jenis data baik terstruktur, semi-terstruktur, atau tidak terstruktur.
Di sisi lain, Data Mining sebagian besar berkaitan dengan data terstruktur.
● Jika kamu mempertimbangkan sifat pekerjaan di lapangan, Anda akan
dapat menemukan perbedaan lain. Dalam Data Science, kamu tidak hanya
menemukan pola dan menganalisisnya yang merupakan komponen kunci
dari Data Mining. Sebaliknya, dengan bantuan alat dan teknologi Data
Science, kamu diharapkan dapat memperkirakan peristiwa masa depan
dengan memanfaatkan data saat ini dan data historis.
● Istilah Data Science telah ada sejak lama (sejak tahun 1960-an), sedangkan
Data Mining mulai dikenal pada tahun 1990-an, di antara komunitas basis
data.
● Sementara bidang Data Science berkonsentrasi pada Data Science, bidang
data mining terutama berkaitan dengan proses.
Dalam menangani jumlah data yang terus meningkat, baik data science
maupun data mining memainkan peran penting dalam membantu bisnis dalam
mengidentifikasi peluang dan membuat keputusan yang efektif. Sehingga,
meskipun tujuan kedua bidang ini tetap sama (untuk memperoleh gagasan yang
dapat membantu bisnis berkembang), perbedaan utama terletak pada alat dan
teknologi yang digunakan, sifat pekerjaan, dan langkah-langkah untuk melakukan
tanggung jawab masing-masing untuk mencapai tujuan tersebut.
Data Science merupakan ilmu yang penting karena perusahaan besar dan
kecil sangat membutuhkan peran data. Jika Perusahaan tidak dapat mengolah
data, Perusahaan tidak membantu dalam menjalankan bisnis yang efektif dan
efisien untuk mendapatkan keuntungan.
4
2. Finance
Pencegahan penipuan adalah salah satu tugas bank yang paling vital.
Dengan menerapkan algoritma Data Science bank dapat mendeteksi penipuan
dan menghindari kerugian secara real time. Karena sebagian besar aktivitas
terkait transaksi perbankan dilakukan oleh nasabah melalui platform digital dan
online, memastikan keamanan real-time dan akurasi transaksi menjadi bagian
yang sangat penting.
3. Kesehatan
Salah satu contoh penerapan terbesar data science adalah pada sektor
industri kesehatan. Bahkan, menurut laman Built In, Data Science pertama kali
dikenalkan pada dunia lewat industri kesehatan pada tahun 2008. Pada tahun
tersebut, Google menemukan bahwa mereka dapat memetakan wabah flu secara
real time dengan melacak data lokasi pada pencarian terkait flu.
A. Introduction to SQL
Menurut AWS Amazon, bahasa kueri terstruktur/Structure Query Language
(SQL) adalah bahasa pemrograman untuk menyimpan dan memproses informasi
dalam database relasional. Sebuah database relasional menyimpan informasi
dalam bentuk tabel, dengan baris dan kolom yang mewakili atribut data yang
berbeda serta berbagai hubungan antara nilai data. Kamu dapat menggunakan
syntax SQL untuk menyimpan, memperbarui, menghapus, mencari, dan
mengambil informasi dari database.
SQL ditemukan pada tahun 1970-an berdasarkan model data relasional.
Pada awalnya SQL dikenal sebagai bahasa kueri bahasa Inggris terstruktur
(SEQUEL). Istilah ini kemudian disingkat menjadi SQL. Oracle, yang sebelumnya
dikenal sebagai Perangkat Lunak Relasional (Relational Software), menjadi
vendor pertama yang menawarkan sistem manajemen basis data relasional SQL
komersial.
Adapun beberapa sifat dari SQL:
1. Bersifat case sensitive dan tidak peka terhadap huruf besar maupun
kecil, namun umumnya command SQL ditulis menggunakan huruf
besar.
2. Suatu statement atau pernyataan dalam SQL bergantung kepada
baris teks,
3. Statement atau pernyataan dalam SQL yang anda gunakan
mempengaruhi sebagian besar database.
4. SQL berhubungan dengan kalkulus serta aljabar.
5
B. Environment untuk SQL
https://console.cloud.google.com/bigquery
6
D. Perintah pada SQL
Dalam SQL terdapat beberapa perintah atau biasa disebut SQL commands
atau SQL sublanguage command, sperti DDL, DQL, DML, DCL, dan TCL.
DDL atau Data Definition Language terdiri atas SQL command yang
berfungsi untuk mendefinisikan skema dari suatu database. Lebih lanjut, DDL
digunakan untuk membuat, memodifikasi, dan menghapus struktur database
(termasuk objek database) bukan nilai datanya. Berikut adalah list dari DDL
command:
7
b. DQL (Data Query Language)
DQL digunakan untuk melaksanakan query pada data dalam suatu objek
database. Dengan DQL memungkinkan untuk mengambil data dari database dan
menerapkan beberapa perintah pada data tersebut. List dari DQL command:
DCL digunakan untuk memberikan hak, izin, dan kontrol lainnya dalam
sistem database. Berikut list dari DCL command:
Syntax:
GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER,
ANOTHER_USER;
Syntax:
REVOKE SELECT, UPDATE ON MY_TABLE FROM USER1, USER2;
e. Comments
8
1. Single Line Comments
Suatu kalimat yang dimulai dengan ‘--’ adalah komentar dan tidak
akan dieksekusi.
Syntax:
-- single line comment
-- another comment
2. Multi-Line Comments
Syntax:
/* multi line comment
another comment */
3. In-Line Comments
Syntax:
SELECT * FROM /* Customers; */
Constraint adalah aturan yang dapat diaplikasikan dalam tipe data dalam
tabel sehingga tipe data yang akan disimpan dalam dapat dibatasi dengan
beberapa aturan.
1. NOT NULL: artinya data yang disimpan tidak boleh null atau kosong
dalam suatu kolom.
2. UNIQUE: artinya dalam suatu kolom yang spesifik seluruh nilainya
yang disimpan harus unik tidak boleh sama nilainya satu sama lain.
3. PRIMARY KEY: primary key adalah nilai unik tak kosong yang
digunakan untuk mengidentifikasi setiap baris dalam suatu tabel.
9
4. FOREIGN KEY: foreign key adalah nilai unik tak kosong yang
digunakan untuk mengidentifikasi setiap baris untuk tabel lain.
5. CHECK: membantu memvalidasi nilai dari suatu kolom untuk
memenuhi kondisi tertentu.
6. DEFAULT: artinya jika user tidak mengisi nilai spesifik dalam suatu
kolom, maka akan diisi otomatis dengan nilai default.
Contoh:
Misal ingin dibuat suatu tabel dengan nama tabel “Student” yang berisikan data
terkait nomor ID dengan panjang 6 digit angka, nama maksimal 10 karakter, dan
alamat maksimal 20 karakter serta ID yang dimasukkan menjadi primary key dari
tabel tersebut. Maka dapat ditulis sebagai berikut:
1. Operator Aritmatika
Seperti pada operasi aritmatika pada umumnya, ada beberapa operator
yang dapat digunakan, yaitu:
Catatan:
Operator ‘%’ dapat digunakan untuk mencari database dengan pola
tertentu. Command tersebut dinamakan SQL Like.
10
Berikut beberapa aturan untuk pencarian pola dengan pernyataan LIKE:
Pattern Arti
Contoh:
SELECT SupplierID, Name, Address
FROM Suppliers
WHERE Name LIKE 'Ca%';
2. Operator Pembanding
Operasi pembanding digunakan untuk membandingkan setidaknya dua
nilai tertentu.
a. = sama dengan
b. > lebih dari
c. < kurang dari
11
d. >= lebih dari sama dengan
e. <= kurang dari sama dengan
f. <> tidak sama dengan
Contoh query:
SELECT * FROM MATHS WHERE MARKS=50;
Output: Seluruh nilai dari tabel MATHS dengan nilai MARKS sama dengan
50.
3. Operator Logika
Operator logika digunakan untuk data yang bernilai TRUE atau FALSE.
Contoh query:
SELECT * FROM employee WHERE emp_city =
'Allahabad' AND emp_country = 'India';
Output: Seluruh nilai dari tabel employee dengan nilai emp_city (kota asal
employee) adalah Allahabad dan emp_country (negara asal employee) adalah
India.
4. Operator Spesial
Berikut adalah beberapa operator spesial yang harus diketahui:
Contoh query:
SELECT * FROM employee WHERE emp_id BETWEEN 101 AND 104;
Output: Seluruh nilai dari tabel employee dengan nilai emp_id (ID dari
employee) bernilai dari 101 hingga 104.
12
G. Klausa pada SQL
a. Klausa Where
WHERE digunakan sebagai filter data pada SQL. WHERE nantinya akan
mengambil data berdasarkan kriteria yang diberikan. WHERE juga dapat
digunakan untuk mem-filter data dengan mencocokan pola tertentu.
Syntax:
SELECT column1,column2
FROM table_name
WHERE column_name operator value;
Contoh:
Akan dibentuk tabel dengan beberapa kolom Employee ID, Nama, Negara,
Usia, No. HP. menggunakan syntax berikut:
CREATE TABLE Emp1(
EmpID INT PRIMARY KEY,
Name VARCHAR(50),
Country VARCHAR(50),
Age int(2),
mob int(10)
);
-- Insert some sample data into the Customers table
INSERT INTO Emp1 (EmpID, Name,Country, Age, mob)
VALUES (1, 'Shubham', 'India','23','738479734'),
(2, 'Aman ', 'Australia','21','436789555'),
(3, 'Naveen', 'Sri lanka','24','34873847'),
(4, 'Aditya', 'Austria','21','328440934'),
(5, 'Nishant', 'Spain','22','73248679');
Select * from Emp1;
Untuk mengambil seluruh data karyawan dengan usia lebih dari 21 dapat
digunakan syntax:
SELECT EmpID, Name, Country
FROM Emp1
WHERE Age > 21;
b. Klausa LIMIT
13
Contoh:
SELECT *
FROM Emp1
LIMIT 3;
SQL Limit untuk mengambil sebanyak n data tertinggi atau terendah dapat
digunakan syntax berikut:
SELECT column_list
FROM table_name
ORDER BY expression
LIMIT n-1, 1;
Tabel merupakan gabungan kombinasi dari baris dan kolom. Seperti yang
sudah disinggung sebelumnya, berikut cara membuat tabel.
Syntax:
CREATE table table_name
(
Column1 datatype (size),
column2 datatype (size),
.
.
columnN datatype(size)
);
Contoh:
CREATE TABLE Customer(
CustomerID INT PRIMARY KEY,
CustomerName VARCHAR(50),
LastName VARCHAR(50),
Country VARCHAR(50),
14
Age int(2),
Phone int(10)
);
Output:
Syntax:
//Below query adds data in specific column, (like Column1=Value1)//
Contoh:
-- Insert some sample data into the Customers table
INSERT INTO Customer (CustomerID, CustomerName, LastName, Country, Age,
Phone)
VALUES (1, 'Shubham', 'Thakur', 'India','23','xxxxxxxxxx'),
(2, 'Aman ', 'Chopra', 'Australia','21','xxxxxxxxxx'),
(3, 'Naveen', 'Tulasi', 'Sri lanka','24','xxxxxxxxxx'),
(4, 'Aditya', 'Arpan', 'Austria','21','xxxxxxxxxx'),
(5, 'Nishant. Salchichas S.A.', 'Jain', 'Spain','22','xxxxxxxxxx');
15
Output:
Terkadang ada kalanya nama tabel ingin diubah menjadi nama yang lebih
relevan. Untuk mengubah nama tabel digunakan pernyataan ALTER TABEL.
Syntax:
ALTER TABLE table_name
RENAME TO new_table_name;
● Menambahkan kolom
Contoh:
Dari tabel Students ingin ditambahkan kolom email dengan karakter
bebas dengan panjang maksimal 255 karakter.
ALTER TABLE Students
ADD Email varchar(255);
16
● Menghapus kolom
Contoh:
Dari tabel Students ingin dihapus kolom email.
ALTER TABLE Students
DROP COLUMN Email;
d. Pernyataan UPDATE
Syntax:
UPDATE table_name SET column1 = value1, column2 = value2,…
WHERE condition;
Contoh:
17
Select * from Customer;
Output:
Output:
e. Pernyataan SELECT
Digunakan syntax *
SELECT * FROM table_name;
18
● Untuk mengambil data tertentu
SELECT CustomerName, LastName FROM Customer;
a. GROUP BY
Syntax:
SELECT column1, function_name(column2)
FROM table_name
WHERE condition
GROUP BY column1, column2
ORDER BY column1, column2;
b. ORDER BY
Syntax:
SELECT *
FROM table_name
ORDER BY column_name ASC | DESC
c. Klausa HAVING
Syntax:
SELECT col_1, function_name(col_2)
FROM tablename
WHERE condition
19
GROUP BY column1, column2
HAVING Condition
ORDER BY column1, column2;
Student
StudentCourse
20
a. INNER JOIN
Syntax:
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1
INNER JOIN table2
ON table1.matching_column = table2.matching_column;
Contoh:
SELECT StudentCourse.COURSE_ID, Student.NAME, Student.AGE FROM
Student
INNER JOIN StudentCourse
ON Student.ROLL_NO = StudentCourse.ROLL_NO;
Output:
21
b. LEFT JOIN
LEFT JOIN akan menghasilkan suatu tabel dengan seluruh baris dari tabel
di sisi kiri akan bergabung dan mencocokan dengan baris dari tabel di sisi kanan.
Syntax:
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
Contoh:
SELECT Student.NAME,StudentCourse.COURSE_ID
FROM Student
LEFT JOIN StudentCourse
ON StudentCourse.ROLL_NO = Student.ROLL_NO;
22
Output:
c. RIGHT JOIN
RIGHT JOIN akan menghasilkan suatu tabel dengan seluruh baris dari tabel
di sisi kanan akan bergabung dan mencocokan dengan baris dari tabel di sisi kiri.
Syntax:
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1
RIGHT JOIN table2
ON table1.matching_column = table2.matching_column;
23
Contoh:
SELECT Student.NAME,StudentCourse.COURSE_ID
FROM Student
RIGHT JOIN StudentCourse
ON StudentCourse.ROLL_NO = Student.ROLL_NO;
Output:
d. FULL JOIN
FULL JOIN akan menghasil tabel kombinasi dari LEFT JOIN dan RIGHT
JOIN.
Syntax:
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1
FULL JOIN table2
24
ON table1.matching_column = table2.matching_column;
Contoh:
SELECT Student.NAME,StudentCourse.COURSE_ID
FROM Student
FULL JOIN StudentCourse
ON StudentCourse.ROLL_NO = Student.ROLL_NO;
Catatan: Data yang tidak memiliki pasangan otomatis akan terisi “NULL”
A. Introduction to Python
Python diciptakan pada awal 1990-an oleh Guido van Rossum di Stichting
Mathematisch Centrum, Belanda sebagai penerus bahasa yang disebut ABC.
Nama Python diambil dari sebuah acara televisi yang bernama Monty Python
Flying Circus. Saat ini Python merupakan salah satu bahasa pemrograman yang
paling dicari karena kemudahannya dan dapat digunakan untuk berbagai macam
hal.
25
Berikut beberapa aturan penulisan dalam Python:
https://colab.research.google.com/
C. Dasar-Dasar Python
a. Variable
26
Contoh:
b. Struktur Data
Struktur data memberi kita cara khusus dan khusus untuk menyimpan dan
mengatur data sedemikian rupa sehingga dapat dengan mudah diakses dan
27
dikerjakan secara efisien. Pada artikel ini, Anda akan belajar tentang berbagai
struktur data Python dan bagaimana penerapannya.
c. Tipe Variable
28
2. NOMINAL: mewakili nama kelompok (misalnya merek atau nama spesies).
3. BINER: mewakili data dengan hasil ya/tidak atau 1/0 (mis. KIRI atau KANAN).
d. Tipe Data
range range(5)
frozen set
29
Cara mencari data type:
e. Operasi Python
Perkalian x*y 8
Pembagian x/y 2
Pangkat x**y 16
Operator x=x+2 5
Penugasan
30
Logical operator if x=5 benar
y=3
if x>y:
print(‘benar’)
# False, True
print(OR)
f. Operasi String
g. Operasi List
31
List [] adalah tipe data dalam python yang dapat digunakan untuk
menyimpan berbagai jenis tipe objek. Menggunakan [] dan , untuk memisahkan
objek dalam list. Kita dapat melakukan indexing dan slicing untuk tipe data list.
List juga bersifat mutable yang artinya kita bisa menambahkan nilai baru didalam
list tersebut dengan menggunakan berbagai operasi python.
List juga mendukung nesting, artinya kita bisa memiliki list di dalam list.
contoh list:
32
● Dictionary
D. Pernyataan Kondisional
a. Kondisi If
Contoh:
Dari contoh di atas, digunakan dua variabel a dan b yang mana dapat
dilihat bahwa variabel b lebih besar dari variabel a. Karena kondisi terpenuhi,
maka output dari program ini adalah “b is greater than a”.
Dapat dilihat bahwa penulisan ‘print’ tidak indent sehingga menyebabkan error.
33
b. Kondisi Elif
Kondisi ini menyatakan “Jika kondisi sebelumnya tidak benar, maka coba
kondisi berikutnya”.
Contoh:
Dalam contoh di atas nilai a sama dengan nilai b, karena kondisi pertama
salah (b>a), maka program akan mencoba kondisi kedua (a==b) sehingga
pernyataan “a and b are equal” akan menjadi outputnya.
c. Kondisi Else
Kondisi ini menyatakan bahwa tidak ada yang dapat diambil dari
kondisi-kondisi sebelumnya.
Contoh:
Dalam contoh tersebut, nilai a lebih besar dari nilai b sehingga kondisi
pertama tidak benar, begitu juga dengan kondisi kedua. Sehingga diperoleh
kondisi terakhir yang akan terpenuhi otomatis, yaitu output berupa “a is greater
than b”.
E. Looping
Dalam Python, terdapat dua primitif looping, yaitu while loops dan for
loops.
34
a. While Loop
Contoh:
Output:
b. Break Statement
Contoh:
Output:
35
Program akan berhenti saat i bernilai 3.
c. Continue Statement
Contoh:
Output:
d. For Loop
Contoh:
36
Output:
Contoh:
Output:
Contoh:
Catatan:
37
F. Python Function
Function adalah block kode yang akan tereksekusi hanya jika function
tersebut dipanggil.
Struktur:
def nama_fungsi(variabel_fungsi):
proses
dan
Instruksi program
return(output)
38
Contoh:
Untuk memanggil function, gunakan nama dari fungsi diikuti tanda kurung.
Contoh:
1. Positional Arguments
Jenis input ini merupakan yang paling sering dijumpai ketika kita
menggunakan function. Function akan membaca inputan ini sesuai dengan posisi
peletakan input. Untuk itu, apabila kita menggunakan jenis pemberian argumen
input ini, maka kita harus benar-benar memperhatikan posisi input yang kita
berikan di dalam function. Apabila terbalik, maka dapat memberikan pengaruh
signifikan pada program. Jenis argumen input ini cocok apabila kita ingin
menggunakan function dengan jumlah input yang sedikit, misalkan hanya ada
satu atau dua input. Berikut contoh function yang menggunakan jenis argumen
input ini :
39
2. Keyword Arguments
Jenis input ini menggunakan variabel sebagai inputnya. Untuk jenis
argumen input ini, karena input diwakilkan dengan variabel, maka urutan
pemberian input tidak menjadi masalah, dan function akan dengan mudah
mengenali setiap inputnya. Jenis pemberian input ini cocok untuk kita gunakan
apabila kita ingin memberikan input dalam jumlah yang banyak . Berikut contoh
penggunaan jenis input ini :
3. Default Arguments
Jenis argumen input ini merupakan penggabungan dari Positional
Arguments dan Keyword Arguments. Dalam pemberian input ke function, kita
dapat menuliskan sebuah default variabel ke dalam function, sehingga input
tersebut tidak perlu kita berikan ketika kita ingin memanggil function tersebut.
Berikut ini contoh penulisan jenis argumen ini :
40
kita mengganti nilai default b yang bernilai 8 menjadi b = 21. Sehingga ketika
function ini kita jalankan, maka nilai a yang terbaca adalah 9 dan nilai b yang
terbaca adalah 21.
4. Variable-Length Arguments
Jenis pemberian argumen input ini menggunakan suatu operator *args
dan **kwargs di dalam inputnya. Operator *args berarti “seluruh positional
argument”, oleh karena itu seluruh positional argument yang berada dalam
penulisan input akan dianggap sebagai input. Yang membedakan antara jenis
argumen ini dengan positional argument adalah, kita tidak perlu mendefinisikan
jumlah input yang diberikan pada function ini. Seluruh argumen input yang
diwakilkan sebagai *args ini akan dianggap Python sebagai sebuah list, sehingga
apabila kita melihat contoh dibawah ini, kita bisa memanggil elemen args pada
fungsi pengurangan, layaknya kita memanggil sebuah elemen di dalam list,
dengan memanggil index dari elemen tersebut. Sebagai contoh dari pemberian
argumen *args, kita akan melihat contoh berikut ini :
41
Jenis Variable-Length Argument lainnya yaitu dengan menggabungkan
*args dan **kwargs dalam argumen input. Kita juga dapat menggabungkan kedua
argumen input ini dengan argumen lainnya seperti positional argument dan
keyword argument. Perhatikan contoh penulisan argumen input untuk sebuah
pemrograman kompleks berikut ini :
G. Python Modules
Membuat Module
Contoh:
42
Cara Menggunakan Module
Cara penggunaan module yang telah dibuat sebelumnya yaitu, dengan cara
mengimpor module dan memanggilnya sebagai function.
Contoh:
H. Transforming Data
Notes:
Silakan copy terlebih dahulu notebook di atas! Mengikuti tata cara berikut.
43
b. Apa itu dataframe?
● Excel : pd.read_excel(file_name.xlxs’)
● CSV : pd.read_csv(‘file_name.csv’)
Apabila file yang dituju terdapat di file berbeda dengan file notebook maka harus
menuliskan directory secara lengkap.
Warning: jangan salah tipe file ya!
44
c. Operasi dasar dalam pandas/dataframe
Sampling
● .head(x): mengambil x data teratas dari sebuah dataframe, dimana x
merupakan jumlah baris yang ingin diambil. apabila x tidak dituliskan
default nya 5
● .tail(x): mengambil x data terbawah dari sebuah dataframe, dimana x
merupakan jumlah baris yang ingin diambil. apabila x tidak dituliskan
default nya 5
● sample(x): mengambil x baris data secara acak, dimana x merupakan
jumlah baris yang ingin diambil
45
Selecting/Filtering: df[ df[‘nama_kolom_1’] <operator> value ] dapat
digunakan untuk menyeleksi data sehingga data yang ditampilkan
memenuhi syarat tertentu (operator + value) seperti:
● df['City'] == 'New York City' → akan memunculkan semua kolom di
dataframe dengan city value “New York City”
● df[['City','Category','Customer Name']][(df['City'] == 'New York City') &
(df['Category'] == 'Technology')] → akan memunculkan kolom city,
category, dan customer name di dataframe yang memiliki value city “new
york city” dan category “technology”. *AND(&) disini bisa juga diganti
OR(|) atau keduanya, dan akan mengikuti operasi logical.
● df[ df[‘nama_kolom_1’].isnull()] → akan menampilkan row yang memiliki
nilai null di sebuah kolom
● df[ df[‘nama_kolom’].str.contains(pola) ] → akan menampilkan value
dengan pola tertentu. Dapat menambahkan ^ / $ untuk menentukan letak
pola
Manipulasi kolom
● Menambah kolom baru: dapat dilakukan dengan mendefinisikan sebuah
nama kolom baru dengan value dari kolom lainnya.
● Menghapus kolom: df = df.drop(‘nama_kolom’, axis=1)
● Menghapus row dengan value duplicate: df[ df.duplicated(keep=False) ==
True ]
● Mengubah nama kolom di suatu dataframe: df = df.rename(columns = {
‘nama_lama’ : ‘nama_baru’ } )
● Mengubah beberapa nama kolom di suatu dataframe: df =
df.rename(columns = { ‘nama_lama_1’ : ‘nama_baru_1’,‘nama_lama_2’ :
‘nama_baru_2’, ‘nama_lama_3’ : ‘nama_baru_3’,‘nama_lama_N’ :
‘nama_baru_N’ } )
● Mengubah semua nama kolom: df.columns = [ ‘name_1’, ‘name_2’, …
‘name_N’ ]
Grouping/aggregation
● Mengelompokan dataset berdasarkan satu kolom dan satu statistik:
df.groupby(‘nama_kolom’).agg({‘kolom’ : ‘statistics’})
● Mengelompokan dataset berdasarkan satu kolom dengan beberapa
statistik: df.groupby(‘nama_kolom’).agg({‘kolom’ : [ ‘statistik_1’, ‘statistik_2’,
.....]})
● Mengelompokan dataset berdasarkan beberapa kolom dengan beberapa
statistik: df.groupby(‘nama_kolom’).agg( {‘nama_kolom_1’ : [ ‘statistik_1’,
‘statistik_2’, . . . . . ],‘nama_kolom_2’ : [ ‘statistik_1’, ‘statistik_2’, . . . . . ] . . .
.‘nama_kolom_n’ : [ ‘statistik_1’, ‘statistik_2’, . . . . . ] } )
46
● Reset index data frame: df = df.reset_index()
● Pivot Table: pd.pivot_table(df, index = [col_as_rows], columns =
[col_as_columns], values =[col_as_values])
Menggabungkan dataset
● Append: df.append(df_2)
● Merge: df_1.merge(df_2, left_on = kolom_1,right_on = kolom_2, how =
‘inner’) *inner bisa diganti dengan left/right
I. Data Discovery
Data Discovery adalah proses adalah sebuah istilah yang digunakan para
analis untuk menggambarkan proses pengumpulan data dari berbagai sumber
dengan mendeteksi berbagai pola yang ada. Yang terpenting, Data Discovery
tidak memerlukan untuk membangun model yang rumit. Sebagian besar
perusahaan menggunakan Data Discovery sebagai bagian dari perangkat lunak
intelijen bisnis (BI), yang memberi mereka pandangan lengkap tentang organisasi
mereka dalam dasbor sederhana atau format visual.
47
Ada dua jenis pendekatan utama dalam data discovery adalah seperti
berikut ini.
1. Manual Discovery
Manual data discovery adalah jenis pendekatan pertama dalam
proses Data Discovery. Sederhananya, dalam pendekatan ini, para analis
akan melihat jenis data apa yang ada, di mana data tersebut disimpan, dan
apa yang perlu diberikan kepada perusahaan Perusahaan akan memantau
metadata dan penemuan data lineage untuk mempelajari kategorisasi
data.
Suatu bisnis yang sukses salah satunya dinilai dari ketangkasan nya. Data
Discovery adalah bagian dari dasar ketangkasan bisnis. Data Discovery
memberikan perusahaan pandangan menyeluruh tentang operasional bisnis
perusahaan sehingga mereka dapat lebih memahami dan menangani masalah apa
pun.
48
digunakan untuk membedakan model bisnis perusahaan mereka dari pesaing.
Data Discovery memungkinkan mereka mengubah bisnis mereka menjadi
keunggulan kompetitif, baik dalam bentuk inovasi produk, User experience yang
lebih baik, atau peningkatan efisiensi.
1. Persiapan Data
Data Discovery datang dalam berbagai bentuk, menggabungkan analisis,
pemodelan dan keluaran visual. Untuk mendapatkan nilai maksimal dari proses
tersebut, bisnis perlu memahami interaksi di antara berbagai aliran data mereka.
Dengan bantuan alat penemuan visual dan perangkat lunak intelijen bisnis (BI),
tiga kategori Data Discovery berikut dapat membantu perusahaan mendapatkan
gambaran besar tentang datanya dalam satu format yang mudah dicerna.
2. Analisis Visual
Memvisualisasikan data adalah salah satu cara paling efektif untuk
memahami isi yang ada di dalam nya. Baik dalam bentuk bagan, diagram aliran
data, atau dashboard, visualisasi data membantu mereka yang tidak terlatih
dalam Data Science untuk memahami hubungan di antara perspektif data mereka
dengan cara yang terasa efektif. Misalnya, tim User Interface dapat dengan
mudah mempelajari bagaimana pelanggan menggunakan produk mereka dan
menyesuaikan pekerjaan mereka. Dan tim keuangan dapat memperoleh
gambaran tentang biaya pendapatan untuk setiap departemen dalam bisnis dan
menunjukkan area yang perlu ditingkatkan.
49
e. Proses Data Discovery
Ada beberapa langkah dalam Data Discovery Ini juga merupakan proses
berulang, yang berarti perusahaan dapat terus mengumpulkan, menganalisis, dan
menyempurnakan pendekatan Data Discovery mereka dari waktu ke waktu
dengan memanfaatkan hasil dan saran dari pemangku kepentingan bisnis.
2. Langkah 2: Gabungkan data dari sumber yang relevan. Agar Data Discovery
menjadi efektif, penting untuk menggabungkan dan mengintegrasikan
data dari berbagai sumber karena tidak ada aliran data tunggal yang
mencakup semua nya. Proses ini kadang-kadang disebut sebagai data
crunching.
3. Langkah 3: Bersihkan dan siapkan data. Ini adalah bagian penting dari Data
Discovery. Membersihkan data dan menyiapkannya untuk analisis
membantu perusahaan mengurangi "gangguan" dalam data mereka dan
mendapatkan hasil yang lebih jelas dari analisis data mereka.
50
operasi mereka dan memecahkan permasalahan operasional yang
menghalangi efisiensi.
Semua tahapan tersebut berada dalam satu siklus data science yang
disebut Cross Industry Standard Process for Data Mining (CRISP-DM). Beberapa
proses yang terdapat dalam siklus tersebut antara lain terdiri dari business
understanding, data understanding, data preparation, modeling, evaluation, dan
deployment. Berikut adalah penjelasan mengenai proses - proses apa saja yang
ada pada tiap tahapan siklus data science.
a. Business Understanding
51
Tentukan tujuan bisnis: Pertama-tama kamu harus memahami secara
menyeluruh, dari perspektif bisnis, apa yang benar-benar ingin dicapai
pelanggan (CRISP-DM Guide) dan kemudian tentukan kriteria keberhasilan bisnis.
b. Data Understanding
c. Data Preparation
Secara umum, 80% tahap yang dikerjakan dari sebuah proyek adalah
persiapan data. Tahap ini sering disebut sebagai "data wrangling",
mempersiapkan kumpulan data akhir untuk pemodelan. Dalam data preparation
terdapat lima tugas, diantaranya:
1. Select data: Tentukan kumpulan data mana yang akan digunakan dan
dokumentasikan alasan penyertaan/pengecualian.
2. Clean data: Seringkali ini adalah tugas terlama. Hal yang umum
dilakukan adalah mengoreksi, mengaitkan, atau menghapus nilai
yang salah.
3. Construct data: Dapatkan atribut baru yang akan membantu.
Misalnya, dapatkan indeks massa tubuh seseorang dari bidang
52
tinggi dan berat badan.
4. Integrate data: Buat kumpulan data baru dengan menggabungkan
data dari berbagai sumber.
5. Format data: Format ulang data seperlunya. Misalnya, dapat
mengkonversi nilai string yang menyimpan angka menjadi nilai
numerik sehingga Anda dapat melakukan operasi matematika.
d. Modeling
e. Evaluation
1. Evaluasi hasil: Apakah model memenuhi kriteria keberhasilan bisnis?
Yang mana yang harus kita setujui untuk bisnis ini?
2. Proses peninjauan: Tinjau pekerjaan yang diselesaikan. Apakah ada
yang terlewatkan? Apakah semua langkah dijalankan dengan benar?
Ringkas temuan dan perbaiki apapun jika diperlukan.
3. Tentukan langkah selanjutnya: Berdasarkan hal yang telah dilakukan,
tentukan apakah akan melanjutkan penerapan, mengulangi lebih
lanjut, atau memulai proyek baru.
f. Deployment
53
Pekerjaan organisasi kamu mungkin tidak berakhir di situ. Sebagai
kerangka kerja proyek, CRISP-DM tidak menguraikan apa yang harus dilakukan
setelah proyek. Tetapi jika model akan diproduksi, pemantauan secara rutin dan
penyetelan model sesekali sering diperlukan.
B. Distribusi Peluang
a. Normal Standard Distribution
54
b. Binomial
BI dalam kata BINOMIAL berarti dua. Hal ini merujuk kepada setiap kali
percobaan atau kesempatan, hasil yang mungkin muncul hanya ada dua.
Pertanyaan yang biasanya muncul adalah, kapan kita menggunakan menghitung
peluang dengan menggunakan persamaan distribusi peluang Binomial? Jika
kejadian tersebut memenuhi sifat-sifat di bawah ini maka ketika menghitung
peluang kejadian tersebut terjadi maka persamaan yang digunakan adalah
persamaan peluang dari distribusi binomial. Syarat kejadian binomial, yaitu:
55
Misalkan kita mempunyai satu buah koin yang terdiri atas dua sisi, depan
dan belakang. Misalkan kita mengundi sebanyak 10 kali. Pada undian pertama,
kemungkinan hasilnya hanya sisi depan atau sisi belakang. Pada undian kedua,
kemungkinan hasilnya hanya sisi depan atau sisi belakang. Demikian seterusnya.
Setiap kali mengundi, kemungkinan hasilnya sama, hanya dua yaitu sisi depan
atau sisi belakang. Dari sepuluh kali percobaan, berapa peluang sisi depan
muncul sebanyak dua kali?
Diketahui:
Jumlah percobaan = n = 10.
Peluang sukses = peluang munculnya sisi depan dalam setiap percobaan = p = 0.5.
Peluang gagal = peluang tidak munculnya sisi depan dalam setiap percobaan = q =
1-p = 0.5.
Ditanyakan:
Dari sepuluh kali percobaan, berapa peluang sisi depan muncul sebanyak dua
kali? Atau P (X = 2) -> Yang ditanyakan adalah peluang munculnya sisi depan maka
kejadian yang dianggap sukses adalah jika sisi depan muncul ketika diundi.
Jawaban:
Referensi: Binomial
c. Poisson
Banyaknya percobaan yang terjadi dalam suatu selang waktu atau suatu
daerah tertentu, tidak tergantung pada banyaknya hasil percobaan yang terjadi
pada selang waktu atau daerah lain yang terpisah.
Peluang terjadinya satu hasil percobaan selama suatu selang waktu yang
singkat sekali atau dalam suatu selang yang kecil. Sebanding dengan panjang
56
selang waktu tersebut atau besarnya daerah tersebut dan tidak tergantung pada
banyak hasil percobaan yang terjadi diluar selang waktu dan daerah tertentu.
Peluang bahwa lebih dari satu hasil percobaan akan terjadi dalam selang
waktu yang singkat tersebut atau dalam daerah yang kecil tersebut diabaikan.
Contoh:
57
Referensi: Distribusi Poisson dan Hipergeometrik
d. Hipergeometrik
58
● Suku pembagi (denominator) menyatakan banyak kombinasi yg terjadi jika
dari N obyek diambil n tiap kali.
● Faktor pertama suku terbagi (numerator) menyatakan banyaknya
kombinasi dari obyek berjenis “sukses” yg berjumlah k jika tiap kali diambil
sebanyak x buah.
Contoh :
Suatu jenis suku cadang mobil dijual dalam bentuk paket yg isinya 10 buah.
Produsen merasa bahwa bahwa paket tersebut dinyatakan “dapat diterima”
jikalau tak lebih dari 1 buah suku cadang/paket yg cacat. Untuk memeriksa
kualitasnya dilakukan sampling secara random diambil beberapa paket, dan di
tiap paket dilakukan pemeriksaan terhadap 3 buah suku cadang dari paket yg di
sampel. Kemudian paket dinyatakan baik jika dari 3 yg diperiksa tersebut tidak
satupun yg cacat. Berapakah probabilitasnya seandainya sampel yg diambil
sebenarnya mengandung 2 buah suku cadang cacat (jadi unacceptable), tapi
ketika diambil sampel 3 ternyata tak satupun juga cacat, sehingga salah
mengambil kesimpulan!
Jawab:
Misalkan bahwa ada lot yg benar-benar tak bisa diterima, karena 2 dari 10 isinya
cacat. Kita hitung berapa probabilitasnya bahwa teknik sampling yg kita lakukan
dapat menemukan hal ini.
Misal X adalah banyak suku cadang yg cacat, maka probabilitas bahwa dari 3 suku
cadang yg diambil tak satupun cacat adalah sbb: Jumlah yg cacat di paket k=2, yg
terambil tidak ada, X=0. Isi satu paket N=10, jadi yg baik N-k=10-2=8. Dari paket
diambil n=3 sampel.
Banyaknya kombinasi bahwa dari k=2 cacat di paket tidak terambil sama sekali
(x=0) adalah C2 0 = 2!/(0!2!)=1. Dan kombinasi dari 8 yg cacat diambil 3 buah ada
sebanyak C8 3 = 8!/(3!5!) = 8x7x6/6=56. Sedangkan kalau dari 10 diambil 3 buah
59
item, banyak kombinasi item yg mungkin adalah C10 3 = 10!/7!3! = 10x9x8/6 = 120.
Jadi probabilitas bahwa yg terambil mengandung 3 buah item dan tak satupun
cacat adalah:
C. Teorema Bayes
Statistika Bayes adalah sebuah teori di bidang statistika yang didasarkan
pada interpretasi Bayes tentang probabilitas dimana probabilitas
mengekspresikan tingkat kepercayaan pada suatu peristiwa. Tingkat kepercayaan
dapat didasarkan pada pengetahuan sebelumnya tentang peristiwa tersebut
seperti hasil percobaan sebelumnya, atau didasarkan pada keyakinan pribadi
tentang peristiwa tersebut. Hal ini berbeda dari sejumlah interpretasi
probabilitas lainnya, seperti interpretasi frekuensi yang memandang probabilitas
sebagai batas frekuensi relatif dari suatu peristiwa setelah melakukan percobaan
dalam jumlah yang besar.
60
independen. Artinya kehadiran satu fitur tertentu tidak mempengaruhi yang lain.
Sebagai contoh numerik, bayangkan ada tes narkoba yang akurat 98%,
artinya 98% dari waktu, itu menunjukkan hasil positif yang benar untuk seseorang
yang menggunakan narkoba, dan 98% dari waktu, itu menunjukkan hasil yang
benar-benar negatif. untuk bukan pengguna obat.
D. Inferential Statistics
Statistik inferensial sering digunakan untuk membandingkan perbedaan
antara kelompok perlakuan. Statistik inferensial menggunakan pengukuran dari
sampel subjek dalam eksperimen untuk membandingkan kelompok perlakuan
dan membuat generalisasi tentang populasi subjek yang lebih besar. Ada banyak
jenis statistik inferensial dan masing-masing sesuai untuk desain penelitian dan
karakteristik sampel tertentu. Peneliti harus berkonsultasi dengan banyak teks
tentang desain eksperimental dan statistik untuk menemukan uji statistik yang
tepat untuk eksperimen mereka.
61
Statistik inferensial menggunakan data sampel karena lebih hemat biaya
dan tidak membosankan daripada mengumpulkan data dari seluruh populasi. Ini
memungkinkan seseorang untuk sampai pada asumsi yang masuk akal tentang
populasi yang lebih besar berdasarkan karakteristik sampel. Metode
pengambilan sampel harus tidak bias dan acak agar kesimpulan dan inferensi
statistik dapat divalidasi.
Teorema limit pusat menyatakan bahwa jika kita mengambil sampel yang
cukup besar dari sebuah populasi, rata-rata dari sampel akan berdistribusi secara
normal, bahkan jika populasinya tidak berdistribusi normal atau bahkan jika
populasi berdistribusi Poisson, binomial, atau distribusi lainnya.
dengan:
● X̄ adalah distribusi sampel dari mean sampel
● ~ artinya mengikuti distribusi
● N artinya distribusi normal
● µ artinya mean dari populasi
● σ artinya standar deviasi dari populasi
● n artinya ukuran sampel
62
dari populasi untuk setiap sampel. Ukuran sampel mempengaruhi distribusi
sampel dari mean.
Teorema limit pusat menyatakan bahwa distribusi sampel dari mean akan
selalu mengikuti distribusi normal jika kondisi berikut terpenuhi:
1. Ukuran sampel harus cukup besar. Dalam kondisi ini biasanya sampel
berukuran setidaknya 30.
2. Sampel merupakan independent and identically distributed (i.i.d.) random
variables. Yang mana kondisi ini ditemui saat melakukan random sampling.
3. Distribusi dari populasi mempunyai variansi berhingga.
F. Correlation
1. Korelasi positif: artinya hubungan linear positif. Jika satu variabel nilainya
meningkat, maka variabel lainnya nilainya juga meningkat. Begitu pula
sebaliknya.
63
2. Korelasi negatif: artinya hubungan linear saling bertolak belakang. Jika
satu variabel nilainya meningkat, maka variabel lainnya nilainya justru
menurun.
3. Tidak ada korelasi: artinya variabel bertindak berbeda tidak saling
mempengaruhi.
Koefisien Korelasi
Pearson Correlation
64
dimana:
● r: koefisien korelasi
● x̄: rata-rata variabel x
● ȳ: rata-rata variabel y
● 𝑥𝑖 : sampel variabel x
● 𝑦𝑖 : sampel variabel y
65
EXERCISE
Berikut adalah exercise yang dapat digunakan untuk melatih pemahaman kamu:
1. Jelaskan tentang skill - skill yang diperlukan oleh data scientist untuk
menyelesaikan pekerjaannya!
2. Berikan contoh-contoh penerapan data science pada bidang:
● Finance
● Marketing
● Operation
● Sales
3. Terdapat Data Harga Rumah di Boston, tugas kamu:
● Berikan analisis CRISP-DM sederhana yang bisa kamu dapatkan dari
data tersebut!
● Jelaskan feature - feature data yang ada, dan berikan hipotesis
feature apa yang berpengaruh terhadap harga rumah!
● Apa outcome yang dapat diharapkan dari data tersebut?
66