MateriM9-10 updated Array

advertisement
SL-1201 Pengantar Pemrograman
Materi: Array
Fakultas Teknik Sipil & Lingkungan
Definisi Array [1]
Array adalah suatu set dari alokasi data, dengan jenis data yang
sama untuk tiap alokasi tersebut.
Setiap alokasi data disebut sebagai elemen dari array.
Untuk mendeklarasikan sebuah array, tuliskan jenis data dalam
array tersebut, nama array dan diikuti dengan subscript. Subscript
disini adalah menyatakan jumlah elemen array yang dituliskan di
dalam kurung siku
Contohnya,
int IntArray[25];
sebagai deklarasi sebuah array yang memiliki 25 alokasi data
(elemen) dengan jenis data integer bernama IntArray.
Definisi Array [2]
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
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
[0][1][2][3][4][5][6][7][8][9]
A[0] bernilai 5
A[4] bernilai -7
Berapa nilai A[6] ?
Berapa nilai A[9] ?
isi array
indeks array
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
A[0] = B[5];/*Nilai elemen A[0] adalah
C = -99;
/*C adalah variabel biasa,
array. C bernilai -99 */
B[5] = C;
/*Nilai elemen B[5] adalah
A[0] tetap bernilai 35 */
35 */
35 */
bukan
-99.
Menampilkan Nilai Array
#include <iostream.h>
Hasil Tampilan:
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”;
}
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 diinisialisasi 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]
Hasil Tampilan
#include <iostream.h>
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”; }
return 0;
}
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.h>
// Jumlah array tidak ditentukan
main ()
{
int n[] = {32, 27, 64, 18, 95};
cout<<”Elemen ke
Nilai\n”;
for (i=0; i<10; i++)
{ cout<<i<<”
return 0;
}
”<<n[i]<<”\n”; }
Const
Contoh:
// Menyatakan ukuran array
dengan const
#include <iostream.h>
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”;
}
return 0;
}
Enum [1]
Contoh:
/* Menyatakan ukuran array dengan const dan menggunakan
enumerasi */
#include <stdio.h>
int main()
{
enum WeekDays {Sun,Mon,Tue,Wed,Thu,Fri,Sat,DaysInWeek};
int ArrayWeek[DaysInWeek] = {10, 20, 30, 40, 50, 60, 70};
cout<<"The value at Tuesday is: “;
cout<<ArrayWeek[Tue];
return 0;
Output:
The value at Tuesday is: 30
Enum [2]
Baris ke-6 menyatakan enumeration (enum) bernama WeekDays,
dengan 8 elemen. Sunday = 0 dan DaysInWeek = 7.
enum WeekDays
{Sun,Mon,Tue,Wed,Thu,Fri,Sat,DaysInWeek};
Baris ke-10 menggunakan enumerated constant Tue sebagai
offset/lokasi dalam array. Karena Tue = 2 (elemen ke-3 dalam
array), maka DaysInWeek[2] memberikan hasil 30.
cout<<ArrayWeek[Tue];
Array dengan elemen terstruktur
int main()
{
typedef struct SISWA{
long NIM;
char Nama[25];
char Kota[30];
};
SISWA A[2]; // deklarasi array A berisi 2 SISWA
//menerima masukan user
for (int i=0;i<2;i++){
cout<<"NIM: ";cin>>A[i].NIM;
cout<<"Nama: ";cin>>A[i].Nama;
cout<<"Kota: ";cin>>A[i].Kota;
}
//menampilkan isi
for (int i=0;i<2;i++){
cout<<"Siswa ke-i\n";
cout<<A[i].Nama<<"("<<A[i].NIM<<")";
cout<<" dari "<<A[i].Kota<<"\n";
}
return 0;
}
Contoh-contoh Pengoperasian Array
Menghitung Nilai Rata-rata
Nilai rata-rata = Total Penjumlahan seluruh elemen
banyaknya elemen
arraySize1
=
#include <iostream.h>
 n[i]
i 0
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.h>
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
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 1 dimensi
[0]
[1]
[2]
[3]
[4]
Array 2 dimensi
[0,0]
[0,1]
[0,2]
[0,3]
[0,4]
[1,0]
[1,1]
[1,2]
[1,3]
[1,4]
Array 3 dimensi
[2,0,0]
[1,0,0]
[2,0,4]
[1,0,4]
[0,0,0]
[0,0,1]
[0,0,2]
[0,0,3]
[0,0,4]
[0,0,4]
[2,1,4]
[1,1,4]
[0,1,0]
[0,1,1]
[0,1,2]
[0,1,3]
[0,1,4]
[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.h>
void main (void)
{
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";
}
}
}
Contoh multidimension array [2]
// print out
for(j = 0; j < 3; j = j + 1)
{ cout<<"\t"<<j<<":";
}
cout<<"\n";
for(i = 0; i < 5; i = i + 1)
{
cout<<i<<":";
for(j = 0; j < 7; j = j + 1)
{
cout<<"\t"<<a2[i][j]; }
cout<<"\n";
}
Output:
0:
1:
2:
3:
4:
0:
0
10
20
30
40
1:
1
11
21
31
41
2:
2
12
22
32
42
Download