Algoritma dan Pemrograman
Array
Eric Prakarsa Putra
ITBSS
Pengertian Array (Larik)
• Tipe data yang terdiri dari sejumlah komponen
elemen yang berjenis sama
• Contoh : char x[8];
Elemen Array
0 1 2 3 4 5 6 7
index
Deklarasi Variabel Array satu dimensi
• Tipe_Data nama_variabel[jumlah_elemen]
• Contoh :
char nama[20];
double daftarGaji[100];
float y[10];
long dfthrg[100];
dsb…
Contoh Pembuatan:
• Data nim siswa yang terdiri dari 8 karakter.
char nim[9];
• Data [Link], misalkan no telpon max 12 karakter
char notelp[13];
• Data 5 urut angka bilangan bulat
int x[5];
• Data 100 urut angka bilangan pecahan
float terserah[100];
Contoh Pengisian Array:
char x[8] = {‘a’,’y’,’a’,’m’};
Elemen Array
a y a m \0 \0 \0 \0
0 1 2 3 4 5 6 7
Contoh Pengisian Array:
char x[8] = “BSI”
Elemen Array
B S I \0 \0 \0 \0 \0
0 1 2 3 4 5 6 7
Contoh Pengisian Array:
char x[8];
x[0] = ‘B’;
x[1] = ‘S’;
x[2] = ‘I’;
Elemen Array
B S I ? ? ? ? ?
0 1 2 3 4 5 6 7
Contoh Pengisian Array:
char x[8];
strcpy(x, “Kuliah”);
Elemen Array
K u l i a h \0 ?
0 1 2 3 4 5 6 7
Contoh Pengisian Array:
int x[8] = {2,5,7,9,10,14};
Elemen Array
2 5 7 9 10 14 0 0
0 1 2 3 4 5 6 7
Contoh Pengisian Array:
int x[5]; 9 ? ? ? 10
x[0] = 9;
0 1 2 3 4
x[4] = 10;
float t[3];
? 9.5 2.12
t[1] = 9.5;
0 1 2
t[2] = 2.12;
Membaca isi Array
Contoh isi array sbb:
9 7 12 23 10
0 1 2 3 4
Untuk membaca atau mendapatkan nilai dari elemen
ke 2 dari array diatas yaitu:
x[2];
Untuk digunakan pada perintah cout bisa sbb:
cout<<x[2];
Latihan 1
1. Bagaimana cara membuat variabel untuk
menyimpan data nama jabatan. Nama jabatan :
“Presiden Direktur”?
2. Dari isi array.
– char x[9] = “buku”;
Apa yang akan tampil bila diberikan perintah:
– cout<<x[2]<<x[3]; ??
Latihan 1
3. Untuk menyimpan deret angka berikut: 9,
10, 12.412, 2005, 90002.2
• Deklarasi variabel yang benar yaitu:
4. Deklarasi variabel:
long x[] = 1,2,3,4,5;
apa yang salah dari deklarasi diatas?
#include <iostream.h>
#include <conio.h>
main()
{
int data[5] = {2,4,5,1,2};
int elemen;
for(elemen = 0; elemen < 5; elemen++)
{
cout<<"Isi elemen ke-"<<elemen<<" : ";
cout<<data[elemen]<<endl;
}
getch();
}
Jawaban Latihan 1
1. char nmJab[18];
2. Yang tampil adalah “ku”
3. float x[5]; atau double x[5];
4. Deklarasi variable array untuk inisialisasi
nilai pada tipe data angka harus diberi
kurung kurawal.
contoh:
long x[] = {1,2,3,4,5};
#include <iostream.h>
#include <conio.h>
main()
{
int data[5];
int elemen;
for(elemen = 0; elemen < 5; elemen++)
{
cout<<"Masukkan elemen ke-"<<elemen<<":";
cin>>data[elemen];
}
cout<<endl<<endl<<"Hasil pengisian array :"<<endl;
for(elemen = 0; elemen < 5; elemen++)
{
cout<<"Isi elemen ke-"<<elemen<<":"<<data[elemen]<<endl;
}
getch();
}
#include <iostream>
#include <conio>
main()
{
int data[100];
int max, elemen;
cout<<"Jumlah elemen yang ingin di masukkan : ";
cin>>max;
for(elemen = 0; elemen < max; elemen++)
{
cout<<"Masukkan elemen ke-"<<elemen<<":";
cin>>data[elemen];
}
cout<<endl<<endl<<"Hasil pengisian array :"<<endl;
for(elemen = 0; elemen<max; elemen++)
{
cout<<"Isi elemen ke-"<<elemen<<":"<<data[elemen]<<endl;
}
getch();
}
#include <iostream>
#include <conio>
main()
{
int data[10] = {10,110,120,20,130,150,200,250,50,100};
int cari, elemen, ketemu = 0;
cout<<"Masukkan angka yang ingin di cari : ";
cin>>cari;
for(elemen = 0; elemen < 10; elemen++)
{
if(data[elemen] == cari){
cout<<"Angka yang di cari adalah : "<<cari<<endl;
cout<<"ditemukan di index ke- : "<<elemen<<endl;
ketemu++;
}
}
if(ketemu == 0){
cout<<"Angka "<<cari<<" tidak di temukan!";
}
getch();
}
• Program tadi akan membuat 10 deret data yaitu:
10 110 120 20 130 150 200 250 50 100
0 1 2 3 4 5 6 7 8 9
• Dan algoritma yang dibuat untuk mencari angka secara
sekuensial. Coba jalankan program dan masukkan salah
satu angka yang ada pada deret.
• Dan coba jalankan kembali dengan memasukkan angka
yang tidak ada pada deret data!
#include <iostream.h>
#include <conio.h>
main()
{
int data[100], max, elemen, iMax=0, iMin=0;
cout<<"Jumlah elemen yang ingin di masukkan : "; cin>>max;
for(elemen = 0; elemen < max; elemen++)
{
cout<<"Masukkan elemen ke-"<<elemen<<":"; cin>>data[elemen];
}
cout<<endl<<endl<<"Hasil pengisian array :"<<endl;
for(elemen = 1; elemen<max; elemen++)
{
if(data[elemen] > data[iMax]){ iMax = elemen; }
if(data[elemen] < data[iMin]){ iMin = elemen; }
}
cout<<"Angka max adalah "<<data[iMax]<<" di index ke-"<<iMax<<endl;
cout<<"Angka min adalah "<<data[iMin]<<" di index ke-"<<iMin<<endl;
getch();
}
Array Multidimensi
• Dapat dianalogika-kan seperti Matrix, (terdiri
dari kolom dan baris)
• Contoh:
int data[4][3];
0 1 2
0 ? ? ?
1 ? ? ?
2 ? ? ?
3 ? ? ?
Contoh deklarasi
int data[4][3];
char dft[5][20];
float x[100][200];
Dst……
Contoh Kasus:
• Data nilai siswa perkelas
No. Pemrograman Database
1 100 90
2 90 80
3 78 100
4 90 90
5 66 100
• Untuk menyimpan dari data diatas, maka:
– int nilai[5][2];
#include <iostream.h>
#include <conio.h>
main()
{
int nilai[5][2] = {{100,90},
{90,80},
{78,100},
{90,90},
{66,100}};
int baris, kolom;
cout<<"Isi dari array dua dimensi nilai[5][2] : \n";
for(baris = 0; baris < 5; baris++)
{
for(kolom=0; kolom<2; kolom++)
{
cout<<nilai[baris][kolom]<<" , ";
}
cout<<endl;
}
getch();
}
#include <iostream.h>
#include <conio.h>
main()
{
int nilai[5][2], baris, kolom;
for(baris = 0; baris < 5; baris++){
for(kolom=0; kolom<2; kolom++){
cout<<"nilai["<<baris<<"]["<<kolom<<"] : ";
cin>>nilai[baris][kolom];
}
cout<<endl;
}
cout<<"Isi dari array dua dimensi nilai[5][2] : \n";
for(baris = 0; baris < 5; baris++) {
for(kolom=0; kolom<2; kolom++){
cout<<nilai[baris][kolom]<<" , ";
}
cout<<endl;
}
getch();
}
Contoh Kasus:
• Data barang mini market
Kode Nama Barang Harga
A01 Tepung Terigu 12500
A02 Buku Tulis 7800
A03 Snack Kacang 3500
A04 Soda kue 800
• Untuk menyimpan dari data diatas, maka:
– char data[4][3][30];
#include <iostream.h>
#include <conio.h>
main()
{
char data[4][3][30] = {{"A01","Tepung Terigu","12500"},
{"A02","Buku Tulis","7800"},
{"A03","Snack Kacang","3500"},
{"A04","Soda Kue","800"}};
char cari[30];
int index, ketemu=0;
cout<<"Masukkan kode barang untuk mencari data barang : "; cin>>cari;
for(index=0;index<=4;index++){
if( !strcmp(data[index][0], strupr(cari)) ){
cout<<"Kode barang : "<<cari<<" ketemu di index
"<<index<<endl;
cout<<"Nama Barang adalah : "<<data[index][1]<<endl;
cout<<"Harga Barang adalah : "<<data[index][2]<<endl;
ketemu++;
}
}
if(ketemu==0)cout<<"Kode barang : "<<cari<<" tidak ditemukan!";
getch();
}
• Dari program diatas akan mengisi array Data multidimensi sbb:
0 1 2
0 A01 Tepung Terigu 12500
1 A02 Buku Tulis 7800
2 A03 Snack Kacang 3500
• Coba masukkan Kode
3 A04 Sodayang
data barang kue terdaftar
800
• Coba masukkan kode data barang yang tidak terdaftar
Latihan:
• Buatlah program dengan masukkan:
– Nama Pembeli : <input>
– Kode Tiket [X03 / Y02 / Z02] : <input>
– Jenis tiket [a / b / c ] : <input>
– Jumlah Beli : <input>
• ketentuan data sbb:
Kode Nama Tiket Eco (a) VIP (b) VVP (c)
Tiket
X03 Jazz Concert 2012 50.000 250.000 1.000.000
Y02 Dewa 19 Concert 15.000 150.000 380.000
Z02 Diva Concert 25.000 200.000 560.000
• Layar keluaran:
– Nama Pembeli : <output>
– Nama tiket : <output>
– Harga Tiket : <output>
– Jumlah Beli : <output>
– Total Harga : <output>
#include <iostream>
#include <conio>
#include <stdlib>
main()
{
char data[3][5][30] = {
{"X03", "Java Jazz Concert", "50000", "250000", "1000000"},
{"Y02", "Dewa 19 Concert", "15000", "150000", "380000"},
{"Z02", "Diva Concert", "25000", "200000", "560000"}};
char np[20], kt[4], jt;
int idxketemu=-1, index, idxjt, jb;
long harga, total;
cout<<"Nama Pembeli : "; [Link](np, 20);
cout<<"Kode Tiket [X03 / Y02 / Z02] : "; cin>>kt;
cout<<"Jenis Tiket [a / b / c] : "; cin>>jt;
cout<<"Jumlah beli : "; cin>>jb;
clrscr();
for(index=0; index<3; index++){
if(!strcmp(data[index][0],kt)){
idxketemu = index;
break;
}
}
idxjt = jt == 'a'? 2 : (jt == 'b' ? 3 : 4);
if(idxketemu>=0) {
clrscr();
cout<<"Nama Pembeli : "<<np<<endl;
cout<<"Nama Tiket : "<<data[idxketemu][1]<<endl;
harga = atoi(data[idxketemu][idxjt]);
cout<<"Harga Tiket : "<<harga<<endl;
cout<<"Jumlah beli : "<<jb<<endl;
total = harga * jb;
cout<<"Total Harga : "<<total<<endl;
}else{
cout<<"Maap, kode tiket tidak tersedia!";
}
getch();
}
Tugas
• Buatlah 1 Buah Program untuk menghitung Perkalian Matriks dengan Ordo 3x3
• Ketentuan:
Siapkan 3 Buah Matriks dengan Ukuran xxxxx Matriks1[3][3], Matriks2[3][3],
Matriks3[3][3];
• Gunakan Logika
• Matriks3[1][1] = Matriks1[1][1]*Matriks2[1][1] + Matriks1[1][2]*Matriks2[2][1]
+ Matriks1[1][3]*Matriks2[3][1]
• Matriks3[1][2] = Matriks1[1][1]*Matriks2[1][2] + Matriks1[1][2]*Matriks2[2][2]
+ Matriks1[1][3]*Matriks2[3][2]
• Matriks3[1][3] = Matriks1[1][1]*Matriks2[1][3] + Matriks1[1][2]*Matriks2[2][3]
+ Matriks1[1][3]*Matriks2[3][3]
• Matriks3[2][1] = Matriks1[2][1]*Matriks2[1][1] + Matriks1[2][2]*Matriks2[2][1]
+ Matriks1[2][3]*Matriks2[3][1]
• dst