Skip to content

Latest commit

 

History

History
1397 lines (1003 loc) · 42.6 KB

Pengenalan Dasar Python.md

File metadata and controls

1397 lines (1003 loc) · 42.6 KB

1. Instalasi IDLE untuk Python 2.7

Mari kita mulai instalasi IDLE untuk editor Python kita.

Untuk Linux

sudo apt-get install idle

Untuk Windows

Unduh dan install idle dari tautan berikut

Untuk MacOS

Unduh dan install dari tautan berikut

Lihat Videonya >>>

Instalasi Python


2. Aplikasi IDLE sebagai editor Python 2.7

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.

+ Tampilan awal IDLE

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.

+ Bermain menggunakan console Pyhton

Tanda >>> merupakan masukan console dalam keadaan standby dan siap untuk diberikan perintah.

Apabila Anda menekan Enter beberapa kali, maka console tidak memberikan nilai balikan.

  • Bagaimana jika kita memasukkan sebuah angka?

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 ,.

Lihat Videonya >>>

Console pada Python

+ Menggunakan Python sebagai kalkulator (alat hitung)

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

+ Komentar pada Pyhton

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

Lihat Videonya >>>

Komentar Pada Python

+ Variabel

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.

  • Merubah isi variabel

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.

Lihat Videonya >>>

Mengubah Isi Variable di Python

  • Operasi dengan variabel itu sendiri

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

Lihat Videonya >>>

Variable String di Python

  • Variabel dalam string / kata

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

Lihat Videonya >>>

Mengubah Isi Variable di Python

  • Penulisan variabel yang baik dan buruk

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

Lihat Videonya >>>

Penamaan Variabel yang Baik dan Buruk

  • Nilai Boolean

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.

Lihat Videonya >>>

Variabel Boolean pada Python

  • Penulisan operator pembanding lainnya

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

Lihat Videonya >>>

Operator Pembanding pada Python

  • Nilai None

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.

Lihat Videonya >>>

None pada Python

+ Fungsi print pada Python

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)


Lihat Videonya >>>

Fungsi Print pada Python


3. Editor Pada IDLE

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.

Lihat Videonya >>>

Editor IDLE pada Python

+ Menjalankan program dari editor

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

Beberapa fitur pada editor IDLE yang perlu diketahui adalah:

  • Nomor Garis (Line Number)

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.

  • Kehilangan pasangan pada penulisan (Missing Charracter)

Galat atau error yang sering terjadi pada penulisan kode di Python, adalah kehilangan pasangan pada penulisannya. Semilsal yang sering terjadi adalah

  1. Pasangan tanda kurung ( ), tanda petik atas ' ' atau " ".
  2. Penulisan : pada perulangan atau pengkondisian
  3. Kekurangan spasi pada penulisan variabel
  4. Penulisan yang kurang sejajar terutama pada perulangan dan pengkondisian

Lihat Videonya >>>

Error dan Fitur pada Python

Semisal pada contoh berikut ini:

Kekurangan tutup kurung

print("Halo Bro!")

nama = raw_input("Namamu siapa? :" #) #ini posisi kekurangan tutup kurung )
print ("Halo " + nama + '!')

Kekurangan titik dua

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!")

Kelebihan spasi

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!")

Penulisan kurang sejajar secara tingkatannya

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.

  • Komentar dalam banyak baris

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
>>> 

4. Pengkondisian

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
>>> 

Lihat Videonya >>>

Pengkondisian pada Python

Hindari penggunaan kondisi bertingkat dengan elif

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.

Lihat Videonya >>>

ElIf pada Python

Coba benarkan kode berikut ini

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...")

5. List dan Tuple

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.

Lihat Videonya >>>

Apa itu List pada Python

Lalu, apa saja yang dapat kita lakukan dengan list ?

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']
>>> 

Operasi pada list

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]
>>>

Lihat Videonya >>>

Operasi List pada Python

Tuple

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'
>>> 

6. Perulangan (Loops)

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.

While Loops

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")

	
>>> 

Until Loops

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!
>>> 

For Loops

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 whilenya 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.


OOP Pyhton

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

`