Anda di halaman 1dari 245

Contents  

1 Varibel dan
Tipe Data

1.1 Variabel
Pemahaman konsep tentang
variabel dan tipe data
merupakan landasan penting
dalam pemrograman.

Variabel -- dapat
diartikan sebagai alamat
data yang tersimpan di
dalam memori
komputer. Data atau
object yang ada dalam
memori komputer dapat
diakses atau dipanggil
melalui nama variabel
yang sebelumnya sudah
didefinisikan dan
diassign (assigment).
Berikut contoh
pendefinisian dan
assigment dalam code
program python:

In [1]:
NOTES :

tanda =
bukan berarti
equality atau
sama dengan
seperti yang
kita kenal di
matematika.
Perhatikan
penulisan
code: i = i
+ 1
print()
adalah fungsi
yang
menampilkan
nilai dari
parameter
yang
dilewatkan ke
dalam fungsi
print() ,
dalam hal ini
adalah nilai
dari a .
Fungsi
print()
mengeluarkan
nilai ke
stdout
(standart
output).
Standart
output akan
berbeda-beda
sesuai dengan
lingkungan
pemrograman.
Apabila
Apabila
program
running di
jupyter, maka
stdoutnya
adalah display
di jupyter,
apabila
running di
console
(jendela
command
prompt atau
jendela cmd)
maka stdout-
nya adalah
display di
console.

In [15]:

1.1.1 Operasi
Matematika

pada baris
perintah: i
= i + 1 ,
kita
menjalankan
operasi
matematika
sederhana i
+ 1 , yaitu
penjumlahan.
Hasil dari
statement
atau perintah
i + 1
tersebut
diassign ke
variabel i

Berikut contoh
operasi
matematika
sederhana dalam
python:

In [21]:
Dalam
menjalankan
operasi
matematika,
python
melakukan
urutan
operasi, yaitu
perkalian,
pembagian,
penjumlahan,
pengurangan.
Perhatikan
code berikut:

In [22]:
Proses operasi
matematika pada
code diatas
adalah sebagai
berikut:

perkalian: 12
* 2 -->
24+1-4/2
pembagian:
4 / 2 -->
24+1-2
penjumlahan:
24 + 1 -->
25-2
pengurangan:
25 - 2 -->
23

Sehingga didapat
hasil akhir, yaitu:
23

Hasil diatas
tentu saja
berbeda jika
menggunakan
tanda kurung
() .

In [23]:
Silahkan
ditelaah
hasil
dari
code
diatas

1.2 Tipe
data
Perhatikan
code
berikut:

In [24]:
Tentu saja
hasil dari code
diatas error
dengan tipe
error-nya
TypeError .
Kita tidak
dapat
menjumlahkan
data yang tipe
datanya tidak
sama. Untuk
itulah gunanya
kita harus
mempelajari
atau
memahami
tentang Tipe
Data

Dalam lingkup
pemrograman,
umumnya
Jenis Data
(Data Type)
dasar adalah:

1. String
2. Integer
3. Float dan
Double

Python
termasuk
golongan
bahasa
pemrograman
berorientasi
objek. Python
memiliki
prinsip
everything is
object,
dimana
semua tipe
data termasuk
tipe data
dasar
dibungkus di
dalam class.

NOTES :

Class dalam konsep


pemrograman
merupakan
representasi abstrak
dari Object
Object merupakan
bentuk nyata dari
class
setiap variabel,
fungsi, ataupun data
di dalam program
python akan
dipandang sebagai
OBJECT.

Klo
bingung
dengan
penjelasan
diatas,
tandanya
mulai
mikir.
Penjelasan
tentang
tentang
Class dan
Object
akan
dibuat
terpisah
dari sub
ini.

Ingat bahwa
object dibuat
melalui
pendefinisian
class.
Python telah
menyediakan
berbagai
jenis class
seperti class
dasar yaitu:
str ,
float ,
int ,
list ,
tuple ,
dict

Fungsi
type()
digunakan
untuk
mengetahui
jenis kelas
yang kita
gunakan.
Sebagai
contoh:

In [2]:
Output
program
<class
'str'>
memberikan
informasi
bahwa variabel
dengan nama
prog_title
memegang
nilai atau data
bertipe String
yang
dibungkus
atau
diencapsulasi
dalam kelas
str.

Sebagai
latihan
silahkan
periksa tipe
data pada
pendefinisian
a, b, A,
dan
component
pada code
berikut:

In [4]:
1.2.1 Tugas
1.1:

Jelaskan tentang tipe data


list dan dict beserta
operasi yang terkait dengan
tipe data tersebut.

Ini adalah
tugas yang
akan
melatih
kemampuan
anda untuk
belajar
secara
mandiri dan
melatih
kemampuan
anda untuk
menelusuri
literatur.

1.2.2 List
list termasuk tipe
data atau dengan
kata lain merupakan
bentuk struktur data
yang memiliki sifat:

mutable --
isinya dapat
berubah, diganti,
dihapus
ordered --
dapat digunakan
pada operasi
slice python
iterable -- dapat
digunakan
dalam loop ex.:
for items in
list

list dapat kita


bayangkan sebgai
container atau
wadah untuk
menyimpan berbagai
tipe data atau object.
Berikut adalah
contoh-contoh
pendefinisian list

In [2]:
1.2.2.1 Mengakses
atau memanggil
element dalam
list

Element dalam list


dapat dipanggil
menggunakan index
(integer) dalam
kurung siku sebagai
berikut:
berikut:

In [8]:
Out[8]:

Element
dalam list
dapat pula
dipanggil
dari
belakang
atau dari
element
akhir list
dengan
index
bernilai
negatif.
negatif.
Index -1,
berarti
komponen
yang
paling
akhir, -2
berarti
komponen
list no 2
dari akhir.
Perhatikan
contoh
berikut

In [10]:
1.2.2.2 Mengakses
multiple
element

Kita dapat memanggil


multiple element atau
dengan kata lain, kita
dapat memanggil
beberapa element
dalam list sehingga
keluarannya juga dalam
bentuk tipe data list.
Mode pemanggilan ini
dapat dilakukan
menggunakan operator
python slicing yaitu,

[start:stop:step]

Note:

index start bersifat


inclusive
dan index end
bersifat exclusive
dimana jika nilainya
2 maka index = 1

In [18]:
1.2.2.3 Modifikasi
isi atau
komponen dalam
list

Komponen list
dapat diubah,
dihapus, atau
ditambahkan
dengan cara
sebagai berikut:

In [30]:
1.2.2.4 Menambahkan
element dalam
list

Untuk menambahkan
element dalam list, kita
dapat menggunakan:

fungsi
list.insert(i,
x) , dimana i
adalah index, dan x
adalah element
yang akan
ditambahkan
fungsi
list.append(x)

Perhatikan contoh code


berikut:

In [37]:
1.2.2.5 help(list)

Kita telah membahas


operasi-operasi penting
terkait dengan object list.
Untuk operasi lainnya,
anda dapat melihat lebih
lengkap pada
help(list) yang
menyediakan daftar
atrribute yang dapat
digunakan terkait operasi
pada object list

In [38]:
1.2.3 Dictionary
Dictionary adalah tipe data
builtins python dengan sifat-
sifat sebagai berikut:

Unordered -- komponen
di dalam dict tidak
dapat diakses
menggunakan index.
Key - values --
komponen di dalam
dict merupakan
pasangan key:value ,
setiap key:value
dipisahkan dengan
tandan koma. values
adalah tipe data atau
object valid dalam
bahasa python.

Berikut cara pendefinisian


dict:

In [9]:
1.2.3.1 Memanggil
value yang ada
pada dict

Telah dijelaskan di
awal bahwa dict
bersifat unordered
sehingga untuk
mengakses nilai
yang ada pada
dict tidak bisa
menggunakan
index, tapi
menggunakan key.

In [16]:
Jika kita
menggunakan
key yang
belum
terdefinisi di
dalam dict
atau key
tersebut tidak
ada di dalam
dict , maka
akan muncul
error berupa
KeyError

Kemunculan
KeyError
dapat dihindari
dengan
menggunakan
fungsi
dict.get() .
Jika diakses
dengan cara
tersebut dan
tenyata key
yang diinput
tidak ada maka
return valuenya
adalah None.
Kita juga dapat
menggantikan
None dengan
menginputkan
nilai return
value
defaultnya.
Perhatikan
code berikut:

In [17]:
In [18]:

In [19]:
1.2.3.2 Memeriksa
key

Kita dapat
mengecek apakah
suatu key tersedia
atau tidak
menggunakan
membership
operator.

in return True
jika key yang
dicari tersedia
di dict , jika
tidak maka
returnnya
False
not in
kebalikan dari
in

Untuk lebih
jelasnya perhatikan
contoh berikut:

In [21]:
Out[21]:

In [22]:

Out[22]:

In [23]:
Out[23]:

1.2.3.3 Mengubah
dan
Menambahkan
Element
Dict

Untuk mengubah
atau
menambahkan
element dict ,
gunakan key
dalam kurung siku.

In [25]:
In [26]:
Dari contoh
code di atas,
dapat
disimpulkan
bahwa
mengubah
atau
menambahkan
element
memiliki cara
yang sama.
Jika key yang
diakses tidak
ada, maka
akan dilakukan
penambahan
element, tetapi
jika key yang
diakses ada
dalam dict
maka akan
dilakukan
proses
pengubahan
element.

2 Fungsi
Fungsi adalah unit kecil
dalam program yang dapat
dipanggil, bisa menerima
inputan berupa parameter,
dan bisa mengeluarkan
hasil. Contoh sederhana
fungsi adalah fungsi
print() dan fungsi
type() seperti yang
sudah dicontohkan
sebelumnya. Fungsi-fungsi
tersebut merupakan fungsi
builtins, maksudnya adalah
anda tidak perlu
mengimport module
khusus untuk memanggil
fungsi tersebut. Fungsi
tersebut sudah otomatis
terimport di setiap program
python. Untuk mengetahui
fungsi apa saja yang
sudah tersedia tanpa
harus mengimport module
adalah sbb:

In [27]:
Perintah
print(dir(builtins))
pada code di atas
menampilkan semua definisi
yang ada pada module
builtins . Module
tersebut secara otomatis
telah diimport setiap kali kita
menjalankan code python.
Sebagai contoh, kita akan
menggunakan fungsi
range dan fungsi help
yang ada pada module
builtins

In [34]:

In [27]:
Berdasarkan
keluaran
perintah
help(range) ,
kita mendapat
informasi bahwa:
fungsi
range()

Return an
object that
produces a
sequence of
integers
from start
(inclusive)
| to stop
(exclusive)
by step.
range(i, j)
produces i,
i+1, i+2,
..., j-1.
| start
defaults to
0, and stop
is omitted!
range(4)
produces 0,
1, 2, 3.

Fungsi
builtins
lainnya
yang umum
digunakan
adalah
len() .
Digunakan
untuk
mengetahui
jumlah
object
dalam
koleksi
object

In [28]:

Out[28]:

In [30]:
Out[30]:

2.1 Membuat
Fungsi
In [11]:
2.2 Memanggil
fungsi dari
dalam
fungsi
In [37]:
Fungsi tidak
harus
menerima
inputan atau
tidak harus
mengeluarkan
hasil. Untuk
kebutuhan
tertentu,
beberapa
fungsi dibuat
untuk tidak
menerima
inputan dan
tidak memiliki
return. Namun
untuk
kebutuhan
komputasi
teknik, hampir
semua fungsi
dapat
menerima
input dan
memiliki
return.

Sebagai
contoh, kita
akan buat
fungsi yang
tidak
menerima
input dan
tidak
mengeluarkan
outuput (tidak
ada statement
return ).
Fungsi seperti
ini biasanya
digunakan
untuk
mengolah
atau
memanipulasi
data.

In [36]:
In [36]:
Contoh di
atas bukan
contoh yang
bagus untuk
ditiru, hanya
sekedar
memperlihatkan
bahwa fungsi
bisa dibuat
tanpa ada
input dan
output

2.3 Melewatkan
fungsi sebagai
argument atau
parameter
fungsi

Pada bahasan
sebelumnya, kita
mempelajari
bagaimana
memanggil
fungsi dari dalam
fungsi. Pada
bagian ini kita
akan praktekkan
cara melewatkan
fungsi sebagai
argument atau
parameter
fungsi.

Kita akan
membuat fungsi
untuk
menghitung
Volume secara
umum. Semua
volume bangun
ruang memiliki
ruang memiliki
rumus volume:
\begin{equation*}
\text{Volume} =
\text{Luas alas}
\times
\text{Tinggi}
\end{equation*}

Rumus untuk
menghitung luas
alas akan
bergantung pada
jenis bangun
ruang. Sehingga
user akan
membuat fungsi
tersendiri untuk
menghiutng luas
alas yang sesuai
dengan bangun
ruang yang akan
dihitung

In [45]:
2.3.1 Tugas
1.2
Tulislah fungsi
untuk menghitung
perubahan entalpi
suatu zat dengan
inputnya berupa
parameter $Cp$,
$Tr$, dan $T$.
sebagai contoh:

def ent
alpi(Cp
, Tr, T
):
pas
s

Note:

$Cp$ adalah
fungsi yang
diinput ke
dalam fungsi
entalpi
sebagai
parameter
atau
argument,
dan Cp
merupakan
fungsi
temperatur.
Sehingga
untuk
menggunakan
atau
atau
memanggal
fungsi entalpi,
user harus
membuat
fungsi Cp
yang akan
diinputkan ke
fungsi entalpi
sebagai
parameter
atau
argument.
Lihat contoh
perhitungan
volume pada
pembahasan
sebelumnya.
$T_r$ adalah
Temperatur
reference

3 Alur
Program
Python merupakan
bahasa program dengan
interpreter. Interpreter
bertugas menerjemahkan
code ke dalam bentuk
byte code. Code program
dibaca oleh interpreter
baris demi baris sesuai
dengan alur program
yang telah dituliskan.
Pada sub-bab ini akan
dibahas alur program
berupa switching
(percabangan) dan loop
(pengulangan).

3.1 Boolean
Operation
Sebelum masuk ke
percabangan, terlebih
dahulu harus memahami
operasi boolean. Operasi
boolean adalah operasi
membandingkan suatu
nilai variabel dengan
dengan nilai dari variabel
lainnya. Operasi boolean
diantaranya dapat dilihat
pada contoh code berikut:

In [7]:
3.2 if
statement in
switching
operation
if boolean_
operation:
jika bo
olean opera
tion bernil
ai True
maka ba
ris code ya
ng berada d
alam
if stat
ement akan
dibaca oleh
interpreter

jika boolea
n_operation
bernilai Fa
lse, maka b
aris ini da
n
selanjutnya
yang akan d
ibaca

In [7]:
3.3 Pengulangan
(Looping)
Terdapat beberapa teknik
pengulangan dalam
pemrograman, nama dalam
bahasa python, teknik
pengulangan yang
diimplementasikan hanya
Collection-based iteration,
jika diindonesiakan
Pengulangan Berbasis
Koleksi. Kita akan
membahas teknik
pengulangan dalam bahasa
python menggunakan
kalimat for dan while.

3.3.1 for
Struktur umum loop
menggunakan
for adalah
sebagai berikut:

for <var
> in <it
erable>
<sta
tement(s
)>

Note :

iterable adalah
tipe data yang
digunakan
untuk koleksi
object seperti
list , dict ,
tuple , set
dan str
statement(s)
kita sebut
dengan loop
body,
merupakan
statement yang
dieksekusi
untuk setiap
untuk setiap
koleksi yang
ada pada
iterable.
var adalah
loop variable
yang isinya
berubah setiap
kali loop.

Untuk lebih
jelasnya perhatikan
contoh code
berikut:

In [40]:
iterable
dengan
fungsi
range()

range()
adalah fungsi
yang
menghasilkan
object
numerik
integer yang
bersifat
iterable.
Perhatikan
penggunaan
fungsi
range()
berikut:

In [1]:
3.3.2 Contoh
Soal
Menghitung
integral dengan
metode
Trapezoidal:
\begin{equation}
\int_{x_1}^{x_n}
{y(x)dx \approx
\frac{h}{2}
\left(y_1 + y_n + 2
\sum_{j=2}^{n-
1}y_1 \right)}
\end{equation}

Hitunglah:
\begin{equation*}
\Delta H = n
\int_{20}^{70}C_p
dT
\end{equation*}

dimana $C_p$
merupakan
fungsi
temperatur yang
dinyatakan
dengan
persamaan:

$ C_p = a + bT +
cT^2 + dT^3 $

Sebagai contoh
water dengan
parameter $C_p$
:
a=
1.82964E+01
b=
4.72118E-01
c=-
1,33878E-03
d=
1.31424E-06

In [36]:
In [9]:
4 Modul
4 Modul
Sebaiknya fungsi yang
bakalan sering digunakan
dalam perhitungan
disimpan dalam file
modul.

Buatlah file baru beri


nama, sebagai
contoh myLib.py
Agar bisa dipanggil
dari Jupyter, simpan
file tersebut di
directories project
jupyter
Kemudian salin
fungsi-fungsi yang
akan sering
dibutuhkan dalam
perhitungan ke
myLib.py
Jupyter notebook
tidak support tipe file
.py . Sehingga
anda harus
menggunakan
program editor code,
kecuali jika anda
bekerja di
JupyterLab. Proses
editing code python
akan lebih mudah
dilakukan
menggunakan
program editor code
sederhana seperti
SublimeText atau
yang lebih canggih
Visual Studio Code

Sebagai contoh, salinlah


code berikut ke
myLib.py

#
n
-
B
P
-
-
>
N
o
r
m
a
l
B
o
i
l
i
n
g
P
o
i
i
n
t
i
n
K
e
l
v
i
n
#
L
H
-
-
>
L
a
t
e
n
t
H
e
a
t
i
n
J
/
m
o
l
#
c
p
l
-
-
>
L
i
q
u
i
d
H
e
a
t
C
a
p
a
c
i
t
y
i
n
J
/
(
m
o
l
K
)
#
T
c
-
-
>
C
r
i
i
t
i
c
a
l
T
e
m
p
e
r
a
t
u
r
e
i
n
K
e
l
v
i
n
#
P
c
-
-
>
C
r
i
t
i
c
a
l
P
r
e
s
s
u
r
e
i
n
K
P
a
c
h
e
m
_
p
r
o
p
s
=
{

'
W
A
T
E
R
'
:
{

'
M
W
W
'
:
1
8
.
0
1
6
,
'
n
-
B
P
'
:
3
7
3
.
1
6
1
,
'
L
H
'
:
4
0
6
5
6
.
2
,

'
c
p
l
'
:
{
'
a
'
:
1
.
8
2
9
6
4
E
+
1
,
'
b
'
:
4
.
7
2
1
1
8
E
-
1
,
'
c
c
'
:
-
1
.
3
3
8
7
8
E
-
3
,
'
d
'
:
1
.
3
1
4
2
4
E
-
6
}
,

'
T
c
'
:
6
4
7
.
3
0
1
,
'
P
c
'
:
2
2
1
0
9
.
1
9
,

}
,

'
M
E
T
H
A
N
O
L
'
:
{

'
M
M
W
'
:
3
2
.
0
4
2
,

'
n
-
B
P
'
:
3
3
7
.
6
7
1
,

'
L
H
'
:
3
5
2
7
0
.
4
,

'
c
p
l
'
:
{
'
a
'
:
-
2
.
5
8
2
5
0
E
2
,
'
b
'
:
3
.
3
5
8
2
0
E
E
0
,
'
c
'
:
-
1
.
1
6
3
8
8
E
-
2
,
'
d
'
:
1
.
4
0
5
1
6
E
-
5
}
,

'
T
c
'
:
5
1
3
.
1
6
1
,

'
P
c
'
:
7
9
5
4
.
0
4
,

}
}

d
e
f
i
n
t
C
p
d
d
t
(
c
h
e
m
i
c
a
l
,
T
1
,
T
2
)
:

a
=
c
h
e
m
_
p
r
o
p
s
[
c
h
e
m
i
c
a
l
]
[
'
c
p
l
'
]
[
'
a
'
]

b
=
c
h
e
m
_
p
r
o
p
s
[
c
h
e
m
i
c
a
l
]
[
[
'
c
p
l
'
]
[
'
b
'
]

c
=
c
h
e
m
_
p
r
o
p
s
[
c
h
e
m
i
c
a
l
]
[
'
c
p
l
'
]
[
'
c
'
]

d
=
c
h
e
m
_
p
r
o
p
s
[
c
h
e
m
i
c
a
l
]
[
'
c
p
l
'
]
[
'
d
'
]

r
e
t
u
r
n
a
*
(
T
2
-
T
1
)
+
(
b
/
2
)
*
(
T
2
*
*
2
-
T
1
*
*
2
)
+
(
c
/
3
)
*
(
T
2
*
*
3
-
T
1
*
*
3
)
+
(
d
/
4
)
*
(
T
2
*
*
4
-
T
1
1
*
*
4
)

In [37]:
In [10]:
4.1 Quizz
Buatlah program atau
fungsi untuk menghitung
Bubble and Dew Point
dengan aplikasi dari
Hukum Raoult.
Kemudian selesaikan
persoalan berikut
menggunakan program
atau fungsi yang telah
dibuat. Problem berikut
diambil dari Buku Smith,
J.M. Introduction to
Chemcial Engineering
Thermodynamics.
Thermodynamics.

Assuming the validity of


Raoult’s law, do the
following calculations for
the benzene(
1)/toluene(2) system:

1. Given x1 = 0.33 and


T = 100°C, find y1
and P.
2. Given y1 = 0.33 and
T = 100°C, find x1
and P.
3. Given x1 = 0.33 and
P = 120 kPa, find y1
and T.
4. Given y1 = 0.33 and
P = 120 kPa, find x1
and T.
5. Given T = 105°C
and P = 120 kPa,
find x1 and y1.
6. For part (5), if the
overall mole fraction
of benzene is z1 =
0.33, what molar
fraction of the two-
phase system is
vapor?