0% menganggap dokumen ini bermanfaat (0 suara)
173 tayangan69 halaman

ProgDasCh11 Array

Array merupakan struktur data yang menyimpan kumpulan nilai-nilai data bertipe sama dalam urutan tertentu dengan menggunakan nama yang sama. Array dapat berbentuk satu dimensi atau multidimensi, seperti array dua dimensi atau matriks yang terdiri dari baris dan kolom. Elemen-elemen array dapat diakses dan diolah berdasarkan indeks baris dan kolomnya. [/ringkasan]
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPT, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
173 tayangan69 halaman

ProgDasCh11 Array

Array merupakan struktur data yang menyimpan kumpulan nilai-nilai data bertipe sama dalam urutan tertentu dengan menggunakan nama yang sama. Array dapat berbentuk satu dimensi atau multidimensi, seperti array dua dimensi atau matriks yang terdiri dari baris dan kolom. Elemen-elemen array dapat diakses dan diolah berdasarkan indeks baris dan kolomnya. [/ringkasan]
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPT, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 69

LARIK (ARRAY)

Array disebut juga larik, merupakan


kumpulan dari nilai-nilai data bertipe sama
dalam urutan tertentu yang menggunakan
sebuah nama yang sama
Elemen-elemen array tersusun secara
sekuensial di dalam memori sehingga
memiliki alamat yang berdekatan.
Sifat - sifat
Array
Homogen
Seluruh elemen di dalam struktur array mempunyai
tipe data yang sama.
Random Access
Setiap elemen di dalam struktur array dapat dicapai
secara individual, langsung ke lokasi elemen yang
diinginkan, tidak harus melalui elemen pertama.
Array / Larik

Nilai-nilai data di suatu array disebut dengan


elemen-elemen array
Letak urutan dari elemen-elemen array
ditunjukkan oleh suatu subscript atau indeks
Setiap komponen (elemen) array dapat
dibedakan dan diakses melalui nomor indeksnya.
Array
Elemen-elemen dalam array dengan n elemen
memiliki index dari 0 sampai n-1.
Perhatikan bahwa tidak ada elemen array
larik[n], karena hal ini akan menyebabkan
array-index-out-of-bounds exception .
Array merupakan struktur data yang statis,
yaitu jumlah elemen yang ada harus ditentukan
terlebih dahulu dan tak bisa di ubah saat
program berjalan
Ukuran array => namalarik.length
LARIK (ARRAY)
0 69

1 61
index
2 70

3 89 Nilai elemen atau values

4 23

5 10

6 9

7
Elemen-elemen array dapat diakses secara
berurutan atau random berdasarkan indeks
tertentu secara langsung.

Pengisian dan pengambilan nilai pada


indeks tertentu dapat dilakukan dengan
mengeset nilai atau menampilkan nilai
pada indeks yang dimaksud.
Dalam bahasa pemrograman, tidak
terdapat error handling terhadap batasan
nilai indeks, apakah indeks tersebut berada
di dalam indeks array yang sudah
didefinisikan atau belum. Hal ini merupakan
tanggung jawab programmer.
Jika programmer mengakses indeks yang
salah, maka nilai yang dihasilkan akan
berbeda atau rusak karena mengakses
alamat memori yang tidak sesuai.
Tanda [] disebut juga elemen yang ke-
Misalnya Murid[0] berarti elemen yang ke
nol dari array Murid.
Array yang sudah dipesan, misalnya 10
tempat tidak harus diisi semuanya, bisa
saja hanya diisi 5 elemen saja, baik secara
berurutan maupun tidak.
Namun pada kondisi yang tidak sepenuhnya
terisi tersebut, tempat pemesanan di memori
tetap sebanyak 10 tempat, jadi tempat yang
tidak terisi tetap akan terpesan dan dibiarkan
kosong.
Struktur array dapat digolongkan menjadi:
Array berdimensi satu disebut juga List, Vektor
Array berdimensi dua disebut juga Tabel, Matriks
Array berdimensi banyak
Array
merupakan :
Struktur Data paling mudah
Struktur Data Statis yang harus diketahui
ukurannya terlebih dahulu
Memori ekonomis, bila semua elemen
terisi
Waktu akses sama ke setiap elemen
Boros memori jika banyak elemen yang
tidak digunakan
Array Satu
bentuk umum berupa:Dimensi
Struktur array satu dimensi dapat dideklarasikan dengan

Tipe nama_larik [ukuran];

dengan:
tipe: untuk menyatakan jenis tipe data dari elemen
array (misalnya char, int, unsigned).
ukuran : untuk menyatakan jumlah maksimal elemen
array.
nama_larik : untuk menyatakan nama array
contoh pendeklarasian suatu array lima elemen dengan
nama nilai_tes dan tipe datanya float adalah sebagai
berikut:
float nilai_tes [5];
Deklarasi Array
float nilai_tes[10];

nama array ukuran atau jumlah element


tipe data
array

alamat
100 104 108 112 116 120 124 128 132 136
Data atau nilai
elemen array ? ? ? ? ? ? ? ? ? ?

index 0 1 2 3 4 5 6 7 8 9

14
Mengakses Elemen
Array
Pada bahasa C, data array akan disimpan dalam
memori pada lokasi yang berurutan.
Elemen pertama mempunyai indeks bernilai 0.
Jika pada contoh variabel nilai_tes mempunyai 5
elemen, maka elemen pertama mempunyai
indeks sama dengan 0, elemen kedua
mempunyai indeks 1, dan seterusnya.

Mengakses elemen array terdiri dari


1.Mengisi/memasukkan nilai ke dalam elemen array
2.Mengambil/menampilkan nilai yang ada dalam
elemen array
Contoh untuk memasukkan data ke dalam elemen
array nilai_tes ke-0 :

nilai_tes[0] = 70;

merupakan contoh pemberian nilai 70 ke elemen


array nilai_tes ke-0.
Menampilkan /
Mengambil Data dari
dalam Elemen
Bentuk umum Array
pengaksesan suatu elemen
variabel array adalah:

Nama_larik [indeks];

Untuk variabel array nilai_tes,


Nilai_tes[1] elemen ke-1 dari nilai_tes
Nilai_tes[3] elemen ke-3 dari nilai_tes
Menampilkan/Mengambil
Data dari dalam Elemen
Array
Dua cara yang ekuivalen untuk mengakses
unsur ke-i dari suatu array. Misal untuk
i=2;

*(A+2) atau A[2]

printf(%d,A[2]) atau
printf(%d\n,*(A+2));
70

90
80

90

100
//deklarasi array
int nilai_tes[5]

// mengisi array
nilai_tes[3] = 90;

// menampilkan isi array


printf(%d, nilai_tes[3]);
Alamat elemen Array
0 1 2 3 4 5 6 7 indeks

value

alamat
21da 21db 21dc 21dd 21de 21df 21e0 21e1

%x adalah hexadesimal
/* ------------------------------------------------ */
/* File program : baca.c */
/* Contoh pengaksesan array satu dimensi */
/* ------------------------------------------------ */

#include <stdio.h>
#define maks_tes 5

main()
{
int i;
float nilai_tes[maks_tes];

/* deklarasi array */
/* Membaca data dari keyboard */
for (i=0;i<maks_tes;i++)
{
printf("Nilai tes ke-%d: ",i+1);
scanf("%f", &nilai_tes[i]);
}

/* Menampilkan data yang telah dimasukkan */


for (i=0;i<maks_tes;i++)
{
printf("Nilai tes ke-%d: %f",i+1,nilai_tes[i]);
}
}
Deklarasi Array sekaligus Inisialisasi

Data array juga dapat dideklarasikan dalam


bentuk variabel yang bersifat statis, serta dapat
dilakukan inisialisasi terhadap masing-masing
elemen array.
Contoh proses deklarasi dan inisialisasinya adalah:
static float nilai_tes[5] = {70, 90, 80, 90, 100};
Dengan deklarasi di atas, maka :
nilai_tes[0] bernilai 70
nilai_tes[1] bernilai 90
nilai_tes[2] bernilai 80
nilai_tes[3] bernilai 90
nilai_tes[4] bernilai 100
Deklarasi Array sekaligus Inisialisasi

Data array juga dapat dideklarasikan dalam


bentuk variabel yang bersifat statis, serta dapat
dilakukan inisialisasi terhadap masing-masing
elemen array.
Contoh proses deklarasi dan inisialisasinya adalah:
int nilai_tes[5] = {70, 90, 80, 90, 100};

int nilai_tes[] = {70, 90, 80, 90, 100};


Dengan deklarasi di atas, maka :
nilai_tes[0] bernilai 70
nilai_tes[1] bernilai 90
nilai_tes[2] bernilai 80
nilai_tes[3] bernilai 90
nilai_tes[4] bernilai 100
Deklarasi Array sekaligus Inisialisasi

Data array juga dapat dideklarasikan dalam


bentuk variabel yang bersifat statis, serta dapat
dilakukan inisialisasi terhadap masing-masing
elemen array.
Contoh proses deklarasi dan inisialisasinya adalah:
int nilai_tes[5] = {70, 90, 80, 90, 100};

int nilai_tes[] = {70, 90, 80, 90, 100};


Dengan deklarasi di atas, maka :
nilai_tes[0] bernilai 70
nilai_tes[1] bernilai 90
nilai_tes[2] bernilai 80
nilai_tes[3] bernilai 90
nilai_tes[4] bernilai 100
Operasi pada array
Copying
Finding max or min element
Shifting
Copying Arrays
Can you copy array using a syntax like this?
targetArray = sourceArray;

This is not allowed in C++. You have to copy


individual elements from one array to the other as
follows:

for (int i = 0; i < sourceArrays.length; i++)


targetArray[i] = sourceArray[i];
Finding the Largest
Element
Use a variable named max to store the largest
element. Initially max is myList[0]. To find the largest
element in the array myList, compare each element in
myList with max, update max if the element is greater
than max.

double max = myList[0];


for (int i = 1; i < ARRAY_SIZE; i++)
{
if (myList[i] > max)
max = myList[i];
}
Shifting Elements
double temp = myList[0]; // Retain the first element
// Shift elements left
for (int i = 1; i < myList.length; i++)
{
myList[i - 1] = myList[i];
}
// Move the first element to fill in the last position
myList[myList.length - 1] = temp;
Array 2 Dimensi/
Matriks
array berdimensi dua terdiri dari banyak baris dan banyak kolom
yang bertipe sama
Gambar array berdimensi 2
(baris x kolom = 3 x 4)
matrix[0][3]
Baris: 0
Kolom: 3

matrix[0][0]
Baris : 0
Kolom: 0

matrix[3][0]Baris : 3
Kolom : 0
Elemen-elemen matriks dapat diakses oleh
program dengan menggunakan suatu indeks
tertentu yang terdiri dari indeks baris dan kolom
Elemen-elemen matriks dapat diakses secara
berurutan atau random berdasarkan indeks
tertentu secara langsung.
Pengisian dan pengambilan nilai pada indeks
tertentu dapat dilakukan dengan mengeset nilai
atau menampilkan nilai pada indeks yang
dimaksud.
Lanjutan
Tanda [][] disebut juga elemen pada baris
ke dan kolom ke .
Misalnya Matriks[1][1] berarti elemen
matriks pada baris ke 1 dan kolom ke 1
2D Array Initialization
Inisialisasi:
int matrix[4][3] = {1,2,3,4,5,6,7,8,9,10,11,12};

int matrix[4][3] = {{1, 2, 3},


{4, 5,6},
{7, 8, 9},
{10,11,12}};

33
2D Array Initialization
Memanfaatkan statement nested loop :
int matrix[4][3], i, j;
for (i=0; i<4; i++)
for (j=0; j<3; j++)
matrix[i][j] = i * j;

(0,0) (0,1) (0,2)


0 0 0
(1,0) (1,1) (1,2)
0 1 2
(2,0) (2,1) (2,2)
0 2 4
(3.0) (3,1) (3,2)
0 3 6
34
Mengakses Elemen Array 2D

Untuk mengakses elemen array dua dimensi


dapat dilakukan dengan statemen:
nama_variabel[indeks pertama][indeks kedua];
Sebagai contoh:
Jumlah_mhs[1][2] = 129;
Merupakan instruksi untuk mengakses elemen
array pada baris ke-1, kolom ke-2.
Pengaksesan elemen array 2D
/* ------------------------------------------------ */
/* File program : baca2.c */
/* Contoh pengaksesan array dua dimensi */
/* ------------------------------------------------ */
#include <stdio.h>
main()
{
int i,j;
int matriks[4][3];
/* deklarasi array */
/* Membaca data dari keyboard */
for (i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
printf("matriks (%d, %d): ",i,j);
scanf("%d", &matriks[i][j]);
}
}
printf("\n\n");

/* Menampilkan data matriks yang telah dimasukkan */

for (i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
printf(" Matriks(%d, %d): %d",i,j,matriks[i][j]);
}
printf("\n");
}
}
Operasi pada
Matriks
Pengisian elemen matriks
2 cara pemrosesan elemen matriks,
melalui baris dan kolomnya
Pembacaan dan pencetakan elemen
matriks
Pemrosesan elemen matriks dengan
operasi-operasi yang berlaku pada matriks
Searching an matriks (linear or binary
search)
Pemrosesan Matrik Baris demi Baris

Misalkan matriks A[M][N], untuk memroses


matriks A baris demi baris digunakan langkah
algoritma sbb:

For Baris 0 to M-1 do


For Kolom 0 to N-1 do
PROSES MATRIK
Endfor
Endfor
Pemrosesan Matrik Kolom demi Kolom

Misalkan matriks A[M][N], untuk memroses


matriks A kolom demi kolom digunakan langkah
algoritma sbb:

For Kolom 0 to N-1 do


For Baris 0 to M-1 do
PROSES MATRIK
Endfor
Endfor
for (i = 0 ; i < 8 ; i++)
{
for (j = 0 ; j < 8 ; j++)
printf("%5d ", big[i][j]);
printf("\n");
/* newline for each increase in i */
}

return 0;
}
Pengisian/Penulisan Elemen Matriks
Pengisian elemen matriks dengan suatu
konstanta
x[2][4]= {{8, 5, 9, 8},
{8, 2, 1, 0}};
atau
x[0][0]=8; x[0][1]=5; x[0][2]=9; x[0][3]=8;
X[1][0]=8; x[1][1]=2; x[1][2]=1; x[1][3]=0;

Hasilnya menjadi sebuah matriks X


Pengisian matriks dengan harga nol

For Baris = 0 to 1 do
For Kolom = 0 to 2 do
Matriks[Baris][Kolom] = 0
Endfor
Endfor
Pengisian elemen matriks dengan data
tertentu

For Baris = 0 to 1 do
For Kolom = 0 to 2 do
Input (data)
Matriks[Baris][Kolom] = data
Endfor
Endfor
Mencetak elemen matriks

For Baris = 0 to 1 do
For Kolom = 0 to 2 do
print Matriks[Baris][Kolom]
Endfor
Endfor
Mencetak elemen matriks

int i, j;
for (i = 0; i < row; i++) {
for (j = 0; j < cols; j++)
printf(%d, matrix[i][j]);
printf( \n);
}
Pemrosesan elemen matriks dengan
operasi-operasi yang berlaku pada
matriks

Penjumlahan Matriks
Pengurangan Matriks
Perkalian Matriks
Diagonal Matriks
Transpose Matriks
Penjumlahan matriks
Agar kedua matriks dapat dijumlahkan harus
memiliki jumlah baris dan kolom yang sama.
Inputkan matriks A dan matriks B
Siapkan matriks C untuk menampung hasil
Penjumlahan matriks A dan B sesuai dengan
elemen-elemennya.
Elemen matriks A [0,0] dijumlahkan dengan
elemen matriks B [0,0] juga dan disimpan di
elemen matriks C [0,0] juga. Begitu seterusnya
Hasilnya adalah matriks C
For Baris = 0 to 1 do
For Kolom = 0 to 1 do
C[Baris,Kolom] =
A[Baris,Kolom] + B[Baris,Kolom]
Endfor
Endfor
int i, j;
int c[i][j], a[i][j], b[i][j];

for (i = 0; i < rows; i++)


for (j= 0; j < cols; j++)
c[i][j] = a[i][j] +b[i][j];
Pengurangan 2 buah
Matriks
Agar kedua matriks dapat dijkurangkan harus
memiliki jumlah baris dan kolom yang sama.
Inputkan matriks A dan matriks B
Siapkan matriks C untuk menampung hasil
pengurangan matriks A dan B sesuai dengan
elemen-elemennya.
elemen matriks A [0,0] dikurangkan dengan
elemen matriks B [0,0] juga dan disimpan di
elemen matriks C [0,0] juga. Begitu seterusnya
For Baris = 0 to 1 do
For Kolom = 0 to 1 do
C[Baris,Kolom] =
A[Baris,Kolom] - B[Baris,Kolom]
Endfor
Endfor
int i, j;
int c[i][j], a[i][j], b[i][j];

for (i = 0; i < rows; i++)


for (j= 0; j < cols; j++)
c[i][j] = a[i][j] -b[i][j];
Perkalian Matriks dengan Konstanta

3 x
Hasilnya adalah =
For Baris = 0 to 1 do
For Kolom = 0 to 2 do
C[Baris,Kolom] = 3 * A[Baris,Kolom]
Endfor
Endfor
int i, j;
int a[i][j], b[i][j];

for (i = 0; i < rows; i++)


for (j= 0; j < cols; j++)
b[i][j] = 3 * a[i][j];
Perkalian 2 buah Matriks
Kedua matriks harus memiliki bentuk m x n untuk
matriks A dan p x q untuk matriks B
Sehingga matriks hasil akan memiliki bentuk
mxq
Sehingga : (m x q) = (m x n) * (p x q)
Inputkan matriks A
Inputkan matriks B
Tampung hasil perkalian matriks pada matriks C
X
For i = 0 to 2 do
For j = 0 to 5 do
C[i,j] = 0
For k = 0 to 5 do
C[i,j] =C[i,j] + A[i,k] * B[k,j]
Endfor
Endfor
Endfor
int i, j, k
int rowsa = 2;
int colsb = 5 ;
Int colsa = 5;
for (i = 0; i < rowsa; i++)
for (j = 0; j< colsb; j++) {
c[i][j] = 0;
for (k = 0; k< colsa; k++)
c[i][j] += a[i][k] * b[k][j];
}
Diagonal Matriks
Matrisk harus bujur sangkar
Diagonal adalah elemen matriks yang baris dan
kolomnya sama

For Baris = 0 to 1 do
For Kolom = 0 to 1 do
if Baris= Kolom
print ( A[Baris,Kolom])
Endfor
Endfor
Transpose
Transpose adalah elemen baris matriks akan
menjadi kolom matriks dan sebaliknya kolom
matriks akan menjadi baris matriks.

For Baris = 0 to 1 do
For Kolom = 0 to 2 do
MatriksTranspose[Baris,Kolom]=
A[Kolom,Baris]
Endfor
Endfor
Questions?

Anda mungkin juga menyukai