Final_Modul Pemrograman Dasar Python
Final_Modul Pemrograman Dasar Python
Daftar Isi
Daftar Isi ............................................................................................................................................................. iii
BAB 5 FUNCTION......................................................................................................................................... 19
Variabel global, local, dan parameter ................................................................................................... 20
Environment
Sebelum memulai untuk menciptakan sebuah program, seorang programmer harus
mempersiapkan beberapa kelengkapan demi mendukung kelancaran dalam penulisan
dan penyusunan kode. Kelengkapan tersebut diantaranya bisa berupa editor, compiler
maupun library eksternal lain yang berhubungan langsung dengan kebutuhan program,
Biasanya kelengkapan tersebut disebut sebagai environment.
Sementara itu, di dalam bahasa pemrograman Python sudah tersedia IDE (Integrated
Development Environment) powerful demi terciptanya Environment yang sesuai, IDE
tersebut adalah Anaconda, didalam Anaconda kita bisa memanfaatkan library built-in
(library yang sudah terinstall) sehingga untuk keperluan kebutuhan standar (secara
umum) kita tidak diharuskan untuk melakukan installasi library tersebut. Kebutuhan
standar yang perlu dipersiapkan untuk bisa memulai pemrograman Python diantaranya
adalah sebagai berikut:
• Virtual environment
• Python interpreter
• Editor
Karakteristik Python
Sebelum memulai penulisan kode Bahasa Pemrograman Python, Seorang Python
Entusiast harus memahami beberapa karakter dasar bahasa pemrograman Python,
dikarenakan Python adalah bahasa pemrograman yang clear and powerful pada bahasa
pemrograman dengan orientasi objek. Diantaranya seperti bahasa pemrograman Perl,
1. Easy
Python merupakan bahasa pemrograman yang mudah untuk ditulis dan dibaca.
a. Easy to Code
b. Easy to Read
4. High Level
Bahasa Pemrograman Python merupakan bahasa tingkat tinggi, yang dimana lebih
dekat dengan bahasa alami manusia. Sehingga untuk dapat menuliskan program
secara umum programmer tidak dituntut untuk menyediakan memory, menyediakan
arsitektur sistem yang langsung berkaitan dengan perangkat keras.
5. Portable
Bahasa pemrograman Python dapat dijalankan secara cross platform (sistem operasi
yang bervariasi). Apabila menuliskan kode di sistem operasi Mac atau Windows, kode
tersebut tentu masih bisa dijalankan pada sistem operasi Linux.
6. Object Oriented
7. Extensible
8. Embeddable
Seperti poin 7, akan tetapi secara kebalikannya. Bahasa pemrograman Python dapat
melakukan importing module yang ditulis dari bahasa pemrograman lain, contohnya
adalah bahasa pemrograman C++.
Berbeda dengan bahasa pemrograman C++ dan Jawa, bahasa pemrograman Python
merupakan bahasa pemrograman dengan ekseskusi tanpa melakukan compiling
terlebih dahulu yang biasa dilakukan oleh C++ dengan gcc dan Java dengan javac.
Pada bahasa pemrograman Python, kode Python akan dieksekusi dari baris ke baris,
sehingga memudahkan programmer untuk melakukan error tracing pada kode yang
telah ditulis.
Python memiliki support banyak library, untuk data science seperti image processing,
web programming, IoT, regular expressions, threading, CGI, big data dan masih banyak
lagi.
Telah disediakan beberapa library standar untuk dapat menggunakan GUI tersebut,
mulai dari skala primitive hingga enterprise. Contohnya adalah Tk, Qt dan masih
banyak lagi.
Merupakan salah satu karakteristik bahasa pemrograman Python yang paling disukai.
Dengan mengakomodasi dynamically typed, programmer menjadi lebih efisien dalam
menuliskan kode. Karena programmer tidak perlu mendeklarasikan tipe data untuk
bisa menggunakan variabel tersebut. Kembali ke poin 9, Python merupakan bahasa
pemrograman interpreted, sehingga pengecekan tipe nilai dilakukan saat running
time sehingga (tidak diperlukan compiling).
Dilihat dari tabel PEPs diatas yang diambil dari blog terlihat 4 mandatory (wajib) penerapan
pada Python 3.x diantaranya adalah:
Dalam setiap bahasa pemrograman, sudah sangatlah umum tersedia tipe data. Tipe data
tersebut biasanya memiliki keterkaitan dengan definisi variabel. Python merupakan
bahasa pemrograman dengan karakteristik Dynamic Typed seperti yang dibahas pada Bab
1. Didalam bahasa pemrograman Python programmer diberi kebebasan untuk
mendefinisikan variabel tanpa harus menuliskan tipe data secara spesifik. Seperti contoh
penulisan variabel dengan tipe data string berikut:
Sementara itu di dalam bahasa pemrograman Python terbagi ke dalam 2 jenis Data Type
yaitu primitive data-type dengan non primitive data-type beberapa tipe data yang ada
pada bahasa pemrograman Python adalah sebagai berikut:
>>> type(15)
>>> <class ‘int’>
long int merupakan bilangan yang mempunyai tipe data sama seperti integer
(bilangan bulat), hanya saja memiliki cakupan yang lebih panjang, (dalam Python 3
long int tetap didefinisikan sebagai int).
>>> type(22.5)
>>> <class ‘float’>
3. Complex
Tipe data complex merupakan tipe data untuk bilangan complex, biasanya
didefinisikan a+bj (a dan b merupakan bilangan real dan j merupakan bilangan
imaginer).
>>> type(7+3j)
>>> <class ‘complex’>
4. Boolean
Tipe data boolean adalah tipe data yang hanya bernilai True atau False, atau dapat
didefinisikan kedalam bilangan biner 0 (nol) atau 1 (satu), seperti contoh berikut.
>>> type(True)
>>> <class ‘bool’>
>>> type(False)
>>> <class ‘bool’>
5. String
String merupakan data yang berasal dari kumpulan karakter yang berbentuk teks,
untuk sebab itu data string pasti berada diantara tanda petik “”. Dengan contoh
kalimat “Universitas Jenderal Achmad Yani Yogyakarta”
6. None
None digunakan untuk mendefinisikan no value/tidak ada nilai.
>>> type(“None”)
>>> class ‘NoneType’>
2. Tuple
Tuple merupakan kumpulan data dari beberapa tipe data (sejenis ataupun bervariasi),
definisi tuple selalu berada diantara tanda kurung bulat (isi tuple). Contoh
sebagai berikut.
>>> type((5,4,3,2,1))
>>> class ‘tuple’>
>>> type((1,2,3.90,”Hello World”,5))
>>> class ‘tuple’>
3. Set
Set merupakan kumpulan data dari beberapa tipe data (sejenis ataupun bervariasi,
akan tetapi secara unique), definisi set selalu berada diantara tanda kurung kurawal
{isi set}. Contoh sebagai berikut.
>>> type({“monitor”,”cpu”,”monitor”,”keyboard”})
>>> class ‘set’>
>>> print({“monitor”,”cpu”,”mouse”,”keyboard”})
>>> {“monitor”,”cpu”,”keyboard”} //unique
4. Dictionary
Dictionary hampir sama seperti set akan tetapi isi dari dictionary terdiri dari key value
pairs, sehingga setiap value akan memiliki key bisa bertipe (integer/string/float),
seperti contoh sebagai berikut.
>>> type({1:”monitor”,2:”cpu”,3:”monitor”,4:”keyboard”})
>>> class ‘dict’>
>>> type({“a”:”monitor”,”b”:”cpu”,”c”:"monitor",”d”:"keyboard"})
>>> class ‘dict’>
Penggunakan logika kondisional sudah sangat umum diterapkan pada penulisan kode
program untuk membangun sebuah aplikasi atau sistem. Akan tetapi setiap bahasa
pemrograman mengakomodasi cara penulisan yang berbeda. Di dalam bahasa
pemrograman Python implementasi logika kondisional dapat dituliskan kedalam variasi
penulisan. IF secara konvensional dan IF secara ternary, IF secara konvensional dituliskan
dengan penulisan kode standar penulisan IF pada umumnya. Sedangkan IF secara ternary
menggunakan penulisan kode yang berbeda (lebih merujuk kepada efisiensi line code).
Berikut dijelaskan beberapa penggunaan Logika Kondisional pada bahasa Pemrograman
Python.
IF Tunggal
IF tunggal digunakan pada pendefinisian if secara tunggal dan hanya dalam satu konteks,
apabila ada IF tunggal yang lain dan berdiri sendiri, maka dapat disebut dengan IF tunggal
yang lain dalam konteks yang berbeda.
2. Contoh IF yang memiliki konteks yang berbeda untuk mencari kategori usia dan
pencocokan angka 18
>>> usia = 18
>>> if usia>=18:
>>> print(“Anda sudah dewasa”)
>>> if usia==18:
>>> print(“Usia Anda 18 tahun”)
Ternary IF
Ternary IF biasanya dipakai untuk menyingkat penulisan logika percabangan.
Contoh ternary IF ELSE dari:
>>> usia = int(input(“Masukkan usia Anda: ”))
>>> if usia < 18:
>>> print(“Anda belum dewasa”)
>>> else:
>>> print(“Anda sudah dewasa”)
Logika IF AND seringkali dipakai untuk menghubungkan dua buah kondisi atau lebih,
dengan syarat dua buah kondisi atau lebih tersebut harus bernilai benar untuk
menghasilkan konklusi yang dimaksud.
Contoh:
>>> tahun_lahir = int(input(“Masukkan tahun lahir Anda: ”))
>>> usia = 2023 - tahun_lahir
>>> if (usia>=18) and (2012>=tahun lahir>=1997):
>>> print(“Anda sudah dewasa, Anda termasuk Generasi Z”)
2. IF OR
Logika IF OR seringkali dipakai untuk menghubungkan dua buah kondisi atau lebih,
dengan syarat salah satu kondisi yang terjadi harus bernilai benar untuk
menghasilkan konklusi yang dimaksud.
Contoh:
>>> tahun_lahir = int(input(“Masukkan tahun lahir Anda: ”))
>>> usia = 2023 - tahun_lahir
>>> if (usia >= 18) or (tahun_lahir <= 2002):
>>> print(“Anda sudah dewasa”)
Nested IF
Logika Nested IF seringkali mensyaratkan ketergantungan pada logika sebelumnya.
Dapat dikatakan, untuk mencapai persyaratan selanjutnya maka dibutuhkan hasil dari
persyaratan sebelumnya. Seperti pada contoh berikut ini logika dengan warna biru
memerlukan hasil kondisi logika warna merah.
Perulangan merupakan logika kode yang seringkali diterapkan selain logika kode
percabangan. Disetiap bahasa pemrograman, kode perulangan itu sendiri biasanya
memiliki beberapa variasi cara perulangan ataupun penulisan kode. Secara umum
perulangan konvensional terbagi menggunakan for atau while. Pada bahasa
pemrograman Python dapat ditunjukan sebagai berikut.
Range
Range merupakan suatu fungsi yang ada didalam bahasa pemrograman Python yang
sering digunakan untuk menyediakan nilai jarak antara start number sampai stop number,
dipengaruhi dengan step number, kemudian akan menyimpan data hasil range kedalam
list.
For
Didalam pemrograman, perulangan seringkali digunakan untuk menyelesaikan kondisi
yang berulang dan kondisi tersebut bisa memiliki pola yang sama ataupun berbeda.
Perulangan didalam bahasa pemrograman Python secara sederhana biasanya
mengakomodasi range.
For Bersarang
Didalam pemrograman, perulangan bersarang sering dijumpai pada pembentukan matrix
(array multidimensi) atau pembentukan pola tertentu. Perulangan secara bertingkat
didefinisikan dengan didalam for akan terdapat for atau perulangan lain, seperti contoh
berikut ini:
While
Perulangan while hampir sama dengan for, yaitu untuk mengatasi permasalahan
berulang, akan tetapi dengan memanfaatkan suatu kondisi sampai kondisi yang
dimaksud terpenuhi. Didalam bahasa pemrograman, perulangan while dapat dituliskan
sebagai berikut.
Contoh:
>>> hitung = 1
>>> while hitung <= 5:
>>> print(hitung)
>>> hitung+=40
1
2
3
4
5
didalam while biasanya ada counter, counter tersebut digunakan untuk menjalankan
blok_eksekusi hingga mencapai kondisi yang dimaksud, seperti contoh perulangan
diatas menggunakan counter hitung+=40 untuk melakukan increment agar kondisi
terpenuhi.
While Bersarang
Konsep dari perulangan while secara bersarang hampir sama dengan perulangan for
secara bersarang, keduanya mengakomodasi perulangan didalam while kemungkinan
Contoh:
>>> x = 4
>>> y = 1
>>> while y <= x:
>>> j = 1
>>> while j <= y:
>>> print(j, end=” “)
>>> j += 1
>>> print()
>>> y += 1
1
1 2
1 2 3
1 2 3 4
Break
Fungsi break digunakan untuk menghentikan perulangan dengan mengakomodasi
kondisional statement. Contoh penggunaan break pada bahasa pemrograman Python
dapat dilihat sebagai berikut. (menghentikan perulangan apabila angka 5 didapat).
Contoh break pada for:
>>> for i in range(1,11):
>>> if i == 5:
>>> print("Angka 5 didapat")
>>> break
>>> print(i)
1
2
3
4
Angka 5 didapat
Angka 5 didapat
Pass
Fungsi pass digunakan untuk membiarkan, atau tidak ada sesuatu yang akan dijalankan,
biasanya digunakan untuk inisialisasi kode program untuk terus berjalan, dengan tanpa
menghiraukan definisi kode yang ada. Seperti contoh berikut, pass digunakan untuk
inisialisasi agar program berjalan pada kode if.
>>> for i in range(6):
>>> if (i%2)==1 or (i==0):
>>> pass
>>> else:
>>> print("{} adalah bilangan genap".format(i))
Continue
Fungsi continue berbeda dengan pass, continue digunakan untuk melompati proses yang
berjalan saat kondisi yang didefinisikan terpenuhi. proses saat itu akan dilompati dan
langsung kembali ke perulangan yang berada setelah proses perulangan tersebut, tanpa
menghiraukan operasi yang ada. Dalam bahasa pemrograman Python continue dapat
dilihat sebagai berikut.
Kode penulisan function pada bahasa pemrograman Python secara umum dapat
dituliskan sebagai berikut:
def nama_function(parameter):
isi kode function ...
return object_variabel
Pendefinisian function diatas memiliki satu buah parameter, parameter function dapat
lebih dari satu (penuliskan dipisahkan dengan koma) seperti contoh dibawah.
def nama_function(parameter1, parameter2, parameter3):
isi kode function ...
return object_variabel
Selain itu function juga bisa tidak memiliki parameter satupun, seperti contoh penulisan
function tanpa parameter dibawah.
def nama_function():
isi kode function ...
return object_variabel
def luas_persegi(s):
luas = (s * s) * jumlah_persegi
return luas
def keliling_persegi(s):
keliling = (s * 4) * jumlah_persegi
return keliling
Dari definisi kode diatas, variabel jumlah_persegi adalah variabel global karena
didefinisikan di luar fungsi, jumlah_persegi tersebut dapat dikenali pada function
luas_persegi dan function keliling_persegi. Sedangkan variabel luas dan keliling adalah
variabel local, dikarenakan luas hanya dikenali pada function luas_persegi dan keliling
hanya dikenali pada function keliling_persegi. Setiap function tersebut memiliki satu buah
parameter yaitu s, nilai dari s hanya dikenali pada masing-masing function (karena s
adalah variabel local), jadi s pada function luas_persegi bisa saja mempunyai nilai yang
berbeda dengan s pada keliling_persegi.
Seorang Python Enthusiast harus “Smart”, definisi smart kali ini bukan hanya tertuju pada
kasus/masalah sudah bisa terselesaikan, akan tetapi lebih ke cara bagaimana kita bisa
menyelesaikan kasus tersebut, kita bergerak dengan cara yang rapi atau hanya asal asal-
asalan. Seperti halnya orang membangun rumah, apakah rumah yang dibangun cukup
hanya digunakan untuk berteduh dan tidur? Tidakkah dilihat dari segi estetika, bentuk,
warna, kesopanan sehingga menyatu menjadi wujud yang indah?
Python idioms merupakan salah satu kebanggaan yang dimiliki oleh Python Enthusiast,
didalam Python idiom tersebut programmer dilatih untuk bisa menerapkan style kode
yang rapi dan indah, sehingga kode program yang ditulis menjadi lebih enak dibaca dan
tanpa memerlukan banyak resource. Berikut ini dijelaskan beberapa Style dari Python
Idiom yang dapat kita terapkan.
Good
def main():
print(“Mengerjakan sesuatu dalam modul”, __name__)
if __name__ == “__main__”:
print(“Mengerjakan sesuatu dalam modul”, __name__)
main()
Good
if angka1 <= angka2 <= angka3:
#do something
Good
name = "Budi Budiman"
address = "Sleman"
if name:
print(name)
print(address)
4. Use the Falsy and Truthy Concepts (Penggunakan konsep True False)
# Contoh Falsy : 0, “”, {}, []
# Contoh Truthy : 1, “Andi”, {“key”: “value”}, [“item1”, “item2”]
Bad
name = "Tono"
pets = ["Kucing", "Burung", "Anjing"]
owners = {"Tono": "Kucing", "Boni": "Burung"}
if name != “” and len(pets) > 0 and owners != {}:
print(“Kita Punya Hewan Peliharaan”)
Good
name = "Tono"
pets = ["Kucing", "Burung", "Anjing"]
owners = {"Tono": "Kucing", "Boni": "Burung"}
if name and pets and owners:
print("Kita Punya Hewan Peliharaan")
Note:
• Checking for truth doesn't tie the conditional expression to the type of object being checked.
• Checking for truth clearly shows the code's intention rather than drawing attention to a specific
outcome.
a. Melakukan pengecekan apakah ada karakter huruf atau data ada pada list
Bad
name = "Ronaldo"
if name.find("a") != -1:
print("Huruf a ada")
Good
name = "Ronaldo"
if “a” in name:
print("Huruf a ada")
Note:
• Using in to check if an item is in a sequence is clear and concise.
• Can be used on lists, dicts (keys), sets, strings, and your own classes by implementing the
__contains__ special method.
Good
pets = ["Kucing", "Burung", "Anjing"]
for pet in pets:
print('Seekor', pet, 'Mengejutkan')
Note:
• Using in to for iteration over a sequence is clear and concise.
• Can be used on lists, dicts (keys), sets, strings, and your own classes by implementing the
__iter__ special method.
6. Swap values without temp variable (pertukaran nilai tanpa variabel temporary)
Bad
x, y = 3, 5
print(x, y)
# 3, 5
temp = x
x=y
y = temp
print(x, y)
# 5, 3
x, y = y, x
print(x, y)
# 5, 3
Note: Avoids polluting namespace with temp variable used only once.
Good
chars = ["B", "u", "d", "i"]
name = “”.join(chars)
print(name)
# Budi
Note:
• The join method called on a string and passed a list of strings takes linear time based on length of
list.
• Repeatedly appending to a string using '+' takes quadratic time!
Bad
you = {"jump": "whoaaa"}
if "jump" in you and \
isinstance(you["jump"], str) and \
you["jump"].isdigit():
value = int(you["jump"])
else:
value = None
Note:
• Throwing exceptions is not “expensive” in Python unlike e.g. Java.
• Rely on duck typing rather than checking for a specific type.
9. Using enumerate
Bad
names = ["Rani", "Riki", "Dana", "Aris"]
count = 0
for name in names:
print(count, name)
count += 1
Good
names = ["Rani", "Riki", "Dana", "Aris"]
for i, name in enumerate(names):
print(i, name)
10. Build lists using list comprehensions (Menciptakan list dengan list comprehensions)
Bad
data = [2, 4, 6, 8, 10]
result = []
for i in data:
if i > 5:
result.append(i * 3)
print(result)
# [18, 24, 30]
Good
data = [2, 4, 6, 8, 10]
result = [i * 3 for i in data if i > 5]
print(result)
# [18, 24, 30]
Note :
• Very concise syntax.
• Be careful it doesn't get out of hand (in which case the first form can be clearer).