0% menganggap dokumen ini bermanfaat (0 suara)
67 tayangan

Module 1 - Foundation For Data Science

1. Data science adalah ilmu yang melibatkan statistik dan komputer untuk mengekstrak pola berguna dari data besar menggunakan komputer. 2. Data science berbeda dengan data mining karena data science lebih luas dan melibatkan berbagai disiplin, sedangkan data mining hanya fokus pada proses penemuan pola dalam data. 3. Keduanya bertujuan untuk memperoleh wawasan dari data untuk membantu bisnis, tetapi menggunakan alat dan te
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
67 tayangan

Module 1 - Foundation For Data Science

1. Data science adalah ilmu yang melibatkan statistik dan komputer untuk mengekstrak pola berguna dari data besar menggunakan komputer. 2. Data science berbeda dengan data mining karena data science lebih luas dan melibatkan berbagai disiplin, sedangkan data mining hanya fokus pada proses penemuan pola dalam data. 3. Keduanya bertujuan untuk memperoleh wawasan dari data untuk membantu bisnis, tetapi menggunakan alat dan te
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 67

DAFTAR ISI

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:

1. Memberikan pengenalan umum kepada siswa, teori dasar, pentingnya ilmu


data dalam industri.
2. Memberikan pengetahuan merancang suatu penelitian secara cermat
untuk mengumpulkan data yang bermakna guna menjawab pertanyaan
penelitian yang terfokus, menganalisis secara rinci pola-pola dalam data,
dan menarik kesimpulan dari data yang diamati.
3. Pengenalan Python Foundation, istilah pada Python, library, syntax,
statements and comments, indentation, variables, data types, dan
condition di Python.
4. Input/output Python, loop, diagram alur, pemrograman fungsional, variabel
global & lokal, array, dan library Numpy.
5. Memperkenalkan konsep pemikiran statistik untuk memecahkan masalah
ilmu data dan memberikan siswa konteks data dalam proses bisnis serta
memahami peran data dalam proses bisnis, termasuk Statistik Deskriptif,
Statistik Inferensial, Distribusi, dll.

Adapun tujuan pembelajaran topik ini adalah sebagai berikut:

1. Peserta memahami informasi umum tentang data science, beberapa teori


dasar dan pentingnya data science di berbagai industri.
2. Peserta memiliki pemahaman SQL yang dapat mereka gunakan pada
materi selanjutnya mengenai data science.
3. Peserta memiliki pemahaman tentang Python Foundation yang dapat
digunakan pada materi selanjutnya mengenai Data Science.
4. Peserta memiliki kemampuan berpikir statistik dan mampu
menerapkannya untuk melakukan pendekatan terhadap suatu masalah
serta memahami data dalam konteks bisnis.

2
1.1 Introduction to Data Science

A. Data Mining vs 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.

Saat ini, organisasi di seluruh dunia semakin menyadari pentingnya Data


Science, Artificial Intelligence, dan Machine Learning. Jika perusahaan ingin
tetap kompetitif dan relevan, mereka harus dapat menerapkan Data Science.

B. Data Science dalam Industri


Banyak sekali kegunaan Data Science dalam berbagai macam posisi dalam
industri. Beberapa diantaranya adalah:

1. Marketing and Sales


Penggunaan Data Science dalam pemasaran dan penjualan adalah
rekomendasi produk. Saat kita memeriksa produk di E-commerce dan mereka
memberitahu kita bahwa ada produk lain yang mungkin saja kita sukai, kerja
algoritma yang memberikan rekomendasi produk tersebut menganggap kita
menyukai produk tersebut berdasarkan apa yang sebenarnya dibeli oleh
pelanggan lain yang juga melihat produk tersebut.

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.

1.2 SQL Foundation

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

Dalam proses pembelajaran di Startup Campus, penggunaan interface


yang digunakan dibebaskan sesuai kenyamanan dan kemudahan. Namun ada
environment yang kami sarankan untuk digunakan oleh peserta yakni Google
BigQuery.

Google BigQuery sendiri dapat diakses melalui

https://console.cloud.google.com/bigquery

Untuk tutorial dapat diakses melalui BigQuery overview | Google Cloud

C. Tipe Data SQL

Seperti database pada umumnya, tipe data dalam SQL diklasifikasikan


menjadi 3 kategori:

1. Tipe data numerik


2. Database tanggal dan waktu
3. Database string

Berikut penjelasan singkat dari masing-masing tipe data.

Tipe Data Keterangan

Digunakan untuk menyimpan data dengan


Tipe data numerik nilai numerik. Contoh: INT, BIGINT, DECIMAL,
dan FLOAT.

Digunakan untuk menyimpan data karakter


Tipe data karakter
string. Contoh: CHAR, VARCHAR, dan TEXT.

Digunakan untuk menyimpan data dengan


Tipe data tanggal dan
nilai tanggal dan waktu. Contoh: DATE, TIME,
waktu
dan TIMESTAMP.

Digunakan untuk menyimpan data binary,


Tipe data binary seperti file gambar atau audio. Contoh: BLOB
dan BYTEA.

Digunakan untuk menyimpan data dengan


Tipe data interval interval waktu. Contoh: INTERVAL YEAR,
INTERVAL MONTH, dan INTERVAL DAY.

Digunakan untuk menyimpan nilai dari suatu


Tipe data array
array. Contoh: ARRAY dan JSON.

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.

a. DDL (Data Definition Language)

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:

1. CREATE: digunakan untuk membuat database atau objek database


(table, index, function, views, dll)
2. DROP: digunakan untuk menghapus objek dari database.
3. ALTER: digunakan untuk mengubah struktur database.
4. TRUNCATE: digunakan untuk menghapus semua record dari tabel,
termasuk semua ruang yang dialokasikan untuk record tersebut.
5. COMMENT: digunakan untuk menambahkan komentar ke dalam data
dictionary.
6. RENAME: digunakan untuk mengganti nama objek yang ada dalam
database.

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:

1. SELECT: digunakan untuk mengambil data dari database.

c. DML (Data Manipulation Language)

DML digunakan untuk memanipulasi/memodifikasi data dalam suatu


database. DML sendiri berisi komponen SQL command yang dapat mengontrol
akses ke data dan database. Berikut list dari DLM command:

1. INSERT: digunakan untuk memasukkan data ke dalam tabel.


2. UPDATE: digunakan untuk memperbarui data yang sudah ada dalam
tabel.
3. DELETE: digunakan untuk menghapus record dari database tabel.
4. LOCK: digunakan untuk mengontrol akses tabel.
5. CALL: digunakan untuk memanggil PL/SQL atau JAVA subprogram.
6. EXPLAIN PLAN: digunakan untuk mendeskripsikan akses path ke
data.

d. DCL (Data Control Language)

DCL digunakan untuk memberikan hak, izin, dan kontrol lainnya dalam
sistem database. Berikut list dari DCL command:

1. GRANT: digunakan untuk memberikan user hak istimewa menuju


database.

Syntax:
GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER,
ANOTHER_USER;

2. REVOKE: digunakan untuk mencabut hak istimewa user yang


sebelumnya telah diberikan menggunakan GRANT command.

Syntax:
REVOKE SELECT, UPDATE ON MY_TABLE FROM USER1, USER2;

e. Comments

Comment digunakan untuk memberikan komentar/penjelasan dari


pernyataan SQL atau untuk menghindari pernyataan SQL tereksekusi. Berikut
beberapa cara untuk memberikan komentar:

8
1. Single Line Comments

Suatu kalimat yang dimulai dengan ‘--’ adalah komentar dan tidak
akan dieksekusi.

Syntax:
-- single line comment

-- another comment

SELECT * FROM Customers;

2. Multi-Line Comments

Suatu kalimat yang dimulai dengan ‘/*’ akan dipertimbangkan


sebagai titik mulai dari suatu komentar dan diakhir ketika ‘*/’
ditemukan.

Syntax:
/* multi line comment

another comment */

SELECT * FROM Customers;

3. In-Line Comments

In-line comments adalah perluasan dari multi-line comments, yang


mana memiliki pernyataan sama dengan multi-line comments.

Syntax:
SELECT * FROM /* Customers; */

E. Constraint pada SQL

Constraint adalah aturan yang dapat diaplikasikan dalam tipe data dalam
tabel sehingga tipe data yang akan disimpan dalam dapat dibatasi dengan
beberapa aturan.

Berikut beberapa constraint dalam SQL:

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:

CREATE TABLE Student


(
ID int(6) NOT NULL UNIQUE,
NAME varchar(10),
ADDRESS varchar(20),
PRIMARY KEY(ID)
);

F. Operator pada SQL

Seperti diberbagai bahasa pemrograman lainnya, dalam SQL terdapat


beberapa operator yang dapat digunakan. Berikut beberapa tipe dari operator
pada SQL:

1. Operator Aritmatika
Seperti pada operasi aritmatika pada umumnya, ada beberapa operator
yang dapat digunakan, yaitu:

a. + penjumlahan. Contoh: 1+4=5


b. - pengurangan. Contoh: 3-5=-2
c. / pembagian. Contoh: 6/3=2
d. * perkalian. Contoh: 4*2=8
e. % modulo: output berupa hasil sisa dari pembagian. Contoh: 5%4=1

Catatan:
Operator ‘%’ dapat digunakan untuk mencari database dengan pola
tertentu. Command tersebut dinamakan SQL Like.

SQL Like Syntax


SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;

10
Berikut beberapa aturan untuk pencarian pola dengan pernyataan LIKE:

Pattern Arti

‘a%’ Mencocokan string yang berawalan ‘a’

‘%a’ Mencocokan string yang berakhiran ‘a’

Mencocokan string yang berawalan ‘a’ dan


‘a%t’
berakhiran ‘t’

Mencocokan string yang mengandung


‘%wow%’ substring ‘wow’ di dalamnya dimanapun
posisinya

Mencocokan string yang mengandung


‘_wow%’
substring ‘wow’ di dalamnya pada posisi kedua

Mencocokan string yang mengandung ‘a’ pada


‘_a%’
posisi kedua

Mencocokan string yang berawalan ‘a’ dan


‘a_ _%’
setidaknya terdapat 2 atau lebih karakter

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.

a. AND: bernilai TRUE jika keduanya TRUE.


b. OR: bernilai TRUE jika salah satunya TRUE.
c. NOT: mengubah suatu nilai dari TRUE menjadi FALSE dan sebaliknya.

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:

a. ALL: digunakan untuk mengambil semua record pada pernyataan


SELECT.
b. ANY: digunakan untuk membandingkan suatu nilai dengan setiap
nilai pada suatu list dari hasil query. Bernilai TRUE jika hasil dari inner
query mengandung setidaknya satu row.
c. BETWEEN: digunakan untuk mengetes suatu pernyataan pada range
tertentu.
d. IN: digunakan untuk mengecek suatu nilai dari himpunan nilai yang
dipisahkan dengan koma.
e. EXIST: digunakan untuk mengecek keberadaan dari hasil suatu
subquery.
f. UNIQUE: digunakan untuk mencari setiap baris yang unik dari
spesifik tabel.

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

LIMIT digunakan untuk membatasi pengambilan data yang sangat besar


yang memenuhi kondisi query tertentu.

13
Contoh:

Menggunakan data karyawan sebelumnya, ingin diambil data karyawan 3


teratas, maka dapat ditulis syntax sebagai berikut:

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;

Catatan: data terlebih dahulu harus diurutkan menggunakan pernyatan ‘ORDER


BY’.

H. Pernyataan pada SQL

a. SQL CREATE TABLE

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)
);

Here table_name is name of the table, column is the name of column

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:

Cara di atas akan menghasilkan tabel kosong. Selanjutnya, untuk mengisi


tabel digunakan INSERT INTO, seperti syntax berikut:

Syntax:
//Below query adds data in specific column, (like Column1=Value1)//

Insert into Table_name(Column1, Column2, Column3)


Values (Value1, value2, value3);

//Below query adds data in table in sequence of column name(Value1 will be


added in Column1 and so on)//

Insert into Table_name


Values (Value1, value2, value3);

//Adding multiple data in the table in one go//


Insert into Table_name
Values (Value01, value02, value03),
(Value11, value12, value13),
(Value21, value22, value23),
(ValueN1, valueN2, valueN3)

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:

b. ALTER (RENAME) dalam SQL

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;

Catatan: perlu diperhatikan penggunaan aplikasi yang berbeda


memungkinkan syntax yang berbeda juga.

c. ALTER TABLE - ADD, DROP, MODIFY dalam SQL

Pernyataan ALTER TABLE pada SQL juga dapat digunakan untuk


menambahkan, menghapus, atau memodifikasi kolom pada tabel yang sudah ada.

● Menambahkan kolom

Dapat menggunakan syntax ALTER TABLE ADD


ALTER TABLE table_name
ADD (Columnname_1 datatype, Columnname_2 datatype, …Columnname_n
datatype);

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

Dapat menggunakan syntax ALTER TABLE DROP


ALTER TABLE table_name
DROP COLUMN column_name;

Contoh:
Dari tabel Students ingin dihapus kolom email.
ALTER TABLE Students
DROP COLUMN Email;

d. Pernyataan UPDATE

Pernyataan UPDATE dalam SQL digunakan untuk memperbarui data dalam


suatu tabel yang sudah ada pada database tertentu.

Syntax:
UPDATE table_name SET column1 = value1, column2 = value2,…
WHERE condition;

table_name: name of the table


column1: name of first , second, third column….
value1: new value for first, second, third column….
condition: condition to select the rows for which the
values of columns needs to be updated.

Contoh:

Dibuat tabel dengan syntax berikut:


CREATE TABLE Customer(
CustomerID INT PRIMARY KEY,
CustomerName VARCHAR(50),
LastName VARCHAR(50),
Country VARCHAR(50),
Age int(2),
Phone int(10)
);

-- 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');

17
Select * from Customer;

Output:

Untuk memperbarui nilai tertentu dapat digunakan syntax berikut:


Syntax:
UPDATE Customer SET CustomerName
= 'Nitin' WHERE Age = 22;

Output:

e. Pernyataan SELECT

Digunakan untuk mengambil data tertentu.

● Untuk mengambil seluruh data

Digunakan syntax *
SELECT * FROM table_name;

— asterisks represent all attributes of the table

18
● Untuk mengambil data tertentu
SELECT CustomerName, LastName FROM Customer;

I. Mengelompokkan Data pada SQL

a. GROUP BY

Pernyataan GROUP BY pada SQL untuk menyusun data identik menjadi


suatu grup dengan bantuan beberapa fungsi. GROUP BY sendiri harus dituliskan
bersama dengan pernyataan SELECT. GROUP BY ditulis setelah WHERE sebelum
ORDER BY.

Syntax:
SELECT column1, function_name(column2)
FROM table_name
WHERE condition
GROUP BY column1, column2
ORDER BY column1, column2;

b. ORDER BY

Pernyataan ORDER BY digunakan untuk mengurutkan data. Secara default


ORDER BY akan mengurutkan data secara ascending (dari kecil ke besar). Untuk
mengurutkan data secara descending dapat menambahkan DESC setelah kriteria
tertentu.

Syntax:
SELECT *
FROM table_name
ORDER BY column_name ASC | DESC

c. Klausa HAVING

Klausa HAVING digunakan untuk mem-filter data setelah penggunaan


fungsi dan pengelompokan data, yang tidak bisa didapatkan hanya dengan
menggunakan klausa WHERE yang hanya mem-filter individual baris. Secara
sederhana, HAVING digunakan untuk mem-filter hasil dari GROUP BY. Seperti
GROUP BY, HAVING hanya dapat digunakan bersamaan dengan SELECT. Dalam
query, ORDER BY ditulis setelah penggunaan HAVING, jika ada. HAVING juga
biasa ditulis setelah GROUP BY.

Syntax:
SELECT col_1, function_name(col_2)
FROM tablename
WHERE condition

19
GROUP BY column1, column2
HAVING Condition
ORDER BY column1, column2;

J. Menggabungkan Data pada SQL

Untuk menggabungkan data pada SQL digunakan pernyataan JOIN baik


untuk menggabungkan data atau baris dari dua atau lebih tabel. Ada beberapa
jenis JOIN yang dapat digunakan. Misalkan ada dua jenis tabel yaitu, Student dan
StudentCourse.

Student

StudentCourse

20
a. INNER JOIN

INNER JOIN digunakan untuk menggabungkan seluruh baris dari kedua


tabel selama kondisi terpenuhi.

Syntax:
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1
INNER JOIN table2
ON table1.matching_column = table2.matching_column;

table1: First table.


table2: Second table
matching_column: Column common to both the tables.

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;

table1: First table.


table2: Second table
matching_column: Column common to both the tables.

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;

table1: First table.


table2: Second table
matching_column: Column common to both the tables.

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;

table1: First table.


table2: Second table
matching_column: Column common to both the tables.

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”

Referensi: SQL Tutorial - GeeksforGeeks

1.3 Python Foundation

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.

Adapun beberapa hal yang merupakan keunggulan dari Python adalah:


1. Serbaguna.
2. Memiliki syntax yang simpel mirip seperti bahasa pada umumnya.
3. High End Programming (pemrograman tingkat tinggi).
4. Open source.
5. Bisa digunakan dengan berbagai cara seperti procedural way,
object-oriented way, atau function way.

25
Berikut beberapa aturan penulisan dalam Python:

1. Blok kode Python tidak diakhiri dengan titik koma (;).


2. Dalam Python, pernyataan dinyatakan dalam satu baris, oleh karena
itu akhir pernyataan adalah baris baru (new line).
3. Garis miring terbalik backslash (\) dapat digunakan untuk
memisahkan pernyataan yang menjalankan lebih dari satu baris ()
4. Tanda identasi (spasi) Python sebagai penanda blok.
5. Kutipan digunakan sebagai penanda string dalam Python. Untuk
string multiline, tanda kutip tunggal ('), tanda kutip ganda ("), dan
tanda kutip tiga (""") dapat digunakan.
6. Case-sensitive huruf besar kecil dimana huruf besar dan huruf kecil
memiliki nilai yang berbeda.
7. Penulisan Komentar diawali dengan tanda hash (#)

B. Environment untuk Python

Dalam proses pembelajaran di Startup Campus, penggunaan interface


yang digunakan dibebaskan sesuai kenyamanan dan kemudahan. Namun ada
environment yang kami sarankan untuk digunakan oleh peserta yakni Google
Collaboratory.

Google Collaboratory sendiri dapat diakses melalui

https://colab.research.google.com/

Untuk tutorial dapat diakses melalui Google Colab Tutorial .

C. Dasar-Dasar Python

a. Variable

Dalam Python, kita dapat membuat sebuah variabel dengan cara


menugaskan nilai atau assigning value terhadap sebuah element. Setelah kita
menentukan nilai dari suatu element maka kita dapat memanggil kembali variabel
tersebut jika dibutuhkan. Variable dapat terus diubah dengan cara “meng-assign”
nilai baru.

Beberapa aturan dalam pembuatan variable adalah:

1. Nama variabel tidak boleh diawali oleh angka.


2. Nama variabel hanya bisa terdiri dari karakter alphanumeric dan
underscore (A-z, 0-9, dan _ )
3. Nama variabel bersifat case sensitive. Artinya variabel nama
berbeda dengan Nama atau naMA
4. Nama variabel tidak boleh reserved keywords
https://realpython.com/lessons/reserved-keywords/

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.

Secara umum, struktur data dapat diklasifikasikan menjadi dua jenis -


primitif dan non-primitif. Yang pertama adalah cara dasar untuk
merepresentasikan data yang berisi nilai-nilai sederhana. Yang terakhir adalah
cara yang lebih maju dan kompleks untuk merepresentasikan data yang berisi
kumpulan nilai dalam berbagai format.

Struktur data non primitif selanjutnya dapat dikategorikan ke dalam


struktur bawaan dan struktur yang ditentukan pengguna. Python menawarkan
dukungan implisit untuk struktur bawaan yang mencakup Daftar, Tuple, Set, dan
Kamus. Pengguna juga dapat membuat struktur data mereka sendiri (seperti
Stack, Tree, Queue, dll.) yang memungkinkan mereka memiliki kontrol penuh atas
fungsinya.

c. Tipe Variable

KUANTITATIF: menyatakan jumlah benda (misalnya jumlah rokok dalam satu


bungkus). Dua jenis variabel kuantitatif yang berbeda adalah:

1. CONTINUOUS (a.k.a Ratio): digunakan untuk menggambarkan ukuran dan


biasanya dapat dibagi menjadi unit yang lebih kecil dari satu (misalnya 1,50
kg).
2. DISCRETE (a.k.a Interval): digunakan untuk menggambarkan jumlah dan
biasanya tidak dapat dibagi menjadi unit yang lebih kecil dari satu (mis. 1
batang rokok).

KATEGORIK: mengungkapkan pengelompokan benda-benda (mis. jenis buah


yang berbeda). Tiga jenis variabel kategori adalah:

1. ORDINAL: mewakili data dengan urutan (misalnya peringkat).

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

Tipe Data Contoh Keterangan

Text str (string) “hello world” diapit oleh kutip (‘) /


(“)

Numeric int (integer) 1 atau 1680 bilangan bulat tanpa


decimal

float 1.6 atau 18.9 bilangan decimal

Boolean bool True atau False menyatakan benar


salah

Sequence list [] [1,2,3,4,5] atau Menggunakan


[‘hasan’,’bamban kurung siku
g’]

tuple () (1,2,3,4,5) Menggunakan


kurung

range range(5)

Mapping dict {‘nama’:’daffa’} , menggunakan


{‘jumlah’:5} kurung kurawal

Set set {‘hello’, 3,4,6.6}

frozen set

Python mengikuti built-in data types:

1. Text Type: str


2. Numeric Types: int, float, complex
3. Sequence Types: list, tuple, range
4. Mapping Type: dict
5. Set Types: set, frozenset
6. Boolean Type: bool
7. Binary Types: bytes, bytearray, memoryview
8. None Type: NoneType

29
Cara mencari data type:

e. Operasi Python

Operator Nama Operator x=4 | y=2 Output

Operator Penjumlahan x+y 6


Aritmatika
Pengurangan x-y 2

Perkalian x*y 8

Pembagian x/y 2

Pangkat x**y 16

Modulus (sisa) x//y 0

Operator Sama dengan x==y False


Pembanding
Tidak sama dengan x!=y True

Perbandingan (lebih x>y True


besar/kecil/etc) x>= True
x<y False
x<=y False

Operator x=x+2 5
Penugasan

30
Logical operator if x=5 benar
y=3

if x>y:
print(‘benar’)

AND (kedua syarat x=5 False


harus dipenuhi, maka y=2
TRUE) z=1

x>y AND x<z

OR (salah satu syarat True


dipenuhi maka TRUE) OR = x < 4 or y < 3

# False, True

print(OR)

f. Operasi String

Berikut adalah beberapa operasi untuk tipe data string:

1. Operasi print(“string”); bisa dilakukan dengan single quote (‘) maupun


double quote (“), dan bisa digabungkan apabila membutuhkan quote di
dalam { print(“you’re awesome”) } dan bisa menggunakan \n untuk
memisahkan string ke dalam dua baris.

2. Menghitung jumlah karakter dalam string dapat menggunakan operasi


len(“string”)

g. Operasi List

Berikut adalah beberapa operasi untuk tipe data 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:

● Dapat menggunakan operator len() untuk mengetahui jumlah objek di


dalam list
● Untuk mengakses list dapat menggunakan metode indexing dimana objek
pertama pada list memiliki nomor index 0

Berikut beberapa syntax untuk menambahkan/Mengeluarkan object dalam list

● .append(item) → menambahkan objek di akhir list


● .insert(index,item) → menambahkan objek sesuai dengan index
● .pop(index) mengeluarkan objek pada index tertentu, default -1
● .remove(item) → mengeluarkan item spesifik pada list
○ Tuple
○ Set
○ Dictionary
○ If Else
○ Looping
○ Function

32
● Dictionary

Dictionary digunakan untuk menyimpan suatu nilai data ke suatu


kunci:dengan nilai berpasangan. Dictionary merupakan suatu koleksi yang
berurutan, dapat diubah, tidak dapat diduplikasi.

Contoh penulisan dictionary:

D. Pernyataan Kondisional

Dalam Python, pernyataan logika ditulis dalam pernyataan matematika


menggunakan operasi pembanding.

Kondisi tersebut dapat dituliskan dalam pernyataan if else atau loop.

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”.

Perlu diperhatikan terkait ‘indentation’ dalam penulisan syntax python.


Berikut contoh penulisan yang salah:

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

Dengan menggunakan While Loop, looping akan dieksekusi selama


himpunan pernyataan sebagai kondisi bernilai benar.

Contoh:

Output:

Python akan mengeksekusi selama nilai i kurang dari 6.

b. Break Statement

Dengan menggunakan Break Statement, While loop dapat dihentikan


walau kondisi masih terpenuhi atau benar.

Contoh:

Output:

35
Program akan berhenti saat i bernilai 3.

c. Continue Statement

Dengan menggunakan Continue Statement, iterasi saat ini dapat


dihentikan dan melanjutkan ke tahap selanjutnya.

Contoh:

Output:

Iterasi akan tetap berjalan jika i sama dengan 3.

d. For Loop

Dengan menggunakan For Loop, looping akan dieksekusi berdasarkan


suatu barisan (list, tuple, dictionary, set, atau string).

Contoh:

36
Output:

Looping melalui String

Walaupun string adalah iterable object, namun string mengandung barisan


dari karakter.

Contoh:

Output:

Looping menggunakan range() Function

Untuk melakukan looping melalui himpunan dari spesifik angka, dapat


digunakan range() function. range() function menghasilkan barisan angka yang
dimulai dari 0 secara default dan bertambah setiap 1 angka secara default serta
berakhir pada suatu angka spesifik.

Contoh:

Catatan:

● range(6) artinya dimulai dari 0 sampai 5 bukan 0 sampai 6.


● range(2,6) artinya dimulai 2 sampai 6 (6 tidak termasuk).
● range(2,30,3) artinya dimulai dari 2 sampai 30 dengan penambahan 3.

37
F. Python Function

Function adalah block kode yang akan tereksekusi hanya jika function
tersebut dipanggil.

Cara Membuat Function

Dalam Python, Function didefinisikan menggunakan def.

Struktur:

def nama_fungsi(variabel_fungsi):
proses
dan
Instruksi program
return(output)

● def : Digunakan untuk mendefinisikan sebuah function. Sebuah function


akan selalu diawali dengan kata “def”
● nama_fungsi : Nama function ini yang nantinya akan dipanggil untuk
mewakili seluruh sintaks yang ada didalamnya sebagai sebuah fungsi utuh
● variabel_fungsi : Variabel input yang bisa diberikan kepada function
tersebut.
● return : Return digunakan untuk mengembalikan variabel sebagai sebuah
output. Apabila function tersebut dipanggil, maka nilai output akan
dikembalikan ketika function ini dijalankan.

38
Contoh:

Cara Memanggil Function

Untuk memanggil function, gunakan nama dari fungsi diikuti tanda kurung.

Contoh:

Input pada Function

Seperti yang telah kita ketahui pada pembahasan mengenai function


sebelumnya, bahwa kita bisa memasukkan input ke dalam sebuah function.
Berdasarkan jenis inputnya, kita dapat mengkategorikan beberapa jenis input
berikut ini:

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 :

Pada pemanggilan function penjumlahan pertama kali, kita cukup


menuliskan inputan a = 11 dikarenakan kita melihat pada function penjumlahan
diatas, kita telah menuliskan nilai b = 8. Sehingga ketika fungsi penjumlahan yang
pertama dijalankan, maka function ini akan mengeluarkan nilai 19, dengan a = 11
dan b = 8.

Pada pemanggilan function penjumlahan yang kedua kali, disini kita


menuliskan inputan gabungan antara keyword dan positional argument. Disini

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 :

Jenis Variable-Length Argument lainnya yaitu dengan menggunakan


operator **kwargs, yang memiliki arti “seluruh keyword argument”, oleh karena
itu, seluruh keyword argument yang berada dalam input akan dianggap sebagai
sebuah input. Sama seperti pada penulisan *args, pada jenis penulisan **kwargs
ini kita tidak perlu mendefinisikan berapa banyak jumlah inputnya. Seluruh nilai
input yang merupakan keyword argument akan dianggap sebagai input oleh
function. Seluruh argumen input yang diberikan akan dianggap oleh Python
layaknya seperti sebuah dictionary, 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 dalam pemberian argumen **kwargs, mari kita
lihat 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

Anggaplah module sama dengan code library, sekumpulan himpunan dari


function yang ingin kita masukkan dalam aplikasi.

Membuat Module

Untuk membuat module dengan cara menyimpan code dengan file


ekstensi .py.

Contoh:

Simpan code tersebut dengan nama mymodule.py

42
Cara Menggunakan Module

Cara penggunaan module yang telah dibuat sebelumnya yaitu, dengan cara
mengimpor module dan memanggilnya sebagai function.

Contoh:

H. Transforming Data

Akses notebook disini.

Notes:
Silakan copy terlebih dahulu notebook di atas! Mengikuti tata cara berikut.

a. Apa itu Pandas?

Pandas adalah pustaka perangkat lunak yang ditulis untuk bahasa


pemrograman Python untuk manipulasi dan analisis data. pandas menyediakan
struktur data yang cepat, fleksibel, dan ekspresif yang dirancang untuk membuat
pekerjaan dengan data "relasional" atau "berlabel" menjadi mudah dan intuitif.

43
b. Apa itu dataframe?

Singkatnya, dataframe adalah sebuah tabel dua dimensional yang berisi


data. Terdapat row dan column yang berisikan informasi. Contohnya adalah file
excel/csv.

Cara import data csv/excel ke environment python:

● 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!

Data kemudian dapat dipanggil kembali dengan cara menetapkan variabel.

44
c. Operasi dasar dalam pandas/dataframe

Info mengenai dataframe


● .shape dapat digunakan untuk mengetahui dimensi dari dataframe yang
ada (jumlah row dan column).
● .info: dapat digunakan untuk mengetahui informasi dasar tentang
dataframe seperti jumlah kolom, nama kolom, tipe kolom, dan null value.
● .describe: dapat digunakan untuk mengetahui beberapa statistik numerikal
dasar mengenai dataframe.
● .sort_values(): dapat digunakan untuk mengurutkan dataframe
berdasarkan kolom dan nilai tertentu.
● df['nama_kolom'].value_counts():dapat digunakan untuk menjabarkan
jumlah dari suatu value pada kolom tertentu.

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

Indexing: memanggil beberapa kolom / nilai dalam dataframe


● df.nama_kolom_1→
● df[['nama_kolom_1','nama_kolom_2','nama_kolom_3']]→ memanggil
kolom yang ditulis saja pada dataframe (filter)
● df['nama_kolom_1'][x]→ akses value pada kolom 1 di row x

iloc : index based location

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

Change data type:


● .astype(): merubah tipe data float/int/str
● .str.lower() / .str.upper(): merubah menjadi huruf besar/kecil semua

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

Exporting dataset to CSV/Excel


● df.to_csv(‘nama_file.csv’, index=False)
● df.to_excel(‘nama_file.xlsx’, index = False)

I. Data Discovery

a. Apa itu 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.

b. Pendekatan dalam Data Discovery

Dalam proses nya, data discovery dikategorikan menjadi dua jenis


pendekatan. Masing-masing pendekatan menjelaskan proses yang berbeda
untuk memahami kumpulan data untuk integrasi bisnis dan analisis data.
Langkah-langkah melaksanakannya juga harus menggabungkan pencarian teknis
dari tools terbaik dengan keahlian materi para pakar dan analis.

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.

Data stewards, atau pengurus data, adalah mereka yang


bertanggung jawab untuk menangani aturan serta standar dokumen aset
data yang akan melakukan proses data discovery.

Selanjutnya, dalam pendekatan ini, para Data scientist akan


membuat konsep peta agar mereka dapat memahami semua data yang
diperoleh suatu perusahaan.

2. Smart Data Discovery


Seiring berkembangnya zaman, data discovery semakin
memudahkan para data scientist dalam melakukan penemuan data. Pada
akhirnya, proses dalam perusahaan semakin efektif dan efisien. Smart data
discovery merupakan sebuah pendekatan baru, di mana proses data
scientist akan dibantu oleh proses machine learning dan teknologi lainnya.
Analis akan memanfaatkan augmented intelligence untuk mempersiapkan,
membuat konsep, mengintegrasikan, dan menyajikan data melalui visual,
pola dan wawasan yang tersembunyi.

Pendekatan ini juga mendorong perusahaan untuk


mempertimbangkan bahwa seluruh analisis dari kumpulan data. Untuk itu,
perusahaan dan analisis akan memanfaatkan mesin untuk menerima
pertanyaan, melakukan pemrosesan dalam black box, dan menghasilkan
jawaban yang masuk akal.

c. Mengapa Data Discovery Penting?

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.

Data Discovery terus tumbuh dalam popularitas karena lebih banyak


perusahaan memperlakukan data mereka seperti aset. Informasi yang
dikumpulkan perusahaan tentang customer dan operasional mereka yang

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.

d. Kategori Data Discovery

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.

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.

3. Analisis Visual Lanjutan


Analisis lanjutan yang dipandu menggabungkan deskripsi dan visual untuk
memberikan gambaran lengkap tentang data perusahaan. Jika keluaran analitik
berfokus pada deskripsi kecil dari data itu sendiri, analitik terpandu
memungkinkan bisnis untuk melihat implikasi yang lebih besar dari upaya Data
Discovery mereka, termasuk hubungan antara perspektif data science yang
berbeda. Analisis lanjutan yang dipandu sangat berharga untuk bisnis yang
menavigasi peralihan ke digital area, di mana integrasi data web dengan aliran
data yang ada sangat penting untuk pengambilan keputusan strategis.

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.

1. Langkah 1: Identifikasi kebutuhan. Data Discovery yang efektif dimulai


dengan tujuan yang jelas, Ini berarti mempertimbangkan jenis data apa
yang akan berguna untuk diketahui, sambil tetap terbuka terhadap
wawasan tak terduga Misalnya, distributor barang konsumen yang pada
industri FMCG mungkin memutuskan untuk memeriksa kembali data
logistiknya dalam upaya mengurangi limbah makanan selama pengiriman.
Atau industri perbankan mungkin menganalisis data webnya dengan
tujuan untuk menganalisis customer mereka.

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.

4. Langkah 4: Analisis data. Dengan informasi yang digabungkan dari


beberapa departemen, terintegrasi dengan data eksternal dan dibersihkan
untuk analisis, perusahaan dapat memperoleh gambaran lengkap tentang

50
operasi mereka dan memecahkan permasalahan operasional yang
menghalangi efisiensi.

5. Langkah 5: Rekam pembelajaran dan ulangi. Data Discovery bukanlah


proses satu kali; itu adalah komitmen untuk perbaikan terus-menerus.

1.4 Statistics for Data Science

A. Understanding Data and Business

Seringkali, ketika berbicara tentang Data Science, Sepertinya tidak ada


yang bisa memberikan penjelasan yang tepat tentang bagaimana keseluruhan
proses berjalan. Mulai dari pengumpulan data, analisis hingga penyajian hasilnya.

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

Fase business understanding berfokus pada pemahaman tujuan dan


persyaratan proyek. Selain itu tugas lain dalam fase ini adalah aktivitas
manajemen proyek dasar yang bersifat universal untuk sebagian besar proyek

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.

1. Menilai situasi: Menentukan ketersediaan sumber daya, persyaratan


proyek, menilai risiko dan kontingensi, dan melakukan analisis
biaya-manfaat.
2. Tentukan tujuan Data Science: Selain menentukan tujuan bisnis,
kamu juga harus menentukan seperti apa kesuksesan dari perspektif
Data Science.
3. Menghasilkan rencana proyek: Pilih teknologi dan alat dan tentukan
rencana terperinci untuk setiap fase proyek. Banyak orang yang
terburu - buru dalam melakukan proses business understanding.
Padahal, tahapan ini adalah pondasi dari tahapan - tahapan data
science itu sendiri

b. Data Understanding

Berikutnya adalah tahap Pemahaman Data. Tahap ini memfokuskan pada


identifikasi, pengumpulan, dan analisis kumpulan data yang dapat membantu
mencapai tujuan proyek. Tahap ini juga memiliki empat tugas:

1. Pengumpulan data: Dapatkan data yang diperlukan dan (jika perlu)


masukkan ke dalam alat analisis kamu.
2. Penjelasan data: Periksa data dan dokumentasikan properti
permukaannya seperti format data, jumlah catatan, atau identitas.
3. Explore data: Gali data lebih dalam. Query, visualisasikan, dan
identifikasi hubungan antar data.
4. Verifikasi kualitas data: Seberapa bersih/kotor datanya?
Dokumentasikan masalah kualitas apa pun.

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

Langkah pertama yang perlu dilakukan dalam memodelkan data adalah


mengurangi dimensi kumpulan data. Tidak semua fitur atau nilai penting untuk
memprediksi model. Ada beberapa hal yang dapat kita lakukan dalam pemodelan.
Salah satu contoh dari model adalah model untuk melakukan klasifikasi untuk
membedakan email yang terima sebagai "Inbox" dan "Spam" menggunakan
regresi logistik. Kita juga dapat memperkirakan nilai menggunakan regresi linier.
Selain itu, kita juga dapat menggunakan pemodelan untuk mengelompokkan
data untuk memahami logika di balik suatu cluster.

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

Sebuah model berguna apabila para pengguna dapat mengaksesnya.


Kompleksitas fase ini sangat bervariasi. Fase terakhir ini memiliki empat tugas:

1. Plan Development: Kembangkan dan dokumentasikan rencana untuk


menerapkan model.
2. Plan monitoring and maintenance: Kembangkan rencana
pemantauan dan pemeliharaan yang menyeluruh untuk menghindari
masalah selama fase operasional (atau fase pasca proyek) suatu
model.
3. Produce final report: Tim proyek mendokumentasikan ringkasan
proyek yang mungkin mencakup presentasi akhir hasil Data Science.
4. Review project: Lakukan retrospeksi proyek tentang apa yang
berjalan dengan baik, apa yang bisa lebih baik, dan bagaimana
meningkatkannya di masa depan.

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

Distribusi normal standar biasa disebut distribusi-z, adalah distribusi


normal dimana nilai mean 0 dan standar deviasi 1. Sebarang distribusi normal
dapat distandarisasi dengan mengkonversi nilai menjadi z score. Z score
menandakan berapa banyak standar deviasi dari mean setiap nilai.

Cara menghitung nilai z score

Untuk menstandarisasi nilai dari distribusi normal dapat diubah menjadi


nilai z-score menggunakan rumus berikut:

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:

Percobaan dilakukan sebanyak n kali.

Setiap kali percobaan mempunyai dua kemungkinan hasil.

Kemungkinan hasil dari masing-masing percobaan sama.

Hasil yang diperoleh pada percobaan pertama tidak akan mempengaruhi


hasil yang diperoleh pada percobaan-percobaan yang lain (saling independen)

Untuk persamaan hitung peluang dapat dilihat sebagai berikut. Misalkan X


adalah variabel random diskret. Maka peluang dari X adalah:

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

Distribusi poisson merupakan suatu distribusi untuk peristiwa yang


probabilitas kejadiannya kecil, di mana kejadian tergantung pada selang waktu
tertentu atau di suatu daerah tertentu dengan hasil pengamatan berupa variabel
diskrit dan antar variabel prediktor saling independen. Selang waktu tersebut
dapat berupa beberapa saja panjangnya, misalnya semenit, sehari, seminggu,
sebulan bahkan setahun. Daerah tertentu yang dimaksudkan dapat berupa suatu
garis, suatu luasan, suatu volume, atau mungkin sepotong bahan. Distribusi
Poisson memiliki ciri – ciri sebagai berikut:

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.

Variabel Random Poisson

Percobaan yg menghasilkan variabel random X yg menyatakan banyaknya


outcome selama interval waktu tertentu atau dalam “area” atau “luas” tertentu
dinamakan percobaan Poisson.

Contoh:

X : banyak panggilan telepon per jam

X : banyak hari-hari sekolah tutup karena bencana alam dalam setahun

X : banyaknya penundaan pertandingan bola karena hujan dalam semusim


pertandingan

X : banyak tikus per hektar

X : banyaknya kesalahan ketik per halaman

Sifat Proses Poisson:

1. Tidak punya memori atau ingatan, yaitu banyaknya outcome dalam


satu interval waktu (atau daerah) tidak bergantung pada banyaknya
outcome pada waktu atau daerah yg lain.
2. Probabilitas terjadinya 1 outcome dalam interval waktu (atau daerah)
yg sangat pendek (kecil) sebanding dengan lama waktu interval
waktu tsb (atau luas daerahnya). Dan tidak bergantung pada
kejadian atau outcome di luar interval ini.
3. Probabilitas terjadinya lebih dari 1 outcome dalam interval waktu yg
sangat pendek di (2) tsb sangat kecil atau bisa diabaikan.

X : variabel random Poisson yg menyatakan banyaknya outcome selama


percobaan.

µ : rata-rata banyak outcome = λt dimana t adalah lama intervalnya dan λ


adalah laju terjadinya outcome.

Distribusi probabilitas dari variabel random Poisson X yg menyatakan


banyaknya outcome dalam interval waktu tertentu t (atau daerah tertentu)
dengan λ menyatakan laju terjadinya outcome persatuan waktu atau per satuan
daerah diberikan oleh (tidak diturunkan!) :

57
Referensi: Distribusi Poisson dan Hipergeometrik

d. Hipergeometrik

Distribusi hipergeometrik digunakan ketika pengambilan sampel dilakukan


tanpa pengembalian, informasi tentang susunan populasi harus diketahui untuk
menentukan kembali probabilitas keberhasilan dalam setiap percobaan
berturut-turut karena probabilitas berubah. Dengan demikian, distribusi
hipergeometrik memiliki karakteristik sebagai berikut:

1. Distribusi hipergeometrik merupakan distribusi diskrit


2. Setiap hasil (outcome) terdiri dari keberhasilan atau kegagalan.
3. Pengambilan sampel (sampling) dilakukan tanpa pengembalian.
4. Populasi (N) adalah terbatas dan diketahui.
5. Jumlah keberhasilan dalam populasi, k, diketahui.

Distribusi Hipergeometrik sangat serupa dengan distribusi binomial,


terdapat persamaan, yakni keduanya menyatakan probabilitas sejumlah tertentu
percobaan masuk dalam kategori tertentu. Sementara itu, terdapat beberapa
perbedaan, diantaranya:

1. Binomial mengharuskan ketidakbergantungan dari satu percobaan


(trial) ke percobaan berikutnya.
2. Sampling harus dilakukan dengan dikembalikan (replaced)
3. Hipergeometrik tidak mengharuskan ketidakbergantungan, jadi
sampling dilakukan tanpa mengembalikan outcome yg sudah keluar.

Distribusi Hipergeometrik dari variabel random X yang menyatakan


banyaknya outcome yang “sukses” dari sampel random sebanyak n yg diambil
dari populasi sebanyak N, dimana dari N tsb sebanyak k buah adalah “sukses” dan
sisanya “N-k” adalah “gagal”:

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:

Referensi: Distribusi Probabilitas Diskrit

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.

Metode statistika Bayes menggunakan teorema Bayes untuk menghitung


dan memperbarui probabilitas setelah mendapatkan data baru. Teorema Bayes
menggambarkan probabilitas bersyarat pada suatu peristiwa berdasarkan data
serta informasi atau keyakinan sebelumnya tentang peristiwa, atau kondisi yang
terkait dengan peristiwa tersebut. Misalnya saja dalam inferensi Bayes, teorema
Bayes dapat digunakan untuk memperkirakan parameter distribusi probabilitas
atau model statistikal. Karena statistika Bayes memperlakukan probabilitas
sebagai tingkat kepercayaan, teorema Bayes dapat secara langsung menetapkan
distribusi probabilitas yang mengkuantifikasi keyakinan pada suatu parameter
atau serangkaian parameter.

Dengan menggunakan teorema Bayes, kita dapat mencari peluang


terjadinya A, dengan syarat B telah terjadi. Di sini, B adalah bukti dan A adalah
hipotesis. Asumsi yang dibuat di sini adalah bahwa prediktor/fiturnya

60
independen. Artinya kehadiran satu fitur tertentu tidak mempengaruhi yang lain.

Contoh Numerik Teorema Bayes :

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.

Selanjutnya, asumsikan 0,5% orang menggunakan obat tersebut. Jika


seseorang yang dipilih secara acak dites positif menggunakan narkoba,
perhitungan berikut dapat dilakukan untuk menentukan probabilitas orang
tersebut benar-benar pengguna narkoba.

(0,98 x 0,005) / [(0,98 x 0,005) + ((1 - 0,98) x (1 - 0,005))] = 0,0049 / (0,0049 +


0,0199) = 19,76%. Teorema Bayes menunjukkan bahwa bahkan jika seseorang
dites positif dalam skenario ini, ada kemungkinan sekitar 80% orang tersebut
tidak menggunakan obat tersebut.

Referensi: Bayes Theorem

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.

Namun, sebagian besar statistik inferensial didasarkan pada prinsip bahwa


nilai statistik uji dihitung berdasarkan rumus tertentu. Nilai itu bersama dengan
derajat kebebasan, ukuran yang terkait dengan ukuran sampel, dan kriteria
penolakan digunakan untuk menentukan apakah ada perbedaan antara kelompok
perlakuan. Semakin besar ukuran sampel, semakin besar kemungkinan statistik
menunjukkan bahwa ada perbedaan antara kelompok perlakuan. Jadi, semakin
besar sampel subjek, semakin kuat statistiknya.

Hampir semua statistik inferensial memiliki asumsi dasar yang penting.


Setiap replikasi dalam suatu kondisi diasumsikan independen. Artinya setiap nilai
dalam suatu kondisi dianggap tidak berhubungan dengan nilai lain dalam sampel.

Statistik inferensial digunakan terutama untuk memperoleh perkiraan


tentang kelompok besar (atau populasi) dan menarik kesimpulan pada data
berdasarkan metode pengujian hipotesis.

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.

Referensi: Inferensial Statistika

E. Central Limit Theorem

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.

Formula Teorema Limit Pusat

Parameter distribusi sampling dari rata-rata (mean) ditentukan oleh


parameter populasi:

● Mean dari distribusi sampel adalah mean dari populasi.

● Standar deviasi dari distribusi sampel adalah standar deviasi


standar populasi dibagi dengan akar kuadrat ukuran sampel.

● Distribusi sampel dari mean dapat dituliskan sebagai berikut:

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

Ukuran Sampel dan Teorema Limit Pusat

Ukuran sampel (n) adalah banyaknya pengamatan/observasi yang diambil

62
dari populasi untuk setiap sampel. Ukuran sampel mempengaruhi distribusi
sampel dari mean.

1. Ukuran sampel dan distribusi normal


Semakin besar ukuran sampel, semakin dekat distribusi sampel
mengikuti distribusi normal. Ketika sampel berukuran kecil, terkadang
distribusi sampel dari mean tidak normal karena teorema limit pusat
bernilai benar jika ukuran sampel dirasa cukup besar.

Dipertimbangkan suatu sampel dikategorikan cukup besar ketika


ukuran sampel setidaknya 30.

●Jika nilai n<30, maka teorema limit pusat tidak berlaku.


Distribusi sampel akan mengikuti distribusi dari populasi.
● Jika nilai n≥30, maka teorema limit pusat berlaku. Distribusi
sampel akan mengikuti distribusi normal.
2. Ukuran sampel dan deviasi standar
Ukuran sampel akan mempengaruhi deviasi standar dari distribusi
sampel.

● Jika n rendah, maka nilai deviasi standar tinggi.


● Jika n tinggi, maka nilai deviasi standar rendah.

Kondisi yang harus dipenuhi dari teorema limit pusat

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

Korelasi dapat diartikan hubungan statistik di antara dua entitas. Korelasi


mengukur sejauh mana dua hubungan berhubungan secara linear. Kita dapat
menerapkan korelasi pada berbagai dataset.

Berikut beberapa tipe dari korelasi:

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

Koefisien korelasi memberikan ukuran seberapa kuat hubungan linear


antara dua variabel, biasa dinotasikan dengan ‘r’ bernilai diantara -1 dan 1.

● Jika nilai r<0, maka korelasi bernilai negatif.


● Jika nilai r>0, maka korelasi bernilai positif.
● Jika nilai r-0, maka tidak ada korelasi.

Pearson Correlation

Pearson correlation didefinisikan sebagai ukuran statistik dari kekuatan


hubungan antara dua variabel dan biasa dinotasikan dengan ‘r’. Dapat dirumuskan
sebagai berikut:

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

Anda mungkin juga menyukai