Anda di halaman 1dari 14

MATERI 6

LARIK (ARRAY) & FUNGSI


1.1 LARIK (ARRAY)
Array atau yang juga biasa disebut larik merupakan koleksi data dimana setiap elemen memakai nama
yang sama dan bertipe sama dan setiap elemen diakses dengan membedakan indeks array-nya. Misal,
sebuah array bernama nil yang terdiri dari 5 data dengan tipe int, dapat digambarkan sebagai berikut:
0 1 2 3 4

(int)
Dilihat dari dimensinya array dapat dibagi menjadi Array dimensi satu, array dimensi dua dan array
multi-dimensi. Beberapa hal yang perlu diperhatikan bahwa array memiliki beberapa sifat sebagai berikut
:
1) Kumpulan data bertipe sama yang menggunakan nama yang sama
2) Sejumlah variabel dapat memakai nama yang sama
3) Antara satu variabel dengan variabel lain didalam array dibedakan berdasarkan subcript
4) Subcript adalah berupa bilangan di dalam kurung siku [ ]
5) Melalui subcript elemen array dapat diakses
6) Elemen array tidak lain adalah masing-masing variabel di dalam array
Array 1 dimensi
Tiap ruang kosong merupakan tempat untuk masing-masing elemen array bertipe integer. Penomorannya
berawal dari 0 sampai 4, sebab dalam array index pertama selalu dimulai dengan 0.
Contoh pendeklarasiannya, misalnya: int nil[5] = { 1,3,6,12,24 }
Maka di penyimpanan ke dalam array dapat digambarkan sebagai berikut:
0 1 2 3 4
1 3 6 12 24
Mengakses nilai array
Untuk mengakses nilai yang terdapat dalam array, mempergunakan sintak:
nama[index];
Pada contoh di atas, variabel nil memiliki 5 buah elemen yang masing-masing berisi data. Pengaksesan
tiap-tiap elemen data adalah:
Nil [0] nil [1] nil [2] nil [3] nil [4]
Contoh program array 1 dimensi
#include <iostream>
using namespace std;
int main()
{
int a[5]= {100, 200, 300, 400, 500}; //deklarasi array a
int b[3] = {600, 700, 800}; //deklarasi array b
cout<<"Nilai elemen 1 array a adalah: "<<a[0]<<endl;
cout<<"Nilai elemen 2 array a adalah: "<<a[1]<<endl;
cout<<"Nilai elemen 3 array a adalah: "<<a[2]<<endl;
cout<<"Nilai elemen 4 array a adalah: "<<a[3]<<endl;
cout<<"Nilai indeks 5 array b adalah: "<<b[4]<<endl;
cout<<"Nilai indeks 0 array b adalah: "<<b[0]<<endl;
cout<<"Nilai indeks 1 array b adalah: "<<b[1]<<endl;
cout<<"Nilai indeks 2 array b adalah: "<<b[2]<<endl;
return 0;
}

Contoh array 1 dimensi menggunakan perulangan


#include <iostream>
using namespace std;
int main()
{
int i;
char data[6];
data[0]='A';
data[1]='B';
data[2]='C';
data[3]='D';
data[4]='E';
data[5]='F';
int a[5]= {100, 200, 300, 400, 500}; //deklarasi array a
int b[] = {600, 700, 800}; //deklarasi array b
for (i=0; i<6;i++)
cout<<"Nilai elemen ke "<< i <<" array data adalah:"<<data[i]<<endl;
cout<<"Nilai elemen 1 array a adalah: "<<a[0]<<endl;
cout<<"Nilai elemen 2 array a adalah: "<<a[1]<<endl;
cout<<"Nilai elemen 3 array a adalah: "<<a[2]<<endl;
cout<<"Nilai elemen 4 array a adalah: "<<a[3]<<endl;
cout<<"Nilai indeks 5 array b adalah: "<<b[4]<<endl;
cout<<"Nilai indeks 0 array b adalah: "<<b[0]<<endl;
cout<<"Nilai indeks 1 array b adalah: "<<b[1]<<endl;
cout<<"Nilai indeks 2 array b adalah: "<<b[2]<<endl;
return 0;
}

Array Dua Dimensi


Struktur array yang dibahas di atas, mempunyai satu dimensi, sehingga variabelnya disebut dengan
variabel array berdimensi satu. Pada bagian ini, ditunjukkan array berdimensi lebih dari satu, yang sering
disebut dengan array berdimensi dua. Sebagai contoh, sebuah matrik B berukuran 3 x 2 dapat
dideklarasikan sebagai berikut:
Int b[2][3] = {{2,4,1},{5,3,7}};
yang akan menempati lokasi memori dengan susunan sebagai berikut:
1 2
3 4
5 6

Contoh program array 2 dimensi


Diketahui: Isi array int A[2][3]={{1,2,3},{4,5,6}}; Tampilkan dalam bentuk matriks 3X2 dan 2x3

#include <iostream>

using namespace std;

int main (){


int matrik [3][2] = {{1,2},{3,4},{5,6}};
int a,b;

for (a=0;a<3;a++){
for (b=0;b<2;b++){
cout<<matrik[a][b]<<" ";
}
cout<<endl;
}
cout<<"\n\n\t====================";
cout<<"\n\t= Arbain nim 2007016054 =\n";
cout<<"\t========================\n\n";

//menampilkan matriks 2x3


{ int A[2][3]={{1,2,3},{4,5,6}};
for(int i=0; i<2; i++)
{ for(int j=0; j<3; j++)
{ cout<<A[i][j]<<" ";
} cout<<endl;
}
}
return 0;
}

Contoh array 2 dimensi penjumlahan


#include <iostream>
using namespace std;
int main(void) {
int t, i, A[2][3],B[2][3],C[2][3];
for(t=0; t<2; t++)
for(i=0; i<3; i++)
A[t][i] = (t*3)+i+1;
cout << "MATRIK A" << endl;
for(t=0; t<2; t++) {
for(i=0; i<3; i++)
cout <<A[t][i] << " ";
cout << endl;
}
for(t=0; t<2; t++)
for(i=0; i<3; i++)
B[t][i] = (t*3)+i+1;
cout << endl;
cout << "MATRIK B" << endl;
for(t=0; t<2; t++) {
for(i=0; i<3; i++)
cout <<B[t][i] << " ";
cout << endl;
}
for(t=0; t<2; t++)
for(i=0; i<3; i++)
C[t][i] = A[t][i]+B[t][i];
cout << endl;
cout << "MATRIK C = A + B" <<
endl;
for(t=0; t<2; t++) {
for(i=0; i<3; i++)
cout <<C[t][i] << " ";
cout << endl;
}
return 0;
}

Contoh array 2 dimensi bang tolong coba ini perbaiki kenapa bias salah
yah hasil penjumlahannya
#include <iostream>
using namespace std;
int main(){
//Deklarasi array 2 dimensi
//dengan jumlah elemen baris= 2
//dan jumlah elemen kolon = 2

int matrika [2][2];


int matrikb [2][2] = {{1,2},{3,4}};
int matrikc [2][2];
//Mendeklarasikan variabel untuk
//Indeks perulangan
int i,j;
cout<<"\t===========================";
cout<<"\n\t Penjumlahan Matrik Ordo 2x2 =\n";
cout<<"\t===========================\n\n\n";
//Mengisi nilai kedalam
//elemen-elemen array matrika
//sedangkan elemen-elemen array matrikb
//sudah di isi soat deklarasi (inisialisasi)
for(i=0;i<2;i++){
for(j=0;j<2;j++){
cout<<"Matrik a ["<<i<<"]["<<j<<"] = ";
cin>>matrika[i][j];

}
}
//Melakukan penjumlahan array matrik a dan matrik b
// dan menyimpan hasilnya ke array matrik c
for (i=0;i<2;i++){
for (j=0;j<2;j++){
matrikc[i][j]= matrika[i][j] + matrikb[i][j]; }}
//Menampilkan matrik a
cout<<"\nMatrik A\n";
for (i=0;i<2;i++){
for (j=0;j<2;j++){
cout<<matrika[i][j]<<" ";
}

cout<<endl;
}
//Menampilkan matrik b
cout<<"\nMatrik B\n";
for(i=0;i<2;i++){
for(j=0;j<2;j++){
cout<<matrikb[i][j]<<" ";
}
cout<<endl;
}
//Menampilkan hasil penjumlahan / matrik c
// (dalan bentuk matrik ordo 3x2)
//Menampilkan matrik a
cout<<"\nmatrik C atau hasil\n";
for(i=0;i<2;i++){
for(j=0;j<2;j++){
cout<<matrikc[i][j]<<" ";
}
cout<<endl;
}
cout<<"\n\n\t====================";
cout<<"\n\t= Arbain nim 2007016054 =\n";
cout<<"\t========================\n\n";
return 0;
}

Array Multidimensi
Array multi-dimensi merupakan array yang mempunyai ukuran lebih dari dua. Bentuk pendeklarasian
array sama saja dengan array dimensi satu maupun array dimensi dua. Biasanya sering di gunakan dalam
pembuatan matriks yang mewajibkan membentuk 3 kolom/ baris atau bias lebih.
#include <iostream>
using namespace std;
int main(){
//Deklarasi array n dimensi
//dengan jumlah elemen baris= n
//dan jumlah elemen kolon = n
int matrik1 [10];//array 1 dimensi
int matrik2 [10][10];//array 2 dimensi
int matrik3 [10][10][10];//array 3 dimensi
int i,j,k,n;
cout<<"Contoh array 3 dimensi\n";
cout<<"masukkan ukuran array : ";cin>>n;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
for(k=0;k<n;k++){
cout<<"Matrik a ["<<i<<"]["<<j<<"]["<<k<<"] = ";
cin>>matrik3[i][j][k];
}}}
cout<<"\nArray 3 dimensi adalah\n";
for(i=0;i<n;i++){
for(j=0;j<n;j++){
for(k=0;k<n;k++){
cout<<matrik3[i][j][k]<<" ";
}cout<<endl;}cout<<endl;}
}

1.2 FUNGSI
Menurut definisinya, fungsi adalah suatu blok program yang digunakan untuk
melakukan proses-proses tertentu. Sebuah fungsi dibutuhkan untuk menjadikan
program yang akan kita buat menjadi lebih modular dan mudah untuk dipahami
alurnya. Dengan adanya fungsi, maka kita dapat mengurangi duplikasi kode
program sehingga performa dari program yang kita buat pun akan meningkat.
Dalam bahasa C, sebuah program terdiri atas fungsi-fungsi, baik yang
didefinisikan secara langsung di dalam program maupun yang disimpan di dalam
file lain (misalnya file header). Satu fungsi yang pasti terdapat dalam program
yang ditulis menggunakan bahasa C adalah fungsi main(). Fungsi tersebut
merupakan fungsi utama dan merupakan fungsi yang akan dieksekusi pertama kali.
Dalam bahasa C, fungsi terbagi menjadi dua macam, yaitu fungsi yang
mengembalikan nilai (return value) dan fungsi yang tidak mengembalikan nilai.
Fungsi yang tidak mengembalikan nilai tersebut dinamakan dengan void function.
Bagi Anda yang sebelumnya pernah belajar bahasa Pascal, void function ini serupa
dengan procedure yang terdapat di dalam bahasa Pascal singkatnya fungsi merupakan sebuah blok
instruksi yang dieksekusi dan dipanggil dari bagian lain tubuh program. Format penulisannya adalah
sebagai berikut:
tipe nama(argumen1, argumen2,…) pernyataan;
Dimana:
tipe :berisi tipe data yang akan dikembalikan oleh fungsi
nama :merupakan pengenal untuk memanggil fungsi
argumen : (dapat dideklarasikan sesuai dengan kebutuhan). Tiap-tiap argument terdiri dari tipe-tipe data
yang diikuti oleh pengenalnya. Sama seperti mendeklarasikan variable baru (contoh, int x).
pernyataan : merupakan bagian tubuh fungsi. Dapat berupa pernyataan tunggal ataupun pernyataan
majemuk.
Suatu fungsi dibuat untuk maksud menyelesaikan tugas tertentu. Suatu fungsi
dapat hanya melakukan suatu tugas saja tanpa memberikan suatu hasil keluaran atau
melakukan suatu tugas dan kemudian memberikan hasil keluaran. Fungsi yang hanya
melakukan suatu tugas saja tanpa memberikan hasil keluaran misalnya adalah fungsi untuk
menampilkan hasil di layar.

contoh ;
//contoh fungsi
#include <iostream>
using namespace std;
int penjumlahan(int a, int b)
{
int r;
r=a+b;
return (r);
}
int main()
{
int z;
z=penjumlahan(5,3);
cout<<"Hasil penjumlahan = " << z;
return 0;
}

Hasil eksekusinya adalah :


Hasil penjumlahan = 8
Ketika program dieksekusi, yang dijalankan pertama kali adalah fingsi main(). Terlihat jelas bahwa dalam
main() terdapat variable z dengan tipe data integer. Setelah itu, fungsi penjumlahan dipanggil. Maka akan
terdapat proses pertukaran data sebagai berikut:
int penjumlahan(int a, int b)
z = penjumlahan ( 5 , 3 );
maka setelah terjadi pengisian nilai, variable a akan terisi dengan nilai 5 dan variable b akan terisi dengan
nilai 3. Fungsi penjumlahan mendeklarasikan sebuah variable baru lagi (int r;) dan kemudian
menjumlahkan nilai r=a+b; dengan hasil akhir variable r = 8. Karena masing-masing variable a dan b
sudah terisi dengan nilai 5 dan 3.
Kode : return (r); merupakan pengakhir fungsi penjumlahan dan memberikan hasil akhir nilai r
kepada fungsi yang memanggilnya (dalam hal ini fungsi main()). Proses pengembalian nilai dapat
digambarkan sebagai berikut:
int penjumlahan(int a, int b) 8
z = penjumlahan ( 5 , 3 );
maka ketika perintah cout<<"Hasil penjumlahan = " << z; dijalankan, hasilnya adalah 8.
Scope (Batasan) Variabel
Variabel yang dideklarasikan di dalam tubuh fungsi, hanya dapat diakses oleh fungsi itu. Dan tidak dapat
dipergunakan di luar fungsi. Contoh: Pada program sebelumnya, variable a dan b atau r tidak dapat
digunakan dalam fungsi main(), sebab variable tersebut merupakan variable lokal dalam fungsi
penjumlahan. Demikian juga halnya dengan variable z. Tidak dapat dipergunakan dalam fungsi
penjumlahan karena merupakan variable lokal dalam fungsi main(). Selain variable lokal, terdapat pula
variable global yang dapat diakses dari mana saja. Dari dalam maupun luar tubuh fungsi. Untuk
mendeklarasikan variable global, harus dituliskan di luar fungsi atau blok instruksi.
#include<iostream>
using namespace std;
int kurang(int a, int b)
{
int r;
r=a-b;
return (r);
}
int main()
{
int x= 5, y=3, z;
z=kurang(7,2);
cout<<"Pertama : " << z<<endl;
cout<<"Kedua : " << kurang(7,2)<<endl;
cout<<"Ketiga : " << kurang (x,y) <<endl;
z=4+kurang(x,y);
cout<<"Keempat : "<<z<<endl;
return 0;
}

Hasilnya adalah :
Pertama : 5
Kedua : 5
Ketiga : 2
Keempat : 6

Dalam program di atas, terdapat sebuah fungsi yang dinamakan kurang. Fungsi ini mengerjakan tugas
untuk mengurangkan nilai dua buah variable dan kemudian mengembalikan hasilnya. Sedangkan di
dalam fungsi main(), terdapat beberapa kali pemanggilan terhadap fungsi kurang. Disana terdapat dengan
jelas perbedaan cara pengaksesan dan pengaruh terhadap hasilnya. Untuk lebih memperjelas, beberapa
sintak akan dijelaskan secara rinci sebagai berikut:
z=kurang(7,2);
cout<<"Pertama : " << z<<endl;
Jika diganti dengan hasil (sesuai dengan pemanggilan fungsinya), maka akan didapatkan baris:
z=5;
cout<<"Pertama : " << z<<endl;
sama seperti baris:
cout<<"Kedua : " << kurang(7,2)<<endl;
jika sesuai dengan pemanggilan fungsinya, maka akan didapatkan:
cout<<"Kedua : " << kurang(7,2)<<endl;
sedangkan untuk
cout<<"Ketiga : " << kurang (x,y) <<endl;
maka isi dari variabel x=5 dan y=3, sehingga dapat diartikan sebagai baris:
cout<<"Ketiga : " << kurang (5,3) <<endl;
demikian juga halnya dengan baris: z=4+kurang(x,y);
dapat diartikan dengan baris: z=4+kurang(5,3);

fungsi dengan pengeluaran (kali ini kita menggunakan perintah fungsi scanf)
#include <stdio.h>
int minimum (int, int);
main()
{
int a, b, kecil;
printf("Masukkan nilai a : ");
scanf("%d", &a);
printf("Masukkan nilai b : ");
scanf("%d", &b);
kecil = minimum(a, b);
printf("\nBilangan terkecil antara %d dan %d adalah%d\n\n", a, b,
kecil);
}
minimum(int x, int y)
{
if (x < y)
return(x);
else
return(y);
}
Contoh Fungsi
#include <iostream>
using namespace std;
int main() {
void skipbaris(int n);//prototype fungsi void
int kuadrat(int);//prototype fungsi kuadrat
int kalkulator(int,int,int);//fungsi kalkulator
cout<<"Bang Arba";
skipbaris(4);
cout<<"NIM 2007016054\n";
kuadrat(11);cout<<endl;
//huruf(5);
cout<<endl;kalkulator(23,43,2);
} //end main

void skipbaris(int n) { //fungsi penambah baris


for (int h = 1; h <= n; h++)
cout<<endl; }

int kuadrat(int x){ //fungsi kuadrat


cout<<"kuadrat dari "<<x<<" adalah "<<x*x; }

int kalkulator(int x,int y,int z){ //fungsi kalkulator


if(z==1){ cout<<x<<" + "<<y<<" = "<<x+y; }
else if(z==2){ cout<<x<<" - "<<y<<" = "<<x-y; }
else if(z==3){ cout<<x<<" * "<<y<<" = "<<x*y; }
else{ cout<<x<<" / "<<y<<" = "<<x/y; }
}
//Baris terakhir

Anda mungkin juga menyukai