ArrayLarik Apakah Larik itu n n Larik adalah

  • Slides: 14
Download presentation
Array/Larik

Array/Larik

Apakah Larik itu? n n Larik adalah struktur data yang menyimpan sekumpulan elemen yang

Apakah Larik itu? n n Larik adalah struktur data yang menyimpan sekumpulan elemen yang bertipe sama, setiap elemen diakses melalui indeksnya. Indeks larik haruslah tipe data yang menyatakan keterurutan, misal: integer atau karakter. Larik merupakan struktur data yang statis, artinya jumlah elemen larik harus sudah diketahui/didefinisikan sebelum program dieksekusi. Notasi elemen larik: Nama_larik[indeks] n Gb. 1: Larik kosong dengan nama A, jumlah indeksnya 8. elemen larik ditulis dengan notasi: A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[8] n Gb. 2: Larik dengan nama A yg setiap elemennya berisi tinggi badan 8 orang mahasiswa: A[1]=169, A[2]=175, …, A[8]=167 Indeks larik elemen larik

Mendeklarasikan Larik Mendeklarasikan larik berarti: l l Mendefinisikan banyaknya elemen larik (ukuran larik), dan

Mendeklarasikan Larik Mendeklarasikan larik berarti: l l Mendefinisikan banyaknya elemen larik (ukuran larik), dan Mendefinisikan tipe elemen larik n Sebagai Variable/peubah: n Sebagai Tipe Bentukan: n Mendefinisikan ukuran larik sebagai sebuah konstanta: DEKLARASI A : array[1. . 100] of integer Nama. Mhs : array[1. . 40] of string Nil. Ujian : array[1. . 40] of real DEKLARASI type Larik. Int : array[1. . 100] of integer A : Larik. Int {A adalah sebuah peubah larik integer dengan 100 elemen} DEKLARASI const Nmaks = 100 {ukuran maksimum elemen larik} type Larik. Int : array[1. . Nmaks] of integer A : Larik. Int {A adalah sebuah peubah larik integer dengan 100 elemen}

Mengacu Elemen Larik n n Elemen larik diacu melalui indeksnya Nilai indeks harus terdefinisi

Mengacu Elemen Larik n n Elemen larik diacu melalui indeksnya Nilai indeks harus terdefinisi Contoh cara mengacu elemen larik: A[4] {mengacu elemen keempat dari larik A} Nama. Mhs[2] {mengacu elemen kedua dari larik Nama. Mhs} A[i] {mengacu elemen ke-i dari larik A, asalkan nilai i sudah terdefinisi} Nama. Mhs[i+1] {asalkan nilai i sudah terdefinisi} Contoh memanipulasi elemen larik: A[4] 10 {mengisi elemen keempat dari larik A dengan nilai 10} Nama. Mhs[i] ‘Atabik’ {mengisi elemen ke-i dari larik Nama. Mhs dengan string ‘Atabik’} read(A[i]) {membaca elemen ke-i dari larik A}

Pemrosesan Larik n n Elemen larik tersusun di memori secara beruntun (sekuensial), sehingga elemennya

Pemrosesan Larik n n Elemen larik tersusun di memori secara beruntun (sekuensial), sehingga elemennya diproses secara beruntun melalui indeksnya yang terurut Memproses larik artinya mengunjungi (traversal) setiap elemen larik dan memanipulasi nilai didalamnya. Kunjungan dimulai dari elemen pertama larik, berturut pada elemen berikutnya sampai elemen terakhir dicapai. Karena jumlah elemen larik sudah diketahui di awal proses, maka jumlah pengulangan juga dapat ditentukan. Sehingga struktur pengulangan FOR cocok untuk memproses larik. Skema pemrosesan larik: PROGRAM Pemrosesan. Larik {Skema pemrosesan larik secara beruntun} DEKLARASI const Nmaks = 100 {ukuran maksimum elemen larik} type Larik. Int : array[1. . Nmaks] of integer A : Larik. Int i : integer {indeks larik} ALGORITMA for i 1 to Nmaks do pemrosesan terhadap A[i] endfor

Menginisialisasi Larik n n n Menginisialisasi larik adalah memberikan harga awal untuk seluruh atau

Menginisialisasi Larik n n n Menginisialisasi larik adalah memberikan harga awal untuk seluruh atau mungkin sebagian elemen larik. Inisialisasi biasanya diperlukan, misalnya “mengosongkan” elemen larik sebelum dipakai untuk proses tertentu. Biasanya untuk tipe numerik dengan 0, dan tipe karakter dengan karakter kosong (null) Inisialisasi larik dengan 0: prosedure Inis. Dengan 0(output A: Larik. Int, input n: integer) {Menginisialisasi setiap elemen larik A[1. . n] dengan nol} {K. Awal: n adalah jumlah elemen efektif larik, nilainya terdefinisi} {K. Akhir: seluruh elemen larik A bernilai nol} DEKLARASI i : integer {pencatat indeks larik} ALGORITMA for i 1 to Nmaks do A[i] 0 endfor

Menginisialisasi Larik (2) n Contoh Program utama yang memanggil PROSEDUR Init. Dengan 0: PROGRAM

Menginisialisasi Larik (2) n Contoh Program utama yang memanggil PROSEDUR Init. Dengan 0: PROGRAM Pemrosesan. Larik {Program untuk mengisi elemen larik dg 0} DEKLARASI const Nmaks = 100 {ukuran maksimum elemen larik} type Larik. Int : array[1. . Nmaks] of integer A : Larik. Int i : integer n : integer {indeks larik} {ukuran efektif larik} prosedure Inis. Dengan 0(output A: Larik. Int, input n: integer) {Menginisialisasi setiap elemen larik dengan 0} ALGORITMA read (n) {tentukan jumlah elemen larik efektif} Inis. Dengan 0(A, n) {cetak hasil Inisialisasi} for i 1 to n do write(A[i]) endfor

Mengisi Elemen Larik dengan Pembacaan n Versi 1: Jika jumlah elemen efektif ditentukan di

Mengisi Elemen Larik dengan Pembacaan n Versi 1: Jika jumlah elemen efektif ditentukan di awal procedure Baca. Larik 1(output A: Larik. Int, input n: integer) {Mengisi elemen larik A[1. . n] dg pembacaan} {K. Awal: n adalah jumlah elemen efektif larik, nilainya terdefinisi} {K. Akhir: setelah pembacaan, seluruh elemen larik A berisi nilai-nilai yang dibaca dari piranti masukan} DEKLARASI i : integer ALGORITMA for i 1 to n do read(A[i]) endfor {pencatat indeks larik}

Mengisi Elemen Larik dengan Pembacaan (2) n Versi 2: Jika jumlah elemen efektif baru

Mengisi Elemen Larik dengan Pembacaan (2) n Versi 2: Jika jumlah elemen efektif baru diketahui di akhir pembacaan procedure Baca. Larik 2(output A: Larik. Int, output n: integer) {Mengisi elemen larik A[1. . n] dg pembacaan} {K. Awal: sembarang} {K. Akhir: sebanyak n buah elemen larik A berisi nilai-nilai yang dibaca; n berisi jumlah elemen larik yang diisi} DEKLARASI jawab : char {untuk menampung jawaban} ALGORITMA: n 0 repeat n n+1 read(A[n]) write(‘Lagi(y/t)? ’) read(jawab) until jawab = ‘t’

Mengisi Elemen Larik dengan Pembacaan (3) n Versi 3: Jika jumlah elemen efektif baru

Mengisi Elemen Larik dengan Pembacaan (3) n Versi 3: Jika jumlah elemen efektif baru diketahui di akhir pembacaan. Proses pembacaan dianggap selesai jika nilai yang dibaca adalah suatu tanda, misalnya 9999 procedure Baca. Larik 3(output A: Larik. Int, output n: integer) {Mengisi elemen larik A[1. . n] dg pembacaan. Akhir pembacaan ditandai jika nilai yang dibaca adalah 9999} {K. Awal: sembarang} {K. Akhir: sebanyak n buah elemen larik A berisi nilai-nilai yang dibaca; n berisi jumlah elemen larik yang diisi} DEKLARASI x : integer ALGORITMA: n 0 read(x) while x≠ 9999 do n n+1 A[n] x read(x) endwhile { x = 9999 } {menyimpan sementara nilai yang dibaca}

Larik Bertipe Struktur n n n Misal kita akan mengolah data 100 mahasiswa. Data

Larik Bertipe Struktur n n n Misal kita akan mengolah data 100 mahasiswa. Data setiap mahasiswa terdiri-dari NIM, Nama. Mhs, dan IPK. Struktur lojik larik Mhs dapat ditunjukan seperti berikut: : Struktur larik yang menyimpan data tersebut dideklarasikan dibawah ini. Nama larik adalah Mhs: DEKLARASI const Nmaks = 100 {ukuran maksimum elemen larik} type Mahasiswa: record <NIM : integer, Nama. Mhs : string, IPK : real > type Tab. Mhs: array[1. . Nmaks] of Mahasiswa Mhs : Tab. Mhs

Translasi Notasi Algoritmik ke Bahasa C n Sebagai Variable/peubah: l Algoritmik DEKLARASI A Nama.

Translasi Notasi Algoritmik ke Bahasa C n Sebagai Variable/peubah: l Algoritmik DEKLARASI A Nama. Mhs Nil. Ujian : : : array[1. . 100] of integer array[1. . 40] of string array[1. . 40] of real Cara mengacu elemen larik: A[4] {mengacu elemen keempat dari larik A} Nama. Mhs[2] {mengacu elemen kedua dari larik Nama. Mhs} A[i] {mengacu elemen ke-i dari larik A, asalkan nilai i sudah terdefinisi} Nil. Ujian[i+1] {asalkan nilai i sudah terdefinisi} l C /* DEKLARASI */ int A[100]; char Nama. Mhs[41][25]; /*panjang string=25 kar */ float Nil. Ujian[41]; Cara mengacu elemen larik, sama dengan notasi algoritmik.

Translasi Notasi Algoritmik ke Bahasa C (2) n Sebagai Tipe Bentukan: l Algoritmik l

Translasi Notasi Algoritmik ke Bahasa C (2) n Sebagai Tipe Bentukan: l Algoritmik l C DEKLARASI type Larik. Int : array[1. . 100] of integer A : Larik. Int {A adalah sebuah peubah larik integer dengan 100 elemen} /* DEKLARASI */ typedef int Larik. Int[100]; Larik. Int A; n Mendefinisikan ukuran larik sebagai sebuah konstanta: DEKLARASI const Nmaks = 100 {ukuran maksimum elemen larik} type Larik. Int : array[1. . Nmaks] of integer A : Larik. Int {A adalah sebuah peubah larik integer dengan 100 elemen} cont int Nmaks=100; typedef int Larik. Int[Nmaks]; Larik. Int A;

Translasi Notasi Algoritmik ke Bahasa C (3) n Larik Bertipe Terstruktur: l Algoritmik l

Translasi Notasi Algoritmik ke Bahasa C (3) n Larik Bertipe Terstruktur: l Algoritmik l C DEKLARASI const Nmaks = 100 {ukuran maksimum elemen larik} type Mahasiswa: record <NIM : integer, Nama. Mhs : string, IPK : real > type Tab. Mhs: array[1. . Nmaks] of Mahasiswa Mhs : Tab. Mhs /* DEKLARASI */ const int Nmaks = 100 {ukuran maksimum elemen larik} typedef struct {int NIM; char Nama. Mhs[25]; float IPK; } Mahasiswa; typedef Mahasiswa Tab. Mhs[Nmaks+1]; Tab. Mhs;