• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
55
0
0

Teks penuh

(1)

Array

Oleh : Nur Hayatin, M.Kom

Teknik Informatika Universitas Muhammadiyah Malang 2016

(2)

About.. [U’r Lecturer]

• Nama : Nur Hayatin, M.Kom

• Email :

[email protected]

• Research Interest [not limited to] :

Information Retrieval

Search Engine Technology

Social Media Analysis

(3)

Pendahuluan

• Pemilihan algoritma dan struktur data yang

tepat  peningkatan performansi program

• Performansi program :

– Time complexity

– Space complexity

(4)

Pendahuluan

• Algoritma :

– Pencarian (searching)

– Pengurutan (sorting)

• Struktur Data :

– Array

– Linked list

– Stack

– Queue

– Binary Tree

– Graf

(5)

Referensi

• Nana Ramadiyanti, Pemrograman Lanjut :

Array, Pens-ITS

• Sahni, Sartaj, “Data Structures, Algorithms,

and Applications in Java”. McGraw-Hill

International Editions.

• L.N. Harnaningrum, Struktur Data

menggunakan Java, Graha ilmu, 2010

• Siswanto, Algoritma & Struktur Data Linier,

Graha Ilmu, 2010

(6)

Catatan

• Semua source code yang digunakan sebagai

contoh dan tugas dalam perkuliahan ini

menggunakan JAVA.

• Materi dasar JAVA yang dibutuhkan :

– Abstraksi (class abstrak maupun interface)

– Override method

(7)

Struktur Data

• Struktur data adalah cara penyimpanan,

penyusunan dan pengaturan data di dalam

media penyimpanan komputer sehingga data

tersebut dapat digunakan secara efisien.

(8)

Jenis Struktur Data

• Struktur Data Linier :

– Array

– Linked list

– Stack

– Queue

• Struktur Data Hirarki :

– Tree

– Graf

(9)

Struktur Data

• Cara memilih struktur data yang tepat  memahami

karakteristik struktur data.

• Karakteristik struktur data, meliputi :

– mekanisme pengaturan data dalam media penyimpanan computer

– programming effort (kompleksitas)

(10)

Struktur Data

• Beberapa pertanyaan terkait dengan

karakteristik struktur data, a.n :

– Bagaimana mekanisme penambahan data (dari

depan/belakang/tengah)?

– Apakah data bisa dihapus?

– Bagaimana mekanisme pemrosesan data (harus

terurut atau dapat diakses secara random)?

Setiap struktur data memiliki kelemahan dan

kelebihan.

(11)

Istilah

• Istilah-istilah yang digunakan dalam struktur data :

– Elemen = data item/obyek pada list – Indeks

– Node – Pointer

– List = elemen-elemen yang susunannya terurut. – Empty = tidak ada elemen didalam list.

– Size = jumlah elemen yang ada pada list

– Head = awal dari list, elemen terdepan pada list. – Tail = akhir dari list, elemen terakhir pada list.

(12)

ARRAY

(13)

Outline

• Definisi Array

• Operasi dasar Array

(14)

Definisi

• Sebuah tipe data yang mampu meyimpan data/variabel dengan nama dan tipe yang sama.

• Contoh : nilai grade dari 6 mahasiswa

• Keterangan

– Terdiri dari 6 elemen

– Elemen pertama pada index ke-0 elemen terakhir pada index ke-5

• Array pada java selalu diawali dengan index ke-0!!!!!

0 1 2 3 4 5 Index

(15)

Deklarasi

• Contoh :

int grade[] = new int[6];

atau

(16)

Inisialisasi

• Contoh :

int grade[] = {5,8,9,7,6,7}; atau :

int grade[] = new int[6]; grade[0] = 5; grade[1] = 8; grade[2] = 9; grade[3] = 7; grade[4] = 6; grade[5] = 7;

(17)

Pengaksesan Elemen

• x = grade[5];

mengakses elemen grade pada index ke-5 yang akan diisikan ke variabel x.

• System.out.print(grade[0]);

mengakses sekaligus menampilkan elemen grade pada index ke-0.

• Elemen array yang dapat diakses dimulai dari index 0

sampai elemen.length()-1

(18)

Contoh Program

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] ); }

} }

(19)
(20)
(21)
(22)

Create dua dimensional array

(23)
(24)
(25)
(26)

Hasil running

• Length pada Indeks ke-0 =3

• Length pada Indeks ke-1 =5

• Finished executing

(27)
(28)

Hasil running

• Elemen pd Dimensi ke-1 = 2

• Elemen pd Dimensi ke-2 = 3

• Elemen pd Dimensi ke-3 = 4

• Finished executing

(29)

Operasi Dasar Array

• Meliputi :

– Pengecekan array kosong (empty)

– Pengecekan array terisi penuh (full)

– Penambahan elemen

– Penghapusan elemen

– Pencarian elemen pada array

(30)

Operasi

Add

add(0,23)

(31)

Operasi

Remove

a b c d e

size = 5

a g b c d e

size = 6

remove(1)

(32)

Operasi

get

a b c d e

0 1 2 3 4

get(2)?

get(5)?

(33)

Operasi

indexOf

a b c d e

0 1 2 3 4

indexOf(e)?

indexOf(b)?

indexOf(s)?

(34)

Increasing Array Length

Length of array

element[]

is

6

.

a b c d e f

newArray = new Object[15];

(35)

Increasing Array Length

Now copy elements from old array to new one.

a b c d e f

(36)

Increasing Array Length

Finally, rename new array.

element = newArray;

element.length = 15

a b c d e f

(37)

Altogether Now

// create a new array of proper length and data

type

Object [] newArray = new Object [newLength];

// copy all elements from old array into new one

System.arraycopy(element, 0, newArray, 0,

element.length);

// rename array

(38)

Latihan

Diketahui L=(a,b,c,d). L adalah sebuah array.

Tentukan hasil yang didapatkan ketika dilakukan

perintah berikut ini :

a) isEmpty()

b) size()

c) get(0), get(2),get(6),get(-3)

d) indexOf(a), indexOf(c), indexOf(q)

e) remove(0), remove(2), remove(3)

f) add(0,e), add(2,f), add(3,g), add(4,h), add(6,h),

add(-3,h)

(39)

Linear List Abstract Data Type

AbstractDataType LinearList {

instances

ordered finite collections of zero or more elements

operations

isEmpty(): mengembalikan nilai true jika kosong dan sebaliknya. size(): mengembalikan jumlah elemen pada list

get(index): mengembalikan elemen sesuai index yang dimasukkan

indexOf(x): mengembalikan nilai index dari elemen x yang dimasukkan, -1 jika elemen tidak ditemukan

remove(index): menghapus elemen sesuai index yang dimasukkan add(theIndex, x): menambah elemen x pada index yang ditentukan output(): menampilkan semua elemen pada list dari kiri ke kanan }

(40)

Linear List as Java Interface

public interface

LinearList

{

public boolean

isEmpty();

public int

size();

public Object

get(int index);

public int

indexOf(Object elem);

public Object

remove(int index);

public void

add(int index, Object obj);

public String

toString();

}

(41)

Implementing An Interface

public class ArrayLinearList implements LinearList {

// code for all LinearList methods must be provided here }

(42)

Linear List As Java Abstract Class

public abstract class LinearListAsAbstractClass {

public abstract boolean isEmpty();

public abstract int size();

public abstract Object get(int index);

public abstract int indexOf(Object theElement);

public abstract Object remove(int index);

public abstract void add(int index, Object theElement);

public abstract String toString(); }

(43)

Extending A Java Class

public class ArrayLinearList extends LinearListAsAbstractClass {

// code for all abstract classes must come here }

(44)
(45)

Class ArrayLinearList

import java.util.*; import utilities.*;

public class ArrayLinearList implements LinearList {

protected Object [] element; // array of elements

(46)

Data Type Of Array element[]

Data type of list elements is unknown.

Define

element[]

to be of data type

Object

.

Cannot put elements of primitive data types (

int

,

(47)

Constructor

public ArrayLinearList(int initialCapacity) {

if (initialCapacity < 1)

throw new IllegalArgumentException ("initialCapacity must be >= 1");

element = new Object [initialCapacity]; }

public ArrayLinearList() {

this(10); }

(48)

Method

isEmpty() dan size()

public boolean isEmpty() {

return size == 0; }

public int size() {

return size; }

(49)

Method

get()

void checkIndex(int index) {

if (index < 0 || index >= size)

throw new IndexOutOfBoundsException ("index = " + index + " size = " + size); }

public Object get(int index) {

checkIndex(index);

return element[index]; }

(50)

Method

indexOf()

public int indexOf(Object theElement) {

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

if (element[i].equals(theElement)) return i;

return -1; }

(51)

Method

remove

()

public Object remove(int index) {

checkIndex(index);

Object removedElement = element[index]; for (int i = index + 1; i < size; i++)

element[i-1] = element[i]; element[--size] = null;

return removedElement; }

(52)

Method

add

()

public void add(int index, Object theElement) {

checkIndex(index);

if (size == element.length)

element = ChangeArrayLength.changeLength1D(element, 2 * size); for (int i = size - 1; i >= index; i--)

element[i + 1] = element[i]; element[index] = theElement; size++;

(53)

Latihan

2. Buatlah sebuah array yang memenuhi spesifikasi yang ada pada tabel

disamping. Petunjuk :

• Buatlah class Bank yang memiliki dua variabel array tsb.

• Berikan inisialisasi pada variabel antrian dengan angka terurut mulai dari 1. sedangkan inisialisasi variabel nasabah dengan obyek yg mengacu pada class Customer.

• Berikan nilai saldo pada tiap objek yang ada dengan memanggil method setSaldo() menggunakan nasabah[0]. • Lakukan pengaksesan untuk setiap

elemen pada array antrian. • Lakukan pengaksesan method

getSaldo().

Variabel Array Tipe data Besar Array

nasabah Customer 3

antrian int 3

Class Customer{

double saldo;

void setSaldo(double dana) { saldo = saldo+dana; } double getSaldo() { return saldo; } }

(54)

Latihan

3. Buatlah sebuah array dua dimensi untuk

menyimpan sebuah kata bahasa indonesia beserta

kata padanan bahasa inggrisnya.

petunjuk :

– Kata yg disimpan diberikan 5 kata.

– Element 1 digunakan untuk menyimpan kata bahasa indonesia

– Element 2 digunakan untuk menyimpan kata bahasa inggris

– Cobalah mengakses kata bahasa inggris dari kata bahasa indonesia yang dipilih pleh user.

(55)

Latihan

4. Diketahui L=(a,b,c,d). L adalah sebuah array

linier list. Tentukan hasil yang didapatkan

ketika dilakukan perintah berikut ini :

a) isEmpty()

b) size()

c) get(0), get(2),get(6),get(-3)

d) indexOf(a), indexOf(c), indexOf(q)

e) remove(0), remove(2), remove(3)

f) add(0,e), add(2,f), add(3,g), add(4,h), add(6,h),

add(-3,h)

Referensi

Dokumen terkait

Oleh karena pemerintah federal Malaysia bertanggung jawab atas pembiayaan dan penyediaan langsung pelayanan kesehatan bagi seluruh penduduk yang relatif gratis, maka pelayanan

Penelitian ini digunakan untuk menjawab permasalahan, apakah penggunaan metode Numbered Heads Together (NHT) dapat meningkatkan hasil belajar mata pelajaran

Judul Tugas Akhir : ANALISIS PERLAKUAN AKUNTANSI HERITAGE ASSETS DAN POTENSI PENINGKATAN PENDAPATAN ASLI DAERAH ATAS PEMANFAATAN ASET BERSEJARAH SEBAGAI OBYEK WISATA

Ketiga, Pondok Pesantren Al Falah Putera Banjarbaru merupakan salah satu pesantren yang telah menerapkan kurikulum ganda dalam pembelajarannya, yaitu pada pagi

 Secara Nasional produksi padi Provinsi Sulawesi Tengah tahun 2015 mempunyai kontribusi sebesar 1,35 persen dari total produksi padi nasional sebesar 75,36 juta ton

Di dalam makalah ini terdapat beberapa tentang pengertian manusia sebagai mahkluk social yang di bentuk dari pada individu – individu yang saling melengkapi satu

Tanaman cabai yang ditanam pada media tanam dengan kandungan abu vulkanik 33.3% dan kandungan tanah normal 66.7% menunjukkan gejala pertumbuhan yang optimal apabila ditinjau

Hasil kesimpulan menyatakan bahwa baik secara parsial maupun berganda kualitas produk, kepercayaan, dan kepuasan pelanggan mempengaruhi terhadap loyalitas