Teknik optimasi
Teknik optimasi kode program
Tujuan: menghasilkan kode program yang berukuran lebih kecil dan lebih cepat pada saat dieksekusi.
Berdasarkan sifat ketergantungan dengan mesin maka optimasi dibagi menjadi dua:
a. Machine Dependent Optimizer
b. Machine Independent Optimizer
Machine Dependent Optimizer
Kode program dioptimasi agar lebih efisien saat dieksekusi untuk mesin tertentu. Proses optimasi memerlukan informasi feature yang ada pada mesin tujuan. Machine Independent Optimizer Kode program dioptimasi agar lebih efisien saat dieksekusi untuk lebih dari satu mesin tertentu. Machine Independent Optimizer terdiri dari dua jenis: optimasi lokal dan optimasi global Berdasarkan pengembangan program
a. Penulisan baris program (source code)
b. Waktu kompilasi oleh kompiler
Berdasarkan letak atau posisi baris program (source code) di dalam file program, maka optimasi dibagi menjadi dua:
a. Optimasi lokal
b. Optimasi global
1. Optimasi lokal
Optimasi yang dilakukan pada suatu blok source code, dengan cara:
1. Folding
2. Redundant-Subexpression Elimination
3. Optimasi dalam sebuah iterasi
4. Strength Reduction
1. Folding
mengganti konstanta atau ekspresi yang bisa dievaluasi pada saat compile time dengan nilai komputasinya.
Contoh:
angsuran:= rp_bulan + bunga + 10000 + 6000;
dapat dioptimasi menjadi:
angsuran:= rp_bulan + bunga + 16000;
Catatan:
1. pertimbangkan untuk mengganti penulisan nilai secara langsung dengan mengisikan nilai tersebut ke dalam sebuah variabel, untuk alasan kemudahan perawatan program.
2. Redundant-Subexpression Elimination
sebuah ekspresi yang sudah dihitung dapat digunakan kembali, sehingga tidak perlu menghitungnya kembali.
Contoh:
cicilan:= rp_bulan + bunga;
biaya_adm:= 10000 + 6000;
angsuran:= rp_bulan + bunga + 10000 + 6000;
Dapat dioptimasi menjadi:
2 cicilan:= rp_bulan + bunga;
biaya_adm:= 10000 + 6000;
angsuran:= cicilan + biaya_adm;
Catatan:
1. Optimasi di atas dapat dilakukan jika tidak terjadi perubahan nilai ekspresi atau variabel yang bersangkutan.
2. Pertimbangkan untuk memindahkan penulisan ekspresi atau nilai variabel di awal blok program, untuk alasan kemudahan perawatan program.
Label: Optimasi Global, Optimasi Lokal, Teknik Optimasi