Anda di halaman 1dari 33

MODUL 1

Pengantar
Lima menit menuju pukul lima sore. Aku melirik ke ruangan bos yang berada di seberang mejaku.
Lampu dimatikan dan tidak ada orang. Beliau belum kembali dari rapat.
Aku bersorak dalam hati. Ini waktunya tenggo tanpa gangguan.
Saat melangkah menuju mesin presensi, pintu lift terbuka dan bos keluar dari sana! “Aksara, tolong ke
ruangan saya sebentar.” Buyar sudah rencana indahku setelah ini.
 
Sesampai di ruangan, aku sibuk berpikir apakah bos mengetahui jika aku diam-diam membantu tim lain
mendata profil pelanggan supermarket?
“Aksara, saya puas dengan performa kerjamu. Kamu layak dipromosikan jadi data analyst perusahaan dan
dipindahkan ke divisi data di bawah kepemimpinan Kroma serta dibimbing langsung Senja dan Andra.”
Ini begitu mendadak. Aku masih mencerna informasi ini dalam diam.
Semuanya serba cepat.
Aku sudah memiliki laptop baru dan dua modul untuk dipelajari pada hari pertama bekerja di divisi baru.
Sembari menunggu instruksi, aku membuka isi modul berharap ada bacaan seru.
Tapi…
“Ular!” pekikku spontan melompat dari kursi.
Seketika semua orang di ruangan tertawa seraya berdiri dan berteriak kompak, “Selamat bergabung,
Aksara!” Jantungku hampir copot! Untungnya cuma ular piton mainan.
Insiden tadi membuat seseorang bertubuh tinggi segera menghampiriku.
“Maaf soal kejadian tadi. Ini ide Andra, dia suka ngejahilin orang. Jangan diambil hati ya. Kenalkan saya
Senja, mentormu selama bekerja di divisi ini.”
Aku mengangguk sopan. “Sebenarnya tadi itu juga clue untuk pelatihanmu hari ini tentang Bahasa
Pemrograman Python, hal paling fundamental dalam dunia data,” ujar Senja sambil menarik bangku untuk
duduk di sebelahku. Mencoba melupakan kejadian tadi, aku memfokuskan diri pada penjelasan Senja. 

  Mari Mengenal Python


Aku masih tidak percaya saat ini memegang modul untuk mempelajari analisis data Python! Bahkan
dengan seorang mentor di sampingku yang siap membimbingku kalau ada yang tidak kupahami. Aku tidak
boleh mengecewakannya apalagi menyia-nyiakan kesempatan ini.
Kalau kata Senja, Python akan sangat membantuku memahami materi-materi lainnya. Kalau sudah paham
mengenai Python aku sudah memiliki pijakan dasar. Oke, baiklah!
Aku menarik napas dalam-dalam dan mulai membuka lembaran demi lembaran isi materi modul.

Apa dan Kenapa Python – Part 1?


Python adalah bahasa pemrograman yang ditujukan untuk general-purpose programming dan termasuk dalam
kategori high-level programming language.
Sebagai general-purpose programming language, Python digunakan untuk berbagai macam permasalahan seperti:
pengembangan aplikasi web ataupun mobile, data science, dll.
Python masuk ke dalam kategori high-level programming language dikarenakan bahasa pemrograman Python yang
mudah untuk dibaca dan dituliskan oleh manusia.
Bahasa  pemrograman  Python  diciptakan  oleh Guido van Rossum dan pertama kali diperkenalkan pada tahun
1991 sebagai sebuah proyek open-source.
Sifat open-source dari Python mengartikan bahwa setiap orang dapat mengembangkan program komputer dengan
menggunakan bahasa pemrograman Python baik untuk tujuan komersil/non-komersil.

Apa dan Kenapa Python – Part 2?


Bahasa pemrograman Python bersifat dynamically typed (Python akan secara otomatis mengubah masukan dari
pengguna) dan mendukung berbagai paradigma pemrograman baik pemrograman secara prosedural, berbasis objek
(Object-Oriented), ataupun fungsional.
Selain alasan di atas terdapat beberapa alasan lain untuk menggunakan bahasa pemrograman Python:

1. Python dikembangkan untuk bersifat extendible yang mengartikan bahwa Python dapat dikembangkan


untuk berbagai macam tugas baik untuk pembuatan aplikasi web ataupun desktop, proses analisis data, dll.
2. Python memiliki komunitas yang besar yang secara aktif berkontribusi untuk menyediakan berbagai
macam fungsionalitas (third-party libraries). Third-party libraries yang tersedia dalam bahasa
pemrograman Python memungkinkan para pengembang untuk dapat fokus menyelesaikan permasalahan
yang ada. Per Januari 2020, terdapat 214,922 modul third-party yang dapat kita gunakan secara cuma-
cuma.
3. Python terintegrasi dengan baik dengan berbagai macam bahasa pemrograman dan layanan enterprise.
Untuk bagian-bagian yang melibatkan sumber daya komputasi yang besar, pengembang dapat
menggunakan fungsionalitas dalam bahasa pemrograman lainnya yang bersifat low-level yang telah
dikemas ke dalam fungsionalitas Python.

Program pertama: "Hello World"


Setelah memahami teori-teori fundamental terkait dengan "Apa dan Mengapa Python?"
aku diminta membuat sebuah program sederhana dengan Python.
Fungsi Python yang akan pertama kali aku pelajari adalah fungsi print().
Dengan fungsi print(), aku dapat menampilkan pesan ke layar pengguna.

Tugas:
Aku diberikan tugas oleh Senja untuk menampilkan pesan “Hello World!” pada layar menggunakan fungsi print()

 Jawab : print("hello world!")

Program Pertamaku
Keren! Aku baru tahu kalau Python memiliki fungsi print() yang berguna untuk menampilkan pesan ke layar
pengguna.

Tugas:
Sekarang aku diberikan tugas dari Senja untuk menampilkan kalimat “Halo Dunia” dan “Riset Bahasa Python”
menggunakan fungsi print().
Jawab:

print("Halo Dunia")
print("Riset Bahasa Phyton")

Struktur Program Python - Part 1


Setelah berhasil membuat program sederhana menggunakan Python, aku diminta Senja untuk belajar struktur dari
sebuah program Python.
Dari situ aku paham sebuah program Python pada umumnya terdiri dari:
1. Statements: Instruksi yang diberikan secara baris per baris untuk dijalankan oleh mesin. Contoh:

 
2. Variables: Lokasi penyimpanan yang dapat digunakan untuk menampung sebuah data atau informasi. Contoh:
aku mempunyai variabel yang bernama bilangan1, bilangan2, dan kalimat1
3. Literals: Simbol-simbol yang dapat kita gunakan untuk mengisi suatu variabel. Pada kode yang telah
dicontohkan di atas, angka 5 dan 10 serta 'Belajar Bahasa Python' disebut sebagai literal.

4. Operators: Simbol-simbol yang dapat digunakan untuk mengubah nilai dari satu variabel dengan melibatkan
satu atau lebih variabel dan literal. Contoh: Tanda + merupakan salah satu contoh operator. Dengan menggunakan
tanda +, aku berhasil menambahkan isi dari bilangan1 dan bilangan2!

 
Adapun operator yang lain selain operator + adalah sebagai berikut.
1. Operator - yang berfungsi sebagai operator pengurangan,
2. Operator * yang berfungsi sebagai operator perkalian, dan
3. Operator ** untuk pemangkatan

Tugas :
Aku diminta untuk mencoba mempraktekkan tutorial yang diajarkan untuk memahami struktur bahasa
pemrograman Python.
Ketik Syntax berikut pada Live Code Editor:
Jawab

# Statement

print("Belajar Python menyenangkan")

print("Halo Dunia")

print("Hello World")

# Variables & Literals

bilangan1 = 5

bilangan2 = 10

kalimat1 = "Belajar Bahasa Python"

# Operators
print(bilangan1 + bilangan2)
 
  Tugas Praktek
Tantangan belum berakhir. Aku diminta Senja untuk membuat program pengurangan sederhana dengan Python.

Tugas:
Deklarasi variable bilangan1 dengan 20, dan bilangan2 dengan 10 dan tampilkan hasil pengurangan bilangan1 &
bilangan 2.
jawab:

bilangan1 = 20

bilangan2 = 10
print(bilangan1 - bilangan2)
 

Tugas Praktek
“Saya lihat kamu cepat belajar. Gimana kalau kamu coba buat kalkulator sederhana untuk potongan harga dan
pajak, Aksara?” komentar Senja padaku.
Tugas:
1. Aku diminta menghitung harga_setelah_potongan dan harga_final. harga_final diperoleh dengan
mengalikan harga_setelah_potongan dengan angka 1.1 karena PPN sebesar 10% (100% + 10% = 110%
atau 1.1)
2. Aku menggunakan variabel harga_asli dengan nilai 20000 dan variabel potongan dengan nilai 2000.

Jawab:

 harga_asli = 20000
potongan = 2000
harga_setelah_potongan = (harga_asli - potongan)
harga_final = (harga_setelah_potongan * 1.1)
print(harga_final)

Struktur Program Python - Part 2


Setelah mengerjakan tugas yang diberikan Senja, aku kembali lanjut belajar. Berikut adalah hal-hal baru yang aku
pelajari mengenai Python:
1. Reserved Words: Kumpulan kata-kata yang memiliki makna khusus dalam bahasa pemrograman Python.
Kata False, return, dan for merupakan contoh dari reserved words.
Catatan: Ternyata, aku tidak dapat mendeklarasikan variabel dengan menggunakan sebuah reserved word!
 
2. Whitespace: Pada bahasa Python, spasi dan tab memiliki makna khusus untuk menandai serangkaian blok
dalam kode Python. Hal ini akan dijelaskan secara lebih lanjut pada bagian struktur pemilihan dan struktur
pengulangan pada bahasa Python.
 
3. Comments: Comments merupakan sekumpulan teks yang dituliskan di dalam sebuah program yang tidak akan
mempengaruhi hasil dari sebuah program. Walaupun tidak mempengaruhi hasil program, comments merupakan
salah satu komponen yang penting dalam pengembangan program. Hal tersebut dikarenakan comments dapat
diselipkan di antara sekumpulan statements yang telah dituliskan, untuk berkomunikasi dengan rekan programmer
lainnya dalam satu tim. 
Terdapat dua jenis comments di dalam Python, yaitu:
a. single line comment (comments dalam satu baris) seperti pada contoh berikut:

b. multi line comment (comments dalam beberapa baris) yang dapat dituliskan seperti pada contoh berikut:

Python Variables
Setelah mengetahui konsep sederhana dari sebuah variabel, aku diminta mencoba mendeklarasikan beberapa
variabel dalam bentuk teks ataupun bilangan dan melakukan operasi yang melibatkan sekumpulan variabel. 
Pada bagian ini, aku akan mengkaji variabel dan tipe data secara lebih detail. Pada pertemuan sebelumnya aku
berhasil mendeklarasikan variabel dengan menggunakan ekspresi seperti:

 
Tips:
Dalam mendeklarasikan sebuah variabel, berilah nama yang mewakili isi dari variabel tersebut. Sebagai contoh :

Tipe Data Dasar: Null, Boolean, Numeric dan Text


1. Null Type: Tipe data null dalam Python digunakan untuk menyimpan nilai kosong atau tidak ada yang
dinyatakan dengan None.
2. Boolean Type: Tipe data boolean atau bool digunakan untuk menyimpan nilai kebenaran (True, False) dari suatu
ekspresi logika.
3. Numeric Type: Tipe data yang digunakan untuk menyimpan data berupa angka. Terdapat dua macam tipe data
numeric, yaitu int untuk menyimpan bilangan bulat (e.g.: 0, 1, 2, 404, -500, -1000) dan float untuk
menyimpan bilangan riil (e.g.: 0.5, 1.01, 2.05, 4.04)
4. Text Type: Pada Python, tipe data string (str) digunakan untuk menyimpan data teks. Tipe data string dimulai
dengan tanda kutip (baik kutip satu/ dua) dan diakhir dengan tanda kutip. Contoh: "Teks", "Contoh teks
menggunakan Python", dan 'Teks pada Python'.
 

Sequence Type – Part 1


Tipe data ini digunakan untuk menampung sekumpulan data secara terorganisir.
Bentuk dari tipe data sequence ini adalah List dan Tuple.
Pada part 1 ini, aku akan mempelajari tipe data list terlebih dahulu.
Tipe data list diawali dengan tanda kurung siku buka ( [ ), memisahkan setiap elemen di dalamnya dengan tanda
koma ( , ) dan ditutup dengan kurung siku tutup ( ] ). Sebagai contoh:

Setiap elemen dari list memiliki indeks yang dimulai dari angka 0 dan terus bertambah satu nilainya hingga elemen
terakhir dari list. Sebagai contoh:

 
Tipe data list bersifat mutable yang berarti setiap elemen di dalam list dapat dirubah nilainya setelah proses
pendeklarasian list. Sebagai contoh:

Tugas:
Aku diberikan tugas untuk menerapkan variasi tipe data list dengan mengikuti petunjuk yang diberikan Senja.
Berikut petunjuknya:
Petunjuk 1: Input data 1, 'dua', 3, 4.0, 5 ke dalam contoh_list
Petunjuk 2: Ambil Elemen pertama dari contoh_list untuk menampilkan output 1 menggunakan print statement
Petunjuk 3: Ambil Elemen ke empat dari contoh_list untuk menampilkan output 4.0 menggunakan print
statement
Petunjuk 4: Input data 1, 'dua', 3, 4.0, 5 ke dalam contoh_list
Petunjuk 5: Rubah Elemen keempat dalam contoh_list menjadi 'empat'
Petunjuk 6: Tampilkan output elemen keempat yang telah dirubah tersebut menggunakan print statement
Jawab:

contoh_list = [1,'dua',3,4.0,5]

print(contoh_list[0])

print(contoh_list[3])

contoh_list = [1,'dua',3,4.0,5]

contoh_list[3] = 'empat'
print(contoh_list[3])
 

Sequence Type – Part 2


Setelah mempelajari tipe data list, aku mempelajari tipe data tuple. Tipe data tuple juga berfungsi untuk
menampung sekumpulan data. Tipe data ini diawali dengan tanda kurung buka ( ( ), memisahkan setiap elemen di
dalamnya dengan tanda koma ( , ) dan ditutup dengan tanda kurung tutup ( ) ). Sebagai contoh:

 
Aturan indeks dan cara mengakses elemen pada sebuah tuple serupa dengan list. Sebagai contoh:

 
Berbeda dengan tipe data list, tipe data tuple bersifat immutable yang berarti elemen pada tipe data tuple tidak
dapat diubah setelah proses pendeklarasiannya.

Pada saat aku mengubah elemen pada tuple seperti pada kode berikut, 
akan menghasilkan error di console, yaitu TypeError

Di sini ditegaskan kembali, TypeError menunjukkan bahwa tipe data tuple tidak dapat diubah item-nya


melalui item assignment karena tuple bersifat immutable.
 

Tugas:
Sekarang aku diberikan tugas untuk menerapkan variasi tipe data tuple dengan mengikuti petunjuk yang diberikan
Senja:
Petunjuk 1: Input data Januari sampai dengan April ke dalam contoh_tuple
Petunjuk 2: Ambil Elemen pertama dari contoh_tuple untuk menampilkan output 1 menggunakan print
statement
Petunjuk 3: Input kembali data Januari sampai dengan April ke dalam contoh_tuple
Petunjuk 4: Rubah Elemen pertama dalam contoh_tuple menjadi 'Desember'
Ketika dijlankan ini akan menghasilkan error yaitu TypeError, silakan kamu submit dengan
adanya error dari output pada Petunjuk 4 tersebut. 

Set Type
Serupa dengan tipe data sequence, tipe data set digunakan untuk menampung sekumpulan data dengan tipe lainnya.
Terdapat dua jenis dari tipe data set yaitu, set dan frozenset.
Tipe data set diawali dengan tanda kurung buka kurawal ( { ), memisahkan setiap elemen di dalamnya dengan tanda
koma ( , ) dan ditutup dengan tanda kurung tutup ( } ). Namun berbeda dengan tipe data sequence, seperti list, tipe
data objek tidak mengizinkan adanya elemen dengan nilai yang sama dan tidak memperdulikan urutan dari elemen.
Sebagai contoh:

Akan menghasilkan output:


sedangkan pada tipe data set:

Akan menghasilkan output :

Dari kedua contoh output pada program, dapat terlihat:

1. Berbeda dengan tipe data set, tipe data list memperdulikan urutan dari setiap elemen saat list
dideklarasikan.
2. Berbeda dengan list yang mengizinkan adanya duplikasi elemen, tipe data set tidak mengizinkan adanya
elemen dengan nilai yang sama di dalamnya. 

Keunikan dari kedua tipe data ini tentunya menjadi pengetahuan yang berguna.
Dan aku akan mempelajarinya kembali pada bagian struktur kontrol pengulangan!
 
Bagaimana dengan tipe data frozenset? Tipe data frozenset sebenarnya hanya merupakan set yang
bersifat immutable, yang artinya setiap elemen di dalam frozenset tidak dapat diubah setelah proses deklarasinya.
Untuk membuat tipe data frozenset, aku dapat merujuk potongan kode di bawah ini:

Akan menghasilkan output:


 

Tugas:
Sekarang aku diberikan tugas untuk menerapkan variasi set dan frozenset oleh Senja:

1. Tugas 1:Input data Dewi, Budi, Cici, Linda, Cici kedalam tipe data list dan tampilkan hasilnya
2. Tugas 2: Input data Dewi, Budi, Cici, Linda, Cici kedalam tipe data set dan tampilkan hasilnya
3. Tugas 3: Input data Dewi, Budi, Cici, Linda, Cici kedalam tipe data frozenset dan tampilkan hasilnya

Mapping Type
Tipe data mapping dapat digunakan untuk memetakan sebuah nilai ke nilai lainnya. Dalam Python, tipe data
mapping disebut dengan istilah dictionary. Tipe data dictionary dapat dideklarasikan dengan diawali oleh tanda
kurung buka kurawal ( { ), memisahkan setiap elemen di dalamnya dengan tanda koma ( , ) dan ditutup dengan
tanda kurung tutup ( } ). Setiap elemen pada tipe data dictionary dideklarasikan dengan format:
"kunci" : "nilai"

 
Hal inilah yang membedakan tipe data mapping dengan tipe data set. Untuk lebih memperjelas tipe data mapping,
aku mempelajari potongan kode berikut:

Potongan kode di atas adalah contoh pendeklarasian dari tipe data dictionary. Kemudian, bagaimana dengan cara
mengakses informasi dari tipe data ini?

Dengan mencoba potongan code ini pada live code editor, maka aku akan mendapatkan output: 

Untuk mengakses elemen dari sebuah dictionary, aku hanya perlu menspesifikasikan kata kunci yang terdapat
dalam dictionary tersebut.
 

Tugas:
Menggunakan tipe data mapping, aku diminta Senja untuk menampilkan nama & pekerjaan John Doe,
seorang Programmer.

Tugas Praktek
Ternyata seru juga! Aku jadi berniat mengembangkan program kalkulator potongan harga ini untuk
beberapa barang sekaligus agar lebih fungsional. Kalau begitu, aku perlu rapikan dulu informasi setiap
barang di tabel ini.
“Lalu, aku tinggal merepresentasikan semuanya ke tipe data dictionary, dengan begitu akan lebih mudah
mengolahnya,” gumamku.
Aku pun mulai mendeklarasikan variabel sepatu, baju, dan celana untuk menampung informasi barang ke
dalam live code editor.
 

Nama
Harga Diskon
Barang
Sepatu Niko150000 30000
Baju
80000 8000
Unikloh
Celana
200000 60000
Lepis
jawaban
sepatu = {"nama": "sepatu niko", "harga": 150000, "diskon": 30000 }
baju = {"nama":"baju unikloh","harga":80000,"diskon":8000}
celana = {"nama":"celana lepis","harga":200000,"diskon":60000}

Tugas Praktek
Setelah berhasil merepresentasikan setiap barang ke dalam tipe data dictionary dengan
variabel nama, harga, dan diskon, langkahku selanjutnya adalah: mendeklarasikan list dengan
nama daftar_belanja yang berisi data sepatu, baju, dan celana.
daftar_belanja = [sepatu, baju, celana]

Tugas Praktek
Dengan data yang aku miliki, aku bisa menghitung total harga jual dengan potongan harga beserta pajak
sebesar 10% dari nilai jual.

Untungnya Senja memberikan beberapa tips untuk menyelesaikan tugas ini:

1. Tips 1. # Data yang dinyatakan ke dalam dictionary


2. Tips 2. # Hitung harga masing-masing data setelah dikurangi diskon
3. Tips 3. # Hitung harga total
4. Tips 4. # Hitung harga kena pajak
5. Tips 5. # Cetak total_harga + total_pajak

 # Hitunglah harga masing-masing data setelah dikurangi diskon


harga_sepatu = sepatu["harga"] - sepatu["diskon"]
harga_baju = baju["harga"] - baju["diskon"]
harga_celana = celana["harga"] - celana["diskon"]
# Hitung harga total
total_harga = harga_sepatu + harga_baju + harga_celana
# Hitung harga kena pajak
total_pajak = total_harga * 0.1
# Cetak total_harga + total_pajak
print(total_harga + total_pajak)

Pendahuluan
Setelah aku berhasil mempelajari detail terkait dengan variables dan data type, sekarang aku akan
mempelajari operator-operator yang tersedia di dalam Python. Di dalam Python, operator terbagi ke dalam
6 kelompok:

1. Arithmetic operators
2. Assignment operators
3. Comparison operators
4. Logical operators
5. Identity operators
6. Membership operators

Arithmetic Operators
7. Operator arithmetic digunakan pada tipe data numerik, untuk melakukan operasi matematika
sederhana yang terdiri atas:

Simbol Operator Keterangan Contoh

+ Penambahan 3 + 2 akan menghasilkan output: 5

- Pengurangan 4 - 2 akan menghasilkan output: 2


* Perkalian 3 * 2 akan menghasilkan output: 6

/ Pembagian 3 / 2 akan menghasilkan output: 1.5

3 % 2 akan menghasilkan output: 1


dikarenakan 3 tidak habis dibagi 2 dan
% Modulo/sisa bagi menyisakan 1
8 % 2 akan menghasilkan output: 0
dikarenakan 8 habis dibagi 2

** Pangkat 3 ** 2 akan menghasilkan output: 9

3 // 2 akan menghasilkan output: 1


Pembagian dengan
// dikarenakan 1.5 akan menjadi 1 saat dibulatkan
pembulatan ke bawah
ke bawah.

Assignment Operators
Operator assignment digunakan untuk mendeklarasikan nilai secara langsung ke suatu variabel.

Simbol Operator Keterangan Contoh

x=3
+= Penambahan x += 2 ekivalen dengan x = x + 2
akan mengubah nilai x menjadi 5

x=3
-= Pengurangan x -= 2 ekivalen dengan x = x - 2
akan mengubah nilai x menjadi 1

x=3
*= Perkalian x *= 2 ekivalen dengan x = x * 2
akan mengubah nilai x menjadi 6

x=3
/= Pembagian x /= 2 ekivalen dengan x = x / 2
akan mengubah nilai x menjadi 1.5

x=3
%= Modulo/sisa bagi x %= 2 ekivalen dengan x = x % 2
akan mengubah nilai x menjadi 1

**= Pangkat x=3


x **= 2 ekivalen dengan x = x ** 2
akan mengubah nilai x menjadi 9

x=3
Pembagian dengan
//= x //= 2 sama dengan x = x // 2
pembulatan ke bawah
akan mengubah nilai x menjadi 1

Comparison Operators
Operator comparison dapat digunakan untuk membandingkan dua buah nilai, berikut merupakan contoh-
contoh operator komparasi.

Simbol Operator Keterangan Contoh

33 == 33 akan menghasilkan
output: True dikarenakan benar 33 sama dengan
33
== Persamaan
34 == 33 akan menghasilkan
output: False dikarenakan 34 tidak sama dengan
33

34 != 33 akan menghasilkan
output: True dikarenakan benar bahwa 34 tidak
!= Pertidaksamaan sama dengan 33
33 != 33 akan menghasilkan
output: False dikarenakan 33 sama dengan 33

34 > 33 akan menghasilkan


output: True dikarenakan 34 lebih besar dari 33
>  Lebih besar dari 33 > 34 akan menghasilkan
output False dikarenakan tidak benar 33 lebih
besar dari 34

33 < 34 akan menghasilkan


output True dikarenakan benar 33 lebih kecil dari
34
<  Lebih kecil dari
34 < 33 akan menghasilkan
output: False dikarenakan tidak benar 34 lebih
kecil dari 33

34 >= 33 akan menghasilkan


output True dikarenakan 34 lebih besar dari 33
34 >= 34 akan menghasilkan
>= Lebih besar atau sama dengan output True dikarenakan 34 sama dengan 34
33 >= 34 akan menghasilkan
output False dikarenakan 33 tidak lebih besar dari
34 dan tidak sama dengan 34

<= Lebih kecil atau sama dengan 33 <= 34 akan menghasilkan


output True dikarenakan 33 lebih kecil dari 34
33 <= 33 akan menghasilkan
output True dikarenakan 34 sama dengan 33
34 <= 33 akan menghasilkan
output False dikarenakan 34 tidak lebih kecil dari
33 dan tidak sama dengan 34

Logical Operators
Operator logical digunakan untuk menggabungkan beberapa nilai kebenaran atas suatu statemen logika.

Simbol Operator Keterangan Contoh

x=5
x >= 1 and x <= 10
dan - menerima dua nilai
kebenaran dan akan mengembalikan nilai True
and
mengembalikan nilai benar x=5
jika keduanya benar
x >= 1 and x <= 4
akan mengembalikan nilai False

x=3
x >= 1 or x <= 2
akan mengembalikan nilai True dikarenakan
atau - menerima dua nilai statemen logika pertama terpenuhi
kebenaran dan
or x=3
mengembalikan nilai benar
jika salah satu benar x >= 5 or x <= 0
akan mengembalikan nilai False dikarenakan
kedua statemen logika tidak terpenuhi (bernilai
False)

negasi - menerima sebuah x=7


nilai kebenaran dan
not not(x == 7) akan mengembalikan nilai False
mengembalikan
komplemennya not(x >= 10) akan mengembalikan nilai True

Identity Operators
Operator identitas dapat digunakan untuk membandingkan identitas dari dua buah variabel.

Simbol Operator Keterangan Contoh

is Menerima dua buah objek x = ["Ani", "Budi"]


dan mengembalikan
nilai True ketika keduanya y = ["Ani", "Budi"]
merujuk pada objek yang
a=x
print(a is x) akan menampilkan
nilai True dikarenakan a dan x merujuk ke objek
sama dan False dalam kondisiyang sama
lainnya
print(a is y) akan menampilkan
nilai False dikarenakan a dan y tidak merujuk ke
objek yang sama meskipun isi di dalam keduanya
sama.

x = ["Ani", "Budi"]
y = ["Ani", "Budi"]
Menerima dua buah objek a=x
dan mengembalikan
is not nilai True ketika keduanya print(a is not x) akan menampilkan
merujuk pada objek yang nilai False dikarenakan a dan x merujuk ke objek
berbeda dan False jika sama yang sama
print(a is not y) akan menampilkan
nilai   True dikarenakan a dan y tidak merujuk ke
objek yang sama

 
Pada umumnya, operator identitas sering digunakan bersamaan dengan fungsi type(), yang mana fungsi
type() akan menerima sebuah objek dan mengembalikan tipe data dari objek tersebut. Di bawah ini adalah
contoh penggunaan operator identitas dan fungsi type().
Nah, aku coba mempraktekkan contoh tutorial yang diberikan Senja pada live code editor.

akan menampilkan pesan True.


Setelah line di bawah ini selesai dieksekusi, Python akan secara otomatis mengubah tipe data dari x
menjadi float

akan menampilkan pesan False, dan

akan menampilkan pesan True


Membership Operators
Operator keanggotaan (membership) dapat digunakan untuk memeriksa anggota dari sebuah tipe data
sequence/set. Operator keanggotaan meliputi:

Simbol Operator Keterangan Contoh

Menerima x = ["Ani", "Budi", "Cici"]


sebuah sequence/set dan y = "Cici"
objek,
in mengembalikan True ketika z = "Dodi"
objek merupakan anggota
dari sequence/set, print(y in x) akan menampilkan nilai   True
dan False ketika bukan. print(z in x) akan menampilkan nilai  False

Menerima x = ["Ani", "Budi", "Cici"]


sebuah sequence/set dan y = "Cici"
objek,
not in mengembalikan True ketika z = "Dodi"
objek bukan merupakan
anggota dari sequence/set, print(y not in x) akan menampilkan nilai  False
dan False ketika merupakan. print(z not in x) akan menampilkan nilai   True

Nilai Prioritas Operator dalam Python – Part 1


Info: materi telah diperbarui pada tanggal 29 Januari 2022, pastikan kembali kode yang telah ditulis
disesuaikan dengan bagian Lesson.
 
Setelah mempelajari berbagai operator dalam bahasa pemrograman Python, tentunya aku juga ingin bisa
menuliskan operasi-operasi variabel yang bersifat ekspresif dan ringkas.
Sebagai contoh, untuk menuliskan sebuah program menghitung diskon dan pajak pembelian berdasarkan
ilmu yang telah aku pelajari, aku dapat menuliskannya dengan potongan kode berikut:

 
Setelah aku memberikan potongan kode yang telah kubuat, ternyata Senja memiliki ide yang lebih
baik. Wajar saja, Senja adalah mentorku. Senja langsung mencontohkan cara lebih mudah dengan
menjelaskan presedensi (urutan eksekusi) dari operator.
Dengan mengikuti masukan Senja, aku dapat menuliskannya ke dalam jumlah baris yang lebih sedikit
seperti pada potongan kode berikut
 

Tugas:
Aku diminta Senja untuk menghitung harga yang harus dibayarkan menggunakan barang senilai 150,000,
dengan diskon 30% dan pajak 10%, menggunakan cara yang aku gunakan awal dan cara lebih singkat yang
diajarkan Senja. 
# Kode awal
total_harga = 150000
potongan_harga = 0.3
pajak = 0.1 # pajak dalam persen ~ 10%
harga_bayar = 1-potongan_harga # baris pertama
harga_bayar *= total_harga # baris kedua
pajak_bayar = pajak * harga_bayar # baris ketiga
harga_bayar += pajak_bayar # baris ke-4
print("Kode awal - harga_bayar=", harga_bayar)
# Penyederhanaan baris kode dengan menerapkan prioritas operator
total_harga = 150000
potongan_harga = 0.3
pajak = 0.1 # pajak dalam persen ~ 10%
harga_bayar = (1-potongan_harga) * total_harga #baris pertama
harga_bayar += harga_bayar * pajak # baris kedua
print("Penyederhanaan kode - harga_bayar=", harga_bayar)

Nilai Prioritas Operator dalam Python – Part 2


Dalam bahasa pemrograman Python, tabel berikut mencakup nilai prioritas dan arah pengerjaan dari setiap
operator.

Operator Nilai Prioritas Arah pengerjaan Deskripsi

() 10 Kiri ke kanan Grouping

x[index] 9 Kiri ke kanan Mengakses elemen array

** 8 Kanan ke kiri pangkat


+x
7 Kiri ke kanan Tanda bilangan positif dan negatif
-x

*
/ 6 Kiri ke kanan Perkalian Pembagian Modulus
%

+
5 Kiri ke kanan Penambahan Pengurangan
-

is, is not, in, not in


Membership operator Comparison
<=, <, >=, > 4 Kiri ke kanan
Operator
==, !=

not 3 Kiri ke kanan Operator logika negasi (not)

and 2 Kiri ke kanan Operator logika konjungsi (and)

or 1 Kiri ke kanan Operator logika disjungsi (or)

 
Dari tabel di atas, dapat terlihat bahwa tanda () memiliki nilai prioritas yang paling tinggi. Hal itu
menandakan jika di dalam suatu statemen yang melibatkan beberapa operator secara sekaligus, setiap
operasi yang berada di dalam tanda () akan dikerjakan terlebih dahulu.
Kemudian, jika terdapat beberapa operasi dalam tanda (), tanda kurung yang berada di sebelah paling kiri
akan dikerjakan terlebih dahulu dikarenakan arah pengerjaan dari tanda () adalah dari kiri ke kanan.

Sebagai contoh, pada proses deklarasi variabel nilai di bawah ini.

 
Dari contoh di atas, meskipun operator perkalian (*) memiliki nilai prioritas yang lebih tinggi dari operator
pengurangan (-), tanda () akan membuat Python mengerjakan bagian pengurangan terlebih dahulu,
sebelum akhirnya mengalikan hasil pengurangan dengan bilangan 100.
Tugas Praktek
Senja memang hebat! 
Aku baru sadar, dengan struktur penulisan yang tepat maka penulisan syntax dapat dipersingkat untuk
menjadi lebih simpel. 
Kenapa tidak terpikirkan olehku, ya? Harusnya aku tidak perlu mendeklarasikan variabel total_pajak dan
aku bisa langsung menampung hasil perhitungan akhir saat mendeklarasikan variabel total_harga. Jadi,
kodeku akan berjalan jika aku menambahkan setiap harga barang yang telah dipotong diskon sebelum
menghitung pajak.

 
 

Tugas:

Dengan cara yang diajarkan Senja, aku akan membuat potongan kode diatas menjadi lebih simpel. Jangan
lupa ada pajak 10%.
 
Python Conditioning for Decision – Part 1
Layaknya bahasa pemrograman lainnya, bahasa pemrograman Python menyediakan statemen desisi
(decision statement) untuk berinteraksi dengan variabel bertipe boolean dan operator logika. Statemen
desisi dalam Python dapat dituliskan dengan menggunakan format berikut:

if conditions:
do_action_1
...
do_action_n

Dengan <conditions> berisikan operator yang mengembalikan nilai kebenaran; ataupun beberapa operator


yang mengembalikan nilai kebenaran, yang digabungkan dengan operator logika.  Melalui  sebuah
statemen desisi (if statement), <do_action_1> sampai dengan <do_action_n> akan dijalankan
saat <conditions> bernilai True.
 
Dalam menuliskan serangkaian aksi (<do_action_1>, ... , <do_action_n>) dalam sebuah statemen if, aku
harus mengemas setiap aksi dalam sebuah blok dengan menambahkan indentasi (jorokan) dari pada aksi.
Aku tidak sabar untuk mempraktekkannya.

Python Conditioning for Decision – Part 2


Aku mempelajari kode yang diberikan Senja dan coba mempraktekkannya ke dalam live code editor:

 
Ketika aku menjalankan potongan kode ini, live code editor akan menampilkan output sebagai berikut:

Kemudian, untuk melengkapi sebuah statement if, aku bisa menambahkan satu ataupun lebih statemen
desisi elif, untuk melakukan pengecekan kondisi lainnya, saat kondisi dalam statement if atau elif di
atasnya tidak terpenuhi.
 

Tugas:
Praktekkan kode berikut di live code editor pada baris setelah kode sebelumnya yang telah dibuat.
Ketika dijalankan, live code editor akan menampilkan output:

 
ps: Aku juga bisa mengubah nilai x sehingga lebih mudah memahami statemen desisi mana yang akan
dieksekusi oleh potongan kode yang telah aku jalankan.

# statement if

x=4

if x % 2 == 0:

print("x habis dibagi dua")

#Jawaban: x habis dibagi dua

# Statement if ... elif ... else

x=7

if x % 2 == 0: # jika sisa bagi x dengan 2 sama dengan 0

print("x habis dibagi dua")

elif x % 3 == 0: # jika sisa bagi x dengan 3 sama dengan 0

print("x habis dibagi tiga")

elif x % 5 == 0: # jika sisa bagi x dengan 5 sama dengan 0

print("x habis dibagi lima")


else:
print("x tidak habis dibagi dua, tiga ataupun lima")

Python Conditioning for Decision – Part 3


Dari yang aku pelajari pada bagian awal dari statemen desisi, operator desisi juga dapat digunakan dengan
operator logika. 
Sebagai catatan tambahan, aku juga belajar bahwa aksi dalam sebuah desisi statemen dapat
dituliskan desisi statemen tambahan (lainnya) yang dikenal dengan istilah nested if.
 

Tugas:
Praktekkan potongan kode berikut dalam live code editor.

Tugas Praktek
Aku diminta tolong Senja untuk menghitung tagihan pembayaran karena saat ini prosesnya masih manual.

Tugas:
“Aksara, kantor kita akan merilis penawaran baru terkait jasa pembuatan data warehouse. Bisa tolong
kembangkan kalkulatormu untuk menghitung tagihan pembayaran? Soalnya selama ini kita masih
manual,” jelas Senja sembari memberikan contoh nota tagihan kantor.
Aku belum mengiyakan karena sedikit ragu. Mengingat sebelumnya aku sempat salah. Tapi dalam hati aku
berkata, pasti bisa! Kali ini aku harus mampu membuat kalkulator lebih rumit.
Solusi yang terlintas dalam bayanganku: Kalkulator ini harus dapat menghitung subtotal setiap jasa yang
diambil dari kolom harga/ hari dan total hari dari setiap jasa. Ternyata Senja juga memikirkan hal yang
sama dengan instruksinya yang sangat membantu.
 
Tagihan untuk Mr. Yoyo

Harga Total
Nama Jasa Subtotal
per hari hari
Data
100000015 15000000
Warehousing
Data Cleansing 150000010 15000000

Data
200000015 30000000
Integration
Data
250000010 25000000
Transformation

Total 85000000

Tugas Praktek
Aku menunjukkan potongan kode dan hasil dari kalkulator yang telah aku buat ke Senja yang sudah
berhasil menampilkan kalimat:
Selamat pagi, Anda harus membayar tagihan sebesar:
Kulihat kedua alis Senja bertaut, ini pertanda kodeku pasti ada yang keliru.
“Kalau kamu hanya memasukkan perintah ‘selamat pagi’ seakan kalau tagihan ini dikirim hanya saat pagi,
padahal bisa kapan saja sesuai kebutuhan,” komentar Senja. Begini, jam pengiriman email kantor kita
mulai dari 6 pagi sampai 9 malam.
 

Tugas:
Tolong masukkan variabel keterangan waktu tersebut di kodemu. Lalu, diatur dengan detail berikut:

1. Diatas jam 07 malam adalah salam 'selamat malam'


2. Diatas jam 05 sore adalah salam 'selamat sore'
3. Diatas jam 12 siang, adalah 'selamat siang'
4. dan selain itu 'selamat pagi'

“Oh, oke. Paham,” sahutku sembari merevisi. Saran yang bagus, kedepannya aku harus berpikir kritis.
 

Python Primitive Loop Control


Loop Control merupakan salah satu fitur yang mengizinkan penggunanya untuk melakukan serangkaian
aksi, selama suatu kondisi yang telah ditetapkan bernilai benar. Dalam Python, terdapat dua bentuk primitif
dari loop kontrol (struktur pengulangan), yaitu

 while loops
 for loops

Python while loops – Part 1


Pertama-tama aku mempelajari struktur kontrol while loops menggunakan contoh berikut:
 
Tugas 1:
Hitung total tagihan secara manual dengan menulis potongan kode berikut ke dalam live code editor:

Setelah aku konfirmasi potongan kode yang aku buat ke Senja, aku belajar bahwa potongan kode ini tidak
efektif apabila ukuran dari list tagihan bertambah. Tentunya aku akan kewalahan untuk menuliskan
ekspresi penambahan pada setiap elemennya, terutama jika elemennya berjumlah banyak. Untuk mengatasi
hal ini Senja memberikan masukan untuk menggunakan struktur kontrol while.
 

Tugas 2:
Ubah potongan kode yang telah dibuat dengan arahan Senja dan tuliskan di dalam live code editor:

Setelah dijalankan, kedua potongan kode akan mencetak output yang sama yaitu 750000. 
 
Dari tugas di atas, aku belajar bahwa statemen while akan terus menjalankan aksi di dalamnya, selama
kondisi yang dituliskan di samping kanan statemen while terus terpenuhi. Melalui penambahan nilai i
sebagai salah satu aksi dalam statemen while, saat nilai i = 4, kondisi dari statemen while tidak akan
terpenuhi dan eksekusi program akan dilanjutkan ke perintah print(total_tagihan).

 # Tagihan

tagihan = [50000, 75000, 125000, 300000, 200000]

# Tanpa menggunakan while loop

total_tagihan = tagihan[0]+tagihan[1]+tagihan[2]+tagihan[3]+tagihan[4]

print(total_tagihan)

# Dengan menggunakan while loop

i = 0 # sebuah variabel untuk mengakses setiap elemen tagihan satu per satu

jumlah_tagihan = len(tagihan) # panjang (jumlah elemen dalam) list tagihan

total_tagihan = 0 # mula-mula, set total_tagihan ke 0


while i < jumlah_tagihan: # selama nilai i kurang dari jumlah_tagihan

total_tagihan += tagihan[i] # tambahkan tagihan[i] ke total_tagihan

i += 1 # tambahkan nilai i dengan 1 untuk memproses tagihan selanjutnya.


print(total_tagihan)

Python while loops – Part 2


Dalam sebuah struktur kontrol pengulangan, aku dapat menggunakan perintah break untuk keluar dari
struktur pengulangan dan perintah continue untuk melanjutkan proses pengulangan berikutnya. 
 

Tugas:
Praktekkan potongan kode berikut pada live code editor.

dengan output

tagihan = [50000, 75000, -150000, 125000, 300000, -50000, 200000]

i=0

jumlah_tagihan = len(tagihan)

total_tagihan = 0

while i < jumlah_tagihan:


# jika terdapat tagihan ke-i yang bernilai minus (di bawah nol),

# pengulangan akan dihentikan

if tagihan[i] < 0 :

total_tagihan = -1

print("terdapat angka minus dalam tagihan, perhitungan dihentikan!")

break

total_tagihan += tagihan[i]

i += 1
print(total_tagihan)

Python while loops – Part 3


Praktekkan potongan kode berikut menggunakan live code editor. 

 
Jika dijalankan maka akan mencetak output total tagihan sebesar 750000 (total tagihan positif).

Python for loops – Part 1


Untuk perintah for loops, aku mencoba potongan kode ini menggunakan live code editor.
 
Jika dijalankan maka akan mencetak output total tagihan sebesar 550000 (total tagihan positif).

  Python for loops – Part 2


Info: materi telah diperbarui pada tanggal 26 Desember 2021, pastikan kembali kode yang telah ditulis
disesuaikan dengan default live code serta urutan materi pada bagian lesson.
Serupa dengan struktur pengulangan while, aku juga dapat memanfaatkan statement break dan continue di
dalamnya. Aku mencoba potongan kode di bawah menggunakan live code editor untuk penggunaan
statement break.

Jika dijalankan akan mencetak:

 
Untuk statement continue
Setelah dijalankan akan menghasilkan

Python for loops – Part 3


Ternyata, aku belajar bahwa ada istilah nested loops, yaitu pengulangan bersarang. Dengan nested loops,
aku dapat mengkombinasikan (menambahkan) struktur pengulangan lain di dalamnya.  Aku mencoba
potongan kode di bawah menggunakan live code editor:

 
Pada saat aku jalankan, maka output yang dihasilkan adalah:

Tugas Praktek
Aku diberi informasi oleh Senja bahwa manajemen cukup puas dengan hasil kalkulator potongan harga
dan pajak yang aku kembangkan. Setelahnya, aku diberikan kepercayaan lebih untuk membuat program
baru.
Dalam program kali ini, aku diminta untuk menghitung total pengeluaran dan pemasukan perusahaan.

Senja pun mengingatkan akan ada penghitungan cash flow.


Melihat Senja dan tim manajemen memberikan kepercayaan yang besar kepadaku, akupun bersemangat!

Tugas:
Program yang akan aku bangun akan mengolah sebuah list yang bernama list_cash_flow. Setiap
elemen dari list_cash_flow berisikan pengeluaran (bilangan negatif) dan pemasukan (bilangan positif)
pada perusahaan

Dari list_cash_flow ini, aku akan


menghitung total_pengeluaran dan total_pemasukan perusahaan. 

Pendahuluan
Berkat dua pekerjaan berturut-turut kemarin, aku sekarang diberi waktu senggang untuk beristirahat alias
bereksplorasi sendiri. Senangnya!
Selama ini aku ingin sekali membantu usaha paman karena selama ini pamanku selalu kesulitan mencatat
laporan pengeluaran bisnisnya. Kali ini aku sudah tahu caranya!

Ekspedisi Pamanku
Aku menyambar ponsel di meja dan membuka pesan singkat dari paman tempo hari yang menjelaskan jika
paman harus mengeluarkan uang sebesar 1,5 juta per mobil dalam sehari. Tapi, beliau selalu kebingungan
dengan total pengeluaran per bulan karena adanya aturan ganjil-genap yang membuat pengoperasian mobil
yang berbeda.
“Kalau begitu, aku akan masukkan variabel jumlah_hari berisi jumlah hari dalam sebulan dan
variabel list_plat_nomor berisi seluruh nomor plat mobil milik paman,” gumamku sendiri. Kalau
seperti ini paman hanya perlu mengganti variabel jumlah_hari atau modifikasi
variabel list_plat_nomor untuk melacak total pengeluaran paman selama sebulan. Ide Cemerlang!

# Data
uang_jalan = 1500000
jumlah_hari = 31
list_plat_nomor = [8993, 2198, 2501, 2735, 3772, 4837, 9152]
# Pengecekan kendaraan dengan nomor pelat ganjil atau genap
kendaraan_genap = 0
kendaraan_ganjil = 0
for plat_nomor in list_plat_nomor:
if plat_nomor % 2 == 0:
kendaraan_genap += 1
else:
kendaraan_ganjil += 1
# Total pengeluaran untuk kendaraan dengan nomor pelat ganjil
# dan genap dalam 1 bulan
i=1
total_pengeluaran = 0
while i<= jumlah_hari:
if i % 2 == 0:
total_pengeluaran += (kendaraan_genap * uang_jalan)
else:
total_pengeluaran += (kendaraan_ganjil * uang_jalan)
i += 1
# Cetak total pengeluaran
print(total_pengeluaran)

Hasil Belajarku
Wah senangnya! Aku telah berhasil menyelesaikan pelajaran Python pertamaku, Python for Data
Professional Beginner - Part 1.
Selain membabat habis materi dari Senja, aku berhasil menyelesaikan latihan, dan membantu Pamanku.

Dari materi yang telah aku pelajari dan praktekkan, aku telah mempelajari:

 Alasan Python secara luas digunakan dalam komputasi saintifik, web, ranah data (data domain).
 Konstruksi dari struktur bahasa pemrograman Python.
 Teknik mempraktekkan penggunaan tipe data pada Python.
 Teknik mempraktekkan penggunaan jenis-jenis operator pada Python.
 Teknik mempraktekkan penggunaan pengkondisian untuk pengambilan keputusan dan perulangan
pada Python.
 Program Python untuk penyelesaian kasus bisnis sederhana.

Journey Belajar
Apabila ingin menjadi seorang Data Analyst, berikut ada journey belajar yang perlu kamu ikuti. Untuk
modul selanjutnya yang perlu kamu selesaikan dari rangkaian modul Python for Data Professional adalah :

 Python for Data Professional Beginner - Part 2


 Python for Data Professional Beginner - Part 3

Anda mungkin juga menyukai