Anda di halaman 1dari 22

DASAR PEMROGRAMAN

Array

Nisa’ul Hafidhoh
nisa@dsn.dinus.ac.id
Tujuan Pembelajaran

• Mahasiswa mampu menjelaskan array dan


kegunaannya.
• Mahasiswa mampu membuat notasi
algoritma yang memanfaatkan array.
• Mahasiswa mapu menerapkan array pada
program python
Tipe Skalar
• Tipe skalar membuat setiap variabel hanya
memiliki satu nilai.
• Contoh program dengan objek tipe skalar
Program nilai mata kuliah
Kamus
nilaiMhs1,nilaiMhs2,nilaiMhs3,nilaiMhs4,nilaiMhs5 : float
rata2 : float
Algoritma
input(nilaiMhs1,nilaiMhs2,nilaiMhs3,nilaiMhs4,nilaiMhs5)
rata2  (nilaiMhs1+nilaiMhs2+nilaiMhs3+nilaiMhs4+nilaiMhs5)/5
output(rata2)
Apa kelemahan program diatas?
Cuma 5 mhs tidak masalah, kalau 1000?
Diketik semua? 1 variabel 1 nilai mhs?
Solusi: Array

• 1 variabel 1 nilai mahasiswa:


Mhs1 Mhs2 Mhs3 Mhs4 Mhs5

• Ilustrasi Array seperti tabel:


1 variabel menyimpan 5 nilai mahasiswa
Atau, 1 variabel array memiliki 5 elemen nilai
Mhs

• Identik dengan simbol [ ]


Array

• Array merupakan tipe non-skalar yang


mengacu pada sebuah/sekumpulan
elemen tipe dan diakses melalui indeks.
• Elemen yang ada didalam array harus
mempunyai tipe yang sama.
• Disebut juga tabel, vektor, atau larik

34 82 78 69 43
Visualisasi Array
Indeks Array
• Elemen suatu array dapat di akses melalui index
yang telah terdefinisi: array[index]
• Elemen di awali dari 0: array[0]adalah elemen
pertama (beberapa bahasa pemrograman yang lain
mungkin memulai indeks dari 1)
Array di python

• Di python, cara membangkitkan array adalah :


– Deklarasi: arr = [tipe]*5
– Deklarasi & Inisialisasi langsung: arr = [80,100,90,90,70]
• Akses setiap nilai:
– print(arr[0]) atau print(arr[1])

• Nb. Pada dasarnya python tidak menyediakan tipe


array, tetapi kita menggunakan list untuk seakan-
akan membuat suatu array. List?  di pertemuan
berikutnya
Deklarasi Array

tipe_data nama_var_array [ukuran_indeks]

• tipe_data : menyatakan jenis tipe data


elemen (int, char, float, dll)
• nama_var_array : menyatakan nama
variabel yang dipakai.
• ukuran : menunjukkan jumlah indeks
maksimal elemen array.
• Contoh : int nilai[10]
Deklarasi Array di python
• <nama variabel> = [<tipe primitif>]*<max>
• nilai = [int]*10
• Variabel nilai tersebut akan membuat array yang memiliki elemen bertipe
int sebanyak 10 elemen, dimulai dari indeks 0 sampai 9
• Cara mengisi setiap elemen nilai array:
– nilai[0] = 3
– nilai[2] = 10
– ....
– nilai[9] = 7
– Bagaimana jika mengisinya dengan input dari user:
• nilai[0] = input()
– Bagaimana jika ingin mengoutputkan setiap nilai elemen array?
• print(nilai [0]) Apakah input/ouput harus di
ulang-ulang sampai 9 kali?
Solusi: pengulangan!
Pengulangan untuk dimasukkan
ke dalam elemen array
For-loop version While-loop version
a = [int]*10 a = [int]*10
#input i=0
for i in range(len(a)): #input
a[i] = input(a) while i<len(a):
#output a[i] = input(a)
for i in range(len(a)): i+=1
print(a[i]) #output
i=0
while i<len(a):
print(a[i])
i+=1
Notasi Algoritma & Kode Python
Kasus Nama Hari

Program NamaHari # Program NamaHari


Kamus # Kamus
arrNamaHari: array [1...7] of string arrNamaHari = [string]*7
i: integer i = 0
i0 # Algoritma
Algoritma # Inputkan hari
{inputkan hari} while i<len(arrNamaHari):
while i<len(arrNamaHari) do arrNamaHari[i]=input()
input(arrNamaHarii ) i = i+1
ii+1 # Outputkan hari
{outputkan hari} while i<len(arrNamaHari):
while i<len(arrNamaHari) do print(arrNamaHari[i])
output(arrNamaHarii ) i = i+1
ii+1
Pengaksesan

• Pengaksesan elemen array dapat dilakukan


berurutan atau acak berdasarkan indeks
tertentu secara langsung.
nama_var_array[indeks]

• Contoh : nilai[3]
0 1 2 3 4 5 Indeks
8 7 5 6 4 3 Data
1d2 1d4 1d6 1d8 1da 2dc Alamat
Skema pemrosesan sekuensial
pada Array
• Merupakan pemrosesan sekuensial tanpa mark
• Dimungkinkan adanya akses langsung jika indeks
terdefinisi
– First-Elmt adalah elemen array dengan indeks terkecil
– Next-Elmt dicapai melalui suksesor indeks (indeks
berikutnya)
• Model akses sekuensial tanpa mark
– kondisi berhenti adalah jika indeks sudah mencapai
harga indeks yang terbesar yang telah terdefinisi
• Array tidak mungkin “kosong”
– jika kita mendefinisikan tabel, maka minimal
mengandung sebuah elemen
Skema umum
KAMUS UMUM PEMROSESAN ARRAY
constant NMin: integer 1 {batas bawah}
constant NMax: integer 100 {batas atas}
type ElType : ... {suatu type terdefinisi, eg integer/float}
i : integer [NMin..NMax]
T : array [NMin..NMax] of ElType {tabel dengan elemen bertype ElType}
prosedur Inisialisasi {persiapan yang harus dilakukan sebelum
pemrosesan}
prosedur Proses (input X : ElType) {proses thd Current-Elmt tabel T}
prosedur Terminasi { "penutupan" setelah pemrosesan selesai}
SKEMA Pemrosesan Array T untuk indeks dari NMin sampai Nmax
{transversal Array T untuk indeks yang bernilai NMin sampai NMax}
Inisialisasi
i transversal [NMin...NMax]
Proses (Ti) Terminasi
Pemrosesan sekuensial pada Array
Kasus mengisi dan mengoutputkan elemen array dengan jumlah
elemen yang diketahui
Program InputOutputArray
Kamus
constant NMin: integer 1 {batas bawah}
constant NMax: integer 100 {batas atas}
i : integer [NMin..NMax]
T : array [NMin..NMax] of integer
N: integer
Algoritma
{inisialisasi}
repeat
input(N)
until (NMin <= N <= NMax)
i tranversal [NMin...NMax]
input (Ti)
i tranversal [NMin...NMax]
output (Ti)
Realisasi Python
i = 0
NMin = 0
NMax = 100
T = [int]*NMax
N = 0
while True:
N = int(input())
if N >= NMin and N <= NMax:
break
for i in range(NMin,N):
T[i] = int(input())
for i in range(NMin,N):
print(T[i])
Pemrosesan sekuensial pada Array

Kasus mengisi dan mengoutputkan elemen array dengan jumlah


elemen tidak diketahui
Program InputOutputArray
Kamus
constant NMin: integer 1 {batas bawah}
constant NMax: integer 100 {batas atas}
i : integer [NMin..NMax]
T : array [NMin..NMax] of integer
x: integer {nilai yang akan di baca sebagai elemen array}
Algoritma
i  Nmin {inisialisasi}
input(x) {first element}
while x != 9999 and i<NMax do
T[i]  x
ii+1
input(x)
{x = 9999 or i > NMax}
if i>Nmax then
output("array penuh")
i tranversal [Nmin-1...i+1]
output(T[j])
Realisasi Python
NMin = 1
NMax = 10
T = [int]*NMax
x = 0
i = NMin
x = int(input())
while x != 9999 and i<NMax:
T[i] = x
i = i + 1
x = int(input())
if x==9999:
break
if i>NMax:
print("array penuh")
for j in range(NMin-1,i+1):
print(T[j])
Latihan

• Buat array untuk menyimpan nama bulan


dalam satu tahun
# Kamus
bulan = [string]*12
i = 0
# Algoritma
# Inputkan bulan
while i<len(bulan):
bulan[i]=input()
i = i+1
# Outputkan bulan
while i<len(bulan):
print(bulan[i])
i = i+1
Latihan

• Buat array untuk menyimpan jumlah


penjualan barang dalam satu tahun!
Bln 1 2 3 4 5 6 7 8 9 10 11 12
Jml 5 7 12 10 9 3 8 5 15 13 6 11
TERIMA KASIH

Anda mungkin juga menyukai