• Tidak ada hasil yang ditemukan

Document - IKK113105 - STMIK EL RAHMA 07. Array larik

N/A
N/A
Protected

Academic year: 2017

Membagikan "Document - IKK113105 - STMIK EL RAHMA 07. Array larik"

Copied!
12
0
0

Teks penuh

(1)

MODUL MATA KULIAH LOGIKA DAN ALGORITMA

STIMIK EL RAHMA JOGJAKARTA 2015

JURUSAN : SISTEM INFORMASI SEMESTER GENAP 2015

Materi :

ARRAY (LARIK)

Array adalah struktur data statis yang menyimpan sekumpulan elemen yang bertipe sama, dimana setiap elemen memiliki nilai indeks.

Konsep umum dari array :

1. Indeks array harus suatu type yang mempunyai keterurutan (ada suksesor dan predesesor). Misalnya integer atau karakter. Kecuali dalam bahasa C indeks array selalu bertipe integer.

2. Banyaknya elemen array harus sudah diketahui sebelum program dieksekusi.

3. Tipe data elemen array dapat berupa tipe sederhana atau tipe bentukan (record.), atau bahkan bertipe array yang lain.

4. Setiap elemen data dapat diakses secara acak (random), jika indeksnya diketahui 5. Merupakan struktur data yang statis, artinya jumlah elemen yang sudah ditentukan,

tidak bisa diubah selama eksekusi program. Keuntungan data array / larik :

a.Paling mudah pengoperasiannya

b. Ekonomis dalam pemakaian memori, bila semua elemen terisi c.Akses ke setiap elemen memerlukan waktu yang sama

Kerugian data array / larik :

Memboroskan tempat jika banyak elemen yang tidak digunakan. Penggunaan struktur data array/larik:

Array digunakan bila kita mempunyai sejumlah data yang bertipe sama, dan kita perlu menyimpan sementara data tersebut, untuk selanjutnya data tersebut dimanipulasi.

Selama pelaksanaan program, array tetap menyimpan nilai. Hal ini bermanfaat bila kita ingin menggunakan nilai-nilai di dalam array tersebut untuk diproses lebih lanjut di bagian lain di dalam algoritma.

Dengan menggunakan array, kita dapat menghindari penggunaan nama-nama variabel yang banyak.

(2)

array yang terdiri atas 10 buah elemen. Selain itu, dengan array, instruksi pembacaan/penulisan seluruh elemen array cukup ditulis satu kali saja di dalam sebuah konstruksi pengulangan.

Representasi array yang umum dibagi menjadi dua, yaitu : 1. Representasi array 1 dimensi.

A[1] A[2] ……… A[Nmax]

2. Representasi array 2 dimensi

A[1,1] A[1,2] A[1,Nmax]

A[1,1] A[1, Nmax]

A[2,1] A[2, Nmax]

A[Nmax,1] A[Nmax,Nmax]

Keterangan :

Sebenarnya array dapat direpresentasikan dengan dimensi yang tak hingga, tetapi ini tidak umum digunakan, jadi jumlah dimensi disesuaikan dengan kebutuhan setiap penanganan kasus yang berbeda - beda.

PEMROSESAN LARIK

 Pemrosesan beruntun pada larik adalah pemrosesan mulai dari elemen pertama larik.

 Yaitu elemen dengan indeks terkecil, berturut-turut pada elemen berikutnya, sampai elemen terakhir dicapai, yaitu elemen dengan indeks terbesar.

7.1 ARRAY 1 DIMENSI Cara Pendefinisian Array : 1. Sebagai variabel

Contoh:

Algoritmik Pascal

A : array [1..20] of integer

NamaBrg : array [‘a’.. ‘z’] of

A : array [1..20] of integer;

(3)

string string;

2. Sebagai tipe baru dan array bertipe bentukan (record) Contoh:

Algoritmik :

Type Mhs = record <NPM: integer, Nama : string [20], Alamat: string [30]>

Type DataMhs = array [1..20] of Mhs

A: DataMhs

Pascal :

Type Mhs = record NPM: integer; Nama : string [20]; Alamat: string [30]; end;

Type DataMhs = array [1..20] of Mhs

A: DataMhs;

3. Mendefinisikan ukuran maksimum elemen array sebagai konstanta Contoh:

Algoritmik :

Const Nmaks = 20

Type Huruf = array [1..Nmaks] of char

A : Huruf

(4)

Const Nmaks = 20;

Type Huruf = array [1..Nmaks] of char; Var

A : Huruf;

Contoh Kasus :

Terdapat sebuah data yang berisi deretan angka, sebagai berikut :

5 6 8 1 ... ...

1 2 3 4 ... 200 Operasi-operasi dasar :

1. Menginisialisasi elemen array 2. Mengisi elemen array

3. Mencetak elemen array

4. Pencarian nilai maksimum pada array

5. Pencarian sebuah bilangan pada array dengan metode sekuensial artinya pemrosesan dilakukan terurut berdasarkan indeks array.

Maka deklarasinya adalah : Algoritmik:

DeretAngka : array [1.. 200] of integer

(5)

VAR

A:array [1..Nmax] of integer;

ATAU VAR

A:array [1..200] of integer;

DeretAngka : array [1.. 200] of integer;

VAR

A:DeretAngka;

Type

DeretAngka : array [1..Nmax] of integer; VAR

A:DeretAngka;

1. Menginisialisasi elemen array Algoritmik :

Procedure InisialisasiArray (input/output A:deretAngka , input n:integer) {Procedure ini berfungsi untuk memberikan harga awal untuk n elemen array,dengan nilai 0}

Procedure InisialisasiArray (var A:deretAngka ; n:integer);

{Procedure ini berfungsi untuk memberikan harga awal untuk n elemen array, dengan nilai 0}

2. Mengisi elemen array Algoritmik:

Procedure IsiArray ( input/output A:deretAngka, input n:integer) { Procedure ini berfungsi untuk mengisi elemen array, dengan: input n =jumlah elemen array yang akan diisi

output A = array yang n elemennya sudah terisi } Deklarasi :

(6)

Algoritma : for i←1 to n do

write('Masukan bilangan:') read(bil)

A[i]← bil endfor

Pascal:

Procedure IsiArray ( var A:deretAngka; n:integer);

{ Procedure ini berfungsi untuk mengisi elemen array, dengan: input n =jumlah elemen array yang akan diisi

output A = array yang n elemennya sudah terisi } Var

Bil,i:integer; Begin

for i:=1 to n do begin

write('Masukan bilangan:');readln(bil); A[i]:=bil;

end; end;

3. Mencetak elemen array Algoritmik:

Procedure CetakArray (input A:deretAngka, input n:integer)

{ Procedure ini berfungsi untuk mencetak isi dari sebuah array, dengan: input A= array yang sudah berisi angka , n=jumlah elemen array yang akan dicetak isinya }

Deklarasi : i :integer Algoritma : for i←1 to n do

write('Indeks ke-',i,'berisi angka:',A[i]) endfor

end;

Pascal :

Procedure CetakArray (A:deretAngka; n:integer);

(7)

array yang sudah berisi angka , n=jumlah elemen array yang akan dicetak isinya }

Var

i :integer; Begin

for i:=1 to n do begin

writeln('Indeks ke-',i,'berisi angka:',A[i]) end;

end;

4. Pencarian nilai maksimum pada array Algoritmik :

Procedure CariMax (input A:deretAngka, output Maks:integer, input N :integer) {Procedure ini berfungsi untuk mencari nilai maksimum pada sebuah

array,dengan: input A= array yang sudah berisi angka, output Maks=nilai maksimun yang dicari pada array} Deklarasi:

i:integer Algoritma: maks← A[1] for i←2 to N do if A[i] > maks then maks←A[i] endif

endfor

Pascal :

Procedure CariMax (A:deretAngka;var Maks:integer; N:integer); {Procedure ini berfungsi untuk mencari nilai maksimum pada sebuah array,dengan: input A= array yang sudah berisi angka, output Maks=nilai maksimun yang dicari pada array}

var

i:integer; begin

(8)

5. Pencarian sebuah bilangan pada array dengan metode sekuensial Algoritmik :

Procedure CariNilai(input A:DeretAngka;input x:integer)

{Procedure ini berfungsi untuk mencari sebuah nilai pada array, dengan input A= array berisi angka dan x = nilai yang akan dicari}

Deklarasi: i:integer Algoritma: i←1

while (A[i] ≠ x) and (i < 10) do i←i+1

endwhile if A[i]=x then

write('Ketemu di indeks ke-',i) else

write('Tidak ketemu') endif

Pascal :

Procedure CariNilai(A:DeretAngka;x:integer);

{Procedure ini berfungsi untuk mencari sebuah nilai pada array, dengan input A= array berisi angka dan x = nilai yang akan dicari} var

i:integer; begin i:=1;

while (A[i] <> x) and (i < 10) do begin

i:=i+1; end;

if A[i]=x then

writeln('Ketemu di indeks ke-',i) else

writeln('Tidak ketemu'); end;

(9)

Program Contoh_Array Deklarasi :

Const Nmax=200

Type DeretAngka : array [1.. Nmax] of integer

Procedure InisialisasiArray (input/output A:deretAngka , input n:integer) Procedure IsiArray (input/output A:deretAngka, input n:integer)

Procedure CetakArray (input A:deretAngka, input n:integer)

Procedure CariMax (input A:deretAngka,output Maks:integer,N:integer) Procedure CariNilai(input A:DeretAngka,input x:integer)

B : deretAngka;

jumlah,maksimum,angka : integer; Algoritma Utama :

write(‘Masukan banyaknya array:’) read(jumlah)

InisialisasiArray(B,jumlah) IsiArray(B,jumlah)

CetakArray(B,jumlah)

CariMax(B,maksimum,jumlah) write(‘Nilai maksimum:’,maksimum) write(‘Masukan angka yang akan dicari:’) read(angka)

CariNilai(B,angka)

Pascal :

Program Contoh_Array; Const Nmax=200;

Type

DeretAngka : array [1.. Nmax] of integer;

Procedure InisialisasiArray (var A:deretAngka ; n:integer); Procedure IsiArray ( var A:deretAngka; n:integer);

Procedure CetakArray (A:deretAngka; n:integer);

Procedure CariMax (A:deretAngka;var Maks:integer; N:integer); Procedure CariNilai(A:DeretAngka;x:integer);

Var

B : deretAngka;

(10)

write(‘Masukan banyaknya array:’); readln(jumlah);

InisialisasiArray(B,jumlah); IsiArray(B,jumlah);

CetakArray(B,jumlah);

CariMax(B,maksimum,jumlah);

writeln(‘Nilai maksimum:’,maksimum); write(‘Masukan angka yang akan dicari:’); read(angka);

CariNilai(B,angka); end.

7.2 ARRAY BERTIPE TERSTRUKTUR

Algortma Array sebelumnya menggunakan tipe data sederhana, Elemen Array juga bisa menggunakan Tipe data bentukan yaitu Record atau lebih dikenal dengan Tipe Terstruktur.

Misalkan akan melakukan proses pengolahan data 100 orang mahasiswa, Data setiap mahasiswa terdiri dri NPM (Nomor Pokok Mahasiswa), Nama mahasiswa, dan IPK (Indeks prestasi Kumulatif Siswa).

Struktur Lojiknya sebagai berikut:

NPM NamaMhs IPK

1 28001 Dina Rahmayanti 3.57

2 28002 Catur Wulan 3.30

3 28003 Bayu Nisa 3.53

. .

N 280020 Risma wulandari 3.60

Struktur Array yang dideklarasikan sebagai berikut: DEKLARASI

const Nmaks = 100

type Mahasiswa : record <NPM: integer, NamaMhs:String, IPK : real>

type TabMhs : Array [1…NMaks] of Mahasiswa Mhs : TabMhs

(11)

Procedure BacaDataMahasiswa(input N :integer, output Mhs:TabMhs) Deklarasi

I : integer; Algoritma :

For i:=1 To N Do Read(Mhs[i].NIM) Read(Mhs[i].NamaMhs) Read(Mhs[i].IPK) EndFor

Procedure TulisDataMahasiswa(input N:integer, output:Mhs:TabMhs) Deklarasi

I,j : integer; Algoritma :

For i:=1 To N Do

Write (Mhs[i].NPM, Mhs[i].NamaMhs, Mhs[i].IPK) EndFor

LATIHAN

1. Diketahui sebuah integer array TabInt [1…8], yang telah terisi dengan nilai-nilai ujian mahasiswa seperti berikut ini:

Tuliskan Algoritma untuk:

a. Mencari Nilai Maksimum dari Nilai Ujian Tersebut. b. Menghitung Nilai Rata-rata Nilai Tersebut.

2. Diketahui sebuah integer array TabInt [1…8], yang telah terisi dengan nilai-nilai berikut ini:

Tuliskan Algoritma untuk:

50 90 80 70 60 100 90 100

(12)

Referensi

Dokumen terkait

Penelitian ini memberikan manfaat keilmuan berkaitan dengan aktivitas off-balance sheet (OBS) dalam perbankan nasional dengan memperlihatkan pengaruh

Ketepatwaktuan pelaporan keuangan tahunan diukur menggunakan variabel dummy, keefektifan komite audit diukur menggunakan indeks keefektifan yang dikembangkan oleh Ika dan

Metode penelitian : Penelitian dilakukan dengan pendekatan kuantitatif Jenis penelitian adalah penelitian exsperimental, dengan menggunakan pendekatan quasi exsperimental

Tujuan DPM-LUEP untuk pembelian gabah/beras petani adalah : (a) Menjaga stabilitas harga gabah/beras yang diterima petani pada tingkat yang wajar; (b) Meningkatkan pendapatan

Semakin tinggi sumber daya kualitas kehidupan kerja dan persepsi terhadap dukungan organisasi pada kesehatan dan kesejahteraan, keamanan kerja, kepuasan kerja,

Pembangunan Rumah Oleh Perum Perumnas Provinsi Jawa Barat Tahun 2011. No Nama

“Bila pemakai sesuatu pesawat uap berlawanan dengan pendapat sebagaimana diberi- tahukan padanya oleh pegawai yang bersangkutan, merasa tidak beralasan cukup, baik untuk pengujian

Secara terinci, matriks aktualisasi telah mencoba menjabarkan masing-masing sila dari Pancasila mulai dari perwujudan dan aktualisasinya, hingga implikasinya dalam penanganan