PRAKTIKUM 9 PROSEDUR BERSARANG

dokumen-dokumen yang mirip
STRATEGI DIVIDE AND CONQUER

METODE DEVIDE AND CONQUER (DANDC)

Politeknik Elektronika Negeri Surabaya

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

Universitas gunadarma. pascal. Bab 4- bab 10. Hana Pertiwi S.T

SORTING. Hartanto Tantriawan, S.Kom., M.Kom

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

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

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

BAB VII ALGORITMA DIVIDE AND CONQUER

Algoritma Bubble Sort dan Quick Sort

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

Algoritma dan Pemrograman Sorting (Pengurutan) IS1313. Oleh: Eddy Prasetyo N

SORTING DENGAN ALGORITMA DIVIDE AND CONQUER

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA SILABUS ALGORITMA PEMROGRAMAN

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

Algoritma Divide and Conquer (Bagian 2)

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Algoritma Divide and Conquer. (Bagian 2)

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

PRAKTIKUM 8 MEMILIH STRUKTUR DATA

SILABUS : DASAR-DASAR PEMROGRAMAN. : Made Windu Antara Kesiman, S.T., M.Sc NIP : : PENDIDIKAN KIMIA

SATUAN ACARA PERKULIAHAN MATA KULIAH PEMROGRAMAN PASCAL * (TK) KODE / SKS: KK /2 SKS

SORTING ARRAY FAKULTAS TEKNOLOGI INFORMASI UNISBANK SEMARANG : ANDY KRISTIANTO : Disusun Oleh :

: Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Sorting. Quick Sort

BAB V SORT. Proses penukaran tidak dapat langsung dilakukan dengan cara : nilai[1] = nilai[2]; nilai[2] = nilai[1];

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

SORTING (PENGURUTAN DATA)

BAB 8 SORTING DAN SEARCHING

Pengertian Algoritma Pengurutan

7. SORTING DAN SEARCHING

Perulangan Muh. Izzuddin Mahali, M.Cs. Pertemuan 3. Algoritma dan Struktur Data. PT. Elektronika FT UNY

TELAAH WAKTU EKSEKUSI PROGRAM TERHADAP KOMPLEKSITAS WAKTU ALGORITMA BRUTE FORCE DAN DIVIDE AND CONQUER DALAM PENYELESAIAN OPERASI LIST

Searching [pencarian] Algoritma Pemrograman

Meizano Ardhi M., S.T.

BAB 2 LANDASAN TEORI

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

SORTING (BAGIAN II) Proses kelima

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

CCH1A4 / Dasar Algoritma & Pemrogramanan

BAB V SORTING (PENGURUTAN) INTERNAL

RENCANA PEMBELAJARAN SEMESTER (RPS)

Pencarian pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

MODUL 1 Operasi Dasar dalam PHP

Teori Algoritma. Jenis seleksi

Pengurutan (Sorting) Algoritma Pemrograman

2.4. Struktur Branching

PEMROGRAMAN DAN METODE NUMERIK Semester 2/ 2 sks/ MFF 1024

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting)

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

dengan menyebutkan judul prosedurnya. dalam bentuk prosedur-prosedur. diperlukan.

Outline STRUKTUR DATA. VII. Sorting

Solusi UTS Stima. Alternatif 1 strategi:

PENGURUTAN (SORTING) 1. Overview

White Box Testing Merupakan metode perancangan test case yang menggunakan struktur kontrol dari perancangan prosedural untuk mendapatkan test case.

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

BAB VI Pengurutan (Sorting)

Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni

JARINGAN UNTUK MERGING

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

RENCANA PELAKSANAAN PEMBELAJARAN

PERSEGI ANGKA-HURUF VERTIKAL

LAPORAN PRAKTIKUM SEMENTARA ALGORITMA & STRUKTUR DATA 1

Perbandingan Algoritma Pengurutan Merge Sort, Quick Sort dan Heap Sort Dilihat dari Kompleksitasnya

Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-1

c. Hasil pencarian berupa nilai Boolean yang menyatakan status hasil pencarian. Versi 1 (Pembandingan elemen dilakukan sebagai kondisi pengulangan)

Sorting. Struktur Data dan Algoritma. Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) Fasilkom UI

ALGORITMA DAN PEMROGRAMAN

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.

Pencarian (Searching)

SORTING. Brigida Arie Minartiningtyas, M.Kom

Pencarian. 1. Memahami konsep pencarian 2. Mengenal beberapa algoritma pencarian 3. Menerapkan algoritma pencarian dalam program

Selection, Looping, Branching

MODUL PEMROGRAMAN DENGAN MENGGUNAKAN BAHASA PASCAL CONTOH PROGRAM DENGAN MENGGUNAKAN BAHASA PASCAL (FPC)

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

Analisis Algoritma Greedy dan Brute-Force

SEARCHING & SORTING. Pendahuluan

Bubble Sort (Pengurutan Gelembung / Pemberatan)

PRAKTIKUM 3 SOLUSI MATEMATIKA DENGAN MAPLE

Lab. Teknik Informatika Struktur Data 1

ALGORITMA DIVIDE AND CONQUER

Struktur Kontrol. (Repetition) 1. Pemilihan (Selection) 2. Pengulangan

Algoritma dan Pemrograman 2 PENGURUTAN

Bab 7 Komponen Dasar Visual Basic 29 BAB VII KOMPONEN DASAR VISUAL BASIC TUJUAN PRAKTIKUM

Algoritma Brute Force

A. TUJUAN PEMBELAJARAN

Program Studi Teknik Mesin S1

PROCEDURE. Bentuk Umum : PROGRAM judul_program ; PROCEDURE judul_prosedur ; Begin Statement prosedur ; End ; Begin Statement program utama ; end.

PERTEMUAN 10 METODE DEVIDE AND CONQUER

SOAL PASCAL A. 1. Lengkapi Source Code Dibawah ini : {* Program Menghitung dengan Operator Matematika*}

Kompleksitas Algoritma (1)

Seri : Algoritma dan Pemrograman dengan Pascal

Satuan Acara Perkuliahan (SAP) UNIVERSITAS GUNADARMA

MAKALAH ALGORITMA DIVIDE AND CONQUER

Pengolahan String A. Dasar Teori

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016

SATUAN ACARA PERKULIAHAN JURUSAN TEKNIK INFORMATIKA ITP

Transkripsi:

PRAKTIKUM 9 PROSEDUR BERSARANG 1. MINGGU KE : 11 2. PERALATAN : LCD, E-LEARNING 3. SOFTWARE : MAPLE 4. TUJUAN Mahasiswa memahami: Prosedur bersarang Variabel lokal dan variable global Operasi partisi Algoritma quick sort 5. TEORI PENGANTAR DAN LANGKAH KERJA Suatu prosedur Maple dapat didefinisikan di dalam procedure Maple yang lain. Perintah map untuk menerapkan suatu operasi pada setiap unsur dari suatu tipe struktur. Misalnya untuk membagi setiap unsur dari suatu list dengan suatu bilangan > lst:=[8,4,2,16]: > map(x->x/8,lst); 1, 1 1,, 2 4 2 Perintah map juga dapat digunakan dalam prosedur. Prosedur berikut adalah untuk membagi setiap unsur dari list dengan unsur pertama dari list tersebut. > nest:=proc(x::list) > local v; > v:=x[1]; > map(y->y/v,x); > nest(lst); 1

1, 1 1,, 2 4 2 Dalam prosedur ini Maple menggunakan map sebagai contoh dari prosedur bersarang yang menyatakan v dalam map sebagai v yang sama dalam prosedur yang lebih luar, yaitu nest. A. Variabel Lokal dan Variabel Global Selanjutnya akan dijelaskan bagaimana Maple menggunakan variabel lokal dan variabel global. Ketika membuat prosedur, sebaiknya dinyatakan secara eksplisit yang mana variabel lokal dan mana variabel global. Dalam prosedur nest di atas, variable dalam perintah map mengambil nilai dari prosedur yang mengelilinginya. Bagaimana jika variabel v didefinisikan sebagai variabel lokal? > nest2:=proc(x::list) > local v; > v:=x[1]; > map(proc(y) local v; y/v; end, x); > nest2(lst); 8 1,,, v 4 1 v 2 1 v 16 1 v B. Algoritma QuickSort Algoritma pengurutan adalah hal yang menarik dalam ilmu komputer. Algoritma quick sort berikut adalah algoritma klasik. Kunci untuk memahami algoritma ini adalah dengan memahami operasi dari partisi. Teknik pengurutannya adalah mengambil satu bilangan dari array yang akan diurutkan. Lalu me-reposisi bilangan tadi Ambil satu bilangan dari array yang akan diurutkan. Reposisi bilangan-bilangan dalam array yang kurang dari bilangan yang dipilih tadi di satu sisi array dan reposisi bilangan-bilangan dalam array yang lebih dari bilangan yang dipilih di sisi yang lain. 2

Sisipkan bilangan yang dipilih di antara kedua kelompok ini. Di akhir partisi, belum semua array terurut, karena bilangan yang kurang atau lebih dari bilangan yang dipilih masih seperti semula. Prosedur ini baru membagi array ke dalam dua array yang lebih kecil yang lebih mudah untuk diurutkan Prosedur partition menggunakan array untuk memasukkan list unsur dalam array dapat diubah langsung. Prosedur quicksort lebih mudah untuk dipahami jika terlebih dulu memahami prosedur partition. > partition:=proc(a::array(1,numeric),m::posint,n::posint) > i:=m; > j:=n; > x:=a[j]; > while i<j do > if A[i]>x then > A[j]:=A[i]; > j:=j-1; > A[i]:=A[j]; > else > i:=i+1; > end do; > A[j]:=x; > eval(a); Warning, `i` is implicitly declared local to procedure `partition` Warning, `j` is implicitly declared local to procedure `partition` Warning, `x` is implicitly declared local to procedure `partition` Maple menyatakan i, j, dan x local karena prosedur partition menyatakannya secara eksplisit. Prosedur partition juga secara eksplisit menyatakannya untuk A, tetapi A adalah parameter, bukan variable lokal. Karena tidak ada pernyataaan untuk nama eval, Maple menjadikannya nama global yang mengacu pada perintah eval. Setelah mempartisi array berikut, semua unsur yang kurang dari 3 disimpan sebelum 3, dan unsur yang lebih dari 3 disimpan setelah 3. 3

> a:=array([2,4,1,5,3]); a := [ 2, 4, 1, 5, 3 ] > partition(a,1,5); [ 2, 1, 3, 5, 4 ] > eval(a); [ 2, 1, 3, 5, 4] Tahap akhir dalam prosedur qick-sort adalah menyisipkan prosedur partition ke dalam prosedur yang lebih luar. Pertama prosedur yang lebih luar mendefinisikan subprosedur partition, lalu mempartisi array. > quicksort:=proc(a::array(1,numeric),m::integer,n::integer) > local partition, p; > partition:=proc(m,n) > i:=m; > j:=n; x:=a[j]; > while i<j do > if A[i]>x then > A[j]:=A[i]; > j:=j-1; > A[i]:=A[j]; > else > i:=i+1; > end do; > A[j]:=x; > p:=j; > if m<n then > p:=partition(m,n); > quicksort(a,m,p-1); > quicksort(a,p+1,n); > eval(a); > Warning, `i` is implicitly declared local to procedure `partition` Warning, `j` is implicitly declared local to procedure `partition` Warning, `x` is implicitly declared local to procedure `partition` 4

> a:=array([2,4,1,5,3]); a := [ 2, 4, 1, 5, 3 ] > quicksort(a,1,5); [ 1, 2, 3, 4, 5 ] > eval(a); [ 1, 2, 3, 4, 5 ] Maple menentukan variabel A dan p dalam subprosedur partition didefinisikan oleh parameter dan variabel lokal dari prosedur quicksort yang lebih luar. 6. TUGAS KELOMPOK Diskusikan mengapa nest2 tidak memberikan hasil sepert nest yang sebelumnya! Buat prosedur sederhana yang menggunakan variabel lokal, variabel global, prosedur bersarang. 5