TEKNIK OPTIMASI. Dependensi Optimasi. Optimasi Lokal. Menghasilkan kode program dengan ukuran yang lebih kecil, sehingga lebih cepat eksekusinya.

dokumen-dokumen yang mirip
Teknik Optimasi. Teknik Kompilasi Dosen: Utami Dewi W.,S.Kom

Teknik optimasi. Teknik optimasi kode program Tujuan: menghasilkan kode program yang berukuran lebih kecil dan lebih cepat pada saat dieksekusi.

TUGAS MATA KULIAH TEKNIK KOMPILASI

Teknik Kompiler 11. oleh: antonius rachmat c, s.kom

Perjalanan sebuah intruksi

TEKNIK KOMPILASI. Muhamad Nursalman Ilmu Komputer FPMIPA - UPI

Kesalahan Program dapat berupa

Konstruksi Dasar Algoritma

TEKNIK KOMPILASI PERTEMUAN Ke 4 dan 5 Abdul Muis Mappalotteng ANALISIS SEMANTIK

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN

Objek Data, Variabel, dan Konstanta. Konsep Bahasa Pemrograman Materi 4 Yudianto Sujana, M.Kom

Konsep Dasar Pemrograman

STRUKTUR DASAR ALGORITMA

Syntax, Semantic & Grammar. Konsep Bahasa Pemrograman Materi 3 Yudianto Sujana, M.Kom

TEKNIK KOMPILASI Tony Darmanto,ST / Smt V S1 TI / STMIK WIDYA DHARMA/ Hal 1

2.4. Struktur Branching

ANALISIS SEMANTIK. Teknik Kompilasi Dosen: Utami Dewi W.,S.Kom

Proses Kompilasi. Otomata dan Pengantar Kompulasi Pertemuan 3

Fase-fase proses sebuah kompilasi

Teori Komputasi 10/15/2015. Bab 1: Pendahuluan. Teori Komputasi dan Teknik Kompilasi. Teori Komputasi dan Teknik Kompilasi

a. TRUE b. FALSE c. Jawaban A dan B keduanya dimungkinkan benar d. Tidak dapat ditentukan e. Tidak ada jawaban di antara A, B, C, D yang benar

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

Pertemuan Ke-2 (Teks Algoritma) Rahmady Liyantanto. S1 Teknik Informatika-Unijoyo

BAB III PENGENALAN STRUKTUR BAHASA PASCAL. Kompetensi Dasar : 1. Mahasiswa mengenal dan memahami struktur bahasa Pascal

Kesalahan Program Penanganan Kesalahan Reaksi Compiler Pada kesalahan Error Recovery Error repair

PENGANTAR KOMPUTER & SOFTWARE II

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom

Hubungan antara rencana pengujian dan proses pengembangan system. Tim RPL 1 3

MK. PEMROGRAMAN SISTEM Semester/SKS : 6/3 COMPILER. Jurusan Sistem Komputer S1 Universitas Gunadarma

Algoritma Pemrograman 2B (Pemrograman C++)

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

Bab 4 Perintah Perulangan

Learning Outcomes. akan mampu : (C3) perancangan compiler yang paling optimal (C4)

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-1

OPERASI PERNYATAAN KONDISI

KOMPILASI. Assembler Bahasa Rakitan Bahasa Mesin Compiler (Kompilator) Bahasa Tingkat Tinggi Bahasa tingkat rendah

IF IF ELSE. ELSE IF SWITCH CASE STATEMENT F NT OR, W HILE D O WHILE I 2

Algoritma Pemrograman

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK AMIKOM YOGYAKARTA

Teknik Kompilasi Dosen: Utami Dewi W.,S.Kom

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

Algoritma dan Struktur Data

Pengenalan Algoritma dan Pemrograman Pascal

Perulangan. Bentuk Proses. 1. Perulangan For positif contoh 1 : perulangan positif untuk satu statement :

A. Putting a Program Together

Aplikasi Rekursif dalam Analisis Sintaks Program

Teknik Kompiler 12. oleh: antonius rachmat c, s.kom

A. Putting a Program Together

BAB IV STRUKTUR PROGRAM Struktur program pada dasarnya tersusun 3 struktur program utama yaitu : a. Struktur Berurutan (Sequence Structure) b.

Pemrograman Fery Updi,M.Kom

PEMROGRAMAN VISUAL BASIC.NET ( PERULANGAN / LOOPING )

Algoritma dan Struktur Data

RENCANA PEMBELAJARAN SEMESTER (RPS)

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

Obyektif : KONTROL ALUR PROGRAM

SMA SANTO PAULUS PONTIANAK

Alat bantu (tools) dalam pembuatan parser/ analisis sintaksis. Menggunakan simbol persegi panjang untuk non terminal

Sesi/Perkuliahan ke: VI Tujuan Instruksional Khusus : 4. Pokok Bahasan : Deskripsi singkat : Referensi :

IMPLEMENTASI PERANGKAT LUNAK

PENGUJIAN PERANGKAT LUNAK

Dasar-Dasar Pengujian Perangkat Lunak. Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan Sistem Informasi Univesitas Gunadarma

Percabangan & Perulangan

TPI4202 e-tp.ub.ac.id. Lecture 5

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

Prosedur dan Fungsi ALGORITMA DAN PEMROGRAMAN [IS ] Dosen: Yudha Saintika, S.T., M.T.I

PEMROGRAMAN DASAR ( PASCAL ) PERTEMUAN I

SUB PROGRAM : PROSEDUR & FUNGSI. Konsep Pemrograman

MODUL 6 PERULANGAN. A. String. 1. Instansiasi dan Inisialisasi. M0601xxyyy.jar

24/09/2017 PERCABANGAN

PEMROGRAMAN BERORIENTASI OBJEK. Pengulangan. Budhi Irawan, S.Si, M.T

Materi. Definisi Test Case White Box Testing Blackbox Testing Teknik Testing yang Lain Penggunaan Metode Tes

BAHASA SUMBER. DEFINISI bahasa sumber

Teori Algoritma. Struktur Algoritma

ALGORITMA (KOMPUTER) : ATURAN PENULISAN DAN STRUKTUR DASARNYA

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

BAB 6 METODE PENGUJIAN

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

BAB-2 : TIPE DATA, VARIABEL DAN OPERATOR

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

TUGAS PEMROGRAMAN DASAR PENGULANGAN WHILE

TEORI KONSEP PEMPROGRAMAN 3.1

V. PENGULANGAN. while (kondisi) { Pernyataan ; } Copyright PIK Unsri Agustus 2006

Algoritma Pemrograman

Control Structure. Dasar Pemrograman C Mikrokontroler AVR. Hendawan Soebhakti Oktober 2009

Algoritma Pemrograman

Start. Baris Program. Baris Program. Baris Program. Selesai. Contoh Program Struktur berurutan menghitung luas empat persegi panjang

Algoritma Pemrograman

Structure dasar dari bahasa pemrograman arduino adalah sederhana yang

IT132 Dasar-Dasar Pemrograman. Ramos Somya, S.Kom., M.Cs.

3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta

PENGULANGAN Bagian 1 : Notasi. Tim Pengajar KU1071 Sem

Testing is the exposure of a system to trial input to see wheter it produces corect output Adalah proses eksekusi suatu program dengan maksud

STRATEGI DIVIDE AND CONQUER

6 Maret Structure of Java [Penyeleksian Kondisi]

Algoritma Pemrograman

Algoritma dan Pemrograman. Loop control structures: WHILE. Loop control structures: WHILE Perhatikan potongan program berikut: 12/29/2011

PROSEDUR. Jadi, setiap prosedur harus : - Didefinisikan (dibuat spesifikasinya) dan dituliskan kode programnya - Dipanggil, pada saat eksekusi

CRITICAL REGIONS DAN MONITORS

MODEL KOMPILATOR FUNGSI UMUM BAGIAN KOMPILATOR. Dosen Pengampu: Utami Dewi Widianti,S.Kom

Transkripsi:

Dependensi Optimasi TEKNIK OPTIMASI Menghasilkan kode program dengan ukuran yang lebih kecil, sehingga lebih cepat eksekusinya. Berdasarkan ketergantungan pada mesin : Machine Dependent Optimizer Machine Independent Optimizer ( dan Optimasi Global) Machine Independent Optimizer Dilakukan hanya pada suatu blok dari source code. Optimasi Global Dilakukan dengan analisis flow, yaitu suatu graph berarah yang menunjukkan jalur yang mungkin selama eksekusi program. 1. Folding Nilai konstanta atau ekspresi pada saat compile time diganti dengan nilai komputasinya. Contoh instruksi : A:=2+3+B diganti menjadi A:=5+B 1

2. Redundant Subexpression Elimination Menggunakan hasil komputasi terdahulu daripada melakukan komputasi ulang. Contoh urutan instruksi : A:=B+C X:=Y+B+C B+C redundan, bisa memanfaatkan hasil komputasi sebelumnya, selama tidak ada perubahan nilai pada variabel. 3. Optimasi dalam sebuah iterasi Loop Unrolling : menggantikan suatu loop dengan menulis statement dalam loop beberapa kali. Karena sebuah iterasi pada implementasi ke level rendah, memerlukan : Inisialisasi nilai awal, pada loop dilakukan sekali pada saat permulaan eksekusi loop. Penge-test-an, apakah variabel loop telah mencapai kondisi terminasi. Adjustment yaitu : penambahan atau pengurangan nilai pada variabel loop dengan jumlah tertentu. Operasi yang terjadi perulangan (loop body) pada tubuh Contoh instruksi : FOR I:=1 to 2 DO A[I]:=0; dioptimasi menjadi A[1] := 0; A[2] := 0; Pada instruksi pertama yang menggunakan iterasi perlu dilakukan inisialisasi setiap eksekusi loop, pengetesan, adjustment, dan operasi pada tubuh perulangan. Yang kesemuanya itu menghasilkan banyak instruksi. Karena itu dengan optimasi hanya memerlukan dua instruksi assignment. 2

Frequency Reduction : memindahkan statement ke tempat yang lebih jarang dieksekusi. Contoh instruksi : FOR I:=1 TO 10 DO BEGIN X:=5; A:=A+I; END; variabel X dapat dikeluarkan dari iterasi, menjadi : X:=5; FOR I:=1 TO 10 DO BEGIN A:=A+I END; 4. Strength Reduction Mengganti suatu operasi dengan jenis operasi lain yang lebih cepat dieksekusi. Contoh : pada beberapa komputer operasi perkalian memerlukan waktu lebih banyak dari pada operasi penjumlahan. Contoh lain : A := A + 1 dapat digantikan dengan Inc(A) Optimasi Global Optimasi global biasanya dilakukan dengan suatu graph terarah yang menunjukkan jalur yang mungkin selama eksekusi program. Ada dua kegunaan optimasi global yaitu bagi programmer dan untuk compiler itu sendiri: 3

Bagi Programmer (Pembuat Program dengan Bahasa Tingkat Tinggi) Unreachable / Dead Code: Kode yang tidak pernah dieksekusi. Misalnya : X := 5; If X = 0 Then A := A +1 Instrusksi A := A+1 tidak pernah dikerjakan karena kondisi X tidak pernah menjadi 0, sehingga memperlambat proses. Unused Parameter : Parameter yang tidak pernah digunakan dalam procedure Misalnya : Procedure Penjumlahan (a,b,c : Integer); Var x : Integer; x := a + b; End. Parameter c tidak pernah digunakan sehingga tidak perlu diikut sertakan disebabkan pada prosedur penjumlahan c tidak pernah dikenakan suatu proses atau nilai. Unsused Variabel : variabel yang tidak pernah dipergunakan. Misal : Program pendek; Var a, b : Integer; a := 5; End. Variabel b tidak pernah digunakan dalam manipulasi, sehingga tidak perlu untuk dideklarasikan. Variabel : variabel yang dipakai tanpa nilai awal. Contoh: Program Awal; Var a, b : Integer; a := 5; a := a + b; End. Variabel b digunakan tetapi tidak memiliki nilai awal. 4

Bagi Compiler Meningkatkan efisiensi eksekusi program Menghilangkan useless code/kode yang tidak terpakai LATIHAN 1. Lakukan optimasi lokal yang diperlukan pada potongan program berikut, dan jelaskan optimasi apa saja yang diterapkan. A := B + 10 * 4; C := B + D; F := B + D G; For I:= 1 To 100 Do X := X + 1; A := A + X; B := 7 ; End; LATIHAN 2. Apakah kita dapat melakukan optimasi Redundant Sub-expression elimination pada statement berikut, mengapa? a. A := B + C; A := X + Y ; F := B + C + G + H ; b. A := B + C; B := X + Y; F := B + C + G + H ; LATIHAN 3. Bisakah kita melakukan optimasi frequency reduction pada loop berikut : 10 For I := 1 To 10 Do 20 A := I + 1 ; 30 Mengapa kita tidak dapat melakukan optimasi pada instruksi baris ke-20? 4. Apakah cukup efisien melakukan optimasi loop unrolling untuk statement berikut : For I := 1 To 100 Do A(I) := 5

LATIHAN 5. Lakukan optimasi global sederhana pada program berikut : PROGRAM Tes; Var A, B, C : Integer; B := 5; While B < 3 Do B := B + 1; C := 10 + B ; End ; 6