Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1...

29
Algoritma dan Struktur Data http://www.unhas.ac.id/amil/S1TIF/StrukturData/ L2. STACK Amil Ahmad Ilham 1

Transcript of Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1...

Page 1: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Algoritma dan Struktur Datahttp://www.unhas.ac.id/amil/S1TIF/StrukturData/

L2. STACK

Amil Ahmad Ilham

1

Page 2: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Review Array• Contoh menyisip item pada index 1

2

Page 3: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Review Array• Contoh menghapus item pada index 1

3

Page 4: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Review Java

• Java adalah bahasa pemrograman berorientasi object

• Program java nampak seperti sekumpulan object yang bekerjabersama-sama menyelesaikan suatu tugas yang diberikan.

4

Page 5: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Review Java

• Class• Prototype atau template yang

mendefinisikan suatu object• Menggambarkan apa yang

object miliki dan apa yang object dapat kerjakan

• Contoh: Class Dog• Dog memiliki: size, breed, name • Dog dapat: bark()

• Apa yang object miliki disebutdengan instance variables

• Apa yang object dapat kerjakandisebut dengan methods

5

Page 6: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Review Java

• Object• Instance dari sebuah class

• Satu class, banyak object

• Contoh: Class DogObject: dog1, dog2, dog3

6

Page 7: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Membuat object

7

Page 8: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Implementasi OOP• Buat class

8

Page 9: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Implementasi OOP• Buat class test yang berisi method “main” dan object

9

Page 10: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Implementasi OOP• Contoh lain class test

10

Page 11: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Struktur DataStruktur Data

11

Page 12: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Good software

• Requirements for a good software:• Clean Design

• Easy maintenance

• Reliable

• Easy to use

• Fast algorithms

Efficient data structures Efficient algorithms

Page 13: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Why?

• Computers take on more and more complex tasks• Imagine: index of 8 billion pages ! (Google)

• Software implementation and maintenance is difficult.

• Clean conceptual framework allows for more efficient and more correct code

Page 14: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Collections

• Collection is a group of items that we wish to treat as a conceptual unit.

• Categories of Collections:

Page 15: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Linear Collections

• Commonly used linear collections:• String

• Lists

• Stacks

• Queues

Page 16: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Stacks

• A stack is a LIFO (LAST IN FIRST OUT) sequence.• Addition and removal takes place only at one end, called

the top.

• Examples:• Stacks of plates

• Trains

• Vending Machines

• Expression Evaluation

• Navigating a maze

• Map coloring

Page 17: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Lifetime of a Stack

Page 18: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

The Effects of Stack Operations

Page 19: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

The Interface for the Stack Prototype (StackPT)

Page 20: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Implementation of the Stack Prototype Using Array1. Stack.java

2. ArrayStack.java

3. StackEmptyException.java

4. StackFullException.java

5. StackTest.java

Page 21: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Stack.java• adalah interface yang berisi daftar method yang digunakan untuk implementasi

stack.

21

Page 22: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

ArrayStack.java• Implementasi interface

Stack menggunakanArray

22

Page 23: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

ArrayStack.java• Implementasi interface

Stack menggunakanArray

23

Page 24: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

StackEmptyException.java• adalah class yang dipanggil jika operasi peek atau pop dilaksanakan pada saat

stack sudah kosong.

24

Page 25: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

StackFullException.java• adalah class yang dipanggil jika operasi push dilaksanakan pada saat stack sudah

penuh.

25

Page 26: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

StackTest.java• Class yang berisi

method ‘main”

• Berisi object ArrayStack

26

Page 27: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Output StackTest.java

27

Page 28: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

Tugas #3

• Modifikasi class StackTest.java untuk melakukan operasi Push dan Pop sebanyak 2 angka digit terakhir dari STB anda.

28

Page 29: Algoritma dan Struktur Data · 2020. 4. 11. · •Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3. •Buat 1 file zip yang berisi program

SIKOLA

• Print screen hasil running program pada Tugas#1 (slide 9), Tugas#2 (slide 10) dan Tugas#3.

• Buat 1 file zip yang berisi program java dan hasilnya, upload ke Sikolapaling lambat Senin, 13 April 2020 Pukul 13.30.

29