Modul Python PDF
Modul Python PDF
2018-10-14
1
Catatan
1. Modul ini dirancang untuk dapat menjadi pegangan pemrograman PTI-B, sehingga banyak
hal yang dipotong karena keluar dari konteks PTI-B.
2. Anda dapat membuka modul ini saat latihan praktikum.
3. Anda sangat disarankan untuk mencoba menjalankan semua program modul ini di kom-
puter Anda, supaya Anda dapat mengetahui keluaran dari program yang ada.
4. Anda sangat disarankan untuk bereksperimen dari program-program yang ada di modul ini
supaya Anda mendapat gambaran lebih jelas mengenai apa yang program Anda lakukan.
5. Anda sangat disarankan membaca tutorial dari tempat lain dan mengeksplor sendiri bahasa
yang Anda gunakan.
2
Contents
1 Modul 1 4
1.1 Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Input dan Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Tipe Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.1 Operator Aritmatika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.2 Operator Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.3 Operator Relasional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4.4 Operator Logika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5 Percabangan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Modul 2 8
2.1 Pengulangan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 While Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.2 For Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Perulangan bersarang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1 Deklarasi Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.2 Array dan Variabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 Modul 3 11
3.1 Fungsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 Prosedur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Modul 4 13
4.1 Menggunakan Pandas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2 Membuat Dataframe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3 Membaca dan Menulis Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.4 Mengakses Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.5 Mengambil Ekstremum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.6 Mengurutkan Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.7 Tabel Frekuensi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.8 Menentukan Range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.9 Statistik Sederhana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.10 Koefisien Korelasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3
1 Modul 1
1.1 Pendahuluan
Pada modul ini, kita menggunakan Python versi 3.6. Anda dapat mendownload Python di https:
//www.python.org/downloads/release/python-360/, pilihan ”Windows x86-64 executable in-
staller”.
• Python case-sensitive, artinya perbedaan huruf besar dan huruf kecil menyebabkan perbe-
daan makna.
• Python sangat memerhatikan indentasi dan pergantian baris. Kesalahan indentasi dapat
menyebabkan gagal compile hingga kesalahan program.
• Variabel di python bersifat implisit dan dinamis. Artinya, sebuah variabel tidak perlu
dideskripsikan tipe datanya. Namun di modul ini kita tetap mempelajari tipe data yang
ada.
Dalam python, program untuk menulis "Hello, World!" ke layar adalah seperti berikut:
’’’
Selain itu , kita juga bisa membuat komentar
multi baris dengan tiga petik ( ’’’)
’’’
Bagian yang ditandai nomor 1 bertugas menuliskan "Hello, World!" ke layar. Sintaks print akan
otomatis memindahkan baris setelah selesai menulis ke layar, kecuali disertai parameter end="".
Berarti, output program di atas adalah "Hello, World!" diikuti dengan "Ini program pertama saya
" di baris selanjutnya.
Untuk melakukan input, kita membutuhkan penampung untuk menyimpan data yang diin-
putkan. Sebagai contoh, di bawah ini adalah program yang menerima input dan menuliskan
ulang yang dimasukkan.
4
Pada bagian nomor (1) dan (3), program membaca input dari user dan dimasukkan ke variabel
S dan N. Lalu, bila ingin program menerima sebuah bilangan (sehingga bisa dijumlah / dikali
/ lainnya), kita bungkus input() dengan int(). Selain int, string (kumpulan karakter), Python
dapat menerima tipe data float (bilangan real), dan masih banyak lagi.
Ada beberapa macam tipe data, namun dalam PTI-B kita hanya akan banyak menggunakan tipe
data berikut:
bool Boolean True atau False
int Bilangan bulat seluruh bilangan bulat
float Bilangan real seluruh bilangan real
string Teks kumpulan karakter
Contoh penggunaan:
B = True # Boolean
I = 123456789012 # Bilangan bulat
R = 2.331973 # Bilangan real
S = "abc" # Teks
S = ’def ’
Perhatkan pada variabel S, Anda bebas menggunakan petik satu (’) atau petik dua (")
1.4 Operator
5
1.4.3 Operator Relasional
1.5 Percabangan
Dalam pemrograman, terdapat percabangan. Dengan demikian, program kita dapat berperilaku
tergantung input user. Misal kita buat program yang memeriksa apakah sebuah bilangan positif:
if (N > 0):
print(str(N) + " bilangan positif ")
...
if (N > 0):
print(str(N) + " bilangan positif ")
else: # N <= 0
print(str(N) + " bilangan bukan positif ")
...
Namun, kita tahu kadang bilangan bisa nol atau negatif, jadi perlu kita tambahkan:
...
if (N > 0):
print(str(N) + " bilangan positif ")
elif (N < 0):
print(str(N) + " bilangan negatif ")
else: # N == 0
print(str(N) + " bilangan nol")
...
Perhatikan juga kalau kita bisa membuat else ini berulang sampai yang kita mau. Selain itu, kita
juga bisa meletakkan if di dalam if.
6
...
if (N >= 0):
if (N > 0):
print(str(N) + " bilangan positif ")
else: # N == 0
print(str(N) + " bilangan nol")
else: # N < 0
print(str(N) + " bilangan negatif ")
...
7
2 Modul 2
2.1 Pengulangan
Pada pemrograman, sering kali dibutuhkan pemrosesan berulang-ulang untuk mencapai suatu
hasil tertentu. Apabila pengulangan ini dilakukan secara manual ukuran file program akan
menjadi terlalu besar. Contoh sederhana adalah jika kita ingin menuliskan Hello World di layar
sebanyak 1000 kali, maka akan dibutuhkan paling tidak 1000 baris perintah. Menggunakan
sintaks pengulangan, persoalan tersebut dapat diselesaikan hanya menggunakan beberapa baris
program.
Salah satu sintaks yang looping / pengulangan yang sering digunakan adalah sintaks While-Do.
Program akan mengecek sebuah kondisi yang diberikan terlebih dahulu sebelum menjalankan
statement yang ada di dalamnya.
a = int(input ())
b = int(input ())
i = a
while (i <= b):
print(i)
i += 1
Bentuk looping yang kedua adalah bentuk For. Bentuk ini umumnya digunakan untuk pen-
gulangan yang sudah diketahui jumlahnya. Namun, for loop juga dapat dibuat menggunakan
while-do loop.
a = int(input ())
b = int(input ())
for i in range(a, b+1):
print(i)
range dapat digunakan dengan satu, dua, atau tiga parameter. Untuk lebih jelasnya, perhatikan
potongan kode berikut:
range (10) # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
range (2, 5) # 2, 3, 4
range (7, 2, -1) # 7, 6, 5, 4, 3
range (2, 8, 2) # 2, 4, 6
8
2.2 Perulangan bersarang
Perhatikan pula, perulangan dapat dilakukan di dalam perulangan. Sebagai contoh, berikut
adalah program untuk membuat pola persegi.
n = int(input ())
for i in range(n):
for j in range(n):
print(’*’, end=’’)
print ()
2.3 Array
Array adalah variabel dengan satu buah nama, tetapi mengandung banyak nilai. Akses nilai-
nilainya dilakukan dengan indeks.
• A[0] = 3
• A[1] = 10
• A[7] = 35
Pada contoh diatas, kita memiliki sebuah variabel yang bernama A. Variabel A tersebut memiliki
10 buah nilai, dimana nilai-nilai tersebut dapat diakses dengan indeks. Untuk mengakses indeks
ke x, gunakanlah A[x]. Dan nilai A[x] itu bisa kita anggap sebagai variabel yang berdiri sendiri.
Konsep inilah yang kita sebut dengan array. Perhatikan pula bahwa indeks dimulai dari 0.
Karena array juga merupakan sebuah variabel, maka array juga memerlukan deklarasi seperti
variabel lainnya.
Untuk contoh tersebut array A yang terdefinisi adalah A[0], A[1], A[2], . . . , A[9] Mengakses nilai
indeks di luar batasan tersebut akan menyebabkan runtime error. Oleh karena itu, tentukanlah
rentang indeks yang akan digunakan saat deklarasi dengan tepat (sesuai dengan kebutuhan).
Suatu array dapat kita anggap sebagai variabel, sehingga segala jenis operasi pada variabel juga
berlaku pada array. Sebagai contoh, kita memiliki suatu array
9
tabel = [0 for i in range(10)]
Maka array tabel tersebut akan terdefinisi untuk indeks 0 sampai dengan indeks 9. Maka kita bisa
melakukan instruksi
tabel[2] = int(input())
Jika diberikan 5 buah bilangan , dan kita perlu menyimpan bilangan tersebut pada tabel, kita bisa
melakukan
Namun, cara menginput tersebut kurang efisien. Akan lebih efisien jika kita menginput menggu-
nakan perulangan (looping).
10
3 Modul 3
3.1 Fungsi
Apa itu fungsi? Fungsi adalah suatu bagian dari program yang mampu mengerjakan tugas atau
operasi tertentu di luar program utama. Fungsi akan mengembalikan nilai sesuai algoritma yang
diberikan.
Fungsi di atas bernama kuadrat dan mengembalikan nilai kuadrat. Fungsi itu juga menerima satu
parameter bernama x.
Sebagai contoh, berikut program lengkap yang menerima input dan mengeluarkan kuadrat dari
bilangan input.
n = int(input ())
n2 = kuadrat (n)
print (n2)
Perhatikan pada contoh di atas, variabel di program utama bernama n. Namun di fungsi, variabel
berubah nama menjadi x. Meskipun x berubah, nilai n di program utama tidak akan berubah.
Sebuah fungsi juga dapat menerima lebih dari satu parameter. Selain itu, fungsi juga dapat
melakukan hal-hal layaknya program biasa, namun tidak dapat mengubah variabel di program
utama. Sebagai contoh, berikut adalah fungsi yang menghitung nilai ab .
Catatan: Anda tidak disarankan menaruh array sebagai parameter fungsi, karena ada hal khusus
yang belum diajarkan di PTI.
3.2 Prosedur
Prosedur sebenarnya sama seperti fungsi, namun tidak ada kembalian. Sebagai contoh, berikut
adalah program untuk menuliskan menu:
print ("Menu:")
11
print ("1. Burger ")
print ("2. Ayam Geprek ")
print ("3. Mie Instan ")
print (" Masukkan pilihan : ")
pilihan_makanan = int(input ())
print ("Menu:")
print ("1. Jus Alpukat ")
print ("2. Thai Tea")
print ("3. Teh Tarik")
print (" Masukkan pilihan : ")
pilihan_minuman = int(input ())
print ("Menu:")
print ("1. Kentang ")
print ("2. Krupuk ")
print ("3. Abon")
print (" Masukkan pilihan : ")
pilihan_tambahan = int(input ())
Seperti yang tertulis di atas, menuliskan menu perlu berkali-kali. Kita dapat meringkasnya
menjadi:
tulis_menu (" Burger ", "Ayam Geprek ", "Mie Instan ")
pilihan_makanan = int(input ())
12
4 Modul 4
Untuk menginstall Pandas, Anda dapat menggunakan pip. Pip dapat diperoleh dengan men-
download file get-pip.py di https://bootstrap.pypa.io/get-pip.py. Untuk menjalankannya,
buka terminal / command prompt, jalankan python dengan
python get-pip.py
Setelah terinstall, Anda dapat menginstall Pandas dengan menuliskan di terminal / command
prompt:
Untuk menggunakan pandas, kita akan menambahkan line berikut di kode kita, tepat sesudah
header:
import pandas as pd
Pada modul ini, kita akan menggunakan data dari pemerintah yang bisa didownload di https:
//data.go.id/dataset/tingkat-inflasi
Untuk membuat data frame, kita perlu membuat dictionary dengan key berupa nama kolom dan
berisi array dari data yang ada. Sebagai contoh, perhatikan potongan kode berikut:
import pandas as pd
input_data = {}
input_data [’A’] = [0 for i in range (5)]
input_data [’B’] = [0 for i in range (5)]
Untuk membaca data csv, kita dapat menggunakan method read_csv. Untuk membaca data excel,
kita dapat menggunakan method read_excel. Untuk menulis data, baik ke csv maupun excel,
perhatikan contoh berikut:
import pandas as pd
13
# tingkatinflasi20082013 .csv
# yang ada di folder yang sama dengan
# tempat kode python ini disimpan
df1 = pd. read_csv (" tingkatinflasi20082013 .csv")
print (df1)
import pandas as pd
# mengambil data ke -5
print (df.loc [4])
# Tahun 2009
# Cakupan Prov. Jawa Barat
# Tingkat_Inflasi 2.02
# Name: 4, dtype: object
14
# 1 2008 Prov. Jawa Barat 11.11
# 2 2008 Nasional 11.06
# 3 2009 Kota Bandung 2.11
# 4 2009 Prov. Jawa Barat 2.02
Selain itu, kita bisa mengakses data berdasar kriteria. Perhatikan contoh berikut:
import pandas as pd
Ekstremum adalah data yang ekstrem: paling tinggi atau paling rendah
import pandas as pd
15
print (df[imax:imax + 1])
# Tahun Cakupan Tingkat_Inflasi
# 1 2008 Prov. Jawa Barat 11.11
Data dapat diurutkan secara tidak menurun (ascending) tidak menaik (descending).
import pandas as pd
Kita dapat membuat tabel frekuensi. Tabel frekuensi berdasar kolom X artinya kita mendaftar
semua kemungkinan nilai di kolom X secara unik, lalu menghitung berapa kali nilai itu muncul.
import pandas as pd
import pandas as pd
16
minimum = df.min ()
maximum = df.max ()
import pandas as pd
df. describe ()
# Tahun Tingkat_Inflasi
# count 18.000000 18.000000
# mean 2010.500000 5.818889
# std 1.757338 3.148673
# min 2008.000000 2.020000
# 25% 2009.000000 3.272500
# 50% 2010.500000 4.415000
# 75% 2012.000000 8.277500
# max 2013.000000 11.110000
Dari data di atas, kita bisa melihat ada 18 data. Rata-rata tingkat inflasi adalah 5.8189. Standar
deviasi dari tingkat inflasi adalah 3.1487. Tingkat inflasi minimum adalah 2.02 dan maksimumnya
11.11. Tingkat inflasi juga memiliki kuartil bawah 3.273, kuartil tengah 4.4150, dan kuartil atas
8.2775.
import pandas as pd
df.mean ()
# Tahun 2010.500000
# Tingkat_Inflasi 5.818889
Dua kolom pada data yang sama bisa memiliki korelasi. Tingkat korelasi ini kita sebut sebagai
koefisien korelasi. Cara memaknai koefisien korelasi adalah sebagai berikut:
17
Berikt ini adalah contoh bila kita ingin melihat korelasi tahun dengan tingkat inflasi:
df["Tingkat_Inflasi"].corr(df["Tahun"])
18