Dasar-Dasar Pemrograman

dokumen-dokumen yang mirip
Arrays. Misalkan kita ingin menyimpan 100 buah integer Buat 100 variabel bertipe integer. Tidak efisien!

Java Basics-2 Oleh : Agus Priyanto, Agus Priyanto M.Kom M.K

Algoritma Pemrograman [BS204]

MODUL III ARRAYLIST TUGAS PENDAHULUAN

03/04/2018. Collection set List Map. Pemrograman Berorientasi Object

Data Structures. Class 4 Arrays. Pengampu : TATI ERLINA, M.I.T. Copyright 2006 by The McGraw-Hill Companies, Inc. All rights reserved.

E-Commerce. Lesson 2. Nizar Rabbi Radliya PHP : Variable, Constant, Data Type, Operator. 2 SKS Semester 7 UNIKOM

Boxing & AutoBoxing Java Collection Framework. Collection List Map Set. Generics vs Inheritance

Pemrograman Berbasis Objek Operator dan Assignment

Pemrograman Berorientasi. Array dan Collections

KUM 3 IMPLEMENTASI LIST

Operator dan Assignment

Pemrograman Berbasis Obyek. Yuliana Setiowati. Elektronika Negeri Surabaya PJJ PENS-ITS

Array. Topik. Mendeklarasikan Array Creating Array Initializing Array Array Multidimensional Array Bounds Array Resizing Copying Arrays

Algoritma dan Struktur Data. Pertemuan 7 Linked List

Pemrograman Dasar M E T H O D / F U N G S I

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

Grouping Object. Viska Mutiawani, M.Sc

Data Structures. Class 5 Pointer. Copyright 2006 by The McGraw-Hill Companies, Inc. All rights reserved.


Java Operators. Nurochman

KOLEKSI OBJECT. Farah Zakiyah Rahmanti, M.T Universitas Dian Nuswantoro

Problem 1. Implementasi Interface. Diberikan definisi interface BentukDuaDimensi berikut:

T I P E D A T A P R I M I T I F V A R I A B E L D A N S T A T E M E N P E N U G A S A N E K S P R E S I D A N O P E R A T O R A R I T M A T I K A

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

Bahasa C Array. Slide diambil dari MK Dasar-Dasar Pemrograman Fasilkom UI Dimodifikasi dan disesuaikan dngn kebutuhan pengajaran di PTI-Undiksha

Latihan 1. Praktikum 2 Bahasa Pemrograman PLT Scheme : Membuat Program

Algoritma & Pemrograman #9. by antonius rachmat c, s.kom, m.cs

Reserved words Reserved words atau keywords merupakan kata-kata spesifik digunakan oleh compiler untuk keperluan pemrograman. Contoh reserved words

Array Multidimensi. Pemrograman Dasar. Java

Pemrograman Lanjut Tipe Data dan Constructor PTIIK

Pertemuan 8. Dasar query basis data dengan SQLite ARFIAN HIDAYAT, S.KOM

Pemrograman Lanjut. Interface

Praktikum 8 Array di AWK

Var-arg Cornelius Mellino / Cornelius Koo JavaSchool of Object Technology

Pemrograman Berorientasi. Methods

Operator dan Assignment. Pertemuan 3 Pemrograman Berbasis Obyek

Arrays, Collections and Generics. Sisilia Thya Safitri, MT Agus Priyanto, MKom

Struktur Program C++ Pertemuan 3

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

GENERICS. Yuliana Setiowati. Politeknik Elektronika Negeri Surabaya. Topik

PEMROGRAMAN JAVA. Petunjuk Penulisan Program Token Aturan Penamaan Identifier Lingkungan /Scope dari variabel Tipe Data (i) Yoannita

Array. Adharul Muttaqin Universitas Brawijaya Malang. Array

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

Belajar ArrayList di Java

PRAKTIKUM STRUKTUR DATA QUEUE. SULIDAR FITRI, M.Sc

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

What Is a Function and Why Use One?

Generics. Prepared by Viska Mutiawani. 1

A. TUJUAN PEMBELAJARAN 1. Memahami konsep Class LinkedList di Collection 2. Memahami penggunaan method-method pada Class LinkedList.

Modul Praktikum 4 Pemograman Berorientasi Objek

DIG1G3 Implementasi Struktur Data

IMPLEMENTASI STRUKTUR DATA LIST, QUEUE DAN STACK DALAM JAVA

DIG1G3 Implementasi Struktur Data

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

Algoritma & Struktur Data. Array. Oleh : Nur Hayatin, M.Kom

Enum. Yuliana Setiowati

BEKERJA DENGAN JAVA CLASS LIBRARY

9/26/2011. Tujuan. Bekerja dengan Java Class Library. Pengenalan OOP. Pengenalan OOP. Class dan Object. Enkapsulasi

Adam Mukharil Bachtiar English Class Informatics Engineering Algorithms and Programming Searching

Modul Praktikum Bahasa Pemrograman 1

BAB 7 Java Array. Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier yang berbeda untuk tiap variabel.

OBJECT ORIENTED PROGRAMMING. Day 3 : Operator dan Assignment

PEMROGRAMAN WEB 09 JavaScript Lanjut

B. DASAR TEORI Array. Misalkan kita memiliki tiga data yang berbeda dan kita simpan dalam variabel yang berbeda.

Pemrograman Berbasis Objek GENERIC. Yuliana Setiowati. Politeknik Elektronika Negeri Surabaya

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 1)

Score: 94.0 Persentage: % ~ u ~ Generated by Foxit PDF Creator Foxit Software For evaluation only.

Outline. Struktur Data & Algoritme (Data Structures & Algorithms) Pengantar. Definisi. 2-3 Trees

Pemrograman Dasar P E M R O G R A M A N T E R S T R U K T U R I N P U T / O U T P U T

BAB IV HASIL PENELITIAN DAN PENERAPAN

BAB 6. Struktur Kontrol

Objectives. Struktur Data & Algoritme (Data Structures & Algorithms) Sort. Outline. Bubble Sort: idea. Bubble Sort. Sorting

Review. Struktur Data & Algoritme (Data Structures & Algorithms) Objectives. Outline. Stacks & Queues

Understanding Class Definition. Viska Mutiawani, M.Sc

BAHASA PEMROGRAMAN -PERTEMUAN 5,6 LARIK (ARRAY)

BAB 4 ARRAY. number1 = 10; number2 = 20; number3 = 30;

Array. Pengantar. int a, b, c, d, e;

JAVA BASIC PROGRAMMING Joobshet

IT 405: KPLBO MATERI 9 RELASI ANTAR OBJEK III. Ayi Purbasari, ST., MT. If-Unpas, 2014

1/5. while and do Loops The remaining types of loops are while and do. As with for loops, while and do loops Praktikum Alpro Modul 3.

Praktikum Dasar Pemrograman 2014 MODUL 3: Array dan String

Pemrograman Berbasis Objek. Collections. Politeknik Elektronika Negeri Surabaya

Kurikulum Qt. { Basic OOP } Chapter 3. Array dan String

Pengenalan Algoritma & Struktur Data. Pertemuan ke-1

Pertemuan 4 Array pada Java

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list

Understanding Class Definition

Function. Contoh function 1 : // function example #include <stdio.h> int addition (int a, int b){ int r; r=a+b; return (r); }

KENDALI PROSES. Untuk mengatur arus program, pemrograman java menyediakan struktur perulangan (looping), kondisional, percabangan, dan lompatan.

Pengenalan OOP. Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program.

Collections. Collections Framework

IX. Implementasi ADT : Stacks & Queues. Operasi dasar Contoh kegunaan Implementasi Array-based dan linked list-based

Nanik Tolaram

Simple Sorting Techniques

DAFTAR LAMPIRAN. Wawancara Terhadap Bidang Standarisasi pada. LSP LSK TKI Sektor Tata Laksana Rumah Tangga : Ibu Etty. Meindrati

Rekursif. Proses yang memanggil dirinya sendiri. Merupakan suatu fungsi atau prosedur Terdapat suatu kondisi untuk berhenti.

BAB 6. Struktur Kontrol

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

Transkripsi:

Dasar-Dasar Pemrograman Arrays and ArrayLists subtitle Fakultas Ilmu Komputer, Universitas Indonesia Version 3.0 - Internal Use Only

Tujuan Pembelajaran Memahami dan dapat menggunakan arrays dan array lists Mempelajari mengenai wrapper classes, auto boxing, dan generalized for loop Mengetahui beberapa algoritma array Mempelajari bagaimana cara menggunakan two-dimensional arrays Memahami perbedaan penggunaan arrays dan array lists pada program Mengimplementasikan arrays yang terisi secara parsial 2

Arrays Digunakan ketika kita ingin menyimpan beberapa data yang memiliki tipe yang sama. Deklarasi array (array adalah object) double[] array1; Cara membuat sebuah object array yang berisi 10 elemen bertipe double : array1 = new double[10]; int[] array2 = {1, 3, 5, 7}; Nilai yang disimpan pada array bergantung pada tipe dari array tersebut. 3

Deklarasi Arrays Big Java by Cay Horstmann 4 Copyright 2009 by John Wiley & Sons. All rights reserved.

Akses Arrays Elemen pada array diakses melalui indeks Indeks menunjukkan posisi elemen pada array Gunakan simbol [] untuk mengakses sebuah elemen pada array : values[2] = 29.95; Indeks dimulai dari nol Indeks terakhir di ukuran array - 1 5

Sintaks Arrays 6

Arrays 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 7

Self Check 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 8

Arrays of Objects Kita dapat membuat array yang memiliki tipe objects BankAccount[] accounts = new BankAccount[10]; accounts[3] = new BankAccount( ); 9

Don t: Parallel Arrays! 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 10

ArrayLists Data yang dapat disimpan pada array terbatas ArrayLists Menyimpan sekumpulan objects 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 11

Menambahkan elemen Untuk menambahkan sebuah object di akhir arraylist, gunakan method add : names.add("emily"); names.add("bob"); names.add("cindy"); 12

Mengakses elemen Gunakan method get() String name = names.get(2); // gets the third element of the arraylist Most common bound error : int i = names.size(); name = names.get(i); // Error // legal index values are 0... i-1 13

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); 14

Menambah dan Menghapus Elemen names.add("emily"); names.add("bob"); names.add("cindy"); names.set(2, "Carolyn"); names.add(1, "Ann"); names.remove(1); 15

Penggunaan ArrayLists ArrayList<String> names = new ArrayList<String>(); names.add("ann"); names.add("cindy"); System.out.println(names); Constructs an empty arraylist that can hold strings. Adds elements to the end. Prints [Ann, Cindy]. names.add(1, "Bob"); Inserts an element at index 1. names is now [Ann, Bob, Cindy]. names.remove(0); Removes the element at index 0. names is now [Bob, Cindy]. names.set(0, "Bill"); Replaces an element with a different value. names is now [Bill, Cindy]. Big Java by Cay Horstmann 16 Copyright 2009 by John Wiley & Sons. All rights reserved.

Penggunaan ArrayLists String name = names.get(i); String last = names.get(names.size() - 1); ArrayList<Integer> squares = new ArrayList<Integer>(); for (int i = 0; i < 10; i++) { squares.add(i * i); } Gets an element. Gets the last element. Constructs an arraylist holding the first ten squares. Big Java by Cay Horstmann 17 Copyright 2009 by John Wiley & Sons. All rights reserved.

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); 18

Wrappers 19

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(); 20

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 21

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 22

Self Check Suppose values is an ArrayList<Double> of size > 0. How do you increment the element with index 0? values.set(0, values.get(0) + 1); 23

The Enhanced for Loop Untuk melakukan iterasi pada suatu koleksi data double[] values =...; double sum = 0; for (double element : values) { sum = sum + element; } sama dengan for (int i = 0; i < values.length; i++) { sum = sum + values[i]; } 24

Dapat digunakan pula pada ArrayList ArrayList<BankAccount> accounts =...; double sum = 0; for (BankAccount account : accounts) { sum = sum + account.getbalance(); } ekivalen dengan : for (int i = 0; i < accounts.size(); i++) { BankAccount account = accounts.get(i); sum = sum + account.getbalance(); } 25

The Enhanced for Loop for each loop tidak memperbolehkan kita untuk mengubah konten dari sebuah array. for (double element : values) { element = 0; // ERROR this assignment does not // modify array element } Gunakan for loop tradisional! 26

Self Check Write a for each loop that prints all elements in the array values. Answer: for (double element : values){ System.out.println(element); } 27

Self Check Apa yang dilakukan oleh for each loop berikut? int counter = 0; for (BankAccount a : accounts) { if (a.getbalance() == 0) { counter++; } } Answer: It counts how many accounts have a zero balance 28

Partially Filled Arrays Array length: jumlah maksimum elemen pada array Umumnya, array hanya terisi setengah penuh Kita perlu mencatat ukuran array yang sebenarnya Gunakan penamaan yang sesuai: final int VALUES_LENGTH = 100; double[] values = new double[values_length]; int valuessize = 0; Update valuessize ketika menambahkan sebuah elemen: values[valuessize] = x; valuessize++; 29

Partially Filled Arrays (Example) 30

Self Check Buatlah sebuah iterasi untuk mencetak elemen pada sebuah array values dalam urutan yang terbalik, mulai dari elemen terakhir. Jumlah elemen disimpan di variabel valuessize Answer: for (int i = valuessize - 1; i >= 0; i--) System.out.println(values[i]); 31

Self Check How do you remove the last element of the partially filled array values? Answer: valuessize--; 32

ARRAY ALGORITHMS 33

Mencari Nilai Maksimum/Minimum Tentukan sebuah elemen sebagai elemen awal Kandidat? Bandingkan dengan elemen lainnya Perbarui nilai apabila menemukan nilai yang lebih besar/kecil 1 max = values[0] values[0] values[1] values[2] 2 compare values[3] values[length-1] 34

Filling Isi array dengan nilai nol: for (int i = 0; i < values.length; i++) { values[i] = 0; } Isi arraylist dengan angka kuadrat for (int i = 0; i < values.size(); i++) { values.set(i, i * i); } 35

Sum and Average Untuk menghitung jumlah dari seluruh elemen, simpan dalam sebuah variabel yang terus menerus diperbarui: double total = 0; for (double element : values) { } total = total + element; Untuk menghitung rata-rata, bagi dengan jumlah elemen double average = total / values.size(); // for an array list Pastikan bahwa jumlah elemen tidak nol! 36

Counting Matches public int count(double atleast) { int matches = 0; for (BankAccount account : accounts) { if (account.getbalance() >= atleast) matches++; //Found a match } } return matches; 37

Mencari Sebuah Nilai Cek semua elemen hingga menemukan elemen yang diinginkan Contoh: public BankAccount find(int accountnumber) { for (BankAccount account : accounts) { if (account.getaccountnumber() == accountnumber) // Found a match return account; } return null; // No match in the entire array list } 38

Menghapus elemen ArrayList gunakan method remove Array yang tidak terurut 1. Ganti elemen yang dihapus dengan elemen terakhir pada array 2. Decrement variabel yang menyimpan ukuran array values[pos] = values[valuessize - 1]; valuessize--; 39

Removing an Element Array terurut 1. Pindahkan semua elemen setelah elemen yang dihapus ke indeks yang lebih awal 2. Decrement variabel yang menyimpan ukuran array for (int i = pos; i < valuessize - 1; i++) { values[i] = values[i + 1]; } valuessize--; 40

Removing an Element 41

Inserting an Element ArrayList gunakan method add Array tidak terurut: Masukkan elemen di indeks terakhir array Increment variabel yang menyimpan ukuran array if (valuessize < values.length) { values[valuessize] = newelement; valuessize++; } 42

Inserting an Element Array terurut Mulai dari akhir array, pindahkan elemen satu per satu ke indeks yang lebih tinggi, hingga sampai di posisi dimana elemen baru akan diletakkan Masukkan elemen di posisi tersebut Increment variabel yang menyimpan ukuran array if (valuessize < values.length) { for (int i = valuessize; i > pos; i--) { values[i] = values[i - 1]; } values[pos] = newelement; valuessize++; } 43

Inserting an Element 44

Menyalin Array Menyalin (copy) sebuah array akan mengakibatkan adanya reference lain ke array tersebut double[] values = new double[6];... // Fill array double[] prices = values; 45

Menyalin Array Untuk membuat salinan dari sebuah array, gunakan method Arrays.copyOf: double[] prices = Arrays.copyOf(values, values.length); 46

Memperbesar Array Untuk memperbesar sebuah array, gunakan method Arrays.copyOf: values = Arrays.copyOf(values, 2 * values.length); 47

Array Dua Dimensi Ketika membuat sebuah array dua dimensi, spesifikasikan jumlah baris dan kolom yang diinginkan final int ROWS = 3; final int COLUMNS = 3; String[][] board = new String[ROWS][COLUMNS]; Akses elemen dengan pasangan indeks board[1][1] = "x"; board[2][1] = "o"; 48

Traversing Two-Dimensional Arrays Gunakan dua nested loops ketika ingin mengunjungi array dua dimensi: for (int i = 0; i < ROWS; i++) for (int j = 0; j < COLUMNS; j++) board[i][j] = " "; 49

Traversing Two-Dimensional Arrays Kita juga dapat menggunakan dimensi array dari variabel array: board.length is the number of rows board[0].length is the number of columns Sehingga, loop dapat juga dituliskan menjadi: for (int i = 0; i < board.length; i++) for (int j = 0; j < board[0].length; j++) board[i][j] = " "; 50

Key Learning Points Arrays digunakan untuk menyimpan sekumpulan data yang memiliki kesamaan tipe ArrayLists digunakan untuk menyimpan sekumpulan objects Ukuran dari ArrayLists bersifat fleksibel, ukuran arrays adalah tetap Class ArrayList menyediakan beberapa method untuk melakukan operasi pada ArrayList Gunakan wrapper class ntuk menyimpan tipe data primitive dalam ArrayLists 51

Tugas Membaca Chapter 6. Arrays and Array Lists http://docs.oracle.com/javase/tutorial/java/nutsandbolts/ar rays.html 52

What s next? Chapter 7. Designing Classes 53