Pengertian Larik (Array)
Larik
(array) menyatakan kumpulan data. pada beberapa bahasa pemrograman,
data yang terkandung dalam suatu larik harus bertipe sama. Namun dalam
bahasa pemrograman tertentu, kumpulan data semacam itu bisa melibatkan
tipe yang berbeda beda. Karena kita akan membahas bahasa C++, bahasa ini
hanya mendukung larik dengan bertipe data yang sama, maka jenis larik
seperti itulah yang akan ini bahas.
Di
dalam algoritma, larik dinyatakan dengan awalan huruf kapital dan
notasi [ ] dipakai untuk menyatakan data dalam larik. Contoh :
A<- [1,2,3,1]
menyatakan larik A yang berisi data 1, 2, 3, dan 1.
Untuk menyatakan sebuah elemen dalam larik, anda bisa menggunakan notasi berikut:
A[indeks]
Dalam
hal ini indeks digunakan untuk menyatakan posisi elemen. Posisi pertama
diberi kode 0, posisi kedua diberi kode 1, dan seterusnya.
Contoh berikut untuk menunjukan cara menampilkan elemen pada larik A dengan indeks sama dengan 2:
tampilkan(A[2])
adapun
A[2] <- 0
menyatakan pengisian nilai 0 ke elemen berindeks 2 pada larik A.
Larik pada C++
pada bahasa C++, larik dideklarasikan dengan bentuk sebagai berikut:
tipe_data nama_larik[jumlah_elemen]
Dalam hal ini jumlah_elemen harus berupa konstanta. Beberapa contoh dapat dilihat pada tabel berikut:
Deklerasi
|
Keterangan
|
int cacah[4];
|
Larik cacah mempunyai 4 buah elemen bertipe int (bilangan bulat)
|
char vocal[5];
|
Larik vocal mempunyai 5 buah elemen bertipe char(karakter)
|
char kota[6][20];
|
Larik kota mempunyai 6 buah elemen bertipe string dengan panjang
maksimal sebesar 19 karakter
|
Pengaksesan elemen larik dilakukan dengan menggunakan notasi
nama_array[indeks]
Dalam hal ini indeks dimulai dari nol.
Contoh:
cacah[0] = 1;
merupakan pernyataan untuk mengisikan nilai 1 ke elemen pertama pada larik cacah.
Pada C++, suatu larik bisa langsung diisikan dengan suatu nilai ketika larik tersebut dideklarasikan. Contoh:
int jum_hari[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
pada contoh tersebut,
jum_hari[0] bernilai 31
jum_hari[1] bernilai 28
jum_hari[2] bernilai 31
jum_hari[3] bernilai 30
dan seterusnya
Perlu diketahui, larik yang telah kita bahas di depan adalah larik berdimensi satu.
Note: Pada C++ terdapat larik dengan dimensi lebih dari satu. Larik seperti itu akan kita bahas nanti
Contoh Berbagai Operasi dengan Larik
Berbagai persoalan yang terkait dengan larik akan kita bahas.
Contoh :
1. Buatlah algoritma dan program yang mula mula menyimpan data huruf vocal ke dalam larik dan kemudian tampilkan:
Algoritma:
1. V<-["A","E","I","O","U"]2. UNTUK i <- 0 S/D 4tampilkan(V[i])Program:AKHIR-UNTUK
Implementasi dalam C++
#include <iostream.h>
#include <conio.h>
int main ()
{
char kar[5];
int i;
kar[0] = 'A';
kar[1] = 'E';
kar[2] = 'I';
kar[3] = 'O';
kar[4] = 'U';
for (i=0;i<5;i++)
cout << kar[i] << "\n";
getch ();
return 0;
}
Hasil eksekusi program dapat dilihat pada gambar berikut
Alternatif yang lain adalah dengan memanfaatkan pengisian elemen larik sewaktu larik didekarasikan. Implementasinya pada C++ adalah sebagai berikut:#include <iostream.h>#include <conio.h>int main (){char kar[] = {'A','E','I','O','U'};for (int i=0;i<5;i++)cout <<kar[i] << "\n";getch ();return 0;}Pada contoh di atas, jumlah elemen larik kar tidak perlu disebutkan. Hasil eksekusinya sama dengan program yang pertama.
2. Buatlah algoritma dan program untuk menyimpan data berikut ke dalam larik:
10 4 2 5 3 8 9 2 9 5
kemudian carilah bilangan terbesar
Algorima :
1. data <- [10, 4, 2, 5, 3, 8, 9, 2, 9, 5]
2. terbesar <- data[0]
3. UNTUK i <- 1S/D 9
JIKA data[i] > terbesar MAKA
terbesar <- data[i]
AKHIR-JIKA
AKHIR-UNTUK4. tampilkan(terbesar)
Mula-mula variabel terbesar diisi dengan elemen pertama larik data. Selanjutnya semua elemen kedua hingga yang terakhir dibandingkan dengan isi variabel terbesar. Kalau nilai elemen tersebut lebih besar daripada variabel terbesar maka isinya diberikan ke variabel terbesar.
Program:
#include <iostream.h>
#include <conio.h>
int main ()
{
int data[] = {10, 4, 2, 5, 3, 8, 9, 2, 9, 5};
int i;
int terbesar;
terbesar = data[0];
for (i=1;i<10;i++)
if (data[i]>terbesar)
terbesar=data[i];
cout<<"terbesar = "<<terbesar<<"\n";
getch ();
return 0;
}
Hasil eksekusi program:
3. Buatlah algoritma dan program untuk membaca data secara berulang dari keyboard dan meletakannya kedalam suatu larik. Jumlah maksimal yang dapat dimasukan ke dalam larik adalah 10 buah. Setelah itu tampilkan seluruh data yang dimasukan dari keyboard tadi.
Algoritma:
1. jumdata <- 0
2. UNTUK i <- 0 S/D 9
masukan (data[i])
tampilkan ("masukan lagi (Y/T)?")
masukan (jawaban)
JIKA jawaban = "T" atau "t" MAKA
jumdata <- i+1
keluar dari pengulangan
AKHIR-JIKA
AKHIR-UNTUK
3. UNTUK i <- 0 S/D jumdata-1
tampilkan(data[i])
AKHIR-UNTUK
Langkah kedua di atas digunakan untuk menangani pemasukan data, sedangkan langkah ketiga dipakai untuk menangani penampilan data dalam larik.
Program:
#include <iostream.h>
#include <conio.h>
int main ()
{
double data[10];
int i, jumdata;
char jawaban;
jumdata = 0;
for (i = 0; i < 10; i++)
{
cout<<"masukan sembarang bilangan: ";
cin>>data[i];
cout<<"masukan lagi(Y/T)?";
cin>>jawaban;
if (jawaban == 'T' || jawaban == 't')
{
jumdata=i+1;
break;
}
}
for (i=0;i<jumdata;i++)
cout<<data[i] << "\n";
getch ();
return 0;
}
Hasil eksekusi program:
Larik Berdimensi Dua
Pada larik berdimensi dua setiap elemen diakses melalui dua buah indeks, yaitu indeks baris dan indeks kolom.
Untuk mengakses sebuah elemen pada larik tersebut diperlukan notasi sebagai berikut:
tipe_data nama_larik[indeks_baris][indeks_kolom]
Hal ini berlaku pada algoritma maupun program C++. Dalam hal ini masing masing indeks dimulai dari nol.
contoh:
1. Buatlah algoritma dan program yang menyimpan pasangan data negara dan ibukota seprti berikut:
Indonesia JakartaKemudian tampilkan nama negara dan ibukotanya, khusus untuk negara yang berawalan dengan huruf I.
Pilipina Manila
Austria Wina
India New Delhi
Iran Taheran
Algoritma:
1. Negara[0][0] <- "Indonesia"
2. Negara[0][1] <- "Jakarta"
3. Negara[1][0] <- "Pilipina"
4. Negara[1][1] <- "Manila"
5. Negara[2][0] <- "Austria"
6. Negara[2][1] <- "Wina"
7. Negara[3][0] <- "India"
8. Negara[3][1] <- "New Delhi"
9. Negara[4][0] <- "Iran"
10. Negara[4][1] <- "Taheran"
11. UNTUK baris <- 0 S/D 4
JIKA Negara[baris][0][0]="I" MAKA
tampilkan(Negara[baris][0], Negara[baris][1])
AKHIR-JIKA
AKHIR-UNTUK
Program:
#include <iostream.h>
#include <string.h>
#include <conio.h>
int main ()
{
char negara[5][2][15];
int baris;
strcpy (negara[0][0], "Indonesia");
strcpy (negara[0][1], "Jakarta");
strcpy (negara[1][0], "Pilipina");
strcpy (negara[1][1], "Manila");
strcpy (negara[2][0], "Austria");
strcpy (negara[2][1], "Wina");
strcpy (negara[3][0], "India");
strcpy (negara[3][1], "New Delhi");
strcpy (negara[4][0], "Iran");
strcpy (negara[4][1], "Taheran");
for (baris = 0; baris < 5; baris++)
if (negara[baris][0][0] == 'I')
cout<<negara[baris][0]<<" -"
<<negara[baris][1]<<"\n";
getch ();
return 0;
}
Hasil eksekusi program:
2. tulislah algiritma untuk memasukan data ke dalam matriks. Semua data dimasukan dari keyboard. Mula mula jumlah baris dan kolom dimasukan dari keyboard, dan kemudian semua elemen dimasukan dari keyboard. Setelah itu tampilkan semua elemen matriks dalam bentuk susunan matriks.
Selanjutnya translasikan ke dalam program C++.
Algoritma:
1. masukan(jum_baris)
2. masukan(jum_kolom)
3. UNTUK i <- 0 S/D jum_baris-1
UNTUK j <- 0 S/D jum_kolom-1
masukan(A[i][j])
AKHIR-UNTUK
AKHIR-UNTUK
4. UNTUK i <- 0 S/D jum_baris - 1
UNTUK j <- 0 S/D jum_kolom-1
tampilkan(A[i][j]) // tanpa pindah baris
AKHIR-UNTUK
tampilkan(karakter_pindah_baris)
AKHIR-UNTUK
Program:
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
int main ()
{
int jum_baris, jum_kolom;
int i, j;
int data[10][10];
cout << "jumlah baris (1..10): ";
cin>>jum_baris;
cout <<"jumlah kolom (1..10): ";
cin>>jum_kolom;
//pemasukan elemen matriks
for (i=0;i<=jum_baris-1;i++)
for(j=0;j<=jum_kolom-1;j++)
{
cout<<"nilai baris "<<i+1
<<", kolom " <<j+1<<": ";
cin>> data [i][j];
}
//menampilkan matriks
cout <<"data matriks: \n";
for (i=0;i<=jum_baris-1;i++)
{
for(j=0;j<=jum_kolom-1;j++)
cout<<setw(8) <<data[i][j];
cout<< "\n"; // pindah baris
}
getch ();
return 0;
}
Hasil eksekusi program:





Tidak ada komentar:
Posting Komentar