Anda di halaman 1dari 42

ARRAY (LARIK)

algoritma dan dasar pemrograman


LARIK
• Larik adalah kumpulan dari nilai-nilai bertipe
sama dalam urutan tertentu yang
menggunakan sebuah nama yang sama.
• Nilai-nilai di suatu larik disebut dengan
elemen-elemen larik.
• Letak urutan dari suatu elemen larik
ditunjukkan oleh suatu subscript atau suatu
index.
LARIK
• Larik dapat berdimensi satu, dua, tiga, atau
lebih.
• Larik dimensi satu (one-dimensional array)
mewakili bentuk suatu vektor.
• Larik dimensi dua (two-dimensional array)
mewakili bentuk dari suatu matrik atau tabel.
• Larik dimensi tiga (three-dimensional array)
mewakili bentuk suatu ruang.
DEKLARASI LARIK
• Larik dideklarasikan dengan menyebutkan jumlah dari
elemennya yang ditulis di antara tanda ‘[]’. Contohnya:
int X[5]; //larik dimensi satu dengan nama X yang
dideklarasikan dengan tipe data int yang
mempunyai 5 buah elemen.
• Elemen-elemen dari larik X ini adalah:
X[0], X[1], X[2], X[3], dan X[4]
• Misalkan suatu variabel integer I bernilai 3, maka variabel
ini dapat digunakan sebagai indeks dari larik, yaitu X[I] yang
berarti menunjukkan elemen larik ke – 4 atau X[3].
• Untuk Bahasa C, elemen pertama dari suatu larik dimulai
dengan indeks nol.
DEKLARASI LARIK
• Deklarasi dapat juga langsung dengan memberikan nilai-nilai awal
elemen lariknya. Misalnya Vektor X berikut ini:
X = {5, 3, 7}
Vektor ini dapat dideklarasikan sebagai larik dimensi satu dengan
jumlah elemen 3 dengan nilai-nilai elemennya 5, 3, dan 7, seperti
berikut ini:
int X[3] = {5, 3, 7};
Nilai-nilai elemen larik ini adalah:
X[0] bernilai 5
X[1] bernilai 3
X[2] bernilai 7
Misalnya nilai elemen ke – 1 akan dikalikan dengan nilai elemen ke
– 3, maka dapat ditulis X[0] * X[2] dengan hasilnya adalah 35.
BEDA LARIK DENGAN VARIABEL BIASA
• Perbedaan utama antara larik dengan variabel biasa
adalah sebuah larik dapat mempunyai sejumlah nilai,
sedangkan sebuah variabel biasa hanya dihubungkan
dengan sebuah nilai saja.
• Misalnya terdapat tiga buah nilai, yaitu 8, 5, dan 7. Jika
nilai-nilai ini akan dihubungkan dengan sebuah nama
saja, maka dapat digunakan sebuah larik. Jika
digunakan variabel untuk menyimpan nilai-nilai
tersebut, maka harus digunakan tiga buah variabel
dengan nama-nama yang berbeda, misalnya variabel
X1 untuk menyimpan nilai 8, variabel X2 untuk nilai 5,
dan variabel X3 untuk nilai 7.
/* ----------------------------------------------------
Nama Program: ADP_Larik_1.cpp
Perbedaan Larik dengan Variabel Biasa
------------------------------------------------------ */

#include <stdio.h>
#include <stdlib.h>

main()
{
float X1=5, X2=3, X3=7, Total;

printf("Contoh Program Menghitung Tiga Buah Nilai\n");


printf("yang Disimpan pada Tiga Variabel\n");
printf("____________________________________\n");
printf("___________________________\n");
printf("\n");

Total = X1 + X2 + X3;
printf("Total = %.2f\n", Total);
printf("\n");

system("pause");
}
Hasil Eksekusi
BEDA LARIK DENGAN VARIABEL BIASA
• Contoh ADP_Larik_2.cpp pada slide
sebelumnya hanya praktis jika digunakan
untuk menjumlahkan nilai dari 3 variabel saja.
Tetapi jika jumlah variabel yang akan
dijumlahkan > 3, misalnya 1000, maka akan
lebih jika menggunakan larik untuk mewakili
nilai-nilai tersebut, seperti terlihat pada
contoh berikut ini.
/* ----------------------------------------------------
Nama Program: ADP_Larik_2.cpp
Perbedaan Larik dengan Variabel Biasa
------------------------------------------------------ */

#include <stdio.h>
#include <stdlib.h>

main()
{
float X[3]={5,3,7}, Total=0;
int I;

printf("Contoh Program Menghitung Tiga Buah Nilai ");


printf("yang Disimpan pada Tiga Variabel\n");
printf("____________________________________");
printf("___________________________\n");
printf("\n");

for(I=0;I<=2;I++) Total = Total + X[I];


printf("Total = %.2f\n", Total);
printf("\n");

system("pause");
}
Hasil Eksekusi
INISIALISASI LARIK TIDAK BERUKURAN
• Dalam mendeklarasikan larik dengan
memberikan nilai-nilai elemen awalnya,
jumlah dari elemen larik dapat ditulis ‘[]’. Larik
seperti ini disebut dengan larik yang tidak
berukuran.
• Perhatikan contoh pada slide berikut dimana
larik dimensi satu X yang mempunyai nilai-
nilai elemen 5, 3, dan 7 dideklarasikan dengan
tidak berukuran.
/* ---------------------------------------------
Nama Program: ADP_Larik_3.cpp
Inisialisasi Larik Tidak Berukuran
--------------------------------------------- */

#include <stdio.h>
#include <stdlib.h>

main()
{
float X[]={5,3,7}, Total=0;
int I;

printf("Contoh Program Inisialisasi Larik Tidak Berukuran\n");


printf("________________________________________\n");
printf("\n");

for(I=0;I<=2;I++) Total = Total + X[I];


printf("Total = %.2f\n", Total);
printf("\n");

system("pause");
}
Hasil Eksekusi
INISIALISASI LARIK TIDAK BERUKURAN
• Untuk larik tidak berukuran ini, bahasa C akan
secara otomatis menentukan ukuran (jumlah
elemen dari lariknya) tergantung dari jumlah
nilai-nilai elemen yang diberikan sewaktu
deklarasi.
• Pada contoh di slide sebelumnya jumlah nilai-
nilai elemen yang diberikan adalah sebanyak 3
buah, sehingga larik X tersebut dapat juga
dikatakan mempunyai 3 buah elemen.
INISIALISASI LARIK TIDAK BERUKURAN
• Permasalahan sering kali muncul jika programer
belum mengetahui jumlah dari elemen-elemen
lariknya.
• Permasalahan seperti ini sering terjadi untuk
suatu program yang menggunakan suatu larik
dengan jumlah elemennya ditentukan oleh
pemakai program, atau dengan kata lain, jumlah
elemen dari larik tidak ditentukan di dalam
program, tetapi ditentukan setelah program
dijalankan.
INISIALISASI LARIK TIDAK BERUKURAN
• Untuk mengatasi permasalahan seperti ini, jumlah elemen
dari larik dapat ditentukan terlebih dahulu di dalam
program secara maksimum dengan batasan memori yang
digunakan masih mencukupi. Misalnya jumlah elemen dari
larik ditentukan terlebih dahulu sebesar 1000 buah.
Pemakai program kemudian ditanyakan jumlah elemen
larik yang sebenarnya dengan batasan jumlah elemen
maksimumnya adalah sebanyak yang telah ditentukan di
dalam program. Misalny pemakai program hanya
menggunakan sebanyak 200 elemen larik saja, maka sisi
elemen yang telah ditentukan di dalam program tidak akan
digunakan, walaupun sudah “dipesankan” tempatnya di
dalam memori.
INISIALISASI LARIK TIDAK BERUKURAN
• Program berikut ini akan menghitung nilai total, rata-
rata dan deviasi standar (penyimpangan baku atau
standard deviation) dari sejumlah nilai data.
• Program ini mengijinkan pemakai program untuk
menentukan jumlah dari data. Jumlah dari data ini
menunjukkan jumlah dari elemen.
/* -----------------------------------------------
Nama Program: ADP_Larik_4.cpp //Hitung nilai rata-ratanya
Inisialisasi Larik Tidak Berukuran Rata = Total / N;
----------------------------------------------- */
//Hitung Nilai (Xi - Rata)^2
#include <stdio.h> for(I=0;I<N;I++)
#include <math.h> Xi_Rata_2 += ((X[I] - Rata) * (X[I] - Rata));
#include <stdlib.h>
//Hitung Deviasi Standar
main() SD = sqrt(Xi_Rata_2 / N);
{
int N, I; //Tampilkan hasil
float X[1000], Total=0, Rata, Xi_Rata_2=0, SD; printf("\n");
printf("Jumlah Data : %d\n", N);
printf("Contoh Program Untuk Menghitung Nilai Rata-rata "); printf("Total Nilai : %.2f\n", Total);
printf("dan deviasi standar\n"); printf("Rata-rata Nilai : %.2f\n", Rata);
printf("_________________________________________"); printf("Deviasi Standar : %.2f\n", SD);
printf("___________________\n");
printf("\n"); system("pause");
}
//Masukan jumlah dari data
printf("Masukkan Jumlah Data (Maksiumum 1000 buah): ");
scanf("%d", &N);
printf("\n");

//Masukan nilai data ke 0 sampai dengan ke N-1


//dan hitung nilai totalnya
for(I=0;I<N;I++){
printf("Nilai Data ke - %d : \n",I+1);
scanf("%f", &X[I]);
Total = Total + X[I];
}
Hasil Eksekusi
LARIK DIMENSI SATU
• Program berikut untuk menampikan bilangan
dari 1 sampai bilangan 10, dengan pangkatnya
masing-masing. Batas nilai maksimum yang
disimpan adalah 100.
/* ------------------------------------------
Nama Program: ADP_Larik_5_Dimensi_Satu.cpp
Larik Dimensi Satu
------------------------------------------ */

#include <stdio.h>
#include <stdlib.h>

main()
{
int square[100];
int I;
int K;

printf("Contoh Program Perhitungan Perpangkatan\n");

printf("_________________________________________");
printf("\n");

//Penghitungan perpangkatan
for(I=0;I<10;I++){
K = I + 1;
square[I] = K*K;
printf("\nPangkat dari %d adalah %d", K, square[I]);
}

printf("\n");
printf("\n");
system("pause");
}
Hasil Eksekusi
LARIK DIMENSI DUA
• Program berikut untuk menunjukkan
bagaiman suatu larik dimensi dua
dideklarasikan dan ditampilkan nilai-nilai
elemennya dalam bentuk matrik.
/* ----------------------------------------------------------------
Nama Program: ADP_Larik_6_Dimensi_Dua.cpp
Larik Dimensi Dua
---------------------------------------------------------------- */

#include <stdio.h>
#include <stdlib.h>

main()
{
int I,J;
float X[3][4] = {
10.00, 20.00, 30.00, 40.00,
15.55, 25.55, 35.55, 45.55,
25.00, 35.00, 45.00, 55.00
};

printf("Contoh Program Larik Dimensi Dua\n");


printf("____________________________\n");
printf("\n");

//Menampilkan dalam bentuk matrik


for(I=0;I<3;I++){
for(J=0;J<4;J++) printf("%8.2f", X[I][J]);
printf("\n");
}

printf("\n");
system("pause");
}
Hasil Eksekusi
LARIK DIMENSI DUA
• Program berikut untuk menghitung perkalian
dua buah matrik, dimana perkalian dua buah
matrik dapat dilakukan jika banyaknya kolom
matrik pertama adalah sama dengan
banyaknya baris matrik yang kedua.
/* --------------------------------------------------------------------
Nama Program: ADP_Larik_6a_Dimensi_Dua.cpp //Memasukkan data Matrik B
Larik Dimensi Dua printf("Masukkan Nilai Matrik B:\n");
-------------------------------------------------------------------- */ for(J=0;J<Kolom_A;J++){
for(K=0;K<Kolom_B;K++){
#include <stdio.h> printf("Matrik B[%3d,%3d]: ", J+1,K+1);
#include <stdlib.h> scanf("%d",&Matrik_B[J][K]);
}
main() printf("\n");
{ }
int I,J,K, Baris_A,Kolom_A,Kolom_B;
int Matrik_A[100][100],Matrik_B[100][100],Matrik_C[100][100]; //Menghitung Matrikk C hasil perkalian Matrik A & Matrik B
for(I=0;I<Baris_A;I++){
printf("Contoh Program Perkalian Matrik\n"); for(K=0;K<Kolom_B;K++){
printf("_______________________________\n"); Matrik_C[I][K] = 0;
printf("\n"); for(J=0;J<Kolom_A;J++)
Matrik_C[I][K] += Matrik_A[I][J] * Matrik_B[J][K];
//Memasukkan orde matrik }
printf("Masukkan Jumlah Baris Matrik A: "); }
scanf("%d",&Baris_A);
printf("Masukkan Jumlah Kolom Matrik A: "); //Menampilkan hasil perkalian matrik
scanf("%d",&Kolom_A); printf("Hasil perkalian matrik: \n");
printf("\n"); for(I=0;I<Baris_A;I++){
printf("Masukkan Jumlah Kolom Matrik B: "); for(K=0;K<Kolom_B;K++)
scanf("%d",&Kolom_B); printf("%7d",Matrik_C[I][K]);
printf("\n"); printf("\n");
}
//Memasukkan data Matrik A printf("\n");
printf("Masukkan Nilai Matrik A:\n"); system("pause");
for(I=0;I<Baris_A;I++){ }
for(J=0;J<Kolom_A;J++){
printf("Matrik A[%3d,%3d]: ", I+1,J+1);
scanf("%d",&Matrik_A[I][J]);
}
printf("\n");
}
Hasil Eksekusi
LARIK STRING
• Program berikut ini menunjukkan deklarasi
suatu larik string dimensi satu yang dibentuk
dari larik karakter berdimensi dua (perhatikan
bahwa deklarasi ini menggunakan tipe char)
dan fungsi printf() yang menampilkan lariknya
menggunakan kode format “%c”.
/* ----------------------------------------------------------------
Nama Program: ADP_Larik_7_Larik_String.cpp
Larik String
---------------------------------------------------------------- */

#include <stdio.h>
#include <stdlib.h>

main()
{
int I,J;
char Hari[7][10]={
"Minggu",
"Senin",
"Selasa",
"Rabu",
"Kamis",
"Jumat",
"Sabtu"
};

printf("Contoh Program Larik String Dimensi Satu\n");


printf("__________________________________\n");
printf("\n");

for(I=0;I<7;I++){
for(J=0;J<10;J++){
printf("%c", Hari[I][J]);
printf("\n");
}
}

system("pause");
}
Hasil Eksekusi
LARIK STRING
• Program berikut ini menunjukkan deklarasi
suatu larik string dimensi satu yang tetap akan
ditampilkan sebagai larik string dimensi satu,
sehingga fungsi printf() yang akan
menampilkannya menggunakan kode format
“%s”.
/* ------------------------------------------------------------------
Nama Program: ADP_Larik_7a_Larik_String.cpp
Larik String
------------------------------------------------------------------ */

#include <stdio.h>
#include <stdlib.h>

main()
{
int I;
char Hari[7][10]={
"Minggu",
"Senin",
"Selasa",
"Rabu",
"Kamis",
"Jumat",
"Sabtu"
};

printf("Contoh Program Larik String Dimensi Satu\n");


printf("__________________________________\n");
printf("\n");

for(I=0;I<7;I++){
printf("%s", Hari[I]);
printf("\n");
}

printf("\n");
system("pause");
}
Hasil Eksekusi
LARIK STRING
• Program berikut ini menunjukkan bagaimana
larik string dimensi dua (larik karakter dimensi
tiga) dideklarasikan dan ditampilkan.
/* ------------------------------------------------------------------
Nama Program: ADP_Larik_7b_Larik_String.cpp
Larik String
------------------------------------------------------------------ */

#include <stdio.h>
#include <stdlib.h>

main()
{
int I,J;
char Nama[3][5][15]={
"Retno", "Aulia", "Risang", "Feyzar", "Pamungkas",
"Lisa", "Desi", "Agung", "Galih", "Kamilus",
"Hafiza", "Meli", "Ulfa", "Agung", "Irfan",
};

printf("Contoh Program Larik String Dimensi Dua\n");


printf("__________________________________\n");
printf("\n");

for(I=0;I<3;I++){
printf("Mahasiswa di kelas %ld adalah: \n", I+1);
for(J=0;J<5;J++)
printf("%s\n",Nama[I][J]);
printf("\n");
}

printf("\n");
system("pause");
}
Hasil Eksekusi
INISIALISASI LARIK STRING TIDAK
BERUKURAN
• Untuk larik-larik string, seringkali panjang dari
nilai-nilai stringnya satu dengan yang lainnya
tidak sama (misalnya nilai string “Minggu”
tidak sama panjangnya dengan nilai string
“Senin”), sehingga jika dideklarasikan dengan
panjang yang maksimum, maka akan
memboroskan tempat memori. Untuk
mengatasi masalah ini, dapat digunakan
inisialisasi larik tak berukuran.
/* ------------------------------------------------------------------
Nama Program: ADP_Larik_7c_Larik_String.cpp
Larik String
------------------------------------------------------------------ */

#include <stdio.h>
#include <stdlib.h>

main()
{
int I;
char Hari[][10]={
"Minggu",
"Senin",
"Selasa",
"Rabu",
"Kamis",
"Jumat",
"Sabtu",
};

printf("Contoh Program Inisialisasi Larik String Tak Berukuran\n");


printf("___________________________________________\n");
printf("\n");

for(I=0;I<7;I++){
printf("%s\n",Hari[I]);
}

printf("\n");
system("pause");
}
Hasil Eksekusi
PUSTAKA
• Kristanto, Andri. (2009). Algoritma &
Pemrograman dengan C++ Edisi 2. Yogyakarta.
Graha Ilmu.
• Hartono, Jogiyanto, MBA., Ph.D. (2002).
Konsep Dasar Pemrograman Bahasa C.
Yogyakarta. Andi.

Anda mungkin juga menyukai