Anda di halaman 1dari 42

Array Satu Dimensi

Pertemuan 2
Array / Tabel / Vektor / Larik

Array: Variable yang dapat menyimpan


banyak data dengan tipe yang sama sekaligus.
Model Data Terstruktur
Contoh kasus
Bagaimana cara menyimpan ?

A, apple, 10
Contoh kasus
Bagaimana cara menyimpan ?

A1, apple, 10

A2, apple, 10

A3, apple, 10
Cara penyimpanan tersebut dinilai tidak
efektif.
Mengapa?
“ Karena sulit untuk dilakukan
manipulasi”
Coba perhatikan code
program berikut !
Kita memiliki tiga variabel dengan tipe data int yang memiliki identifier yang
berbeda untuk tiap variabel.

Ini bukanlah contoh yang baik


int number1; untuk memperlihatkan proses
int number2; penginisialisasian dan
int number3; penggunaan variabel.

number1 = 1; Terutama jika variabel tersebut


digunakan untuk tujuan yang
number2 = 2; sama.
number3 = 3;
Diubah menjadi
int number1; int number [2];
int number2;
int number3; number[0]=1;
number[1]=2;
number1 = 1;
number2 = 2; number[2]=3;
number3 = 3;
Pengenalan Array
 Dengan menggunakan array, sejumlah variabel dapat memakai
nama yang sama.

 Antara satu variabel dengan variabel lain di dalam


array dibedakan berdasarkan nomor elemen (subscript/indeks).

 Baik Java maupun bahasa pemrograman lain, memiliki


kemampuan untuk menggunakan satu variabel yang dapat
menyimpan sebuah data list (array), kemudian memanipulasinya
dengan lebih efektif.
Definisi Array
• Objek untuk menyimpan beberapa item data dengan tipe data yang sama
di dalam sebuah blok memori yang berdekatan yang kemudian dibagi
menjadi beberapa slot.

• Tipe dari array dapat berupa:


– tipe data primitif
– tipe data objek

• Cara penyimpanan [struktur data] inilah yang disebut sebagai array.


A

A[0] B

C
A[1] B[0]

B[1] C[0]
A[2]
C[1]
B[2]
A[3]
Array

array

Tipe data yang sama, disimpan


dalam satu tempat yang sama
dan diberi nomor indeks.

Elemen-elemen array tersusun secara sekuensial dalam memori


komputer. Array dapat berupa satu dimensi, dua dimensi, tiga dimensi
ataupun banyak dimensi, Umumnya, indeks dimulai dari “0”
NIM

NO NIM NAMA NILAI NIM[0] NAMA

1 D3001 ALI 80,78


NILAI
NIM[1] NAMA[0]
2 D3002 DIANA 90

NAMA[1] NILAI[0]
3 D3003 RINA 70,65 NIM[2]
NILAI[1]
4 D3004 BUDI 54,345 NAMA[2]
NIM[3]

5 D3005 DODI 76
Langkah Membuat Array

• Terdapat 3 langkah untuk membuat array:


– Mendeklarasikan variabel array
– Mengcreate array beserta ukurannya.
– Memberikan sebuah nilai pada setiap element
array.
Pendeklarasian array
Untuk mendeklarasikan array :
– tulis tipe datanya,
– diikuti dengan tanda kurung [],
– serta diikuti oleh nama identifier.

Contoh:

int []ages;

atau

int ages[];
Contoh Pendeklarasian array yang lain
• int Hari[12]; // indeks 0..11
• float Nilai[15]; // indeks 0..14
• char Huruf[100]; // indeks 0..99
• string Kata[100]; // indeks 0..99
• Point Titik[20]; // indeks 0..19
• Dimension Dim[11] // indeks 0..10

Hati-hati!
Jangan mengakses elemen yang indeks-nya berada di luar definisi
Misalnya Nilai[15]  index ke-15 tidak terdefinisi untuk array Nilai
Jangan membaca elemen yang belum diisi nilainya
Array instantiation
Anda juga dapat meng-instantiate sebuah array dengan cara
menginisialisasinya secara langsung dengan data.

Contoh:

//declare and instantiate object


int ages[] = new int[5]; //Belum ada nilai(elemen)
int ages[] = {1, 2, 3, 4, 5}; //sudah diinisiasi
boolean results[] = { true, false, true, false };
double []grades = {100, 90, 80, 75};
String days[] = { “Mon”, “Tue”, “Wed”, “Thu”, “Fri”,
“Sat”, “Sun”};
Inisiasi array

ages[1] 10

Name of array (Note that all


the elements of this array
have the same name, ages

ages[99] 30

Position Number of the


element within array ages
Pengaksesan elemen array
Untuk mengakses sebuah elemen dalam array , atau mengakses
sebagian elemen dari array , Anda menggunakan penomoran
yang disebut sebagai index atau subscript.

Index atau Subscript


– Dimulai dari nol dan kemudian akan terus bertambah sampai
list value dari array tersebut berakhir (sizeOfArray-1).

– Jika array telah dideklarasikan dan dikonstruksi , nilai yang


disimpan dalam setiap anggota array akan diinisialisasi
sebagai nol.

– Untuk tipe data reference seperti String , nilai dari String tidak
akan diinisialisasi ke string kosong “”, sehingga Anda tetap
harus membuat array String secara eksplisit.
Elemen-elemen dalam array dengan n-elemen
memiliki index dari 0 sampai n-1.
Array Satu Dimensi
 Array Satu dimensi tidak lain adalah kumpulan elemen-elemen identik
yang tersusun dalam satu baris.
 Elemen-elemen tersebut memiliki tipe data yang sama, tetapi isi dari elemen
tersebut boleh berbeda.

Elemen
0 1 2 3 4 5 6 7 8 9
ke-
Nilai 23 34 32 12 25 14 23 12 11 10

cout << Elemen[4]; // akan tercetak: 25


int x = Elemen[0] + Elemen[5]; // x bernilai 37
Elemen[9] = 10; // Elemen array indeks 9 menjadi 10
TabInt[10] ??? // Berada di luar range, tidak terdefinisi!
20
Perbandingan variabel biasa dan array

21
Analisa Perbandingan antara variabel biasa dan array
Program untuk menjumlahkan 20 bilangan, dan mengurutkan bilangan secara terbalik, bagaimana jika bilangan terus
ditambah samapai ukuran yang sangat besar? Apa kelebihan dan kekurangan menggunakan Arrray dibandingkan
dengan menggunakan variable non-array?

#include <iostream> #include <iostream>


using namespace std; using namespace std;
int main(){ int main()
int bil0, bil1, bil2, bil3, bil4, bil5, bil6, bil7, bil8, bil9…, {
bil19; int data[5]; //array dengan 5 elemen bertipe integer
int sum; //int data[5] = {4, 1, 0, -9, 8};
cout << "Masukkan lima bilangan: "; int elemen;
cin >> bil0 >> bil1 >> bil2 >> bil3 >> bil4 >> bil5 >> bil6 >> for (elemen=0;elemen <= 4;elemen++){//entri data
bil7 >> bil8>> bil9 …; cout << "Data ke - " << elemen << ": ";
cout << endl; cin >> data[elemen];
sum = bil0 + bil1 + bil2 + bil3 + bil4 bil5 + bil6 + bil7 + bil8 } //tampilkan data setelah entri
+ bil9 + … + bil19; for (elemen=0;elemen <= 4;elemen++){
cout << "Penjumlahan bilangan = " << sum << endl; cout << "Data ke - "<< elemen<< ": "<< data[elemen];
cout << "Bilangan dalam urutan terbalik adalah: "; }
cout << bil19 << “ “ << … <<bil4 << " " << bil3 << " " << return 0;
bil2 << " " << bil1 << " " << bil0 << endl; }
return 0;
}
Program Mengisi Array Oleh user (Memberi Nilai Elemen) dan
Membaca Isi Array.
Bahasa C++ Bahasa Java
#include
#include<iostream>
<iostream> import
import java.io.*;
java.io.*;
using
usingnamespace
namespace std;std; public class Program1 {
int main (){ public static void main(String[] args) throws
int main() {
int nilai[5]; IOException{
IOException {BufferedReader
BufferedReaderbr= br=new
new
int nilai[5];
// Algoritma mengisi array BufferedReader (new InputStreamReader
coutcout << "Masukkan
<< "Masukkan datadata
nilainilai = "<<endl;
= "<<endl; (System.in));
for (int i = 0;
for (int i =i 0;
< 5i <; i++ ){ ){
5 ; i++ System.out.println("Masukkan
System.out.println("Masukkan Nilai Nilai ");
");
cout <<<<
cout "Nilai ke ke
"Nilai " << i <<i <<
" << " ="";= "; int[] Nilai = new int[5];
int[] Nilai = new int[5];
cin >> nilai[i]; for( int i=0; i<5; i++ ) {
cin >> nilai[i]; for( int i=0; i<5; i++ ) {
} System.out.print("Nilai ke "+i +"=");
}
// Algoritma membaca dan menuliskan isi array ke System.out.print("Nilai ke "+i +"=");
Nilai[i]=Integer.parseInt(br.readLine()
layar cout << "Data nilai:"<< endl; );} Nilai[i]=Integer.parseInt(br.readLine());}
coutfor <<(int
"Data nilai:"<<
i = 0; endl;
i < 5 ; i++ ){ System.out.println("Nilai di dalam array: ");
for (intcout
i = 0;<<
i <"Nilai
5 ; i++ke){" << i << " = " << nilai[i] "); for( int i=0; i<5; i++ ) {
cout<<<< "Nilai ke " << i << " = " << nilai[i]
endl;; for( int i=0; i<5; i++ ) {
System.out.print("Nilai ke "+i +"=");
<< endl;; System.out.print("Nilai ke "+i +"=");
} System.out.println(Nilai[i]);
} System.out.println(Nilai[i]);} }
}} }
}
Elemen array yang telah diberi nilai dapat diakses kembali
23
Program Mencari Bilangan Terkecil dan Terbesar di Dalam Array

 Bahasa C++  Bahasa Java

24
Program Memproses Array: Menjumlahkan Data, Menghitung Rata-rata, Mencetak Bilangan
dalam Urutan Terbalik

 Bahasa C++  Bahasa Java


#include <iostream>
using namespace std;
int main () {
int sum, i; int Nilai [10];
// Algoritma : mengisi data nilai dari input user
cout << "Isilah 10 data nilai dalam range 0-100:” <<endl;
for (i=0; i<10; i++) {cin >> Nilai[i];}
// Menjumlahkan nilai dan menghitung rata-rata
cout << "Data input:" << endl;
sum=0;
for (i=0; i<10; i++) {cout << Nilai[i] << endl;
sum = sum + Nilai[i];}
cout << endl; cout << "Rata-rata: ";
cout << sum/10.0 << endl;
cout << "Penjumlahan bilangan= "<< sum<< endl;
cout << "Bilangan dalam urutan terbalik adalah: ";
//cetak bilangan dalam urutan terbalik
for (counter = 4; counter >= 0; counter--)
cout << bil[counter] << " ";
cout << endl;
return 0;}

25
Mencari Indeks Suatu Nilai (searching): Asumsi semua elemen array
terdefinisi.
 Bahasa C++  Bahasa Java
#include <iostream>
using namespace std;
int main() {
// deklarasi dan inisiasi Array.
int A[10] = { 12, 24, 14, 25, 10,13, 21, 20, 15, 18 };
int C, J, BIL; // Variabel penampung nilai yang akan dicari.
// Menampilkan nilai yang terdapat pada elemen-elemen
array.
for (int C=0; C<10; C++) {
cout<<"A["<<C<<"]: "<<A[C]<<endl;
} cout<<endl;
// Memasukkan nilai yang akan dicari.
cout<<"Masukkan nilai yang akan dicari: ";
cin>>BIL;
// Melakukan pencarian data.
for (int J=0; J<10; J++) {
if (A[J] == BIL) {
cout<<"Nilai yang dicari "<<"terdapat pada indeks ke-"<<J;
break;}
} return 0;
}

26
Latihan di kelas
Buatlah sebuah program penjumlahan
dengan angka yang dijumlahkan
sesuai dengan masukan pengguna.
Contoh program
• Kita dapat membuat array untuk semua tipe, baik
primitif, maupun kelas/objek.
• Array untuk objek dapat dibuat dg cara yg sama :
1 Mahasiswa[] mhs;
2 mhs = new Mahasiswa[30];
3 for (c=0; c<30; c++)
4 mhs[c] = new Mahasiswa();
• Baris 1 & 2 hanya membuat array dari reference
variabel, sehingga objeknya sendiri harus dibuat
kemudian (baris 4).
Panjang array
Untuk mengetahui jumlah elemen di dalam sebuah
array, Anda dapat menggunakan length (panjang) field
pada array.
Panjang field dalam array akan me-return value dari
array itu sendiri.
Atau dapat ditulis,
arrayName.length

public class ArraySample {


public static void main( String[] args ){
int[] ages = new int[100];

for( int i=0; i<ages.length; i++ ){


System.out.print( ages[i] );
} }
}
Program Menghitung Panjang Array
Contoh Program Hasil Running
• 0
• 0
• 0
• 0
• 0
• false
• false
• false
• false
• false
• false
• Finished executing
Penggunaan Array Size
1. Pada saat pembuatan loop untuk memproses elemen-
elemen dalam array, gunakanlah length field di dalam
statement pengkondisian dalam loop.
Hal ini akan menyebabkan loop secara otomatis
menyesuaikan diri terhadap ukuran array yang berbeda-
beda.

2. constant biasanya digunakan untuk mempermudah


pendeklarasian ukuran array di Java.
Sebagai contoh,
final int ARRAY_SIZE = 1000; //declare
a constant
. . .
int[] ages = new int[ARRAY_SIZE];
Hasil Running
• 1 2 3 4 5 6
• 1 2 3 4 5 6 4 3 2 1
Latihan
1. Buatlah array untuk menyimpan data {1,2,3,4,5,6,7,8,9,10}
dan tuliskan elemen ke 2 dan 5.
2. Buatlah array untuk menyimpan data {k,i,l,a,n,g} dan
tampilkan huruf ‘k’ dan ‘g’.
3. Buatlah array untuk menyimpan data
{{1,70,11},{2,85},{3,90,22,33},{4},{5,85,55}}
dan tampilkan ke layar tulisan :
Nilai 1 = 70
Nilai 2 = 85
Nilai 3 = 22
Nilai 4 = 33
Nilai 5 = 55
Latihan
4. Buatlah program yang akan membaca 10 angka dari user
untuk dimasukkan ke array. Selanjutnya tampilkan elemen
pertama dan terakhir ke layar.
5. Buatlah program yang akan membaca 10 angka dari user
untuk dimasukkan ke array. Selanjutnya hitunglah rata-rata
dari seluruh angka tsb & tampilkan hasilnya ke layar.
6. Buatlah program yang akan membaca 10 angka dari user
untuk dimasukkan ke array. Selanjutnya mintalah user
memasukkan sebuah angka lagi. Carilah angka tsb pada array.
Jika ada tampilkan ke layar indeks lokasinya, jika tidak ada
tampilkan “Angka tidak ditemukan.”
Casting
• Merubah tipe data dari suatu nilai secara
eksplisit.
• Digunakan ketika variabel yang menyimpan
suatu nilai memiliki tipe data yang berbeda dari
data aslinya.
• Syarat : tipe data yang baru harus memiliki
ukuran lebih besar dari tipe data lama.
• Cara: tambahkan tipe data yang diinginkan
dalam tanda kurung sebelum nilai.
Contoh
int i = 5;
double d = (double)i;

Tipe Casting
• Untuk tipe data boolean tidak dapat dilakukan
casting.
Scope variabel
• Variabel lokal
– variabel yang dideklarasikan dalam sebuah method.
– Variabel ini hanya bisa diakses dalam method tersebut dan
variabel tersebut dihapus (destroyed) setelah method
selesai dijalankan.
• Variabel instance
– Variabel yang dideklarasikan dalam sebuah class,
diluar method.
– Merupakan variabel instance dari setiap
objek yang dicreate dari class tsb dan hanya
berlaku untuk 1 objek tsb.
Scope variabel
• Variabel static/class Variable
– Variabel instance yang dideklarasikan dengan
modifier static dalam sebuah class (diluar method).
Variabel ini dapat dibaca/dishare oleh semua objek
dari class tersebut.
Memberikan nilai pada elemen array
Isi dari array : nilai primitif
• int [] scores;
• scores = new int[3];
• scores[0] = 75;
• scores[1] = 80;
• scores[2] = 100;
Isi dari array : object
• Student students[] = new Student[3]
• students[0] = new Student();
• students[1] = new Student();
• students[2] = new Student();
Inisialisasi Array
• Gabungan dari 3 langkah
– float[] diameters = {1.1f, 2.2f, 3.3f, 4.4f, 5.5f}
– Point[] markup = {new Point(1,5), new Point(3,3), new
Point(2,3)} ;
• Untuk mengetahui besar dari array gunakan .length
setelah nama array.
– long squares ;
– squares = new long[6000] ;
– for (int i=0 ; i<squares.length ;i++)
– { squares[i] = i * i ;
– }
Terimakasih

Anda mungkin juga menyukai