Array dan Pemrosesannya -
Python
Tim Penyusun Materi WI1102 Berpikir Komputasional
Institut Teknologi Bandung © 2024
Tujuan
• Mahasiswa mampu:
• Menjelaskan definisi dan kegunaan array
• Menggunakan menggunakan notasi pendefinisian dan pengacuan array
dengan benar
• Melakukan pemrosesan sekuensial pada array
16/10/2024 WI1102/Berpikir Komputasional 2
Kombinasi Pasangan Nama – 3 Nama
• Tuliskan program yang menerima 3 nama, lalu menampilkan
semua kombinasi pasangan nama.
• Contoh keluaran: # KAMUS
# nama1, nama2, nama3 : string
Ali
Budi # ALGORITMA
Caca nama1 = input()
Ali - Budi nama2 = input()
Ali - Caca nama3 = input()
Budi - Caca
print(nama1, " – ", nama2)
print(nama2, " - ", nama3)
print(nama3, " – ", nama1)
16/10/2024 WI1102/Berpikir Komputasional 3
Kombinasi Pasangan Nama – 10 Nama
• Tuliskan program yang menerima 10 nama, lalu menampilkan
semua kombinasi pasangan nama.
• Contoh keluaran: # KAMUS
# nama1,nama2,nama3,nama4,nama5 : string
# nama6,nama7,nama8,nama9,nama10 : string
Ali - Budi
Ali - Caca # ALGORITMA
nama1 = input()
… nama2 = input()
Ina - Jaja nama3 = input()
# … Lanjutkan sendiri
nama10 = input()
print(nama1, " – ", nama2)
print(nama2, " – ", nama3)
print(nama3, " – ", nama4)
# … Lanjutkan sendiri
print(nama10, " – ", nama1)
16/10/2024 WI1102/Berpikir Komputasional 4
Bagaimana kalau…
Anda diminta menampilkan semua kombinasi pasangan nama
yang mungkin dari …
100 nama ???
1000 nama ???
10000 nama ???
1000000 nama ???
….
16/10/2024 WI1102/Berpikir Komputasional 5
Array / Tabel / Vektor / Larik
NMin NMin+1 NMin+2 NMin+3 NMax-2 NMax-1 NMax
Array Elemen Array, dengan
Indeks Array tipe homogen untuk
setiap elemen
• Array mendefinisikan sekumpulan (satu atau lebih) elemen bertype sama
• Setiap elemen tersusun secara terurut (kontigu) dan dapat diakses dengan
menggunakan indeks
• Dalam Python, ada beberapa cara mendeklarasikan array dalam kuliah
ini, array didefinisikan menggunakan collection type list
16/10/2024 WI1102/Berpikir Komputasional 6
Deklarasi Array dalam Python (1)
Cara-1:
• Deklarasi variabel array sekaligus mendefinisikan isi array:
<nama-var> = [<val0>, <val1>, <val2>, … ,< valn-1>]
• Deklarasi array dengan nama <nama-var> dengan ukuran n dengan
elemen <val0>, <val1>, <val2>, … ,< valn-1>
• Type elemen tergantung pada nilai elemen yang diberikan
• Elemen terurut berdasarkan indeks dari 0 s.d. n-1.
16/10/2024 WI1102/Berpikir Komputasional 7
Deklarasi Array dalam Python (2)
• Contoh-1:
TabInt = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
9 8 7 6 5 4 3 2 1 0
0 1 2 3 4 5 6 7 8 9
Array bernama TabInt dengan setiap elemen bertype integer,
dengan ukuran 10 elemen, dengan alamat setiap elemen array
(indeks) adalah dari indeks ke-0 s.d. 9
16/10/2024 WI1102/Berpikir Komputasional 8
Deklarasi Array dalam Python (3)
• Jika belum diketahui nilai apa yang akan diberikan pada array,
maka dapat diberikan suatu nilai default seragam terlebih dahulu
• Contoh: Array berelemen integer: nilai elemen default = 0
• Cara-2: Mendeklarasikan array dan mengisi dengan nilai default:
<nama-var> = [<default-val> for i in range (<n>)]
• Deklarasi array dengan nama <nama-var> dengan ukuran <n> dengan
nilai setiap elemen <default-val>. i adalah variabel untuk loop pengisian
nilai default ke tiap elemen array.
• Type elemen tergantung pada type nilai <default-val>
• Elemen terurut berdasarkan indeks dari 0 s.d. n-1.
16/10/2024 WI1102/Berpikir Komputasional 9
Deklarasi Array dalam Python (4)
• Contoh-2: Array of integer
TabInt = [0 for i in range(10)]
0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9
Array bernama TabInt dengan setiap elemen bertype integer dan
dengan nilai default elemen 0, dengan ukuran 10 elemen dan
setiap elemen array diakses dengan menggunakan indeks ke-0
s.d. 9
16/10/2024 WI1102/Berpikir Komputasional 10
Deklarasi Array dalam Python (5)
• Contoh-3: Array of character
TabChar = [‘*’ for i in range(10)]
* * * * * * * * * *
0 1 2 3 4 5 6 7 8 9
Array bernama TabChar dengan setiap elemen bertype char dan
dengan nilai default elemen *, dengan ukuran 10 elemen dan
setiap elemen array diakses dengan menggunakan indeks ke-0
s.d. 9
16/10/2024 WI1102/Berpikir Komputasional 11
Mengakses Elemen Array dalam Python
• Cara akses sebuah elemen: <namatabel>[<indeks>]
• Contoh: TabInt = [1,2,4,-1,100,2,0,-1,3,9]
1 2 4 -1 100 2 0 -1 3 9
0 1 2 3 4 5 6 7 8 9
print(TabInt[5]) # akan tercetak: 2
x = TabInt[1] + TabInt[6] # x = 2 + 0 = 2
TabInt[9] = 9 # Elemen array indeks 9 menjadi 9
TabInt[10] ??? # Berada di luar range, tidak terdefinisi!!
• Perhatian: Tidak boleh mengakses elemen dengan indeks berada di
luar definisi.
• Pada contoh di atas, misalnya: TabInt[10], TabInt[-1], dll
16/10/2024 WI1102/Berpikir Komputasional 12
Mulai
Pemrosesan Array
Mengisi Array
Pemrosesan
Array
Output Hasil
Pemrosesan
Array
Selesai
16/10/2024 WI1102/Berpikir Komputasional 13
Pemrosesan Sekuensial pada Array (1)
• Pemrosesan sekuensial pada array adalah memroses setiap
elemen array mulai dari elemen pada indeks terkecil s.d. indeks
terbesar dengan menggunakan pengulangan (loop)
• Setiap elemen array diakses secara langsung dengan indeks
• First element adalah elemen array dengan indeks terkecil
• Next element dicapai melalui suksesor indeks
• Kondisi berhenti dicapai jika indeks yang diproses adalah indeks terbesar
yang terdefinisi sebelumnya
• Array tidak kosong, artinya minimum memiliki 1 elemen
16/10/2024 WI1102/Berpikir Komputasional 14
Pemrosesan Sekuensial pada Array (2)
• Contoh-contoh persoalan pemrosesan sekuensial pada array:
• Mengisi array secara sekuensial
• Mencetak elemen array
• Menghitung nilai rata-rata elemen array
• Mengalikan elemen array dengan suatu nilai
• Mencari nilai terbesar/terkecil pada array
• Mencari indeks di mana suatu nilai ditemukan pertama kali di array
• …
16/10/2024 WI1102/Berpikir Komputasional 15
Flowchart + Pseudocode Umum
Pemrosesan Sekuensial Array
Flowchart:
Pseudocode:
i first-index
i traversal [first-index..last-index]
loop { Proses elemen array ke-i }
false
i ≤ last-index ...
true
Proses Elemen
Array ke-i
ii+1
16/10/2024 WI1102/Berpikir Komputasional 16
Mengisi Array (1) # Program IsiArray
# Mengisi array dengan nilai dari
# pengguna
• Buatlah program yang
# KAMUS
mendeklarasikan sebuah array of # TabInt : array [0..9] of int
integer (array dengan elemen # i : int
bertype integer) sebesar 10 buah dan # ALGORITMA
mengisinya dengan nilai yang dibaca # Deklarasi array TabInt dan
dari keyboard. # mengisinya dengan nilai default 0
TabInt = [0 for i in range(10)]
# Mengisi array dari pembacaan nilai
# dari keyboard
for i in range(0,10):
• Hati-hati untuk tidak mengakses TabInt[i] = int(input())
elemen di luar batas indeks array!
16/10/2024 WI1102/Berpikir Komputasional 17
Mengisi Array (2): Flowchart + Pseudocode
Mulai
Flowchart:
Pseudocode:
i0
i traversal [0..9]
loop input(TabInt[i])
false
i < 10
true
input (TabInt[i])
ii+1
Selesai
16/10/2024 WI1102/Berpikir Komputasional 18
# Program TulisArray
# Mengisi array dengan nilai dari
Menuliskan Isi Array (1) #
#
pengguna dan menuliskan isinya ke
layar
# KAMUS
• Buatlah program yang: # TabInt : array [0..9] of int
# i : int
• mendeklarasikan sebuah array of
integer (array dengan elemen bertype # ALGORITMA
integer) sebesar 10 buah # Deklarasi array TabInt dan
# mengisinya dengan nilai default 0
• mengisinya dengan nilai yang dibaca TabInt = [0 for i in range(10)]
dari keyboard
• menuliskan kembali apa yang # Mengisi array dari pembacaan nilai
# dari keyboard
disimpan dalam array ke layar for i in range(0,10):
TabInt[i] = int(input())
• Hati-hati untuk tidak mengakses # Mencetak isi array
elemen di luar batas indeks array! for i in range(0,10):
print(TabInt[i])
16/10/2024 WI1102/Berpikir Komputasional 19
Menuliskan Isi Array (2)
Flowchart:
Pseudocode:
i0
... { Bagian mengisi array }
i traversal [0..9]
loop output(TabInt[i])
false
i < 10
true
output (TabInt[i]) Bagian mengisi array buat sendiri sebagai latihan
ii+1
16/10/2024 WI1102/Berpikir Komputasional 20
# Program AverageArray
# Menghitung nilai rata-rata elemen array
Menghitung Rata-Rata (1) # KAMUS
# TabInt : array [0..9] of int
# i : int
# sum : int
• Buatlah program untuk menghitung
rata-rata nilai elemen suatu array. # ALGORITMA
# Deklarasi array TabInt dan mengisinya dengan
# nilai default 0
TabInt = [0 for i in range(10)]
• Tahap:
# Mengisi array dari pembacaan nilai dari keyboard
• Deklarasikan array, contoh array of for i in range(0,10):
integer ukuran 10 TabInt[i] = int(input())
• Isi elemen array
# Menjumlahkan elemen array
• Jumlahkan semua elemen array sum = 0
• Bagi hasil penjumlahan elemen array for i in range(0,10):
sum = sum + TabInt[i]
dengan banyaknya elemen array dan
tampilkan hasilnya # Menghitung nilai rata-rata dan menampilkannya
rata = sum/10
print ("Nilai rata-rata = " + str(rata))
16/10/2024 WI1102/Berpikir Komputasional 21
Menghitung Rata-Rata (2)
Flowchart – Bagian penjumlahan elemen:
sum 0 Pseudocode – Bagian penjumlahan elemen:
i0
... { Bagian mengisi array }
sum 0
loop i traversal [0..9]
false
i < 10 sum sum + TabInt[i]
...
true
sum sum + TabInt[i]
Bagian yang lain silakan dibuat sebagai latihan.
ii+1
16/10/2024 WI1102/Berpikir Komputasional 22
Latihan
• Untuk setiap soal latihan, buatlah flowchart/pseudocode/kode
program dalam Python
16/10/2024 WI1102/Berpikir Komputasional 23
Latihan-1
• Buatlah sebuah program yang berisi Contoh:
sebuah array dengan elemen integer
berukuran 20, misalnya T
• Anggaplah sudah ada bagian T = [4, 1, 3, 4, 5, 6, 8, 9, 12, 30, -1, 0, 4,
program yang digunakan untuk -1, 3, 10, 14, 6, 7, 0]
mengisi array T
• Lihat slide sebelumnya untuk pengisian
array dari keyboard X=3
• Program menerima masukan
sebuah integer, misalnya X Setelah elemen T dikalikan X
• Selanjutnya, program mengalikan T = [12, 3, 9, 12, 15, 18, 24, 27, 36, 90,
semua elemen array T dengan X dan
mencetak semua elemen T yang -3, 0, 12, -3, 9, 30, 42, 18, 21, 0]
baru ke layar.
16/10/2024 WI1102/Berpikir Komputasional 24
Latihan-2
• Nilai mahasiswa untuk suatu mahasiswa dinyatakan dalam bentuk
huruf, yaitu A, B, C, D, dan E.
• Di ITB ada nilai AB dan BC, tapi untuk menyederhanakan persoalan kedua
nilai tersebut diabaikan
• Sebuah program menerima data nilai 50 mahasiswa di sebuah
kelas dalam bentuk indeks huruf seperti di atas dan disimpan
dalam sebuah array of character.
• Tentukanlah berapa banyak mahasiswa yang lulus dan berapa
yang tidak lulus. Mahasiswa dinyatakan lulus jika mendapatkan
nilai A, B, atau C. Selebihnya, tidak lulus.
16/10/2024 WI1102/Berpikir Komputasional 25
Pencarian Nilai Ekstrem (1)
(Minimum atau Maksimum)
• Mencari nilai terbesar atau terkecil dari elemen suatu array
• Diketahui:
• Sebuah array T dengan ukuran N elemen
• Nilai X (bertype sama dengan elemen T)
• Buatlah program untuk menuliskan ke layar nilai terbesar dari
elemen T
• Asumsi: T tidak kosong (minimum 1 elemen, N > 0)
• Contoh:
• N = 10; T berisi: [9,12,30,-1,0,4,-1,3,30,14] maka nilai terbesar = 30
• N = 8; T berisi: [1, 3, 5, 8, -12, 90, 3, 5] maka nilai terbesar = 90
16/10/2024 WI1102/Berpikir Komputasional 26
Flowchart:
{ Inisialisasi, max diisi
elemen ke-0 }
Pencarian Nilai
max T[0]
Ekstrem (2)
{ Loop dari indeks ke-1 }
i1
Pseudocode:
loop ...
false { inisialisasi max dgn elemen ke-0 }
i<N
max T[0]
true i traversal [1..N-1]
{ ganti kalau ketemu nilai T[i]>max }
true false if (T[i]>max) then
T[i] > max max T[i]
...
{ ganti nilai max } { Next elmt array }
max T[i] ii+1
16/10/2024 WI1102/Berpikir Komputasional •27
# Program MaxArray
# Mencari nilai terbesar pada array
# KAMUS
# N : int
# T : array [0..N-1] of int
# i : int
# max : int
# ALGORITMA
N
#
= 10 # assign N dengan ukuran T
Asumsi: pengisian array sudah dibuat Pencarian Nilai Ekstrem (3)
Program Python
# Tetap harus dibuat untuk mengetes program
# Mencari nilai maksimum
max = T[0] # init max dgn elemen pertama
# Pencarian dimulai dari elemen ke-2
for i in range(1,N):
# jika ada elemen > max, ganti nilai max
if (T[i] > max):
max = T[i]
# Cetak nilai terbesar
print ("Nilai terbesar = " + str(max))
16/10/2024 WI1102/Berpikir Komputasional •28
Latihan-3
• Berdasarkan contoh soal sebelumnya, buatlah program untuk
mencari nilai terkecil dari elemen T.
16/10/2024 WI1102/Berpikir Komputasional 29
Searching (1)
Mencari Indeks Pertama Kemunculan Nilai
• Searching adalah proses yang penting dalam pemrosesan tabel karena
sering dilakukan terhadap sekumpulan data yang disimpan dalam tabel
• Diketahui:
• Sebuah array T dengan ukuran N elemen
• Nilai X (bertype sama dengan elemen T)
• Buatlah program untuk menuliskan ke layar indeks pertama di T di
mana X ditemukan
• Asumsikan: Array tidak kosong (minimum 1 elemen, N > 0)
• Contoh:
• N = 10; T berisi: [9,12,30,-1,0,4,-1,3,30,14]; X = -1 maka X ditemukan pertama
kali di indeks 3
• N = 8; T berisi: [1, 3, 5, 8, -12, 90, 3, 5]; X = 0 maka X tidak ditemukan di T
16/10/2024 WI1102/Berpikir Komputasional 30
Searching (2)
{ Inisialisasi }
found false
Flowchart: { Elemen pertama array }
i0 Pseudocode:
loop ...
false (i<N) and
(found=false) i 0
found false
true while (i<N) and (found=false) do
if (T[i] = X) then
false true found true
T[i] = X else { T[i] ≠ X }
i i + 1
{ i>=N or found=true }
{ Next elmt array } { X ditemukan }
ii+1 found true ...
16/10/2024 WI1102/Berpikir Komputasional 31
# Program SearchArray
# Mencari indeks di mana X ditemukan pertama kali di T
# KAMUS
# N : int; ukuran T
# T : array [0..N-1] of int
# i, X : int
# found : bool; menentukan X sdh ditemukan/belum
# ALGORITMA
# Asumsi: input array sudah dibuat; N terdefinisi
# Membaca nilai yang dicari, yaitu X
X = int(input())
# Pencarian dimulai dari elemen ke-2 Searching (3)
Program Python
i = 0
found = False # found = False; X belum ditemukan
while (i < N and found == False):
if (T[i] == X):
found = True # found = True; X sudah ditemukan
else:
i = i + 1 # hanya increment jika X belum
ditemukan
# i = N atau found = True
# Cetak Hasil
if (found == True): # X ditemukan di T
print (str(X) + " ditemukan di indeks ke-" + str(i))
else: # found = False; X tidak ditemukan di T
print (str(X) + " tidak ditemukan")
16/10/2024 WI1102/Berpikir Komputasional 32
Latihan-4
• Berdasarkan contoh sebelumnya, buatlah program untuk mencari
indeks terakhir di mana X ditemukan di T.
• Petunjuk: proses pencarian dilakukan “mundur”, yaitu dari indeks
elemen terakhir ke elemen pertama.
• Modifikasi apa yang harus dilakukan terhadap algoritma sebelumnya?
16/10/2024 WI1102/Berpikir Komputasional 33
Latihan-5
• Sebuah vektor v = (v0, v1, v2, v3, v4) direpresentasikan sebagai
suatu array of integer dengan 5 buah elemen.
• Diketahui dua buah vektor, masing-masing terdiri atas 5 elemen,
misalnya V dan U.
• Tuliskan hasil penjumlahan kedua vektor.
• Penjumlahan dua vektor menghasilkan vektor lain, W, dengan
elemen ke-i adalah: Wi = Vi + Ui
W = U + V = (v0, v1, v2, v3, v4) + (u0, u1, u2, u3, u4)
W = (v0+u0, v1+u1, v2+u2, v3+u3, v4+u4)
16/10/2024 WI1102/Berpikir Komputasional 34