FAKULTAS TEKNIK SIPIL DAN LINGKUNGAN INSTITUT TEKNOLOGI BANDUNG
Struktur Dasar Python
Array
Tim Penyusun Materi WI1102 Berpikir Komputasional
Institut Teknologi Bandung © 2024
Ediansjah Zulkifli
SI-5102 Komputasi Teknik Sipil
Struktur Dasar Python
Contoh kasus, kombinasi 3 nama
❑ Tuliskan program yang menerima 3 nama, lalu menampilkan semua
kombinasi pasangan nama.
# KAMUS
Contoh keluaran:
# nama1, nama2, nama3 : string
Ali
# ALGORITMA
Budi
nama1 = input()
Caca
nama2 = input()
Ali - Budi
nama3 = input()
Ali - Caca
Budi - Caca
print(nama1, " – ", nama2)
print(nama2, " - ", nama3)
print(nama3, " – ", nama1)
10/10/2024 WI1102/Berpikir Komputasional 2
Struktur Dasar Python
Contoh kasus, kombinasi 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()
nama3 = input()
Ina - Jaja # … Lanjutkan sendiri
nama10 = input()
print(nama1, " – ", nama2)
print(nama2, " – ", nama3)
print(nama3, " – ", nama4)
# … Lanjutkan sendiri
print(nama10, " – ", nama1)
10/10/2024 WI1102/Berpikir Komputasional 3
Struktur Dasar Python
Bagaimana kalau…
❑ Anda diminta menampilkan semua kombinasi pasangan nama yang
mungkin dari …
100 nama ???
1000 nama ???
10000 nama ???
1000000 nama ???
….
10/10/2024 WI1102/Berpikir Komputasional 4
Struktur Dasar Python
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
10.10.2024 SI-5102 KOMPUTASI TEKNIK SIPIL - EZ SLIDE 5
Struktur Dasar Python
Beberapa contoh kasus
10.10.2024 SI-5102 KOMPUTASI TEKNIK SIPIL - EZ SLIDE 6
Struktur Dasar Python
Mengisi Matriks # Program IsiMatriks;
# Isi matriks dan menulis ke layar
# KAMUS
# M : matriks of integer
# NBrs, NKol : int (ukuran brs & kol)
# i, j : int (indeks)
# ALGORITMA
# deklarasi matriks
NBrs = 5; NKol = 5;
M = [[0 for j in range(NKol)] for i in range(NBrs)]
Python # Mengisi matriks ukuran NBrsxNKol
for i in range (NBrs):
for j in range (NKol):
M[i][j] = i * j
# Menuliskan isi matriks ke layar
for i in range (NBrs):
for j in range (NKol):
print(str(M[i][j])+" ", end='')
print()
10.10.2024 SI-5102 KOMPUTASI TEKNIK SIPIL - EZ SLIDE 7
Struktur Dasar Python
Pencarian Nilai Ekstrem; (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
10.10.2024 SI-5102 KOMPUTASI TEKNIK SIPIL - EZ SLIDE 8
Struktur Dasar Python
Flowchart:
{ Inisialisasi, max diisi
elemen ke-0 }
max T[0]
Pencarian Nilai Ekstrem
{ 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
10.10.2024 SI-5102 KOMPUTASI TEKNIK SIPIL - EZ SLIDE 9
Struktur Dasar Python
Nilai Ekstrem
# 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
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))
10.10.2024 SI-5102 KOMPUTASI TEKNIK SIPIL - EZ SLIDE 10
Struktur Dasar Python
Searching; 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
10.10.2024 SI-5102 KOMPUTASI TEKNIK SIPIL - EZ SLIDE 11
Struktur Dasar Python
{ Inisialisasi }
Nilai ekstrim
found false
{ Elemen pertama array }
i0
Pseudocode:
loop
...
false (i<N) and
(found=false) i 0
found false
true
Flowchart:
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 ...
10.10.2024 SI-5102 KOMPUTASI TEKNIK SIPIL - EZ SLIDE 12
Struktur Dasar Python
# Program SearchArray
Searching #
#
#
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
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")
10.10.2024 SI-5102 KOMPUTASI TEKNIK SIPIL - EZ SLIDE 13
Struktur Dasar Python
print("Masukkan Jumlah Data:")
Sort & Rata-rata
iNumber = int(input())
print("Masukkan Nilai-nilai Array Sesuai Jumlah Data:")
ArrInt = [0 for i in range(iNumber)]
# Mengisi array dari pembacaan nintilai
# dari keyboard
for i in range(0,iNumber):
ArrInt[i] = int(input())
Python sum = 0.0
# Melakukan Sorting (Ascending)
for i in range(0,iNumber):
sum = sum + ArrInt[i]
# Program Sort for j in range(i,iNumber):
# Mengisi array dengan nilai dari pengguna if (ArrInt[i] >= ArrInt[j]):
# Melakukan sort iTemp = ArrInt[i]
ArrInt[i] = ArrInt[j]
# KAMUS ArrInt[j] = iTemp
# iNumber : int --> Jumlah Data
# ArrInt : array [0..9] of int rataRata = sum / iNumber
# iTemp : int print(" ")
print("Hasil sort (ascending):")
# ALGORITMA for i in range(0,iNumber):
# Deklarasi array ArrInt dan print(ArrInt[i])
# mengisinya dengan nilai default 0
10.10.2024 SI-5102 KOMPUTASI TEKNIK SIPIL - EZ SLIDE 14