dasar pemrograman array/larik

33
Dasar Pemrograman ARRAY/LARIK 1

Upload: cynthia-mathis

Post on 03-Jan-2016

97 views

Category:

Documents


0 download

DESCRIPTION

Dasar Pemrograman ARRAY/LARIK. ARRAY (LARIK). 1. Pengertian Array Array adalah struktur data yang menyimpan sekumpulan elemen yang bertipe sama. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Dasar Pemrograman ARRAY/LARIK

1

Dasar Pemrograman

ARRAY/LARIK

Page 2: Dasar Pemrograman ARRAY/LARIK

2

ARRAY (LARIK)1. Pengertian ArrayArray adalah struktur data yang menyimpan sekumpulan elemen yang bertipe sama.

Setiap elemen diakses langsung melalui indeksnya. Indeks tersebut haruslah tipe data yang mempunyai keterurutan, misalnya integer atau karakter.Nama lain array adalah larik, tabel, atau vektor.

Page 3: Dasar Pemrograman ARRAY/LARIK

3

2. Cara Pendefinisian Array

Array adalah struktur data statik, artinya jumlah elemen larik harus sudah diketahui sebelum program dieksekusi.

Mendefinisikan array pada bagian deklarasi adalah :

Mendefinisikan banyaknya elemen array Mendefinisikan tipe elemen array

Cara pendefinisian array pada bagian deklarasi

Dapat dilakukan dengan cara sebagai berikut :

Page 4: Dasar Pemrograman ARRAY/LARIK

4

a. Sebagai Peubah (Variabel)Contoh :Misalkan L adalah nama peubah array yang mempunyai 100 elemen yang bertipe integer, maka dapat dituliskan :{Deklarasi}var

L : array[1..100] of integer;

Page 5: Dasar Pemrograman ARRAY/LARIK

5

b. Sebagai Tipe BaruMisalkan LarikInt didefinisikan

sebagai sebuah tipe baru untuk array yang bertipe integer. Banyak elemen array 100 buah elemen, maka dapat ditulis sebagai berikut :

{Deklarasi}type

LarikInt : array[1..100] of integer;

varP : LarikInt;

Page 6: Dasar Pemrograman ARRAY/LARIK

6

c. Mendefinisikan Ukuran Maksimum Elemen Array Sebagai Sebuah Konstanta

Misalkan LarikInt didefinisikan sebagai nama sebuah tipe baru untuk array yang bertipe integer. Banyak elemen maksimum 100 elemen. P adalah array bertipe integer

{Deklarasi}const Nmaks = 100;type LarikInt : array[1..Nmaks] of

integer;var P : LarikInt;

Page 7: Dasar Pemrograman ARRAY/LARIK

7

3. Cara Mengacu Elemen Array

Elemen Array diacu melaui indeksnya. Nilai Indeks harus terdefinisi.

Contoh cara mengacu elemen array : L[5]

P[k], asalkan k telah terdefinisiContoh menggunakan elemen array :

L[4] :=10;read(P[k]);if HargaBarang[t]<1000 then

writeln(‘Harga Murah’)else

writeln(‘Harga Mahal’);

Page 8: Dasar Pemrograman ARRAY/LARIK

8

4. Pemrosesan Array

Pemrosesan beruntun pada array adalah pemrosesan mulai dari elemen pertama array (yaitu elemen indeks terkecil, berturut-turut elemen berikutnya, sampai elemen terakhir dicapai, yaitu elemen dengan indeks terbesar)

Skema umum algoritma memproses array (disebut

juga skema mengunjungi/traversal array) adalah :

Page 9: Dasar Pemrograman ARRAY/LARIK

9

Algoritma_skema_umum_pemrosesan_array

{ Memproses setiap elemen array secara beruntun, mulai dari indeks terkecil sampai indeks terbesar}

Deklarasiconst Nmaks = 100 {banyaknya elemen array}type LarikInt : array[1..Nmaks] of integervarA : LarikIntk : integer {indeks array}

Page 10: Dasar Pemrograman ARRAY/LARIK

10

DeskripsiInisialisasi {Pemberian nilai awal}k ← 1 {mulai dari elemen pertama}while k ≤ Nmaks do

Pemrosesan terhadap A[k]k ← k + 1 {tinjau elemen

berikutnya}endwhile {akhir pengulangan k > Nmaks}Terminasi {Penulisan hasil}

Page 11: Dasar Pemrograman ARRAY/LARIK

11

Atau dapat juga menggunakan struktur for..do :

DeskripsiInisialisasi {Pemberian nilai awal}for k ←1 to Nmaks do

Pemrosesan terhadap A[k]endforTerminasi {Penulisan hasil}

Page 12: Dasar Pemrograman ARRAY/LARIK

12

4.1. Jumlah Elemen Efektif ArrayBila sebuah array A didefinisikan 100

elemen, mungkin tidak seluruh seratus elemen yang dipakai. Banyaknya elemen array yang dipakai disebut jumlah elemen efektif

Jumlah elemen efektif disimpan dalam nama peubah tertentu misalnya N

Page 13: Dasar Pemrograman ARRAY/LARIK

13

4.2. Array Bertipe Terstruktur

Elemen array dapat juga bertipe terstruktur.

Misalkan TabMhs adalah sebuah array yang elemennya menyatakan nilai ujian seorang mahasiswa untuk suatu mata kuliah (MK) yang ia ambil.

Data setiap mahasiswa adalah NIM (Nomor Induk Mahasiswa), Nama Mahasiswa, Mata Kuliah yang diambil dan Nilai Mata Kuliah Tersebut.

Page 14: Dasar Pemrograman ARRAY/LARIK

14

Maka Pendefinisiannya adalah sbb :Deklarasi

const Nmaks = 100type Mahasiswa = record

<NIM : String NamaMhs :

String KodeMK : String Nilai : char>

TabMhs : array[1..Nmaks] of Mahasiswa

Page 15: Dasar Pemrograman ARRAY/LARIK

15

Cara Mengacu Elemen TabMhsContoh cara mengacu elemen :1. Elemen Kedua dari TabMhs

TabMhs[2]2. Mengacu field NIM dari elemen kedua

ArrayTabMhs[2].NIM

3. Mengacu field KodeMK dari elemen kedua arrayTabMhs[2].KodeMK

Karena record merupakan tipe terstruktur, pencetakan elemen tidak dapat dilakukan dengan bentuk sebagai berikut :

write(TabMhs[k])

Page 16: Dasar Pemrograman ARRAY/LARIK

16

Tapi harus dengan cara sebagai berikut :write(TabMhs[k].NIM, TabMhs[k].NamaMhs, TabMhs[k].KodeMK, TabMhs[k].Nilai)

Namun pengisian nilai elemen ke elemen berikutnya

Dengan penulisan berikut adalah benar :TabMhs[k] ←TabMhs[k+1]

Bentuk tersebut sama dengan pengisian perfield Sbb : TabMhs[k].NIM ← TabMhs[k+1].NIM TabMhs[k].NamaMhs ← TabMhs[k+1].NamaMhs TabMhs[k].KodeMK ← TabMhs[k+1].KodeMK TabMhs[k].Nilai ← TabMhs[k+1].Nilai

Page 17: Dasar Pemrograman ARRAY/LARIK

17

4.3. Menginisialisasi ArrayMenginisialisasi array adalah

memberikan harga awal untuk seluruh elemen array. Inisialisasi elemen array misalnya mengosongkan elemen array sebelum dipakai untuk proses tertentu.

Menginisialisasi array bertipe numerik dapat berupa pengisian elemen array dengan nol sedangkan pada array karakter berarti mengisi elemen array dengan spasi atau karakter kosong

Page 18: Dasar Pemrograman ARRAY/LARIK

18

a. Menginisialisasi Elemen Array dengan 0 (nol)Procedure Inisialisasi(output A : LarikInt, input N : integer){K. Awal : N adalah jumlah elemen efektif array, misalnya sudah terdefinisi K. Akhir : Seluruh elemen array A bernilai 0 Proses : Menginisialisasi setiap elemen array A[1..N] dengan 0 }Deklarasi

k : integer {pencatat indeks array}Deskripsi

for k ←1 to N do A[k] ← 0endfor

Page 19: Dasar Pemrograman ARRAY/LARIK

19

b. Menginisialisasi Elemen Array masing-masing dengan 1,2,3,…NProcedure Inisialisasi(output A : LarikInt, input N : integer){K. Awal : N adalah jumlah elemen efektif array, misalnya sudah terdefinisi K. Akhir : Seluruh elemen array A bernilai k Proses : Menginisialisasi setiap elemen array A[1..N] dengan 1,2,3…N }

Deklarasik : integer {pencatat indeks array}

Deskripsifor k ←1 to N do A[k] ← kendfor

Page 20: Dasar Pemrograman ARRAY/LARIK

20

4.4. Mengisi Elemen Array dari Piranti Masukan

Procedure Baca(Input A : LarikInt, input N : integer){K. Awal : N adalah jumlah elemen efektif array, misalnya sudah terdefinisi K. Akhir : Seluruh elemen array A berisi nilai yang dibaca. Proses : Mengisi setiap elemen array A[1..N] dengan nilai yang dibaca dari piranti masukan }Deklarasi

k : integer {pencatat indeks array}Deskripsi

for k ←1 to N do read(A[k])endfor

Page 21: Dasar Pemrograman ARRAY/LARIK

21

4.5. Menulis Elemen Array Ke Piranti KeluaranProcedure Tulis(input A : LarikInt, input N :

integer){K. Awal : N adalah jumlah elemen efektif array, misalnya sudah terdefinisi K. Akhir : Seluruh elemen array A telah tercetak. Proses : Mencetak setiap elemen array A[1..N] ke piranti keluaran }Deklarasi

k : integer {pencatat indeks array}Deskripsi

for k ←1 to N do write(A[k])endfor

Page 22: Dasar Pemrograman ARRAY/LARIK

22

Menghitung Nilai Rata-rata

Procedure HitungRata(input A : LarikInt , input N : integer, output u : real){K. Awal : N adalah jumlah elemen efektif array, misalnya sudah terdefinisi K. Akhir : U berisi rata-rata elemen array Proses : Menghitung rata-rata elemen array A[1..N] }

Page 23: Dasar Pemrograman ARRAY/LARIK

23

Mencari Nilai Maksimum Array

Procedure CariMaks(input A : LarikInt , input N : integer, output Maks : integer){K. Awal : N adalah jumlah elemen efektif array, misalnya sudah terdefinisi K. Akhir : Maks berisi elemen array yang maksimum Proses : Mencari elemen array A[1..N] yang maksimum }

Page 24: Dasar Pemrograman ARRAY/LARIK

24

Mencari Nilai Minimum Array

Procedure CariMin(input A : LarikInt , input N : integer, output Min : integer){K. Awal : N adalah jumlah elemen efektif array, misalnya sudah terdefinisi K. Akhir : Min berisi elemen array yang minimum Proses : Mencari elemen array A[1..N] yang minimum }

Page 25: Dasar Pemrograman ARRAY/LARIK

25

Contoh-contoh yg lebih kompleks

Misalkan akan disimpan data nilai-nilai mata kuliah mahasiswa pada sebuah array bernama TabMhs dengan field mahasiswa terdiri dari

NIM, NamaMHs, dan MataKuliah. Mata kuliah yang diambil mempunyai field KodeMk, NamaMK, dan Nilai.

Maka Algoritmanya adalah sebagai berikut :

Page 26: Dasar Pemrograman ARRAY/LARIK

26

Algoritma Baca_Array_Mahasiswa{ Mengisi elemen array mahasiswa

dengan data yang dibaca ari piranti masukan }

Deklarasiconst Nmaks = 100type MataKuliah = record

<KodeMK : String, NamaMK : String, Nilai : Char >

Page 27: Dasar Pemrograman ARRAY/LARIK

27

type Mahasiswa = record<NIM : String, NamaMhs : String, MK : array[1..4] of

MataKuliah >

TabMhs : array[1..Nmaks] of Mahasiswai, j : integerN : integer

Deskripsi

Page 28: Dasar Pemrograman ARRAY/LARIK

28

read(N)for i ← 1 to N do

read(TabMhs[i].NIM)read(TabMhs[i].NamaMhs)for j ← 1 to 4 do

read(TabMhs[i].MK[j].KodeMK)

read(TabMhs[i].MK[j].NamaMK)read(TabMhs[i].MK[j].Nilai)

endforendfor

Page 29: Dasar Pemrograman ARRAY/LARIK

29

Soal-soal

1. Dalam rangka ulang tahun sebuah toserba memberikan diskon sebesar 15% untuk seluruh barang. Misalkan data Kode Barang dan Harga Jual Barang tersebut telah diisikan ke dalam array HargaJual. HargaJual bertipe LarikBarang. Buatlah pendefinisian permasalahan tersebut pada bagian deklarasi dan buatlah prosedur untuk menurunkan harga barang tersebut.

Page 30: Dasar Pemrograman ARRAY/LARIK

30

2. Diberikan sebuah array integer A yang berukuran N elemen. Array A sudah terdefinisi elemen-elemennya. Buatlah prosedur untuk mencari elemen X dalam array yang keluarannya adalah indeks dari tempat elemen X ditemukan

3. Diberikan sebuah array integer A yang berukuran N elemen. Array A sudah terdefinisi elemen-elemennya. Buatlah prosedur untuk menghitung banyaknya elemen ganjil dalam array yang keluarannya adalah banyaknya elemen ganjil yang ditemukan.

Page 31: Dasar Pemrograman ARRAY/LARIK

31

4. Diberikan sebuah array integer A yang berukuran N elemen. Array A sudah terdefinisi elemen-elemennya. Buatlah fungsi untuk mengirimkan banyaknya elemen array.

5. Diberikan sebuah array integer A yang berukuran N elemen. Array A sudah terdefinisi elemen-elemennya. Buatlah fungsi untuk menghitung jumlah elemen array.

Page 32: Dasar Pemrograman ARRAY/LARIK

32

6. Diberikan sebuah array integer A yang berukuran N elemen. Array A sudah terdefinisi elemen-elemennya. Elemen array tersebut tersusun terurut membesar. Buatlah fungsi untuk mengirimkan elemen array yang paling maksimum dan sebuah fungsi untuk mengirimkan elemen array yang paling minimum.

7. Diberikan sebuah array integer A yang berukuran N elemen. Array A sudah terdefinisi elemen-elemennya. Buatlah Prosedur untuk menghitung jumlah elemen array yang negatif.

Page 33: Dasar Pemrograman ARRAY/LARIK

33

8. Diberikan sebuah array integer A yang berukuran N elemen. Array A sudah terdefinisi elemen-elemennya. Buatlah prosedur untuk menghitung rata-rata elemen array yang genap.

9. Diberikan sebuah array integer A yang berukuran N elemen. Array A sudah terdefinisi elemen-elemennya. Buatlah fungsi untuk menghitung banyaknya elemen yang kelipatan 5 dan jumlah elemen array yang kelipatan 5.