Mari kita mulai instalasi IDLE untuk editor Python kita.
sudo apt-get install idle
Unduh dan install idle dari tautan berikut
Unduh dan install dari tautan berikut
Tekan tombol Command
atau tombol Windows
pada keyboard, dan ketikkan IDLE
, Pilih IDLE (using Python-2.7)
Tampilan pencarian editor IDLE seperti gambar dibawah ini.
Pada awal Idle dibuka, Anda akan melihat sebuah jendela dengan judul Pyhton 2.7 Shell
.
Jendela ini merupakan jendela perintah (console) dari Idle tersebut.
Fungsinya adalah menjalankan perintah-perintah python diluar code python utama atau untuk memasukkan masukan data untuk diolah lagi pada code utama.
Apabila Anda langsung melakukan operasi pada console tersebut, console akan langsung memberikan keluaran dari masukan yang Anda berikan, semisal pada gambar berikut.
Tanda >>>
merupakan masukan console dalam keadaan standby dan siap untuk diberikan perintah.
Apabila Anda menekan Enter
beberapa kali, maka console tidak memberikan nilai balikan.
Semisal masukkan angka sesuai dengan tanggal pada hari ini. Semisal 16042019
berikut variasinya. Maka tampilan balikan dari console python tersebut seperti gambar berikut ini.
Untuk penggunaan angka desimal, pada Python, ditandai menggunakan tanda titik .
bukan koma ,
.
Coba masukkan operasi sederhana pada console Python yang ada, semisal :
15 + 6
70 - 43
14 * 3
13 / 3
13. / 3.
Untuk hasil dari perhitungan sederhana diatas, lebih kurang akan menghasilkan operasi seperti gambar berikut
*) Agar penulisan kode lebih mudah terbaca, biasanya diberikan [spasi]
sebelum dan sesudah operator. Seperti format berikut:
Angka [spasi] [operator] [spasi] Angka
Penggunaan kometar pada Python diawali dengan tanda tagar #
dengan di lanjutkan dengan isi pesan komentarnya atau sekedar untuk mengabaikan kode yang tidak digunakan pada program.
Contoh:
#Ini adalah contoh komentar pada Python
5 + 4 #Proses penambahan 5 dan 4
Untuk hasil penulisan diatas akan menghasilkan keluaran seperti gambar dibawah ini
Variabel dalam Python merupakan sebuah tempat atau wadah yang di dalamnya dapat diisikan sebuah nilai atau digantikan dengan nilai yang terbaru. Sifat wadah ini tidak konstan atau dapat berubah.
Contoh penulisan variabel pada Python sebagai berikut:
a = 12
b = 9
c = a + b
Pada a = 12
, nilai 12
dimasukkan pada wadah yang akan disebut dengan a
. Begitu pula pada b = 9
, nilai 9
dimasukkan pada wadah yang akan disebut dengan b
. Sehingga pada wadah c
, berisikan operasi pertambahan antara variabel a + b
.
*) Untuk menampilkan isi dari variabel pada console, dapat dituliskan nama variabel tersebut pada masukan console.
Untuk merubah isi dari variabel yang sudah ada sebelumnya, kita dapat mengubahnya dengan memasukkan nilai terbaru dari variabel yang sama. Semisal kita akan merubah variabel a
dengan nilai 15
, maka kurang lebih penulisannya seperti berikut a = 15
Untuk hasil a + b
setelah variabel a
diperbarui menjadi 24
seperti gambar dibawah ini.
Pada operasi ini, sebuah variabel akan dioperasikan dengan variabel yang sama hanya saja berbeda pada posisi urutan eksekusi pada iterasi. Semisal pada kode berikut:
a = 10
a = a + 5
atau dengan menggunakan +=
, -=
, *=
, dan /=
.
a = 10 #Inisialisasi variabel a
a += 3 # a = a + 3
a -= 4 # a = a - 4
a *= 5 # a = a * 5
a /= 6 # a = a / 6
Pada penulisan variabel, tidak hanya dapat diisikan dengan angka, pun bisa dalam bentuk string atau kata. Semisal:
a = 'Saya'
b = 'Belajar'
c = 'Python'
a + b + c
Untuk variasi penulisan lainnya:
a *= 3
a += 'Semangat'
a + b + c
Untuk penulisan variabel, sebaiknya dalam format huruf kecil semua (lowercase). Ketika terdiri dari dua buah kata, sebaiknya diberi underscore _
sebagai penghubung keduanya.
Untuk penulisan variabel yang baik seperti berikut ini:
panjang_bangunan = 100
lebar_bangunan = 50
luas = panjang_bangunan * lebar_bangunan
Contoh yang buruk:
panjangBangunan = 1000 # Sulit terbaca
LebarBangunan = 50 # Aneh juga dalam pembacaannya
Luas = 1000 * 50 # Huruf besar pada awal variabel, biasanya digunakan pada sistem Python
x = 'Luas Keduanya' # Variabel x sering digunakan untuk koordinat
Nilai Boolean merupakan nilai yang berisikan dua tipe, yaitu True
dan False
. Pada Python dan kebanyakan bahasa pemograman lainnya, tanda =
berarti memasukkan nilai kepada variabel dan tanda ==
merupakan operator pembanding atau kondisi. a = 3
merupakan a
diisikan nilai 3
, sedangkan a == 3
merupakan kondisi "Apakah a
berisikan 3
?", oleh karenannya, nilai balikannya adalah True
atau False
. Coba kode berikut ini:
a = 3
a == 3
a == 1
maka, hasilnya akan seperti berikut.
penulisan a == 3
memiliki fungsi yang sama dengan (a == 3)
. Akan tetapi, a == 3
lebih terbaca daripada (a == 3)
. Sehingga, pada beberapa kondisi penulisan seperti == True
.
a = 2
a == 2
(a == 2)
(a == 2) == True
(a == 2) == False
(a == 1) == True
maka hasilnya akan seperti berikut.
Selain penggunaan ==
, ada beberapa operator pembanding lainnya, yaitu:
Operator | Deskripsi | Contoh untuk True |
---|---|---|
a == b |
a sama dengan b | 1 == 1 |
a != b |
a tidak sama dengan b | 1 != 2 |
a > b |
a lebih besar daripada b | 2 > 1 |
a >= b |
a lebih besar atau sama dengan b | 2 >= 1 , 1 >= 1 |
a < b |
a kurang dari b | 1 < 2 |
a <= b |
a kurang dari atau sama dengan b | 1 <= 2 , 1 <= 1 |
Nilai None
merupakan sebuah nilai yang bermakna Kosong
atau tanpa nilai. Nilai Kosong
bukan berarti Nol
atau 0
. Nilai None
pada Python lebih kepada Null
pada bahasa pemograman lainnya.
Semisal:
b = None # Beri None pada variabel b
b # Tampilkan isi dari variabel b
print b # Print isi dari variabel b
maka hasilnya akan seperti berikut.
print
merupakan sebuah fungsi pada Python untuk menampilkan segala jenis hasil operasi ataupun variabel pada layar. Semua jenis data dapat ditampilkan dalam bentuk 'mentah' atau RAW data. Fungsi ini biasanya sangat berguna untuk proses debug ataupun mengetahui proses pengolahan nilai atau operasi pada tiap tahapannya. Fungsi ini sangat berguna pada kode yang lebih banyak nantinya.
c = 23
print (c)
print (c + 5)
print (c, "lebih kecil dari", c + 7)
print ("Joko Tole \nbersama temannya")
teman = "Jaka Tarub"
print ("Joko Tole \nbersama temannya\n" + teman)
Editor pada IDLE berbeda dengan consolenya. Editor ini merupakan sebuah jendela dokumen untuk menuliskan dan memodifikasi kode python kita. Dokumen ini nantinya akan disimpan menjadi format [ *.py ]
Untuk membuat sebuah dokumen Python baru, Anda dapat menekan tombol Ctrl+N
pada keyboard atau klik File > New File
pada jendela Python Shell, setelah itu Anda akan diperlihatkan jendela editor kode. Pada jendela ini nantinya kode Python akan ditulilskan. Gambar berikut adalah perbedaan antara jendela console dengan jendela editor Python.
Untuk menyimpan dokumen tersebut, Anda dapat menekan tombol Ctrl + S
pada keyboard atau File > Save
pada jendela editor. Pada gambar berikut, dokumen baru yang telah dibuat, disimpan dengan nama DokumenBaru.py
.
Menjalankan program Python yang sudah ditulis pada editor, dapat menekan tombol F5
pada keyboard atau klik Run > Run Module
pada menu bar editor IDLE.
Semisal kita akan menjalankan sebuah program untuk memasukkan sandi yang sederhana menggunakan fungsi if - else
berikut ini.
print("Halo Bro!")
nama = raw_input("Namamu siapa? :")
print ("Halo " + nama + '!')
password = input("Masukkan angka sandinya... : ")
if password == 1234:
print("Sandi benar! \nSelamat datang " + nama + " di program ini.")
else:
print(nama + ", sandinya salah. \nAkses ditolak!")
Maka program Python yang telah dijalankan akan meminta masukan nama user dan password kepada user. Apabila password benar yaitu 1234
, maka program akan memberikan balikan berupa kalimat Sandi benar! Selamat Datang...
. Sebaliknya, apabila masukan password selain 1234
, maka akan memberikan balikan berupa kalimat Sandi salah! Akses ditolak!
.
Beberapa fitur pada editor IDLE yang perlu diketahui adalah:
Pada umumnya, ketika terjadi sebuah kesalahan pada penulisan kode di editor, semisal variabel yang digunakan belum terdeklarasi sebelumnya atau nama variabel berbeda dengan yang digunakan, maka console akan memberitahukan letak baris terjadinya eror seperti pada gambar berikut.
Untuk memastikan letak eror tersebut, biasanya baris kelasahannya berada pada baris sebelumnya dari terjadinya eror. Semisal error pada gambar diatas disebabkan pada Line 4
karena variabel nama
pada baris 4 belum terdeklarasi, oleh karenanya error disebabkan pada baris ke 3
yaitu terletak sebelum error terjadi. Untuk mengetahui posisi kursor
pada editor berada pada baris ke-berapa, dapat dilihat pada bagian pojok kanan bawah editor IDLE, pada tulisan ln:[]
col:[]
. Sebagai contoh pada gambar dibawah ini, menunjukkan letak ln: 3
dan col:1
pada editor IDLE.
Galat atau error yang sering terjadi pada penulisan kode di Python, adalah kehilangan pasangan pada penulisannya. Semilsal yang sering terjadi adalah
- Pasangan tanda kurung
( )
, tanda petik atas' '
atau" "
. - Penulisan
:
pada perulangan atau pengkondisian - Kekurangan
spasi
pada penulisan variabel - Penulisan yang kurang sejajar terutama pada perulangan dan pengkondisian
Semisal pada contoh berikut ini:
print("Halo Bro!")
nama = raw_input("Namamu siapa? :" #) #ini posisi kekurangan tutup kurung )
print ("Halo " + nama + '!')
print("Halo Bro!")
nama = raw_input("Namamu siapa? :")
print ("Halo " + nama + '!')
password = input("Masukkan angka sandinya... : ")
if password == 1234 #: # ini posisi kekurangan titik dua :
print("Sandi benar! \nSelamat datang " + nama + " di program ini.")
else:
print(nama + ", sandinya salah. \nAkses ditolak!")
print("Halo Bro!")
nama = raw_input("Namamu siapa? :")
print ("Halo " + nama + '!')
passwor d = input("Masukkan angka sandinya... : ") # letak kelebihan spasi
if password == 1234:
print("Sandi benar! \nSelamat datang " + nama + " di program ini.")
else:
print(nama + ", sandinya salah. \nAkses ditolak!")
print("Halo Bro!")
nama = raw_input("Namamu siapa? :")
print ("Halo " + nama + '!')
password = input("Masukkan angka sandinya... : ")
if password == 1234:
print("Sandi benar! \nSelamat datang " + nama + " di program ini.")
else: # letak kurang sejajar. Seharusnya lurus dengan tingkatan if nya
print(nama + ", sandinya salah. \nAkses ditolak!")
Pada umumnya, ketika terjadi sebuah kesalahan pada penulisan kode di editor, semisal kekurangan tanda titik dua :
, tutup kurung )
ataupun kekurangan spasi
, console IDLE akan memberitahukan letak baris dan kolom terjadinya error
atau galat yang terjadi.
Python juga memiliki fitur untuk memberikan komentar pada banyak garis. Pada kasus ini, Anda dapat menyematkan kode '''
pada awalan dan akhiran kode yang akan diberikan komentar, semisal, tuliskan kode berikut pada editor kalian dan run
:
'''
berikut adalah komentar
yang ada pada python
=======================
a = 6
b = 5
print (a + b)
=======================
operasi diatas tidak akan di proses
kecuali operasi dibawah ini
'''
a = 1
b = 2
print (a + b)
maka akan menampilkan:
3
>>>
Kita juga pernah menggunakan syntax berikut pada console bukan pada Nilai Boolean ? Selain itu kita sudah melakukan beberapa pengkondisian pada bab berikut. Namun, mari kita perjelas penggunaan kondisi pada Pyhton.
>>> a = 2
>>> a == 2
True
>>> (a == 2)
True
>>> (a == 2) == True
True
>>> (a == 2) == False
False
>>> (a == 1) == True
False
>>>
bentuk dasar dari pengkondisian if seperti berikut:
>>> kondisi = True
>>> if kondisi:
print ("Benar")
Benar
>>> kondisi = False
>>> if kondisi:
print ("Benar")
>>>
>>> if kondisi:
print ("Benar")
else:
print ("Salah")
Salah
>>>
Kita juga bisa menambahkan if not
pada pengkondisian untuk negasi dari kondisi seperti berikut ini. Tulis pada editor kalian, dan run
programnya.
kondisi = False
if kondisi:
print ("Benar")
if not kondisi:
print ("Salah")
maka keluaran operasinya adalah:
Salah
>>>
Untuk penggunaan beberapa kondisi yang bertingkat, hindari penggunaan else
dan if
yang berulang seperti berikut ini:
print ("Hai...")
kata = raw_input("Masukkan ejaan angka: ")
if kata == "satu":
print ("satu ejaan")
else:
if kata == "dua":
print ("dua ejaan")
else:
if kata == "tiga":
print ("tiga ejaan")
else:
if kata == "empat":
print ("empat ejaan")
else:
print ("salah ejaan")
sebaiknya gunakan elif
pada penulisan kondisian bertingkat. Selain enak untuk dipandang, juga mudah dalam pengorganisasian kondisi yang kita buat. Sebagai contoh pada kode berikut ini:
print ("Hai...")
kata = raw_input("Masukkan ejaan angka: ")
if kata == "satu":
print ("satu ejaan")
elif kata == "dua":
print ("dua ejaan")
elif kata == "tiga":
print ("tiga ejaan")
elif kata == "empat":
print ("empat ejaan")
else:
print ("salah ejaan")
Kedua program diatas, berfungsi dengan baik, seperti berikut ini:
Hai...
Masukkan ejaan angka: empat
empat ejaan
>>>
Selain itu, pada penggunaan elif
lebih memudahkan pengorganisasian kondisi yang ada seperti contoh berikut:
if 1 == 1:
print ("satu")
elif 1 == 2:
print ("dua")
else:
print ("banyak")
maka keluarannya:
satu
>>>
Hindari penggunaan penulisan if
lagi pada kondisi selainnya, semisal:
if 1 == 1:
print ("satu")
if 1 == 2:
print ("dua")
else:
print ("banyak")
maka keluarannya:
satu
banyak
>>>
Kedua kode diatas sangatlah berbeda pada keluarannya. Untuk penggunaan elif
sebagai pengkondisiannya, kondisi 1 == 2
merupakan bagian dari kondisi pertama 1 == 1
, yaitu "selain kondisi pertama"
. Sedangkan pada penggunaan if 1 == 2
pada kode dibawahnya, kondisi ini berbeda dengan kondisi if 1 == 1
, sehingga keluaran programnya berlaku dua kali
pengkondisian atau bukan bagian dari kondisi sebelumnya.
print ("Hai...")
kata = raw_input("Masukkan satu atau dua: ")
if kata = "satu":
print ("sekali")
elif kata = "dua"
print ("dua kali")
else:
print ("Kata" kata, "tidak diketahui...")
list
atau daftar merupakan sekumpulan data yang nantinya akan digunakan sebagai acuan untuk dilakukan operasi. Pada daftar ini, merupakan sebuah variabel yang bisa kita panggil tiap anggotanya sesuai dengan urutannya masing-masing.
Semisal pada kasus dibawah ini:
siswa1 = "Udin"
siswa2 = "Hilman"
siswa3 = "Nanda"
siswa4 = "Eki"
siswa5 = "Rasid"
siswa6 = "Surya"
nama = raw_input("Nama Siswa SDN Candi 3: ")
if nama == siswa1 or nama == siswa2 or nama == siswa3 or nama == siswa4 or nama == siswa5 or nama == siswa6:
print ("Siswa tersebut terdaftar di sekolah kami.")
else:
print ("Bukan siswa kami.")
Program diatas dapat bekerja dengan baik. Namun, pada penulisan pengkondisiannya, terjadi penulisan yang berulang dan membosankan. Oleh karenanya, dapat digunakan list
untuk mempersingkat penulisan. Semisal pada kode berikut ini:
siswa = ['Udin','Hilman','Nanda','Eki','Rasid','Surya']
nama = raw_input("Nama Siswa SDN Candi 3: ")
if nama in siswa:
print ("Siswa tersebut terdaftar di sekolah kami.")
else:
print ("Bukan siswa kami.")
Seberapa banyak pun jumlah siswanya, maka pengkondisian tidak akan ditulis sebanyak siswa tersebut. Penambahan daftar siswa baru, hanya menambahkan pada variabel siswa
saja yang sudah berjenis list
atau daftar
.
Pertama, kita coba buka sebuah console Python baru. Lalu tuliskan sebuah variabel dengan list
didalamnya. Terserah Anda akan membuat sebuah daftar apa. Semisal sebuah daftar berlanjaan berikut :
>>> sayur = ['Wortel','Kangkung','Cabe','Tomat','Kubis','Selada','Brokoli']
>>> sayur
['Wortel', 'Kangkung', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli']
>>>
Selain itu kita juga bisa mengolah isi di dalam daftar tersebut. Semisal:
>>> len (sayur)
7
>>> sayur += ['Kubis','Jengkol','Ayam']
>>> len (sayur)
10
>>> sayur
['Wortel', 'Kangkung', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol', 'Ayam']
>>> sayur *= 2
>>> sayur
['Wortel', 'Kangkung', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol', 'Ayam', 'Wortel', 'Kangkung', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol', 'Ayam']
>>> len (sayur)
20
Selain itu, kita juga bisa mengambil beberapa bagiannya menggunakan indexing
atau slicing
, seperti berikut:
>>> sayur[2] # Indexing
'Cabe'
>>> sayur[0]
'Wortel'
>>> sayur[:4] # Slicing
['Wortel', 'Kangkung', 'Cabe', 'Tomat']
>>> sayur[3:4]
['Tomat']
>>> sayur[3:8]
['Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis']
>>>
Kita juga bisa mengecheck keanggotaan dari sebuah string dari datar yang sudah kita buat, semisal:
>>> 'Kacang' in sayur
False
>>> 'Tomat' in sayur
True
>>>
Namun, untuk kita tidak bisa menggunakan perintah dibawah ini untuk mengechek keanggotaan dari sebuah daftar.
>>> ['Tomat','Kedelai'] in sayur
False
>>> ['Tomat','Jengkol'] in sayur
False
>>> ['Tomat','Kubis'] in sayur
False
>>>
sebuah list
juga memiliki fungsi tersendiri, yaitu remove
, append
, dan extend
. Untuk mengetahui masing-masing fungsinya, ikuti kode berikut ini pada console.
>>> sayur
['Wortel', 'Kangkung', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol', 'Ayam', 'Wortel', 'Kangkung', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol', 'Ayam']
>>> sayur.remove('Ayam') # Ayam bukan anggota sayur
>>> sayur
['Wortel', 'Kangkung', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol', 'Wortel', 'Kangkung', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol', 'Ayam']
>>> len(sayur) # Hanya Ayam pertama yang terhapus
19
>>> sayur.remove('Ayam') # Menghapus Ayam kedua
>>> sayur
['Wortel', 'Kangkung', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol', 'Wortel', 'Kangkung', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol']
>>> len(sayur) # Ayam kedua, sudah terhapus
18
>>> sayur.remove(['Kangkung','Tomat']) # Tidak bisa digunakan
Traceback (most recent call last):
File "<pyshell#44>", line 1, in <module>
sayur.remove(['Kangkung','Tomat'])
ValueError: list.remove(x): x not in list
>>>
Mari tambahkan beberapa sayur lagi
>>> sayur.append('Kacang Panjang')
>>> sayur
['Wortel', 'Kangkung', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol', 'Wortel', 'Kangkung', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol', 'Kacang Panjang']
>>> sayur.extend(['Daun Singkong','Bawang'])
>>> sayur
['Wortel', 'Kangkung', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol', 'Wortel', 'Kangkung', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol', 'Kacang Panjang', 'Daun Singkong', 'Bawang']
>>>
Lalu bagaimana jika kita ingin menghapus seluruh nama pada daftar yang memiliki nama yang sama?
>>> while 'Kangkung' in sayur:
sayur.remove('Kangkung')
>>> sayur
['Wortel', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol', 'Wortel', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol', 'Kacang Panjang', 'Daun Singkong', 'Bawang']
>>>
Kita juga bisa merubah sebuah nama pada daftar menggunakan indexing
dan slicing
seperti berikut:
>>> sayur[0] = 'Kacang'
>>> sayur
['Kacang', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol', 'Wortel', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol', 'Kacang Panjang', 'Daun Singkong', 'Bawang']
>>> sayur[3:6] = 'Kecambah'
>>> sayur
['Kacang', 'Cabe', 'Tomat', 'K', 'e', 'c', 'a', 'm', 'b', 'a', 'h', 'Kubis', 'Jengkol', 'Wortel', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol', 'Kacang Panjang', 'Daun Singkong', 'Bawang']
>>> sayur[3:11] = ['Bawang Merah','Bawang Putih']
>>> sayur
['Kacang', 'Cabe', 'Tomat', 'Bawang Merah', 'Bawang Putih', 'Kubis', 'Jengkol', 'Wortel', 'Cabe', 'Tomat', 'Kubis', 'Selada', 'Brokoli', 'Kubis', 'Jengkol', 'Kacang Panjang', 'Daun Singkong', 'Bawang']
>>>
Untuk beberapa kasus berikut, mungkin nanti kalian akan bertemu dengannya, semisal:
>>> a = [1,2,3]
>>> b = a
>>> b
[1, 2, 3]
>>> b.append(4)
>>> a
[1, 2, 3, 4]
>>> a == b
True
>>> a is b
True
>>> b
[1, 2, 3, 4]
>>>
Untuk setiap penggunaan []
pada Python, akan ada list baru
yang terbuat.
>>> [] == []
True
>>> [] is []
False
>>> [1,2,3] == [1,2,3] # Apakah kedua list tersebut bernilai sama?
True
>>> [1,2,3] is [1,2,3] # Apakah kedua list tersebut merupakan list yang sama?
False
>>>
Oleh karenanya, untuk membuat dua list
yang bernilai sama tapi keduanya merupakan variabel yang berbeda dan tidak memiliki keterkaitan seperti b = a
diatas, dapat diberikan fungsi a.copy()
pada sumber variabel yang akan diduplikat. Semisal:
# Hanya berfungsi pada Python 3, sedangkan Python 2.7 belum mendukung fungsi copy()
>>> a = [1, 2, 3]
>>> b = a.copy()
>>> b is a
False
>>> b.append(4)
>>> b
[1, 2, 3, 4]
>>> a
[1, 2, 3]
>>>
tuple
mirip dengan list
, hanya saja jika list menggunakan []
sedangkan tuple menggunakan ()
pada penulisannya. Semisal :
>>> c = (1,2,3)
>>> c
(1, 2, 3)
>>> c = ()
>>> c
()
>>>
Pada penulisan tuple
yang berisikan satu nilai, dapat ditulis dengan (nilai,)
bukan (nilai)
, karena penggunaan (nilai)
digunakan untuk (1 + 2) * 3
. Semisal pada kode berikut:
>>> (4)
4
>>> (4,)
(4,)
>>> (2 + 3) * 4
20
>>> (2 + 3,) * 4
(5, 5, 5, 5)
>>>
Pada beberapa kasus khusus, penulisan berikut masih dapat digunakan namun tidak disarankan dikarenakan akan susah untuk mengidentifikasinya.
>>> 1,2,3,4
(1, 2, 3, 4)
>>> 'sayur',
('sayur',)
>>>
tuple
tidak memiliki fungsi append()
selayaknya list
.
>>> angka = (1,2,3)
>>> angka
(1, 2, 3)
>>> angka.append(4)
Traceback (most recent call last):
File "<pyshell#100>", line 1, in <module>
angka.append(4)
AttributeError: 'tuple' object has no attribute 'append'
>>>
loop
atau perulangan merupakan sebuah fungsi dari banyak bahasa pemograman yang digunakan untuk melakukan sebuah atau banyak kegiatan atau aksi yang dilakukan berkali-kali. Ada beberapa jenis perulangan pada Python, diantaranya :
While
- melakukan perulangan sesuatu hal selagi kondisinya benar (True
).Until
- melakukan perulangan sesuatu hal selagi kondisinya salah (False
).For
- melakukan perulangan sesuatu hal untuk setiap elemen (anggota) dari sesuatu kondisi.
Kita tahu bahwa statemen pengkondisian if
dibawah ini adalah benar.
gajian = True
if gajian:
print ("Yes! Saatnya liburan ke Lombok.")
Apabila kita akan melakukan perulangan while
yang serupa dengan statemen kondisi diatas, kurang lebih seperti berikut ini.
gajian = True
while gajian:
# lakukan perulangan dengan kondisi yang ada
print ("Yes! Saatnya liburan ke Lombok.")
# perulangan dilakukan sampai pada line ini
# line berikut tidak ikut diulang karna kondisi pada while
print ("Sabar, mungkin minggu depan gajiannya")
Untuk hasil dari perulangan diatas, kurang lebih seperti berikut.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
(hingga seterusnya sampai banyak)
Hasil tersebut akan terus dilakukan hingga kita memberikan interupsi berhenti dengan menekan Ctrl + C
pada console python kita. Kurang lebih seperti tampilan berikut ketika diberi interupsi.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Yes! Saatnya liburan ke Lombok.
Traceback (most recent call last):
File "/home/mhnd/Documents/Jupyter/Dasar-Python/DocPyhtonnya.py", line 4, in <module>
print ("Yes! Saatnya liburan ke Lombok.")
KeyboardInterrupt
>>>
Kode diatas, gajian
merupakan sebuah kondisi yang menentukan dilakukannya perulangan. Apabila kondisi gajian
kita ubah menjadi False
, maka console akan memberikan luaran Sabar, mungkin minggu depan gajiannya
yang tidak diulang.
gajian = False
while gajian:
# lakukan perulangan kondisi yang ada
print ("Yes! Saatnya liburan ke Lombok.")
print ("Sabar, mungkin minggu depan gajiannya")
Mari kita coba program selanjutnya pada kasus While
ini. Masukkan pada editor kalian dan run programnya.
gajian = True
while gajian:
print ("Katanya gajian!")
jawab = input("Benar gajian kah?(y=ya, t=tidak) ")
if jawab == 'y':
print ("Oh, syukurlah...")
elif jawab == 't':
gajian = False # akhir dari While
else:
print ("Masukkan y atau t lain kali.")
print ("Ternyata gajiannya masih besok.")
Coba masukkan beberapa jawaban, semisal angka 1
atau 3
pada pertanyaan Benar gajian kah?(y=ya, t=tidak)
. Maka program akan melakukan perulangan yaitu dengan memberikan pertanyaan awal yang sama hingga masukan user memberikan huruf y
atau t
. Apabila kita memberikan jawaban y
, maka program akan memberikan aksi yaitu memberikan balikan Oh, syukurlah...
dan program akan memberikan pertanyaan yang sama lagi selama jawabannya adalah y
. Sedangkan apabila kita memberikan masukan t
, program akan memberikan keluaran Ternyata gajiannya masih besok.
dan tidak memberikan pertanyaan yang sama secara berulang dikarenakan sudah keluar dari While
yang sudah diberikan kondisi. Atau keluaran dari program diatas seperti berikut ini.
Katanya gajian!
Benar gajian kah?(y=ya, t=tidak) 1
Masukkan y atau t lain kali.
Katanya gajian!
Benar gajian kah?(y=ya, t=tidak) 3
Masukkan y atau t lain kali.
Katanya gajian!
Benar gajian kah?(y=ya, t=tidak) y
Oh, syukurlah...
Katanya gajian!
Benar gajian kah?(y=ya, t=tidak) y
Oh, syukurlah...
Katanya gajian!
Benar gajian kah?(y=ya, t=tidak) y
Oh, syukurlah...
Katanya gajian!
Benar gajian kah?(y=ya, t=tidak) t
Ternyata gajiannya masih besok.
>>>
while
hanya mengechek kondisi pada awal-awal saja, tidak pada semua waktu. Perhatikan contoh program berikut ketika dijalankan menggunakan console.
>>> gajian = True
>>> while gajian:
gajian = False
print ("Gak jadi gajian bro... Tetapi while loop belum tau tentang hal ini")
Gak jadi gajian bro... Tetapi while-loop belum tau tentang hal ini
>>>
Selain itu, kita juga dapat menggunakan break
untuk memberhentikan while
yang sedang berlangsung. Semisal pada program berikut ini.
while True:
jawab = input("Benarkah gajian? (y=ya, t=tidak) ")
if jawab == 'y':
print ("Oh, syukurlah...")
elif jawab == 't':
print ("Ternyata gajiannya masih besok.")
break # perulangan berhenti
else:
print ("Masukkan y atau t saja.")
Kurang lebih seperti berikut hasil keluaran balikan programnya.
Benarkah gajian? (y=ya, t=tidak) kata siapa?
Masukkan y atau t saja.
Benarkah gajian? (y=ya, t=tidak) belum
Masukkan y atau t saja.
Benarkah gajian? (y=ya, t=tidak) y
Oh, syukurlah...
Benarkah gajian? (y=ya, t=tidak) y
Oh, syukurlah...
Benarkah gajian? (y=ya, t=tidak) t
Ternyata gajiannya masih besok.
>>>
break
memberhentikan perulangan saat itu juga, berbeda dengan kondisi while False
.
>>> while True:
print ("Satu")
break
print ("tak ada keluaran print setelah break")
Satu
>>> while False:
print ("satu")
break
print ("tak ada keluaran print setelah break")
>>>
Tidak ada fungsi until
pada pemrograman Python, hanya saja kita dapat menggunakan contoh penulisan berikut sebagai alternatifnya.
jarak = False
while not jarak:
print("Jaraknya belum pas.")
if input("Apa sudah cukup? (y/t) ") == 'y':
jarak = True
print("Cukup bro!")
dan contoh hasil keluarannya adalah sebagai berikut,
Jaraknya belum pas.
Apa sudah cukup? (y/t) t
Jaraknya belum pas.
Apa sudah cukup? (y/t) aa
Jaraknya belum pas.
Apa sudah cukup? (y/t) apa
Jaraknya belum pas.
Apa sudah cukup? (y/t) ya
Jaraknya belum pas.
Apa sudah cukup? (y/t) y
Cukup bro!
>>>
Perulangan for
merupakan perulangan yang dilakukan pada tiap masing-masing anggota dari sebuah kondisi. Semisal kita memiliki sebuah daftar atau list
berikut dan akan menampilkan tiap anggotanya menggunakan fungsi print
seperti kode berikut:
hewan = ['kucing', 'kambing', 'singa', 'kelinci', 'burung hantu']
print(hewan[0])
print(hewan[1])
print(hewan[2])
print(hewan[3])
print(hewan[4])
maka akan mengeluarkan balikan seperti ini pada console:
kucing
kambing
singa
kelinci
burung hantu
>>>
Tetapi, kode diatas, hanya berfungsi untuk menampilkan lima buah elemen dari variabel hewan
. Apabila kita menambahkan satu elemen baru pada variabel hewan, maka variabel baru tersebut tidak akan muncul. Begitu sebaliknya, apabila kita menghapus satu elemen dari variabel tersebut, maka pada akhir print(hewan[4])
akan menampilkan sebuah eror yang berisikan "list index out of range".
Oleh karenanya, kita bisa menggunakan while
pada kode diatas untuk menampilkan seluruh anggota dari variabel hewan, seperti kode berikut ini.
>>> hewan = ['kucing', 'kambing', 'singa', 'kelinci', 'burung hantu']
>>> jumlah_anggota = len(hewan)
>>> index = 0
>>> while index < jumlah_anggota:
print(hewan[index])
index += 1
kucing
kambing
singa
kelinci
burung hantu
>>>
Pada kode diatas, kita masih membutuhkan fungsi len()
dan membuat sebuah index
untuk perulangan while
nya dan menambahkan nilai 1 pada variabel index tiap perulangan agar dapat menampilkan semua anggota variabelnya. Lumayan banyak tahap dan runtutan fungsi yang digunakan untuk melakukannya.
Object Oriented Programming (OOP) adalah suatu paradigma pemrograman yang berorientasi pada konsep class (kelas) dan object (objek). Konsep ini sering kali digunakan dalam menyusun aplikasi menjadi kode yang sederhana dan dapat digunakan kembali (reusable). Dalam bahasa pemrograman Python, mode operasi Object-Oriented Programming (OOP) mengacu pada penggunaan konsep OOP untuk merancang dan mengembangkan program. OOP adalah paradigma pemrograman yang berfokus pada objek dan hubungan antara objek-objek tersebut.
Hal-hal yang ada didalam OOP python antara lain :
Class
Class
adalah struktur utama dalam OOP yang mendefinisikan atribut dan metode yang dimiliki oleh objek. Kelas berfungsi sebagai blueprint untuk menciptakan objek. Dalam Python, Anda dapat mendefinisikan kelas dengan menggunakan kata kunci class. Contohnya
class Mobil :
def __init__(self, merk, tahun) :
self.merk = merk
self.tahun = tahun
def info(self) :
print(f"Mobil {self.merk} tahun {self.tahun}")
Object
Object
adalah instansi konkret dari suatu kelas. Object memiliki atribut dan metode yang didefinisikan dalam kelasnya. Untuk menciptakan objek dari kelas, Anda menggunakan proses yang disebut instansiasi. Contohnya:
class BilanganKompleks :
def __init__(self, riil, imajiner) :
self.r = riil
self.i = imajiner
x = BilanganKompleks(3.0, -4.5)
print(x.r, x.i)
Dari contoh diatas x adalah sebuah object
Enkapsulasi
Enkapsulasi
adalah konsep pemaketan atau penyatuan data dalam data beserta method yang berasosiasi dengannya sedemikian rupa sehingga dapat dimanfaatkan untuk menyembunyikan rincian implementasi dari kelas pemakai. Dalam referensi lain konsep enkapsulasi juga dikenal dengan istilah information hiding. Konsep enkapsulasi menggunakan istilah private
untuk sifat keanggotaan yang hanya bisa dikenali oleh kelas tersebut saja, public
untuk sifat keanggotaan yang bisa dikenali oleh semua pihak, dan protected
/friend
untuk sifat keanggotaan internal kelas dan/atau kelas turunan dari kelas tersebut.
Setiap atribut dan method yang diimplementasikan pada suatu class
, secara konsep seharusnya hanya berlaku untuk object
tersebut saja. Implementasi dalam bahasa pemrograman tertentu terkadang memfasilitasi designer/programmer untuk membuat suatu variabel yang diakses bersama oleh setiap instance/object dari suatu class. Variabel semacam ini disebut juga class variabel
. Adapun variabel yang hanya dapat diakses oleh instance/object
yang bersangkutan saja disebut dengan instance variabel
.
class Anjing:
jenis = 'labrador' # variable yang digunakan semua instance
def __init__(self, nama):
self.nama = nama # variable yang unik untuk setiap instance
d = Dog('Fido')
e = Dog('Buddy')
d.jenis # menggunakan class variable
e.jenis # menggunakan class variable
d.nama # unik untuk d / instance variable
e.nama # unik untuk e / instance variable
Dalam implementasinya, jika terdapat atribut dengan nama yang sama di tingkat class dan instance, maka prioritas diberikan kepada atribut di tingkat instance.
Inheritance
Inheritance
adalah suatu konsep pewarisan suatu class
ke class
lain. Class
yang mewariskan disebut dengan superclass
/ parent class
/ base class
. Class
yang mewarisi disebut dengan subclass
/ child class
/ derived class
. Pewarisan yang dimaksud adalah penurunan segala anggota (atribut
dan method
) dari class
yang sudah ada ke class
baru yang akan dibuat. Penurunan anggota hanya berlaku terhadap sifat keanggotaan public
atau protected
/friend
saja, sedangkan keanggotaan private
tidak diturunkan. Mekanisme inheritance
ini memungkinkan untuk membuat suatu class hierarchy, dimana kelas turunan mewarisi semua keanggotaan seluruh kelas diatasnya.
class Penduduk :
def __init__(self, nama, id) :
self.nama = nama
self.id = id
def cetak_info(self) :
print(f"{self.nama}, {self.id}")
class Pegawai(Penduduk) :
def __init__(self, nama, id, nip, th_mulai) :
self.nip = nip
self.th_mulai = th_mulai
Penduduk.__init__(self, nama, id)
class Nelayan(Penduduk):
def __init__(self, nama, id, area_laut):
self.area_laut = area_laut
super().__init__(nama, id) # super() otomatis mencari parent
budi = Penduduk("Budi", 1)
budi.cetak_info()
dani = Pegawai("Dani", 103, 901, 2023)
dani.cetak_info()
andi = Nelayan('Andi', 104, 'Laut Jawa')
andi.cetak_info()
Polymorphisme
Polymorphisme
adalah konsep yang muncul setelah inheritance
, dimana suatu method yang sama dapat berperilaku berbeda dalam tingkatan class
. Pada konsep ini, setiap class
dapat mengimplementasikan secara berbeda konsep method yang sama tadi. Perbedaan implementasi
ini dibedakan menjadi overloading
dan overriding
. Overloading
berarti implementasi method yang sama dari sisi penamaan, tapi berbeda parameter masukan yang didefinisikan. Overriding
berarti implementasi method di tingkat kelas turunan menimpa pendefinisian method di class
yang diatasnya.
class Ikan:
def berenang(self):
print("Setiap ikan pasti berenang")
def berenang_mundur(self):
print("Tidak semua ikan dapat berenang mundur")
def struktur_penyangga(self):
print("Ikan menggunakan tulang sebagai penyangga tubuh")
class Shark(Ikan):
def berenang(self):
print("Shark dapat berenang")
def berenang_mundur(self):
print("Shark tidak dapat berenang mundur")
def struktur_penyangga(self):
print("Shark memiliki struktur tulang rawan")
class Clownfish(Ikan):
def berenang(self):
print("Clownfish dapat berenang")
def berenang_mundur(self):
print("Clownfish dapat berenang mundur")
def struktur_penyangga(self):
print("Clownfish memiliki struktur tulang keras")
### Instansiasi
bruce = Shark()
nemo = Clownfish()
marlin = Clownfish()
### melalui iterasi
finding_nemo = [nemo, bruce, marlin]
for fish in finding_nemo:
fish.berenang()
fish.berenang_mundur()
fish.struktur_penyangga()
### melalui fungsi
def cetak_ikan(ikan):
ikan.berenang()
ikan.berenang_mundur()
ikan.struktur_penyangga()
cetak_ikan(nemo)
cetak_ikan(bruce)
cetak_ikan(marlin)
### atau kombinasinya
for fish in finding_nemo:
cetak_ikan(fish)
Berpindah Class
Suatu object
dapat berpindah kelas dari subclass
ke superclass
atau sebaliknya dengan menggunakan method built-in class. Pada dasarnya perpindahan kelas dari subclass
ke superclass
tidak berpotensi masalah karena setiap member superclass
sudah dimiliki oleh subclass
. Namun sebaliknya, jika perpindahan kelas terjadi dari superclass
menjadi subclass, tanpa mendefinisikan member (atribut/method) dari subclass
tersebut, akan berpotensi error ketika mengakses member yang tidak terdefinisi.
class X :
def __init__(self, idx) :
self.idx = idx
def print(self) :
print (f"Class X with idx {self.idx}")
class Y(X) :
def __init__(self, idx, idy) :
self.idy = idy
super().__init__(idx)
def print(self) :
print(f"Class Y with idx {self.idx} and idy {self.idy}")
y = Y(101, 102)
y.print() #Class Y with idx 101 and idy 102
y.__class__ = X
y.print() #Class X with idx 101
x = X(101)
x.print() #Class X with idx 101
x.__class__ = Y
x.print() #Error karena x tidak memiliki atribute idy
`