Diktat_Prosedural_13_StudiKasus

Iawx 1 kosong skema solusi algoritma adalah sebagai

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: m IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 39 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB menginisialisasi harga minimum dengan suatu nilai khusus. Implementasi yang dipilih pada algoritma yang akan ditulis merupakan kombinasi dari kedua skema tadi: elemen pertama tidak mendapat perlakukan khusus, melainkan diproses dalam badan pengulangan dengan melakukan analisa kasus, apakah menentukan minimum elemen pertama (inisialisasi), atau menggantikan elemen minimum. Cara ini dipilih untuk mempersingkat pengkodean. Skema solusi untuk algoritma alokasi secara Best-Fit adalah sebagai berikut: procedure AlokBlokKB (input X : integer, output IAw : integer) Inisialisasi repeat Search zone kosong pertama : skema search : while... if blok pertama zone kosong then Traversal: Hitung banyaknya blok dlm zone kosong tsb. if ada zone kosong dan memenuhi syarat then if zone kosong pertama then Inisialisasi: Ukuran zone Minimum : NBMin dan Posisi Awal NAwal else Cek apakah lebih baik, jika ya, update NBMIn dan IAw} until semua blok diperiksa atau blok berukuran=X Terminasi if ada zone memenuhi syarat then Ubah status blok pada zone tersebut [IAw..IAw+X-1] menjadi ISI procedure DeAlokBlok (input X, IAw : integer ) I.S. : X adalah ukuran zone, bilangan positif dan IAw adalah alamat blok awal zone tersebut, dengan IAw ∈ [1..NB-X], Blok dengan indeks IAw s.d. IAw+X-1 pasti berstatus ISI. F.S. : Tabel status memori dengan indeks blok IAw..IAw+X-1menjadi KOSONG } Proses : Sebuah zone berukuran X dan bebawal pada blok IAw di-dealokasi (statusnya dijadikan kosong) Proses dengan representasi ini sangat sederhana: adalah pemrosesan sekuensial (traversal) untuk membuat status blok [IAw..IAw+X-1] KOSONG Skema solusi algoritma adalah sebagai berikut : Set status blok [X..IAw+X-1] menjadi false procedure GarbageCollectionK I.S. : Sembarang F.S. : Tabel status memori menjadi dua bagian: zone bebas di belahan “kiri” (indeks kecil), zone ISI di belahan “kanan”. Jika K adalah integer [0..NB] yang merupakan indeks blok KOSONG terkahir pada zone bebas, maka ada 3 kemungkinan F.S. • Jika K ≠ 0 dan K < NB, maka blok dengan indeks[1..K] adalah zone KOSONG, bagian dengan indeks [K+1 .. NB] adalah zone ISI. • Jika K ≠ 0 dan K = NB: [1..K] maka semua blok adalah KOSONG, memori terdiri dari sebuah zone KOSONG. • Jika K = 0 maka semua blok adalah ISI, tidak ada zone kosong. Proses : Menggabungkan semua zone kosong, sehingga diperoleh satu zone kosong saja “di bagian kiri” tabel. Perhatikan bahwa proses penggeseran secara fisik tidak diperlukan jika kita tidak peduli dengan isi memori dan hanya mengelola status Realisasi”menggeser” elemen tabel yang berstatus KOSONG ke kiri sangat sederhana dan dapat dilakukan dengan dua pass atau satu pass. Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 40 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB Dengan dua pass: - Lakukan proses sekuensial (traversal) untuk mencacah banyaknya blok kosong, misalnya Nkosong - Lakukan traversal sekali lagi, untuk memberi status [1..Nkosong] dengan KOSONG dan [Nkosong+1..NB] dengan ISI Dengan satu pass: Harus dilakukan “penggeseran” secara fisik (ide : kasus bendera Indonesia): - Lakukan proses sekuensial (traversal), kelompokkan KOSONG di kiri dan ISI di kanan dengan menukarkan dua elemen. Skema solusi algor...
View Full Document

This document was uploaded on 03/15/2014 for the course IF 2030 at Institut Teknologi Bandung.

Ask a homework question - tutors are online