Python yaitu  bahasa pemrograman interpretatif yang 

multiplatform dan multiguna, Python termasuk di dalam bahasa 

pemrograman tingkat tinggi karya Guido van Rossum. Python 

sendiri telah banyak digunakan untuk membuat berbagai macam 

aplikasi dan program, seperti: Program GUI (desktop), Aplikasi 

Mobile, Web, IoT, Game, bahkan Program untuk Hacking. 

Dengan keunggulan kode yang simpel dan mudah 

diimplementasikan, seorang programmer dapat lebih meng-

utamakan pengembangan aplikasi yang dibuat, bukan malah sibuk 

mencari syntax error. 

print("Python itu sangat simple broo"); 

 

Dengan hanya menuliskan kode print seperti contoh diatas, kita 

sudah dapat mencetak apapun yang kita inginkan di dalam tanda 

kurung () .  Di bagian akhir kode pun, kita tidak harus meng-

akhirnya dengan tanda semicolon (;). 

 

B. Instalasi Python 

Sebelum kita menggunakan Python, kita harus menginstal-nya 

terlebih dahulu di sistem operasi komputer Anda. Saat ini Python 

memiliki 2 versi yang berbeda, yaitu Python versi 3 dan Python 

versi 2, dimana versi terbaru dari Python 2 yaitu  Python 2.7.17 

dan untuk versi 3 yaitu  Python 3.8.0 untuk versi stablenya. Untuk 

mendapatkan file instalasi Python kita dapat mengunjungi laman 

berikut 

https://www.Python.org/downloads/, 

dalam buku ini kita akan belajar bahasa pemrograman Python 

menggunakan versi terbaru 3.8.0. Halaman IDE Python 3.8 dapat 

kita lihat seperti gambar berikut 

 

 

Gambar 1.  IDLE Python 3.8.0 

 

 

C. Integrated Development Environment (IDE) Python 

IDE yaitu  sebuah software aplikasi yang memberikan kita 

fasilitas yang sangat bermanfaat ketika membuat aplikasi atau 

program. Biasanya sebuah IDE terdiri dari source code editor build 

automation debugger dan tools. Untuk menulis sebuah program, 

bisa menggunakan text editor atau IDE nya. Bagi yang sudah mahir, 

menulis program dengan text editor bukanlah menjadi masalah. 

Tetapi untuk pemula, akan lebih mudah menggunakan IDE. 

Beberapa IDE untuk Python yang cukup populer yaitu  : 

1. Web Development: Django, Pyramid, Bottle, Tornado, Flask, 

web2py. 

2. GUI Development: tkInter, PyGObject, PyQt, PySide, Kivy, 

wxPython 

3. Scientific and Numeric: SciPy, Pandas, IPython 

4. Software Development: Buildbot, Trac, Roundup 

5. System Administration: Ansible, Salt, OpenStack 

 

D. Tipe Data Python 

Tipe data yaitu  suatu memori atau media pada komputer yang 

digunakan untuk menampung informasi atau data sementara. 

Python sendiri mempunyai tipe data yang cukup unik bila kita 

bandingkan dengan bahasa pemrograman yang lain. 

Berikut yaitu  tipe data dari bahasa pemrograman Python; 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Tabel 1.  Tipe Data Python 

 

 

Supaya lebih paham, mari kita coba tipe data dalam Python 

 

 

 

E. Variabel Python 

Variabel ialah lokasi memori yang dicadangkan guna untuk 

menyimpan nilai-nilai. Hal ini berarti bahwa saat kita membuat 

sebuah variabel kita memesan beberapa ruang kosong di dalam 

memori. Variabel menyimpan data yang proses selama program 

dieksekusi, yang nantinya isi dari variabel tersebut dapat diubah 

oleh operasi - operasi tertentu pada program yang menggunakan 

variable tersebut. 

Penulisan variabel Python memiliki aturan tertentu, yaitu : 

1. Karakter pertama harus berupa huruf atau garis 

bawah/underscore _ 

2. Karakter selanjutnya dapat berupa huruf, garis 

bawah/underscore _ atau angka 

3. Karakter pada nama variabel bersifat sensitif (case-sensitif). 

Artinya huruf kecil dan huruf besar dibedakan. Sebagai contoh, 

variabel namaDepan dan namadepan yaitu  variabel yang 

berbeda. 

 

 

 

 

 

 

 

 

 

 

 

 

BAB 2  OPERATOR 

 

 

 

A. Operator Aritmatika 

 

 

 

 

 

B. Operator Perbandingan (Comparison Operators) 

Operator perbandingan (comparison operators) digunakan 

untuk membandingkan suatu nilai dari masing-masing operan. 

 

 

 

C. Operator Penugasan (Assignment Operators) 

Operator penugasan digunakan untuk memberikan atau 

memodifikasi nilai ke dalam sebuah variabel. 

 

 

D. Operator Logika (Logical Operators) 

 

10 

E. Sample Program 

 

 

Hasil dari Program sebagai berikut 

11 

12 

BAB 3  SELEKSI KONDISI 

 

 

 

A. Kondisi If 

Seleksi kondisi (kondisi if) digunakan untuk mengantisi-pasi 

kondisi yang terjadi saat program dijalankan dan me-nentukan 

tindakan atau eksekusi apa yang akan diambil sesuai dengan 

kondisi yang ada. Pada Python ada beberapa statement/ kondisi 

diantaranya yaitu  if, else dan elif, kondisi if digunakan untuk 

mengeksekusi kode jika kondisi bernilai benar. Jika kondisi 

bernilai salah maka statement/kondisi if tidak akan di-eksekusi. 

Sample If 1:  

 

nilai = 9 

#jika kondisi benar/TRUE maka program akan 

mengeksekusi perintah dibawahnya 

if(nilai > 7): 

print("Selamat kita Lulus") 

#jika kondisi salah/FALSE maka program tidak akan 

mengeksekusi perintah dibawahnya 

if(nilai > 10): 

print("Selamat kita Lulus") 

 

 

B. Kondisi If Else 

Kondisi if else yaitu  kondisi dimana jika pernyataan benar 

(true) maka kode dalam if akan dieksekusi, tetapi jika bernilai 

salah (false) maka akan mengeksekusi kode di dalam else. 

 

13 

#Sample If Else 1, if.py: 

nilai = 3 

#Jika pernyataan pada if bernilai TRUE maka if 

akan dieksekusi, tetapi jika FALSE kode pada else 

yang akan dieksekusi. 

if(nilai > 7): 

print("Selamat kita Lulus") 

else: 

print("Maaf kita Tidak Lulus") 

 

#Sample If Else 2, if2.py: 

kunci="keren" 

password=input("masukan password = ") 

if password==kunci:  

print ("password Benar") 

else: 

print ("password salah") 

 

#Sample If Else 3, if3.py: 

angka = input ("masukan Suatu bilangan = ") 

if angka > "0" : 

print ("Bilangan Positif") 

elif angka < "0" : 

print ("bilangan Negatif") 

else : 

print ("Merupakan 0") 

 

#Sample If Else 4, if4.py: 

i= float (input ("masukan bilangan : ")) 

if i%2==0: 

    if i != 0 : 

        print (i,"yaitu  bilangan genap") 

    else : 

        print ("angka 0") 

else : 

    print (" yaitu  bilangan ganjil") 

14 

C. Kondisi Elif 

Seleksi kondisi (kondisi if …. elif) merupakan lanjutan/ 

percabangan logika dari "if". Dengan elif kita dapat membuat kode 

program yang akan menyeleksi beberapa kemungkinan yang dapat 

terjadi. Hal ini hampir sama dengan kondisi "else", bedanya 

kondisi "elif" dapat mempunyai banyak kemungkinan tidak hanya 

satu. 

 

Sample Elif 1: if5.py Sample Elif 2: if6.py 

hari_ini = "Minggu" 

 

if(hari_ini == "Senin"): 

    print("Saya akan 

kuliah") 

elif(hari_ini == 

"Selasa"): 

    print("Saya akan 

kuliah") 

elif(hari_ini == "Rabu"): 

    print("Saya akan 

kuliah") 

elif(hari_ini == 

"Kamis"): 

    print("Saya akan 

kuliah") 

elif(hari_ini == 

"Jumat"): 

    print("Saya akan 

kuliah") 

elif(hari_ini == 

"Sabtu"): 

    print("Saya akan 

kuliah") 

elif(hari_ini == 

"Minggu"): 

    print("Saya akan 

libur") 

x = input ("Masukan 

angka = ") 

if x<"5": 

    print (x,"lebih 

kecil dari 5") 

elif x=="5": 

    print (x,"sama 

dengan 5") 

else: 

    print (x,"lebih 

besar dari 5") 

15 

BAB 4  PERULANGAN 

 

 

 

Secara umum, pernyataan atau program pada bahasa 

pemrograman akan dieksekusi secara berurutan. Pernyataan 

pertama dalam sebuah fungsi dijalankan pertama, diikuti oleh yang 

kedua, dan seterusnya. Akan Tetapi ada situasi dimana kita harus 

menulis banyak kode, dimana kode tersebut sangat banyak. Hal ini 

jika kita lakukan secara manual maka kita hanya akan membuang-

buang tenaga dengan menulis beratus-ratus bahkan beribu-ribu 

kode. Untuk itu kita perlu menggunakan Perulangan di dalam 

bahasa pemrograman Python. 

 

A. While 

Perulangan While Loop di dalam bahasa pemrograman Python 

dieksesusi berkali-kali selama kondisi bernilai benar atau True. 

#Contoh penggunaan While Loop 

hitung = 0 

while (hitung < 9): 

    print ('Mari berhitung kakak :', hitung) 

    hitung = hitung + 1 

print ("Sampai Jumpa!") 

 

 

16 

B. For  

Perulangan For pada Python memiliki kemampuan untuk 

mengulangi item dari urutan apapun, seperti list atau string. 

#Contoh perulangan for sederhana, for.py 

angka = [1,2,3,4,5] 

for x in angka: 

    print(x) 

 

Hasil 

  

 

#Contoh perulangan for, for2.py 

buah = ["nanas", "apel", "jeruk"] 

for makanan in buah: 

    print("Saya suka makan", makanan) 

 

Hasil 

 

 

C. Nested 

Bahasa pemrograman Python memungkinkan penggunaan satu 

lingkaran di dalam loop lain. Bagian berikut menunjukkan 

beberapa contoh untuk menggambarkan konsep tersebut. 

 

 

17 

#Contoh penggunaan Nested Loop, while.py 

i = 2 

while(i < 100): 

    j = 2 

    while(j <= (i/j)): 

        if not(i%j): break 

        j = j + 1 

    if (j > i/j) : print(i, " FTIK USM") 

    i = i + 1 

 

print ("Mari Bergabung Bersama FTIK USM, 

FTIK..Joss!") 

 

Hasil 

  

 

 

18 

D. Sampel Program 

Contoh 1, whileIf.py: 

nama = "rudin" 

kunci = "ndeso" 

a=0 

while a!=3 : 

    username = input ("masukan username : ") 

    password = input ("masukan password : ") 

    if username == nama and password == kunci : 

        print ("password benar") 

        break 

    elif username == nama or password == kunci: 

        print ("user or password error") 

    else : 

        print ("password salah") 

    a=a+1 

if a==3: 

    print ("sudah 3x input") 

 

Hasil 

 

 

Contoh 2: 

 

#Contoh math.py 

import math 

r=float(input("jari-jari lingkaran=")) 

luas=math.pi*r*r 

print ("Luas lingkaran=",luas) 

19 

BAB 5  NUMBER, STRING, TANGGAL  

DAN WAKTU 

 

 

A. Number 

Number merupakan tipe data dalam Python yang menyimpan 

nilai berupa angka atau numerik, number juga tipe data yang tidak 

berubah, ini berarti mengedit nilai dari sejumlah tipe data akan 

menghasilkan objek yang baru dialokasikan. 

Objek Number dibuat saat kita memberikan nilai pada objek 

tersebut. Sebagai contoh :  

variabelKesatu = 1 

variabelKedua = 11 

Python mendukung beberapa tipe data number diantaranya yaitu  : 

Int, Float, Complex 

Int Float Complex 

20 0.1 3.14j 

300 1.2 35.j 

-13 -41.2 3.12e-12j 

20 32.23+e123 .873j 

-103 -92 -.123+0J 

-0x212 -3.25E+11 3e+123J 

0x56 60.2-E13 4.31e-4j 

 

1. Konversi Tipe Data Number 

Pada Python kita bisa mengkonversi tipe data dengan meng-

gunakan fungsi. Di bawah ini yaitu  beberapa fungsi untuk 

mengkonversi tipe data number Python.  

20 

- int(x)= untuk meng-konversi x menjadi plain integer. 

- long(x)= untuk meng-konversi x menjadi long integer. 

- float(x)= untuk meng-konversi x menjadi floating 

point number. 

- complex(x)= untuk meng-konversi x menjadi complex 

number dengan real part x dan imaginary part zero. 

- complex(x, y)= untuk meng-konversi x dan y menjadi 

complex number dengan real part x dan imaginary part y. x 

dan numeric expressions y. 

 

2. Fungsi Matematika  

 

21 

3. Fungsi Nomor Acak  

Fungsi nomor acak digunakan untuk aplikasi-apilkasi  

permainan, simulasi, pengujian, keamanan, dan privasi. Python 

mencakup fungsi berikut yang umum digunakan. Berikut yaitu  

daftarnya : 

 

 

4. Fungsi Trigonometri  

 

22 

5. Konstanta Matematika  

Nama Penggunaan Penjelasan 

Pi pi Konstanta Pi matematika 

e e Konstanta e matematika 

 

B. String 

1. Mengakses Nilai dalam String 

Python tidak menggunakan tipe karakter titik koma ; Ini 

diperlakukan sebagai string dengan panjang satu, sehingga juga 

dianggap sebagai substring. Untuk mengakses substring, gunakan 

tanda kurung siku untuk mengiris beserta indeks atau indeks untuk 

mendapatkan substring Anda. Sebagai contoh : 

nama = 'FTIK USM'  

pesan = "Belajar bahasa Python di FTIK USM" 

print ("Nama[0]: ", nama[0]) 

print ("Pesan [1:4]: ", pesan[1:4]) 

 

Hasil 

 

 

2. Mengupdate String 

Kita dapat "memperbarui" string yang ada dengan (kembali) 

menugaskan variabel ke string lain. Nilai baru dapat dikaitkan 

dengan nilai sebelumnya atau ke string yang sama sekali berbeda 

sama sekali. Sebagai contoh: 

pesan = 'FTIK USM'  

print ("Perbaharui data tipe string :- ", 

pesan[:6] + 'Python') 

23 

Hasil   

 

3. Operator Spesial String Python 

Asumsikan variabel string yaitu  variable a = 'Belajar' dan 

variabel b yaitu  = 'Python', lalu di bawah ini yaitu  operator yang 

bisa dipakai pada kedua string di variabel tersebut. 

a = "Belajar" 

b = "Python" 

 

 

4. Operator Format String Python 

Salah satu fitur Python yang paling keren yaitu  format string 

operator %. Operator ini unik untuk string dan membuat paket 

24 

memiliki fungsi dari keluarga printf C () C. berikut yaitu  

contoh sederhananya : 

print ("My name is %s and weight is %d kg!" % 

('Zara', 21)) 

 

 

5. Triple Quote Python 

Python triple quotes digunakan dengan membiarkan string text 

untuk ditulis dalam beberapa baris, termasuk kata kerja 

NEWLINEs, TABs, dan karakter khusus lainnya.  

Sintaks untuk triple quotes terdiri dari tiga tanda kutip tunggal atau 

ditulis berturut-turut : 

kutipantiga = """ ini yaitu  string panjang yang 

terdiri dari beberapa baris dan karakter yang 

tidak dapat dicetak seperti TAB (\ t) dan mereka 

akan muncul seperti itu ketika ditampilkan. 

NEWLINE di dalam string, baik secara eksplisit 

diberikan seperti ini di dalam kurung [\ n], atau 

25 

hanya NEWLINE di dalam penugasan variabel juga 

akan muncul.""" 

print (kutipantiga) 

 

C. Tanggal dan Waktu  

Program Python dapat menangani tanggal dan waktu dengan 

beberapa cara. Konversi antara format tanggal yaitu  tugas umum 

untuk komputer. Modul waktu dan kalender Python melacak 

tanggal dan waktu. 

1. Apa itu Tick? 

Interval waktu yaitu  bilangan floating-point dalam satuan 

detik. Instansi tertentu dalam waktu dinyatakan dalam hitungan 

detik sejak pukul 12:00 1 Januari 1970. Dibawah ini yaitu  contoh 

penggunanaya. 

import time;  # Digunakan untuk meng-import modul 

time 

 

ticks = time.time() 

print ("Berjalan sejak 1.00am, 1 Desember 2019:", 

ticks) 

 

2. Apa itu TimeTuple Python? 

Python mempunyai beberapa fungsi yang berguna untuk 

menangani waktu, seperti pada tabel berikut. 

26 

 

Fungsi Tupel di atas sama dengan struktur struct_time. Struktur ini 

memiliki atribut sebagai berikut: 

Index Atribut Value 

0 tm_year 2008 

1 tm_mon 1 sampai 12 

2 tm_mday 1 sampai 31 

3 tm_hour 0 sampai 23 

4 tm_min 0 sampai 59 

5 tm_sec 0 sampai 61 

6 tm_wday 0 sampai 6 (0 yaitu  Senin) 

7 tm_yday 1 sampai 366 

8 tm_isdst -1, 0, 1, -1 means library determines DST 

 

3. Mendapatkan Waktu dengan Python 

Untuk menerjemahkan waktu instan dari satu detik sejak nilai 

floating-point ke waktu menjadi tupel waktu, lewati nilai floating-

point ke fungsi (mis., Localtime) yang mengembalikan waktu tupel 

dengan semua sembilan item valid. 

 

27 

#waktu Saat ini 

import time; 

 

localtime = time.localtime(time.time()) 

print ("Waktu Kita saat ini yaitu  :", localtime) 

 

Kita dapat memformat kapan saja sesuai kebutuhan Anda, namun 

metode sederhana untuk mendapatkan waktu dalam format yang 

mudah dibaca yaitu  asctime () 

# Waktu yang berformat 

import time; 

 

localtime = 

time.asctime( time.localtime(time.time()) ) 

print ("Waktu Kita saat ini yaitu  :", localtime) 

 

Modul kalender memberikan berbagai macam metode untuk 

dimainkan dengan kalender tahunan dan bulanan. Di sini, kita 

mencoba untuk mencetak kalender bulan tertentu (contoh. 

Desember 2019) 

# Kalender Sebulan 

import calendar 

 

cal = calendar.month(2019, 12) 

print ("Dibawah ini yaitu  kalender:") 

print (cal) 

 

4. Modul time  

Ada modul waktu populer yang tersedia dengan Python yang 

menyediakan fungsi untuk bekerja dengan waktu dan untuk 

mengkonversi antara representasi. Dibawah ini yaitu  tabel dari 

modul time pada Python yang ada. 

28 

 

 

 

 

 

 

29 

Modul waktu mempunyai dua atribut penting yaitu : 

Method Python Penjelasan 

time.timezone 

Atribut time.timezone yaitu  offset dalam 

detik zona waktu lokal (tanpa DST) dari UTC 

(> 0 di Amerika; <= 0 di sebagian besar Eropa, 

Asia, Afrika). 

time.tzname 

Atribut time.tzname yaitu  sepasang string 

yang bergantung pada lokal, yang merupakan 

nama zona waktu lokal tanpa dan dengan DST. 

 

5. Modul calendar  

Modul kalender berfungsi untuk menyimpan fungsi yang 

berkaitan dengan kalender, hal ini termasuk fungsi untuk mencetak 

kalender teks untuk bulan dan tahun tertentu. 

Secara umum, kalender mengambil hari Senin sebagai hari 

pertama dalam satu minggu dan hari minggu sebagai hari ke tujuh 

atau terakhir. Untuk mengubah ini kita dapat menggunakan fungsi 

call calendar.setfirstweekday(). Berikut yaitu  daftar fungsi-fungsi 

yang tersedia : 

 

30 

 

31 

BAB 6  FUNGSI DAN MODUL  

 

 

A. Fungsi 

Fungsi yaitu  blok kode terorganisir yang dapat digunakan 

kembali untuk melakukan sebuah tindakan/action. Fungsi 

menghasilkan modularitas yang lebih baik untuk aplikasi kita 

dengan tingkat penggunaan kode yang lebih tinggi. 

 

1. Mendefinisikan Fungsi  

Berikut yaitu  aturan sederhana untuk mendefinisikan fungsi di 

dalam Python. 

 Untuk membuat Fungsi dimulai dengan perintah def  dan 

diikuti oleh nama fungsi dan tanda kurung (()).  

 Setiap parameter masukan atau argumen harus ditaruh di dalam 

tanda kurung. 

 Pernyataan pertama dari sebuah fungsi dapat berupa pernyataan 

opsional - string dokumentasi fungsi atau docstring. 

 Blok kode dalam setiap fungsi diawali dengan tanda titik dua 

(:)  dan indentasi. 

 Pernyataan kembali [ekspresi]  keluar dari sebuah fungsi, 

secara opsional menyampaikan kembali ekspresi ke pemanggil. 

Pernyataan pengembalian tanpa argumen sama dengan return 

None. Buatlah skrip berikut kemudian  

 

 

32 

 

 

Untuk contoh yang lebih jelas silahkan anda coba program berikut; 

 

 

B. Modul 

Modul berfungsi untuk memungkinkan kita mengatur kode 

Python secara logis, yaitu dengan mengelompokkan kode terkait ke 

dalam modul dan membuat kode lebih mudah dipahami dan 

digunakan. Modul yaitu  objek didalam Python dengan atribut 

yang diberi nama yang bisa kita bind dan dijadikan secara referensi. 

Secara sederhana modul dapat kita pahami sebagai file yang 

terdiri dari kode Python, Modul dapat mendefinisikan fungsi, kelas 

33 

dan variabel. Modul juga bisa menyertakan kode yang bisa 

dijalankan secara "runable". 

Berikut yaitu  contoh modul sederhana pada Python : (simpan 

dengan nama fungsi1.py) 

def cetak_fungsi( par ): 

   print ("Selamat datang di FTIK USM : ", par) 

   return 

 

1. Import Statement 

Setelah selesai membuat modul, maka untuk mengeksekusi 

modul tersebut agar dapat dijalankan secara eksternal (lewat 

program lain) maka kita dapat menggunakan perintah/sintak 

import, dengan menggunakan perintah import ini kita dapat 

menggunakan file sumber Python apapun sebagai modul dengan 

cara mengeksekusi pernyataan import tersebut di dalam file 

sumber Python lain-nya.  

Ketika interpreter menemukan pernyataan import, ia akan 

mengimpor modul dan modul tersebut harus ada di jalur pencarian 

atau direktori yang ditentukan. Jalur pencarian ialah daftar direktori 

yang ditentukan sebelum mengimpor modul.  

Misalnya, untuk mengimpor modul fungsi1.py, kita perlu 

meletakkan perintah berikut di bagian atas script. 

 

34 

BAB 7  LIST, TUPLE, DICTIONARY,  

OBJECK, DAN CLASS 

 

 

 

 

Di dalam bahasa pemrograman Python, struktur data yang 

paling dasar yaitu  lists atau urutan. Setiap elemen yang berurutan 

akan diberi nomor urut posisi atau sesuai dengan indeksnya. Indeks 

pertama dalam list yaitu  nol, indeks kedua yaitu  satu dan 

seterusnya. 

Python mempunyai enam jenis urutan built-in, namun yang 

paling sering digunakan yaitu  list, tuple dan dictionary, akan 

tetapi ada beberapa hal yang dapat kita lakukan dengan semua jenis 

list. Operasi tersebut meliputi pengindeksan, pengiris, penambahan, 

perbanyak, dan pengecekan keanggotaan. Selain itu, Python 

memiliki fungsi built-in untuk menemukan panjang list dan untuk 

menemukan elemen terbesar dan terkecilnya. 

 

A. List 

1. Membuat List  

List yaitu  tipe data yang paling serbaguna yang terdapat pada 

bahasa Python, yang dapat ditulis sebagai daftar nilai yang 

dipisahkan koma (item) antara tanda kurung siku. Hal penting 

tentang daftar yaitu  item dalam list tidak boleh sama jenisnya. 

contoh sederhana pembuatan list dalam bahasa Python. 

35 

 

 

2. Akses Nilai dalam List  

Untuk mengakses nilai yang terdapat di dalam list Python, kita 

dapat menggunakan tanda kurung siku untuk mengiris beserta 

indeks atau indeks agar mendapatkan nilai yang tersedia pada 

indeks tersebut. 

 

 

3. Update Nilai dalam List 

Kita juga dapat memperbarui satu atau beberapa nilai di dalam 

list dengan cara memberikan potongan di sebelah kiri operator 

penugasan, dan kita juga dapat menambahkan nilai ke dalam list 

dengan metode append (). Sebagai contoh berikut: 

 

 

36 

4. Hapus Nilai dalam List 

Untuk menghapus nilai yang terdapat di dalam list Python juga 

mudah, kita cukup menggunakan perintah del jika kita tahu persis 

posisi elemen yang ingin kita hapus, atau kita dapat juga 

menggunakan metode remove() jika kita tidak tahu persis item 

mana yang akan dihapus. Sebagai contoh berikut: 

 

 

5. Operasi Dasar pada List 

List Python juga dapat merespons operator + dan * seperti 

halnya string; Itu artinya operator penggabungan dan perulangan 

juga berlaku di sini, kecuali hasilnya yaitu  list baru, bukan sebuah 

String. 

Sebenarnya, list merespons semua operasi urutan umum yang 

kita gunakan pada String di bab sebelumnya. Dibawah ini yaitu  

tabel daftar operasi dasar pada list Python. 

 

 

37 

6. Indexing, Slicing dan Matrix pada List  

Karena list yaitu  urutan, pengindeksan dan pengiris bekerja 

dengan cara yang sama untuk list seperti yang mereka lakukan 

untuk String. Dengan asumsi input berikut : 

L = ['C++'', 'Java', 'Python'] 

 

 

7. Method dan Fungsi Build-in pada List  

 

 

 

38 

B. Tuple 

Tupel yaitu  sebuah urutan objek Python yang tidak dapat 

berubah, Tupel yaitu  urutan seperti daftar. Perbedaan utama 

antara Tupel dan List yaitu  bahwa data yang ada pada Tupel tidak 

dapat diubah, tidak seperti List Python. Tupel mengguna-kan 

symbol tanda kurung, sedangkan List Python menggunakan tanda 

kurung siku. 

Membuat Tuple semudah memasukkan nilai-nilai yang 

dipisahkan koma. Secara opsional, kita dapat memasukkan nilai-

nilai yang dipisahkan koma ini di antara tanda kurung juga. 

Sebagai contoh : 

 

 

1. Akses Nilai dalam Tuple  

Untuk mengakses nilai yang berada pada tupel, gunakan tanda 

kurung siku untuk mengiris beserta indeks atau indeks untuk 

mendapatkan nilai yang tersedia pada indeks tersebut. Sebagai 

contoh : 

 

39 

2. Update Nilai dalam Tuple  

Tupel tidak berubah, yang berarti kita tidak dapat memperbarui 

atau mengubah nilai elemen tupel. kita dapat mengambil bagian 

dari tupel yang ada untuk membuat tupel baru seperti ditunjukkan 

oleh contoh berikut. 

 

 

3. Hapus Nilai dalam Tuple  

Menghapus elemen tuple individual tidak mungkin dilakukan. 

Tentu saja, tidak ada yang salah dengan meng-gabungkan tupel lain 

dengan unsur-unsur yang tidak diinginkan dibuang. Untuk secara 

eksplisit menghapus keseluruhan tuple, cukup gunakan del 

statement. Sebagai contoh 

 

 

4. Operasi Dasar pada Tuple  

Seperti halnya List, Tupel juga merespons operator + dan * 

sama seperti String; berarti penggabungan dan perulangan di juga 

dapat berlaku juga sini, kecuali hasilnya yaitu  tupel baru, bukan 

string. 

40 

Sebenarnya, Tuple merespons semua operasi urutan umum yang 

kita gunakan pada String di bab sebelumnya. Dibawah ini yaitu  

tabel daftar operasi dasar pada Tuple Python. 

 

 

5. Indexing, Slicing dan Matrix pada Tuple  

Karena Tupel yaitu  urutan, pengindeksan dan pengiris bekerja 

dengan cara yang sama untuk tupel seperti pada String, dengan 

asumsi masukan berikut. Dengan asumsi input berikut : 

T = ('C++', 'Java', 'Python') 

 

 

6. Fungsi Build-in pada Tuple  

 

41 

C. Dictonary 

Dictionary Python sendiri berbeda dengan List ataupun Tuple, 

hal ini dikarenakan setiap urutannya berisi key dan value. Setiap 

key dipisahkan dari value-nya dengan titik dua (:), item dipisahkan 

oleh koma, dan semuanya tertutup dalam kurung kurawal. 

Dictionary juga dapat kosong tanpa isi, caranya ditulis hanya 

dengan dua kurung kurawal, seperti ini: {}. 

Nilai dictionary dapat berupa tipe apa pun, namun key harus 

berupa tipe data yang tidak berubah seperti string, angka, atau tupel. 

 

1. Akses Nilai dalam Dictionary  

Untuk mengakses elemen Dictionary, kita dapat menggunakan 

tanda kurung siku yang sudah dikenal bersama dengan key untuk 

mendapatkan nilainya. Berikut yaitu  contoh sederhananya : 

 

 

2. Update Nilai dalam Dictionary  

Kita dapat memperbarui Dictionary dengan menambahkan entri 

baru atau pasangan nilai kunci, memodifikasi entri yang ada, atau 

menghapus entri yang ada seperti ditunjukkan pada contoh 

sederhana yang diberikan di bawah ini. 

42 

 

 

3. Hapus Elemen Dictionary  

Kita dapat menghapus elemen Dictionary individual atau 

menghapus keseluruhan isi Dictionary. kita juga dapat menghapus 

seluruh Dictionary dalam satu operasi. 

Untuk menghapus seluruh Dictionary secara eksplisit, cukup 

gunakan del statement. Berikut yaitu  contoh sederhana : 

 

 

4. Fungsi Build-in pada Dictionary  

 

43 

5. Method Build-in pada Dictionary  

 

 

D. Objeck dan Class 

Python sudah menjadi bahasa berorientasi objek sejak bahasa 

Python ini dibuat, untuk membuat dan menggunakan kelas dan 

objek pada Python sangat mudah. Pada materi ini kita akan 

membantu anda untuk memahami dalam penggunaan pemrograman 

berorientasi objek dengan Python. 

Jika anda belum paham dengan pemrograman berorientasi 

objek (OOP), kita harus mempelajari terlebih dahulu agar kita 

dapat memahami konsep dasarnya.  

 

1. Membuat Class  

Sintak class digunakan untuk membuat kelas baru, untuk 

membuat class sintak class diikuti nama kelas dan titik dua. 

44 

class ClassNama: 

    'Optional class documentation string' 

    class_suite 

 

 

 

2. Mengakses Atribut 

Kita dapat mengakses atribut objek menggunakan dot operator 

dengan objek. Variabel kelas akan diakses dengan menggunakan 

nama kelas sebagai berikut : 

emp1.displayEmployee() 

emp2.displayEmployee() 

print ("Total Employee %d" % Employee.empCount) 

 

 

 

45 

 

 

46 

BAB 8  STACK DAN QUEUE 

 

 

 

A. Stack 

Stack yaitu  tipe data yang bersifat LIFO (Last In First Out), 

dimana data yang terakhir masuk akan menjadi data yang pertama 

kali dapat dikeluarkan. Struktur data stack mempunyai beberapa 

operasi antara lain yaitu : 

- stack():  Untuk membuat stack 

- push(item): Untuk menambahkan sebuah item ke dalam 

stack  

- pop():  Untuk mengambil data dari stack (data paling atas 

akan dikeluarkan dari stack) 

- peek():  Untuk mengidentifikasi data paling akhir yang 

masuk ke dalam stack  

- isEmpty():  Untuk mengidentifikasi apakah stack masih 

kosong? Akan menghasilkan nilai TRUE jika stack masih 

dalam keadaan kosong 

- size():  Untuk mengetahu jumlah item (elemen) dalam 

sebuah stack. 

 

 

47 

B. Queue 

Struktur data Queue ini kebalikan dari Stack yaitu seperti 

sistem antrian, sistem queue menganut konsep FIFO (First In First 

Out).  Jenis operasi dalam QUEUE: 

- Queue():    Membuat Queue baru 

- enqueue(item)  : Menambahkan data dalam queue, 

penambahan data selalu dilakukan dari bagian belakang (rear) 

- dequeue():  Menghapus data, selalu dilakukan dari bagian 

depan (front) 

- isEmpty():  Untuk mengetahui apakah Queue dalam 

keadaaan kosong atau tidak? 

- size():  Untuk mengidentifikasi jumlah data yang ada 

didalam queue. 

 

 

 

48 

49 

BAB 9 SEARCHING 

 

 

 

Permasalahan yang sangat sering dihadapi dalam komputasi 

yaitu  searching (pencarian) dan sorting (pengurutan). Searching 

yaitu  algoritma untuk mencari item data yang terdapat di dalam 

sekumpulan item-item data yang lain. Hasil dari proses pencarian 

data ini berupa data boolean, yaitu betul atau satal, True atau False, 

tergantung pada apakah item data yang dicari ditemukan atau tidak 

ditemukan. 

Di dalam Python terdapat sebuah operator yang dapat 

digunakan untuk pencarian data, yaitu operator in  (keanggotaan), 

apakah sebuah data merupakan anggota dari sekolompok data. 

Contoh seperti pada kode berikut:  

>>> 15 in [3,5,2,4,1] 

False 

>>> 3 in [3,5,2,4,1] 

True 

>>> 

 

Sangat mudah untuk menggunakan operator in untuk mencari 

data, tetapi dalam bab ini kita akan mempelajari mengenai cara 

mengimplementasikan proses pencarian data. 

 

A. Sequential Search 

Ketika data disimpan dalam bentuk koleksi seperti list 

(ordered), maka dapat simpulkan bahwa data tersebut mempunyai 

hubungan yang bersifat linear atau sequential. Setiap data akan 

disimpan dengan posisi tertentu dan relatif terhadap data yang lain. 

50 

Di dalam Python posisi relatif tersebut merupakan index dari setiap 

item data, karena index dari sebuah item data yaitu  berupa urutan 

angka yang dimulai dari angka terkecil (0,1,2,….)  maka sangat 

dimungkinkan untuk membaca setiap data dalam list secara 

berurutan (sequential), yang kemudian disebut dengan pencarian 

secara sequential. Seperti ilustrasi pada gambar di bawah ini: 

 

 

Gambar di atas menjelaskan proses pencarian data dimulai dari 

item data pertama (ujung kiri, indeks = 0), kemudian dilanjutkan ke 

arah kanan secara berurutan sampai data yang dicari ditemukan, 

jika sampai posisi data yang terakhir maka data yang dicari tidak 

ditemukan maka hasilnya yaitu  False, atau data yang dicari tidak 

ditemukan. 

 Berikut ini yaitu  contoh implementasi sequential searching 

dengan menggunakan Python. 

 

51 

B. Binary Search 

Jika data kita yaitu  data yang telah diurutkan terlebih dahulu 

maka Binary search dapat melakukan pencarian lebih cepat jika 

dibanding dengan sequential search, dimana proses pencarian data 

dalam binary search akan dimulai dari bagian tengah list. Jika item 

yang dicari berada di tengah pencarian maka pencarian akan 

berakhir, tetapi jika item tidak ditemukan di tengah, pencarian 

berikutnya dapat dilakukan di setengah bagian atas atau setengah 

bagian bawah, hal ini tergantung pada besar atau kecilnya item data 

yang dicari. Proses ini akan diulang terus sampai data yang dicari 

ditemukan atau mencapai batas akhir list/ item (tidak ditemukan). 

Gambar di bawah yaitu  ilustrasi proses pencarain angka 54 dalam 

list, dengan menggunakan binary search.  

 

 

52 

Algoritma binary search merupakan contoh yang sangat bagus dari 

strategi pencarian data yang disebut divide and conquer, yaitu 

dengan cara membagi kasus menjadi bagian yang lebih kecil. 

 

53 

BAB 10 SORTING 

 

 

 

Sorting yaitu  proses menempatkan elemen data dalam sebuah 

koleksi data dengan urutan tertentu, sebagai contoh sebuah daftar 

kata-kata dapat diurutkan berdasarkan pada abjad (alphabetically) 

ataupun berdasarkan pada panjang pendeknya kata. Nama-nama 

mahasiswa dapat diurutkan berdasarkan pada nilai IPK, program 

studi ataupun asal kota.   

Sampai sejauh ini sudah banyak algoritma sorting yang telah 

dikembangkan dan dianalisa. Hal ini sebagai bukti bahwa sorting 

yaitu  bagian penting dalam pembelajaran ilmu komputer 

(computer science). Sorting item dalam jumlah yang sangat besar 

memerlukan computing resource yang besar pula, seperti halnya 

dengan algoritma searching, efisiensi algoritma sorting berkaitan 

erat dengan jumlah item yang diproses. Pada sebuah koleksi data 

dengan jumlah item sedikit, algoritma sorting yang komplek 

relative akan mengalamai masalah karena terlalu banyak persiapan 

data (pre-prosessing) yang harus dilakukan.  Pada sisi lain, sebuah 

koleksi dengan jumlah item yang besar, diperlukan peningkatan 

strategi agar proses menjadi lebih cepat, meskipun strategi harus 

menggunakan strategi yang paling rumit sekalipun. Pada bagian ini 

akan dijelaskan beberapa teknik mengurutkan data dan mem-

bandingkannya berdasarkan pada waktu eksekusinya.  

Sebelumnya, perlu kita perhatikan beberapa hal berkaitan 

dengan jenis operasi yang digunakan untuk menganalisa proses 

sorting. Pertama, perlu membandingkan dua nilai untuk melihat 

apakah nilainya lebih kecil atau lebih besar. Untuk mengurutkan 

54 

sebuah koleksi data, dibutuhkan beberapa cara yang sistematik 

untuk membandingkan nilainya untuk melihat apakah sebuah item 

keluar dari urutan. Jumlah operasi perbandingan umumnya 

merupakan cara yang paling banyak digunakan untuk mengukur 

proses pengurutan. Kedua, jika nilai sebuah item berada dalam 

posisi yang tidak benar, relatif terhadap posisi data yang lain, 

mungkin diperlukan untuk menukar posisi dari item tersebut. 

Menukar posisi sebuah item merupakan operasi yang memerlukan 

waktu dan resource dan jumlah operasi pertukaran seperti ini juga 

perlu dievaluasi untuk mendapatkan efisiensi keseluruhan dari 

sebuah algoritma. 

 

A. Bubble Sort 

Bubble sort mengurutkan data dengan cara memeriksa 

keseluruhan data secara berulang kali. Bubble sort membanding-

kan item-item yang bersebelahan dan akan menukar posisi dari 

item-item tersebut jika item tersebut belum urut. Setiap satu siklus 

pemeriksaan keseluruhan koleksi data akan diperoleh sebuah item 

paling besar pada posisi yang benar. 

Silahkan anda perhatikan gambar di bawah untuk ilustrasi dari 

operasi operasi bubble sort. Item yang diberi tanda warna dasar 

abu-abu merupakan item-item yang sedang dibandingkan. Jika item 

sebelah kiri lebih besar maka posisinya akan ditukar, kondisi 

sebaliknya tidak perlu operasi penukaran tempat. Jika dalam 

koleksi data terdapat n-item , maka diperlukan perbandingan 

sebanyak n-1 , pada siklus pertama. Perlu diperhatikan bahwa jika 

angka terbesar terdapat dalam daftar item yang sedang 

55 

dibandingkan, maka angka ini akan selalu dipindahkan ke samping 

kanan hingga ke posisi paling akhir. 

 

 

Di awal siklus yang kedua, angka terbesar sudah berada pada 

posisi yang benar, yaitu di posisi paling kanan pada koleksi data.  

Selanjutnya masih terdapat  n-1 item yang harus diurutkan, yang 

berarti masih ada n-2 pasang data yang harus dibandingkan, karena 

setiap siklus akan menempatkan item terbesar di posisi paling 

kanan, maka jumlah siklus keseluruhan proses yaitu  n-1 siklus. 

Setelah n-1 siklus pengurutan maka angka paling kecil akan berada 

di posisi paling kiri. Contoh kode di bawah yaitu  sebuah kode 

program yang merupakan implementasi dari algoritma bubble sort. 

Program ini akan memproses list dalam parameter dan melakukan 

56 

modifikasi dengan cara menukar posisi item data dalam list jika 

diperlukan. 

 

 

Operasi penukaran posisi item data terkadang disebut dengan 

operasi "swap". Biasanya operasi swap perlu sebuah memori 

tambahan yang bersifat sementara, seperti dalam potongan kode 

berikut: 

temp = alist[i] 

alist[i] = alist[j] 

alist[j] = temp 

 

Kode di atas akan menukar isi item i dan j dalam list. Di dalam 

Python sedikit berbeda, operasi penukaran data seperti di atas dapat 

dilakukan dengan operasi assigment secara simultan, contoh  'a, b 

= b, a'   perintah ini akan menukar isi data pada variabel a ke 

variabel b. 

57 

 

 

 

B. Selection Sort  

Selection sort dapat memperbaiki performa bubble sort dengan 

hanya membuat satu pertukaran data saya untuk setiap siklusnya. 

Untuk melakukan hal ini, selection sort mencari lokasi dari angka 

terbesar untuk setiap satu siklus selanjutnya memindahkan 

(menukarkan) isinya di akhir siklus. 

Setelah siklus pertama, angka terbesar berada di posisi paling 

kanan, seperti halnya pada bubble sort. Siklus kedua akan 

menempatkan angka terbesar berikutnya, dan proses ini akan 

berlanjut dan memerlukan n-1 siklus untuk mengurutkan item 

sebanyak n, item terakhir akan berada pada posisi yang benar 

setelah operasi siklus ke n-1.  

58 

Gambar di bawah menunjukkan ilustrasi bagaimana algoritma 

selection sort berjalan. 

 

 

Untuk mengimplementasikan selection sort dapat di lihat kode 

program di bawah ini : 

  

59 

 

 

C. Insertion Sort 

Meskipun insertion sort masih memiliki tingkat kompleksitas 

juga (dilihat dari jumlah operasi perbandingannya), namun 

demikian insertion sort bekerja dengan cara yang sedikit berbeda 

dengan algoritma sorting yang lainnya.  

Insertion sort bekerja dengan cara selalu menjaga urutan data di 

bagian awal koleksi (list). Tahap selanjutnya setiap item berikutnya 

akan di sisipkan pada bagian awal list pada posisi yang sudah urut. 

Gambar di bawah ini yaitu  ilustrasi proses pengurutan data 

dengan algoritma insertion sort. Item yang diberi latar belakang 

warna gelap menunjukan bagian awal list yang sudah terurut, untuk 

setiap siklusnya.  

  

60 

 

  

List dengan satu item pada posisi pertama (posisi 0) awalnya 

dianggap sudah dalam keadaan terurut. Pada setiap siklus 

berikutnya satu item data lain akan disisipkan pada posisi yang 

tepat di bagian awal list, sehingga akhirnya seluruh data dalam list 

akan urut dengan benar. 

Pada contoh ilustrasi di atas pada siklus kelima, terdapat urutan 

data di bagian awal list terdiri atas angka 17, 26, 54, 77, dan 93. 

Selanjutnya akan disisipkan angka 31 ke dalam bagian awal list 

yang sudah urut. Operasi perbandingan dengan angka 93 

menyebabkan terjadi operasi pergeseran angka 93 ke arah kanan, 

keadaan yang sama terjadi ketika melakukan operasi perbandingan 

dengan angka 77 dan 54. Ketika bertemu dengan item 26, operasi 

pergeseran posisi berhenti, dan terdapat 6 angka pada bagian awal 

61 

list dalam keadaan terurut. Seperti ditunjukkan pada gambar di 

bawah: 

  

 

  

Kode program untuk implementasi algoritma insertion sort dapat 

dilihat pada gambar di bawah ini:  

 

 

62 

D. Merge Sort 

Algoritma selanjunya yaitu  merge sort, algoritma ini untuk 

memperbaiki algoritma sorting, pada bagian ini dijelaskan strategi 

sorting dengan menggunakan strategi devide and conquer. 

Algoritma sorting dengan strategi devide and conqure yang 

pertama ialah merge sort. Algoritma Merge sort yaitu  algoritma 

rekursif yang selalu akan memecah list menjadi dua bagian. Jika 

list tidak berisi data (kosong) atau hanya ada satu item data maka 

dikatakan list tersebut dalam keadaan terurut. Jika list terdiri atas 

item data lebih dari satu, maka list akan dipecah menjadi dua 

sublist dan menerapkan merge sort pada kedua sub-list.  Jika kedua 

sublist sudah terurut, operasi utama dalam merge sort diterapkan 

yaitu operasi penggabungan, atau merger. Yaitu operasi 

penggabungan dari dua sublist yang sudah terurut menjadi satu list 

yang baru yang terurut.  

Proses merge sort diilustrasi pada gambar (a) tahapan devide 

and conqure dan (b) tahapan proses merge:  

 

Gambar (a) merge sort 

63 

 

Gambar (b) merge sort 

 

Kode program imlementasi algoritma merge sort ditunjuk-kan pada 

gambar di bawah ini:  

  

64 

 

Cara kerja program di atas yaitu , sekali fungsi merge sort di 

panggil, maka fungsi akan memecah list menjadi dua sublist dan 

memanggil dirinya sendiri (rekursif, baris 8-9) untuk mengurutkan 

data pada masing-masing sub-list. Selanjutnya baris kode 11-31 

bertanggung jawab untuk melakukan proses penggabungan (merge) 

dua sublist menjadi sebuah list yang terurut. Operasi penggabungan 

menempatkan setiap item data kembali ke list awal (alist) satu demi 

satu secara berulang dengan mengambil item paling kecil dari 

sublist. 

Kode di atas dilengkapi dengan perintah print (baris-2) untuk 

menampilkan isi list yang sedang di urutkan pada awal setiap 

pemanggilan fungsi. Pada baris 32 juga terdapat perintah print 

untuk menampilkan proses penggabungan.  

* Catatan,  

Pada saat list terdiri dari angka 44, 55, 20 maka proses memecahan 

list menjadi tidak berimbang. Sublist pertama terdiri atas 44, dan 

sublist kedua terdiri atas angka 55 dan 20.  

65 

E. Quick Sort 

Algoritma quick sort juga menggunakan strategi devide and 

conqure seperti pada merge sort, tetapi tidak menggunakan memori 

tambahan, karena ada kemungkinan bahwa list tidak terbagi 

menjadi dua sublist yang sama jumlah anggotanya, hal ini dapat 

menjadi penyebab performansi menjadi menurun.  

Pertama quick sort akan memilih sebuah nilai, yang disebut 

dengan pivot value, banyak cara yang dapat digunakan untuk 

memilih pivot value, dalam contoh ini pivot value yang digunakan 

yaitu  item pertama dalam list.  Tugas dari pivote value ialah 

membantu memecah list menjadi dua sublist, posisi dimana pivot 

value berada disebut split point, selanjutnya akan berguna untuk 

memecah list untuk pemanggilan quick-sort berikutnya.  

 

 

Gambar di atas menunjukkan bahwa angka 54 akan digunakan 

sebagai pivot value. Proses selanjutnya yaitu  memecah list 

menjadi dua sublist, yaitu dengan cara menemukan split point dan 

pada saat yang bersamaan memindahkan item-item lain ke sisi list, 

hal ini bergantung pada nilai item, jika lebih besar atau lebih kecil 

dibanding pivot value. 

Proses partisi (memecah) list dimulai dengan menempatkan dua 

buah marker, kita sebut dengan istilah leftmark dan rightmark. 

Leftmark sesuai namanya akan ditempatkan pada sisi paling kiri list 

setelah pivot value, sedangkan rightmark di letakan pada posisi 

66 

paling kanan list (posisi 1 dan 8 pada gambar di bawah). Tujuannya 

yaitu  memindahkan item-item yang terletak di sisi yang salah 

yang dilihat dari sisi pivot value, selain itu juga mengabungkan 

item pada split point. 

 

 

Proses selanjutnya ialah memeriksa item data dari posisi 

leftmark sampai ditemukan angka yang lebih besar dari pivot value. 

67 

Dari arah sebaliknya, rightmark dicari item yang nilainya lebih 

kecil dari pivot value. Dari proses ini, dari arah leftmark pencarian 

berhenti pada angka 93, sedangkan dari arah rightmark pencarian 

akan berhenti pada angka 20.  Selanjutnya angka 93 dapat ditukar 

posisinya dengan angka 20, dan dilanjutkan proses yang sama 

sampai di peroleh kondisi dimana posisi leftmask > rightmark, dan 

pada saat kondisi itu terjadi maka posisi dari rightmark akan 

menjadi titik split point. Posisi split point sekarang dapat di tukar 

dengan posisi pivot value dan sekarang pivot value berada pada 

posisi yang benar, untuk lebih jelas dapat dilihat pada gambar di 

bawah:  

 

 

Hasil dari pembagian list menjadi dua sublist, menyebabkan 

sublist di sebelah kiri pivot value memiliki elemen lebih kecil dari 

pivot value sedangkan sublist di sebelah kanan pivot value 

memiliki nilai lebih besar dari pivot value.  

Selanjutnya pada setiap sublist diterapkan quicksort yang sama 

secara rekursif. Implementasi algoritma quicksort dapat dilihat 

pada gamabr berikut:  

  

68 

 

69 

BAB 11  TREE DAN ALGORITMANYA 

 

 

 

A. Definisi Tree 

Sebuah Tree terdiri atas sekelompok node dan edge yang 

menghubungkan sepasang node. Tree mempunyai sifat-sifat 

sebagai berikut: 

- Salah satu node dalam tree berfungsi sebagai root. 

- Setiap node n,  kecuali node root, dihubungkan oleh edge dari 

node p yang lain dimana node p yaitu  parent dari node n, 

dengan kata lain setiap node kecuali root pasti punya parent. 

- Terdapat PATH yang bersifat unik dari root menuju ke setiap 

node. 

- Jika setiap node dalam tree memiliki maksimum 2 children 

(node), maka tree tersebut disebut sebagai sebuah binary tree.  

 

 

  

70 

B. Implementasi Binary Tree dengan menggunakan Class 

Contoh struktur data binary tree 

 

 

Dekalrasi kelas Tree: 

class BinaryTree: 

# inisialisasi Root node 

def __init__(self,rootObj): 

        self.key = rootObj 

        self.leftChild = None  # belum ada children 

        self.rightChild = None 

  

def insertLeft(self,newNode): 

    if self.leftChild == None: 

        self.leftChild = BinaryTree(newNode) 

    else: 

        t = BinaryTree(newNode) 

        t.leftChild = self.leftChild 

        self.leftChild = t 

  

def insertRight(self,newNode): 

    if self.rightChild == None: 

        self.rightChild = BinaryTree(newNode) 

    else: 

        t = BinaryTree(newNode) 

        t.rightChild = self.rightChild 

        self.rightChild = t 

71 

# membaca children jalur kanan 

def getRightChild(self): 

    return self.rightChild 

# membaca children dari jalur kiri 

def getLeftChild(self): 

    return self.leftChild 

# memberi label Root 

def setRootVal(self,obj): 

    self.key = obj 

# membaca label Root 

def getRootVal(self): 

    return self.key 

 

C. Tree Traversal 

Cara menelusuri setiap node di dalam Tree 

Preorder: 

Penelusuran node berawal dari root, kemudian berlanjut ke 

turunan dari sebelah kiri, jika jalur kiri sudah tidak ada anak lagi, 

diteruskan ke jalur turunan sebelah kanan, terus sampai akhir node. 

Atau pertama menuju ke node root kemudian secara recursive 

melakukan preorder pada subtree sebelah kiri, dan diikuti dengan 

traversal preorder secara recursive ke subtree sebelah kanan.  

Implementasi kode: 

def preorder(tree): 

    if tree: 

        print(tree.getRootVal()) 

        preorder(tree.getLeftChild()) 

        preorder(tree.getRightChild()) 

 

 

 

 

72 

Inorder: 

Melakukan traversal inorder secara recursive pada subtree 

sebelah kiri, menuju ke node root, dan yang terakhir melakukan 

traversal inorder secara recursive pada subtree yang berada pada 

sebelah kanan. 

Implementasi Kode: 

def inorder(tree): 

  if tree != None: 

      inorder(tree.getLeftChild()) 

      print(tree.getRootVal()) 

      inorder(tree.getRightChild()) 

 

Postorder: 

Melakukan traversal postorder secara recursive pada subtree 

bagian kiri dan kanan diikuti dengan berkunjung ke node root. 

def postorder(tree): 

    if tree != None: 

        postorder(tree.getLeftChild()) 

        postorder(tree.getRightChild()) 

        print(tree.getRootVal()) 

  

D. Istilah dalam Tree 

Node yaitu  serupa dengan simpul, node merupakan kerangka 

dasar dari sebuah tree (pohon), terkadang disebut sebagai "key". 

Sebuah node dapat berisi informasi tambahan (atau payload), 

meskipun informasi dalam node ini tidak wajib tetapi sangat 

penting dalam implementasi struktur data tree. 

Edge yaitu  garis penghubung antara dua buah node yang 

menunjukkan adanya hubungan (relasi) diantara kedua node. Setiap 

73 

node (kecuali node Root) terhubung dengan satu penguhubung 

yang menuju ke dalam node dan beberapa penghubung yang 

mengarah keluar dari pada node.  

Root yaitu  satu-satunya node dalam tree yang tidak memiliki 

garis penghubung (edge) yang mengarah ke dalam Root atau 

disebut dengan parent, edge yang menghubungkan Root semua 

mengarah ke luar dari node. (cikal-bakal) 

Path yaitu  jalur yang menghubungkan antara satu node dengan 

node yang lain, dapat terdiri dari beberapa node dan edge yang 

berkesinambungan. 

Children yaitu  Node yang terhubung dengan edge yang mengarah 

ke dalam node disebut children (selalu memiliki parent) 

Parent yaitu  Node yang terhubung dengan edge yang mengarah 

keluar (memiliki anak). 

Sibling yaitu  Node-node yang memiliki parent yang sama. 

Subtree yaitu  sekelompok node beserta turunannya (anak-

anaknya). 

Leaf node yaitu  sebuah node yang tidak memiliki children (anak) 

 

 

 

 

 

 

74 

Level: 

 

 

 

Felis berada pada tree level 5 

Height: 

 

 

Sebuah tree dengan height = 2 

75