Selasa, 22 Februari 2011

Teknik Kompilasi


TEKNIK KOMPILASI

           Teknik Kompilasi adalah suatu cara atau suatu metode  dari beberapa hal yang diproses menjadi kecil atau menterjemahkan suatu bahasa pemrograman yang diubah ke bahasa lain atau bahasa mesin.
Bahasa pemrograman menjembatani antara pemikiran manusia yang sering tidak terstruktur dengan kepastian yang diperlukan oleh komputer untuk melakukan eksekusi. Bahasa pemrograman seperti ini biasanyamerupakan  bahasa tingkat tinggi. Komputer digital, di sisi lain, menerima dan memahami hanya bahasa tingkat rendah mereka sendiri, terdiri dari derajat nol dan satu, yang sulit dipahami oleh manusia.
            Bahasa pemrograman  berdasarkan tingkat ketergantungannya dengan mesin meliputi :
1.    Bahasa Mesin
Merupakan bentuk terendah dari bahasa komputer. Setiap instruksi dalam program direpresentasikan dengan kode numerik, yang secara fisik berupa deretan angka 0 dan 1.
2.    Bahasa Assembly
Merupakan bentuk simbolik dari bahasa mesin. Setiap kode oprasi memiliki kode simbolik, misalnya ADD untuk penjumlahan (addition) dan MUL untuk perkalian (multiplication). Pada bahasa assembly tersedia alat bantu untuk diagnostik atau debug yang tidak terdapat pada bahasa mesin.
3.    Bahasa Tingkat Tinggi (user oriented)
Disebut tingkat tinggi karena lebih dekat dengan manusia. Memberikan fasilitas yang lebih banyak, kontrol program yang lebih terstruktur, kalang (nested), block,dan prosedur.
4.    Bahasa yang problem oriented
Memungkinkan penyelesaian untuk suatu masalah atau aplikasi yang spesifik. Bahasa yang problem oriented kadang dimasukkan pula sebagai bahasa tingkat tinggi.

Bahasa pemrograman setiap site membutuhkan berapa bit:
Alamat pada source program umumnya merupakan alamat simbolik. Sebuah compiler biasanya melakukan pengikatan alamat simbolik (symbolic address) ke alamat relokasi dipindah (relocatable address). Misalnya compiler mengikatkan alamat simbolik ke alamat relokasi “14 byte from the beginning of this module”. Editor Linkage mengikatkan alamat relokasi ini ke alamat absolute (absolute addresses) “74014”.

1. Byte,merupakan Sebuah grup yang terdiri dari 8 bit. Satu byte dapat menyimpan sampai 256 macam informasi (ingat, 2 pangkat 8 sama dengan 256), misalnya angka 0 hingga 255 atau 256 huruf dan simbol yang berbeda-beda. Byte terkadang disebut juga dengan oktet, terutama untuk sistem koneksi seperti protokol internet.
   2. Word, merupakan sebuah grup yang terdiri dari beberapa byte. Pada pemrograman Win32, word biasanya diwujudkan sebagai 2 byte atau 16 bit. Grup dari 4 byte atau 32 bit disebut double-word.

Bahasa mesin setiap site membutuhkan berapa bit

Pada dasarnya komputer merupakan  makhluk digital yang hanya mengerti digit 1 dan digit 0 (binary). Komputer hanya mau menerima data dalam bentuk binary dan juga hanya bisa mengerti perintah dalam bentuk binary. Perintah dalam bentuk binary ini disebut dengan bahasa mesin.

Secara umum program bisa dilihat sebagai urutan langkah/perintah/instruksi untuk menyelesaikan sesuatu. Programmer bisa langsung membuat program dengan menuliskan perintah dalam bentuk 1 dan 0 (bahasa mesin), atau menggunakan bahasa tingkat tinggi yang lebih manusiawi seperti C, Visual Basic atau Java.Hanya dua simbol yang dimengerti komputer, yaitu 1 dan 0.

Contoh sederhana ini: programmer ingin menyimpan nilai register EAX ke dalam stack. Dalam bahasa mesin programmer harus menuliskan 01010000. Sedangkan dalam bahasa assembly programmer cukup menulis PUSH EAX. Manakah yang lebih manusiawi? Tentu menggunakan assembly lebih manusiawi. Sangat sulit bagi manusia apabila harus selalu menggunakan 1 dan 0 setiap memberi perintah.

Register merupakan variabel internal yang sudah built-in di dalam prosesor yang bisa dipakai oleh programmer untuk bermacam-macam keperluan. Karena register posisinya di prosesor, bukan di memory, maka menggunakan register sebagai variabel jauh lebih cepat dibanding menggunakan variabel yang dismipan di suatu alamat di memori.

Jenis-jenis register yang ada pada prosesor Intel:
Kategori Nama Penjelasan General Purpose EAX, EBX, ECX, EDX Lebar data 32 bit, boleh diapakai untuk keperluan apa saja. E adalah Extended (karena awalnya register general purpose hanya 16 bit). AX,BX,CX,DX 16 bit bawah dari register 32 bit di atas. AX adalah bagian 16 bit bawah dari EAX. AH,AL,BH,BL,CH,CL,DH,DL Bagian 8 bit dari register 16 bit di atas . AH adalah 8 bit atas dari AX. AL adalah 8 bit bawah dari AX. Segment Register         CS, SS, DS, ES, FS, GS       Digunakan untuk menunjuk 16 bit awal alamat memori. CS = Code, SS = Stack, DS = Data, ES,FS,GS = Extra segment register Offset Register Digunakan untuk menunjuk 16 bit akhir alamat memori. Alamat memori ditunjukkan dengan gabungan segment dan offset. EBP Dipakai sebagai offset frame dalam stack. Biasanya menunjuk pada bottom of stack frame di suatu fungsi. ESP menunjukkan puncak stack, EBP menunjuk dasar stack.
ESI Biasanya dipakai untuk offset string sumber dalam operasi yang melibatkan blok memori.
EDI Biasanya dipakai untuk offset string tujuan dalam operasi yang melibatkan blok memori.
ESP Stack pointer, menunjukkan puncak dari stack.
Special EFLAGS Tidak bisa dipakai programmer, hanya dipakai prosesor untuk hasil operasi logical dan state.
EIP Tidak bisa dipakai programmer, hanya dipakai prosesor untuk menunjukkan alamat memori yang berisi instruksi berikutnya yang akan dieksekusi.



DAFTAR PUSTAKA

TEKNIK KOMPILASI,Firrar Utdirartatmo.J&J Learning Yogjakarta


Rabu, 16 Februari 2011

SEJARAH VISUAL BASIC (VB)


Visual Basic

Microsoft Visual Basic (sering disingkat sebagai VB saja) merupakan sebuah bahasa pemrograman yang menawarkan Integrated Development Environment (IDE) visual untuk membuat program perangkat lunak berbasis sistem operasi Microsoft Windows dengan menggunakan model pemrograman (COM), Visual Basic merupakan turunan bahasa pemrograman BASIC dan menawarkan pengembangan perangkat lunak komputer berbasis grafik dengan cepat, Beberapa bahasa skrip seperti Visual Basic for Applications (VBA) dan Visual Basic Scripting Edition (VBScript), mirip seperti halnya Visual Basic, tetapi cara kerjanya yang berbeda. Para programmer dapat membangun aplikasi dengan menggunakan komponen-komponen yang disediakan oleh Microsoft Visual Basic Program-program yang ditulis dengan Visual Basic juga dapat menggunakan Windows API, tapi membutuhkan deklarasi fungsi luar tambahan. Dalam pemrograman untuk bisnis, Visual Basic memiliki pangsa pasar yang sangat luas.Dalam sebuah survey yang dilakukan pada tahun 2005, 62% pengembang perangkat lunak dilaporkan menggunakan berbagai bentuk Visual Basic, yang diikuti oleh C++, JavaScript, C#, dan Java.

Bill Gates , pendiri Microsoft, memulai bisnis softwarenya dengan mengembangkan interpreter bahasa Basic untuk Altair 8800, untuk kemudian ia ubah agar dapat berjalan di atas IBM PC dengan sistem operasi DOS, Perkembangan berikutnya ialah diluncurkannya BASICA (basic-advanced) untuk DOS, Setelah BASICA, Microsoft meluncurkan Microsoft QuickBasic dan Microsoft Basic (dikenal juga sebagai Basic Compiler), Visual basic adalah pengembangan dari bahasa komputer BASIC (Beginner’s All-purpose Symbolic Instruction Code), Bahasa BASIC diciptakan oleh Professor John Kemeny dan Thomas Eugene Kurtz dari Perguruan Tinggi Dartmouth pada pertengahan tahun 1960-an (Deitel&Deitel, 1999).Bahasa program tersebut tersusun mirip dengan bahasa Inggris yang biasa digunakan oleh para programer untuk menulis program-program komputer sederhana yang berfungsi sebagai pembelajaran bagi konsep dasar pemrograman komputer, Sejak saat itu, banyak versi BASIC yang dikembangkan untuk digunakan pada berbagai platform komputer.Beberapa versinya seperti Microsoft QBASIC, QUICKBASIC, GWBASIC ,IBM BASICA, Apple BASIC dan lain-lain, Apple BASIC dikembangkan oleh Steve Wozniak, mantan karyawan Hewlett Packard dan teman dekat Steve Jobs (pendiri Apple Inc.). Steve Jobs pernah bekerja dengan Wozniak sebelumnya (mereka membuat game arcade “Breakout” untuk Atari),Mereka mengumpulkan uang dan bersama-sama merakit PC, dan pada tanggal 1 April 1976 mereka secara resmi mendirikan perusahaan komputer Apple, Popularitas dan pemakaian BASIC yang luas dengan berbagai jenis komputer turut berperan dalam mengembangkan dan memperbaiki bahasa itu sendiri, dan akhirnya berujung pada lahirnya Visual Basic yang berbasis GUI (Graphic User Interface) bersamaan dengan Microsoft Windows, Pemrograman Visual Basic begitu mudah bagi pemula dan programer musiman karena ia menghemat waktu pemrograman dengan tersedianya komponen-komponen siap pakai Hingga akhirnya Visual Basic juga telah berkembang menjadi beberapa versi, sampai yang terbaru, yaitu Visual Basic 2008, Bagaimanapun juga Visual Basic 6.0 tetap menjadi versi yang paling populer karena mudah dalam membuat programnya dan ia tidak menghabiskan banyak Memori (komputer) Sejarah BASIC di tangan Microsoft sebagai bahasa yang diinterpretasi (BASICA) dan juga bahasa yang dikompilasi (BASCOM) membuat Visual Basic diimplementasikan sebagai gabungan keduanya. Programmer yang menggunakan Visual Basic bisa memilih kode bahasa pemrograman yang dikompilasi atau kode yang harus bahasa pemrograman yang diinterpretasikan sebagai hasil Porting dari kode VB.Sayangnya, meskipun sudah terkompilasi jadi bahasa mesin, DLL bernama MSVBVMxx.DLL tetap dibutuhkan, Namun karakteristik bahasa terkompilasi tetap muncul (ia lebih cepat dari kalau kita pakai mode terinterpretasi).

Perjalanan dari Visual Basic
VB 1.0 dikenalkan pada tahun 1991, pendekatan yg dilakukan untuk menghubungkan bahasa pemrograman dengan GUI berasal dari prototype yg dikembang oleh “Alan Cooper” yg di sebut TRIPOD,. Kemudian Microsoft mengontrak copper dan asosiasinya utk mengembangkan tripod agar dapat digunakan di windows 3.0 dibawah nama kode Ruby.
Perjalanan dari Visual Basic (VB1 to VB 10)
A.      Proyek “Thunder” dirintis
B.     Visual Basic 1.0 (May 1991) di rilis untuk windows pada Comdex/Windows Wordltrade yg dipertunjukan di Atlanta , Georgia
C.     Visual Basic 1.0 untuk DOS dirilis pada bulan September 1992. Bahasa ini tidak kompatibel denganVisual Basic For Windows. VB 1.0 for DOS ini pada kenyataaanya merupakan versi kelanjutan dari compiler BASIC, QuickBasic dan BASIC Professional Development System
D.      Visual Basic 2.0 dirilis pada November 1992, Cakupan pemrogramannya cukup mudah untuk digunakan dan kecepatannya juga telah di modifikasi. Khususnya pada Form yg menjadikan object dapat dibuat secara seketika, serta konsep dasar dari Class modul yg berikutnya di implementasikan pada VB 4
E.     Visual Basic 3.0 , dirilis pada musim panas 1993 dan dibagi menjadi versistandard dan professional. VB 3 memasukan Versi 1.1 dari Microsoft Jet Database Engine yg dapat membaca serta menulis database Jet (atau Access) 1.x
F.      Visual Basic 4.0 (Agustus 1995) merupakan versi pertama yg dapat membuat windows program 32 bit sebaik versi 16 bit nya. VB 4 juga memperkenalkan kemampuan untuk menulis non-GUI class pada Visual Basic
G.     Visual Basic 5.0 (February 1997), Microsoft merilis secara eksklusif Visual basic untuk versi windows 32 bit . Programmer yg menulis programnya pada versi 16 bit dapat dengan mudah melakukan import porgramnya dari VB4 ke VB5. dan juga sebaliknya, program VB5 dapat diimport menjadi VB4. VB 5 memperkenalakan kemampuan untuk membuat User Control.
H.    Visual Basic 6.0 (pertengahan 1998) memperbaiki beberapa cakupan, temasuk kemapuannya untuk membuat Aplikasi Web-based . Visual Basic 6 di jadwalkan akan memasuki Microsoft “fasa non Supported” dimulai pada maret 2008
I.       Visual Basic .NET (VB 7), dirilis pada tahun 2002, Beberapa yang mencoba pada versi pertama .NET ini mengemukakan bahwa bahasa ini sangat powerful tapi bahasa yg digunakan sangat berbeda dengan bahasa sebelumnya, dengan kekurangan diberbagai area, termasuk runtime-nya yang 10 kali lebih besar dari paket runtime VB6 serta peningkatan penggunan memory.
J.      Visual Basic .NET 2003 (VB 7.1) , dirilis dengan menggunakan NET framework versi
K.     Visual Basic 2005 (VB 8.0) , merupakan iterasi selanjutnya dari Visual Basic .NET. dan Microsoft memutuskan untuk menghilangkan kata kata .NET pada judulnya. Pada Rilis ini , Microsoft memasukan beberapa fitur baru, diantaranya : 
·         Edit and Continue , mungkin inilah kekurangan fitur terbesar dari VB .NET . pada VB 2005 ini kita diperbolehkan melakukan perubahan kode pada saat program sedang dijalankan 
·         Perbaikan pada Konversi dari VB ke VB NET12Visual Basic .NET 2003 (VB 7.1) , dirilis dengan menggunakan NET framework versi 1.1.

L.      12. IsNot Patent, merupakan salah satu fitur dari Visual Basic 2005 merupakan konversi If Not X Is Y menjadi If X IsNot Y
M.    13. Visual Basic 2005 Express , merupkan bagian dari Product Visual Studio. Microsoft membuat Visual Studio 2005 Express edition untuk pemula dan yg gemar dengan VB, salah satu produknya adalah Visual Basic 2005 Express yg merupakan produk gratis dari Microsoft
N.     14. Visual Basic “Orcas” (VB 9.0) , dijadwalkan akan dirilis pada tahun 2007 dan dibangung diatas .NET 3.5. Pada rilis ini , Microsoft menambahkan beberapa fitur , diantaranya :
·         True Tenary operator , yaitu fungsi If(boolean,value, value) yg digunakan untuk menggantikan fungsi IIF
·         LINQ Support
·         Ekspresi Lambda
·         XML Literals
·         Nullable types
·         Type Inference

O.     15. Visual Basic ‘VBx’ (VB 10.0) , Visual Basic 10, yang juga dikenal dengan nama VBx, akan menawarkan dukungan untuk Dynamic Language Runtime. VB 10 direncanakan akan menjadi bagian dari SilverLight 1.1


MENU DALAM PROGRAM VB

=>MENU BAR
1.File              :Kelompok  perintah yang berfungsi untuk mengatur suatu file, seperti New, Save, Open, Remove, Print  dll.

2.Edit              :Kelompok perintah pengeditan, baik obyek, komponen maupun kode pada code  editor. Contohnya Cut, Paste, Delete dll.

3.View              :Perintah - perintah untuk mengaktifkan  bagian –  bagian IDE VB6.

4.Project           :Berfungsi untuk  manajemen  proyek serta  pendukungnya.

5.Format            :Kelompok perintah  untuk melakukan proses format.

6.Debug             :Untuk pengaturan  dalam pencarian kesalahan program.

7.Run               :Berfungsi untuk  menangani proses kompilasi program.Contohnya Run, Build, Step Over, Debug dll.

8.Query             :Kumpulan perintah untuk  mengakses data yang diperlukan pada aplikasi Database.

9.Diagram         :Perintah untuk pengaturan Diagram.

10.Tools           :Sebagai penyedia perlengkapan tambahan yang diperlukan dalam penyusunan program.

11.Add-Ins       :Untuk pengaturan program tambahan bagi VB6.

12.Windows     :Untuk pengaturan  windows yang sedang terbuka.

13.Help           :Menyediakan Informasi  untuk menolong pemakai.


=>TOOLBAR

1.ADD STANDARD EXE PROJECT :Membuat Sebuah  project baru jenis standar.

2.ADD FORM                     :Menambahkan sebuah  form ke dalam  project yang sedang  terbuka.

3.MENU EDITOR              :Menampilkan menu  editor yang berfungsi sebagai pembuat menu.

4.OPEN PROJECT             :Membuka sebuah project yang pernah dibuat.

5.SAVE PROJECT             :Menyimpan project yang sedang terbuka  tanpa menutupnya.

6.CUT                                 :Memotong obyek terpilih. 

7.PASTE                           :Membuat salinan obyek yang disimpan di  container windows dan dipasang di lokasi   baru.

8.FIND                               :Menemukan obyek tertentu.

9.UNDO                          :Menggalkan pelaksanaan perintah – perintah terurut dari belakang yang   pernah dilakukan.

10.REDO                          :Mengulangi pelaksanaan perintah – perintah terurut dari belakang yang pernah dilakukan.

11.START                        :Menjalankan program yang sedang terbuka dan aktif.

12.BREAK                       :Menghentikan sementara program yang sedang berjalan.

END                                 :Menghentikan program dan berpindah ke mode perancangan.

13.PROJECT EXPLORER            :Mengaktifkan window project explorer yang menampung project berikut bagian –  bagiannya.

14.PROPERTIES WINDOWS      :Mengaktifkan properties windows,  yaitu pengatur property obyek.

15.FORM LAYOUT WINDOW  :Mengaktifkan form layout window, yaitu pengatur tata letak form di layar computer.

16.OBJECT BROWSER     :Mengaktifkan object browser yang mampu engorganisir obyek yang dipakai dalam project.

17TOOLBOX                       :Mengaktifkan Toolbox yang menyediakan berbagai control.

18.PICTURE BOX                :Menampilkan gambar statis maupun gambar aktif dari sumber diluar dirinya.

19.LABEL                           :Kontrol yang bisa digunakan utk menampilkan teks yg tidak bisa diubah oleh pengguna program / user.

20.TEXT BOX                       :Membuat area teks dimana teksnya bisa diubah oleh pemakai.

21.FRAME                             :Mengelompokkan beberapa control.

22. COMMAND BUTTON    :Membuat sebuah tombol pelaksana  perintah.

23.CHECK BOX                    :Membuat kotak check yg mudah  pemakaiannya.

24.OPTION BUTTON           :Pemilihan dua keadaandari banyak pilihan, namun hanya satu pilihan saja  
 yg bisa diaktifkan pada satu saat.

25.COMBO BOX               :Menghasilkan kontrol merupakan kombonasi dari list box dan text box, sehingga user bisa memasukkan pilihan melalui  daftar atau menuliskannya.

26.LIST BOX                       :Digunakan untuk menampilkan daftar pilihan yang bisa digulung.

27.HSCROLL BAR             :Untuk penggulungan dengan langkah lebar  dgn indikasi posisi pemilihan dlm posisi  horizontal.
28.VSCROLL BAR             :Untuk penggulungan dengan langkah lebar dgn indikasi posisi pemilihan dlm posisi  vertical.
29.TIMER                             :Untuk penghitung waktu event dlm interval yg ditentukan.

30.DRIVE LIST BOX          :Untuk menampilkan disk drive yg di  miliki computer.

31.DIR LIST BOX            :Menampilkan direktori dan path.

32.FILE LIST BOX           :Menampilkan sebuah daftar file.

33.SHAPE                   :Untuk memasang kontrol yg mampu menghasilkan sarana   agar pemakian  bisa menggambar berbagai bentuk.

34.LINE                        :Untuk menggmbar garis dengan berbagai  variasinya.

35.IMAGE                   :Untuk menampilkan gambar bitmap, icon  ataupun metafile pada form.

36.DATA                    :Menyediakan sarana akses data dalam  suatu database.

37.OLE                     :Untuk menghasilkan proses link dan embed obyek antar aplikasi.