1 - Modul-Python
1 - Modul-Python
com
Python
Untuk Pemula
Disusun oleh:
LUTFIA AFIFAH
Email: [email protected]
Github: https://github.com/lutfiaafifah
Website: https://ilmudatapy.com
Hak Cipta
Paket modul data science ini, termasuk ebook dan file IPYNB, hanya bisa didapatkan melalui website
https://ilmudatapy.com.
Dilarang menyebarluaskan ebook atau file IPYNB modul ini baik secara komersial maupun non-
komersial.
Kata Pengantar
Paket modul belajar data science ini ditujukan untuk siapa saja yang sedang belajar data science dan ingin
mempelajari bagaimana penerapan kode pemrograman Python untuk data science. Modul Python Untuk
Pemula ini merupakan modul pertama dari paket ini yang membahas tentang bahasa pemrograman Python
dari dasar yang dibutuhkan oleh Anda yang belum menguasai koding.
Bagi sebagian orang yang memiliki latar belakang pendidikan non-IT, mempelajari bahasa pemrograman
Python adalah suatu tantangan tersendiri dalam belajar data science. Oleh karena itu, modul ini dibuat untuk
memudahkan Anda belajar bahasa pemrograman Python dengan langsung memberi contoh kode program
dan menampilkan outputnya.
Paket modul belajar data science ini juga menyediakan versi file IPYNB atau file Jupyter Notebook sehingga
Anda dapat langsung menjalankan kode-kode program tersebut serta mencoba-coba dengan nilai dan
parameter lainnya untuk berlatih.
Akhir kata, semoga ebook ini bermanfaat bagi Anda untuk memperoleh skill baru yang mungkin berguna
untuk karir Anda ke depannya. Jika Anda memiliki saran, kritik atau masukan positif apapun yang dapat
membantu kami memperbaiki modul ini di masa depan, silahkan kirimkan ke email penyusun
[email protected].
Salam,
Lutfia Afifah
Pengenalan Python - 2
Tipe Data - 6
Variabel - 14
Ekspresi - 17
String - 22
List - 33
Tuple - 40
Dictionary - 45
Set - 51
Seleksi Kondisi - 60
Perulangan (Loop) - 69
Fungsi (Function) - 74
Numpy 1 Dimensi - 81
Numpy 2 Dimensi - 90
ilmudatapy.com
1
Pengenalan Python
Python adalah salah satu bahasa pemrograman yang banyak digunakan mengerjakan proyek data science karena
menyediakan banyak library yang mudah digunakan untuk mendukung berbagai tugas seperti manipulasi
dataframe, visualisasi, sampai proses pemodelan machine learning. Sebelum mempelajari penggunaan libraries
tersebut, kita akan belajar tentang dasar-dasar dari pemrograman Python yang tentunya akan memudahkan
Anda ke depannya, terutama bagi Anda yang belum banyak belajar pemrograman.
Untuk mencetak suatu kalimat ataupun isi dari sebuah variabel di Python, Anda bisa menggunakan sebuah
fungsi bawaan Python yaitu print(). Cara menggunakannya cukup mudah yaitu hanya meletakkan kalimat
yang ingin dicetak di dalam tanda kurung sebagai argumen.
print("Hello World!")
print('Hello World!')
print(100)
Untuk mencetak string (teks dan karakter) harus menggunakan tanda kutip yang mengapit string tersebut. Anda
dapat menggunakan tanda kutip dua maupun tanda kutip satu sesuai preferensi Anda.
Selain menggunakan fungsi print(), di Python Anda juga dapat mencetak langsung seperti di bawah ini.
"Hello World!"
ilmudatapy.com
2
'Hello World!'
100
Untuk menambahkan komentar pada kode program, Anda dapat menggunakan simbol # sebelum menulis
komentar Anda. Python akan mengabaikan apapun yang tertulis setelah simbol # dalam satu baris tersebut.
Setelah menjalankan cell di atas, kalimat # Coba jalankan kode program ini di baris paling atas di
abaikan oleh Python karena diawali simbol #.
Selanjutnya, kalimat # Kode ini berfungsi untuk menampilkan "Hello World!" yang diletakkan
satu baris dengan fungsi print() juga diabaikan oleh Python karena merupakan sebuah komentar yang diawali
simbol # sebagai penjelasan untuk kode program pada baris tersebut.
Yang terakhir, kode #print("Halo") juga tidak dieksekusi oleh Python dan dianggap sebagai komentar karena
sebelum kode program tersebut ada simbol #. Simbol # pada sebuah baris kode program bisa jadi sengaja
diletakkan karena si programmer enggan menampilkan output dari kode tersebut.
"""
Komentar panjang yang terdiri dari beberapa baris,
dapat ditulis dengan diapit oleh tiga tanda kutip dua
seperti ini.
"""
print("Hello World!")
ilmudatapy.com
3
Contoh Error di Python
Dalam mengetik kode program, mungkin seringkali kita membuat kesalahan sehingga menyebabkan output yang
diharapkan tidak muncul. Saat Anda membuat kesalahan dalam penulisan kode misalnya, Python akan
memberikan pesan kesalahan yang akan menunjukkan kepada Anda dimana letak kesalahan yang Anda buat.
Jadi ada baiknya, pesan kesalahan tersebut dibaca baik-baik agar kita mengetahui bagian mana yang harus
diperbaiki.
Sebagai contoh misalnya, Anda membuat kesalahan dalam penulisan print yang ditulis frint.
frint("Selamat Pagi!")
Letak kesalahan yang kita buat, dalam hal ini ada pada baris ke-3 di cell tersebut yang ditunjukkan oleh
tanda panah.
Jenis error yang terjadi (NameError), dalam hal ini tertulis name 'frint' is not defined karena
frint bukan merupakan built-in function di Python.
Contoh error berikutnya misalnya kita lupa memberikan pasangan tanda kutip untuk mencetak string.
print("Selamat Pagi!)
Python merupakan bahasa pemrograman yang case sensitive, jadi huruf kecil akan dianggap berbeda dengan
huruf besar. Misal kita salah menulis print dengan Print.
Print("Selamat Pagi!")
ilmudatapy.com
4
Mengecek Versi Python
Untuk mengetahui versi Python yang sedang kita gunakan, kita dapat melihat pada pojok kanan atas Jupyter
Notebook. Selain itu, kita juga dapat mengeceknya dengan menggunakan modul sys.
sys adalah sebuah modul bawaan Python yang berisi banyak parameter dan fungsi khusus sistem, termasuk
versi Python yang digunakan. Sebelum menggunakannya, kita harus mengimpornya terlebih dahulu.
import sys
print(sys.version)
ilmudatapy.com
5
Tipe Data
Pada bab ini Anda akan belajar tentang tipe data dasar yang ada di Python. Jika Anda pernah belajar
pemrograman sebelumnya, Anda pasti sudah tidak asing dengan tipe data dasar seperti string, integer, float,
dan boolean.
String merupakan representasi untuk karakter atau teks. Integer dan float merepresentasikan sebuah bilangan
dimana integer untuk bilangan bulat (misal: 0, 1, 30, -8) dan float untuk bilangan desimal (misal: 2.5, -54.0).
Sementara itu, boolean merupakan tipe data yang hanya memiliki dua nilai yaitu True dan False.
String
String adalah sekumpulan karakter atau huruf. Di Python, tipe data string ditulis str. Objek string dibatasi oleh
tanda kutip satu atau kutip dua, jadi semua karakter di dalam tanda kutip, baik itu berupa huruf, angka, atau
karakter unik, merupakan bagian dari string tersebut.
Dalam contoh di atas, kita menampilkan string menggunakan built-in function dari Python yaitu print(). Bisa
dilihat bahwa penggunaan tanda kutip satu ataupun kutip dua sebagai batasan string tetap akan menghasilkan
output yang dimaksud, jadi bisa pilih salah satunya saja.
Python juga memungkinkan kita menampilkan string tanpa menggunakan function print().
Dari output yang dihasilkan di atas dapat dilihat bahwa jika mencetak string tanpa print(), maka output yang
dikeluarkan mengandung tanda kutip satu, meskipun kode yang dipakai menggunakan tanda kutip dua.
ilmudatapy.com
6
String juga dapat berisi karakter kosong.
print("")
print('')
""
''
Jika karakter kosong ditulis menggunakan print(), maka output yang dikeluarkan benar-benar kosong tanpa
tanda kutip. Sedangkan jika karakter kosong ditulis tanpa print(), outputnya hanya akan menghasilkan tanda
kutip satu.
Setelah di-run, kita akan melihat pesan SyntaxError yang menunjukkan bahwa penulisan sintaknya salah. Python
akan bingung karena ada tiga tanda kutip satu pada contoh pertama dan ada empat tanda kutip dua pada
contoh kedua.
Bagaimana mengatasinya?
Cara mengatasinya adalah jika ingin menampilkan tanda kutip satu misalnya, maka pembatas string yang
digunakan harus tanda kutip dua. Begitu pula sebaliknya, jika ingin menampilkan tanda kutip dua, maka
pembatas string-nya menggunakan tanda kutip satu. Coba jalankan kode di bawah ini.
ilmudatapy.com
7
print('She said, "go!" ')
Ada cara lain jika tanda kutip yang digunakan sebagai pembatas string dan yang ingin ditampilkannya sama,
yaitu dengan menyisipkan backslash (\) sebelum tanda kutip yang ingin dicetak.
Integer
Integer merupakan tipe data untuk objek numerik berupa bilangan bulat positif dan negatif, misalnya 0, 1, 2, 3,
dan seterusnya, serta -1, -2, -3, dan seterusnya.
Untuk mengeluarkan output berupa integer juga bisa menggunakan print() maupun langsung menuliskan
bilangannya langsung, namun tidak perlu dibatasi oleh tanda kutip.
print(12345)
20
print(-10)
ilmudatapy.com
8
Float
Float merupakan tipe data untuk objek numerik berupa bilangan desimal, baik positif atau negatif, misalnya 1.4,
3.5, -2.876, -74.2, dan lainnya. Sama seperti penulisan kode untuk menampilkan integer, kita tidak perlu
membatasi bilangan float dengan tanda kutip. Perhatikan contoh-contoh berikut.
print(0.2)
-3.85
print(.20)
print(.28)
.2
print(4.)
4.
Boolean
Tipe data Boolean hanya memiliki dua nilai yaitu True dan False. Tipe data ini digunakan untuk mengecek
apakah suatu kondisi benar atau salah. Lihatlah contoh di bawah ini.
print(2 == 3)
2 == 3
print(4 == 4)
4 == 4
ilmudatapy.com
9
print("AKU" == "aku")
"AKU" == "aku"
print('ini' == 'ini')
'ini' == 'ini'
Pada contoh 1, kita menuliskan 2 sama dengan 3 dan menghasilkan output False, yang berarti 2 memang tidak
sama dengan 3. Selanjutnya contoh 2 menghasilkan output True karena memang 4 sama dengan 4.
Untuk contoh menggunakan string, "AKU" dan "aku" menghasilkan output False dan dianggap bukan merupakan
string yang sama karena Python ini case sensitive, artinya huruf besar tidak sama dengan huruf kecil. Sementara
contoh terakhir menghasilkan nilai True karena dua string yang dibandingkan ditulis dengan huruf kecil, jadi
dianggap sama.
type(6)
type(-1)
type(0.5)
type('saya lapar')
type(2==3)
type(True)
Dapat dilihat dari output yang dihasilkan bahwa output dari type() adalah jenis tipe data dari objek yang
dimaksud (yang di dalam tanda kurung).
ilmudatapy.com
10
Konversi Tipe Data
Di Python, kita juga dapat mengonversi tipe data dari suatu objek, misalnya dari integer ke float (misalnya 2
menjadi 2.0). Mari kita cek terlebih dahulu tipe datanya.
type(2)
float(2)
type(float(2))
Saat kita mengonversi integer ke float, nilai yang dihasilkan tidak berubah. Namun berbeda saat kita melakukan
konversi dari float ke integer. Hasil konversi float ke integer mungkin akan menghilangkan sedikit informasi dari
bilangan tersebut, karena hasilnya akan dibulatkan.
int(1.4)
int(-3.8)
int(98.78)
int('20')
int('-3')
ilmudatapy.com
11
float('99.5')
float('-27')
Untuk mengonversi string ke integer atau float, kita harus memasukkan angka saja sebagai argumen int() atau
float() seperti pada contoh di atas. Jika string yang akan dikonversi mengandung selain angka, akan
menyebabkan error.
str(20)
str(-15)
str(87.02)
int(True)
ilmudatapy.com
12
int(False)
float(True)
float(False)
bool(1)
bool(0)
bool(1.0)
bool(0.0)
ilmudatapy.com
13
Variabel
Variabel adalah identifier atau bisa juga dikatakan sebuah wadah untuk menampung data yang memiliki nilai
yang dinamis atau dapat berubah-ubah. Di Python, variabel tidak perlu dideklarasikan di awal seperti pada
aturan beberapa bahasa pemrograman lain. Jadi kita bisa langsung menginisialisasi variabel yang akan dipakai.
Inisialisasi Variabel
Inisialisasi variabel sangat mudah yaitu hanya menggunakan tanda sama dengan (=). Inisialisasi variabel harus
ditulis terlebih dahulu sebelum digunakan.
x = 10
print(x)
Seperti yang pernah dibahas di bab sebelumnya, kita juga bisa mencetak nilai variabel tanpa menggunakan
print().
Nilai dalam variabel yang sudah digunakan juga bisa diganti. Misalnya kita akan mengganti nilai variabel x
menjadi 2000.
x = 2000
x
Sebelumnya kita telah memberi nilai x dengan bilangan integer 10, kemudian pada kode di atas kita
memberikan nilai baru pada variabel x dengan bilangan integer 2000. Saat kita mencetak x, maka output yang
akan keluar adalah 2000. Itu karena nilai x sekarang adalah 2000 dan nilai 10 yang sebelumnya telah terhapus.
Nilai sebuah variabel juga bisa diganti dengan tipe data yang berbeda.
var = 3.38
print(var)
ilmudatapy.com
14
var = "Ganti menjadi string"
print(var)
Variabel var sebelumnya memiliki nilai 3.38 yang berarti tipe datanya adalah float, selanjutnya isi variabel var
diganti menjadi sebuah string. Nilai variabel yang digunakan adalah nilai yang diinisialisasi paling terakhir, karena
itu jika kita akan menggunakan kembali variabel dengan nilai sebelumnya, kita harus menginisialisasi kembali
variabel tersebut dengan nilai yang dimaksud.
a = b = c = 100
Jika kita print() ketiga variabel tersebut, ketiganya akan mengeluarkan output yang sama yaitu 100.
print(a, b, c)
Bisa kita lihat bahwa variabel a, b, dan c sama-sama memiliki nilai 100. Nah, misalnya kita ingin mengubah nilai
dari salah satu variabel tersebut, katakanlah b yang akan kita ubah.
b = 500
Maka saat kita melakukan print(), nilai b sudah berubah menjadi 500.
print(a, b, c)
nama_mhs = 'Lutfia'
matkul_mhs = 'Algoritma'
nilai_mhs = 80
ilmudatapy.com
15
Nama variabel tidak boleh diawali dengan angka seperti di bawah ini.
288x = 100
Perlu dicatat bahwa Python ini case sensitive, artinya bahwa huruf besar dan huruf kecil tidaklah sama.
Perhatikan contoh berikut.
nilai = 70
Nilai = 80
NILAI = 90
Meskipun sama-sama dibaca "nilai", namun tiga variabel tersebut berbeda. nilai tidak sama dengan NILAI
ataupun Nilai. Jadi, perhatikan baik-baik penamaan variabelnya.
help("keywords")
Jadi, jika kita melakukan inisialisasi variabel menggunakan salah satu kata di atas, maka akan terjadi error.
if = 4
ilmudatapy.com
16
Ekspresi
Pada bab ini kita akan membahas tentang ekspresi di Python termasuk di dalamnya akan dibahas operasi
aritmatika di Python yang mencakup penjumlahan, pengurangan, perkalian, pembagian, modulo, dan lainnya.
Ekspresi adalah rangkaian operand dan operator seperti a + b atau a + b – 4 atau 20 * 2. Operator adalah
simbol yang digunakan untuk operasi perhitungan, sedangkan operand adalah nilai yang dieksekusi oleh
operator tersebut. Sebuah operand dapat berupa variabel yang berisikan objek maupun sebuah nilai langsung
yang berupa angka.
Simple Expression
Operasi Penjumlahan
Operasi penjumlahan di Python dapat menggunakan operator +. Perhatikan contoh di bawah ini.
10 + 65
87 + 3 + 54 + 12
a = 15
b = 30
Operasi Pengurangan
Operasi pengurangan di Python dapat menggunakan operator -. Perhatikan contoh di bawah ini.
70 - 30
ilmudatapy.com
17
189 - 37 - 62
a = 15
b = 30
Operasi Perkalian
Operasi perkalian di Python dapat menggunakan operator *. Perhatikan contoh di bawah ini.
8 * 8
2 * 5 * 3
a = 15
b = 30
Operasi Pembagian
Operasi pembagian di Python dapat menggunakan operator /. Perhatikan contoh di bawah ini.
20 / 4
100 / 2 / 3
a = 15
b = 30
ilmudatapy.com
18
b / 4 # Ekspresi pembagian dengan operand berupa variabel dan angka
Hasil dari operasi pembagian menggunakan / selalu dalam bentuk bilangan float, meskipun tidak ada sisa bagi.
20 % 4
20 % 3
a = 15
b = 30
10 // 3
78 // 5
a = 15
b = 30
a // b
Jika hasil pembulatan pembagian adalah negatif maka angkanya dibulatkan ke atas, karena dalam bilangan
negatif semakin besar angkanya maka semakin kecil. Jadi pada dasarnya operator // tetap membulatkan hasil
bagi ke bilangan integer yang lebih kecil (pembulatan ke bawah). Perhatikan contoh berikut.
ilmudatapy.com
19
8 // 3
8 // -3
8 // 3
8 // -3
Operasi Eksponensial
Operasi eksponensial atau pangkat di Python dapat menggunakan operator **. Perhatikan contoh di bawah ini.
a = 15
b = 4
a ** b # a pangkat b
a ** 2
8 ** b
Complex Expression
Kita juga dapat membuat ekspresi yang kompleks, misalnya perhitungan nilai rata-rata atau perhitungan
gabungan berbagai operator lainnya. Perhatikan contoh berikut.
(69 + 20) * 6 / 2
x = 10
(x - 15) * (8 / x)
ilmudatapy.com
20
(30 ** 2) / 17 + 100
30 / (8 - 2)
30 / 8 - 2
x = 100
y = 20
z = 5
(x + y) * z
x + y * z
Dapat dilihat dari output yang dihasilkan dari beberapa blok kode di atas, hasil dari 30/(8-2) yang
mengeluarkan output yang berbeda dengan 30/8-2.
Sementara itu pada contoh berikutnya, output dari (x+y)*z juga memiliki nilai yang berbeda dengan x+y*z.
ilmudatapy.com
21
String
Pada bab ini, kita akan membahas tentang operasi yang dapat dilakukan pada string menggunakan bahasa
pemrograman Python.
String adalah salah satu tipe objek di Python yang berupa teks atau karakter. Penulisannya harus diapit oleh dua
tanda kutip, bisa menggunakan tanda kutip satu ataupun tanda kutip dua.
Contoh String
"Selamat datang" # Contoh string yang menggunakan tanda kutip dua
Bilangan yang di-assign sebagai string, tidak dapat diproses untuk perhitungan aritmatika.
print('Selamat datang')
Sama seperti tipe objek yang berupa bilangan, string juga dapat dimasukkan ke dalam variabel.
kota = 'Jakarta'
kota
ilmudatapy.com
22
Operasi String
Menggabungkan string
Untuk menggabungkan dua string atau lebih, Anda dapat menggunakan operator +. Lihat contoh di bawah ini.
nama = 'John'
Menduplikasi string
Untuk menduplikasi string, Anda dapat menggunakan operator *. Perhatikan contoh di bawah ini.
s = "Apel"
3 * s
s * 5
'Apel ' * 5
Bilangan pengali string harus berupa bilangan integer positif. Penggunaan angka 0 maupun bilangan negatif
sebagai pengali akan menghasilkan karakter kosong.
s * 0
-9 * s
ilmudatapy.com
23
Mengecek keberadaan string (apakah ada?)
Operator in digunakan untuk mengecek apakah suatu karakter termasuk ke dalam anggota suatu string. Output
yang akan dihasilkan berupa boolean, True atau False. String atau karakter yang ingin dicek keberadaannya juga
bisa berupa kata maupun hanya satu karakter saja.
a = "apel"
b = "anggur"
buah = "jeruk, apel, melon, mangga"
b in buah
a = "apel"
b = "anggur"
buah = "jeruk, apel, melon, mangga"
b not in buah
ilmudatapy.com
24
Indexing
String terdiri dari rentetan karakter. Setiap karakter dalam string dapat diakses menggunakan indeks yang
direpresentasikan oleh bilangan integer. Indeks string dimulai dari 0, 1, 2, dan seterusnya. Spasi juga termasuk
karakter, jadi spasi yang ada di dalam string ikut terindeks.
print(provinsi[0])
provinsi[6]
provinsi[9]
Negative Indexing
Jika kita ingin mengambil isi indeks dari bagian belakang string, kita dapat menggunakan negative indexing.
provinsi[-1]
provinsi[-9]
ilmudatapy.com
25
Slicing
Kita dapat mengambil beberapa karakter pada string menggunakan slicing. Misalnya kita ingin mengambil isi
indeks 0-2 dan 5-8.
Angka pertama adalah indeks dimana kita akan mulai memotong, sedangkan angka kedua adalah indeks terakhir
yang ingin dipotong ditambah 1.
Jika kita ingin mengambil kata "DKI" dimana itu merupakan indeks 0-2, kita harus menuliskan kodenya dengan
provinsi[0:3]. Jika kita hanya menulis kodenya dengan provinsi[0:2], maka yang terambil hanya "DK".
provinsi[0:3]
provinsi[0:2]
provinsi[5:9]
provinsi[5:8]
Stride
Kita juga dapat mengambil beberapa karakter dengan langkah yang kita inginkan. Misalnya kita ingin mengambil
string dengan diloncat satu karakter alias setiap dua langkah.
ilmudatapy.com
26
Jika kita akan menerapkannya pada seluruh karakter pada string, kita dapat menulis kodenya seperti pada blok
kode di bawah ini. Kita menulis angka 2 pada sebagai jumlah langkah yang ingin diambil.
Namun, jika kita hanya ingin mengambil karakter pada potongan string tertentu dengan langkah tertentu,
misalnya akan mengambil hanya dari kata "Jakarta", kita dapat menulis kodenya seperti ini.
Atau jika sampai akhir string, kita bisa tidak menuliskan angka yang ditengah yang merupakan angka untuk
menyatakan batas akhirnya.
Jika ingin mengambil dari awal string, namun dengan batas akhir tertentu, angka pertama bisa tidak ditulis.
Selain dua langkah, kita juga bisa menentukan berapapun langkah yang diinginkan.
ord() berfungsi untuk menghasilkan sebuah nilai integer berupa kode ASCII dari sebuah karakter.
Komputer menyimpan segala informasi apapun sebagai angka/bilangan. Untuk merepresentasikan data,
digunakan skema terjemahan yang memetakan setiap karakter ke angka yang mewakilinya. Skema yang paling
umum digunakan adalah ASCII yang merupakan kepanjangan dari American Standard Code for Information
Interchange.
Singkatnya, setiap karakter di komputer itu memiliki angka unik masing-masing. Nah, fungsi ord() ini berfungsi
untuk menampilkan kode ASCII dari sebuah karakter.
ilmudatapy.com
27
ord('a') # Kode ASCII untuk a
Fungsi chr() merupakan kebalikan dari ord() yakni menghasilkan karakter yang merupakan representasi dari
kode ASCII yang dimasukkan.
Jika kita ingin mengetahui panjang string, kita dapat menggunakan fungsi len(). Fungsi len() menghitung
jumlah karakter pada string, termasuk spasi, dan menampilkan outputnya dalam bentuk bilangan integer.
len('John')
len(' ')
len('1 + 2 = 3')
ilmudatapy.com
28
Konversi objek bilangan menjadi string dengan str()
Di Python, kita dapat mengubah tipe data dari sebuah objek. Untuk pengkonversian tipe data menjadi sebuah
string dapat menggunakan fungsi str().
str(30.8)
str(30 + 20)
Pada contoh pertama, 30.8 yang merupakan bilangan float diubah menjadi string dengan ditandai dengan
adanya batasan tanda kutip pada output yang dihasilkan. Begitu pula pada contoh kedua. Operasi bilangan
integer yang berupa penjumlahan dieksekusi terlebih dahulu sebelum hasilnya dikonversi menjadi string.
Jika objek sudah berupa string, maka akan tetap string seperti contoh di bawah ini.
str('hallo')
b = a.lower()
print("sesudah : ", b)
"PYTHON".lower()
ilmudatapy.com
29
a = "Saya sedang belajar Python"
print("sebelum : ", a)
b = a.upper()
print("sesudah : ", b)
"python".upper()
kota = "Bandung"
kotaBaru = kota.replace(kota, "Bogor") # Memasukkan hasil replace ke variabel baru
kotaBaru
ilmudatapy.com
30
provinsi = 'DKI Jakarta'
provinsi.find('KI')
provinsi.find('akar')
provinsi.find('J')
Jika sub-string yang dimaksud tidak ditemukan, maka Python akan menghasilkan output -1.
provinsi.find('Jabgtwk')
teks = "Bandung adalah ibukota Jawa Barat. Saya berasal dari Bandung."
teks.count("Bandung")
jumlah_a = teks.count('a')
print(jumlah_a)
"Mississippi".count('s')
teks = "Bandung adalah ibukota Jawa Barat. Saya berasal dari Bandung."
teks.endswith(".")
teks.endswith("Bandung")
ilmudatapy.com
31
Mengubah huruf pertama string menjadi huruf kapital
.capitalize() berfungsi untuk mengubah huruf pertama dalam sebuah string menjadi huruf kapital.
Escape Sequence
Escape sequence adalah karakter yang tidak dapat ditulis secara langsung karena termasuk sulit untuk
direpresentasikan. Cara menuliskannya yaitu dengan menggunakan backslash \ yang disertai representasi
karakternya.
Newline
Untuk membuat newline atau baris baru, kita dapat menggunakan \n.
Tab
Untuk membuat tab, kita dapat menggunakan \t.
print(' Hari ini hujan deras \t disertai petir.')
Backslash
Menampilkan backslash juga tidak bisa dilakukan secara langsung, melainkan dengan menggunakan backslash di
depannya sehingga akan ada double backslash \\.
ilmudatapy.com
32
List
Pada bab ini kita akan belajar tentang list, termasuk manipulasi list seperti menambah, menghapus, dan
mengubah elemen list, serta indexing, slicing, stride pada list.
List adalah salah satu tipe data yang ada di Python selain tipe data dasar seperti string, integer, float, dan
boolean. List mirip dengan array di bahasa pemrograman lain namun lebih fleksibel. List digunakan untuk
menyimpan koleksi data dalam berbagai tipe data seperti string, integer, float, dan sebagainya. Kita juga dapat
menyimpan data berupa list di dalam sebuah list.
Di Python, List didefinisikan dengan menggunakan kurung siku [] dan setiap elemen di dalam list dipisahkan
oleh koma.
a = [1, 2, 3, 4, 5]
print(a)
Mengakses List
Indexing
Pada dasarnya, indexing pada list sama dengan indexing pada string yang sudah didiskusikan pada materi
sebelumnya. Indexing dimulai dari angka 0 dan seterusnya, atau bisa juga menggunakan negative indexing
seperti pada gambar berikut.
ilmudatapy.com
33
Untuk mengakses isi list pada indeks tertentu, Anda dapat menuliskan nama list disertai dengan kurung siku
yang berisi nomor indeks yang dimaksud.
fruits[-3]
print(fruits[4])
Slicing
Seperti string, kita juga dapat melakukan slicing atau memotong list untuk mengambil bagian tertentu. Misalnya
kita ingin mengambil elemen list apple, orange, dan mango.
fruits[0:2]
print(fruits[2:5])
Stride
fruits[1::2]
fruits[1:5:2]
ilmudatapy.com
34
Nested List
Selain berisi string, integer, float, dan boolean, list juga dapat berisi list lain. Ini dinamakan nested list atau list
bersarang.
Pada contoh di atas, list m mengandung tiga sub-list. Lihat ilustrasinya di bawah ini.
List yang berisi list juga dapat digabung dengan tipe data lain.
ilmudatapy.com
35
n = [2, 'apple', ['a', 'b'], 80.6, [100, 300]]
n[2][0]
n[2][1]
n[4][0]
n[4][1]
Manipulasi List
List dapat dimanipulasi seperti mengubah elemen list pada indeks tertentu, menambah elemen list, dan
menghapus elemen list.
fruits[0] = 'pineapple'
fruits
Menambah/menggabungkan list
Menambah elemen baru pada list dapat menggunakan operator + ataupun method yang tersedia di Python.
Menggunakan operator +
Operator + bisa digunakan untuk menambahkan elemen baru di awal maupun akhir list.
ilmudatapy.com
36
# Menambahkan 10 dan 20 pada akhir list fruits
fruits = ['pineapple', 'orange', 'mango', 'guava', 'watermelon', 'durian']
fruits = fruits + [10, 20]
fruits
Menggunakan method
Ada 3 method yang dapat digunakan untuk menambahkan item baru pada list, yaitu append(), extend(),
insert().
append()
append() adalah salah satu method yang dapat digunakan untuk manipulasi list yaitu untuk menambahkan
elemen baru di akhir list.
Harap dicatat bahwa method list, termasuk salah satunya adalah append(), hanya melakukan modifikasi list di
list itu sendiri dan tidak bisa menghasilkan list baru. Perhatikan contoh berikut.
Pada contoh di atas, kita menggunakan contoh sebelumnya, namun fruits.append('apple') dimasukkan
ke dalam list baru yaitu x. Alhasil, saat kita mencoba menampilkan isi dari list x, tidak keluar hasil apapun alias
kosong.
Method extend() berfungsi sama seperti append() yakni untuk menambahkan elemen baru pada list namun
elemen tersebut ditambahkan secara individual. Masih belum paham? Jadi gini, nantinya elemen yang kita
letakkan di dalam tanda kurung akan dipisahkan per karakter.
ilmudatapy.com
37
Lalu bagaimana jika ingin menggunakan method extend() namun mengharapkan output yang tidak terpisah
seperti itu? Caranya adalah dengan membatasi string tersebut dengan tanda kurung siku [].
Method insert() digunakan apabila kita ingin menyisipkan elemen baru di list pada indeks tertentu. Misalnya
kita ingin menambahkan apple pada indeks ke 2.
Perintah del merupakan salah satu cara menghapus list berdasarkan indeks . Misalnya kita akan menghapus
item pada indeks ke 3 yaitu guava dari list fruits.
Menggunakan method
Ada 2 method yang dapat digunakan untuk menghapus elemen list, yaitu remove() dan pop().
Method remove() akan menghapus item di dalam sebuah list berdasarkan nama item atau elemen tersebut.
Misalnya kita akan menghapus mango dari list fruits.
ilmudatapy.com
38
pop(< index >)
Jika kita ingin menghapus elemen list berdasarkan indeks, kita bisa menggunakan method pop().
pop()
Jika tidak memasukkan nomor indeks ketika menggunakan pop(), maka yang akan terhapus adalah objek atau
elemen paling akhir yang ada di dalam list.
ilmudatapy.com
39
Tuple
Tuple merupakan salah satu tipe data di Python yang terdiri dari sekumpulan objek yang terurut. Objek-objek
pada tuple bisa berupa berbagai tipe data seperti string, integer, float, ataupun tuple itu sendiri.
Tuple hampir sama dengan list, hanya saja tuple bersifat immutable yang berarti tidak dapat diubah-ubah isinya.
Jadi, kita tidak dapat menambahkan elemen baru pada tuple, maupun menghapus dan mengubah nilai-nilai dari
setiap elemen di dalam tuple.
Mengakses tuple
Indexing
Sama seperti list, tuple dapat diakses menggunakan indeks.
print(cth_tuple[0])
print(cth_tuple[1])
print(cth_tuple[2])
print(cth_tuple[3])
ilmudatapy.com
40
Kita juga dapat menggunakan negative indexing dalam mengakses elemen tuple yang dimulai dari -1 untuk
elemen paling belakang.
cth_tuple[-1]
print(cth_tuple[-1])
print(cth_tuple[-2])
print(cth_tuple[-3])
print(cth_tuple[-4])
Slicing
Kita juga dapat memotong tuple untuk mendapatkan elemen dengann range indeks tertentu.
Jika ingin mengambil dua elemen terakhir pada tuple cth_tuple, gunakan kode berikut.
cth_tuple[2:4]
atau kita juga bisa tidak memasukkan angka setelah tanda titik dua :.
cth_tuple[2:]
Jika kita ingin mengakses elemen dari mulai indeks 0 sampai indeks tertentu, kita bisa tidak menuliskan angka
pertama sebelum titik dua :.
cth_tuple[:3]
Nested Tuple
Selain berisi objek dengan tipe data string, integer, atau float, tuple juga dapat berisi tuple lain. Ini dinamakan
nested tuple atau tuple bersarang.
nested_tuple = ('a', 'b', (1, 2, 3), ('c', (4, 'd')), 5)
nested_tuple
ilmudatapy.com
41
# print elemen dari masing-masing indeks
nested_tuple[3][1][0]
Operasi tuple
Sorting tuple
Kita dapat mengurutkan elemen di tuple menggunakan fungsi sorted(). Perhatikan contoh tuple berikut.
ilmudatapy.com
42
Kita dapat menggunakan fungsi sorted() untuk mengurutkan lalu memasukkannya pada variabel baru.
bil_sorted = sorted(bil)
bil_sorted
Menggabungkan tuple
Untuk menggabungkan tuple kita dapat menggunakan operator +.
Seperti yang sudah disebutkan di atas, tuple bersifat immutable (tidak dapat diubah isinya), sehingga jika kita
ingin mengubah isi tuple, kita harus mengubahnya dahulu menjadi list yang bersifat mutable (dapat diubah).
Sebelum diubah menjadi list, mari kita coba mengubah elemen tuple tanpa konversi. Cara ini tentu saja akan
menghasilkan error.
ilmudatapy.com
43
buah = ('durian', 'anggur', 'delima', 'mangga', 'jambu')
Sekarang mari kita ubah dahulu tuple buah tersebut menjadi list dengan kode di bawah ini.
list_buah = list(buah)
list_buah
Setelah menjadi sebuah list, sekarang Anda dapat mengubah, menambahkan, atau menghapus isinya.
list_buah[0] = 'jeruk'
list_buah
Sekarang kita akan mengubah kembali list tersebut menjadi tuple dengan kode di bawah ini.
buah = tuple(list_buah)
buah
Kita juga dapat mengecek tipe data dari elemen di dalam tuple.
type(buah[0])
ilmudatapy.com
44
Dictionary
Dictionary adalah sebuah tipe data di Python yang berfungsi untuk menyimpan koleksi data dan didefinisikan di
dalam kurung kurawal {}. Tidak seperti list atau tuple yang bersifat terurut berdasarkan indeks, dictionary
bersifat tidak terurut. Setiap item dalam dictionary terdiri dari pasangan key-value yang dipisahkan oleh titik
dua :.
Key pada dictionary bisa berupa teks, bilangan, atau tuple, namun value-nya bisa berupa tipe data apapun.
1, 2, 3, dan (4, 5) merupakan key, sedangkan a, b, c, dan d merupakan value untuk masing-masing key-nya.
Pada contoh di atas, nama merupakan key dan Budi merupakan value-nya. Begitu juga dengan kota asal yang
merupakan sebuah key yang memiliki nilai yaitu Jakarta, dan key usia yang memiliki nilai 21.
ilmudatapy.com
45
Mengakses dictionary
Mengakses value
Untuk mengakses value pada dictionary, kita dapat menggunakan key yang ditempatkan di dalam kurung siku []
setelah nama dictionary-nya.
data_mhs['usia']
Selain itu, kita juga dapat menggunakan method get() yang akan mengeluarkan hasil yang sama.
data_mhs.get('nama')
data_mhs.get('nama')
Jika hanya ingin memperoleh value dari sebuah dictionary, kita dapat menggunakan method values().
data_mhs.values()
data_mhs.keys()
Atau bisa juga menggunakan operator *. Perhatikan contoh penggunaannya di bawah ini.
[*data_mhs]
ilmudatapy.com
46
Nested Dictionary
Kita juga dapat membuat nested dictionary atau dictionary yang berada di dalam dictionary.
employees = {
'employee1': {'name': 'John',
'year': 2016},
'employee2': {'name': 'Jessica',
'year': 2018},
'employee3': {'name': 'Alex',
'year': 2019}
}
employees
Atau bisa juga dengan membuat dictionary untuk masing-masing employee, lalu buat dictionary induk untuk
menampung dictionary-dictionary tersebut. Perhatikan kode berikut.
employee1 = {
'name': 'John',
'year': 2016
}
employee2 = {
'name': 'Jessica',
'year': 2018
}
employee3 = {
'name': 'Alex',
'year': 2019
}
employees = {
'employee1': employee1,
'employee2': employee2,
'employee3': employee3
}
employees
ilmudatapy.com
47
data_mhs['kota asal'] = 'Bandung' # Mengubah kota asal
data_mhs
employees = {
'employee1': {'name': 'John',
'year': 2016},
'employee2': {'name': 'Jessica',
'year': 2018},
'employee3': {'name': 'Alex',
'year': 2019}
}
data_mhs['nilai akhir'] = 79 # Menambahkan key 'nilai akhir' yang diberikan nilai '79'
data_mhs
Ada beberapa method yang dapat digunakan untuk menghapus item pada dictionary, diantaranya pop(),
popitem(), dan juga menggunakan del.
data_mhs = {'nama': 'Budi', 'kota asal': 'Jakarta', 'usia': 21, 'nilai akhir': 79}
ilmudatapy.com
48
Method popitem() akan menghapus item terakhir.
data_mhs = {'nama': 'Budi', 'kota asal': 'Jakarta', 'usia': 21, 'nilai akhir': 79}
del juga dapat digunakan untuk menghapus item berdasarkan nama key.
data_mhs = {'nama': 'Budi', 'kota asal': 'Jakarta', 'usia': 21, 'nilai akhir': 79}
Selain digunakan untuk menghapus item berdasarkan nama key, del juga dapat digunakan untuk menghapus
keseluruhan dictionary.
data_mhs = {'nama': 'Budi', 'kota asal': 'Jakarta', 'usia': 21, 'nilai akhir': 79}
Jika Anda menjalankan kode di atas di Jupyter Notebook, Anda akan melihat pesan error yang menyatakan name
'data_mhs' is not defined. Itu karena data_mhs telah terhapus sebelum mengeksekusi print().
Namun, jika Anda hanya bermaksud untuk mengosongkan dictionary tanpa menghapusnya, Anda dapat
menggunakan method clear().
data_mhs = {'nama': 'Budi', 'kota asal': 'Jakarta', 'usia': 21, 'nilai akhir': 79}
Dapat dilihat bahwa output dari kode di atas hanya menghasilkan dictionary kosong.
ilmudatapy.com
49
Duplikasi dictionary
Untuk menduplikasi dictionary, kita dapat menggunakan method copy().
data_mhs = {'nama': 'Budi', 'kota asal': 'Jakarta', 'usia': 21, 'nilai akhir': 79}
data_mhs = {'nama': 'Budi', 'kota asal': 'Jakarta', 'usia': 21, 'nilai akhir': 79}
data_mhs = {'nama': 'Budi', 'kota asal': 'Jakarta', 'usia': 21, 'nilai akhir': 79}
'alamat' in data_mhs
ilmudatapy.com
50
Set
Set adalah sebuah tipe data untuk menampung sekumpulan objek unik di Python yang didefinisikan dengan
tanda kurung kurawal {}. Jika ada elemen yang sama, maka Python akan otomatis menghapusnya.
setA = {1, 2, 3, 3, 3, 4, 5, 5}
setA
Dari output di atas, terlihat bahwa Python menghapus duplikasi angka 3 dan 5, sehingga output yang
dikeluarkan berupa nilai unik 1, 2, 3, 4, 5.
Set bisa berisi elemen dengan berbagai tipe data, namun hanya tipe data yang bersifat immutable atau tidak
dapat diubah. Jadi, list yang bersifat mutable tidak dapat menjadi elemen pada set.
Set juga bersifat tidak terurut, maksudnya adalah output yang ditampilkan mungkin tidak akan sama urutannya
dengan yang didefinisikan.
Sekarang kita coba memasukkan list ke dalam set. Ini akan menyebabkan error.
ilmudatapy.com
51
Kita juga tidak dapat melakukan indexing pada set. Jika itu dilakukan, maka akan muncul pesan error.
setB[0]
setA = {1, 2, 3, 4, 5}
setA.add(10)
print(setA)
Kita juga dapat menambah beberapa elemen baru sekaligus pada set dengan menggunakan method update().
setA = {1, 2, 3, 4, 5}
setA.update(['jeruk', 'apel', 'melon'])
print(setA)
ilmudatapy.com
52
Menghapus elemen pada set
Untuk menghapus elemen tertentu pada set, kita dapat menggunakan method remove() atau discard().
Jika elemen yang dimaksud tidak ada di dalam set, remove() akan menghasilkan error, sedangkan discard()
tidak menghasilkan error.
# Contoh penggunaan remove() jika elemen yang ingin dihapus tidak ada di dalam set
# Contoh penggunaan discard() jika elemen yang ingin dihapus tidak ada di dalam set
Kita juga dapat menggunakan method pop() untuk menghapus elemen terakhir pada set. Namun, perlu diingat
bahwa set bersifat tidak terurut sehingga kita tidak tahu pasti elemen apa yang akan terhapus.
ilmudatapy.com
53
# Contoh penggunaan pop()
Jika kita print setBuah.pop(), maka akan menampilkan elemen yang terhapus.
setBuah = {'jeruk', 'apel', 'melon', 'nanas', 'semangka', 'jambu'}
print('Sebelum menghapus elemen terakhir:', setBuah)
print('Elemen yang terhapus: ', setBuah.pop())
Jika kita ingin menghapus set secara keseluruhan, kita dapat menggunakan del.
# Menggunakan del untuk menghapus set keseluruhan
Output di atas menghasilkan error karena setBuah sudah dihapus sebelum fungsi print() dieksekusi.
Jika kita hanya ingin mengosongkan set, maka kita dapat menggunakan method clear().
setBuah = {'jeruk', 'apel', 'melon', 'nanas', 'semangka', 'jambu'}
setBuah.clear() # Mengosongkan set dengan clear()
print(setBuah)
Duplikasi set
Untuk menduplikasi set, kita dapat menggunakan method copy().
ilmudatapy.com
54
Menjumlahkan seluruh elemen pada set
Untuk menjumlahkan seluruh elemen pada set, kita dapat menggunakan function sum().
A = {1, 2, 3, 4, 5, 6}
B = {5, 6, 7, 8, 9}
A = {1, 2, 3, 4, 5, 6}
B = {5, 6, 7, 8, 9}
ilmudatapy.com
55
Method update() juga dapat digunakan untuk operasi ini.
A = {1, 2, 3, 4, 5, 6}
B = {5, 6, 7, 8, 9}
Intersection
Intersection atau irisan adalah mengambil nilai yang sama dari kedua set. Di Python, kita dapat menggunakan
method intersection() atau operator &.
A = {1, 2, 3, 4, 5, 6}
B = {5, 6, 7, 8, 9}
A = {1, 2, 3, 4, 5, 6}
B = {5, 6, 7, 8, 9}
A & B # Mengambil nilai yang sama dari dua set menggunakan &
Difference
Difference atau selisih A dari B (A - B) adalah kumpulan elemen yang ada di A tapi tidak ada di B. Begitu pun
sebaliknya, B - A adalah kumpulan elemen yang ada di B tapi tidak ada di A. Di Python, difference dapat
diperoleh dengan menggunakan method difference() ataupun dengan operator -.
A = {1, 2, 3, 4, 5, 6}
B = {5, 6, 7, 8, 9}
A = {1, 2, 3, 4, 5, 6}
B = {5, 6, 7, 8, 9}
A – B # Menggunakan operator -
ilmudatapy.com
56
Symmetric Difference
Symmetric difference adalah kumpulan elemen yang ada di A dan B namun tidak mengikutsertakan elemen yang
ada pada keduanya alias mengeliminasi intersection. Symmetric difference dapat diperoleh dengan
menggunakan method symmetric_difference() atau dengan operator ^.
A = {1, 2, 3, 4, 5, 6}
B = {5, 6, 7, 8, 9}
A = {1, 2, 3, 4, 5, 6}
B = {5, 6, 7, 8, 9}
A ^ B
'melon' in setBuah
A = {1, 2, 3, 4, 5, 6}
B = {5, 6, 7, 8, 9}
A.isdisjoint(B)
ilmudatapy.com
57
C = {'a', 'b', 'c'}
D = {'d', 'e', 'f'}
C.isdisjoint(D)
A = {1, 2, 3, 4, 5, 6}
B = {5, 6, 7, 8, 9}
A.issubset(B)
C = {1, 2, 3}
D = {1, 2, 3, 4, 5}
C.issubset(D)
C = {1, 2, 3}
D = {1, 2, 3, 4, 5}
A = {1, 2, 3, 4, 5, 6}
B = {5, 6, 7, 8, 9}
A.issuperset(B)
C = {1, 2, 3}
D = {1, 2, 3, 4, 5}
ilmudatapy.com
58
Frozenset
Seperti yang kita tahu bahwa set bersifat mutable atau dapat dimodifikasi. Untuk membuat set yang bersifat
immutable, kita dapat menggunakan frozenset. Kita dapat membuat frozenset dengan menggunakan function
frozenset(). Misalnya kita akan coba membuat frozenset seperti di bawah ini.
A = frozenset([1, 2, 3, 4, 5, 6])
B = frozenset([5, 6, 7, 8, 9])
print(A)
print(B)
A.union(B)
A.issuperset(B)
6 in A & B
Seperti yang dapat kita lihat dari output di atas, kita masih dapat melakukan operasi himpunan selayaknya yang
dapat dilakukan set biasa selain memodifikasi isi frozenset tersebut.
Sekarang kita akan coba melakukan modifikasi pada frozenset. Ini akan menghasilkan pesan error.
A = frozenset([1, 2, 3, 4, 5, 6])
A.add(100)
ilmudatapy.com
59
Seleksi Kondisi
Seleksi kondisi adalah sebuah proses untuk menentukan langkah atau perintah selanjutnya berdasarkan keadaan
sebelumnya. Proses ini sangat penting dipahami dalam pemrograman untuk memutuskan aksi apa selanjutnya
sesuai dengan kondisinya.
Pada bab ini, kita akan belajar tentang seleksi kondisi if, termasuk juga operator perbandingan dan operator
logika, serta branching di Python.
Operator Perbandingan
Operator perbandingan digunakan dalam seleksi kondisi untuk membandingan dua nilai atau operand. Output
yang dihasilkan dari operasi perbandingan yaitu berupa Boolean. Ada enam operator perbandingan yang dapat
digunakan, diantaranya:
sama dengan: ==
tidak sama dengan: !=
lebih besar dari: >
lebih kecil dari: <
lebih besar sama dengan: >=
lebih kecil sama dengan: <=
Operator-operator tersebut dapat digunakan untuk membandingan nilai secara langsung maupun yang berada
dalam variabel. Misalnya kita memiliki variabel x yang berisi nilai 3. Kemudian kita bandingan nilai x tersebut
dengan 8.
x = 3
x == 8 # Contoh penggunaan operator ==
Untuk angka yang sama, sekarang kita coba menggunakan operator tidak sama dengan.
x = 3
x != 8 # Contoh penggunaan operator !=
ilmudatapy.com
60
Masih menggunakan angka yang sama, sekarang kita coba menggunakan operator > dan <.
x = 3
x > 8 # Contoh penggunaan operator >
x = 3
x < 8 # Contoh penggunaan operator <
Penempatan angka pada penggunaan operator > dan < sangat berpengaruh. Misalnya kita coba tukar posisi
operand-nya seperti di bawah ini.
x = 3
8 > x
x = 3
8 < x
Dalam contoh di atas, 8 > x berarti menyatakan bahwa 8 lebih besar dari x atau 3, maka output yang
dihasilkan adalah True. Sementara itu 8 < x menghasilkan False.
x = 3
y >= 4 # Contoh penggunaan operator >=
x = 3
y <= 4 # Contoh penggunaan operator <=
Kita juga dapat menggunakan operator perbandingan untuk membandingkan string. Perhatikan contoh berikut.
Pada contoh di atas, sudah jelas terlihat bahwa string 'ABCD' berbeda dengan 'Halo', maka menghasilkan
output False. Kita juga dapat menggunakan operator tidak sama dengan != pada string.
'ABCD' != 'Halo'
Jika menggunakan operator != seperti contoh di atas, maka menghasilkan output True.
ilmudatapy.com
61
Operator perbandingan juga dapat digunakan untuk membandingkan huruf/simbol berdasarkan kode ASCII-nya.
Misalnya seperti yang kita tahu kode ASCII A adalah 65 dan B adalah 66, jika kita bandingkan A dan B maka
otomatis B lebih besar dari A.
Seperti yang kita lihat dari output di atas, 'B' > 'A' menghasilkan output True karena memang kode ASCII B
lebih besar dari A.
Untuk melihat cara mendapatkan kode ASCII di Python, Anda dapat merujuk pada bahasan sebelumnya tentang
String.
Pernyataan Kondisi
Secara sederhana, sebuah kondisi dalam bahasa pemrograman dinyatakan dengan if yang diikuti dengan sebuah
perintah yang akan dijalankan jika kondisi tersebut terpenuhi. Perhatikan contoh berikut.
tiket = 'Yes'
# Penyataan kondisi
if tiket == 'Yes':
# Perintah di dalam indentasi (ditulis menjorok ke dalam) yang dieksekusi jika kondisi
terpenuhi
print('Anda boleh masuk')
Pada contoh di atas, kita menyatakan kondisi bahwa jika memiliki tiket, maka print Anda boleh masuk.
Sebelumnya kita telah mendefinisikan tiket='Yes' yang berarti bahwa kondisi tersebut terpenuhi, maka
Python akan menjalankan kode yang ada di dalam if, yakni mencetak Anda boleh masuk.
Catatan: Di akhir bagian penyataan if harus diberi tanda titik dua (:) serta penulisan kode yang akan dieksekusi
saat kondisi terpenuhi harus ditulis menjorok ke dalam (indentasi).
tiket = 'No'
# Penyataan kondisi
if tiket == 'Yes':
Jika kita menjalankan kode program di atas, maka tidak akan ada output yang muncul karena kondisi tidak
terpenuhi sehingga perintah di dalam if tidak dieksekusi.
ilmudatapy.com
62
Lalu bagaimana jika kita ingin membuat opsi lain jika kondisi tidak terpenuhi? Perhatikan bahasan selanjutnya
berikut ini.
Conditional Branching
Branching atau percabangan adalah suatu kondisi dimana ada dua atau lebih perintah atau pernyataan untuk
input yang berbeda. Conditional branching memungkinkan program melompat ke instruksi selanjutnya
tergantung pada nilai input yang diberikan. Jadi, setiap instruksi tidak semuanya dieksekusi, melainkan hanya
menjalankan instruksi yang sesuai dengan data atau input yang diberikan.
if
tiket = 'No'
# Penyataan kondisi
if tiket == 'Yes':
Pada contoh di atas, kondisi if tidak terpenuhi sehingga perintah di dalam if tidak dieksekusi. Namun, blok
kode di atas tetap menghasilkan output Selamat datang! karena perintah tersebut ditulis sejajar dengan
penyataan if, bukan di dalam if.
Jika kondisi terpenuhi, maka kedua perintah tersebut dieksekusi. Perhatikan kode berikut.
tiket = 'Yes'
# Penyataan kondisi
if tiket == 'Yes':
if...else
Kita juga dapat memberikan opsi lain jika kondisi tidak terpenuhi menggunakan if...else. Namun jika kondisi
terpenuhi, maka opsi tersebut tidak dijalankan.
ilmudatapy.com
63
tiket = 'Yes'
# Penyataan kondisi
if tiket == 'Yes':
else:
print('Jagalah kebersihan!')
tiket = 'No'
# Penyataan kondisi
if tiket == 'Yes':
else:
print('Jagalah kebersihan!')
ilmudatapy.com
64
Mari kita lihat contoh lainnya.
a = 20
if (a % 2 == 1):
print(a, 'adalah bilangan ganjil')
else:
print(a, 'adalah bilangan genap')
if...elif
Jika ada dua atau lebih kondisi, kita dapat menggunakan if...elif.
usia = 20
Pertama, sistem akan mengecek apakah kondisi pada if terpenuhi yakni usia > 20 (usianya harus lebih dari
20 tahun). Pada contoh di atas, karena usianya genap 20 tahun, maka jelas kondisi pertama tidak terpenuhi
sehingga sistem mengecek lagi ke kondisi berikutnya yakni usia == 20 (apakah usianya 20 tahun). Kondisi ini
ternyata terpenuhi, maka perintah yang akan dieksekusi adalah Silahkan masuk ke ruang B.
ilmudatapy.com
65
harga = 35000
elif(harga == 20000):
else:
harga = harga
Pada contoh di atas, harga belanjaan sebesar 35000 sehingga sudah jelas memenuhi kondisi pertama yakni
harga > 20000 sehingga dilakukan eksekusi terhadap kode perintah yang ada di dalam indentasi kondisi
pertama.
Operator Logika
Adakalanya kita ingin mengecek kondisi dari dua penyataan. Untuk kasus seperti, kita dapat menggunakan
operator logika. Operator logika adalah simbol atau kata yang digunakan untuk menghubungkan dua atau lebih
ekspresi untuk membuat kesimpulan yang logis, True atau False.
and
or
not
and
and bernilai True hanya jika semua pernyataan bernilai True. Jika salah satu atau semuanya bernilai False.
ilmudatapy.com
66
# Contoh penggunaan operator logika 'and'
nilai = 75
or
or bernilai True jika semuanya atau salah satu pernyataan bernilai True, sementara itu akan bernilai False jika
semuanya bernilai False.
hm = 'D'
ilmudatapy.com
67
not
not memeriksa apakah pernyataannya salah atau False.
nilai = 90
ilmudatapy.com
68
Perulangan / Loop
Saat membuat kode program, adakalanya kita ingin mengulang proses atau operasi tertentu beberapa kali. Nah,
mengulang proses yang sama seperti ini dapat dilakukan dengan perulangan. Ada dua metode perulangan yang
dapat digunakan di Python yaitu menggunakan for dan while.
for i in range(10):
print(i)
ilmudatapy.com
69
Kita juga dapat menentukan awal dan akhir angka yang diinginkan. Misalnya range(3, 7) akan menghasilkan
angka 3, 4, 5, 6.
for i in range(3, 7):
print(i)
for i in range(5):
x = x + i
print(x)
for i in hari:
print(i)
ilmudatapy.com
70
Mengambil index dan value dari list dengan enumerate()
Untuk mengambil index dan value dari sebuah list, kita dapat menggunakan built-in function enumerate().
Perhatikan contoh berikut.
balon = ['merah', 'kuning', 'hijau', 'biru']
i = 0
bil = 0
Pada contoh di atas, kita definisikan looping harus berhenti jika bil < 40 .
ilmudatapy.com
71
Perhatikan contoh yang lainnya di bawah ini.
i = 0
hari_kerja = hari[i]
for i in hari:
print(i)
if (i == 'rabu'):
break;
i = 0
hari_kerja = hari[i]
ilmudatapy.com
72
Nested Loop
Nested loop adalah looping di dalam looping atau perulangan bersarang. Perhatikan contoh berikut.
for i in a:
for j in b:
print(i, j)
Berikut ini adalah contoh nested loop bintang segitiga dengan break di dalamnya.
# Contoh nested loop dengan break
ilmudatapy.com
73
Fungsi / Function
Function atau fungsi adalah sebuah blok kode program yang dapat digunakan berulang kali dengan cara
memanggilnya.
Ada dua tipe fungsi, yaitu Pre-defined function atau yang kita kenal dengan built-in function dan juga User
defined function atau fungsi yang dibuat oleh kita sebagai pengguna. Nah, disini kita akan membahas tentang
User defined function.
Sebuah fungsi diawali dengan def yang diikuti oleh nama fungsi dan tanda kurung ().
Ada argumen yang harus diletakkan di dalam tanda kurung. Selain itu, Anda juga dapat meletakkan
parameter pada tanda kurung ini.
Bagian tubuh (body) dari fungsi ditandai dengan tanda titik dua (:) yang biasanya diletakkan setelah
tanda kurung.
Anda juga dapat menuliskan dokumentasi atau komentar pada fungsi.
Anda dapat menggunakan pernyataan return untuk mengembalikan nilai untuk digunakan di kode
program utama. Biasanya return digunakan untuk menutup fungsi.
def tambah_satu(x):
y = x + 1
return y
Contoh di atas merupakan sebuah fungsi dengan nama tambah_satu dan x sebagai parameter yang akan
menampung nilai yang diberikan untuk kemudian diproses di dalam fungsi. Akhir dari fungsi tersebut adalah
mengembalikan nilai y.
Untuk memanggilnya, kita dapat menulis langsung nama fungsi tersebut dan diikuti nilai yang akan diberikan
untuk diproses pada fungsi di dalam tanda kurung seperti di bawah ini.
tambah_satu(10)
ilmudatapy.com
74
Berikut ini adalah contoh lain fungsi dengan dua parameter.
perkalian(3,4)
Blok 1
x1 = 6
y1 = 8
z1 = x1 * 2 + y1 * 3
Blok 2
x2 = 3
y2 = 4
z2 = x2 * 2 + y2 * 3
ilmudatapy.com
75
Jika kita tulis seperti di atas, tentunya akan sangat boros karena mengulang proses yang sama dan hanya
mengubah variabel. Dengan adanya fungsi, kita dapat menyederhanakan proses di atas sehingga nantinya kita
hanya tinggal memanggil fungsi tersebut dengan memberikan nilai yang berbeda-beda. Lihat kode di bawah ini.
z = x * 2 + y * 3
if (z > 20):
z = z
else:
z = 0
return z
x1 = 6
y1 = 8
z1 = hitungxy(x1, y1)
z1
x2 = 3
y2 = 4
z2 = hitungxy(x2, y2)
z2
Pada contoh di bawah ini, prov merupakan variabel global karena berada di luar fungsi, sedangkan prov_indo
merupakan variabel lokal karena berada di dalam fungsi.
Variabel global dapat digunakan baik di luar fungsi maupun di dalam fungsi, sedangkan variabel lokal hanya
dapat digunakan di dalam fungsi.
def provinsi(prov):
prov_indo = prov
print(prov_indo, 'adalah provinsi di Indonesia')
provinsi(prov)
ilmudatapy.com
76
Jika variabel lokal digunakan di luar fungsi, maka akan terjadi error name 'prov_indo' is not defined.
Nah, lalu bagaimana caranya agar variabel lokal dapat digunakan di luar fungsi?
Untuk mengatasinya, kita dapat mendeklarasikan variabel lokal sebagai global seperti di bawah ini.
def provinsi(prov):
global prov_indo
prov_indo = 'Kalimantan Selatan'
print(prov, 'adalah provinsi di Indonesia')
provinsi(prov)
provinsi(prov_indo)
ilmudatapy.com
77
Sekarang mari kita lihat contoh perulangan for yang ada pada sebuah fungsi.
def tampilkan_list(x):
for item in x:
print(item)
# Memanggil fungsi
tampilkan_list(['home alone', 2012, 'terminator'])
cetak_nilai(80)
Pada contoh di atas, ketika kita memberikan argumen 80 saat memanggil fungsi, tentunya program akan
berjalan dengan baik. Sekarang mari kita coba memanggil fungsi tanpa argumen seperti di bawah ini.
cetak_nilai()
Fungsi akan langsung memproses nilai 60 sebagai argumen yang diberikan dan mencetak ‘Tidak Lulus’ karena
nilai kurang dari 65 sesuai kondisi yang sudah ditentukan.
ilmudatapy.com
78
Built-in Function di Python
Built-in function adalah fungsi-fungsi bawaan di Python yang dapat langsung digunakan tanpa mendefinisikannya
lagi seperti di atas. Ada banyak built-in function di Python, di antaranya sebagai berikut.
print() merupakan built-in function yang paling sering digunakan karena berfungsi untuk menampilkan output.
ilmudatapy.com
79
sorted() digunakan untuk mengurutkan list dari nilai terkecil ke terbesar.
round() digunakan untuk membulatkan bilangan desimal. Jika angka desimal 0.5 ke bawah, maka akan
dibulatkan ke bawah. Jika di atas 0.5, maka akan dibulatkan ke atas.
# contoh penggunaan round
round(4.67777)
round(4.3)
abs(-10/2)
ilmudatapy.com
80
Numpy 1 Dimensi
Numpy adalah sebuah library di Python yang digunakan untuk komputasi ilmiah. Numpy menyediakan objek
array multidimensi seperti vektor dan matrik serta berbagai operasi matematika yang dapat dilakukan, misalnya
trigonometri, logaritma, eksponensial, dan sebagainya.
Tidak seperti list, Numpy memiliki ukuran yang tetap. Jika kita mengubah dimensi array, maka akan terbentuk
array baru dan otomatis menghapus array sebelumnya. Tipe data pada array juga harus sama, tidak boleh
bervariasi.
import numpy as np
Kita menyingkat numpy menjadi np untuk mempermudah saat penggunaannya. Misalnya, akan lebih singkat jika
kita menulis np.array dibandingkan numpy.array. Penyingkatan ini umum dilakukan oleh hampir semua
orang yang menggunakan Numpy.
Indeks elemen pada array sama dengan list yaitu dimulai dari 0. Cara mengaksesnya pun sama, yaitu dengan
menuliskan variabel yang diikuti nomor indeks di dalam kurung siku [].
ilmudatapy.com
81
Mengubah nilai array
Nilai sebuah elemen array juga dapat diubah. Misalnya kita memiliki array seperti di bawah ini.
Lalu kita akan mengubah elemen pada indeks ke-0 menjadi 100.
c[0] = 100
c
Saat menampilkan array c, nilai elemen sudah berubah dari 10 menjadi 100 seperti output di atas. Misalnya kita
ubah juga indeks ke-3 seperti di bawah ini.
c[3] = 400
c
Lalu kita dapat menggunakan list tersebut sebagai argumen di dalam tanda kurung siku seperti di bawah ini.
d = c[indeks_terpilih]
d
Output dari kode di atas adalah elemen-elemen pada array c dengan indeks 0, 2, dan 5.
Kita juga dapat mengubah nilai array dengan list. Perhatikan contoh berikut.
Seperti yang dapat kita lihat pada output di atas, elemen pada indeks ke 0, 2, dan 5 berubah menjadi 90000.
ilmudatapy.com
82
Slicing
Sama seperti list, elemen pada array Numpy juga dapat diakses dengan cara slicing yaitu dipotong berdasarkan
indeks tertentu. Misalnya jika kita akan mengakses elemen dari indeks 1-4, kita dapat melakukannya seperti di
bawah ini.
Indeks yang menjadi batas akhir slicing tidak akan terbawa, maka dari itu kita harus menambahkan satu angka
jika elemen pada indeks ke-4 ingin ditampilkan. Jika ingin memotong dari elemen tertentu sampai elemen
terakhir atau dari elemen awal sampai elemen tertentu, kita dapat melakukannya seperti di bawah ini.
size digunakan untuk mendapatkan ukuran array atau dengan kata lain ada berapa jumlah elemen pada array.
a.size
a.ndim
shape digunakan untuk mendapatkan informasi berupa tuple yang mengindikasikan ukuran dimensi array.
a.shape
ilmudatapy.com
83
mean digunakan untuk mendapatkan nilai rata-rata dari array.
a.mean()
a.std()
min digunakan untuk mendapatkan nilai minimum atau terkecil pada array.
a.min()
max digunakan untuk mendapatkan nilai maksimum atau terbesar pada array.
a.max()
x = np.array([2, 3, 4])
x
Lalu, kita akan menjumlahkan masing-masing elemen pada array tersebut dengan angka 10. Kita dapat
melakukannya dengan mudah seperti di bawah ini.
Penjumlahan 2 array
Misalnya kita memiliki array u dan v seperti di bawah ini.
ilmudatapy.com
84
v = np.array([3, 4]) # Membuat array v
v
Untuk menjumlahkan dua array tersebut, kita dapat melakukannya seperti di bawah ini.
Terlihat dari output di atas, elemen dengan indeks yang sama akan secara otomatis dijumlahkan dan tidak
mengubah dimensi array tersebut. Penjumlahan dua array harus melibatkan dua array dengan dimensi yang
sama, jika tidak, maka akan terjadi error.
x = np.array([2, 3, 4])
x
Maka seperti pada penjumlahan, perkalian dengan konstanta juga akan menghasilkan array dengan masing-
masing elemen yang telah dikalikan 2.
Perkalian 2 array
Disini kita juga akan menggunakan array u dan v seperti sebelumnya.
u = np.array([2, 3])
v = np.array([3, 4])
Seperti penjumlahan dua array, perkalian dua array juga otomatis mengalikan elemen dengan indeks yang sama.
ilmudatapy.com
85
Dot product
Dot product adalah bentuk perkalian vektor yang menghasilkan skalar. Di Numpy Python, kita dapat
mendapatkan hasil dot product dengan mudah menggunakan atribut dot. Perhatikan contoh berikut.
u = np.array([2, 3])
v = np.array([3, 4])
np.dot(u, v)
Sebelum lanjut pada fungsi matematika, kita juga bisa mendapatkan nilai pi menggunakan atribut pi seperti di
bawah ini.
Trigonometri
Operasi trigonometri, seperti yang kita tahu, yaitu sin, cos, tan. Nah, untuk mendapatkan hasil dari nilai sin,
cos, dan tan, kita dapat melakukannya seperti di bawah ini.
sin
x = np.array([0., 30., 45., 60., 90.])
np.sin(np.pi/2.0)
cos
x = np.array([0., 30., 45., 60., 90.])
np.cos(x)
np.cos(np.pi)
ilmudatapy.com
86
tan
x = np.array([0., 30., 45., 60., 90.])
np.tan(x)
np.tan(np.pi/2.0)
exp
log
log digunakan untuk menghitung logaritma suatu bilangan. Perhatikan contoh berikut.
Untuk menghitung logaritma dengan basis 10, kita dapat menggunakan log10.
ilmudatapy.com
87
Pembulatan bilangan
Terkadang dalam perhitungan matematika, kita menginginkan pembulatan bilangan desimal, baik itu
pembulatan ke atas, maupun ke bawah. Di Numpy, kita dapat menggunakan fungsi round, ceil, dan floor.
round
round digunakan untuk menentukan ada berapa angka desimal yang kita inginkan. Perhatikan contoh berikut.
np.round(2.87653297619012, 3)
np.round(3.16524398, 2)
ceil
ceil digunakan untuk membulatkan bilangan ke atas. Misalnya, 5.7 menjadi 6.0.
np.ceil(5.7)
floor
floor digunakan untuk membulatkan bilangan desimal ke bawah. Perhatikan contoh berikut.
np.floor(7.9)
ilmudatapy.com
88
Linspace
linspace adalah fungsi yang digunakan untuk mendapatkan array dari interval bilangan tertentu. Fungsi ini
cukup bermanfaat untuk memplot fungsi matematika. Perhatikan contoh berikut.
np.linspace(-3, 3, num=5)
Jika kita ganti parameter num menjadi 10 misalnya, kita akan mendapatkan hasil array yang berbeda.
np.linspace(-3, 3, num=10)
plt.plot(x,y)
ilmudatapy.com
89
Numpy 2 Dimensi
Pada bab sebelumnya telah dibahas mengenai Numpy 1 dimensi. Sekarang kita akan coba membuat array
Numpy 2 dimensi. Anda pasti pernah belajar tentang matriks, nah disini kita akan coba membuat matriks
menggunakan Numpy.
Import numpy as np
list_x = [[10, 20, 30], [11, 21, 31], [12, 22, 32]]
list_x
X = np.array(list_x)
X
Kita dapat menggunakan atribut-atribut Numpy yang telah dibahas pada notebook sebelumnya, seperti ndim,
size, shape, dtype, dan sebagainya.
ilmudatapy.com
90
X.shape # Mengecek ukuran array di tiap dimensi
Misalnya pada array X, kita ingin mengambil elemen yang berada pada baris ke tiga (indeks 2) dan kolom
pertama (indeks 0), maka kita dapat menuliskan kodenya seperti di bawah ini.
Kita juga dapat menggunakan cara lain untuk mengambil elemen pada array 2 dimensi, yaitu dengan
memisahkan indeks baris dan kolom seperti di bawah ini.
ilmudatapy.com
91
Slicing
Kita juga dapat melakukan slicing untuk mengambil elemen pada array Numpy 2 dimensi. Misalnya kita ingin
mengambil elemen 10 dan 20 pada array X, kita dapat menuliskan kodenya seperti di bawah ini.
Contoh lain, misalnya kita ingin mengambil dua elemen terakhir pada kolom 3, yaitu 31 dan 32, kita dapat
menuliskan kodenya seperti ini.
X[1:, 2] # Mengambil elemen pada baris 2&3 kolom 3
ilmudatapy.com
92
Operasi pada array Numpy 2 dimensi
Sama seperti pada Numpy 1 dimensi yang telah dibahas pada bab sebelumnya, kita juga dapat melakukan
beberapa operasi pada array Numpy 2 dimensi.
X # Menampilkan array X
Seperti yang dapat kita lihat dari output yang dihasilkan, seluruh elemen pada array X dijumlahkan dengan
angka 10.
Penjumlahan 2 array
Misalnya kita memiliki 2 array Numpy 2D, yaitu A dan B seperti di bawah ini.
A = np.array([[1, 2], [0, 1]]) # Membuat array A
A
Untuk menjumlahkan 2 array tersebut, kita dapat melakukannya seperti di bawah ini.
A + B # Menjumlahkan array A dan B
Hasil dari operasi di atas adalah penjumlahan dari elemen-elemen pada indeks yang sama di array A dan B.
ilmudatapy.com
93
Perkalian array dengan konstanta
Misalnya kita akan menggunakan array X dan akan mengalikannya dengan 2.
X # Menampilkan array X
Seperti penjumlahan, operasi perkalian dengan konstanta juga akan menghasilkan output berupa array yang tiap
elemennya telah dikalikan dengan konstanta tertentu, dalam hal ini yaitu 2.
Perkalian 2 array
Misalnya, kita akan menggunakan array A dan B yang telah dibuat di atas.
A # Menampilkan array A
B # Menampilkan array B
Untuk mengalikan array A dan B, kita dapat melakukannya seperti di bawah ini.
Hasil dari output di atas adalah sebuah array yang berisi hasil perkalian elemen pada array A dan B yang memiliki
indeks yang sama.
ilmudatapy.com
94
Dot product
Dot product atau perkalian titik pada array 2 dimensi ini dapat dikatakan seperti perkalian matriks. Kita masih
akan menggunakan array A dan B untuk contoh dot product.
A # Menampilkan array A
B # Menampilkan array B
Untuk operasi dot product kita dapat melakukannya seperti di bawah ini.
ilmudatapy.com
95