0% menganggap dokumen ini bermanfaat (0 suara)
7 tayangan44 halaman

Slide-06 - Array

Diunggah oleh

naufalrafa968
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
7 tayangan44 halaman

Slide-06 - Array

Diunggah oleh

naufalrafa968
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 44

Pemrograman 1

Array

Ganjil 2024/2025

Program Studi Ilmu Komputer, Fakultas Teknik, Universitas Bumigora


Version 1.0 - Internal Use Only
Outline
◼ Array statik
◼ Array dinamik (ArrayList)
◼ Iterasi/Loop di Array

2
Pengenalan Array
◼ Selama ini, Anda hanya mengenal variabel-
variabel yang hanya mengandung sebuah nilai.

Sebuah slot di memo


int nilai = 24; nilai

24
salam Sebuah slot di mem

String salam = “Halo”; “Halo”


3
Pengenalan Array
◼ Misal, Anda adalah dosen kuliah Pemrograman.

◼ Anda ingin membuat program yang menerima masukan nilai


ujian dari 45 mahasiswa.

◼ Program Anda menampilkan statistik:


◼ Rata-rata nilai
◼ Nilai tengah (median)
◼ Nilai maksimum & minimum

4
Pengenalan Array
◼ Anda membutuhkan cara untuk menampung 45 nilai
tersebut: bentuk 45 variabel.

int nilaiMahasiswaSatu;
int nilaiMahasiswaDua;
int nilaiMahasiswaTiga;
...

?
int nilaiMahasiswaEmpatLima;
Cara yang tidak
okay

Coba Anda bayangkan bagaimana cara menghitung nilai


45 variabel tersebut !
5
Pengenalan Array
◼ Anda butuh sebuah variabel yang mampu
menampung “beberapa nilai” sekaligus.

◼ Setiap nilai di variabel tersebut dapat diakses


dengan mudah melalui index.

nilaiMahasiswa Dengan index, akses lebih mudah ☺

90 89 99 100 .... 80 95
0 1 2 3 .... 43 44
index
6
Array
◼ Array adalah sebuah struktur data yang bisa menampung
sekumpulan nilai yang berasal dari tipe data yang sama.

◼ Variabel array adalah sebuah objek -> menyimpan Alamat


memori (reference) dimana array sesungguhnya berada.

7
Array
◼ Array Statik
◼ Ukuran (jumlah elemen) array didefinisikan di awal.
Ukuran tidak akan berubah selama program berjalan.

◼ Array Dinamik
◼ Ukuran array dapat berubah-ubah (bertambah atau
berkurang) ketika program sedang berjalan.

8
ARRAY STATIC

9
Instansiasi Array

Instansiasi sebuah objek array: gunakan new.

<variabel array> = new <tipe data>[<jumlah elemen>];

//array berisi 3 elemen tipe integer


//tiap elemen array masih “kosong”
int[] nums;
nums = new int[3];
nums
//cara lain 0
int[] nums = new int[3]; 0
0

10
Instansiasi Array

//objek array String, 3 elemen


String[] names = {“Anto”, “Ani”, “Rudi”};

//objek array integer, 4 elemen


int[] nums = {1, 3, 5, 7};

//objek array double, 3 elemen


double[] arrd = {1.0d, 3.4d, 5.6d};

names
Anto

Ani

Rudi 11
Deklarasi dan Inisialisasi Array

12
Akses Array
◼ Elemen pada array diakses melalui indeks
◼ Indeks menunjukkan posisi elemen pada array
◼ Gunakan simbol “[]” untuk mengakses sebuah elemen pada array:
values[2] = 29.95;

13
Akses Array
String[] names = new String[3];

names[0] = “Rudi”;
names[1] = “Anto”;
names[2] = “Budi”;

//cetak ke layar tiap elemen


System.out.println(“elemen ke-1” + names[0]);
System.out.println(“elemen ke-2” + names[1]);
System.out.println(“elemen ke-3” + names[2]);

14
Syntax Array

15
Akses Array
◼ Menggunakan nilai yang disimpan pada array :
◼ System.out.println(“Nilai elemen ketiga adalah " +
values[2]);

◼ Panjang dari array (banyaknya data yang disimpan)


◼ values.length → bukan sebuah method!

◼ Mengakses elemen yang tidak ada akan menghasilkan error

◼ double[] values = new double[10];

◼ values[10] = 29.95; // ERROR

◼ Keterbatasan : Panjang array tetap (statik)

16
Akses Array

int[] nums = new int[3];

Random r = new Random();

//isi tiap elemen array dengan bil. random


for (int i = 0; i < nums.length; i++) {
nums[i] = r.nextInt(100);
}

//tampilkan isi tiap elemen array


for (int i = 0; i < nums.length; i++) {
System.out.println(nums[i]);
}
17
Latihan
◼ What elements does the data array contain after the following
statements?
double[] values = new double[10];
for (int i = 0; i < values.length; i++)
values[i] = i * i;

Answer: 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, but not 100

18
Penggunaan Array
public class Arrays2 {

public static void main(String[] args) {


String[] names = new String[3];
names[0] = "anto";
names[1] = "rudi";
names[2] = "budi";
printArray(names);
}

public static void printArray(String[] data) {


for (int i = 0; i < data.length; i++) {
System.out.println(data[i].toUpperCase());
}
}

19
Jangan membuat Array Parallel
◼ Jangan memisahkan data yang merupakan suatu kesatuan di array yang
berbeda.
◼ Gunakan arrays of objects!

◼ Why?
◼ Apabila kita ingin menambahkan accountName, hanya class BankAccount
saja yang perlu diubah.

20
Array of Objects
◼ Kita dapat membuat array yang memiliki tipe objects
BankAccount[] accounts = new BankAccount[10];
accounts[3] = new BankAccount(…);

21
Array of Objects
public class person {
private String name;
private int age;
public person (String name, int age) {...}
}

//array of objek, objek orang-orang


person[] kelompok = {
new person(“Rudi”, 18),
new person(“Anto”, 19),
new person(“Budi”, 23)};

22
Array of Objects
person[] p = new person[3];

//perlu instansiasi objek untuk tiap elemen !


p[0] = new person(“ani”, 18);
p[1] = new person(“anto”, 19);
p[2] = new person(“rudi”, 16);

//tambah umur 1 tahun


p[0].setUmur(p[0].getUmur() + 1);
p[1].setUmur(p[1].getUmur() + 1);
p[2].setUmur(p[2].getUmur() + 1);

23
Latihan
Apa yang salah dengan kode di bawah ?

int[] a;
for (int i = 0; i < 10; i++)
a[i] = i * i;

24
Latihan
Apa output program di bawah ?
Apa output program di bawah ?

int [] a = new int[5];

for (int i = 0; i < 5; i++)


a[i] = 4 - i;

for (int i = 0; i < 5; i++)


a[i] = a[a[i]];

for (int i = 0; i < 5; i++)


System.out.println(a[i]);
25
ARRAY DINAMIK

26
Array Dinamik
◼ Sampai saat ini, kita bermain dengan array yang
ukuran/jumlah elemennya diketahui sejak awal.

◼ Terkadang kita tidak mengetahui panjang dari suatu array.


◼ Jumlah karyawan/mahasiswa tidak tetap.
◼ Bisa bertambah
◼ Bisa berkurang

27
ArrayLists
◼ Data yang dapat disimpan pada array (biasa) terbatas
◼ ArrayLists
◼ Menyimpan sekumpulan objects (bukan tipe primitif !)
◼ Dapat membesar dan mengecil sesuai kebutuhan
◼ Menyediakan beberapa methods, contohnya untuk menyimpan dan
menghapus data

◼ Deklarasi sebuah ArrayList:


◼ ArrayList<T> names = new ArrayList<T>();

◼ akan menyimpan objects yang memiliki tipe T.

◼ Method size() digunakan untuk mengembalikan jumlah


elemen
28
Instansiasi ArrayList
◼ Kelas ArrayList berada di package java.util

◼ Array Dinamik dari data-data bertipe String:

ArrayList<String> names = new ArrayList<String>();

System.out.println(names.size()); //cetak 0

names.add(“hello world”); //tambah satu elemen

System.out.println(names.size()); //cetak 1

names.add(“hai”); //tambah lagi satu elemen

System.out.println(names.size()); //cetak 2

29
Menambahkan Elemen
◼ Untuk menambahkan sebuah object di akhir arraylist, gunakan method
add :

◼ names.add("Emily");
◼ names.add("Bob");
◼ names.add("Cindy");

30
Menambahkan Elemen
◼ Overloaded method add():

◼ names.add("Carolyn"); //tambah elemen di akhir

◼ names.add(1, "Ann"); //tambah elemen di indeks ke-1

31
Mengakses Elemen
◼ Gunakan method get()

String name = names.get(2);


// ambil elemen ketiga pada arraylist

◼ Kebanyakan menimbulkan error :

int i = names.size();
name = names.get(i); // Error
// legal index values are 0 ... i-1

32
Mengatur dan Menghapus Elemen
◼ Gunakan set() method untuk mengubah elemen:
names.set(2, "Carolyn");

◼ Gunakan remove() method untuk menghapus elemen pada indeks


tertentu:
names.remove(1);

33
Mengatur dan Menghapus Elemen
names.add("Emily");
names.add("Bob");
names.add("Cindy");
names.set(2, "Carolyn");

names.add(1, "Ann");

names.remove(1);

34
Penggunaan Array List

ArrayList<String> names = Membuat sebuah ArrayList kosong


new ArrayList<String>(); yang dapat menampung string.
names.add("Ann"); Menambahkan elemen ke bagian akhir.
names.add("Cindy");
System.out.println(names); Prints [Ann, Cindy].

names.add(1, "Bob"); Tambajkan elemen ke indek 1.


names sekarang [Ann, Bob, Cindy].
names.remove(0); Menghapus elemen indek 0.
names sekarang [Bob, Cindy].
names.set(0, "Bill"); Menimpah sebuah elemen dengan
nilai berbeda. names
sekarang[Bill, Cindy].

35
Penggunaan Array List

String name = names.get(i); Mengambil elemen

String last = Mengambil elemen terakhir


names.get(names.size() - 1);
ArrayList<Integer> squares = Membuat sebuah ArrayList yang berisi
new ArrayList<Integer>(); sepuluh bilangan kuadrat pertama.

for (int i = 0; i < 10; i++)


{
squares.add(i * i);
}

36
Wrapper Class
◼ Bagaimana apabila kita ingin menyimpan tipe primitive pada
ArrayList?

◼ Java menyediakan wrapper class untuk menyimpan data


dengan tipe primitive dalam bentuk objects.
◼ Double d = new Double(29.95);

◼ Wrapper class dapat digunakan ketika data yang ingin


disimpan harus bertipe objects
ArrayList<Double> data = new
ArrayList<Double>(); data.add(29.95);
double x = data.get(0);

37
Wrapper Class

38
Auto-Boxing/Auto-unboxing
◼ Auto-boxing merupakan konversi otomatis antara tipe
primitive dengan wrapper class yang berkesesuaian :

Double d = 29.95;

// auto-boxing; same as
// Double d = new Double(29.95);

double x = d;

// auto-unboxing; same as
// double x = d.doubleValue();

39
Auto-Boxing pada Expression
◼ Auto-boxing juga bekerja pada arithmetic
expressions :
◼ Double d = new Double(12.8);
◼ d = d + 1;

◼ Sama dengan :
◼ auto-unbox d into a double
◼ add 1
• auto-box the result into a new Double
◼ store a reference to the newly created wrapper object in d

40
Auto-Boxing dan ArrayLists
◼ Untuk menyimpan tipe data numerik dalam ArrayList,
gunakan tipe wrapper sebagai parameter type:

ArrayList<Double> values = new ArrayList<Double>();


values.add(29.95);
Double x = values.get(0);

◼ Menyimpan wrapped numbers tidak efisien


◼ Dapat digunakan apabila data yang disimpan tidak besar
◼ Gunakan arrays untuk menyimpan data angka yang besar

41
ITERASI DI ARRAY

42
References
◼ Cay S. Horstmann. Big Java. 4th Edition. John Wiley &
Sons, 2010

43
THANK YOU

44

Anda mungkin juga menyukai