Welcome

Selamat Datang di Belajar bersama di BLOG Dg.Paniki

Tuesday, March 27, 2012



PENGANTAR
 TEKNIK OPTIMASI

BAB I
PENDAHULUAN
1.1  Latar Belakang
 Kalimat optimasi sifatnya termasuk global, karena banyak digunakan sebagai kata kunci paling populer, oleh karena itu saya akan menjelaskan apa itu optimasi yang sepertinya masih banyak yang bingung. Optimasi secara umum adalah untuk memaksimalkan atau mengoptimalkan sesuatu hal yang bertujuan untuk mengelola sesuatu yang dikerjakan, sehingga optimasi bisa dikatakan kata benda yang berasal dari kata kerja, dan optimasi bisa dianggap baik sebagai ilmu pengetahuan dan seni menurut tujuan yang ingin dimaksimalkan.
Ilmu pengetahuan adalah teknik optimasi, seni adalah menentukan di mana dan kapan optimasi harus diterapkan. Menurut definisi, optimasi adalah "proses produksi lebih efisien (lebih kecil dan / atau lebih cepat) program melalui seleksi dan desain struktur data, algoritma, dan urutan instruksi dan lain-lainnya. Banyak Fakor yang berkaitan dengan optimasi, seperti optimasi computer, optimasi Web dan lain-lainnya, sehingga optimasi memnag diperlukan untuk hal apapun dan optimasi itu artinya membuat sesuatu sebagus mungkin.atatu paling maksimal. Persoalan optimasi adalah persoalan yang sangat penting untuk diterapkan untuk segala sistem maupun organisasi. Dengan optimasi pada sebuah sistem kita akan bisa berhemat dalam segala hal antara lain energi, keuangan, sumber daya alam, kerja dan lain-lain, tanpa mengurangi fungsi sistem tersebut. Peranan kalimat optimasi juga banyak diterapkan pada situs-situs yang berkecipung dalam bidang SEO maupun teknologi lainnya.



1.2.Rumusan Masalah
Adapun rumusan permasalahan ini adalah untuk mengetahui ;
1.1.1.1. Jelaskan pengertian tentang teknik optimasi ?
1.1.1.2. Jelaskan table informasi pada teknik optimasi ?
1.3.Tujuan Penulisan
Tujuan dari penulisan makalah ini adalah :
1.3.1.1. Untuk mengetahui tentang teknik optimasi
1.3.1.2. Untuk mengetahui tentang table informasi pada teknik optimasi
1.4.Manfaat  Penulisan
Dapat dimanfaatkan sebagai bahan acuhan dalam penulisan makalah selanjutnya.

 BAB II
KAJIAN TEORI DAN PEMBAHASAN

1.1  Pengertian Teknik Optimasi
Pentingnya sebuah kejelasan dalam sebuah karya ilmiah agar tidak terjadi salah tafsir/persepsi atau pun bermakna ambigu yang berimplikasi terhadap perubahan makna dan maksud penulis. Ada beberapa hal yang akan penulis bahas berkenaan dengan isitilah-istilah pengertian kalimat optimasi.
Optimasi
Optimal = paling bagus/tinggi;tertinggi;terbagus;paling menguntungkan.
Optimal a (ter) baik: tertinggi; paling menguntungkan: dengan kondisi fisik yang-- kami yakin akan menang dalam pertandingan sore nanti; kita telah bekerja secara --;
Mengoptimalkan v menjadikan paling baik; menjadikan paling tinggi;
Pengoptimalan proses cara, perbuatan mengoptimalkan (menjadikan paling baik, paling tinggi, dsb)
Optimasi berasal dari bahasa inggris optimization (n), kata benda yang berasal dari kata kerja (v) optimize. Kata kerja optimize berasal dari kata sifat (adj) optimal. Bentukan kata optimal dengan imbuhan ize akan membuat al pada optimal dipenggal sehingga hasilnya adalah optimize.
1.1.1        Dependensi Optimasi
 Dependensi optimasi Tahapan optimasi kode bertujuan untuk menghasilkan kode program yang berukuran lebih kecil dan lebih cepat eksekusinya. Berdasarkan ketergantungannya pada mesin, optimasi dibagi menjadi :
1.1.1.1       Machine Dependent Optimizer. Kode dioptimasi sehingga lebih efisien pad mesin tertentu. Optimasi ini memerlukan informasi mengenai feature yang ada pada mesin tujuan dan mengambil keuntungan darinya untuk menghasilkan kode yang lebih pendek atau dieksekusi lebih cepat.
1.1.1.2       Machine Independent Optimizer. Strategi optimasi yang bisa diaplikasikan tanpa tergantung pada mesin tujuan tempat kode yang dihasilkan akan dieksekusi nantinya. Mesin ini meliputi optimasi lokal dan optimasi global.
1.1.2        Optimasi Lokal
Optimasi Lokal adalah optimasi yang dilakukan hanya pada suatu blok dari source code, cara-caranya sebagai berikut:
1.1.2.1  Folding. Mengganti konstansta atau ekspresi yang bisa dievaluasi pada saat compile time dengan nilai komputasinya. Misalkan Instruksi ;
A:=2+3+B
bisa diganti menjadi
A:=5+B
1.1.2.2  Redundant-Subexpression Elimination. Sebuah ekspresi yang sudah pernah dikomputasi, digunakan lagi hasilnya, ketimbang melakukan komputasi ulang. Misalkan terdapat urutan instruksi :
A:=B+C
X:=Y+B+C
kemunculan kedua dari B+C yang redundan bisa diatasi dengan memanfaatkan hasil komputasinya yang sudah ada pada instruksi sebelumnya. Perhatikan, hal ini bisa dilakukan dengan catatan belum ada perubahan pada variabel yang berkaitan.
1.1.2.3  Optimisasi dalam sebuah iterasi.
1.1.2.3.1        Loop Unrolling: Menggantikan suatu loop dengan menulis statement dalam loop beberapa kali. Hal ini didasari pemikiran, sebuah iterasi pada implementasi level rendah akan memerlukan operasi sebagai berikut.
1.1.2.3.2        Inisialisasi/pemberian nilai awal pada variabel loop. Dilakukan sekali pada saat permulaan eksekusi loop.
1.1.2.3.3     Pengujian, apakah variabel loop telah mencapai kondisi terminasi.
1.1.2.3.4     Adjustment yaitu penambahan atau pengurangan nilai pada variabel loop dengan jumlah tertentu.
1.1.2.3.5     Operasi yang terjadi pada tubuh perulangan (loop body).
Dalam setiap perulangan akan terjadi pengujian dan adjusment yang menambah waktu eksekusi. Contoh pada 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 variabel I pada setiap perulangan. Sehingga untuk perulangan saja memerlukan lima instruksi, ditambah dengan instruksi assignment pada tubuh perulangan menjadi tujuh instruksi. Dapat dioptimasikan menjadi :
A[1]:=0;
A[2]:=0;
yang hanya memerlukan dua instruksi assignment saja. Untuk menentukan optimasi ini perlu dilihat perbandingan kasusnya dengan tanpa melakukan optimasi.
1.1.2.3.6        Frequency Reduction
Frequency reduction: Pemindahan statement ke tempat yang lebih jarang dieksekusi. Contoh:
FOR I:=1 TO 10 DO
BEGIN
X:=5;
A:=A+I;
END;
kita ,melihat bawa tidak terjadi perubahan /manipulasi pada variabel X didalam iterasi, karena itu kita bisa mengeluarkan instruksi tersebut keluar iterasi, menjadi:
X:=5;
FOR I:=1 TO 10 DO
BEGIN
A:=A+I
END;
1.1.2.4  Strength Reduction. Penggantian suatu operasi dengan jenis operasi lain yang lebih cepat dieksekusi. Misalkan pada beberapa komputer operasi perkalian memerlukan waktu lebih banyak untuk dieksekusi dari pada operasi penjumlahan, maka penghematan waktu bisa dilakukan dengan mengganti operasi perkalian tertentu dengan penjumlahan. Contoh lain, instruksi :
A:=A+1;
dapat digantikan dengan: INC(A);
1.1.3        Optimasi Global
Optimisasi global biasanya dilakukan dengan analisis flow, yaitu suatu graf berarah yang menunjukkan jalur yang mungkin selama dieksekusi program. Kegunaannya adalah sebagai berikut:
1.1.3.1  Bagi pemrogram menginformasikan :
1.1.3.1.1     Unreachable/dead code: kode yang tidak akan pernah dieksekusi. Misalnya terdapat urutan instruksi:
X:=5;
IF X:=0 THEN
A:=A+1
Instruksi A:=A+1 tidak akan pernah dieksekusi
1.1.3.1.2        Unused parameter pada prosedur: parameter yang tidak akan pernah digunakan didalam prosedur. Contohnya :
Procedure Jumlah (a,b,c:integer);
var x: integer
begin
x:=a+b
end;
kita lihat parameter c tidak pernah digunakan didalam prosedur, sehingga seharusnya tidak perlu diikutrestakan.
1.1.3.1.2        Unused Variable: Variabel yang tidak pernah dipakai dalam program. Contohnya :
Program Pendek;
var a,b:integer;
begin
a:=5;
end;
variabel b tidak pernah digunakan dalam program sehingga bisa dihilangkan.
1.1.3.1.3        Variabel yang dipakai tanpa nilai awal. Contohnya:
Program awal;
var a,b: integer;
begin
a:=5;
a:=a+b;
end;
kita lihat variabel b digunakan tanpa memiliki nilai awal/belum di-assign.
1.1.3.2  Bagi kompilator:
1.1.3.2.1        Meningkatkan efisiensi eksekusi program.
1.1.3.2.2        Menghilangkan useless code/kode yang tidak terpakai.
1.2    Tabel Optimasi
Fungsi Tabel Informasi atau Tabel Simbol
·         Membantu pemeriksaan kebenaran semantik dari program sumber.
·         Membantu dan mempermudah pembuatan intermediate code dan proses pembangkitan kode.
Untuk mencapai fungsi tersebut dilakukan dengan menambah dan mengambil atribut variabel yang dipergunakan pada program dari tabel. Atribut, misalnya nama, tipe, ukuran variabel.
Tabel Simbol berisi daftar dan informasi identifier pokok yang terdapat dalam program sumber, disebut Tabel Pokok / Utama.
Tabel Pokok belum mengcover semua informasi, untuk itu disediakan tabel lagi sebagai pelengkap Tabel Pokok.
Untuk mengacu pada tabel simbol yang bersesuaian dengan suatu indentifier tertentu, maka pada Tabel Pokok harus disediakan field yang bisa menjembatani identifier dari Tabel Pokok ke tabel-tabel lain yang bersesuaian. Untuk itu, pemilihan elemen tabel pada Tabel Pokok maupun tabel lainnya, merupakan sesuatu yang sangat penting.
1.2.1  Elemen Tabel Informasi
Elemen pada Tabel Simbol bermacam-macam, tergantung pada jenis bahasanya. Misalnya :
1.2.1        No urut identifier : Menentukan nomor urut identifier dalam tabel simbol.
1.2.2        Nama identifier : Berisi nama-nama identifier (nama variabel, nama tipe, nama konstanta, nama procedure, nama fungsi, dll) yang terdapat pada program sumber. Nama-nama ini akan dijadikan referensi pada waktu analisa semantik, pembuatan intermediate code, serta pembangkitan kode.
1.2.3        Tipe identifier : Berisi keterangan/informasi tipe dari record dan string, maupun procedure dan function.
1.2.4        Object time address : address yang mengacu ke alamat tertentu.
1.2.5        Dimensi dari identifier yang bersangkutan.
1.2.6        Nomor baris variabel dideklarasikan.
1.2.7        Nomor baris variabel direferensikan.
1.2.8         Field link.
1.2.2 Implementasi Tabel Informasi
Beberapa jenis :
1.2.2.1 Tabel Identifier : Berfungsi menampung semua identifier yang terdapat dalam program.
1.2.2.2 Tabel Array : Berfungsi menampung informasi tambahan untuk sebuah array.
1.2.2.3 Tabel Blok : Mencatat variabel-variabel yang ada pada blok yang sama.
1.2.2.4 Tabel Real : menyimpan elemen tabel bernilai real.
1.2.2.5 Tabel String : Menyimpan informasi string.
1.2.2.6 Tabel Display : Mencatat blok yang aktif.
1.2.3 Tabel Identifier
Memiliki field :
ü No urut identifier dalam tabel
ü Nama identifier
ü Jenis/obyektif dari identifier : Prosedur, fungsi, tipe, variabel, konstanta
ü Tipe dari identifier yang bersangkutan : integer, char, boolean, array, record, file, no-type
ü Level : Kedalaman identifier tertentu, hal ini menyangkut letak identifier dalam program. Konsepnya sama dengan pembentukan tree, misal main program = level 0. Field ini digunakan pada run time untuk mengetahui current activation record dan variabel yang bisa diakses.

Untuk identifier yang butuh penyimpanan dicatat pula :
Alamat relatif/address dari identifier untuk implementasi

• Informasi referensi (acuan) tertentu ke alamat tabel lain yang digunakan untuk mencatat informasi-informasi yang diperlukan yang menerangkannya.
Link : Menghubungkan identifier ke identifier lainnya, atau yang dideklarasikan pada level yang sama.
• Normal : Diperlukan pada pemanggilan parameter, untuk membedakan parameter by value dan reference (berupa suatu variabel boolean)
Contoh :
Terdapat listing program sebagai berikut :
Program A;
var B : integer;
Procedure X(Z:char);
var C : integer
Begin
…….
Tabel Identifier akan mencatat semua identifier :
0 A
1 B
2 X
3 Z
4 C
Contoh implementasi table identifier :
TabId: array [0..tabmax] of
record
name : string;
link : integer;
obj : objek;
tipe : types;
ref : integer;
normal : boolean;
level : 0..maxlevel;
address : integer;
end;
Dimana :
objek = (konstant, variabel, prosedur, fungsi)
types = (notipe, int, reals, booleans, chars, arrays, record)
1.2.4  Tabel Array
Memiliki field :
 No urut suatu array dalam tabel
 Tipe dari indeks array yang bersangkutan
 Tipe elemen array
 Referensi dari elemen array
 Indeks batas bawah array
 Indeks batas atas array
 Jumlah elemen array
 Ukuran total array ( total size = (atas-bawah+1) x elemen size)
Elemen size (ukuran tiap elemen)

Tabel Array diacu dengan field referensi pada Tabel Identifier.
Contoh implementasi table array :
TabArray : array [1...tabmax] of
record
indextype, elementype : types;
elemenref, low, high, elemensize, tabsize : integer
end;
1.2.5  Tabel Blok
Memiliki field :
 No urut blok
 Batas awal blok
 Batas akhir blok
 Ukuran parameter / parameter size
 Ukuran variabel / variabel size
 Last variable
 Last parameter

Contoh implementasi table blok :
TabBlok: array [1..tabmax] of
record
lastvar, lastpar, parsize, varsize: integer;
end;
Dari contoh listing program berikut :
Program a;
var B: integer;
Procedure X(Z:char);
var C : integer
Begin
…….
Akan diperoleh, untuk blok Program A :
last variable = 2
variable size = 2 (dianggap integer butuh dua byte)
last parameter = 0 (tanpa parameter)
parameter size = 0
Untuk blok Procedure X :
last variable = 4
variable size = 2
last parameter = 3
parameter size = 1 (dianggap char butuh satu byte)
1.2.6  Tabel Real
Elemen tabel real :
 No urut elemen
 Nilai real suatu variabel real yang mengacu ke indeks tabel ini

Contoh implementasi tabel real :
TabReal : array [1..tabmax] of real
(pemikiran : setiap tipe yang dimiliki oleh suatu bahasa akan memiliki tabelnya sendiri)
1.2.7  Tabel String
Elemennya :
 No urut elemen
 Karakter-karakter yang merupakan konstanta
Contoh implementasi tabel string :
TabString: array[1..tabmax] of string
1.2.8  Tabel Display
Elemennya :
 No urut tabel
 Blok yang aktif
Pengisian tabel display dilakukan dengan konsep stack.
Urutan pengaksesan : Tabel Display – Tabel Blok – Tabel Simbol.
Contoh implementasi Tabel Display :
TabDisplay: array [1..tabmax]of integer

1.3  Interaksi Antar Tabel
Pertama kali tabel display akan menunjuk blok mana yang sedang aktif. Dari blok yang aktif ini, akan diketahui identifier-identifier yang termasuk dalam blok tersebut. Untuk pertama kalinya, yang akan diacu adalah identifier yang paling akhir, kemudian identifier sebelumnya, dan seterusnya. Informasi suatu identifier ini mungkin belum lengkap. Untuk itu dari tabel identifier ini mungkin akan dicari kelengkapan informasi dari suatu identifier ke tabel yang sesuai (tabel real, tabel string, atau tabel array).

BAB III
PENUTUP
1.1.     KESIMPULAN
Optimasi berasal dari bahasa inggris optimization (n), kata benda yang berasal dari kata kerja (v) optimize. Kata kerja optimize berasal dari kata sifat (adj) optimal. Bentukan kata optimal dengan imbuhan ize akan membuat al pada optimal dipenggal sehingga hasilnya adalah optimize.
Dependensi optimasi Tahapan optimasi kode bertujuan untuk menghasilkan kode program yang berukuran lebih kecil dan lebih cepat eksekusinya. Optimasi Lokal adalah optimasi yang dilakukan hanya pada suatu blok dari source code.
Optimisasi global biasanya dilakukan dengan analisis flow, yaitu suatu graf berarah yang menunjukkan jalur yang mungkin selama dieksekusi program.
Untuk mencapai fungsi tersebut dilakukan dengan menambah dan mengambil atribut variabel yang dipergunakan pada program dari tabel. Atribut, misalnya nama, tipe, ukuran variabel. Tabel Simbol berisi daftar dan informasi identifier pokok yang terdapat dalam program sumber, disebut Tabel Pokok / Utama. Tabel Pokok belum mengcover semua informasi, untuk itu disediakan tabel lagi sebagai pelengkap Tabel Pokok.





1.2.     SARAN
Pembicaraan tentang teknik optimasi tidak bisa dilepaskan dari kehidupan kita sebagai makhluk sosial yang butuh berkomunikasi dengan orang lain. Oleh karena itu, perlu prinsip-prinsip yang harus disepakati agar terjalinnya komunikasi yang efektif dan efisien. Lewat teori-teorinya yang berkaitan dengan teknik optimasi, berusaha memberikan prinsip-prinsip sistem teknik optimasi.
Dengan memahami dan mengaplikasikan teori-teori tersebut, diharapkan kita lebih mampu menjalankannya dengan baik di segala situasi dan kondisi agar tercapai tujuan yang kita inginkan.





1 komentar:

Maia on September 10, 2012 at 12:43 AM said...

Thanks ilmunya sob :)

Post a Comment

Silahkan tinggalkan kenang-kenangan di sini

 

Dg.Paniki. Copyright 2012 All Rights Reserved Revolution Two Church theme by Brian Gardner Converted into Blogger Template by Bloganol dot com