SlideShare a Scribd company logo
1 of 16
Teknik Optimasi
Dependensi Optimasi
 Tahapan optimasi kode yang bertujuan untuk menghasilkan kode program yang berukuran
lebih kecil dan lebih cepat eksekusinya.
 Berdasarkan ketergantungannya pada mesin, optimasi dibagi menjadi :
 Machine Dependent Optimizer
Kode dioptimasi sehingga lebih efisien pada mesin tertentu.
 Machine Independent Optimizer
Strategi optimasi yang bisa diaplikasikan tanpa tergantung pada mesin tujuan tempat
kode yang dihasilkan akan dieksekusi nantinya. Optimasi yang dilakukan meliputi
optimasi lokal dan optimasi global.
Optimasi Lokal
 Optimasi Lokal adalah optimasi yang dilakukan hanya pada suatu blok dari source code.
 Caranya sebagai berikut :
1. Folding
2. Redudant-Subexpression Elimination
3. Optimasi dalam sebuah iterasi
4. Strength Reduction
Folding
 Mengganti konstanta atau ekspresi yang bisa dievaluasi pada saat compile time dengan nilai
komputasinya.
 Misalnya :
A := 2 + 3 + B
Bisa diganti menjadi
A := 5 + B
dimana 5, menggantikan ekspresi 2 + 3
Redundant-Subexpression Elimination
 Menggunakan hasil komputasi terdahulu daripada melakukan komputasi ulang
 Misalnya terdapat urutan instruksi :
A := B + C
X := Y + B + C
Kemunculan B + C yang bersifat redundan, bisa memanfaatkan hasil komputasi
sebelumnya selama tidak ada perubahan nilai variabel.
Optimasi dalam sebuah iterasi
 Terdiri dari 2 macam
1. Loop Unrolling
2. Frequency Reduction
Optimasi dalam sebuah iterasi
 Loop Unrolling
 Menggantikan suatu loop dengan menulis statement dalam loop beberapa kali
 Hal ini karena sebuah iterasi pada implementasi level rendah akan memerlukan operasi :
→ Inisialisasi/pemberian nilai awal pada variabel loop. Dilakukan sekali pada saat permulaan
eksekusi loop.
→ Pengetesan, apakah variabel loop telah mencapai kondisi terminasi.
→ Adjustment, yaitu penambahan atau pengurangan nilai pada variabel loop dengan jumlah
tertentu.
→ Operasi yang terjadi pada tubuh perulangan (loop body)
Optimasi dalam sebuah iterasi
 Loop Unrolling
 Contoh instruksi :
FOR I := 1 to 2 DO
A [I] := 0 ;
Terdapat instruksi untuk inisialisasi I menjadi 1. Serta
operasi penambahan nilai/increment 1 dan pengecekan
nilai variabel I pada setiap perulangan. Sehingga untuk
perulangan saja memerlukan 5 instruksi, ditambah
dengan instruksi assignment pada tubuh perulangan
menjadi 7 instruksi.
Dioptimasi menjadi
A [1] := 0 ;
A [2] := 0 ;
Sehingga haya memerlukan 2 instruksi assignment saja
Optimasi dalam sebuah iterasi
 Frequency Reduction
 Pemindahan statement ke tempat yang
lebih jarang dieksekusi.
 Contoh :
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 ;
Strength Reduction
 Mengganti suatu operasi dengan jenis operasi lain yang lebih cepat dieksekusi.
 Misalnya, pada beberapa computer operasi perkalian memerlukan waktu lebih banyak dari
pada operasi penjumlahan, oleh karena itu bias dilakukan pengehematan waktu dengan
mengganti operasi perkalian tertentu dengan penjumlahan.
 Contoh lainnya :
A := A + 1
dapat diganti dengan INC (A) ;
Optimasi Global
 Optimasi global biasanya dilakukan dengan analisis flow, yaitu suatu graph berarah yang
menunjukkan jalur yang mungkin selama eksekusi program.
 Ada 2 kegunaan optimasi global, yaitu
1. Bagi programmer
2. Bagi kompilator itu sendiri
Bagi Programmer menginformasikan
 Unreachable / dead code :
 kode yang tidak akan pernah dieksekusi.
 Misalnya :
X := 5
IF X = 0 THEN
A := A + 1
Instruksi A := A + 1 tidak akan pernah dieksekusi
Bagi Programmer menginformasikan
 Unused parameter pada prosedur
 Parameter yang tidak pernah digunakan di dalam prosedur
 Misalnya :
Procedure Jumlah (a,b,c : integer)
var x : integer
begin
x := a + b
end ;
Parameter c tidak pernah digunakan di dalam prosedur, sehingga seharusnya tidak perlu
diikutsertakan.
Bagi Programmer menginformasikan
 Unused variabel
 Variabel yang tidak pernah dipakai di dalam program
 Misalnya :
Program pendek;
var a, b : integer;
begin
a := 5;
end ;
Variabel b tidak pernah dipergunakan di dalam program, sehingga bias dihilangkan.
Bagi Programmer menginformasikan
 Variabel yang dipakai tanpa nilai awal
 Misalnya :
Program awal;
var a, b : integer;
begin
a := 5;
a := a + b;
end ;
Variabel b digunakan tanpa memiliki nilai awal/belum di-assign
Bagi Kompilator
 Meningkatkan efisiensi eksekusi program
 Menghilangkan useless code/ kode yang tidak terpakai.

More Related Content

Similar to Teknik Optimasi dengan Pendekatan Numeris

Pertemuan 3-instruksi-mesin-dan-program-bagian-23
Pertemuan 3-instruksi-mesin-dan-program-bagian-23Pertemuan 3-instruksi-mesin-dan-program-bagian-23
Pertemuan 3-instruksi-mesin-dan-program-bagian-23
France Rhezhek
 
Dasar Dasar Algoritma
Dasar Dasar AlgoritmaDasar Dasar Algoritma
Dasar Dasar Algoritma
formatik
 
Struktur kontrol perulangan
Struktur kontrol perulanganStruktur kontrol perulangan
Struktur kontrol perulangan
shintiatrie
 
Pascal - Pendahuluan1.txt - Notepad.pdf
Pascal - Pendahuluan1.txt - Notepad.pdfPascal - Pendahuluan1.txt - Notepad.pdf
Pascal - Pendahuluan1.txt - Notepad.pdf
Jurnal IT
 

Similar to Teknik Optimasi dengan Pendekatan Numeris (20)

Pertemuan 3-instruksi-mesin-dan-program-bagian-23
Pertemuan 3-instruksi-mesin-dan-program-bagian-23Pertemuan 3-instruksi-mesin-dan-program-bagian-23
Pertemuan 3-instruksi-mesin-dan-program-bagian-23
 
Asistensi 1 mod 3
Asistensi 1 mod 3Asistensi 1 mod 3
Asistensi 1 mod 3
 
Laporan Praktikum Algoritma Pemrograman Modul II
Laporan Praktikum Algoritma Pemrograman Modul IILaporan Praktikum Algoritma Pemrograman Modul II
Laporan Praktikum Algoritma Pemrograman Modul II
 
Laporan praktikum modul ii & iii
Laporan praktikum modul ii & iiiLaporan praktikum modul ii & iii
Laporan praktikum modul ii & iii
 
Struktur Kontrol
Struktur KontrolStruktur Kontrol
Struktur Kontrol
 
Ifc modul 1 (fungsi)
Ifc   modul 1 (fungsi)Ifc   modul 1 (fungsi)
Ifc modul 1 (fungsi)
 
Chapter 2 - Konsep Dasar Algoritma.pptx
Chapter 2 - Konsep Dasar Algoritma.pptxChapter 2 - Konsep Dasar Algoritma.pptx
Chapter 2 - Konsep Dasar Algoritma.pptx
 
Bab II
Bab IIBab II
Bab II
 
3. teknik looping dalam_pemrograman
3. teknik looping dalam_pemrograman3. teknik looping dalam_pemrograman
3. teknik looping dalam_pemrograman
 
Laporan praktikum modul vi
Laporan praktikum modul viLaporan praktikum modul vi
Laporan praktikum modul vi
 
3 adp operator
3   adp operator3   adp operator
3 adp operator
 
Dasar Dasar Algoritma
Dasar Dasar AlgoritmaDasar Dasar Algoritma
Dasar Dasar Algoritma
 
penanganan kesalahan, optimasi kode, tabel informasi (Teknik Kompilasi)
penanganan kesalahan, optimasi kode, tabel informasi (Teknik Kompilasi)penanganan kesalahan, optimasi kode, tabel informasi (Teknik Kompilasi)
penanganan kesalahan, optimasi kode, tabel informasi (Teknik Kompilasi)
 
Materi_1_Pengantar_Algoritma.pptx
Materi_1_Pengantar_Algoritma.pptxMateri_1_Pengantar_Algoritma.pptx
Materi_1_Pengantar_Algoritma.pptx
 
Struktur kontrol perulangan
Struktur kontrol perulanganStruktur kontrol perulangan
Struktur kontrol perulangan
 
Disturbance Observer
Disturbance ObserverDisturbance Observer
Disturbance Observer
 
Minggu ketiga
Minggu ketigaMinggu ketiga
Minggu ketiga
 
Praktikum fix 2
Praktikum fix 2Praktikum fix 2
Praktikum fix 2
 
Mikrokontroler pertemuan 5
Mikrokontroler pertemuan 5Mikrokontroler pertemuan 5
Mikrokontroler pertemuan 5
 
Pascal - Pendahuluan1.txt - Notepad.pdf
Pascal - Pendahuluan1.txt - Notepad.pdfPascal - Pendahuluan1.txt - Notepad.pdf
Pascal - Pendahuluan1.txt - Notepad.pdf
 

Recently uploaded

Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdfAksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
JarzaniIsmail
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
ssuser35630b
 
SEJARAH PERKEMBANGAN KEPERAWATAN JIWA dan Trend Issue.ppt
SEJARAH PERKEMBANGAN KEPERAWATAN JIWA dan Trend Issue.pptSEJARAH PERKEMBANGAN KEPERAWATAN JIWA dan Trend Issue.ppt
SEJARAH PERKEMBANGAN KEPERAWATAN JIWA dan Trend Issue.ppt
AlfandoWibowo2
 

Recently uploaded (20)

Program Kerja Public Relations - Perencanaan
Program Kerja Public Relations - PerencanaanProgram Kerja Public Relations - Perencanaan
Program Kerja Public Relations - Perencanaan
 
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMKAksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
 
MODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKA
MODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKAMODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKA
MODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKA
 
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdfAksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
 
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
 
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptxOPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
 
Aksi Nyata PMM Topik Refleksi Diri (1).pdf
Aksi Nyata PMM Topik Refleksi Diri (1).pdfAksi Nyata PMM Topik Refleksi Diri (1).pdf
Aksi Nyata PMM Topik Refleksi Diri (1).pdf
 
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfSalinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
 
E-modul Materi Ekosistem untuk kelas X SMA
E-modul Materi Ekosistem untuk kelas X SMAE-modul Materi Ekosistem untuk kelas X SMA
E-modul Materi Ekosistem untuk kelas X SMA
 
Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...
Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...
Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
 
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
 
Stoikiometri kelas 10 kurikulum Merdeka.ppt
Stoikiometri kelas 10 kurikulum Merdeka.pptStoikiometri kelas 10 kurikulum Merdeka.ppt
Stoikiometri kelas 10 kurikulum Merdeka.ppt
 
SEJARAH PERKEMBANGAN KEPERAWATAN JIWA dan Trend Issue.ppt
SEJARAH PERKEMBANGAN KEPERAWATAN JIWA dan Trend Issue.pptSEJARAH PERKEMBANGAN KEPERAWATAN JIWA dan Trend Issue.ppt
SEJARAH PERKEMBANGAN KEPERAWATAN JIWA dan Trend Issue.ppt
 
SOAL PUBLIC SPEAKING UNTUK PEMULA PG & ESSAY
SOAL PUBLIC SPEAKING UNTUK PEMULA PG & ESSAYSOAL PUBLIC SPEAKING UNTUK PEMULA PG & ESSAY
SOAL PUBLIC SPEAKING UNTUK PEMULA PG & ESSAY
 
Materi Sosialisasi US 2024 Sekolah Dasar pptx
Materi Sosialisasi US 2024 Sekolah Dasar pptxMateri Sosialisasi US 2024 Sekolah Dasar pptx
Materi Sosialisasi US 2024 Sekolah Dasar pptx
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7
 
PPT Mean Median Modus data tunggal .pptx
PPT Mean Median Modus data tunggal .pptxPPT Mean Median Modus data tunggal .pptx
PPT Mean Median Modus data tunggal .pptx
 
PELAKSANAAN (dgn PT SBI) + Link2 Materi Pelatihan _"Teknik Perhitungan TKDN, ...
PELAKSANAAN (dgn PT SBI) + Link2 Materi Pelatihan _"Teknik Perhitungan TKDN, ...PELAKSANAAN (dgn PT SBI) + Link2 Materi Pelatihan _"Teknik Perhitungan TKDN, ...
PELAKSANAAN (dgn PT SBI) + Link2 Materi Pelatihan _"Teknik Perhitungan TKDN, ...
 
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
 

Teknik Optimasi dengan Pendekatan Numeris

  • 2. Dependensi Optimasi  Tahapan optimasi kode yang bertujuan untuk menghasilkan kode program yang berukuran lebih kecil dan lebih cepat eksekusinya.  Berdasarkan ketergantungannya pada mesin, optimasi dibagi menjadi :  Machine Dependent Optimizer Kode dioptimasi sehingga lebih efisien pada mesin tertentu.  Machine Independent Optimizer Strategi optimasi yang bisa diaplikasikan tanpa tergantung pada mesin tujuan tempat kode yang dihasilkan akan dieksekusi nantinya. Optimasi yang dilakukan meliputi optimasi lokal dan optimasi global.
  • 3. Optimasi Lokal  Optimasi Lokal adalah optimasi yang dilakukan hanya pada suatu blok dari source code.  Caranya sebagai berikut : 1. Folding 2. Redudant-Subexpression Elimination 3. Optimasi dalam sebuah iterasi 4. Strength Reduction
  • 4. Folding  Mengganti konstanta atau ekspresi yang bisa dievaluasi pada saat compile time dengan nilai komputasinya.  Misalnya : A := 2 + 3 + B Bisa diganti menjadi A := 5 + B dimana 5, menggantikan ekspresi 2 + 3
  • 5. Redundant-Subexpression Elimination  Menggunakan hasil komputasi terdahulu daripada melakukan komputasi ulang  Misalnya terdapat urutan instruksi : A := B + C X := Y + B + C Kemunculan B + C yang bersifat redundan, bisa memanfaatkan hasil komputasi sebelumnya selama tidak ada perubahan nilai variabel.
  • 6. Optimasi dalam sebuah iterasi  Terdiri dari 2 macam 1. Loop Unrolling 2. Frequency Reduction
  • 7. Optimasi dalam sebuah iterasi  Loop Unrolling  Menggantikan suatu loop dengan menulis statement dalam loop beberapa kali  Hal ini karena sebuah iterasi pada implementasi level rendah akan memerlukan operasi : → Inisialisasi/pemberian nilai awal pada variabel loop. Dilakukan sekali pada saat permulaan eksekusi loop. → Pengetesan, apakah variabel loop telah mencapai kondisi terminasi. → Adjustment, yaitu penambahan atau pengurangan nilai pada variabel loop dengan jumlah tertentu. → Operasi yang terjadi pada tubuh perulangan (loop body)
  • 8. Optimasi dalam sebuah iterasi  Loop Unrolling  Contoh instruksi : FOR I := 1 to 2 DO A [I] := 0 ; Terdapat instruksi untuk inisialisasi I menjadi 1. Serta operasi penambahan nilai/increment 1 dan pengecekan nilai variabel I pada setiap perulangan. Sehingga untuk perulangan saja memerlukan 5 instruksi, ditambah dengan instruksi assignment pada tubuh perulangan menjadi 7 instruksi. Dioptimasi menjadi A [1] := 0 ; A [2] := 0 ; Sehingga haya memerlukan 2 instruksi assignment saja
  • 9. Optimasi dalam sebuah iterasi  Frequency Reduction  Pemindahan statement ke tempat yang lebih jarang dieksekusi.  Contoh : 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 ;
  • 10. Strength Reduction  Mengganti suatu operasi dengan jenis operasi lain yang lebih cepat dieksekusi.  Misalnya, pada beberapa computer operasi perkalian memerlukan waktu lebih banyak dari pada operasi penjumlahan, oleh karena itu bias dilakukan pengehematan waktu dengan mengganti operasi perkalian tertentu dengan penjumlahan.  Contoh lainnya : A := A + 1 dapat diganti dengan INC (A) ;
  • 11. Optimasi Global  Optimasi global biasanya dilakukan dengan analisis flow, yaitu suatu graph berarah yang menunjukkan jalur yang mungkin selama eksekusi program.  Ada 2 kegunaan optimasi global, yaitu 1. Bagi programmer 2. Bagi kompilator itu sendiri
  • 12. Bagi Programmer menginformasikan  Unreachable / dead code :  kode yang tidak akan pernah dieksekusi.  Misalnya : X := 5 IF X = 0 THEN A := A + 1 Instruksi A := A + 1 tidak akan pernah dieksekusi
  • 13. Bagi Programmer menginformasikan  Unused parameter pada prosedur  Parameter yang tidak pernah digunakan di dalam prosedur  Misalnya : Procedure Jumlah (a,b,c : integer) var x : integer begin x := a + b end ; Parameter c tidak pernah digunakan di dalam prosedur, sehingga seharusnya tidak perlu diikutsertakan.
  • 14. Bagi Programmer menginformasikan  Unused variabel  Variabel yang tidak pernah dipakai di dalam program  Misalnya : Program pendek; var a, b : integer; begin a := 5; end ; Variabel b tidak pernah dipergunakan di dalam program, sehingga bias dihilangkan.
  • 15. Bagi Programmer menginformasikan  Variabel yang dipakai tanpa nilai awal  Misalnya : Program awal; var a, b : integer; begin a := 5; a := a + b; end ; Variabel b digunakan tanpa memiliki nilai awal/belum di-assign
  • 16. Bagi Kompilator  Meningkatkan efisiensi eksekusi program  Menghilangkan useless code/ kode yang tidak terpakai.