Anda di halaman 1dari 158

PEMROGRAMAN LANJUT

ERIZAL, S.Kom., M.Kom.


• Telp : 021 – 8645029
• HP : 08128513048
• E-mail : rrizal65@yahoo.com
• erizal@uhamka.ac.id
• Blog : rizal65.blog.uhamka.ac.id
• Website : www.erizal.uhamka.ac.id
KOMPONEN PENILAIAN
• KEAKTIFAN : 10 %
• TUGAS : 20%
• UTS : 30 %
• UAS : 40%
Rencana Pertemuan
• Rencana Pertemuan (tatap muka) : 16 x
• Termasuk UTS dan UAS

• Syarat minimal Mata Kuliah bisa Diujikan : 75% X rencana pertemuan.

• Syarat minimal Mahasiswa bisa mengikuti UJIAN AKHIR SEMESTER :


75 % dari Tatap Muka yg dilakukan dg Dosen.
Aturan Perkuliahan
• Toleransi keterlambatan maks. 15 menit
• Berbusana sopan, rapi, dan tidak memakai sandal.
• Jujur, dilarang keras titip Absen
( bagi yg berhalangan hadir : Ada surat keterangan sakit, dll. Dan izin
via sms maks. 2 x)
Referensi :
• Budi Raharjor, Python untuk Aplikasi Desktop dan Web, Penerbit
Informatika Bandung, 2019
• Abdul Kadir, Logika Pemrograman Python, Penerbit Elex Media
Komputindo, 2019
• Abdul Kadir, Dasar Pemrograman Python 3, Penerbit Andi Yogyakarta,
2018.
• Konsep dan Implementasi Pemrograman GUI, Penerbit Andi Yogyakarta,
2016
• Donald Knuth, The art Computer Programming, Vol.1 / fundamental
Algorithms. 2nd edition, Addison Wesleyl
• Referensi dari internet
Bahasa Pemrograman Python
• interpreted high-level programming language for general-purpose
programming.
• Python menggunakan metode pemrosesan interpreted,
• dimana kode program akan diproses baris per baris langsung dari kode
program (tidak butuh proses compile).
• Ini mirip seperti bahasa script seperti PHP dan JavaScript.
Sejarah Singkat Python

• Bahasa pemrograman Python dirilis pertama kali oleh Guido van


Rossum di tahun 1991, yang sudah dikembangkan sejak tahun 1989.
• Diambil dari Monty Python adalah kelompok lawak yg membawakan
acara “Monty Python’s Flying Circus“ di BBC
• Pada tahun 1994, Python 1.0 dirilis, yang diikuti dengan Python
2.0 pada tahun 2000. Python 3.0 keluar pada tahun 2008.
• Python 3.7 yang di rilis Juni 2018
• Web resmi python berada di www.python.org.
Keunggulan Bahasa Pemrograman Python
• Mudah dipelajari. Bahasa pemrograman python memiliki sedikit keyword dan struktur
yang sederhana sehingga mudah dipelajari bagi pemula.
• Mudah di baca. Python mengharuskan penggunaan spasi untuk “menjorokkan” blok
kode program (indentation), sehingga kode yang ditulis lebih rapi. Dalam bahasa
pemrograman lain, indentation ini tidak diwajibkan.
• Perintah yang lebih singkat. Kode program yang dipakai python jauh lebih singkat
dibandingkan dengan bahasa pemrograman lain untuk menyelesaikan masalah yang
sama.
• Cross-platform. Python bisa dipakai di berbagai sistem operasi, termasuk Windows,
UNIX, Linux, Mac OS, dll. Dalam mayoritas penggunaan, kode program yang ditulis tidak
perlu diubah agar bisa berjalan di sistem operasi yang berbeda.
• Mendukung multi-paradigma. Python bisa ditulis dengan kode program prosedural
maupun pemrograman object (OOP).
• Memiliki banyak library. Library adalah sebutan untuk kode program tambahan untuk
hal-hal khusus. Berdasarkan web pypi.org, python memiliki lebih dari 140.000 library
atau packages.
• Gratis. Python dikembangkan sebagai project open source dan bisa digunakan siapa saja
secara gratis
Cara Mendownload Python
• File Python interpreter bisa di download dari web resmi Python
di www.python.org. Silahkan buka alamat tersebut lalu klik menu
“Download”
• Python interpreter inilah yang akan membaca satu persatu perintah
dalam bahasa Python dan memprosesnya menjadi kode-kode yang
bisa dipahami komputer.
NOTE : Python versi 3.5 ke atas (termasuk Python 3.7) tidak bisa dipakai di Windows XP.
Jika anda masih menggunakan Windows XP, silahkan pilih Python 3.5 ke bawah.
Pada bagian Menu Windows, lalu cari Python 3.7. Anda akan mendapati 4 file dalam
menu ini:
Cara Menjalankan Kode Program Python
1. cmd Windows, yakni aplikasi command prompt bawaan sistem
operasi Windows.
• ketik “python” (tanpa tanda kutip)
• Dua perintah di atas adalah kode program python. Begitu selesai mengetik kode dan menekan
tombol enter, python interpreter akan langsung memproses baris tersebut dan menampilkan
hasilnya.

• Selama di sisi kiri cmd Windows terdapat tanda lebih besar tiga kali (>>>), maka artinya kita
sedang berada di dalam python interpreter.

• Untuk keluar dari python interpreter, ketik perintah quit() atau exit()
Alternatif lain untuk menjalankan Python adalah dari menu Windows.
file python atau python script
• Menjalankan Python dari cmd dan Python Interpreter seperti ini
cocok untuk menjalankan kode Python yang singkat dan hanya terdiri
dari 1 baris.
• Untuk menulis kode program yang panjang, kita bisa menulis
sebuah file python atau python script
Membuat File Kode Program Python

Simpan file tersebut di dalam folder D:\belajar_python\ dengan nama hello.py.


Pada saat menyimpan file, pastikan memilih “All Files (*.*)” di kolom “Save as type”.
Jika tidak, besar kemungkinan nama file yang tersimpan menjadi hello.py.txt.
Menjalankan File Kode Program Python
Cara Menjalankan Python dari IDLE
• IDLE Python tidak lain adalah teks editor bawaan Python. Ketika kita
menginstall Python, IDLE sudah langsung terinstall secara otomatis.
• Untuk membukanya, silahkan pilih menu Python di start menu, lalu
cari IDLE (Python 3.7 32-bit).
Menjalankan File Python dari IDLE (script mode)
• buat file teks baru dari menu File -> New File. Sesaat kemudian akan
tampil teks editor yang mirip seperti Notepad

• simpan file ini dimana saja, namun agar lebih rapi saya akan menyimpannya
di D:\belajar_python\ dengan nama file hello_world.py. (Folder yang sudah dibuat)

• Untuk menjalankan kode python, pilih menu Run -> Run Module, atau bisa juga
tekan tombol F5.
Alternatif Editor Python
• Yang paling terkenal adalah PyCharm. PyCharm adalah IDE khusus
Python tersedia dalam versi berbayar dan gratis.
• Anaconda, yang merupakan editor Python dengan tampilan web-
based.
• Notepad++, Atom atau VS Code. Namun perlu menginstall beberapa
plugin tambahan agar lebih nyaman mengetik kode-kode Python.
Struktur Kode Program Python
• Python termasuk bahasa pemrograman yang sangat minimalis, yang
tidak butuh membuat struktur program apapun.
• Python, tidak ada kerangka program khusus yg wajib digunakan,
seperti kode program C, C++, dan Java, yg masing2 memiliki fungsi
main().
• Tetapi para programmer, python biasanya menggunakan bentuk
berikut untuk menuliskan kode program:
Def main()
# statement
If __nameme__ == “__main__” : #modul utama
main() #memanggil fungsi main()
Contoh :
Statement Terminator
• bahasa Python juga tidak perlu tanda titik koma ( ; ) di akhir setiap
perintah sebagaimana yang sering ditemukan dalam bahasa
pemrograman lain.
• Python menggunakan karakter new line sebagai pemisah perintah
• Karakter newline ini tidak lain adalah penanda pindah baris yang kita buat
dengan cara menekan tombol Enter.
print("Hello World")
web="Duniailkom"
print("Sedang belajar bahasa Python di "+web)
print("Semangat!!")
• Toleransi (;)
print("Hello World");
web="Duniailkom";
print("Sedang belajar bahasa Python di "+web);
print("Semangat!!");
case sensitif
• artinya huruf besar dan kecil dianggap berbeda
• seperti penulisan variabel dan keyword.
Komentar
• Comment ini ibarat notes atau catatan yang biasa dipakai untuk
menulis maksud dari kode tersebut
• Comment tidak akan diproses oleh interpreter Python
• comment akan mempermudah programmer lain untuk memahami
maksud dari kode yang ditulis
• Untuk membuat comment di dalam Python, awali sebuah baris
dengan tanda hash atau tanda pagar ( # ), seperti contoh berikut:
# ini adalah baris komentar
# kode program dibawah akan menampilkan angka 0 sampai 4
for x in range(0, 5):
print (x) # komentar juga bisa ditulis disini
Penggunaan dan tampilan Variabel dalam Bahasa Python
• dalam bahasa Python, untuk menggunakan variabel, tidak perlu mendeklarasikan variabel
tersebut berdasarkan tipe data yg dibutuhkan.
• Dalam bahasa Python, variabel bisa langsung ditulis pada saat akan digunakan. Untuk memberi
nilai ke dalam sebuah variabel (operasi assignment), gunakan tanda sama dengan ( = ), seperti
contoh berikut:
website = “UHAMKA”
harga = 20000
sukses = True
Mengubah Nilai Variabel dalam Bahasa Python
• Sepanjang penulisan program, nilai dari sebuah variabel bisa ditimpa
dengan nilai lain. Berikut contohnya:

website = “UHAMKA“ foo = "Belajar Python di UHAMKA"


print(website) print(foo)
website = "Python" foo = 350.25
print(website) print(foo)
website = "Google" foo = False
print(website) print(foo)

Dalam bahasa pemrograman dasar lain seperti Pascal, C dan C++, setiap variabel harus di
deklarasikan akan bertipe apa dan hanya bisa diisi dengan tipe data tersebut sepanjang
kode program (tidak bisa ditimpa antar tipe data).
Aturan Penamaan Variabel dalam Bahasa Python
• Variabel bisa terdiri dari huruf, angka dan karakter underscore / garis
bawah ( _ ).
• Karakter pertama dari variabel hanya boleh berupa huruf dan
underscore ( _ ), tidak bisa berupa angka. Namun variabel yang
diawali dengan karakter underscore bisa bermakna khusus di dalam
Python.
• Variabel harus selain dari keyword. Sebagai contoh, kita tidak bisa
memakai kata continue sebagai nama variabel,
karena continue merupakan keyword atau perintah khusus dalam
bahasa Python.
• aturan penamaan variabel merujuk ke aturan penamaan identifier
• Identifier adalah sebutan untuk “nama sesuatu” yang ditulis oleh
programmer. Dan aturan di atas tidak hanya berlaku untuk nama
variabel saja, tapi juga untuk nama function, nama class, nama object
yang semuanya termasuk identifier
Konstanta Dalam Bahasa Python?
• bahasa Python tidak mengenal adanya konstanta, yakni variabel yang
nilainya tidak bisa diubah sepanjang kode program.
• Untuk mengatasi hal ini, kesepakatan programmer Python adalah
dengan membuat nama variabel dalam huruf besar untuk
menandakan sebuah konstanta, seperti kode program berikut:

PI = 3.14
BULAN_1 = "Januari"
NAMA_WEBSITE = “UHAMKA"
Jenis-jenis Tipe Data dalam Bahasa Python

• Data bisa disebut sebagai inti dari setiap program


• Program itu memproses data input untuk menghasilkan data output.
• bahasa pemrograman butuh tipe data.
Pengertian Tipe Data
• tipe data adalah cara kita memberitahu komputer untuk
mengelompokkan data berdasarkan apa yang dipahami oleh
komputer
Jenis-jenis Tipe Data dalam Bahasa Python
9(Sembilan) tipe data dasar:
• String
• Integer
• Float
• Complex Number
• Boolean
• List
• Tuple
• Set
• Dictionary
• Beberpa referensi yang menggabungkan tipe
data Integer, Float dan Complex Number sebagai satu tipe data saja,
yakni tipe data Number.
Contoh tipe data :
#Tipe Data String #Tipe Data List
foo = "Belajar Python di Duniailkom" foo = ["satu","dua","tiga","satu"]
print(foo) print(foo)

#Tipe Data Integer #Tipe Data Tuple


foo = 1500 foo = ("satu","dua","tiga","satu")
print(foo) print(foo)

#Tipe Data Float #Tipe Data Set


foo = 99.123 foo = {"satu","dua","tiga","empat"}
print(foo) print(foo)

#Tipe Data Complex Number #Tipe Data Dictionary


foo = 4j foo = {"satu":1, "dua":2.13, "tiga":"a",
print(foo) "empat": True}
print(foo)
#Tipe Data Boolean
foo = True
print(foo)
Tipe Data String
• tipe data untuk menampung data teks
• Bahasa Python tidak membatasi jumlah karakter yang ada di dalam
string, tapi lebih ke batasan maksimum memory.
• menggunakan interpreter Python 32-bit maksimum karakter adalah
sekitar 2 atau 3 milyar karakter (2 – 3GB).
• menggunakan interpreter Python 64-bit, maka maksimum jumlah
karakter menjadi sekitar 63 milyar (63GB).
3 cara untuk membuat tipe data string:
• Menggunakan tanda kutip satu ( ‘ )
• Menggunakan tanda kutip dua ( ” )
• Menggunakan tanda kutip satu atau dua sebanyak 3 kali ( ‘ ‘ ‘ ) atau (”
” “)
• Cara pertama dan kedua tidak ada perbedaan mendasar dan bisa dipilih salah
satu.
• Contoh :
1. foo = "Duniailkom"
2. print(foo)
3. bar = 'Duniailkom'
4. print(bar)
• Untuk menulis karakter khusus seperti tab atau pindah baris, bisa
menggunakan escape character, yakni karakter backslash ( \ ) dan
diikuti dengan satu karakter khusus. Sebagai contoh, untuk menulis
karakter ‘tab’ bisa dipakai \t, dan untuk membuat karakter new
line (pindah baris) bisa menggunakan tanda \n:
• Contoh :
Operasi Penyambungan String
(string concatenation)
String Python sebagai Array
• seperti kebanyakan bahasa pemrograman modern, tipe data string
Python bisa diproses sebagai array dari karakter.
• contoh pengaksesan huruf dari sebuah string:
1. foo = ‘Teknik Informatika'
2. print(foo[0])
3. print(foo[4])
4. print(foo[7:10])
• Hasil kode program Python
1. T
2. i
3. Info
Tipe Data Number
• Dalam bahasa Python, tipe data number terdiri dari 3 jenis:
• Integer (int): Tipe data bilangan bulat, seperti 1, 300, 59000000
• Float: Tipe data bilangan desimal / pecahan, seperti 0.43, 0.0002, 999.99
• Complex Number: Tipe data bilangan kompleks atau bilangan imajiner,
seperti 5j, 54j, 1j
• tipe data Complex Number adalah tipe data yang cukup unik dan
jarang tersedia di bahasa pemrograman lain.
• Dalam teori matematika, complex number atau bilangan
kompleks atau bilangan imajiner adalah sebutan untuk angka yang
mengandung nilai akar kuadrat dari -1. Angka akar kuadrat dari -1 ini ditulis
dalam Python dengan huruf j. Bilangan 5j sama artinya dengan 5√-1
Contoh :
1.foo = 100 Hasil kode
2.bar = 30.23 program python:
3.baz = 4j 1. 100
4.print(foo) 2. 30.23
5.print(bar) 3. 4j
6.print(baz)
Untuk memeriksa tipe data dari sebuah variabel,
terdapat function type() bawaan Python.
Berikut contoh penggunaannya:
1.foo = 100 Hasil kode program
2.bar = 30.23 python:
3.baz = 4j 1.<class 'int'>
4. 2.<class 'float'>
5.print(type(foo)) 3.<class 'complex'>
6.print(type(bar))
7.print(type(baz))
Nilai Maksimum untuk Tipe Data Number
di dalam bahasa Python, nilai maksimum integer (angka bulat) hanya dibatasi dengan
jumlah memory. Berikut percobaannya:

Untuk tipe data float, nilai maksimumnya sama seperti tipe data double dalam
bahasa C dan C++, yakni 1.7976931348623157e+308.
Penulisan Notasi Ilmiah (Scientific Notation)
• Untuk tipe data float, kita bisa menulisnya menggunakan notasi ilmiah atau dalam bahasa inggris
disebut sebagai scientific notation.
• Dalam matematika, notasi ilmiah harus dinyatakan dalam 1 angka di depan koma. Angka 125 jika
kita tulis dalam bentuk notasi ilmiah menjadi 1,25 x 102.
• Di dalam bahasa Python (dan sebagian besar bahasa pemrograman lain), pangkat 10 ini diganti
dengan huruf e atau E. Sebagai contoh 1,2 x 102 bisa ditulis sebagai 1.2e2 atau 1.2E2. Berikut
contoh penggunaannya:
Tipe Data Boolean
• Tipe data ini hanya bisa diisi dengan salah satu dari 2 nilai: True atau False.
• Penulisan yang salah  TRUE, true, FALSE, false (case sensisitif)
• Contoh :
Tipe Data List
• tipe data List adalah sebuah array, yakni tipe data yang berisi
kumpulan tipe data lain.
• Namun berbeda seperti array dalam bahasa pemrograman
lain, List bisa diisi dengan berbagai jenis data, tidak harus tipe data
yang sama.
• sebenarnya tipe data array di Python terdiri dari 4 jenis,
yakni List, Tuple, Set dan Dictionary. Ke empat tipe data ini mirip satu
sama lain dengan sedikit perbedaan.
Tipe Data List
• gunakan tanda kurung siku, kemudian setiap anggota list dipisah
dengan tanda koma.
• Contoh :
1. foo = ["Belajar", "Python", Hasil kode program python:
"di", “UHAMKA”] 1. ['Belajar', 'Python', 'di',
2. bar = [100, 200, 300, 400] ‘UHAMKA']
3. baz = ["Python", 200, 6.99, 2. [100, 200, 300, 400]
True] 3. ['Python', 200, 6.99, True]
4.
5. print(foo)
6. print(bar)
7. print(baz)
Mengakses Tipe Data List
• gunakan penomoran index.
• Data pertama bernomor index 0, data kedua bernomor index 1, dst.
• Nomor index ini ditulis di dalam tanda kurung siku:
• Contoh :
1. foo = ["Python", 200, 6.99, Hasil kode program python:
True, ‘UHAMKA', 99j] 1. Python
2. 2. 200
3. print(foo[0]) 3. 6.99
4. print(foo[1]) 4. True
5. print(foo[2]) 5. UHAMKA
6. print(foo[3]) 6. 99j
7. print(foo[4])
8. print(foo[5])
Mengganti Nilai Tipe Data List
• Nilai yang ada di dalam List bisa diganti atau diupdate
• Caranya, isikan data baru ke dalam nomor index seperti contoh
berikut:

1. foo = ["Python", 200, 6.99, Hasil kode program python:


True, ‘UHAMKA', 99j] 1. ['Python', 200, 6.99, True,
2. print(foo) ‘UHAMKA', 99j]
3. 2. ['Belajar', 200, 6.99, False,
4. foo[0] = 'Belajar' ‘UHAMKA', 99j]
5. foo[3] = False
6. print(foo)
Menampilkan Sebagian Anggota List
Tipe Data Tuple
• tipe data Tuple terdiri dari kumpulan tipe data lain (mirip dengan
LIST)
• Anggota di dalam tipe data Tuple tidak bisa diubah setelah di
deklarasikan (perbedaan dg LIST).
Format TUPEL
• Menggunakan tanda kurung biasa, kemudian setiap anggota TUPEL
dipisah dengan tanda koma;
Contoh :
1. foo = ("Belajar", "Python", Hasil kode program python:
"di", “UHAMKA")
2. bar = (100, 200, 300, 400) 1. ('Belajar', 'Python', 'di',
3. baz = ("Python", 200, 6.99, ‘UHAMKA')
True) 2. (100, 200, 300, 400)
4. 3. ('Python', 200, 6.99, True)
5. print(foo)
6. print(bar)
7. print(baz)
Mengakses Tipe Data Tuple
• mengakses tipe data Tuple, menulis nomor urut index dalam tanda
kurung siku (sama dg LIST):

1. foo = ("Python", 200, 6.99, 1. Hasil kode program python:


True, ‘UHAMKA', 99j) 2. Python
2. 3. 200
3. print(foo[0]) 4. 6.99
4. print(foo[1]) 5. (6.99, True, ‘UHAMKA')
5. print(foo[2]) 6. ('Python', 200, 6.99)
6. print(foo[2:5]) 7. (True, ‘UHAMKA', 99j)
7. print(foo[:3]) 8. ('Python', 200, 6.99, True,
8. print(foo[3:]) ‘UHAMKA', 99j)
9. print(foo[:])
Mengganti Nilai Tipe Data Tuple
• tipe data Tuple tidak bisa diubah atau diganti :
• Contoh :

1. foo = ("Python", 200, 6.99, Hasil kode program python:


True, ‘UHAMKA', 99j) 1. Traceback (most recent call
2. foo[0] = 'Belajar' last):
3. print(foo) 2. File
"D:\belajar_python\latihan.p
y", line 3, in <module>
3. foo[0] = 'Belajar'
4. TypeError: 'tuple' object does
not support item assignment
Tipe Data Set
• adalah tipe data yang berisi kumpulan tipe data dan
dipakai untuk mengolah himpunan (set).
• Tipe data set tidak memiliki index, maka posisi nilai
bisa berada di mana saja.
• tidak ada mekanisme pengurutan dan
• Tidak bisa menambah nilai baru ke dalam tipe data
set dengan cara menulis nomor index
• tidak bisa menerima nilai ganda, setiap nilai di
dalam set harus unik
Tipe data Set - next
• gunakan tanda kurung kurawal, kemudian setiap anggota set dipisah dengan
tanda koma
• cara penulisan tipe data set tidak berbeda dengan tipe data list dan tuple
• Contoh :

1. foo = {"Belajar", "Python", Hasil kode program python:


"di", “UHAMKA"} 1. {'Belajar', 'di', ‘UHAMKA',
2. bar = {100, 200, 300, 400} 'Python'}
3. baz = {"Python", 200, 6.99, 2. {200, 100, 400, 300}
True} 3. {200, True, 6.99, 'Python'}
4.
5. print(foo)
6. print(bar)
7. print(baz
Sifat Tipe Data Set
• sifat dari tipe data set adalah tidak ber-index dan hanya bisa
menerima anggota dengan nilai yang berbeda (unique value).
• Contoh :
1. foo = {"Belajar", 1. Hasil kode program
"Python", "di", python:
“UHAMKA", "di"} 2. {'Python', 'di',
2. bar = {100, 200, 300, ‘UHAMKA', 'Belajar'}
400, 200, 300} 3. {200, 100, 400, 300}
3.
4. print(foo)
5. print(bar)
Sifat Tipe Data Set - next
1.foo = {"Belajar", Hasil :
"Python", "di", Traceback (most recent
“UHAMKA", "di"} call last):
2. File
3.print(foo[1]) "D:\belajar_python\latiha
n.py", line 3, in <module>
print(foo[1])
TypeError: 'set' object
does not support indexing
Operasi Himpunan tipe data Set
• Tipe data set pada dasarnya adalah tipe data khusus yang dipakai
untuk operasi himpunan, seperti operasi gabungan (union), operasi
irisan (intersection), dst.
• Contoh :
1.foo = {1, 2, 3, 4, 5} Hasil :
2.bar = {3, 4, 5, 6, 7} 1.{1, 2, 3, 4, 5, 6, 7}
3. 2.{3, 4, 5}
4.print (foo | bar) # union
5.print (foo & bar) #
intersection
Tipe Data Dictionary
• Tipe data dictionary adalah tipe data array dimana key atau index dari
array bisa berbentuk string, tidak hanya number saja.
• format dasar penulisan dictionary :

nama_variabel = { "key1": "value1", "key2": "value2", "key3": "value3" }

Tipe data dictionary ini cocok dipakai untuk kelompok data yang
kompleks (terdiri dari banyak element)
Pembuatan Tipe Data Dictionary
• menggunakan tanda kurung kurawal { dan }
• setiap element merupakan pasangan dari key dan value.
• satu element dengan element lain dipisah dengan tanda koma
• Contoh :
1. foo = { 1: "Belajar", 2: "Python", 3: "di Hasil :
UHAMKA" } 1. <class 'dict'>
2. bar = { "mengapa": "Belajar", "apa": 2. <class 'dict'>
"Python", "dimana": "di UHAMKA" } 3. <class 'dict'>
3. baz = { 1: "Belajar", "apa": "Python", 4.
"dimana": "di UHAMKA" } 5. {1: 'Belajar', 2: 'Python', 3: 'di UHAMKA'}
4. 6. {'mengapa': 'Belajar', 'apa': 'Python',
5. print(type(foo)) 'dimana': 'di UHAMKA'}
6. print(type(bar)) 7. {1: 'Belajar', 'apa': 'Python', 'dimana': 'di
7. print(type(baz)) UHAMKA'}
8.
9. print(foo)
10.print(bar)
11.print(baz)
Nilai atau value dari setiap element dictionary bisa terdiri dari
berbagai tipe data:
1. foo = { 1: "Belajar", Hasil :
2. 2: ["Pascal", "C", "Python"], { 1: 'Belajar',
3. "website": “UHAMKA", 2: ['Pascal', 'C', 'Python'],
4. "menyerah" : False, 'website': ‘UHAMKA',
5. "target": 2020, 'menyerah': False,
6. "riwayat_sekolah": { 'target': 2020,
7. "SD": "SDN 3 Hijau Daun", 'riwayat_sekolah': {'SD': 'SDN 3 Hijau
8. "SMP": "SMP 7 Hijau Lumut", Daun',
9. "SMA": "SMA 8 Hijau Rumput"} 'SMP': 'SMP 7 Hijau Lumut',
10. } 'SMA': 'SMA 8 Hijau Rumput'}
11. }
12.print(foo)

variabel foo diisi dengan 6 element dictionary dengan tipe data yang berbeda-
beda, mulai dari string, boolean, number, list, hingga dictionary lain
Mengakses Element Dictionary
• tulis key atau index yang ingin diakses dalam kurung siku:
• Contoh :

foo = { "kegiatan": "Belajar Hasil :


Python", UHAMKA
"website": “UHAMKA",
"hasil": "Yakin bisa!" }

print(foo["website"])
Mengubah Element Dictionary
• mengisi nilai ke dalam key atau index dictionary: (mirip seperti tipe
data list)
• Contoh :

1. foo = { "kegiatan": "Belajar Hasil :


Python", {'kegiatan': 'Belajar Bahasa
2. "website": “UHAMKA", Pemrograman',
3. "hasil": "Yakin bisa!" } 'website': ‘UHAMKA',
4. 'hasil': 'Yakin bisa!'}
5. foo["kegiatan"] = "Belajar
Bahasa Pemrograman"
6. print(foo)
Menambah Element Dictionary
• dengan cara mengisi nilai ke sebuah key baru:
• Contoh :

1. foo = { "kegiatan": "Belajar Hasil :


Python", {'kegiatan': 'Belajar Python',
2. "website": 'website': 'Duniailkom',
"Duniailkom", 'hasil': 'Yakin bisa!',
3. "hasil": "Yakin bisa!" } 'target': 2020}
4.
5. foo["target"] = 2020
6. print(foo)
Menghapus Element Dictionary:
• Menggunakan perintah del.
• Contoh :

1. foo = { "kegiatan": "Belajar Hasil :


Python", {'website': ‘UHAMKA',
2. "website": “UHAMKA", 'hasil': 'Yakin bisa!'}
3. "hasil": "Yakin bisa!" }
4.
5. del foo["kegiatan"]
6. print(foo)
Dictionary dengan constructor dict()
• Selain menggunakan tanda kurung kurawal, proses pembuatan
dictionary di dalam bahasa Python juga bisa dilakukan menggunakan
“constructor” dict():
foo = dict ( kegiatan = "Belajar Hasil :
Python", {'kegiatan': 'Belajar Python',
website = “UHAMKA", 'website': ‘UHAMKA',
hasil = "Yakin bisa!" ) 'hasil': 'Yakin bisa!'}

print(foo)
Dengan menggunakan perintah dict(), kita tidak lagi memakai tanda kurung kurawal, tapi cukup tanda
kurung biasa. Selain itu key element juga tidak perlu menggunakan tanda kutip, dan tanda sama dengan
‘=’ dipakai untuk menginput nilai ke dalam element dictionary.
Ini hanya alternatif penulisan, bebas menggunakan cara biasa dengan tanda kurung kurawal, atau
menggunakan constructor dict() untuk membuat tipe data dictionary.
Jenis-jenis Operator dalam Bahasa Python
• Operand dan Operator:
• Operand adalah nilai asal yang dipakai dalam sebuah proses operasi
• Operator adalah instruksi yang diberikan untuk mendapatkan hasil dari
proses tersebut.
• Contoh: operasi: 10 + 2
• 10 dan 2 disebut sebagai operand
• Tanda tambah (+) adalah operator
Jenis-jenis Operator :
• Operator Aritmatika
• Operator Perbandingan / Relasional
• Operator Logika / Boolean
• Operator Bitwise
• Operator Assignment (Penugasan)
• Operator Identitas (Identity)
• Operator Keanggotaan (Membership)
Operator Aritmatika
Operator Penjelasan Contoh
+ Penambahan 20 + 6, hasil: 26
– Pengurangan 20 – 6, hasil: 14
* Perkalian 20 * 6, hasil: 120
/ Pembagian 20 / 6, hasil: 3.3333
(real/pecahan)
// Pembagian (dibulatkan 20 // 6, hasil: 3
ke bawah)
% Modulus (sisa hasil 20 % 6, hasil: 2
bagi)
** Pemangkatan 20 ** 6, hasil:
64000000
Contoh Kode Program
x = 20 Hasil :
y=6 x + y = 26
x - y = 14
print('x + y =',x+y) x * y = 120
print('x - y =',x-y) x / y = 3.3333333333333335
print('x * y =',x*y) x // y = 3
print('x / y =',x/y) x%y=2
print('x // y =',x//y) x ** y = 64000000
print('x % y =',x%y)
print('x ** y =',x**y)
Operator Perbandingan / Relasional
Operator Penjelasan Contoh Hasil
== Sama dengan 5 == 5 True
!= Tidak sama 5 != 5 False
dengan
> Lebih besar 5>6 False
< Lebih kecil 5<6 True
>= Lebih besar 5 >= 3 True
atau
sama dengan
<= Lebih kecil atau 5 <= 5 True
sama dengan
Contoh Kode Program Operator Perbandingan
1. x = 7 Hasil :
2. y = 10 x=7
3. y = 10
4. print('x =',x)
5. print('y =',y) x == y hasilnya False
6. print('\n') x != y hasilnya True
7. x > y hasilnya False
8. print('x == y hasilnya',x==y) x < y hasilnya True
9. print('x != y hasilnya',x!=y) x >= y hasilnya False
10.print('x > y hasilnya',x>y) x <= y hasilnya True
11.print('x < y hasilnya',x<y)
12.print('x >= y hasilnya',x>=y)
13.print('x <= y hasilnya',x<=y)
Operator Logika
Operator Penjelasan Contoh Hasil
and True jika kedua True and True True
operand bernilai
True
or True jika salah True or False True
satu operand
bernilai True
not True jika not False True
operand bernilai
False
Operator Bitwise
• Bitwise adalah operator khusus untuk menangani operasi logika bilangan biner dalam bentuk bit.
• Bilangan biner sendiri merupakan jenis bilangan yang hanya terdiri dari 2 jenis angka, yakni 0 dan
1.
• Jika nilai asal yang dipakai bukan bilangan biner, akan dikonversi secara otomatis oleh bahasa
Python menjadi bilangan biner. Misalnya 7 desimal = 0111 dalam bilangan biner.

Operator Nama Contoh Biner Hasil (biner) Hasil (decimal)


& And 10 & 12 1010 & 1100 1000 8
| Or 10 | 12 1010 | 1100 1110 14
^ Xor 10 ^ 12 1010 ^ 1100 0110 6
~ Not ~ 10 ~1010 0101 -11 (two
complement)
<< Left shift 10 << 1 1010 << 1 10100 20
>> Right shift 10 >> 1 1010 >> 1 101 5
Operator Assignment
• Operator assignment adalah operator untuk memasukkan suatu nilai ke dalam variabel
• Operator assignment juga memiliki variasi penulisan yang disebut sebagai operator assignment
gabungan (compound assignment).
• Operator assignment gabungan adalah cara penulisan singkat operator assignment yang digabung dengan
dengan operator lain.
• Contoh : operasi a = a + 1 bisa disingkat (dan digabung) menjadi a += 1. operasi b >>= 1 adalah penulisan singkat
dari b = b >> 1.
Operator Contoh Penjelasan
+= a += b a=a+b
-= a -= b a=a–b
*= a *= b a=a*b
/= a /= b a=a/b
%= a %= b a=a%b
&= a &= b a=a&b
|= a |= b a=a|b
^= a ^= b a=a^b
<<= a <<= b a = a << b
>>= a >>= b a = a >> b
Operator Identitas
• Operator identitas adalah operator yang bisa dipakai untuk
memeriksa apakah nilai sebuah variabel ada di tempat yang sama (di
memory) atau tidak.
• Operator ini dikenal juga sebagai identity operators.
Operator Keanggotaan
• Operator keanggotaan adalah operator yang dipakai untuk
memeriksa apakah suatu nilai ada di dalam sebuah himpunan atau
tidak
• Himpunan yang dimaksud terdiri dari tipe data “berbentuk array”
seperti string, list, tuple, set dan dictionary
• Operator ini dikenal juga sebagai membership operators.
Percabangan di Python

•IF Statement
•IF - ELSE Statement
•IF - ELIF - ELSE Statement
IF Bersarang(Nested IF)
IF Statement
#input data
var_presiden = input("Presiden Pertama Indonesia : ")

#Statement IF
if (var_presiden == "Soekarno") : print("Jawaban Anda Benar")

Hasil :

Jawaban Anda Benar


IF - ELSE Statement
IF - ELIF - ELSE Statement
IF Bersarang(Nested IF)
Perulangan pada python

•Perulangan FOR
•Perulangan WHILE
•Perulangan Bersarang
Pernyataan Kontrol
Indentasi
• Penulisan teks yan menjorok ke kanan
• Peranan penting dalam penulisan pada Python
• Sebagai blok kode pada pernyataan if, while, da for
• Contoh :
If x > y :
print(“1”)
print(“2”) akan dieksekusi bergantung pada kondisi if
print(“3”)
Print (“4”) selalu dijalankan dan tidak tergantung pada kondisi if

• Tidak ada aturan pasti yang menentukan jumlah karakter spasi yang
digunakan, tapi umumnya digunakan 4 spasi oleh pemrogram.
Struktur IF
• Sebagai pengambilan keputusan dalam Python

Pernyataan if sederhana
• Format :
If kodisi:
pernyataan_pernyataan  akan dijalankan hanya kalau
kondisi bernilai benar (True).
Contoh : #memperoleh bilangan terbesar dari dua Hasil :
bilangan
Bilangan terbesar : 100
X=5
Y = 100

Terbesar = x
If terbesar < y:
terbesar = y
Print (“bilangan terbesar : “, terbesar)
If…Else
• Format :
If kodisi_1:
pernyataan_pernyataan_1
Else:
pernyataan_pernyataan_2]
• Contoh : #memperoleh bilangan terbesar dari dua Hasil :
bilangan
Bilangan terbesar : 100
X=5
Y = 100

If x < y:
terbesar = y
Else:
terbesar = x
Print (“bilangan terbesar : “, terbesar)
If…Else - next
# penentuan kelulusan Hasil :
Nilai Ujian (0-100) : 79
Nilai = input(“nilai uujian (0-100) : “) Lulus
Nillai = int((nilai)

If nilai >= 60:


print(“lulus”)
Else:
print (“Tidak Lulus”)
If…Elif…Else
• Format :
If kodisi_1:
pernyataan_pernyataan_1
[Elif kondisi_2:
pernyataan_pernyataan_2]
[Elif kondisi_3:
pernyataan_pernyataan_3]

[Else:
pernyataan_pernyataan_n]
• Tanda []  sifatnya Optional.
Contoh if…elif…else
Nilai Skor # penentuan skor # penentuan skor
Nilai >= 80 A # versi 1 # versi 2

68 <= Nilai < 80 B Nilai = input (“Nilai Ujian {0-100) :”) Nilai = input (“Nilai Ujian {0-100) :”)
56 <= Nilai < 68 C Nilai = int(nilai) Nilai = int(nilai)
45 <= Nilai < 56 D
If nilai >= 80: If nilai >= 80:
Nilai < 45 E print(“A”) print(“A”)
Elif nilai >= 68: Elif nilai 68 <= nilai < 90:
print(“B”) print(“B”)
Elif nilai >= 56: Elif nilai 56 <= nilai < 68:
print(“C”) print(“C”)
Elif nilai >= 45: Elif nilai 45 <= nilai < 56:
print(“D”) print(“D”)
Else: Else:
print(“E”) print(“E”)
Hasil :
Nilai Ujian (0-100) : 65
C
Struktur FOR
• Berguna untuk meakukan penguangan suatu proses yang didasarkan
pada nila elemen-elemen list.
• Format :
For variable in list:
pernyataan_pernyataan_1
[else:
pernyataan_pernyataan_2
Contoh :
• String adalah semacam list
• Strukur FOR, bisa digunakan untuk mengambil karakter karakter yg
meyusun string tersebut.
• Contoh:
Struktur WHILE
• Struktur yang menangani pengulangan terhadap suatu proses
• Format :
While koondisi:
pernyataan_pernyataan_1
[ else:
Pernyataan_pernyataan_2 ]
• pernyataan_pernyataan_1 akan dijalankan terus menerus
sepanjang kondisi bernilai benar
• Pernyataan_pernyataan_2 akan dijalankan terakhir kali tepat
sebelum while berkhir.
Contoh :
Contoh WHILE - next

 Karena hasil input() adalah string,


maka perlu dilakukan pengkonversian ke
bilangan dg menggunakan int()
Pengulangan yang Tak Pernah Berakhir
While 1:  nilai 1: bernilai benar (TRUE)
print(“Abadi selamanya”)

Run :
Abadi selamanya
Abadi selamanya
Abadi selamanya

Pernyataan Break
• Berfungsi untuk mengakhiri pengulangan pada pernyataa FOR dan
WHILE.
• Mengakibatkan bagian ELSE (Jika ada) tidak dijalankan.
• Contoh :
Pernyataan Continue
• Berguna untuk mengabaikan sisa pernyataan dalam blok kode pada suatu pernyataan pegulangan
dan eksekusi dilakukan untuk elemen berikutnya pada FOR atau kembali ke pengujian kondisi
untuk WHILE.
• Contoh :
Pernyataan Pass
• Pernyataan ini “tidak melakukan apa-apa”
• Diberikan pada pernyataan yg mengharuskan keberadaan suatu
pernyataan, padahal tidak memerlukannya.
• Contoh :
Pemrograman Berorientasi Objek
Konsep Dasar Pemrograman Berorientasi Objek pada Python
• Phyton adalah Bahasa yang mendukung beberapa paradigm
pemrograman :
• Dengan procedural (terstruktur)
• Dengan OOP (Object-Oriented Programming)
• Dengan fungsional

• OOP adalah suatu metodologi pemrograman yang mengasumsikan


bagian-bagian dalam program sebagai objek
• Objek merupakan kumpulan data (variabel) dan fungsi yang
dibungkus ke dalam suatu blok.
• Blok tsb. Disebut sebagai kelas (sebagai bentuk abstrak/model dari
suatu objek tertentu)
• Pada Metode Prosedural (terstruktur) kode program bisa
dipecah menjadi bagian yg lebih kecil (fungsi/prosedur, sub
program)
• Pada Metode OOP  kode program dipecah menjadi bagian-
bagian yang disebut kelas.
• Lebih mudah dikembangkan dan dirawat

• Bahasa Pemrograman yang mendukung OOP, melakukan


implementasi konsep-konsep berikut :
• Abstraksi (Abstraction)
• Pembungkusan (encapsulation)
• Pewarisan (inheritance)
• Polimorfisme (polymorphism)
Abstraksi (Abstraction)
• Proses memodelkan suatu kasus pemrograman tertentu menjadi sebuah tipe
objek.
• Dapat menyembunyikan detail atau kerumitan-kerumitan yg tidak perlu diketahui oleh
pengunna model tsb.
• Contoh :
• Perusahaan produsen mobil tidak akan memberitahu tentang mekanisme detail yang
terdapat di dalam objek mobil kepada konsumennnya.
• Pengguna mobil tidak perlu mengetahui bagaimana sistem transmisi, kelistrikan, dan
pengereman di dalam mobl tsb. Bisa bekerja.
• Yang perlu diketahui pengguna adalah cara mengemudi, mengoperasikan fitur2 yg terdapat
dalam mobil tersebut.
∴Produsen mobil dikatakan telah melakuan proses abstraksi.
• Kelas merupakan bentuk abstrak atau cetak-biru (blueprint) dari suatu objek
nyata.
• Wujud nyata (konkrit) suatu kelas diamakan instance (objek)

Contoh : (dalam python)


• Str adalah tipe atau kelas
• Teks “python” adalah objek atau wujud nyata dari kelas str
Pembungkusan (encapsulation)

• Mekanisme untuk menyatukan data dan fungsi-fungsi yang


relevan ke dalam suatu kelas.
• Dalam melakukan proses pembungkusan  untuk
melindungi data dan fungsi dari pihak-pihak luar (kelas lain,
bagian-bagian lain di dalam kode program yg berada di luar
lingkup kelas.
• Caranya : dapat dilakukan dengan menentukan hak akses dari data
dan fungsi tersebut, seperti:
• Public
• Protected
• private
Hak Akses Public
• Data dan fungsi dengan hak akses pulic, dapat diakses oleh bagian
manapun di dalam kode program, baik dari kelas itu sendiri, semua
kelas lain, maupun pihak luar.
• Analoginya :
• Barang milik sendiri, boleh dipinjamkan atau digunakan oleh semua orang
termasuk diri sendiri
• Contoh : kursi di rumah sendiri
Hak Akses Protected
• Data dan fungsi hanya bisa diakses oleh kelas sendiri dan kelas lain
yang masih merupakan turunan dari kelas yang bersangkutan.
• Analoginya :
• Barang milik sendiri hanya boleh dipinjam atau digunakan oleh diri sendiri,
keluarga atau kerabat saja.
• Selain itu tidak diizinkan menggunakan barang tersebut.
• Contoh : Kendaraan sendiri
Hak Akses Private
• Data dan fungsi hanya dapat diakses oleh kelas itu sendiri
• Analoginya :
• Pakaian sendiri, hanya boleh dikenakan oleh diri sendiri, keluarga maupun
orang lain tidak berhak mengenakan pakaian tersebut.
Pewarisan (inheritance)

• Dalam OOP, suatu kelas dapat dibuat atau diturunkan dari kelas yang sudah ada
sebelumnya.
• Pewarisan (inheritance) adalah proses pembuatan kelas baru yan sifat-sifatnya akan
mengikuti atau mewarisi sifat-sifat dari kelas induknya
• Kelas baru  diizinkan untuk mendefnisikan sifat-sifat tambahan (yang
sebelumnya tidak dimiliki oleh kelas induknya)
• Contoh : kelas manusia dapat diturunkan menjadi kelas-kelas baru yang sifatnya
bisa lebih spesifik lagi, misalnya: guru, programmer penulis, pengusaha, artis, dll.
Bahasa Istilah induk dan anak
pemrograman
C++ Base class dan derived class
Java Superclass dan subclass
delphi Ancestor class dan descendant class
Python Superclass dan subclass
Polimorfisme (polymorphism)

• Kemampuan suatu objek untuk dapat mengungkap banyak hal


dengan menggunakan cara yang sama.
• Untuk menciptakan objek ini, perlu memiliki hirarki kelas.
• Contoh :
• Kelas manusia diturunkan menjadi dua kelas, yaitu kelas guru dan kelas
programmer
• Sesuai dg konsep pewarisan, jika manusia (kelas induk) terdapat metode
bekerja() maka kelas guru dan kelas programmer juga akan memiliki metode
bekerja()
• Jika diperintahkan kepada manusia (bisa guru, bisa programmer, dll) untuk
bekerja, dan hasil pekerjaan akan berbeda (sesuai dg profesi masing2),
padahal metode yang digunakan adalah sama, yaitu bekerja().
• Contoh lain : bunglon dengan metode ubahwarna().
Perbedaan Kelas dan Objek
Contoh program :
class kotak(object):
# isi kelas
#…
Kotak1 = kotak()
Kotak2 = kotak()
Kotak3 = kotak()
• Nama kelas adalah kotak  turunan langsung dari object (induk dari semua kelas
pada python)
• Kotak1, kotak2, dan kotak3 adalah objek (instance), objek ini terbentuk ketika
memanggil konstruktor kelas dengan perintah kotak().
• Kotak1, kotak2, dan kotak3, sebenarnya hanya sebagai nama (referensi) yang
mengacu/menunjuk ke objek-objek dari kelas kotak yg secara actual berada di
memori computer.
• Kelas berperan sebagai blue print atau kerangka yg mendefinisikan objek
tertentu.
• Kelas hanya didefinisika satu kali, tetapi dapat digunakan berkali-kali.
Mendefinisikan kelas
• Bentuk umum kelas dalam Python:

Class NamaKelas(object) Namakelas : nama kelas yg didefinisikan untuk merepresentasikan


“deskripsi kelas (optional)” objek tertentu
def __init__(self, param1, param2, …): Object : induk kelas tertinggi pada Python
__init__ : adalah konstruktor, yatu metode khusus yg secara
# isi konstruktor
otomatis akan dipanggil ketika pembuatan objek (instansiasi) 
def __init__(self, param1, param2, …):
sebelumnya panggil metode __new__ (aktual)
# isi konstruktor __del__ : adalah destructor, yaitu metode khusus yang secara
def __init__(self, param1, param2, …): otomatis akan dipanggil ketika objek dibuang dari memori
# isi konstruktor NamaMetode : nama metode yg ingin didefinisikan ke dalam
def __init__(self, param1, param2, …): kelas
# isi konstruktor Self : parameter yg harus dilewatipada setiap metode (instance
… method) di dalam kelas. Self mrupakan pointer yg menunjuk ke
objek dari kelas bersangkutan. (dalam C++ dan Java adalah
pointer this)
Metode (methd) adaah fungsi yg didefinisikan di dalam kelas dan
parameternya berupa self.
Contoh pendefinisian kelas dalam python
Class kotak(object): Kelas kotak memiliki :
def __int__(sef, p, l, t): tiga atribut : panjang, lebar, dan
self.panjang = p tinggi
self.lebar = p Dua buah metode : __int__() dan
self.tinggi = p hitungVollume()
def hitungVolume(self): Nilai dari atribut2 tsb. Akan diisi
return self.panjang * pada saat objek dibuat, yaitu pada
self.lebar * self.tinggi saat metode __int__() dipanggil.

Kelas Kotak sudah siap digunakan


utuk membuat objek
Membuat Objek
• Bentuk Umum pada Python :

NamaObjek = NamaKelas(param1, param2, …)


• Parameter yang dilewatkan (param1, param2, dst) harus disesuaikan
dengan parameter yg terdapat pada metode __init__().
• Setelah objek terbentuk, Untuk mengakses atribut dan metode yang
terdapat dalam kelas tersebut, yaitu dengan menggunakan operator
titik (.), dengan bentuk umum :

NamaObjek.NamaAtribut
Atau
NamaObjek.NamaMetode(param1, param2, ..)
Contoh program
Hasil Program kelas (2 objek dg nilai atribut yg berbeda)  hasil juga
berbeda:
Objek kotak1
Panjang : 6
Lebar : 4
Tinggi : 3
Volume = 72

Objek kotak2
Panjang : 5
Lebar : 3
Tinggi : 2
Volume = 30
Mendefiniskan Metode
• Metode adalah fungsi yang didefinisikan di dalam kelas.
• Metode adalah aksi yang dapat diakukan oleh suatu objek.
• Selama suatu aksi masih bisa dilakukan oleh objek, maka dapat
dijadikan aksi tersebut sebagai metode

• proses pencetakan informasi bisa dibuat metode pada kelas Kotak

Contoh Program
Melakukan Overload terhadap Konstruktor
• Method Overloading adalah sebuah kemampuan yang membolehkan
sebuah class mempunyai 2 atau lebih method dengan nama yang
sama, yang membedakan adalah parameternya.
• Python tidak mendukung proses
Overload
• Python Buat trik untuk spt layaknya
Proses Overload
CONTOH overload-
Python

Trik :
• Menjadikan semua parameter sebagai parameter default.
• Dengan menjadikan parameter p, l, t sebagai parameter default
• Maka konstruktor dari kelas kotak dapat dipanggil dengan cara
berbeda
• # membuat objek pertama dengan konstruktor tanpa parameter
kotak1 = Kotak()
• # membuat objek kedua dengan konstruktor berparameter
kotak2 = Kotak(6, 5, 4)
Mendefinisikan Destruktor
• Destruktor adalah adalah method khusus yang dijalankan secara otomatis oleh
python interpreter pada saat sebuah objek dihapus.
• Meskipun Python memiliki fasilitas Garbage Collector (GC) yg secara otomatis
akan membuang objek-ojek sampah dari meori. Tapi masih bisa diizinkan
mendefnisikan destructor di dalam suatu kelas.
• Keterbatasan GC pada python adalah :
• Tidak bisa menutup file yg diakses, sebelum objek kelas tersebut akan dihapus dari
memori
• Tidak bisa menutup objek koneksi ke database di dalam konstruktor kelas.
• Keterbetasan GC tersebut bisa diatasi dengan Destruktor.
• Dalam Python Destruktor diimplementasika dengan metode __del__()
• Metode ini ditempatkan sebagai finalisasi dari suatu proses, misal :
Class MyFile(object)
def __int__(self, NamaFile): Contoh destruktcor
Uji cara kerja
destruktor # proses akses (buka) file
def __del__(self): Contoh destructor tutup file
# proses tutup file
Data Statis
• Atribut dari suatu kelas pada Python :
• Variabel Kelas (class variable)
• Atribut yang nilainya digunakan bersama-sama oleh semua objek dari kelas
bersangkutan
• Variabel yang didefinisikan di dalam kelas, tapi diluar metode
• Pada C++ dan Java diseut data statis
• Variabel objek (instance variable)
• Atribut yg dimiiki oleh setiap objek, dan didefinisikan di dalam metode.
• Nilai dari variabel objek akan berbeda-beda untuk masing-masing objek.

Class Kotak(object): Keterangan :


objectConter = 0 # class variabel objectCounter  variabel kelas
def __init__(self, p, l, t): Panjang, lebar, dan tinggi  variabel objek
self.panjang = p # instance variabel
self.lebar = l # instance variabel
self.tinggi = t # instance variabel

CONTOH
Hasil :
Keterangan :

1. Objek kotak1, kotak2,


dan kotak3 masing2
memiliki atribut panjang,
lebar, dan tinggi sendiri
sendri (nilai yg berbeda)
2. Atribut ObjectCounter
jumlahnya hanya satu dan
nilainya akan digunakan
bersama-sama oleh semua
objek yang ada
Metode Statis
• Metode statis diperlukan, jika ingin memanggil metode tanpa harus
membuat objek terlebih dahulu.
• Python memiliki dua cara mendefinisikan metode statis, yaitu :
1. Menggunakan decorator @staticmethod
Contoh :
Class DemoStatis(object):
# mendefinisikan metode statis
@staticmethod
def panggil() : # tidak perlu self
print(“Metode statis dipanggil…”)
# menggunakan fungsi staticmethod()
panggil = staticmethod(panggil)
2. Menggunakan fungsi staticmethod()
Contoh :
Class DemoStatis(object):
# mendefinisikan metode statis
def panggil() : # tidak perlu self
print(“Metode statis dipanggil…”)
# menggunakan fungsi staticmethod()
panggil = staticmethod(panggil)

Catatan :
1. Metode panggil  sebagai metode statis (tanpa self krn metode ini harus bisa dipanggil
tanpa objek)
2. Direkomendasikan  mengguunakan cara pertama
Bentuk umum dalam memanggil metode statis:
NamaKelas.NamaMetode(param1, param2, …)

Contoh :
DemoStatis.panggil()

• Metode statis juga bisa dipanggil menggunakan objek.


Contoh :
Obj = DemoStatis()
# memanggil metode statis melalui objek
Obj.panggil()
Program Penggunaan metode statis di dalam
suatu kelas
Metode statis

• Meode cetakJudul() didefinisikan sebagai metode statis


• Dan dapat dipanggil langsung dari nama kelasnya, bukan melalui
objek dari kelas Kotak.

Metode Statis-2
Metode Kelas
• Metode kelas akan menerima kelas sebagai parameter pertama, yaitu cls (class)
• Dua cara mendefinisikan metode kelas:
• Menggunakan decorator @classmethod Metode kelas dapat dipanggil
Contoh: 1. langusng dari kelasnya:
Class DemoMetodeKelas(object): Contoh :
# medefinisikan metode kelas DemoMetodeKelas.panggil()
@classmethod
Def panggil(cls): # self diganti cls: 2. melalui objek:
print(“Metode kelas dipanggil …”) Contoh :
obj = DemoMetodeKelas()
• Menggunakan fungsi classmethod() #memanggil metode kelas melalui objek
obj.panggil()
Contoh :
Class DemoMetodeKelas(object):
# medefinisikan metode kelas
@classmethod
Def panggil(cls): # self diganti cls:
print(“Metode kelas dipanggil …”)
# menggunakan funsi classmethod()
Panggil = classmethod(panggil)
Program pendefinisian dan penggunaan
metode kelas Metode kelas

• Metode kelas dengan nama dariString()


• Pemanggilan terhadap metode ini akan menciptakan objek baru dari
kelas tanggal yg nilai-nilai atributnya diambil dari parameter bertipe
string
Pembungkusan data dan atribut private
• Dalam keadaan default, data/variable yg didefinisikan di dalam kelas
akan bersifat public  bebas diakses dari luar kelas
• Agar tidak bisa di akses dari luar kelas, maka variabel tersebut perlu
didefinisikan sebagai data yg bersifat private.
• Pada Python, data private harus diawali dengan tanda underscore yg
ditulis dua kali (__).
Contoh : __panjang, __lebar, __tinggi, dsb.
• Data private, bisa diakses secara tidak langsung melalui metode2 yg
bersifat public, yang disebut dengan:
• SETTER  metode pengisi nilai atau menulis data
• GETTER  metode pengambil nilai atau pembaca data
Contoh definisi data
privatedataprivate.txt
Properti
• Selain metode SETTER dan GETTER, data private dapat di akses dari luar
kelas melalui property.
• Property adalah suatu fungsi yang pendefinisiannya disertai dengn
decorator kelas @property
• Contoh:
• X dan y merupakan property
Ygbersifat read only
Property - next :
• Property x dan y dapat diisi :
• Mendefinisikan metode lain yang disertai @x.setter dan @y.setter
• Untuk dapat dihapus :
• Menyertakan metode sebagai delete  @x.deleter dan @y.deleter

contoh
Pewarisan
• Dalam pembuatan suatu program :
 perlu menghindari duplikasi kode
tidak meletakkan kode-kode yang sama pada tempat yg berbeda
• Untuk itu dibutuhkan proses pewarisan (inheritance)
• Pada Python :
• Dapat dilakukan pendefinisian kelas baru yang merupakan turunan dari kela
lain, yg bertujuan untuk menambahkan sifat-sifat yang baru yg tidak dimiliki
oleh kelas induknya.
• Bentuk umum :
Class NamaSubclass(NamaSuperclass):
# isi kelas
CONTOH
Fungsi super()
Dari sebelumnya, masih terdapat adanya duplikasi kode pada definisi
kelas Kotak dan KotakWarna  terlihat ketika mendefinisikan metode
__init__() dan cetakData() di dalam kelas kotakWarna

Untuk itu, bisa menggunakan fungsi super()


• Fungsi super() memiliki peran yang mirip dengn self
• Perbedaannya :
• Super() menunjuk ke objek dari kelas induk
• Self menunjuk ke objek dari kelas itu sendiri
contoh
Multiple Inheritance (pewarisan dari dua kelas induk atau lebih)

• Adalah proses pendefinisian kelas baru yang diturunkan dari dua kelas
induk atau lebih dari
• Bahasa C++ dan Python mendukung fitur ini
• Java tidak mendukung fitur ini
CONTOH
• Bentuk umum dalam Python :
class NamaSubclass(NamaSuperClass1, NamaSuperClass2, …):
• Catatan :
• Kelas Anak yang merupakan turunan dari kelas Induk1 dan Induk2  kelas
akan memiliki atribut a,b,c serta metode cetakA(), cetakB(), dan cetakC()
•  kelas anak akan mewarisi sifat (metode dan atribut) yg dimilki oleh kelas-
kelas indukya.
Fungsi isinstance() dan issubclass()
• Ketika melakukan instansiasi kela, objek yg terbentuk akan bertipe
kelas itu sendiri.
• Untuk memeriksa keanggotaan dari objek ybs, dapat menggunakan
fungsi isintance(), dengan bentuk umum sbb:
Isintance(objek, NamaKelas)
Akan mengembalikan true jika objek yg diperiksa
merupakan wujud nyata atau turunan dari kelas yg
disertakan
Contoh :
Fungsi issubclass()
• Fungsi untuk memeriksa apakah suatu kelas merupakan turunan dari
kelas tertentu
• Bentuk umum:
Issubclass(NamaKelasTurunan, NamaKelasInduk)
Contoh :
Metode Abstrak dan Kelas Anak
• Metode dimana kelas abstrak sebagai kelas yg tidak dapat
diinstansiasi (tidak diizinkan untuk mebua objek dari kelas tsb.)
• Ciri dari kelas abstrak adalah memiliki satu atau lebih metode abstrak
di dalamnya.
• Metode abstrak adalah metode g sama sekalai tidak memiliki
implementai kode.
• Implementasi kode baru akan dilakukan di kelas-kelas turunannya.
• Dalam kelas abstrak, juga bisa mendefinisikan metode non-abstrak
Cara mendefinisikan kelas abstrak pada Python:
Class namaKelasAbstrak(object):
# metode abstrak
def NamaMetodeAbstrak(self, param1, param2, …)
pass

Atau :

Class namaKelasAbstrak(object):
# metode abstrak
def NamaMetodeAbstrak(self, param1, param2, …)
raise NotImplementedError
Contoh:
>>> class Abstrak(object):
def MetodeAbstrak(sef):
raise NoImplementedError

>>> a = Abstrak() # Ok, tidak terjadi kesalahan


>>>

Catatan :
Pada kelas Abstrak di atas, dapat dilakukan Instansiasi. Contoh: a
adalah objek (instance) dari kelas Abstrak
Program penggunaan metode dan kelas Abstrak :
ABSTRAK

• Dari contoh tsb:


• Ada tiga buah metode abstrak : (tidak memiliki implementasi kode)
• Metode cetakData()
• Metode hitungVolume()
• Metode cetakVolume()
• Implementasi baru dilakukan di dalam kelas kelas turunannya, yaitu:
• Kelas Kotak
• Kelas Tabung

• Metode2 dalam kelas Bangun3D perlu didefinisikan sebagai metode abstrak,


• Alasan :
• karena metode2 tsb. Pasti akan dimiliki oleh setiap kelas turunan dari kelas
Bangun3D
• Karena implementasi kode untuk masing2 kelas turunan juga berbeda
• Contoh :
• Kelas Kotak dan kelas Tabung, pasti memilki cetakData(), hitungVoume(), dan
cetakvolume(), namun metode2 tsb. Diimpelementasikan secara berbeda oeh kelas
Kotak dan kelas Tabung
Modul abstrak base class (ABC) pada Python
• Sejak versi 2.6 Python menambahkan modul baru dengan nama ABC, yg berguna
untuk mengimplementasikan konsep kelas Abstrak.
• Bentuk umum :
# Python 2 Atau:
From abc import ABCMeta, # Python 3
abstractmethod From abc import ABCMeta, abstractmethod
Class NamaKelasAbstrak(object): Class NamaKelasAbstrak(metaclass=ABCMeta):
__metaclass__ = ABCMeta # metode abstrak
# metode abstrak @abstractmethod #decorator u/mendefinisikan metode
@abstractmethod abstrak
def NamaMetodeAbstrak(self, def NamaMetodeAbstrak(self, param1, …):
param1, …): pass
pass
Contoh Abstract Base Classes (abc)

Menggunakan modul abc, kelas abstrak yg


didefinisikan sudah tidak dapat
diinstansiasi
Program modul ABC : Abstrak-abc
Polimorfisme
• Merupakan kemampuan objek (referensi) yg dapat menangkap
banyak hal melalui cara yang sama.
• Contoh :
Obj1.cetakData() # memanggil metode cetakData() dari obj1
Obj2.cetakData() # memanggil metode cetakData() dari obj2
Obj3.cetakData() # memanggil metode cetakData() dari obj3
• Untuk melakukan hal diatas, dapat menggunakan satu variabel (misal: obj)
• Vaiabel ini akan memanggil metode cetakData(), sesuai dg objek yg sedang
ditunjuk oleh variabel tsb.
• Contoh: jika obj sedang menunjuk ke objek dari kelas Kotak, maka metode
cetakData() yg akan dipanggil adalah milik kelas Kotak, dst.
• Dari contoh tsb., variabel obj dikatakan sebagai referensi yg bersifat
polimorfik (banyak bentuk), karena dia mampu menunjuk ke objek yg berasal
dari tipe berbeda.
Contoh program konsep polimorfisme

Obj.cetakData()
objcetakVolume()
• Menggunakan cara yang sama, tapi hasil yang diberikan berbeda
• Metode cetakData() dan cetakVolume() yang dipanggil akan tergantung dari
objek mana yang sedang ditunjuk oleh OBJ.

Anda mungkin juga menyukai