0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan34 halaman

WI1102 06 Python Array

Dokumen ini membahas tentang array dan pemrosesannya dalam Python, termasuk definisi, kegunaan, dan cara mendeklarasikan serta mengakses elemen array. Terdapat contoh program untuk menghasilkan kombinasi pasangan nama dan pemrosesan sekuensial pada array. Selain itu, dokumen ini juga mencakup latihan untuk mengisi dan memanipulasi array dengan berbagai operasi.

Diunggah oleh

l3pzzz
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan34 halaman

WI1102 06 Python Array

Dokumen ini membahas tentang array dan pemrosesannya dalam Python, termasuk definisi, kegunaan, dan cara mendeklarasikan serta mengakses elemen array. Terdapat contoh program untuk menghasilkan kombinasi pasangan nama dan pemrosesan sekuensial pada array. Selain itu, dokumen ini juga mencakup latihan untuk mengisi dan memanipulasi array dengan berbagai operasi.

Diunggah oleh

l3pzzz
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

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

ii+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:
i0
i traversal [0..9]
loop input(TabInt[i])
false
i < 10

true

input (TabInt[i])

ii+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:
i0
... { 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

ii+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:


i0
... { 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.
ii+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 }
i1
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] ii+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 }


i0 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 }
ii+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

Anda mungkin juga menyukai