Gambar 1. Ilustrasi Stack

dokumen-dokumen yang mirip
Gambar 1. Ilustrasi Stack

Praktikum Stack. A. Stack Collection di java.util.collection. Percobaan 1. Percobaan 2. import java.util.iterator; import java.util.

Tumpukan(Stack)!! " # $ %&' $ %& ( ) ( * +, / ( (

A. TUJUAN PEMBELAJARAN 1. Memahami konsep dan operasi pada Stack. 2. Mampu mengimplementasikan struktur data Stack pada array dan List.

A. TUJUAN PEMBELAJARAN

Praktikum 4. Tumpukan (Stack)

BAB III METODE PENELITIAN / PERANCANGAN SISTEM. perancangan dan pembuatan program ini meliputi : dengan konversi notasi infix, prefix, dan postfix.

Pertemuan 10. Tumpukan (Stack) Dipersiapkan oleh : Boldson Herdianto. S., S.Kom., MMSI.

STACK (Tumpukan) Pengertian Stack

ARNA FARIZA YULIANA SETIOWATI

ALGORITMA DAN STRUKTUR DATA

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 4 & 5

STACK (Tumpukan) Tumpukan Koin. Tumpukan Kotak

4. STACK / TUMPUKAN TEORI PENUNJANG

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

STACK. Sistem penyimpanan data dengan mekanisme Last In First Out( LIFO).

BAB II STACK Atau TUMPUKAN

STACK/TUMPUKAN. R. Denny Ari Wibowo, S.Kom STMIK BINA NUSANTARA JAYA LUBUKLINGGAU

Percabangan dan Perulangan

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE

Percabangan & Perulangan

BAB II STACK (TUMPUKAN)

Struktur Data Array. Rijal Fadilah S.Si

STRUKTUR DATA Pertemuan 4

Algoritma dan Struktur Data STACK

Percabangan & Perulangan

Pemrograman Berorientasi Objek (PBO) PERTEMUAN X (LOOPING)

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS

LIST LINIER & STACK. Pertemuan 6 Yani sugiyani, M.Kom

Politeknik Elektronika Negeri Surabaya

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

Materi 8 : STACK (TUMPUKAN) Dosen:

BAB III OPERATOR compiler operasi operand A. Operator Aritmatika Operator Penggunaan Deskripsi Latihan 4. Aritmatika.java

STACK ATAU TUMPUKAN 3.1 DAFTAR LINEAR

Politeknik Elektronika Negeri Surabaya

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

S TA C K Sunu Wibirama

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR TIPE-TIPE FUNGSI ATAU METHOD

Perulangan / Looping

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

Modul Praktikum Algoritma dan Struktur Data

STACK dan QUEUE MODUL PRAKTIKUM STRUKTUR DATA 09 UNIVERSITAS KRISTEN DUTA WACANA. Daftar Isi: Stack dan Queue. Latihan soal. Guided.

Operator, Statement kondisional, dan Iterasi pada Java

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

DASAR PEMROGRAMAN JAVA. Astrid Lestari Tungadi, S.Kom., M.TI.

MODUL IV STACK A. TUJUAN

Obyektif : KONTROL ALUR PROGRAM

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL KE-2 STACK DAN QUEUE

IF PEMROGRAMAN LANJUT PERULANGAN. Oleh : Andri Heryandi, M.T.

IF PEMROGRAMAN LANJUT PERCABANGAN. Oleh : Andri Heryandi, M.T.

BAB V. STATEMEN KONTROL

BAB 3 STACK (TUMPUKAN)

S T A C K ( T U M P U K A N )

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

Materi. Tipe, Variabel dan Operator Algoritma Pemrograman PENULISAN ALGORITMA PENULISAN ALGORITMA 15/03/2010 NAMA DAN EKSPRESI

Metode Binnary Searching di Java Console

STRUKTUR DATA Pertemuan 1 s.d 8

Belajar ArrayList di Java

Algoritma Pemrograman

Algoritma Pemrograman & Struktur Data

TIPE DATA Pertemuan (K-03/L-03)

STACK (TUMPUKAN) Secara sederhana, sebuah tumpukan bisa kita ilustrasikan seperti gambar berikut.

IF PEMROGRAMAN LANJUT TUGAS 1. Oleh : Andri Heryandi, M.T.

Pemrograman Berbasis Objek Operator dan Assignment

Single Linked List (1)

Gambar 1. Single Linked List

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

if (ekspresi_boolean) { Pernyataan1; } else { Pernyataan2; }

A. TUJUAN PEMBELAJARAN 1. Mengetahui cara menangani exception dengan cara melempar exception. 2. Mengetahui cara membuat sendiri class exception.

Java Basic. Variabel dan Tipe Data. Lokasi di dalam memori komputer yang digunakan untuk menyimpan suatu informasi (nilai)

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK (JAVA) PERTEMUAN 4 CONTROL FLOW STATEMENT

Operator dan Assignment

Topik. 1. Statement if 2. Statement if..else.. 3. Statement if..else.. If (bertingkat ) 4. Penggunaan Input Keyboard

if (ekspresi_boolean) {

A. TUJUAN Mahasiswa diharapkan mampu : 1. Memahami Konsep Binary Search Tree 2. Mengimplementasaikan Binary Search Tree

Struktur Kontrol Pemrograman Java : PERCABANGAN

Terdiri atas deretan karakter String diimplementasikan oleh java dalam bentuk class. Dapat langsung di konstruksi tanpa perintah new

Latihan Ujian Pemrograman Berorientasi Objek. Semester Genap 2016/2017

A. TUJUAN PEMBELAJARAN 1. Memahami mengenai konsep rekursif 2. Mampu memecahkan permasalahan dengan konsep rekursif

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

BAHASA PEMROGRAMAN JAVA

BAB II LANDASAN TEORI

Stack STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 5 : 6 Juli 2015

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

PRAKTIKUM ALGORITMA & PEMROGRAMAN III MODUL_06 Stack (Tumpukan)

PROJECT UJIAN AKHIR SEMESTER MATA KULIAH STRUKTUR DATA Program Kalkulator Scientific Sederhana

Aplikasi Rekursif dalam Analisis Sintaks Program

Pada akhir pertemuan ini, diharapkan mahasiswa memiliki kemampuan untuk: Menggunakan struktur kendali pencabangan bersyarat dalam bahasa pemrograman.

Gambar 1. Single Linked List

Struktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD

C. TUGAS PENDAHULUAN Buatlah resume 1 halaman mengenai Priority Queue dan berikan penjelasannya.!

Pertemuan Ke-4 Urutan (sequence) Rahmady Liyantanto. liyantanto.wordpress.com. S1 Teknik Informatika-Unijoyo

SUMBER BELAJAR PENUNJANG PLPG

All Chapter Rental Multimedia

Algoritma Pemrograman

PRAKTIKUM PEMROGRAMAN LANJUT MODUL 1

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

Transkripsi:

PRAKTIKUM 22 STACK (TUMPUKAN) A. TUJUAN PEMBELAJARAN 1. Memahami konsep penyimpanan data dengan stack (tumpukan) 2. Memahami operasi pada stack 3. Mampu mengimplementasikan struktur data stack pada pemrograman berbasis obyek B. DASAR TEORI Salah satu konsep yang efektif untuk menyimpan dan mengambil data adalah terakhir masuk sebagai pertama yang keluar (Last In First Out/FIFO). Dengan konsep ini, pengambilan data akan berkebalikan urutannya dengan penyimpanan data. Stack(tumpukan) adalah sebuah kumpulan data dimana data yang diletakkan di atas data yang lain. Dengan demikian stack adalah struktur data yang menggunakan konsep LIFO. Elemen terakhir yang disimpan dalam stack menjadi elemen pertama yang diambil. Dalam proses komputasi, untuk meletakkan sebuah elemen pada bagian atas stack disebut dengan push. Dan untuk memindahkan dari tempat teratas tersebut, kita melakukan pop. Gambar 1. Ilustrasi Stack Ada 2 operasi paling dasar dari stack yang dapat dilakukan, yaitu : 1. Operasi push yaitu operasi menambahkan elemen pada urutan terakhir (paling atas). 2. Operasi pop yaitu operasi mengambil sebuah elemen data pada urutan terakhir dan menghapus elemen tersebut dari stack. 159

Mengubah Notasi Postfix menjadi Infix dengan Stack Salah satu penggunaan stack adalah mengubah notasi infix menjadi postfix. Berikut ini adalah algoritma untuk mengubah notasi infix menjadi notasi postfix: 1. Baca ungkapan dalam notasi infix, misalnya S, tentukan panjang ungkapan tersebut, misalnya N karakter, siapkan sebuah stack kosong dan siapkan derajad masingmasing operator, misalnya: ^ berderajad 3, * dan / berderajad 2, + dan berderajad 1 dan ( berderajad 0. 2. Dimulai dari i = 1 sampai N kerjakan langkah-langkah sebagai berikut: a. R = S[I] b. Test nilai R. Jika R adalah: operand : langsung ditulis kurung buka : push ke dalam tumpukan kurung tutup : pop dan tulis semua isi tumpukan sampai ujung tumpukan = (. Pop juga tanda ( ini, tetapi tidak usah ditulis operator : jika tumpukan kosong atau derajad R lebih tinggi dibanding derajad ujung tumpukan, push operator ke dalam tumpukan. Jika tidak, pop ujung tumpukan dan tulis; kemudian ulangi pembandingan R dengan ujung tumpukan. Kenudian R di-push c. Jika akhir notasi infix telah tercapai, dan tumpukan masih belum kosong, pop semua isi tumpukan dan tulis hasilnya Untuk memahami algoritma di atas, kita coba mengubah ungkapan berikut, yang ditulis menggunakan notasi infix, menjadi notasi postfix ( A + B ) / (( C D ) * E ^ F) Ilustrasi pengubahan notasi infix di atas menjadi notasi postfix secara lengkap tersaji dalam tabel sebagai berikut: 160

Karakter dibaca ( ( Tabel 1. Proses Mengubah Notasi Infix menjadi Postfix Isi Tumpukan Karakter tercetak A ( + A A + ( + B B A B ) + A B + / / ( / ( ( / ( ( C / ( ( C A B + C - / ( ( - D / ( ( - D A B + C D ) / ( - A B + C D - * / ( * E / ( * E A B + C D - E ^ / ( * ^ F / ( * ^ F A B + C D - F ) / ( * ^ A B + C D F ^ / ( * A B + C D F ^ * / / A B + C D F ^ * Hasil Notasi Postfix Yang Terbentuk Dari ilustrasi di atas, bisa kita lihat bahwa notasi postfix dari ungkapan: ( A + B ) / (( C D ) * E ^ F) adalah A B + C D F ^ * Tabel 2. Contoh Infix ke Postfix Infix Postfix ( A + B ) / (( C D ) * E ^ F) A B + C D F ^ * a + b * c abc*+ a * b / c + d ab*c/d+ 161

a * (b + c) a^b^c abc+* abc^^ C. TUGAS PENDAHULUAN 1. Ubahlah ekspresi infix dibawah ini menjadi ekspresi postfix. a. (A * B) + (C -D) b. (A - B) - (C * D) +E c. A* (B - C) - (D * E) D. PERCOBAAN Percobaan 1 : Mengubah notasi infix menjadi postfix import java.util.stack; public class InfixToPostfix { String infixexp = ""; String postfixexp = ""; Stack<Character> s = new Stack<Character>(); public void setinfixexp(string infixexp) { this.infixexp = infixexp; public boolean isoperator(char ch) { if (ch == '+' ch == '-' ch == '*' ch == '/' ch == '^') { return true; return false; public int degreeop(char op) { if (op == '+' op == '-') { return 1; else if (op == '*' op == '/') { return 2; else if (op == '^') { return 3; else { return 0; public String topostfix() { char ch; 162

for (int i = 0; i < infixexp.length(); i++) { ch = infixexp.charat(i); if (isoperator(ch)) { if (s.isempty() degreeop(ch) > degreeop(s.peek())) { //perbandingan derajat relasi s.push(ch); else { do { if (s.isempty() degreeop(ch) > degreeop(s.peek())) { break; else { //System.out.println(ch); while (degreeop(ch) <= degreeop(s.peek())); //perbandingan derajat relasi s.push(ch); else if (ch == ')') { do { while (s.peek()!= '('); s.pop(); else if (ch == '(') { s.push(ch); else { postfixexp += ch; if (!s.isempty()) { do { while (!s.isempty()); return postfixexp; import java.util.scanner; public class TestInfixToPostfix { public static void main(string[] args) { InfixToPostfix itp = new InfixToPostfix(); String infix; Scanner keyin = new Scanner(System.in); //(a+b)/((c-d)*e^f) //(A+B)/((C-D)*E^F) System.out.print("Infix Expression : "); 163

infix = keyin.nextline(); itp.setinfixexp(infix); System.out.println("Postfix Expression : " + itp.topostfix()); E. LATIHAN Ujilah program yang sudah dibuat dengan notasi infix berikut: a. (A * B) + (C -D) b. (A - B) - (C * D) +E c. A* (B - C) - (D * E) F. LAPORAN RESMI Kerjakan hasil percobaan(d) dan latihan(e) di atas dan tambahkan analisa. 164