Data Array

Post on 20-Jul-2015

166 views 1 download

Transcript of Data Array

3. Array/ Larik

• Array adalah tipe data terstruktur yang terdiridari sejumlah elemen yang mempunyai tipesama.

• Mempunyai jumlah elemen yang tetap.

• Banyaknya elemen dalam array ditunjukkan oleh• Banyaknya elemen dalam array ditunjukkan olehsuatu indeks

• Array dapat bertipe data sederhana seperti byte, integer, real, boolean, char, string dan tipe data scalar atau subrange.

• Array yang akan dipergunakan harus dideklarasikan terlebih dahulu.

Mengapa Perlu Array?

• Karena Variabel dengan tipe dasar hanya dapat menyimpan satu buah data. Jika ada banyak data dengan tipe yang sama, maka tidak efisien jika disimpan oleh Variabel dengan tipe dasar. Karena itu, array diperlukan untuk menyimpan sekumpulan data yang tipenya sama.itu, array diperlukan untuk menyimpan sekumpulan data yang tipenya sama.

• Misalnya : 5 buah data dengan tipe yang sama dapat saja disimpan dalam 5 buah variabel, tetapi bagaimana jika ada 1000 data dengan tipe yang sama? Sangat tidak efisien membuat 1000 variabel !!!

Macam Array

• Array Satu Dimensi

Array Satu Dimensi adalah sekelompok data

yang terdiri dari satu baris atau satu kolom

saja. saja.

• Array Dua Dimensi

Array Dua Dimensi sekelompok data data

yang terdiri dari beberapa baris dan kolom.

Array Satu Dimensi

Bentuk Deklarasi :

Index = Range Jumlah Data

NamaVariabel : Array[Index] of TipeData;

Index = Range Jumlah Data

Contoh :

Nama : Array[1..5] of String[25];

Nilai : Array[1..10] of Integer;

Huruf : Array[1..4] of char;

Deklarasi Konstanta Array

Contoh :

Nilai : Array[1..4] of Integer =(7,10,21,20);

Huruf : Array[1..5] of char =(‘A’,’B’,’C’,’D’,’E’);

Artinya :

Nilai[1]=7, Nilai[2]=10,Nilai[3]=21,Nilai[4]=20

Huruf[1]=A, Huruf[2]=B, Huruf[3]=C, Huruf[4]=D, Huruf[5]=E

Deklarasi Tipe Data

Tipe data dapat dibuat sendiri dengan tujuan

untuk memudahkan penulisan program dan

efisiensi penggunaan memori.

Bentuk Pernyataan :

Type

Nama Tipe = tipe data

Contoh Tipe Data Baru

1. Var

NilaiHuruf : array [1..5] of char ;

Menjadi :

Type

huruf = array [1..5] of char

Var

NilaiHuruf : huruf;

Bulan = Array[(Jan, Peb, Mar)] of integer;

Var

Jumlah : Bulan;

Variabel Jumlah menyatakan Jumlah Data

betipe Integer setiap bulan. Misalnya :

Jumlah[Jan] : = 125 ;

Jumlah{Peb] : = 75 ; NilaiHuruf : huruf;

2. Var

Jumlah: array [(Jan, Peb, Mar)] of integer ;

Dapat dibentuk menjadi sebuah tipe data baru, mis sbb :

Type

Bulan = (Jan, Peb, Mar) ;

Var

Jumlah : array [Bulan] of integer ;

Atau

Type

Jumlah{Peb] : = 75 ;

Jumlah[Mar] : = 18 ;

Program

Contoh-1

• Hitunglah nilai rata-rata dari Nilai mahasiswa sebanyak n

dengan tampilan output spt di bawah ini. Jumlah Data (n),

Nama dan Nilai adalah data masukan.

No Nama Nilai

======================================================

1 Amir 76

2 Budi 82

3 Indah 66

4 Maria 78

.. ……. …

.. ……. …

.. ……. …

n ……. …

============================

Nilai Rata-rata = …………

Algoritma

• Mulai

• Deklarasikan var yang digunakan

• Input Data

Hitung Nilai Rata-rata• Hitung Nilai Rata-rata

• Cetak Hasil

• Selesai

Flowchart

Program

Input Data

Hasil Program

Contoh-2

• Bilangan Prima:

Bilangan prima p adalah bil bulat yang hanya

dapat mempunyai pembagi p dan 1. Dengan

kata lain bilangan prima tidak mempunyai kata lain bilangan prima tidak mempunyai

pembagi selain dari 1 dan dirinya sendiri.

• Buatlah program untuk menentukan bilangan

prima dari 2 s/d 100 dengan output sbb:

2 3 5 7 11 13 17 .......

Analisa Masalah

• Bilangan Prima (p) yang dicari adalah bil. N >1, artinya 2,3,4,5,….dst.

• Setiap Bilangan N harus dibagi dengan bilangan lain (Bilangan pembagi).

• Bilangan pembagi mulai dari 2 hingga N-1. Mis. • Bilangan pembagi mulai dari 2 hingga N-1. Mis. Pembagi angka 5 adalah 2,3,dan 4. Pembagi angka 6 adalah 2,3,4,dan 5. dst.

• Periksa hasil bagi dari Bilangan N, apakah habis dibagi oleh bilangan pembagi.

• Jika Ya, maka bilangan tersebut bukan Bil Prima.

Algoritma

• Mulai

• Deklarasikan Variabel

• Tentukan Bil. Bulat mulai dari I = 2 hingga 100.

• Tentukan bahwa semua bil Bulat adalah bil Prima. Prima = iPrima = i

• Cek Bil bulat mulai dari 2 hingga 100, apakah habis dibagi oleh bilangan lain.

• Jika YA, maka Ganti Prima = i menjadi Prima=0

• Cetak bil. Prima yang tidak sama dengan Nol.

• Selesai

Flowchart

Program

Output Program

Latihan

1. Buatlah program untuk menentukan bilangan antara 1 s.d100 yang habis dibagi 3 dan 5.

2. Buatlah program dengan output sbb:

====================================

No Nama Alamat Pekerjaan StatusNo Nama Alamat Pekerjaan Status

====================================

1 Budi Jl. Merapi 20 Guru Kawin

2 ……. ……… ……….. ……..

.

.

n ……. ……… ……….. ……..

=====================================

Array Dua Dimensi

• Array dua dimensi terdiri dari elemen-elemen

baris dan kolom.

• Umumnya digunakan untuk mengolah data Tabel

atau data matriks dalam matematika.atau data matriks dalam matematika.

• Nilai Baris dan kolom dapat dinyatakan dengan

variabel kontrol dalam proses perulangan.

• Banyak digunakan untuk menyelesaikan

persamaan-persamaan linier dalam Matematika

Teknik.

Deklarasi Variabel

Bentuk Deklarasi:

Contoh :

Var Nama Var : array [index1, index2] of Tipe Data

Contoh :

Atau

Type Larik = array [1..50, 1..50] of integer ;

Var X : Larik

Var X : array [1..50, 1..50] of integer ;

Deklarasi Konstanta

Contoh :

Const

Tabel : Array[1..3,1..2] of Integer = ((1,2),(3,4),(5,6));Tabel : Array[1..3,1..2] of Integer = ((1,2),(3,4),(5,6));

Artinya :

Tabel[1,1]=1, Tabel[1,2]=2, Tabel[2,1]=3, Tabel[2,2]=4, Tabel[3,1]=5, Tabel[3,2]=6

Program

Output Program

Matriks

Sebuah Matriks A ordo mxn dinyatakan dengan

bentuk :

Macam-Macam Matrik

1. Matriks bujur sangkar

2. Matriks Identitas

3. Matriks Transpose

4. Matriks Determinan4. Matriks Determinan

5. Matriks Invers

6. Matriks skalar

7. Matriks segitiga bawah dan segitiga atas

8. dsb

Contoh-3

Buatlah program untuk input data Matriks A

dengan ordo m x n. Variabel input adalah m,n,

dan data matriks. Tampilkan Matriks dan nilai

elemen Matriks.elemen Matriks.

Output Program

Penjumlahan/Pengurangan Matriks

Penjumlahan Matriks :

Syarat :

• Kedua Matriks harus berukuran sama.

• A + B = B + A• A + B = C dimana Cij = (Aij + Bij)A + B = C dimana Cij = (Aij + Bij)

• B + A = C dimana Cij = (Bij + Aij)

Pengurangan Matriks:

• Kedua Matriks harus berukuran sama.

• A - B ≠ B - A• A - B = C dimana Cij = (Aij - Bij)

• B - A = D dimana Dij = (Bij - Aij)

Bentuk Matriks

Contoh-3

Buatlah program untuk menjumlahkan 2 buah Matriks yaitu Matrik Amn + Bmn = Cmn. Input adalah Data Matrik A dan B sedangkan outputnya adalah Matrik A, B, dan C.

Algoritma:Algoritma:

• Mulai

• Tentukan Data Matrik A

• Tentukan Data Matrik B

• Jumlahkan Data Matrik A dan B

• Cetak Hasil

• Selesai

Flowchart

Program Penjumlahan Matriks

Output Program

Transpose Matriks

• Transpose matrik B dinotasikan BT atau didapatkan dengan

cara menukar elemen baris ke i matrik B menjadi elemen

kolom ke i. Bila matrik B berukuran mxn, maka BT berukuran

nxm dan elemen yang ke Bij Menjadi elemen Bji.

• Bentuk Transpose dari Matrik B adalah :• Bentuk Transpose dari Matrik B adalah :

Contoh-4

Buatlah Program untuk mencari Transpose dari

sebuah Matriks.

Variabel input adalah :

Jumlah baris dan kolom• Jumlah baris dan kolom

• Data dari Matriks

• Output adalah : Matriks Transpose

Algoritma

• Mulai

• Tentukan Jumlah Baris dan Kolom Matriks

• Input Data Matrik

Cari Transpose Matriks• Cari Transpose Matriks

Tukar indeks Baris menjadi indeks Kolom dan indeks

Kolom menjadi indeks Baris.

• Cetak Hasil

• Selesai

ProgramProgram TransposeMatrix;

Uses crt;

Type Trans = Array [1..20,1..20] of integer;

Var A: Trans;

i,j,baris,kolom :integer;

Begin

Clrscr;

{Tentukan Jumlah Baris dan Kolom Matriks B}

Write('Masukkan Jumlah Baris : ');Readln(baris);

Write('Masukkan Jumlah Kolom : ');Readln(kolom);

Writeln;

{Input Data Matriks}

Gotoxy(1,5);Write(‘B= ');

for i := 1 to baris do

for j := 1 to kolom do

begin

Gotoxy(j*5,i*2+3);

Readln(B[i,j]);

for j := 1 to baris do

begin

Gotoxy(j*5+20,i*2+3);

Write(B[j,i]);

end;

readln;

End.

end;

{Cari Transpose dan Cetak

Hasilnya}

Gotoxy(20,5);Write(‘BT=');

for i := 1 to kolom do

Output Program

Perkalian Matriks

Syarat :

• Matriks A dan B hanya dapat dikalikan jika

jumlah Kolom Matriks A = Jumlah Baris

Matriks B.Matriks B.

• Matriks B x A hanya dapat dikalikan jika

jumlah Kolom Matriks B = Jumlah Baris

Matriks A.

Bentuk Perkalian Matriks

Perhatikan bahwa A berukuran 2 × 2 dan B berukuran 2 × 3 maka AB berukuran 2 × 3.

Perkalian Matriks

Buatlah program untuk mengalikan 2 buah matriks. Variabel input adalah :

• Jumlah baris dan kolom dari masing2 Matriks.

• Data masing2 Matriks• Data masing2 Matriks

Output :

• Kedua Matriks dan Hasil Kali Matriks.

Flowchart

Program

Hasil Program

Determian dan Invers Matriks

Buatlah program untuk mencari Determinan dan

Invers dari Matriks ordo 2x2 yang didefiniskan

sbb :

Algoritma

• Mulai

• Deklarasikan Variabel

• Input Data Matrik

• Cetak Data Matriks• Cetak Data Matriks

• Hitung Nilai Determinan

• Hitung Nilai Invers

• Cetak Matriks Invers

• Selesai

Program Invers Ordo 2x2

program invers_Ordo_2x2;

uses crt;

var n,i,j,k,l,m : integer;

x,y,Det,a1,b,c,d,p : real;

a : array[1..2,1..2] of real;

begin

for j:=1 to 2 do

begin

write ('A(',i,',',j,') = ');

readln (a[i,j]);

end;

end;

clrscr;begin

writeln ('Program Pencarian Invers Matriks');

writeln ('Ordo Matrik (2 x 2).');

writeln;

{Masukkan Data Matriks}

for i:=1 to 2 do

begin

clrscr;

writeln;

{Cetak Matriks}

for i:=1 to 2 do

begin

for j:=1 to 2 do

write (' ',a[i,j]:6:3);

writeln;

end;

for j:=1 to 2 do

Begin

if i=j then

x:= x*a[i,j]

else

y:= y*a[i,j];

end;end;

{Mencari Deteminan}

x:=1;y:=1;

for i:=1 to 2 do

begin

end;

writeln;

end;

Det := x - y;

writeln('Determinan = ',Det:6:2);

writeln;

writeln('Mencari InversMatriks : ');

writeln;

for i:=1 to 2 do

begin

for j:=1 to 2 do

p:=a[i,j];

a[i,j]:=a[i+1,j+1]/det;

end

else

a[i,j]:=p/det

end

elsefor j:=1 to 2 do

begin

if i=j then

begin

if i=1 then

Begin

else

a[i,j]:=-a[i,j]/det;

end;

end;

{Cetak Hasil Invers}

for i:=1 to 2 do

begin

for j:=1 to 2 do

begin

write(a[i,j]:6:2,' ');write(a[i,j]:6:2,' ');

end;

writeln;

end;

readln;

End.

Hasil Program

Latihan

1. Buatlah Program untuk mencari

Data Maksimum dan Minimum dari

N data masukan. Variabel input N data masukan. Variabel input

adalah Jumlah data, Data.

2. Buatlah program untuk menghitung

pengurangan Matrik AT – B = C.

TUGAS-3

Buatlah program untuk mengalikan Duabuah Matrik Tranpose AT x BT. Hasil kaliadalah Matriks C. Data input adalah ordomatriks A dan B, dan Data dari Matrik A danB. Output adalah Matrik A, B, AT , BT dan C.B. Output adalah Matrik A, B, AT , BT dan C.

Rumus :

Syarat Perkalian : n1 = m2

A m1n1 x B m2n2 = Cm1n2

Selesai