1 Python 1
1 Python 1
Python
Untuk Pemula
Disusun oleh:
Tim Digitalskillarea
dsarea.com
PYTHON
Pengenalan Python .................................................................................. 2
Variabel........................................................................................................... 15
Ekspresi............................................................................................................ 18
String................................................................................................................ 23
List ..................................................................................................................... 36
Tuple ............................................................................................................... 43
Dictionary..................................................................................................... 49
Set ..................................................................................................................... 56
Perulangan / Loop................................................................................... 73
Numpy 2 Dimensi.................................................................................... 92
1
Pengenalan Python
Python adalah salah satu bahasa pemrograman yang banyak digunakan untuk mengerjakan proyek data
science karena menyediakan banyak library. Library tersebut digunakan untuk mendukung berbagai
tugas seperti manipulasi dataframe, visualisasi, sampai membuat model machine learning. Sebelum
mempelajari penggunaan library, kita akan belajar tentang pemrograman dasar Python.
Hal pertama yang harus dipahami bagi pemula saat belajar pemrograman adalah menulis skrip program
bagaimana menampilkan output/keluaran.
Untuk menampilkan suatu kalimat ataupun isi dari sebuah variabel di Python, Anda bisa
menggunakan sebuah fungsi yaitu print(). Mengimplementasikannya cukup mudah yaitu meletakkan
kalimat atau variabel yang ingin dicetak di dalam tanda kurung sebagai argumen fungsi print().
1 print("Hello There!")
Hello There!
1 print('Hello There!')
Hello There!
1 print(1000)
1000
Untuk menampilkan/mencetak sebuah kalimat atau non-variabel harus menggunakan tanda kutip yang
mengapit kalimat tersebut. Anda dapat menggunakan tanda kutip dua maupun tanda kutip satu tergantung
dengan kebutuhan Anda.
Selain fungsi print(), Anda juga dapat mencetak langsung seperti contoh di bawah ini.
1 "Hello There!"
'Hello There!'
1 'Hello There!'
2
'Hello There!'
1 1000
1000
Sebelum Anda menambahkan komentar, Anda dapat menggunakan simbol # sebelum menulis komentar.
Python akan mengabaikan apapun yang tertulis setelah simbol # dalam satu baris tersebut.
Hello There!
Setelah menjalankan cell di atas, kalimat # Kode ini berfungsi untuk menampilkan "Hello There!" yang
berada di satu baris dengan fungsi print() juga diabaikan oleh Python karena merupakan sebuah komentar
yang diawali dengan simbol # sebagai penjelasan untuk kode program pada baris tersebut.
Yang terakhir, kode #print("Halo") juga tidak dieksekusi oleh Python karena diawali dengan simbol # dan
dianggap sebagai komentar.
Menulis komentar panjang lebih dari satu baris dengan mengapit komentar tersebut dengan tiga tanda
kutip dua
1 """
2 Komentar panjang yang terdiri dari beberapa baris,
3 dapat ditulis dengan diapit oleh tiga tanda kutip dua
4 seperti ini.
5 """
6 print("Hello There!")
Hello There!
3
Contoh Error di Python
Dalam mengetik kode program, mungkin sering kali kita membuat kesalahan penulisan sehingga
menyebabkan hasil yang diharapkan tidak muncul. Setelah itu, Python akan memberikan pesan error yang
akan menunjukkan letak kesalahan tersebut. Jadi, pesan error tersebut dibaca baik- baik agar kita dapat
mengetahui dan memperbaiki kesalahan tersebut.
Sebagai contoh, Anda membuat kesalahan penulisan fungsi print() yang ditulis frint().
• Letak kesalahan pada baris ke-2 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 berikutnya, misalnya kita lupa memberikan pasangan tanda kutip untuk mencetak string.
Python merupakan bahasa pemrograman yang case sensitive, jadi huruf kecil akan dianggap berbeda
dengan huruf besar. Contohnya saat menulis print dengan Print
4
NameError Traceback (most recent call last)
<ipython-input-30-0dd314888263> in <module>()
1 # contoh kesalahan Print
----> 2 Print("Selamat Pagi!")
Untuk mengetahui versi Python yang digunakan, kita dapat melihat pada pojok kanan atas Jupyter
Notebook. Selain itu, kita juga dapat mengeceknya 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
1 import sys
2 print(sys.version)
5
Tipe Data
Di bab ini Anda akan belajar tentang tipe data dasar Python. Jika Anda pernah belajar pemrograman
lain 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 di mana 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 memiliki dua nilai yaitu True dan False.
String
String adalah sekumpulan karakter atau huruf. Di Python, tipe data string ditulis str. Objek string berada
di dalam tanda kutip satu atau kutip dua, jadi semua karakter di dalam tanda kutip, seperti huruf, angka,
ataukarakter unik merupakan bagian dari string tersebut.
Pada contoh di atas, kita menampilkan string menggunakan built-in function Python yaitu print(). Bisa dilihat
bahwa penggunaan tanda kutip satu ataupun kutip dua sebagai batasan string tetap akan menghasilkan
output, jadi bisa pilih salah satu.
Dari output di atas, dapat dilihat bahwa jika mencetak string tanpa print() maka output yang ditampilkan
mengandung tanda kutip satu, meskipun kode yang dipakai menggunakan tanda kutip dua. String juga
dapat berisi karakter kosong.
1 print("")
6
1 print('')
1 ""
''
1 ''
''
Jika karakter kosong ditulis menggunakan fungsi 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.
Mungkin kita perlu menampilkan teks yang mengandung tanda kutip yang ditulis seperti menulis
string pada biasanya. Namun, itu akan menghasilkan error.
1 print('My father's clothes')
Setelah dijalankan, terdapat 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, maka pembatas string yang digunakan
tanda kutip dua. Kemudian, jika ingin menampilkan tanda kutip dua, maka pembatas string-nya
7
menggunakan tanda kutip satu. Coba jalankan kode di bawah ini.
My father's clothes
I said, "welcome!"
Ada cara lain jika tanda kutip yang digunakan sebagai pembatas string dan yang ingin ditampilkan
sama, yaitu dengan menyisipkan backslash () sebelum tanda kutip yang ingin dicetak
My father's clothes
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 menampilkan output berupa integer bisa menggunakan fungsi print() atau langsung menuliskan
bilangannya.
1 print(123)
123
8
1 10
10
1 print(-27)
-27
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.
1 print(0.1)
0.1
1 -1.2
-1.2
1 print(.50)
0.5
1 print(.23)
0.23
1 print(.5)
0.5
1 print(3.)
3.0
1 3.
3.0
1 print(1 == 2)
False
9
Boolean
Tipe data Boolean hanya memiliki dua nilai yaitu True dan False. Tipe data ini digunakan untuk
mengecek apakah suatu kondisi benar atau salah.
1 1 == 2
False
1 print(2 == 2)
True
1 2 == 2
True
1 print("Dia" == 'dia')
False
1 "Dia" == 'dia'
False
1 print('saya' == 'saya')
True
1 'saya' == 'saya'
True
Pada contoh 1, kita menuliskan 2 sama dengan 3 dan menghasilkan output False, berarti 2 memang
tidak sama dengan 3. Selanjutnya contoh 2, 4 sama dengan 4 menghasilkan output True karena
memiliki nilai yang sama.
Untuk contoh menggunakan string, "AKU" dan "aku" menghasilkan output False dan dianggap bukan
merupakan string yang memiliki nilai yang sama, artinya huruf besar tidak sama dengan huruf kecil.
Sementara contoh terakhir ditulis dengan huruf kecil dan menghasilkan nilai True karena memiliki nilai
yang sama.
Mengecek Tipe Data
Python memiliki fungsi type() yang berfungsi untuk memeriksa jenis tipe data.
1 type(1)
10
int
1 type(-1)
int
1 type(0.1)
float
1 type('ini buku')
str
1 type(1 == 2)
bool
1 type(False)
bool
Dari hasil output yang ditampilkan bahwa output dari fungsi type() adalah jenis tipe data dari objek
yang dimaksud.
Mengonversi tipe data dari integer ke float. Mari cek terlebih dahulu tipe datanya.
1 type(1)
int
1 float(1)
1.0
1 type(float(1))
float
11
Saat mengonversi integer ke float, nilai yang dihasilkan tidak berubah. Namun berbeda saat
melakukan konversi dari float ke integer. Hasil konversi float ke integer mungkin akan
menghilangkan sedikit informasi dari bilangan tersebut, karena hasilnya akan dibulatkan.
1 int(2.3)
1 int(-2.7)
-2
1 int(76.75)
76
1 int('12')
12
1 int('-1')
-1
1 float('11.2')
11.2
1 float('-11.2')
-11.2
Untuk mengonversi string ke integer atau float, kita harus memasukkan angka saja sebagai argumen
seperti pada contoh di atas. Jika string yang akan dikonversi mengandung selain angka, akan
menyebabkan error.
1 int('15 derajat')
12
----> 1 int('15 derajat')
ValueError: invalid literal for int() with base 10: '15 derajat'
1 str(-123)
'-123
1 str(123)
'123'
1 str(12.34)
'12.34'
Untuk mengonversi nilai True menjadi integer atau float, maka hasilnya adalah nilai 1 atau 1.0,
sedangkan False akan menghasilkan nilai 0 atau 0.0. Sebaliknya, jika mengonversi angka 1 ke tipe
boolean, hasilnya bernilai True, sedangkan angka 0 akan bernilai False. Untuk konversi ketipe boolean,
gunakan fungsi bool()
1 int(True)
1 int(False)
1 float(True)
1.0
1 float(False)
0.0
13
1 bool(1)
True
1 bool(0)
False
1 bool(1.0)
True
1 bool(0.0)
False
14
Variabel
Variabel adalah sebuah wadah untuk menampung data yang memiliki nilai yang dinamis atau dapat
berubah-ubah. Pada bahasa Python, variabel tidak perlu dideklarasikan di awal seperti pada bahasa
pemrograman lain.
Inisialisasi Variabel
1 a = 5
2 print(5)
Pada bab sebelumnya, kita dapat mencetak nilai variabel tanpa menggunakan fungsi print().
1 a
1 a = 1000
2 a
1000
Sebelumnya variabel a bernilai 5, kemudian memberikan nilai baru pada variabel a dengan 1000. Setelah
menjalankan kode program kembali, output yang dihasilkan adalah 1000. Hal Itu dikarenakan variabel a
sebelumnya yang bernilai 10 ditimpa dengan nilai variabel yang memiliki nilai 1000.
Nilai sebuah variabel bisa diganti dengan tipe data yang berbeda.
1 var = 1.18
2 print(var)
1.18
Variabel var sebelumnya bernilai 1.18 yang bertipe data float, selanjutnya isi variabel var diganti
menjadi sebuah string. Nilai variabel yang digunakan adalah nilai yang diinisialisasi paling terakhir.
Apabila ingin menggunakan kembali variabel dengan nilai sebelumnya, inisialisasi kembali dengan nilai
sebelumnya.
15
Memberi nilai beberapa variabel dengan nilai yang sama
Membuat dua atau lebih variabel dengan nilai yang sama dengan hanya satu baris kode.
1 a = b = c = 1000
Menampilkan output dari ketiga variabel dengan fungsi print(). Hasilnya akan mengeluarkan output
yang sama.
1 print(a, b, c)
Bisa kita lihat bahwa variabel a, b, dan c memiliki nilai 100. Nah, misalnya kita ingin mengubah nilai dari
salah satu variabel tersebut.
1 c = 200
1 print(a, b, c)
Nama variabel yang telah digunakan sebelumnya adalah nama variabel yang pendek seperti x, a, b, dan
lainnya. Namun, pada kenyataannya nama variabel dapat lebih panjang yang merujuk pada
penggunaannya agar lebih mudah dimengerti. Misalnya jika ingin membuat variabel yang memiliki nilai
mahasiswa, kita dapat menamai variabel misalnya nilaiMhs atau nilai_mhs.
1 nama_mhs = 'Sinta'
2 matkul_mhs = 'Kalkulus'
3 nilai_mhs = 90
4
5 print(nama_mhs, matkul_mhs, nilai_mhs)
Sinta Kalkulus 90
1 100x = 10
16
Perlu diingat bahasa Python sangat sensitif, karena itu huruf besar dan huruf kecil tidak memiliki nilai yang
sama.
1 nilai = 10
2 Nilai = 20
3 NILAI = 30
4 print(nilai, Nilai, NILAI)
10 20 30
Meskipun dibaca "nilai", namun tiga variabel tersebut berbeda. ‘nilai’ tidak sama dengan ‘NILAI’ ataupun
‘Nilai’.
1 help("keywords")
Here is a list of the Python keywords. Enter any keyword to get more help.
Jadi, ketika melakukan inisialisasi variabel menggunakan salah satu kata di atas, maka akan terjadi
error.
1 if = 4
17
Ekspresi
Pada bab ini, akan membahas tentang ekspresi di Python termasuk di dalamnya akan dibahas operasi
aritmatika 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 aritmatika, sedangkan operand adalah nilai yang
dieksekusi oleh operator tersebut yang dapat berupa variabel atupun sebuah nilai yang berupa angka.
Simple Expression
Operasi Penjumlahan
Operasi penjumlahan di Python menggunakan operator +.
1 12 + 23
35
1 12 + 34 + 45
91
1 x = 10
1 y = 20
30
Operasi Pengurangan
Operasi pengurangan di Python menggunakan operator -.
55
1 10 - 5
1 100 - 25 -10
65
18
1 x = 20
1 y = 10
10
Operasi Perkalian
Operasi perkalian di Python menggunakan operator *.
1 2 * 2
1 2 * 2 * 5
20
1 x = 20
2 y = 10
3 x * y
200
100
Operasi Pembagian
1 10 / 2
5.0
1 10 / 2 /5
1.0
19
1 x = 20
2 y = 10
3 x / y # Ekspresi pembagian dengan operand berupa variabel dan angka
2.0
4.0
1 10 % 2
1 10 % 4
1 x = 20
2 y = 10
3 x % y # Ekspresi modulo dengan operand berupa variabel
1 10 // 4
1 20 // 5
1 x = 20
2 y = 10
3 x // y
20
2
1 9 // 4
1 9 // -4
-3
Operasi Eksponensial
1 x = 10
2 y = 2
3 x ** y # x pangkat y
100
1 x ** 3
1000
1 5 ** y
25
Complex Expression
Kita dapat membuat ekspresi yang kompleks, seperti perhitungan nilai rata-rata atau perhitungan
gabungan berbagai operator lainnya.
1 (10 + 15) * 8 / 4
50.0
1 x = 10
2 (x - 20) * (5 / x)
-5.0
21
1 nilai_akhir = (60 + 35 + 70 + 55) / 5
2 nilai_akhir
44.0
1 (30 ** 2) / 17 + 100
152.94117647058823
Perhitungan di Python juga mengikuti aturan yang sama dengan perhitungan matematika. Misalnya
mendahulukan perhitungan yang berada di dalam tanda kurung () dan mendahulukan proses perkalian dan
pembagian dibandingkan penjumlahan dam pengurangan.
1 20 / (4 - 2)
10.0
1 20 / 4 - 2
3.0
1 a = 10
2 b = 2
3 c = 3
4 (a + b) * c
36
1 a + b * c
16
Dari beberapa hasil blok kode di atas, hasil dari 20 / (4 - 2) akan menghasilkan output yang berbeda
dengan 20/4-2.
Pada contoh berikutnya, output dari (a+b)c juga memiliki hasil yang berbeda dengan a+b*c
22
String
String adalah salah satu tipe objek di Python yang berupa teks atau karakter. Implementasinya harus diapit
oleh dua tanda kutip, bisa menggunakan tanda kutip satu ataupun tanda kutip dua.
Contoh String
'Terima kasih'
'Terima kasih'
'123'
Bilangan yang bernilai sebagai string, tidak dapat diproses untuk perhitungan aritmatika. Kita juga dapat
menggunakan fungsi print() untuk mencetak string.
1 print('Terima kasih')
Terima kasih
1 kota = 'Bogor'
2 kota
'Bogor'
Operasi String
Menggabungkan string
String dapat digabung menggunakan operator +. Lihat contoh di bawah ini
1 nama = 'Alvin'
2 'Nama saya ' + nama
23
'Nama saya Alvin'
Menduplikasi string
String dapat diduplikasi menggunakan operator * seperti pada contoh di bawah ini.
1 s = "Jeruk"
2 2 * s
'JerukJeruk'
1 s * 5
'JerukJerukJerukJerukJeruk'
1 'Mangga ' * 5
Bilangan yang dikali dengan string harus berupa bilangan integer positif. Angka 0 maupun bilangan
negatif sebagai pengali akan menghasilkan karakter kosong.
1 s * 0
''
1 -9 * s
''
24
1 a = "mangga"
2
3 a in "semangka, nanas, jambu, mangga"
True
1 b = "jeruk"
2 buah = "semangka, nanas, jambu, mangga"
3
4 b in buah
False
False
True
1 a = "apel"
2
3 a not in "semangka, nanas, jambu, mangga"
True
1 a = "jeruk"
2
3 a not in "semangka, nanas, jambu, mangga"
True
True
False
25
Indexing
String terdiri dari rentetan karakter. Kita dapat mengakses karakter di dalam string menggunakan indeks
yang direpresentasikan oleh bilangan integer. Indeks string dimulai dari 0. Spasi yang berada di dalam
string juga termasuk karakter dan ikut terindeks.
2 prov[0]
'D'
1 print(prov[1])
1 prov[2]
'I'
1 prov[7]
'a'
Negative Indexing
Negative indexing digunakan apabila ingin mengambil isi indeks dari bagian belakang.
1 prov[-2]
't'
26
1 prov[-10]
'K'
Slicing
Mengambil beberapa karakter pada string dengan menggunakan slicing.
Angka pertama adalah indeks untuk memulai memotong, sedangkan angka kedua adalah indeks
terakhir yang ingin dipotong ditambah 1.
Jika kita ingin mengambil kata "DKI" yang berada di indeks 0-2, penulisan kode adalah provinsi[0:3]. Jika
penulisan kode adalah provinsi[0:2], maka yang terambil hanya "DK".
1 prov[0:2]
'DK'
1 prov[0:1]
'D'
1 prov[3:9]
' Jakar'
1 prov[4:9]
'Jakar'
Stride
Stride adalah cara untuk mengambil beberapa karakter dengan langkah yang diinginkan. Misalnya,
mengambil string dengan diloncat satu karakter alias setiap dua langkah
27
Apabila ingin menerapkannya pada seluruh karakter pada string, penulisan kode dapat seperti pada blok
kode di bawah ini. Angka 2 sebagai jumlah langkah yang ingin diambil.
'D kt'
Namun, jika hanya ingin mengambil karakter pada potongan string tertentu dengan langkah tertentu,
misalnya mengambil hanya dari kata "Jakarta", kita dapat menulis kodenya seperti ini.
'Iar'
Atau jika sampai akhir string, kita bisa tidak menuliskan angka yang di tengah yang merupakan angka
untuk menyatakan batas akhirnya.
'Iar'
Jika ingin mengambil dari awal string, namun dengan batas akhir tertentu, angka pertama bisa tidak
ditulis.
'D '
Selain dua langkah, kita bisa menentukan berapa pun langkah yang diinginkan.
28
'DIJkra'
Built-in function yang dapat digunakan pada string
Bahasa pemrograman Python menyediakan built-in function yang dapat memudahkan dalam penulisan
kode program. Terdapat empat built-in function yang digunakan untuk memproses string.
Setiap karakter di komputer memiliki angka unik masing-masing. Fungsi ord() berfungsi untuk
menampilkan kode ASCII dari sebuah karakter
98
33
42
Fungsi chr() menghasilkan karakter yang merupakan representasi dari kode ASCII yang
dimasukkan.
'_'
'q'
'#'
29
Menghitung panjang string dengan len()
Fungsi len() menghitung jumlah karakter pada string, termasuk spasi, dan menampilkan outputnya
dalam bentuk bilangan integer.
1 len('Alex')
1 len(' ')
Fungsi str() berfungsi untuk menghasilkan bentuk string dari sebuah objek
1 str(20.8)
'20.8'
1 str(20 + 28)
'48'
Pada contoh pertama, nilai yang didefinisikan akan diubah menjadi string. Pada contoh kedua,
penjumlahan bilangan integer akan dieksekusi terlebih dahulu sebelum hasilnya dikonversi menjadi
string.
Jika objek sudah berupa string, maka tetap bertipe data string seperti contoh di bawah ini
1 str('hello')
'hello'
30
1 a = "Belajar bahasa pemrograman Python"
2 print("sebelum : ", a)
3 b = a.lower()
4 print("sesudah : ", b)
1 "JAVASCRIPT".lower()
'javascript'
1 kota = 'Bogor'
2 kota.lower()
'bogor'
.upper() berfungsi untuk mengubah string menjadi huruf besar atau huruf kapital.
1 "JAVASCRIPT".upper()
'JAVASCRIPT'
1 kota = 'Bogor'
2 kota.upper()
'BOGOR'
.replace() berfungsi untuk mengganti nilai string. Terdapat dua argumen yang harus didefinisikan,
argumen pertama adalah string yang akan diubah dan argumen kedua adalah string pengganti.
1 a = "Belajar HTML"
2 a.replace("HTML", "Javascript")
31
'Belajar Javascript'
1 a = "Belajar Python"
2 b = "Saya tertarik dengan machine learning"
3 a = a.replace(a, b) # Memasukkan hasil replace ke variabel a
4 a
.find() berfungsi untuk mencari keberadaan sub-string tertentu. Argumen dari method .find() adalah
substring yang akan dicari.
1 kota.find('arta')
1 kota.find('I')
Jika sub-string yang dicari tidak ditemukan, maka akan menghasilkan output -1.
1 kota.find('Jakrta')
-1
32
Menghitung jumlah sub-string tertentu
.count() berfungsi untuk menghitung jumlah sub-string tertentu yang terdapat pada string.
1 jumlah_o = text.count('o')
2 print(jumlah_o)
1 "Bogor".count('o')
True
1 text.endswith("Jakarta")
False
True
33
1 "saya akan datang".capitalize()
Escape Sequence
Escape sequence adalah karakter yang tidak dapat ditulis secara langsung karena termasuk sulit untuk
direpresentasikan. Mengimplementasikannya dengan menggunakan backslash \ yang disertai representasi
karakternya.
Newline
Untuk membuat newline atau baris baru dapat menggunakan \n
Tab
Backslash
Menampilkan backslash tidak bisa dilakukan secara langsung tetapi menggunakan backslash di depannya
sehingga akan ada double backslash \.
34
Hari ini makan nasi \ dengan ayam goreng.
35
List
List mirip dengan array namun lebih fleksibel. List digunakan untuk menyimpan koleksi data dalam
berbagai tipe data seperti string, integer, float, dan sebagainya. Selain itu, dapat menyimpan data berupa
list di dalam sebuah list.
Pada bahasa Python, List didefinisikan dengan menggunakan kurung siku [] dan setiap elemen di dalam
list dipisahkan oleh koma.
1 x = [1, 2, 3]
2 print(x)
[1, 2, 3]
Mengakses List
Indexing
Indexing pada list sama dengan indexing pada string. Indexing dimulai dari angka 0 dan
seterusnya, atau bisa juga menggunakan negative indexing seperti pada gambar berikut.
Untuk mengakses isi list dapat menuliskan nama list disertai dengan kurung siku yang berisi nomor
indeks.
1 # Contoh lain
2
3 vegetables = ['carrot', 'cucumber', 'potato']
4 vegetables[1]
'cucumber'
36
1 vegetables[-1]
'potato'
1 print(vegetables[2])
potato
Slicing
Slicing atau memotong list untuk mengambil bagian tertentu.
1 vegetables[0:1]
['carrot']
1 print(vegetables[2:4])
['spinach', 'cabbage']
Stride
1 vegetables[::4]
['carrot', 'beans']
1 vegetables[0::3]
['carrot', 'cabbage']
1 vegetables [1:2:2]
['cucumber']
Nested List
Sebuah list dapat berisi list disebut nested list atau list bersarang
37
1 a = [[1, 2], [3,4], [5,6]]
2 a
List yang berisi list juga dapat digabung dengan tipe data lain.
Untuk mengambil elemen list yang berada di dalam list, membutuhkan dua indeks. Indeks pertama dari list
di dalam list n, indeks kedua adalah elemen yang ada di dalam list. Misalnya mengambil nilai a.
1 # Contoh lain
2
3 b = [1, 'carrot', ['a', 'b'], 10.5, [10, 30]]
4 b[4][1]
30
1 b[4][0]
38
10
1 b[2][1]
'b'
1 b[2][0]
'a'
Manipulasi List
List dapat dimanipulasi seperti mengubah elemen list pada indeks tertentu, menambah elemen list, dan
menghapus elemen list.
Menambah/menggabungkan list
Menambah elemen baru pada list dapat menggunakan operator + atau dengan fungsi bawaan Python.
Operator +
Operator + digunakan untuk menambahkan elemen baru di awal maupun akhir list.
39
1 # Menambahkan 'cabbage' pada awal list vegetables
2 vegetables = ['cabbage'] + vegetables
3 print(vegetables )
Menggunakan method
Ada 3 method untuk menambahkan item baru pada list, yaitu append(), extend(), insert().
append()
append() digunakan untuk manipulasi list yang digunakan untuk menambahkan elemen baru di akhir list.
Fungsi append(), hanya memodifikasi list di list itu sendiri dan tidak bisa menghasilkan list baru.
vegetables.append('cabbage') dimasukkan ke dalam list baru yaitu a. Saat menampilkan isi dari list a, tidak
akan keluar hasil apapun.
['carrot', 'asparagus', 'spinach', 'brocoli', 'beans', 'c', 'a', 'b', 'b', 'a', 'g',
Dengan membatasi string tersebut dengan tanda kurung siku [] akan menampilkan isi list yang tidak
terpisah secara individual.
40
1 vegetables = ['carrot', 'asparagus', 'spinach','brocoli','beans']
2 vegetables.extend(['cabbage'])
3 print(vegetables)
Method insert() digunakan untuk menyisipkan elemen baru di list pada indeks tertentu. Misalnya
menambahkan nilai cabbage pada indeks ke 1.
Menggunakan method
Ada 2 method yang digunakan untuk menghapus elemen list, yaitu remove() dan pop().
Method remove() untuk menghapus item di dalam sebuah list berdasarkan nama item atau elemen
tersebut.
41
pop(< index >)
pop()
Method pop() untuk menghapus objek atau elemen paling akhir yang ada di dalam list.
42
Tuple
Tuple adalah 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, tuple bersifat immutable dan tidak dapat diubah isinya. Jadi, tidak dapat
menambahkan elemen baru pada tuple, maupun menghapus dan mengubah nilai elemen di dalam tuple.
Tuple didefinisikan menggunakan tanda kurung ().
Mengakses tuple
Indexing
20
1 print(buat_tuple[0])
2 print(buat_tuple[1])
3 print(buat_tuple[2])
4 print(buat_tuple[3])
Ahmad
20
60000
3.5
Akses tuple menggunakan negative indexing dalam mengakses elemen tuple yang dimulai dari -2 untuk
elemen paling belakang.
43
1 buat_tuple[-2]
60000
1 print(buat_tuple[-1])
2 print(buat_tuple[-2])
3 print(buat_tuple[-3])
4 print(buat_tuple[-4])
5
3.5
60000
20
Ahmad
Slicing
('Ahmad', 20)
1 buat_tuple[1:4]
1 buat_tuple[2:]
(60000, 3.5)
Mengakses elemen mulai dari indeks 0 sampai indeks tertentu dengan tidak menuliskan angka pertama
sebelum titik dua :.
1 buat_tuple[:2]
('Ahmad', 20)
Nested Tuple
Nested tuple atau tuple bersarang berisi tuple lain di dalam tuple.
44
1 nested_tuple = ('Ahmad', 'Budi', (1, 2, 3), ('Cahyo', (4, 'Dwi')), 5)
2 nested_tuple
elemen 0: Ahmad
elemen 1: Budi
elemen 2: (1, 2, 3)
elemen 3: ('Cahyo', (4, 'Dwi'))
elemen 4: 5
1 nested_tuple[3][1][1]
'Dwi'
elemen 3, 1, 0 adalah 4
elemen 3, 1, 1 adalah Dwi
Operasi tuple
Sorting tuple
1 bilangan = (4, 1, 5, 2, 7, 8)
45
1 bilangan_sorted = sorted(bilangan)
2 bilangan_sorted
[1, 2, 4, 5, 7, 8]
1 bilangan = (4, 1, 5, 2, 7, 8)
2 len(bilangan)
Menggabungkan tuple
46
Mengubah tuple menjadi list dan sebaliknya
Mengubah isi tuple dengan mengubah menjadi list yang bersifat mutable (dapat diubah). Sebelum diubah
menjadi list, mari coba untuk mengubah elemen tuple tanpa konversi dan akan menghasilkan error.
1 list_sayur = list(sayur)
2 list_sayur
Setelah menjadi sebuah list, list_sayur sudah bisa diubah, ditambahkan, atau dihapus isinya.
1 list_sayur[1] = 'seledri'
2 list_sayur
1 sayur = tuple(list_sayur)
2 sayur
47
1 type(sayur)
tuple
Selain itu, dapat mengecek tipe data dari elemen di dalam tuple.
1 type(sayur[1])
str
Ahmad
20
60000
3.5
48
Dictionary
Dictionary adalah tipe data yang berfungsi untuk menyimpan koleksi data dan didefinisikan di dalam
kurung kurawal {}. Dictionary bersifat tidak terurut. Setiap item dalam dictionary terdiri dari pasangan
key-value yang dipisahkan oleh titik dua :.
Key bisa berupa teks, bilangan, atau tuple, namun value bisa berupa tipe data apapun
1, 2, 3, dan (4, 5) adalah key, sedangkan a, b, c, dan d adalah value untuk masing-masing key-nya.
1 data_siswa = {
2 'nama': 'Ira',
3 'kota': 'Bogor',
4 'umur': 20
5 }
6 data_siswa
Pada contoh di atas, nama merupakan key dan Ira merupakan value-nya, kota adalah key value-nya adalah
Bogor, dan key umur memiliki value 20.
49
Mengakses dictionary
Mengakses value
Dengan cara menggunakan key yang ditempatkan di dalam kurung siku [] setelah nama dictionary-nya.
1 data_siswa = {
2 'nama': 'Ira',
3 'kota': 'Bogor',
4 'umur': 20
5 }
6 data_siswa['nama'] # Mengakses value dengan key 'nama'
'Ira'
1 data_siswa['kota']
'Bogor'
1 data_siswa.get('nama')
'Ira'
1 data_siswa.get('kota')
'Bogor'
1 data_siswa.values()
1 data_siswa.keys()
50
Atau bisa juga menggunakan operator *
1 [*data_siswa]
Nested Dictionary
Selain itu, bisa membuat dictionary untuk masing-masing employee, lalu buat dictionary induk untuk
menampung dictionary-dictionary tersebut.
1 data_siswa = {
2 ‘nama’: ‘Ira’,
3 ‘kota’: ‘Bogor’,
4 ‘umur’: 20
5 }
6 data_siswa['kota'] = 'Bandung' # Mengubah data kota
7 data_siswa
51
1 data_siswa['umur'] = 21 # Mengubah data umur
2 data_siswa
1 students = {
2 'student1' : {'name': 'Doe', 'age': 30},
3 'student2' : {'name': 'Robert', 'age': 31},
4 'student3' : {'name': 'Andi', 'age': 32}
5 }
6
7 students['student3']['age'] = 34 # Mengubah nilai age
8 students
Menuliskan nama key baru yang akan digunakan disertai dengan nilainya untuk menambah item baru
pada dictionary.
1 data_siswa = {
2 'nama': 'Ira',
3 'kota': 'Bogor',
4 'umur': 20
5 }
6 data_siswa ['jurusan'] = 'Teknik Informatika' # Menambahkan key 'jurusan' yang diberi
7 data_siswa
Method pop(), popitem(), dan del digunakan untuk menghapus item pada dictionary.
Fungsi pop() untuk menghapus item berdasarkan nama key.
1 data_siswa = {
2 'nama': 'Ira',
3 'kota': 'Bogor',
4 'umur': 20,
5 'jurusan':'Teknik Informatika'
6 }
7 data_siswa.pop('kota') # Menghapus kota
8 print(data_siswa)
52
Method popitem() akan menghapus item terakhir.
1 data_siswa = {
2 'nama': 'Ira',
3 'kota': 'Bogor',
4 'umur': 20,
5 'jurusan':'Teknik Informatika'
6 }
7
8 data_siswa.popitem() # Method popitem() akan menghapus nilai akhir
9 print(data_siswa)
1 data_siswa = {
2 'nama': 'Ira',
3 'kota': 'Bogor',
4 'umur': 20,
5 'jurusan':'Teknik Informatika'
6 }
7 del data_siswa['umur'] # Menghapus umur menggunakan del
1 data_siswa = {
2 'nama': 'Ira',
3 'kota': 'Bogor',
4 'umur': 20,
5 'jurusan':'Teknik Informatika'
6 }
7 del data_siswa # Menghapus dictionary data_siswa
8 print(data_siswa)
Jika telah menjalankan kode di atas, akan tampil pesan error yang menyatakan name 'data_mhs' is not
defined. Hal itu karena data_mhs telah terhapus sebelum mengeksekusi print().
Namun apabila yang dimaksud adalah mengosongkan dictionary tanpa menghapusnya, gunakan method
clear().
53
1 data_siswa = {
2 'nama': 'Ira',
3 'kota': 'Bogor',
4 'umur': 20,
5 'jurusan':'Teknik Informatika'
6 }
7 data_siswa.clear() # Mengosongkan isi dictionary dengan clear()
8 print(data_siswa)
{}
Duplikasi dictionary
1 data_siswa = {
2 'nama': 'Ira',
3 'kota': 'Bogor',
4 'umur': 20,
5 'jurusan':'Teknik Informatika'
6 }
7 # Menduplikasi 'data_siswa' ke dalam dictionary baru ke dalam 'siswa'
8 siswa = data_siswa.copy()
9 print(siswa)
Fungsi len() untuk memperoleh panjang dictionary, atau jumlah item pada dictionary.
1 data_siswa = {
2 'nama': 'Ira',
3 'kota': 'Bogor',
4 'umur': 20,
5 'jurusan':'Teknik Informatika'
6 }
7
8 len(data_siswa) # Menghitung panjang dictionary (jumlah item)
54
Mengecek keberadaan key pada dictionary
Gunakan in untuk mengecek keberadaan sebuah key di dalam dictionary. Outputnya adalah Boolean.
1 data_siswa = {
2 'nama': 'Ira',
3 'kota': 'Bogor',
4 'umur': 20,
5 'jurusan':'Teknik Informatika'
6 }
7
8 'nama' in data_siswa # Mengecek apakah 'nama' ada sebagai key di data_siswa
True
1 'hobi' in data_siswa
False
55
Set
Set adalah tipe data untuk menampung sekumpulan objek unik yang didefinisikan dengan tanda kurung
kurawal {}. Jika ada elemen yang sama, maka akan otomatis menghapusnya
1 cth_set = {1, 2, 2, 3, 3, 4, 2, 5}
2 cth_set
{1, 2, 3, 4, 5}
Dari output di atas, angka 3 dan 5 terhapus karena terdapat elemen yang sama.
Set dapat berisi elemen dengan berbagai tipe data, namun hanya tipe data yang bersifat immutable.
Set juga bersifat tidak terurut dengan nilai yang telah didefinisikan.
Set tidak dapat melakukan indexing apabila dicoba akan muncul pesan error.
56
Konversi list menjadi set
NameError: name 'cth_set3' is not defined
set() untuk mengubah list menjadi set dan akan otomatis membuat duplikat elemen pada listter hapus.
SEARCH STACK
1 cth_set1 = {1, 2, 3}
2 cth_set1.add(4)
3 print(cth_set1)
{1, 2, 3, 4}
1 cth_set1 = {1, 2, 3}
2 cth_set1.update(['Ahmad', 'Mangga'])
3 print(cth_set1)
57
1 # Contoh penggunaan discard()
2
3 setSayur = {'cabe', 'seledri', 'wortel', 'sawi', 'bayam'}
4 print('Sebelum menghapus cabe:', setSayur)
5
6 setSayur.discard('cabe')
7 print('Setelah menghapus cabe:', setSayur)
Apabila elemen yang dimaksud tidak ada di dalam set, remove() akan menghasilkan error, sedangkan
discard() tidak menghasilkan error.
1 # Contoh penggunaan remove() jika elemen yang ingin dihapus tidak ada di dalam set
2
3 setSayur = {'cabe', 'seledri', 'wortel', 'sawi', 'bayam'}
4 setSayur.remove('jambu')
5 print(setSayur)
KeyError: 'jambu'
1 # Contoh penggunaan discard() jika elemen yang ingin dihapus tidak ada di dalam set
2
3 setSayur = {'cabe', 'seledri', 'wortel', 'sawi', 'bayam'}
4 setSayur.discard('jambu')
5 print(setSayur)
Method pop() untuk menghapus elemen terakhir pada set. Namun, set bersifat tidak terurut sehingga
elemen terakhir yang dihapus tidak diketahui.
1 # Contoh penggunaan pop() jika elemen yang ingin dihapus tidak ada di dalam set
2
3 setSayur = {'cabe', 'seledri', 'wortel', 'sawi', 'bayam'}
4 print('Sebelum menghapus elemen terakhir:', setSayur)
5 setSayur.pop()
58
print setSayur.pop() akan menampilkan elemen yang terhapus.
Output di atas menghasilkan error karena setSayur sudah dihapus sebelum fungsi print() dieksekusi.
Jika hanya ingin mengosongkan set, maka dapat menggunakan method clear().
set()
Duplikasi set
1 copySayur = setSayur.copy()
2 print('Ini adalah setSayur: ', setSayur)
3 print('Ini adalah copySayur: ', copySayur)
Ini adalah setSayur: set()
Ini adalah copySayur: set()
59
Mengambil nilai maksimum dan minimum pada set
Fungsi max() untuk mengambil nilai maksimum, sedangkan fungsi min() untuk nilai minimum.
Nilai maksimum: 30
Nilai minimum: 3
Union
Union atau operasi gabungan adalah menggabungkan semua nilai dari set A dan set B dengan
mengeliminasi nilai yang sama dengan menggunakan method union() atau operator |.
1 A = {1, 2, 3}
2 B = {4, 5, 6}
3
4 # Contoh penggunaan union()
5 A.union(B)
{1, 2, 3, 4, 5, 6}
1 A = {1, 2, 3}
2 B = {4, 5, 6}
3
4 # Contoh penggunaan | untuk menggabungkan set
5 print(A | B)
{1, 2, 3, 4, 5, 6}
1 A = {1, 2, 3}
2 B = {4, 5, 6}
3
4 A.update(B) # Menggunakan update() untuk menggabungkan set B ke A
5 print(A)
{1, 2, 3, 4, 5, 6}
60
Intersection
Intersection atau irisan adalah mengambil nilai yang sama dari kedua set dengan menggunakan method
intersection() atau operator &.
1 A = {1, 2, 3, 4}
2 B = {3, 4, 5, 6}
3
4 print(A.intersection(B)) # Contoh penggunaan intersection()
{3, 4}
1 A = {1, 2, 3, 4}
2 B = {3, 4, 5, 6}
3
4 A & B # Mengambil nilai yang sama dari dua set menggunakan &
{3, 4}
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 dengan method
difference() ataupun dengan operator – untuk memperoleh difference
1 A = {1, 2, 3, 4}
2 B = {3, 4, 5, 6}
3
4 A.difference(B) # Contoh penggunaan difference()
{1, 2}
Symmetric Difference
Symmetric difference adalah kumpulan elemen yang ada di A dan B namun tidak mengikutsertakan
elemen yang ada pada keduanya alias mengeliminasi intersection dengan method
symmetric_difference() atau dengan operator ^ untuk memperoleh symmetric difference.
1 A = {1, 2, 3, 4}
2 B = {3, 4, 5, 6}
3
4 A.symmetric_difference(B) # Contoh penggunaan symmetric_difference()
{1, 2, 5, 6}
1 A = {1, 2, 3, 4}
2 B = {3, 4, 5, 6}
3
4 A ^ B # Contoh penggunaan operator ^
{1, 2, 5, 6}
61
Operasi cek keanggotaan pada Set
True
False
Method isdisjoint() untuk mengetahui apakah dua set disjoint atau tidak memiliki irisan
1 A = {1, 2, 3, 4}
2 B = {3, 4, 5, 6}
3
4 A.isdisjoint(B)
False
True
Method issubset() atau operator <= untuk mencari tahu apakah sebuah set merupakan subset dari set
lainatau tidak.
1 A = {1, 2, 3, 4}
2 B = {3, 4, 5, 6}
3
4 A.issubset(B)
False
62
1 A = {1, 2, 3}
2 B = {1, 2, 3, 4, 5, 6}
3
4 A <= B # Contoh penggunaan operator <=
True
1 A = {1, 2, 3, 4}
2 B = {3, 4, 5, 6}
3
4 A.issuperset(B)
False
1 A = {1, 2, 3, 4}
2 B = {1, 2, 3, 4, 5, 6}
3
4 B >= A # Contoh penggunaan operator >=
True
Frozenset
Untuk membuat set yang bersifat immutable bisa dengan menggunakan frozenset. Function frozenset()
untuk membuat frozenset.
frozenset({1, 2, 3, 4})
frozenset({3, 4, 5, 6})
frozenset({1, 2, 3, 4, 5, 6})
1 cth1.issuperset(cth2)
False
63
1 3 in cth1 & cth2
True
64
Seleksi Kondisi
Seleksi kondisi adalah proses untuk menentukan langkah atau perintah selanjutnya berdasarkan keadaan
sebelumnya. Proses yang penting dalam pemrograman untuk memutuskan aksi apa selanjutnya sesuai
dengan kondisinya.
Operator Perbandingan
Operator perbandingan digunakan dalam seleksi kondisi untuk membandingkan dua nilai atau operand.
Output yang dihasilkan dari operasi perbandingan yaitu berupa Boolean. Ada enam operator
perbandingan yang dapat digunakan, di antaranya:
• sama dengan: ==
Operator di atas digunakan untuk membandingkan nilai secara langsung maupun yang berada dalam
variabel. Misalnya, variabel a yang berisi nilai 2. Kemudian bandingkan nilai a dengan 4
1 a = 2
2 a == 4 # Contoh penggunaan operator ==
False
1 a = 2
2 a != 4 # Contoh penggunaan operator !=
True
1 a = 2
2 a > 4 # Contoh penggunaan operator >
False
65
2 lebih besar dari 4 adalah False.
1 a = 2
2 a < 4 # Contoh penggunaan operator <
True
Penempatan angka pada penggunaan operator > dan < sangat berpengaruh. Sekarang coba untuk
menukar posisi operand-nya.
1 a = 2
2 4 > a
True
1 a = 2
2 4 < a
False
Pada contoh di atas, 4 > a berarti 4 lebih besar dari a atau 2, maka hasilnya adalah True. Sementara itu
4 < a menghasilkan False.
1 a = 2
2 a >= 4 # Contoh penggunaan operator >=
False
1 a = 2
2 a <= 4 # Contoh penggunaan operator <=
True
False
Hasilnya adalah False karena string 'HAI' berbeda dengan 'Hai'. Sekarang menggunakan operator tidak
sama dengan !=.
66
1 'HAI' != 'Hai'
True
Operator perbandingan dapat digunakan untuk membandingkan huruf/simbol berdasarkan kode ASCII-nya.
False
True
Hasil perbandingan 'C' > 'B' menghasilkan True karena kode ASCII C lebih besar dari B.
Pernyataan Kondisi
Secara sederhana, sebuah kondisi dalam bahasa pemrograman dinyatakan dengan if lalu diikuti dengan
perintah yang akan dijalankan jika kondisi tersebut terpenuhi.
1 voucher = 'Yes'
2 # Penyataan kondisi
3 if voucher == 'Yes':
4
5 # Perintah di dalam indentasi (ditulis menjorok ke dalam) yang dieksekusi jika kond
6 print('berhasil')
7
berhasil
Pada contoh kondisi di atas, jika memiliki tiket, maka print berhasil. Sebelumnya, voucher='Yes' yang
berarti kondisi terpenuhi, maka akan menjalankan kode yang ada di dalam if.
Di akhir bagian pernyataan if harus diberi tanda titik dua (:) serta penulisan kode yang dieksekusi saat
kondisi terpenuhi harus ditulis menjorok ke dalam.
1 voucher = 'No'
2 # Penyataan kondisi
3 if voucher == 'Yes':
4
67
5 # Perintah yang dieksekusi jika kondisi terpenuh
Setelah menjalankan kode program di atas, maka tidak akan ada hasil yang muncul karena kondisi
tidak terpenuhi sehingga perintah di dalam if tidak dieksekusi.
Conditional Branching
Branching (percabangan) adalah suatu kondisi di mana 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.
If
1 voucher = 'No'
2 # Penyataan kondisi
3 if voucher == 'Yes':
4
5 # Perintah yang dieksekusi jika kondisi terpenuhi
6 print('berhasil')
7
8 # Perintah yang dieksekusi baik saat kondisi terpenuhi maupun tidak
9 print('Selamat!')
Selamat!
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
1 voucher = 'Yes'
2 # Penyataan kondisi
3 if voucher == 'Yes':
4
5 # Perintah yang dieksekusi jika kondisi terpenuhi
6 print('berhasil')
7
8 # Perintah yang dieksekusi baik saat kondisi terpenuhi maupun tidak
9 print('Selamat !')
berhasil
Selamat !
68
if...else
Jika kondisi tidak terpenuhi, gunakan if...else. Namun jika kondisi terpenuhi, maka opsi tersebut tidak
dijalankan
1 voucher = 'Yes'
2 # Penyataan kondisi
3 if voucher == 'Yes':
4
5 # Perintah yang dieksekusi jika kondisi terpenuhi
6 print('berhasil')
7
8 else:
9
10 # perintah yang dieksekusi jika kondisi tidak terpenuhi
11 print('beli voucher dahulu')
12
13 print('Selamat!')
berhasil
Selamat!
1 voucher = 'No'
2 # Penyataan kondisi
3 if voucher == 'Yes':
4
5 # Perintah yang dieksekusi jika kondisi terpenuhi
6 print('berhasil')
7 else:
8
9 # perintah yang dieksekusi jika kondisi tidak terpenuhi
10 print('beli voucher dahulu')
11
12 print('Selamat!')
beli voucher dahulu
Selamat!
69
Contoh lain:
1 x = 2
2 if (x % 2 == 1):
3 print(x, 'adalah bilangan ganjil')
4 else:
5 print(x, 'adalah bilangan genap')
if...elif
1 usia = 20
2 if (usia > 20):
3 print('Silahkan masuk ke ruang A')
4 elif (usia == 20):
5 print('Silahkan masuk ke ruang B')
6 else:
7 print('Anda tidak boleh masuk')
Silahkan masuk ke ruang B
Pada kondisi pertama tidak terpenuhi karena usia sama dengan 20. Sehingga sistem mengecek ke kondisi
usia == 20. Hasilnya terpenuhi sehingga yang akan dieksekusi adalah Silahkan masuk ke ruang B.
Contoh lainnya
1 biaya = 30000
2
3 if (biaya > 10000):
4 biaya = biaya - (biaya * 0.15)
5 print('diskon 15%')
6
70
7 elif(biaya == 20000):
8 biaya = biaya - (biaya * 0.1)
9 print('diskon 10%')
10
11 else:
12 biaya = biaya
13
14 print('Total yang harus dibayar adalah Rp. {:.0f}'.format(biaya))
15 print('\nTerima kasih!')
diskon 15%
Total yang harus dibayar adalah Rp. 25500
Terima kasih!
Harga sama dengan 30000 sehingga kondisi pertama terpenuhi karena harga > 10000.
Kemudian menjalankan kode perintah yang terdapat pada kondisi pertama.
Operator Logika
Operator logika untuk mengecek kondisi dari dua penyataan. Operator logika adalah simbol atau kata
yang digunakan untuk menghubungkan dua atau lebih ekspresi untuk membuat kesimpulan yang logis dan
menghasilkan nilai True atau False.
and
or
not
and
and bernilai True jika semua pernyataan bernilai True. Jika hanya salah satu bernilai True atau semuanya
False akan bernilai False.
71
3 if (angka>= 80):
4 nilai = 'A'
5 elif (angka>= 70 and angka< 80):
6 nilai = 'B'
7 elif (angka>= 60 and angka< 70):
8 nilai = 'C'
9 elif (angka>= 50 and angka< 60):
10 nilai = 'D'
11 elif (angka< 50):
12 nilai = 'E'
13
14 print('Nilai akhir adalah ', nilai)
Nilai akhir adalah A
or
or bernilai True jika semuanya atau salah satu pernyataan bernilai True, jika semuanya bernilai False maka
akan bernilai False
Berhasil!
not
not memeriksa apakah pernyataannya salah atau False
Gagal!
72
Perulangan / Loop
Ada dua metode perulangan yaitu for dan while yang berfungsi ingin mengulang proses atau operasi
tertentu beberapa kali.
for digunakan untuk melakukan proses perulangan dengan mengetahui iterasi yang akan dieksekusi,
misalnya 10 kali, 100 kali, dsb.
range() adalah built-in function untuk menghasilkan angka yang berurutan. Misalnya, range(10) akan
menghasilkan angka 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
0
1
2
3
4
Selain itu, dapat menentukan awal dan akhir angka yang diinginkan.
1
2
3
73
Contoh lain penggunaan range().
1 a = 10
2 for i in range(5):
3 a = a + i
4 print(a)
10
11
13
16
20
Ahmad
Budi
Caca
Dwi
Built-in function enumerate() untuk mengambil index dan value dari sebuah list.
0 Ahmad
1 Budi
2 Caca
3 Dwi
Perulangan while digunakan apabila tidak mengetahui jumlah iterasi yang harus dilakukan. Penggunaan
perulangan while didefinisikan pada sebuah kondisi apa looping harus berhenti.
74
6 while (bil < 30):
7 bil = num[i]
8 i = i + 1
9 print(bil)
10
20
30
Pada contoh di atas looping harus berhenti jika kondisi bil < 30.
senin
selasa
rabu
kamis
jumat
sabtu
Penggunaan break untuk menghentikan proses iterasi secara paksa. Break digunakan pada for ataupun
while.
75
1 # Contoh penggunaan break pada for
2 hari = ['senin', 'selasa', 'rabu', 'kamis', 'jumat', 'sabtu', 'minggu']
3
4 for i in hari:
5 print(i)
6 if (i == 'kamis'):
7 break;
senin
selasa
rabu
kamis
11 if (hari_kerja == 'kamis'):
senin
selasa
rabu
Nested Loop
baju putih
baju biru
baju hitam
celana putih
celana biru
celana hitam
kemeja putih
kemeja biru
kemeja hitam
76
Contoh nested loop untuk mencetak bintang segitiga.
*
* *
* * *
* * * *
* * * * *
*
* *
* * *
77
Fungsi / Function
Function atau fungsi adalah sebuah blok kode program yang digunakan berulang kali dengan cara
memanggilnya.
Pre-defined function atau built-in function dan juga User defined function atau fungsi yang dibuat manual.
Nah, kali ini akan membahas tentang User defined function.
Untuk membuat sebuah fungsi, terdapat aturan seperti berikut.
• Sebuah fungsi diawali dengan def yang diikuti nama fungsi dan tanda kurung (). • Di dalam tanda
kurung bisa terdapat argument atau parameter.
• Sebuah fungsi ditandai dengan tanda titik dua (:) yang diletakkan setelah tanda kurung.
• Penggunaan pernyataan return untuk mengembalikan nilai yang digunakan di kode program.
Biasanya return digunakan untuk menutup fungsi.
Contoh di atas terdapat fungsi dengan nama tambah_dua dan a sebagai parameter yang nantinya
menampung nilai yang diberikan untuk kemudian diproses di dalam fungsi. Akhir dari fungsi akan
mengembalikan nilai b.
Untuk memanggilnya dapat menulis langsung nama fungsi tersebut dan diikuti nilai yang akan diberikan
untuk diproses pada fungsi di dalam tanda kurung seperti di bawah ini
78
1 # Contoh fungsi perkalian dua bilangan
2 def perkalian(x, y):
3 z = x * y
4 return print(x, 'dikali', y, 'sama dengan ', z)
5 # Memanggil fungsi perkalian
6 perkalian(2,3)
Blok 1
1 a1 = 2
2 b1 = 3
3 c1 = a1 * 3 + b1 * 4
4
5 if (c1 > 25):
6 c1 = c1
7 else:
8 c1 = 0
Blok 2
1 a2 = 5
2 b2 = 6
3 c2 = a2 * 3 + b2 * 4
4
5 if (c2 > 25):
6 c2 = c2
7 else:
8 c2 = 0
Contoh di atas akan sangat boros karena mengulang proses yang sama dan hanya mengubah variabel.
Dengan adanya fungsi dapat menyederhanakan proses di atas sehingga nantinya tinggal memanggil
fungsi tersebut dengan memberikan nilai yang berbeda-beda. Lihat kode di bawah ini
79
Memanggil fungsi dengan nilai berbeda
1 a1 = 2
2 b1 = 3
3 c1 = hitung_ab(a1, b1)
4 c1
1 a2 = 5
2 b2 = 4
3 c2 = hitung_ab(a2, b2)
4 c2
31
Pada contoh di bawah ini, kota_asal merupakan variabel global karena berada di luar fungsi, sedangkan
kota_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
Jika variabel lokal digunakan di luar fungsi, maka akan terjadi error name 'kota_indo' is not defined.
Untuk mengatasinya, deklarasikan variabel lokal sebagai global seperti di bawah ini.
1 kota_asal = 'Bogor'
2 def kota(kota_asal):
3 global kota_indo
4 kota_indo = 'Jakarta Timur'
5 print(kota_asal, 'adalah salah satu kota di Indonesia')
6
7 kota(kota_asal)
8 kota(kota_indo)
80
Menggunakan if...else dan loop di dalam fungsi
Di dalam fungsi juga dapat menggunakan seleksi kondisi if...else dan juga looping seperti for dan while.
Kemudian menggunakan return untuk mengembalikan nilai sesuai dengan kondisi.
Agus Kalkulus 85
Selamat Anda Lulus!
Berikutnya contoh perulangan for berada pada sebuah fungsi. Berikutnya contoh perulangan for berada
pada sebuah fungsi.
The Avengers
Amazing Spiderman
Dr. Strange
Nilai = 80
Anda Lulus!
81
Pada contoh di atas, ketika memberikan argumen 80 saat pemanggilan fungsi, program akan berjalan
dengan baik. Sekarang coba memanggil fungsi tanpa argumen seperti di bawah ini.
Nilai = 50
Remedial!
Fungsi langsung memproses nilai 50 sebagai argumen yang diberikan dan mencetak ‘Remedial’ karena
nilai kurang dari 60.
Built-in function adalah fungsi-fungsi bawaan Python yang digunakan tanpa mendefinisikannya lagi seperti
di atas.
150
10
82
max() digunakan untuk mendapatkan nilai maksimum/terbesar dari sebuah list.
56
List
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.
4.0
83
Numpy 1 Dimensi
Numpy adalah library 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.
Numpy memiliki ukuran yang tetap. Jika mengubah dimensi array, maka akan terbentuk array baru dan
menghapus array sebelumnya. Tipe data pada array harus sama, tidak dapat bervariasi.
Inisialisasi numpy menjadi np untuk mempermudah penggunaannya. Penyingkatan ini sering dilakukan oleh
para pengguna Numpy.
Setelah itu, dapat membuat array seperti di bawah ini.
array([1, 2, 3])
Indeks elemen pada array dimulai dari 0. Cara mengaksesnya dengan menuliskan variabel yang diikuti
nomor indeks di dalam kurung siku [].
Indeks-0 : 1
Indeks-1 : 2
Indeks-2 : 3
array([1, 2, 3, 4])
84
Lalu ubah elemen pada indeks ke-0 menjadi 10.
1 cth_array2[0] = 10
2 cth_array2
array([10, 2, 3, 4])
Mengakses atau mengubah sejumlah elemen array tertentu bisa dengan menggunakan indeks
elemen yang ingin diakses atau diubah lalu dimasukkan ke dalam list.
1 list_indeks = [0, 1] # Membuat list indeks elemen yang akan diakses
Selain itu, bisa juga menggunakan list tersebut sebagai argumen di dalam tanda kurung siku seperti di
bawah ini.
1 array_baru = cth_array2[list_indeks]
2 array_baru
array([10, 2])
Output dari kode di atas adalah elemen-elemen pada array c dengan indeks 1 dan 2.
Selain itu, bisa juga mengubah nilai array dengan list. Perhatikan contoh berikut.
1 cth_array2[list_indeks] = 120
2 cth_array2
Seperti yang dapat kita lihat pada output di atas, elemen pada indeks ke 1 dan 2 berubah menjadi
120.
Slicing
Elemen pada array Numpy dapat diakses dengan cara slicing yaitu dengan memotong
berdasarkan indeks tertentu. Contohnya seperti di bawah ini
array([2, 3])
Indeks yang menjadi batas akhir slicing tidak akan terbawa, maka dari itu perlu menambahkan satu
angka. Jika ingin memotong dari elemen tertentu sampai elemen terakhir atau dari elemen awal sampai
elemen tertentu, lakukan seperti di bawah ini.
85
1 cth_array2[2:] # slicing dari indeks ke-2 sampai terakhir
array([3, 4, 5])
1 a = np.array([1, 2, 3, 4, 5])
2 a
array([1, 2, 3, 4, 5])
size digunakan untuk mendapatkan ukuran array atau ada berapa jumlah elemen pada array.
1 a.size
1 a.ndim
shape digunakan untuk mendapatkan informasi berupa tuple yang mengindikasikan ukuran dimensi array.
1 a.shape
(5,)
1 a.mean()
3.0
1 a.std()
1.4142135623730951
min digunakan untuk mendapatkan nilai minimum atau terkecil pada array.
1 a.min()
max digunakan untuk mendapatkan nilai maksimum atau terbesar pada array.
1 a.max()
86
Operasi pada array Numpy
Kita juga dapat melakukan operasi penjumlahan, perkalian serta dot product pada array.
1 x = np.array([2, 3, 4])
2 x
array([2, 3, 4])
Setelah itu menjumlahkan masing-masing elemen pada array tersebut dengan angka 10.
Penjumlahan 2 array
array([3, 4])
array([1, 2])
array([4, 6])
Pada output di atas, Penjumlahan dua array harus melibatkan dua array dengan dimensi yang sama dan
tidak mengubah dimensi array tersebut, jika tidak, maka akan terjadi error.
1 a = np.array([1, 2, 3])
2 a
array([1, 2, 3])
87
Lalu kalikan dengan 3
array([3, 6, 9])
Perkalian dengan konstanta akan menghasilkan array dengan masing-masing elemen yang telah dikalikan 3.
Perkalian 2 array
Dot product
Dot product adalah bentuk perkalian vektor yang menghasilkan skalar. Di Numpy, atribut dot digunakan untuk
mendapatkan hasil dot product. Perhatikan contoh berikut.
11
3.141592653589793
Trigonometri
Jalankan kode seperti di bawah ini untuk melakukan operasi trigonometri untuk menghasilkan nilai sin,
cos, dan tan.
sin
88
1 np.sin(np.pi/2.0)
1.0
cos
1 np.cos(np.pi)
-1.0
tan
1 np.tan(np.pi/2.0)
1.633123935319537e+16
22026.465794806718
log
0.1823215567939546
89
Untuk menghitung logaritma dengan basis 10, kita dapat menggunakan log10.
-0.5228787452803376
1.584962500721156
Pembulatan bilangan
Di Numpy terdapat fungsi round, ceil, dan floor untuk menghasilkan pembulatan bilangan desimal, baik
itu pembulatan ke atas, maupun ke bawah.
round
round digunakan untuk menentukan ada berapa angka desimal yang kita inginkan.
2.88
3.17
ceil
ceil digunakan untuk membulatkan bilangan ke atas.
1 np.ceil(4.6)
5.0
floor
floor digunakan untuk membulatkan bilangan desimal ke bawah.
1 np.floor(5.9)
5.0
90
1 # Membulatkan bilangan desimal pada array x ke bawah
2
3 x = np.array([np.pi, np.pi*2, np.pi*3, np.pi*4, np.pi*5])
4 np.floor(a)
Linspace
linspace digunakan untuk mendapatkan array dari interval bilangan tertentu. Fungsi ini juga digunakan
untuk memplot fungsi matematika.
Coba ganti parameter num menjadi 10 maka akan mendapatkan hasil array yang berbeda.
[<matplotlib.lines.Line2D at 0x7f37ca874b90>]
91
Numpy 2 Dimensi
Saatnya mencoba membuat array Numpy 2 dimensi dengan membuat matriks menggunakan Numpy.
Import Numpy terlebih dahulu
1 # Import numpy
2 import numpy as np
1 list_a = [[10, 20, 30], [11, 21, 31], [12, 22, 32]]
2 list_a
1 A = np.array(list_a)
2 A
Gunakan atribut-atribut Numpy yang telah dibahas sebelumnya, seperti ndim, size, shape, dtype, dan
sebagainya
(3, 3)
dtype('int64')
92
Mengakses elemen pada array
Pada dasarnya, elemen array 2 dimensi dapat diasumsikan sebagai baris dan kolom.
Mengambil elemen pada array A yang berada pada baris ketiga (indeks 2) dan kolom pertama(indeks 0)
12
Dapat menggunakan cara lain untuk mengambil elemen pada array 2 dimensi, yaitu dengan
memisahkan indeks baris dan kolom seperti di bawah ini.
10
Contoh lainnya
30
Slicing
Untuk mengambil elemen pada array Numpy 2 dimensi dengan melakukan slicing. Misalnya ingin
mengambil elemen 10 dan 20 pada array A
array([10, 20])
93
Contoh lain
array([10, 20])
array([10, 20])
array([10, 20])
array([31, 32])
1 A # Menampilkan array A
94
Setelah menampilkan isi dari array A, jumlahkan dengan angka 5
Penjumlahan 2 array
Misalnya kita memiliki 2 array Numpy 2D, yaitu A dan B seperti di bawah ini.
array([[1, 2],
[3, 4]])
array([[1, 3],
[1, 2]])
array([[2, 5],
[4, 6]])
Hasil kode program di atas adalah hasil dari penjumlahan elemen-elemen pada indeks yang sama di array X
dan Y.
1 X # Menampilkan array X
2 X * 3 # Mengalikan array X dengan 3
array([[ 3, 6],
[ 9, 12]])
Hasilnya akan menampilkan output berupa array yang tiap elemennya dikalikan dengan konstanta yang
bernilai 3.
Perkalian 2 array
95
1 X # Menampilkan array X
2 Y # Menampilkan array Y
3 X * Y # Mengalikan array X dan Y
array([[1, 6],
[3, 8]])
Dot product
Dot product atau perkalian titik pada array 2 dimensi ini bisa disebut perkalian matriks.
1 X # Menampilkan array X
2 Y # Menampilkan array Y
3 np.dot(X, Y) # Dot product dari array X dan Y
array([[ 3, 7],
[ 7, 17]])
96