ALGORITMA PEMROGRAMAN
Array (Larik)
Sulyono, [Link],. [Link] | sulyono@[Link]
ARRAY (LARIK)
Filosofi Array
pnjg lebar luas kllg
var
panjang : integer;
lebar : integer;
luas : integer; ARRAY integer
Keliling : integer;
var
mhs1 : string[40];
mhs2 : string[40]; ARRAY string[40]
mhs3 : string[40];
.
.
mhs100 : string[40]; mhs1 mhs2 ........ mhs100
Definisi Array
• Array digunakan untuk menyimpan sekumpulan
data yang bertipe sama.
• Setiap data diakses langsung melalui indeksnya.
• Banyaknya data array harus sudah diketahui
sebelum program dieksekusi.
• Array :
Array 1 dimensi
Array 2 dimensi
2 Jenis Array
Array 1 Dimensi
&
Array Multidimensi (Matriks)
ARRAY
[Link](LARIK)
1 Dimensi
Perbedaan deklarasi variabel array dengan variabel biasa
int a; hanya 1 nilai untuk variabel a
int a[10]; terdapat 10 slot nilai untuk
variabel a
Contoh : int a[7] = {1,2,3,5,43,5,6};
Arrays dapat menggunakan nama apapun (yang dapat digunakan
dalam bahasa C/C++), selama tidak memiliki nama yang sama
dengan variabel tunggal lain.
Isi array
Dalam bahasa C/C++, array dimulai dari 0.
Jika A merupakan array dengan jumlah elemen
10, maka variabel yang adalah A[0], A[1], ..., A[9]
A 5 9 15 8 -7 21 1 -3 11 -1 isi array
[0][1][2][3][4][5][6][7][8][9] indeks array
A[0] bernilai 5
A[4] bernilai -7
Berapa nilai A[6] ?
Berapa nilai A[9] ?
Mengisi Nilai Elemen Array
Nilai setiap elemen array dapat diisikan
langsung
A[0] = 100; /*Nilai elemen A[0] adalah 100*/
B[5] = 35; /*Nilai elemen B[5] adalah 35 */
A[0] = B[5];/*Nilai elemen A[0] adalah 35 */
C = -99; /*C adalah variabel biasa, bukan
array. C bernilai -99 */
B[5] = C; /*Nilai elemen B[5] adalah -99.
A[0] tetap bernilai 35 */
Menampilkan Nilai Array
#include <iostream>
using namespace std;
int main()
{
int A[3];
int B = 35;
A[0] = 70;
A[1] = B;
cout<<“Isi nilai A[0] adalah”<<A[0]<<“\n”;
cout<<“Isi nilai A[1] adalah”<<A[1]<<“\n”;
cout<<“Silakan user mengisi nilai A[2]:”;cin>>A[2];
cout<<“Isi nilai A[2] adalah”<<A[2]<<“\n”;
system (“PAUSE”);
}
Array initialization [1]
Meskipun tidak dimungkinkan mengoperasikan array secara
langsung, namun pemberian nilai dapat dilakukan
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
Bila initializers-nya lebih sedikit dari elements array, sisanya
akan dianggap bernilai 0.
int a[10] = {0, 1, 2, 3, 4, 5, 6};
nilai a[7], a[8], dan a[9] dianggap 0.
Array initialization [2]
Bila terdapat initializer, maka dimensi array dapat diabaikan
int b[] = {10, 11, 12, 13, 14};
b merupakan array yang memiliki 5 elemen karena di-inisialisasi
dengan 5 angka. Perhatikan bahwa variable b dinyatakan
sebagai b[] untuk menjelaskan bahwa b adalah sebuah array
Jika elemen array adalah karakter, maka initializer dapat
berupa string constant:
char s1[7] = "Hello,";
char s2[10] = "there,";
char s3[] = "world!";
Array dan loop
Untuk memberikan nilai atau mengoperasikan suatu array, dapat
digunakan sebuah loop:
for(int i = 0; i < 10; i = i + 1)
{ a[i] = 0; }
/* a[0] hingga a[9] bernilai 0 */
for(i = 0; i < 10; i++) /* i++ adalah sama dengan i=i+1 */
{ b[i] = a[i]+1; }
/* b[0] hingga b[9] bernilai 1 */
for(i = 0; i < 10; i++)
{ c[i] = b[i]+i; }
/* untuk i=0 c[0]=1+0=1,
untuk i=1 c[1]=1+1=2,
untuk i=2 c[2]=1+2=3,
berapa nilai c[9]? */
Contoh Deklarasi Array [1]
#include <iostream>
using namespace std;
int main ()
{
int n[10];
for (int i=0; i<10; i++)
{ n[i] = 0; }
cout<<”Indeks Elemen Nilai\n”;
for (i=0; i<10; i++)
{ cout<<i<<” ”<<n[i]<<”\n”; }
system (“PAUSE”);
}
Contoh Deklarasi Array [2]
#include <iostream.h>
/* Jumlah array ditentukan dalam deklarasi dengan jumlah
data yang lebih sedikit */
int main ()
{
int n[10] = {32, 27, 64, 18, 95};
cout<<”Elemen ke Nilai\n”;
for (i=0; i<10; i++)
{ cout<<i<<” ”<<n[i]<<”\n”; }
return 0;
}
Contoh Deklarasi Array [3]
#include <iostream>
// Jumlah array tidak ditentukan
int main ()
{
int n[] = {32, 27, 64, 18, 95};
cout<<”Elemen ke Nilai\n”;
for (i=0; i<10; i++)
{ cout<<i<<” ”<<n[i]<<”\n”; }
return 0;
}
Const
Contoh:
// Menyatakan ukuran array
dengan const
#include <iostream>
using namespace std;
int main ()
{
const int arraySize = 5;
int n[arraySize];
cout<<"Elemen Nilai\n";
for (int i=0; i < arraySize; i++)
{
n[i] = 2 + 2 * i;
cout<<i<<” ”<<n[i]<<”\n”;
}
system (“PAUSE”);
}
Menghitung Nilai Rata-rata
Nilai rata-rata = Total Penjumlahan seluruh elemen
banyaknya elemen
arraySize1
#include <iostream>
=
n[i]
i 0
int main ()
{
const int arraySize = 12;
int n[arraySize] = {1,3,5,7,9,4,5,6,44,6,88,45};
int total = 0;
for (int i=0; i < arraySize; i++)
{
total = total + n[i];
}
cout<<"Total nilai = "<<total<<"\n";
cout<< "Rata-rata = "<< total/arraySize<<"\n";
return 0;
}
Mencari Nilai Array
#include <iostream.h>
main ()
{
const int arraySize = 12;
int n[arraySize] = {1,3,5,7,9,4,5,6,44,6,88,45};
int Bil;
cout<<“Masukkan nilai yang ingin dicari = “;
cin>>Bil;
for (int i=0; i < arraySize; i++)
{ if (n[i] == Bil)
{
cout<<Bil<<“is Found!!\n“;
break;
}
}
return 0;
}
Pengurutan (shorting) array [1]
Metoda/algoritma yang digunakan di sini adalah metoda
gelembung (bubble short)
Untuk shorting dari bilangan terkecil ke bilangan
terbesar (ascending) sebanyak n bilangan, dengan
metoda ini bilangan terbesar akan digeser ke paling
kanan.
Selanjutnya bilangan terbesar ke-2 digeser ke posisi n-
1, dst.
Pengurutan (shorting) array [2]
#include <iostream>
int main ()
{
// blok deklarasi dan penulisan urutan awal
const int arraySize = 12;
int dummy;
int n[arraySize]= {1,96,5,7,9,4,5,6,44,6,88,45};
cout<<"Urutan data awal:\n";
for(int i=0;i<arraySize;i++)
{
cout<<n[i]<<" ";
}
Pengurutan (shorting) array [3]
// blok pergeseran bilangan terbesar
for(i=0; i< arraySize-1; i++)
{
for(int j=0; j<arraySize-i; j++)
{
if(n[j]>=n[j+1])
{
dummy=n[j];
n[j]=n[j+1];
n[j+1]=dummy;
}
else;
}
}
Pengurutan (shorting) array [4]
// blok print out hasil shorting
cout<<“\n\nUrutan data dari kecil ke besar:\n";
for(i=0;i<arraySize;i++)
{
cout<<n[i]<<" ";
}
cout<<"\n\nUrutan data dari besar ke kecil:\n";
for(i=arraySize-1;i>=0;i--)
{
cout<<n[i]<<" ";
}
cout<<"\n\n";
return 0;
}
Multidimension array
Dimungkinkan untuk memiliki array dengan dimensi lebih dari satu.
Setiap dimensi direpresentasikan oleh subscript. Array dua dimensi
memiliki dua subscript, 3 dimensi memiliki 3 subscript, dst.
Array dapat berdimensi berapapun, tapi umumnya digunakan satu
atau dua dimensi.
Array 3 dimensi
[2,0,0]
[1,0,0]
[2,0,4]
[1,0,4]
[0,0,4]
[0,0,0] [0,0,1] [0,0,2] [0,0,3] [0,0,4]
[2,1,4]
[1,1,4]
[0,1,4]
[0,1,0] [0,1,1] [0,1,2] [0,1,3] [0,1,4]
[2,2,4]
[1,2,4]
[0,2,4]
[0,2,0] [0,2,1] [0,2,2] [0,2,3] [0,2,4]
Initializing multidimension array
Suatu nilai dapat diberikan (assigned) kedalam elemen array dengan
urutan array yang terakhir berubah terlebih dahulu ketika array
sebelumnya tetap. Maka array:
int theArray[5][3] memiliki urutan 3 elemen pertama bagian dari
theArray[0]; kemudian 3 elemen berikutnya adalah bagian dari
theArray[1]; dst.
Untuk meng-initialize array dapat dilakukan dengan:
int theArray[5][3] = {
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 };
Atau untuk kejelasan dapat digunakan tambahan kurung kurawal:
int theArray[5][3] = { {1,2,3},
{4,5,6},
{7,8,9},
{10,11,12},
{13,14,15} };
Contoh multidimension array [1]
#include <iostream>
int main()
{
int a2[2][4];
// memberi nilai
int i, j;
for(i = 0; i < 5; i = i + 1)
{
for(j = 0; j < 7; j = j + 1)
{ a2[i][j] = 10 * i + j;
cout<<"Nilai a2["<<i<<","<<j<<"]="<<a2[i][j]<<"\n";
}
}
}
TUGAS
Buatlah Program dengan ARRAY untuk
menginputkan nilai 10 orang siswa, data yang
diinput adalah NPM, Nama dan Nilai.
Jika Nilai >= 60 maka keterangan Lulus