BAB II DASAR TEORI. 2.1 Kompilator
|
|
- Iwan Susanto
- 7 tahun lalu
- Tontonan:
Transkripsi
1 BAB II DASAR TEORI Bab ini berisi penjelasan tentang beberapa teori dasar yang digunakan selama pelaksanaan Tugas Akhir. Pembahasan dilakukan terhadap kompilator, lexical analyzer, parser, code generator dan pembahasan singkat perbandingan bahasa C dan Pascal. 2.1 Kompilator Kompilator adalah suatu program atau sekelompok program yang menerjemahkan kode dalam satu bahasa ke bahasa lainnya, pada umumnya adalah dari bahasa komputer tingkat tinggi diterjemahkan ke bahasa rakitan (assembly) [HOL92], kode dalam bahasa rakitan ini kemudian diproses oleh program lain yang disebut assembler, yang menerjemahkannya menjadi kode bahasa mesin. Meski demikian, adapula kompilator yang menerjemahkan kode dari bahasa tingkat tinggi langsung ke bahasa mesin (biner). Kompilator adalah program yang rumit dan kompleks, karena terdiri dari banyak upa bagian dan proses. Masing-masing bagian dan proses ini disebut phases (fase), yang saling berkomunikasi satu sama lain, lewat temprorary file (berkas sementara). Kompilator pada umumnya memiliki empat fase, sebagaimana ditampilkan pada gambar II-1, yaitu : fase 1 (preprocessing), fase 2 (penganalisis leksikal, penganalisis sintaks, table simbol, pembangkitan kode/code generation), fase 3 (optimasi kode) dan fase 4 (back end) [HOL92]. Meski demikian, terdapat banyak sekali variasi pada pembagian fase ini. Ada kompilator yang tidak mempunyai preprocessor, sebagian yang lain langsung menerjemahkan kode bahasa rakitan pada fase 2, lainnya lagi tidak memiliki fase 4, dll. 16
2 17 Gambar II-1 Alur kerja kompilator empat fase [HOL92] Fase 1 adalah preprocessing, berkaitan dengan membuang bagian-bagian yang tidak diperlukan dalam proses kompilasi, seperti komentar dalam kode, pengaturan eksekusi kompilator lewat line-control atau compiler directive, dll. Fase 2 adalah inti dari kompilator, karena didalamnya proses penerjemahan kode dilakukan. Proses utama dalam tugas akhir ini juga berkaitan erat dengan fase 2. Karena itu, penjelasan tentang fase 2 perlu dijabarkan secara lebih detil pada upa bab berikutnya. Fase 3 adalah optimasi, bertujuan meningkatkan kualitas
3 18 kode yang dihasilkan, kualitas dalam hal ini bisa berarti kecepatan eksekusi, manajemen memori, ukuran berkas keluaran, dll. Fase 4 (back end) adalah penerjemahan menjadi kode bahasa rakitan atau langsung menjadi bahasa mesin biner oleh program lain yang disebut assembler. 2.2 Penganalisis Leksikal / Lexical Analyzer Penganalisis leksikal berfungsi memisahkan kode menjadi bagian-bagian yang bermakna dalam bahasa yang diolah kompilator, bagian-bagian ini disebut token. penganalisis leksikal bekerja langsung mengambil data dari berkas / stream, lalu memecahnya menjadi token-token. Misal, penganalisis leksikal bahasa C, akan mengambil token dari suatu berkas kode sumber berupa 'while', 'do', 'int', '_var', '<', '<=', dll. Token adalah rangkaian karakter yang membentuk simbol yang bermakna dalam suatu bahasa. Penganalisis leksikal bekerja bersama dengan penganalisis sintaks sebagai subrutin yang dipanggil oleh penganalisis sintaks. [AHO77] 2.3 Penganalisis Sintaks / Grammar Penganalisis sintaks berfungsi memeriksa apakah kode sumber sesuai dengan tata bahasa yang digunakan. Misal: dalam bahasa C, token 'int' harus diikuti oleh suatu identifier pada kasus deklarasi identifier. int john; int doe; maka grammar yang dipakai oleh penganalisis sintaks adalah <deklarasi-variabel> ::= <tipe-variabel> <identifier> ';' (*) penganalisis sintaks berusaha mencocokkan <tipe-variabel> dengan token 'int' dan <identifier> dengan 'john' serta 'doe'. Notasi yang dipakai pada aturan (*) untuk menyatakan grammar seperti diatas disebut notasi BNF (Backus Naur Form), dan item yang dikurung dengan tanda < > disebut meta-variabel. Tiap kali penganalisis sintaks berusaha mencocokkan meta-variabel, penganalisis sintaks memanggil rutin penganalisis leksikal yang
4 19 akan mengembalikan token yang didapat dari input stream. Token ini kemudian dicocokkan apakah sesuai dengan aturan (*). Jika sesuai maka, penganalisis sintaks akan melakukan pemrosesan lebih lanjut sesuai dengan algoritma parsing yang dipakai. Jika tidak sesuai, penganalisis sintaks akan berusaha mencari aturan lain yang memungkinkan keadaan proses parsing saat ini cocok, dengan cara berkonsultasi menggunakan tabel parsing. Ada dua macam tipe algoritma parsing yaitu : top-down dan bottom-up. Pendekatan top-down bekerja dengan menurunkan meta-variabel pada tiap aturan dalam grammar hingga ke level token. Sedangkan pendekatan bottom-up bekerja sebaliknya, dengan mereduksi token menjadi aturan-aturan dalam grammar, hingga ke accepting state Bottom-up Parser Parser yang dihasilkan oleh yacc /bison termasuk jenis bottom-up parser, yaitu parser yang bekerja menggunakan push-down automaton untuk membangun pohon parsing dari bawah ke atas ( dari token direduksi menjadi rule ). Proses parsing dimulai dari simpul pohon paling bawah ( daun ), dan ketika telah cukup mengumpulkan sejumlah simpul lain dalam satu level (maksudnya mencocoki satu aturan parsing yang ada dalam grammar), simpul-simpul ini kemudian disatukan dengan membuat satu simpul pada satu level diatasnya ( simpul akar / root ). Proses ini dinamakan sebagai reduksi. Karena parser bottom-up adalah push-down automaton maka parser ini membutuhkan tabel state, yang menentukan arah proses berikutnya, dari suatu state. Dan juga membutuhkan suatu stack, untuk mencatat state saat ini berada. Dari sudut pandang stack, algoritma parsing bottom-up adalah sebagai berikut : a. Jika puncak stack saat ini, mencocoki item bagian sebelah kanan suatu aturan produksi pada grammar, maka puncak stack ini harus di-pop, dan diganti ( push ) dengan item di sebelah kirinya ( proses reduksi ). b. Jika tidak, lakukan push simbol yang saat ini dibaca oleh scanner ke stack, dan lakukan proses advance ( pembacaan token berikutnya pada stream oleh scanner ). Proses ini disebut shift. c. Jika proses sebelumnya adalah proses reduksi yang menghasilkan goal symbol (
5 20 simbol akhir yang diterima sebagai accepting state ), maka proses parsing telah selesai. Namun jika tidak, kembali ke langkah a. [HOL92] Top-down parser Prinsip kerja dari top-down parser berkebalikan dengan bottom-up parser. Pada parser tipe ini, aturan produksi pada grammar direduksi menjadi token, untuk kemudian dicocokkan dengan masukan. Dibandingkan dengan bottom-up parser, parser tipe ini kurang dalam segi performansi [HOL92]. Sebagaimana bottom-up parser, top-down parser menggunakan stack untuk operasinya, hanya saja parser tipe ini menggunakan metode rekursif dalam menurunkan grammar-nya. Top-down parser menggunakan prinsip recursive-descent parsing. 2.4 Pembangkitan Kode Proses pembangkitan kode dilakukan dengan menelusuri pohon sintaks hasil proses parsing. Pada bottom-up penganalisis sintaks, pembangkitan kode dilakukan dalam bentuk syntax directed translation, sebelum proses reduksi dilakukan. Hasil keluaran dari tahapan ini sangat bervariasi, bergantung dari kompilator. Beberapa kompilator multi fase menghasilkan intermediate language, sedangkan jenis lainnya langsung memproduksi kode biner. Misal, kompilator mengevaluasi ekspresi : * 3 + 4, asumsi grammar yang digunakan menganggap precedence dari operator kali '*' lebih tinggi dari operator tambah '+'. Maka pohon parsing-nya adalah sebagai berikut : <+, t0> <+, t0> <4, t1> <1, t0> <*, t1> <2, t1> <3, t2> Gambar II-2 Pohon Parsing
6 21 (ket : t0,t1 & t2 adalah variabel temporer yang disediakan kompilator, pada kompilator yang sebenarnya variabel temporer ini menyatakan register mesin atau runtime stack) Maka kompilator akan menghasilkan kode intermediate language sebagai berikut : t0 = 1 t1 = 2 t2 = 3 t1 *= t2 t0 += t1 t1 = 4 t0 += t1 Ada dua masalah utama yang harus diatasi saat pembangunan modul pembangkit kode: 1. mekanisme untuk mengalokasikan variabel temporer / sementara 2. menentukan nama dari variabel temporer yang menangani nilai suatu ekspresi yang telah dievaluasi sebagian, pada satu waktu tertentu. [HOL92] 2.5 Tabel Simbol Tabel simbol berfungsi menyimpan nama simbol (baik itu variabel, konstanta, prosedur atau fungsi) yang dipakai dalam program, serta menyimpan informasi penting menyangkut simbol tersebut, seperti tipe (untuk variabel), nomor baris tempat simbol dideklarasikan, dll. [AHO77] Tabel simbol dipakai oleh komponen lain pada fase 2, misal oleh penganalisis sintaks atau lexical analyzer. Setiap kali penganalisis sintaks atau lexical analyzer menjumpai simbol, pengecekan dilakukan di tabel simbol, untuk mengecek apakah simbol telah dideklarasikan sebelumnya, apa tipe/jenisnya, dll. Dengan demikian, tabel simbol berfungsi sebagai database yang menyimpan informasi semua simbol yang muncul dalam kode program. Karena itu, tabel simbol sangat penting. Karakteristik tabel simbol yang harus dipenuhi dalam implementasinya adalah A. cepat (semua data dimuat ke memori, bukan didalam berkas)
7 22 B. mudah digunakan, dikembangkan dan didaur ulang C. fleksibel D. entri data yang duplikat harus dapat ditangani E. mampu menghapus data-data yang tidak dipakai dengan cepat [HOL92] Ada beberapa alternatif implementasi tabel simbol, yaitu : 1. Stack : pencarian simbol bersifat linear dan tidak efisien, ukuran stack juga harus diketahui saat waktu kompilasi. 2. Pohon/Tree : pencarian bersifat linear dan penanganan collision (deklarasi simbol yang sama namun dalam scope yang berbeda) menjadi sulit. 3. Hash based : pencarian bersifat logaritmik dan hemat ruang memori. [HOL92] Berikut beberapa item yang biasanya disimpan di dalam tabel simbol : 1. Nama identifier 2. Object time address : menunjukkan lokasi relatif variabel pada saat runtime. 3. tipe identifier 4. dimensi (pada referensi ke senarai) atau jumlah parameter untuk prosedur 5. nomor baris tempat variabel dideklarasikan 6. nomor baris tempat variabel digunakan [NAT07] Misal : kode dibawah ini akan menghasilkan tabel simbol yang ditampilkan tabel II-1. Tabel simbol ini dihasilkan dengan menggunakan kakas dari sistem UNIX yaitu nm. int i; char c; void foo( ); int bar( ); Tabel II-1 Contoh Tabel Simbol Run time address tipe nama simbol nomor baris tempat dideklarasikan T bar C c T foo C i 1
8 C dan Pascal C dan Pascal seringkali dibandingkan, mungkin karena berbagai latar belakang yang sama antara keduanya (waktu pertama muncul yang hampir bersamaan, tujuan dan pengaruh yang sama, serta sudut pandang dan pendekatan filosofis yang hampir sama). C dan Pascal samasama menjadi penerus dari seri bahasa ALGOL. [WIK07] C didesain sebagai bahasa aras rendah, bahasa yang didesain sebagai antar muka dengan sistem. Sedangkan Pascal memiliki latar belakang akademik dan pendidikan. Namun perbedaan paling mencolok antara keduanya adalah dalam masalah alokasi memori untuk senarai dinamis. C memungkinkan pengguna untuk mengalokasikan ruang memori sebagai senarai secara bebas, sedangkan Pascal tidak demikian. Tabel II-2 menampilkan beberapa poin perbandingan C dan Pascal, yang diambil dari [WIK07] Tabel II-2 Perbandingan C dan Pascal C Pascal Case sensitive tidak case sensitive sebelum else boleh ada ; tidak boleh ada ; sebelum else komentar : /* blok */ atau // blok atau * blok * fungsi dibatasi oleh dan dibatasi oleh begin dan end definisi fungsi dibatasi sintaksis kontek definisi diawali procedure atau function definisi tipe diawali typedef diawali type deklarasi senarai menggunakan [ ] menggunakan kata kunci array dalam fungsi, deklarasi variabel adalah deklarasi variabel sebelum badan fungsi. sebelum statement deklarasi tanpa tipe dianggap integer setiap deklarasi harus punya tipe karakter dianggap sebagai integer karakter adalah karakter, bukan integer tidak mendukung tipe range mendukung range boolean dinyatakan sebagai 0 atau bukan 0 dinyatakan dalam true / false konversi yang luwes antara integer dan float konversi harus memakai fungsi indeks senarai dari 0 s/d N-1 indeks diset lewat subrange senarai adalah pointer yang konstan senarai berbeda dengan pointer string dianggap sebagai senarai karakter string adalah tipe khusus pointer dapat menunjuk ke fungsi atau obyek program lain pointer tidak dapat menunjuk ke obyek program seperti fungsi atau variabel global ada lima belas tingkatan precedence empat tingkat precedence assignment =, tes equality == assignment :=, equality =
9 Struktur program Struktur program dalam bahasa C terdiri dari satu blok prosedur utama yang disebut main( ), diikuti blok program yang diawali dan diakhiri. Bagian lain hanyalah bersifat pendukung. Pada Pascal, program terdiri dari kata kunci program diikuti nama program, lalu dilanjutkan dengan blok utama yang dimulai dari begin dan diakhiri end. Perbandingan struktur program antara C dan Pascal ditampilkan pada tabel II-3. Tabel II-3 Pebandingan Struktur Program disini dideklarasikan variable, konstanta, fungsi dan identifier lainnya. Dan juga directive seperti include, dan line-control serta preprocessor lainnya. main() // kode program program abc; disini dideklarasikan variable, konstanta, fungsi dan identifier lainnya. Directive untuk include seperti pada C, digantikan oleh use, namun ini bukan fitur dari Pascal standar. Begin kode program end. Program dalam bahasa C terdiri dari paling tidak satu fungsi utama yang dieksekusi, yaitu fungsi main(). Fungsi terdiri dari deklarasi nama fungsi dan badan fungsi. Badan fungsi berisi rangkaian statement yang dilingkupi oleh tanda dan. Pada Pascal, fungsi main identik dengan blok program utama, seperti yang diilustrasikan diatas. Kode program C dan Pascal terdiri dari serangkaian statement, yang selalu diakhiri tanda ; untuk memisahkan statement satu dengan lainnya. Satu atau lebih statement dapat digabung menjadi satu buah blok, yang dalam bahasa C dibatasi oleh tanda dan, sedangkan dalam Pascal, blok dibatasi oleh begin dan end Tipe String Tipe String pada bahasa C sering disebut sebagai character string atau string constants yang diekspresikan sebagai rangkaian karakter dilingkupi oleh tanda petik ganda. Dalam terminologi C, dikenal istilah escape sequence yaitu rangkaian karakter \ yang diterjemahkan sebagai nilai karakter khusus. Misal \n adalah escape sequence newline, diterjemahkan oleh fungsi input output sebagai karakter ganti baris. Contoh escape sequence newline pada string
10 25 adalah hello \n world, yang jika dicetak ke output standar adalah hello world Pada Pascal string diapit oleh tanda (petik tunggal). Perbandingan penggunaan string pada C dan Pascal dapat dilihat pada tabel II-4. Tabel II-4 String pada C dan Pascal char *s; C var s : string; Pascal s = helloworld ; s := helloworld ; Komentar Komentar dibutuhkan untuk menjelaskan kode sumber program sehingga lebih mudah dibaca dan dimengerti. Komentar dalam C diawali dengan /* dan diakhiri dengan */, semua karakter diantara keduanya diabaikan dari proses pengolahan oleh kompilator. Pada Pascal, komentar diapit oleh tanda dan Deklarasi misal Deklarasi suatu variabel pada C terdiri dari nama tipe diikuti serangkaian nama variabel, int i; float h; Deklarasi pada C dilakukan pada awal blok program. int memiliki lebar 16-bit sedangkan float 32-bit. Selain int dan float, C menyediakan beberapa tipe dasar lain, yaitu : char short long double character-1 byte short integer long integer double-precision floating point Pada Pascal, deklarasi variabel diawali menggunakan kata kunci var dan juga dilakukan di awal blok program. Tabel II-5 menampilkan perbandingan deklarasi variabel antara C dan
11 26 Pascal. Tabel II-5 Deklarasi Variabel int x, y; main() int z; f ( ) int a; Deklarasi pada C Deklarasi pada Pascal program decl; var x, y, z : integer; function f( ):integer; var a : integer; begin end; begin end Operator Assignment Proses assignment dalam C menggunakan tanda = sama dengan. Ekspresi disebelah kanan tanda = memberikan nilai hasil evaluasi ekspresi, sedangkan simbol disebelah kiri tanda = menampung nilai hasil evaluasi. lower = 0; upper = 300; Sedangkan pada Pascal, assignment dilakukan menggunakan tanda := lower := 0; upper := 300; Standar Input Output Bahasa C tidak memiliki sistem input dan output yang built-in, namun lebih disediakan dalam bentuk pustaka standar, berbeda dengan Pascal yang telah menyediakan fungsi IO secara built-in sebagai bagian dari kompilator. Fungsi untuk menulis ke standar output pada C adalah printf, yang menuliskan data ke standar output dengan format tertentu. Pada Pascal, fungsi cetak ke layar adalah write. Untuk fungsi membaca input, C memiliki banyak varian fungsi / pustaka standar. Misal getc, scanf, fscanf, sscanf, vscanf dan vsscanf. Pada Pascal standar, input umumnya cukup ditangani dengan fungsi read. Perbandingan fungsi input dan output antara C dan Pascal dapat dilihat pada tabel II-6.
12 27 Tabel II-6 Input dan Output C Pascal printf( data1=%d data2=%f,i, h ); write( data1=, i, data2=, h ); c = getch( ); readln( c ); Statement for for digunakan sebagai salah satu looping dari tiga jenis looping di C. for memiliki tiga upabagian ( di luar badan pengulangan ) yang semuanya bersifat optional; bagian pertama untuk inisialisasi, bagian kedua untuk evaluasi apakah looping diteruskan atau tidak, dan bagian ketiga untuk stepping. for harus diikuti oleh badan pengulangan berupa paling tidak satu statement atau satu blok. for pada Pascal memiliki format yang berbeda dengan C, karena menggunakan keyword bantu lain yaitu to atau downto dan do. Perbandingan pengulangan for antara C dan Pascal dapat dilihat pada Tabel II-7. Tabel II-7 Pengulangan for C for( f = 0 ; f < 300 ; f = f + 1 ) // kode diulang tiga ratus kali Pascal for f = 1 to 300 do begin kode diulang tiga ratus kali end; for f = 300 downto 1 do begin kode diulang tiga ratus kali end; Macro Bahasa C menyediakan fasilitas macro sebagai bagian dari preprocessor ( program yang dipanggil kompilator C untuk memproses semua bagian kode yang diawali tanda # ). Semua macro pada kode akan diganti dengan kode asli pada saat pemrosesan awal oleh preprocessor. Macro pada C menggunakan preprocessor define, diikuti nama macro lalu spasi atau tab dan terakhir diikuti kode pengganti. Bahasa Pascal tidak menyediakan fasilitas macro.
13 28 Perbandingan kode sebelum dan setelah preprocessing ( pemrosesan kode oleh preprocessor ) dapat dilihat pada tabel II-8. Tabel II-8 Efek preprocessing sebelum preprocessing #define LOWER 0 #define UPPER 300 #define STEP 10 main() for ( f = LOWER ; f < UPPER ; f = f + STEP ) ; setelah preprocessing main() for( f = 0 ; f < 300 ;f = f + 10 ) ; Senarai Senarai adalah serangkaian obyek yang memiliki tipe sama, yang terurut kontigu di memori. Senarai diakses dengan menggunakan indeks yang berupa integer (pada bahasa C elemen senarai dimulai dari nol, sedangkan pada Pascal elemen diakses tergantung bagaimana senarai dideklarasikan). Senarai dideklarasikan secara konstan ( jumlah elemennya tetap, tidak dapat diubah-ubah ). Pada bahasa C, senarai dideklarasikan dengan menggunakan tanda siku [ ] pada akhir nama identifier. Sedangkan pada Pascal, senarai dideklarasikan dengan kata kunci array. Perbandingan senarai antara C dan Pascal dapat dilihat Tabel II-9. Tabel II-9 Penggunaan Senarai pada C dan Pascal C int a[ 10 ]; // array integer dengan 10 elemen. a[ 0 ] = 1; // elemen pertama a[ 9 ] = 2; // elemen terakhir Pascal var a :array [ ] of integer; b :array [ ] of integer; a[ 1 ] : = 3; a[ 10 ] := 4; b[-1] := 5; b[ 8 ] := 6;
14 Subrutin Subrutin adalah bagian dari program yang merepresentasikan sejumlah operasi yang sering dilakukan selama program dieksekusi, sehingga daripada ditulis berulang-ulang, akan lebih efisien ditulis sebagai suatu subrutin. Biasanya, subrutin menerima parameter input saat dipanggil, dan mengembalikan nilai sebagai hasil operasi eksekusi badan subrutin. Pada C, subrutin dikenal sebagai function, sedangkan pada Pascal ada dua jenis subrutin, yaitu procedure dan function (procedure tidak mengembalikan nilai). Berikut adalah format subrutin pada C tipe-kembalian nama-fungsi( deklarasi parameter, jika ada ) deklarasi statement Perbandingan subrutin antara C dan Pascal dapat dilihat pada tabel II-10. Tabel II-10 Subrutin pada C dan Pascal int twice( int i ) return i * 2; C Pascal function twice( i : integer ) : integer; begin twice := i * 2; end; 2.7 Kakas Parser Generator dan Scanner Generator Sebagaimana dijelaskan diawal, dua dari komponen kompilator adalah parser dan scanner. Seringkali, proses pembuatan scanner dan parser menjadi rumit dan berisiko terhadap munculnya error. Pada parser, kesalahan seringkali berasal dari desain grammar dari perancang bahasa, misal kesalahan penanganan rekursif, kesalahan penanganan konflik antara reduce dan shift, kesalahan pemilihan operator precedence, dll. Sedangkan pada scanner, kesalahan biasanya muncul dari sistem IO dan buffering. Salah satu solusi untuk permasalahan ini diawali oleh para ilmuwan peneliti dari AT & T Bell Laboratory, yaitu dengan membuat program yang menghasilkan parser dan scanner, secara otomatis. Dasar pemikirian dari scanner generator diusulkan oleh Ken Thompson, yang terkenal sebagai prinsip Thompson Construction. Ide dasarnya adalah mengubah ekspresi reguler menjadi
15 30 NFA ( Nondeterministic Finite Automata ), selanjutnya NFA digunakan oleh scanner generator untuk menerjemahkan input string, apakah sesuai dengan pola ekspresi reguler atau tidak. Pada beberapa kasus, NFA dapat diubah menjadi DFA ( Deterministic Finite Automata ). Scanner generator mengimplementasikan scanner yang dihasilkan sebagai mesin otomata dalam struktur data berupa tabel. Semakin banyak pola input string yang harus dikenali oleh scanner, makin besar ukuran tabel. Optimasi yang dilakukan adalah melakukan minimasi ukuran tabel dengan beberapa metode yang sudah dikenal baik, misal dengan menghapus baris atau kolom yang redundan atau melakukan kompresi tabel. [HOL92] Sedangkan parser generator, ide utamanya adalah membuat parser secara otomatis dari spesifikasi grammar yang diberikan kepada program. Karena setiap parser LALR membutuhkan state tabel, parser generator harus menyediakan state table ke dalam parser yang dihasilkan. Dalam proses men-generate parser, parser generator juga membangun tabel simbol internal, yang diperlukan untuk menyimpan data-data tentang grammar dan simbol non-terminal. [HOL92] Setelah state table selesai dibuat sesuai dengan spesifikasi grammar, parser generator akan mengenali sejumlah masalah yang mungkin muncul, biasanya berkaitan dengan spesifikasi grammar yang ambigu. Pada tahap ini, grammar yang diberikan kepada parser generator harus menyediakan operator precedence atau mekanisme lain yang memungkinkan masalah ambiguitas dapat diatasi. Parser generator juga menyediakan fasilitas error recovery, yaitu kemampuan untuk sejauh mana kesalahan gramatikal pada kode sumber yang di-parsing dapat diatasi, dan memberikan pesan error yang cukup informatif kepada user tentang kesalahan gramatikal apa yang terjadi.
PENGEMBANGAN PROTOTIPE APLIKASI KONVERSI KODE DARI BAHASA C KE PASCAL
PENGEMBANGAN PROTOTIPE APLIKASI KONVERSI KODE DARI BAHASA C KE PASCAL LAPORAN TUGAS AKHIR Disusun Sebagai Syarat Kelulusan Tingkat Sarjana oleh : Ipam Fuaddina Adam / 13502079 PROGRAM STUDI TEKNIK INFORMATIKA
Lebih terperinciANALISIS DAN PERANCANGAN PERANGKAT LUNAK
BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK Bab ini membahas analisis perancangan perangkat lunak (diberi nama c2p) dari segi struktur data dan analisis aliran data. Hal-hal yang dibahas diantaranya
Lebih terperinciAlat bantu (tools) dalam pembuatan parser/ analisis sintaksis. Menggunakan simbol persegi panjang untuk non terminal
Diagram Syntax Alat bantu (tools) dalam pembuatan parser/ analisis sintaksis Menggunakan simbol persegi panjang untuk non terminal Lingkaran untuk simbol terminal Misalnya E T T+E T-E E T + - BNF:
Lebih terperinciSINTAKS. Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu:
SINTAKS Bahasa mesin adalah bentuk terendah komputer. Kita dapat berhubungan langsung dengan bagian-bagian yang ada di dalam komputer seperti bits, register. Bahasa mesin terdiri dari bit-bit 0 dan 1.
Lebih terperinciSINTAKS. Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu:
SINTAKS Bahasa mesin adalah bentuk terendah komputer. Kita dapat berhubungan langsung dengan bagian-bagian yang ada di dalam komputer seperti bits, register. Bahasa mesin terdiri dari bit-bit 0 dan 1.
Lebih terperinciBahasa C-M6 By Jamilah, Skom 1
BAB 1 KONSEP DASAR BAHASA C 1.1 SEJARAH DAN STANDAR C Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin Richard pada tahun 1967. Bahasa ini memberkan ide kepada ken thompson yang kemudian
Lebih terperinciHirarki Comsky. Unrestricted. Context Sensitive Context free Regular
Hirarki Comsky Unrestricted Context Sensitive Context free Regular Contoh Tata Bahasa Sederhana BEGIN END ;
Lebih terperinciAplikasi Rekursif dalam Analisis Sintaks Program
Aplikasi Rekursif dalam Analisis Sintaks Program Albertus Kelvin / 13514100 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132,
Lebih terperinciPengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom
Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom Pengantar Bahasa Pemrograman Pascal Page 1 / 11 Pengenalan Pascal Pascal merupakan salah satu bahasa pemrograman tingkat tinggi. Pemrograman
Lebih terperinciPertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN
Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN I. Elemen-Elemen Dalam Bahasa Pemrograman Berikut adalah elemen-elemen pada bahasa pemrograman: Berikut adalah element-element pada bahasa pemrograman: 1. Aturan
Lebih terperinciBAB I PENDAHULUAN. 1.1 Latar Belakang
BAB I PENDAHULUAN 1.1 Latar Belakang Proses konversi kode sumber suatu aplikasi/program ke bahasa lain sering kali dilakukan oleh pelaku industri perangkat lunak, karena satu dan lain hal (misal : integrasi
Lebih terperinciALGORITMA PEMROGRAMAN 1C SINTAKS
ALGORITMA PEMROGRAMAN 1C SINTAKS Indah Wahyuni PENDAHULUAN Bahasa mesin adalah bentuk terendah komputer. Kita dapat berhubungan langsung dengan bagianbagian yang ada didalam komputer seperti bits, register.
Lebih terperinciTEKNIK KOMPILASI Tony Darmanto,ST / Smt V S1 TI / STMIK WIDYA DHARMA/ Hal 1
1. PENDAHULUAN TEKNIK KOMPILASI Tony Darmanto,ST / Smt V S1 TI / STMIK WIDYA DHARMA/ Hal 1 Arti Kata Teknik Kompilasi Teknik adalah suatu Metode atau Cara Kompilasi adalah suatu Proses mengabungkan serta
Lebih terperinciTIPE DATA, VARIABLE, dan OPERATOR DELPHI
TIPE DATA, VARIABLE, dan OPERATOR DELPHI A. TIPE DATA Delphi merupakan bahasa pemrograman tingkat tinggi yang mendukung perancangan terstruktur dan berorientasi Object. Bahasa pemrograman ini berdasarkan
Lebih terperinciTEKNIK KOMPILASI Tony Darmanto,ST / Smt V S1 TI / STMIK WIDYA DHARMA/ Hal 16
Tony Darmanto,ST / Smt V S1 TI / STMIK WIDYA DHARMA/ Hal 16 4. ANALISIS LEKSIKAL Struktur Kompiler Analisis Leksikal Apa itu? Masukan bagi sebuah compiler/interpreter adalah program sumber yang strukturnya
Lebih terperinciBAB 4 PENGENALAN BAHASA C
Bab 4 Pengenalan Bahasa C 35 BAB 4 PENGENALAN BAHASA C TUJUAN PRAKTIKUM 1. Mengetahui sejarah perkembangan bahasa C. 2. Mengerti struktur program bahasa C. 3. Mengerti konsep tipe data, variabel, & operator
Lebih terperinciSUMBER BELAJAR PENUNJANG PLPG
SUMBER BELAJAR PENUNJANG PLPG 2017 [TIK] BAB VIII PEMROGRAMAN BERORIENTASI OBJEK [Alfa Faridh Suni] KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN DIREKTORAT JENDERAL GURU DAN TENAGA KEPENDIDIKAN 2017 BAB VIII
Lebih terperinciPERTEMUAN 2 ALGORITMA & PEMROGRAMAN
PERTEMUAN 2 ALGORITMA & PEMROGRAMAN POKOK BAHASAN 1. Pendahuluan 2. Tahapan Pembangunan Program 3. Pengenalan Algoritma 4. Cara Menyajikan Algoritma 5. Data Program 6. Elemen-Elemen Program PENDAHULUAN
Lebih terperinciMK. PEMROGRAMAN SISTEM Semester/SKS : 6/3 COMPILER. Jurusan Sistem Komputer S1 Universitas Gunadarma
MK. PEMROGRAMAN SISTEM Semester/SKS : 6/3 COMPILER Jurusan Sistem Komputer S1 Universitas Gunadarma Aspek Kompilasi Programmer dengan High Level Languange (HLL) vs. Komputer dengan Machine Language Untuk
Lebih terperinciChapter 1 KONSEP DASAR C
Chapter 1 KONSEP DASAR C Sejarah Dan Standar C Akar dari bahasa C adalah BCPL (dikembangkan oleh Martin Richard tahun 1967). Kemudian Tahun 1970, Ken Thompson mengembangkan bahasa tersebut yang di kenal
Lebih terperinciStruktur Dasar Bahasa C Tipe Data Dalam bahasa C terdapat lima tipe data dasar, yaitu :
1 Struktur Dasar Bahasa C Tipe Data Dalam bahasa C terdapat lima tipe data dasar, yaitu : Contoh Program : { int x; float y; char z; double w; clrscr(); /* untuk membersihkan layar */ x = 10; /* variable
Lebih terperinciSejarah C. Dirancang oleh Denis M. Ritchie tahun 1972 di Bell Labs.
Sejarah C Dirancang oleh Denis M. Ritchie tahun 1972 di Bell Labs. Pengembangan dari bahasa BCPL(Martin Richard, 1967) dan bahasa B (Ken Thompson, 1970) Dibantu Brian W. Kernighan, Ritchie menulis buku
Lebih terperinciBAHASA PEMROGRAMAN C
BAHASA PEMROGRAMAN C A. Pengenalan Bahasa C diciptakan oleh Dennis Ritchie tahun 1972 di Bell Laboratories. Kelebihan Bahasa C: - Bahasa C tersedia hampir di semua jenis computer. - Kode bahasa C sifatnya
Lebih terperinciPengenalan Bahasa C week 1
Desain dan Analisis Algoritma Pengenalan Bahasa C week 1 I Ketut Resika Arthana, S.T., M.Kom resika.arthana@gmail.com http://www.rey1024.com Perkenalan I Ketut Resika Arthana, M.Kom Resika Rey resika.arthana@gmail.com
Lebih terperinciTabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.
Tabel Informasi Tabel informasi atau tabel simbol berguna untuk mempermudah pada saat pembuatan dan implementasi dari analisa semantik (semantic analyzer). Pada proses translasi, tabel informasi dapat
Lebih terperinciSyntax, Semantic & Grammar. Konsep Bahasa Pemrograman Materi 3 Yudianto Sujana, M.Kom
Syntax, Semantic & Grammar Konsep Bahasa Pemrograman Materi 3 Yudianto Sujana, M.Kom Definisi Bahasa pemrograman merupakan notasi formal Mempunyai 2 komponen utama Syntax dan Semantic Syntax: Kumpulan
Lebih terperinciPerjalanan sebuah intruksi
Perjalanan sebuah intruksi Source Program X = Y + X Analisis Leksikal Token-token Id1:=Id2+Id1 Id1 := Id2 + Id1 Analisis Sintaksis Code Generator dan Analisis sematiks LDA A ADD Y STO X
Lebih terperinciAplikasi Translator Kode Dari Bahasa C ke Pascal
Aplikasi Translator Kode Dari Bahasa C ke Pascal Ipam Fuaddina Adam Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung Jl. Ganesha 10, Bandung, Indonesia adam.first84@gmail.com Abstraksi
Lebih terperinciTeknik Kompiler 5. oleh: antonius rachmat c, s.kom, m.cs
Teknik Kompiler 5 oleh: antonius rachmat c, s.kom, m.cs TATA BAHASA Tata bahasa / Grammar dalam OTOMATA adalah kumpulan dari himpunan variabel (non-terminal), simbol-simbol awal dan terminal yang dibatasi
Lebih terperinciLANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++
I.PENDAHULUAN 1. 1. ALGORITMA Algoritma adalah urutan aksi-aksi yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah dalam rentang waktu tertentu. Setiap aksi harus dapat dikerjakan
Lebih terperinciVARIABEL, TIPE DATA DAN EKSPRESI Bab 2
VARIABEL, TIPE DATA DAN EKSPRESI Bab 2 2.1 IDENTIFIER Indentifier adalah nama yang diberikan untuk nama objek, nama fungsi, nama variable, dll ( sifatnya case sensitive ). Identifier pada C++ terdiri dari
Lebih terperinciCara pertama adalah pada saat deklarasi variabel ditambahkan ke- yword const sebelum nama tipe data seperti
KONSTANTA Menghitung besaran-besaran fisis dalam bidang fisika memerlukan suatu konstantakonstanta. Bahasa C dan C++ menyediakan tipe data tambahan sehingga variabel yang kita gunakan merupakan konstanta
Lebih terperinciAchmad Solichin.
Pemrograman Bahasa C dengan Turbo C Sh-001@plasa.com Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit),
Lebih terperinciModul 1 Dasar Dasar Bahasa Pemrograman C
Modul 1 Dasar Dasar Bahasa Pemrograman C 1. C dan Pengolahan Sinyal Digital C adalah bahasa pemrograman tingkat tinggi. Sebab bahasa pemrogramannya menggunakan keyword dan syntax yang mudah dimengerti
Lebih terperincielemen Dasar Bahasa Pemrograman C
Elemen-elemen elemen Dasar Bahasa Pemrograman C Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN - 2008 Identifier : Elemen Dasar C Nama pengenal (identifier) adalah nama-nama yang ditentukan
Lebih terperinciTeknik Kompilasi II TEKNIK KOMPILASI. Ernastuti & Sulistyo P 1/52. Ernastuti & Sulistyo
TEKNIK KOMPILASI P 1/52 MATERI Teknik Kompilasi II 2/52 Pendahuluan Tujuan Pembelajaran : 1. Mahasiswa memahami cara kerja serta proses yang terjadi pada sebuah Compiler 2. Mahasiswa memahami konsep pembuatan
Lebih terperinciPengenalan Bahasa C++ Oleh : Agus Priyanto, M.Kom
Pengenalan Bahasa C++ Oleh : Agus Priyanto, M.Kom Tujuan Pembelajaran Mahasiswa dapat memahami konsep dasar pemrograman dengan bahasa C++ Mahasiswa dapat membuat aplikasi sederhana menggunakan bahasa C++,
Lebih terperinciTipe Data dan Operator
Tipe Data dan Operator Dasar Algoritma dan Pemrogrman Eka Maulana, ST, MT, MEng. Klasifikasi Tipe Data 1 Tipe Data Tipe data adalah jenis data yang dapat diolah oleh komputer untuk memenuhi kebutuhan dalam
Lebih terperinciPERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama).
PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C++ 6.0 STRUKTUR BAHASA C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama). Setiap program akan dieksekusi dimulai dari statement
Lebih terperinciMATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA
MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA Kata-Kata Cadangan Kata-kata cadangan (reserved words) adalah kata-kata yang sudah didefinisikan oleh Pascal yang mempunyai maksud tertentu. Kata-kata
Lebih terperinciMODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PERTEMUAN 1
MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PERTEMUAN 1 Disusun oleh : Tim Asisten JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SUNAN KALIJAGA YOGYAKARTA 2011 0 A. Pengantar
Lebih terperinciALGORITHM 7 C++ Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.com
ALGORITHM 7 C++ Dahlia Widhyaestoeti, S.Kom dahlia.widhyaestoeti@gmail.com dahlia74march.wordpress.com Struktur program dalam C++ C sebagai bahasa pendahulunya C++ C merupakan termasuk bahasa pemrograman
Lebih terperincidilakukan oleh bahasa mesin dapat dilakukan oleh C dengan penyusunan program yang lebih sederhana dan mudah. Bahasa C dalam pemakainnya memerlukan
I. PENDAHULUAN Perkembangan bahasa C erat kaitannya dengan perkembangan sistem operasi UNIX, dimana keduanya dikembangkan di AT&T Bell Lab (USA). Pertama kali bahasa C diimplementasikan pada komputer DEC
Lebih terperinciTurbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C
1. Pendahuluan Lingkungan Turbo C++ 4.5 Turbo C++ 4.5 adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C++ 4.5. 1 2 3 4 1 : Menu Utama
Lebih terperinciTeknik Kompiler 12. oleh: antonius rachmat c, s.kom
Teknik Kompiler 12 oleh: antonius rachmat c, s.kom Code Generator Source code Front End Intermedate Code Code Optimizer Intermedate Code Code Generator Target Program Symbol Table Code Generation Persyaratan
Lebih terperinciElemen Bahasa Pemrograman. Aditya Rizki Yudiantika, M.Eng.
Elemen Bahasa Pemrograman Aditya Rizki Yudiantika, M.Eng. Algoritma dan Struktur Data (SI063) Ganjil 2017/2018 Outline Pengenalan bahasa C++ Struktur penulisan kode dan elemen Tipe data Konstanta Operator
Lebih terperinciStruktur Program Bahasa C
Struktur Program Bahasa C Struktur Program Bahasa C /* Komentar */ main( ) { statemen-statemen; } fungsi_tambahan( ) { statemen-statemen } program utama fungsi tambahan yang dapat dipanggil oleh program
Lebih terperinciProses Kompilasi. Otomata dan Pengantar Kompulasi Pertemuan 3
Proses Kompilasi Otomata dan Pengantar Kompulasi Pertemuan 3 Bahasa Pemrograman Bahasa pemrograman adalah bahasa yang menjadi sarana manusia untuk berkomunikasi dengan komputer. Pikiran manusia yang tidak
Lebih terperinciBab 2. Dasar-Dasar Pemrograman C
Bab 2. Dasar-Dasar Pemrograman C Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 Overview Tipe Data Standar (Standart Data Type) Aturan Pendefinisian Identifier Variabel Mendeklarasikan
Lebih terperinciTeknik Pemrograman Terstruktur 1 PENGENALAN BAHASA C
1 PENGENALAN BAHASA C Paradigma Pemrograman Pemrograman Deklaratif/Fungsional Persoalan diselesaikan dengan mengekspresikan logika persoalan Pemrograman Prosedural/Terstruktur Persoalan diselesaikan dengan
Lebih terperinciTeknik Kompilasi Dosen: Utami Dewi W.,S.Kom
Teknik Kompilasi Dosen: Utami Dewi W.,S.Kom Sebuah kompilator akan sering menemui program yang mengandung kesalahan. Oleh karena itu, kompilator harus memiliki strategi yang dapat dilakukan untuk menangani
Lebih terperinciSMA SANTO PAULUS PONTIANAK
SMA SANTO PAULUS PONTIANAK Konsep Dasar Pemrograman Pascal Kelas X Semester 2 Pengayaan Teknologi Informasi dan Komunikasi Oleh : Vianney Alexius, mtb TIK-vianney.mtb 2012 Algoritma Serangkaian langkah
Lebih terperinciTEORI BAHASA DAN AUTOMATA
MODUL I TEORI BAHASA DAN AUTOMATA Tujuan : Mahasiswa memahami pengertian dan kedudukan Teori Bahasa dan Otomata (TBO) pada ilmu komputer Definisi dan Pengertian Teori Bahasa dan Otomata Teori bahasa dan
Lebih terperinciVARIABEL & TIPE DATA PEMROGRAMAN C++
VARIABEL & TIPE DATA PEMROGRAMAN C++ ruliriki@gmail.com VARIABEL Suatu nama yang menyatakan tempat dalam memori komputer Menyimpan nilai yang dapat diubah VARIABEL Pengenal (identifier) yang digunakan
Lebih terperinciBAB 1 KONSEP DASAR BAHASA C
BAB 1 KONSEP DASAR BAHASA C 1. Sejarah dan Standar C Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin Richard pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thompson yang kemudian
Lebih terperinciPEMROGRAMAN JAVA. Petunjuk Penulisan Program Token Aturan Penamaan Identifier Lingkungan /Scope dari variabel Tipe Data (i) Yoannita
PEMROGRAMAN JAVA Petunjuk Penulisan Program Token Aturan Penamaan Identifier Lingkungan /Scope dari variabel Tipe Data (i) Yoannita Education is not the filling of a pail, but the lighting of a fire. (William
Lebih terperinciObjek Data, Variabel, dan Konstanta. Konsep Bahasa Pemrograman Materi 4 Yudianto Sujana, M.Kom
Objek Data, Variabel, dan Konstanta Konsep Bahasa Pemrograman Materi 4 Yudianto Sujana, M.Kom Pengantar Penyimpanan data di komputer (memori, register, dan lainnya) Organisasi yang sederhana Barisan bit
Lebih terperinci21/11/2016. Pohon Sintaks. Syntax?? Proses Penurunan. Analisis Syntax (Parser) Metode Parsing ANALISIS SINTAKS TEKNIK KOMPILASI
Pohon Sintaks TEKNIK KOMPILASI ANALISIS SINTAKS SHINTA P. SARI Jurusan Informatika Fasilkom Universitas Indo Global Mandiri Berupa pohon penurunan yang menggambarkan bagaimana memperoleh suatu string dengan
Lebih terperinciTEKNIK KOMPILASI. Firrar Utdirartatmo
TEKNIK KOMPILASI TEKNIK KOMPILASI Firrar Utdirartatmo Kata Pengantar Penulis memberanikan diri untuk menyusun buku ini karena melihat kenyataan bahwa teknik kompilasi merupakan mata kuliah yang diajarkan
Lebih terperinciDasar Pemrograman Java
Dasar Pemrograman Java Tessy Badriyah, SKom. MT. http://lecturer.eepis-its.edu/~tessy Tujuan Pembelajaran Penggunaan Komentar dalam program Memahami perbedaan identifier yang valid dan yang tidak valid
Lebih terperinciDASAR PEMROGRAMAN. PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom
DASAR PEMROGRAMAN PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom https://www.facebook.com/groups/dasarpemrogramanc TUJUAN Mengenal sejarah, struktur, sintaks
Lebih terperinciBAB VI CARA PENANGANAN KESALAHAN
BAB 6 CARA PENANGANAN KESALAHAN 55 BAB VI CARA PENANGANAN KESALAHAN TUJUAN PRAKTIKUM 1. Mengetahui jenis - jenis kesalahan yang biasa terjadi 2. Memahami cara cara penanganan kesalahan 3. Mengerti bagaimana
Lebih terperinciOPERATOR-OPERATOR DALAM JAVA
OPERATOR-OPERATOR DALAM JAVA Obyektif : 1. Memahami tentang operator-operator (aritmatic, logical, relational, assigment, bitwise) 2. Dapat membuat program sederhana dengan menggunakan operatoroperator
Lebih terperinciBAB II SINTAKS 2.1. SINTAKS
BAB II SINTAKS 2.1. SINTAKS merupakan kumpulan aturan yang mendefinisikan suatu bentuk bahasa. mendefinisikan bagaimana suatu kalimat dibentuk sebagai barisan/urutan dari pemilihan suatu kata dasar. Kata
Lebih terperinciPengenalan Pascal/DevPascal
Materi 1 Pengenalan Pascal/DevPascal Turbo Pascal adalah Compiler bahasa pemrograman Pascal. Untuk memulai menjalankan Pascal: Cari Folder Pascal ada di C:\TP\BIN\TPX.EXE Jalankan File TPX tersebut Dev
Lebih terperinciKomentar, Identifier, Konstanta dan Variabel
PEMROGRAMAN BERORIENTASI OBJEK Komentar, Identifier, Konstanta dan Variabel Budhi Irawan, S.Si, M.T KOMENTAR PROGRAM Dalam proses pengembangan sebuah program, pasti akan disibukan dengan penulisan kode-kode
Lebih terperinciKeg. Pembelajaran 2 : Mengenal Bahasa C++
Keg. Pembelajaran 2 : Mengenal Bahasa C++ 1. Tujuan Kegiatan Pembelajaran Setelah mempelajari materi kegiatan pembelajaran ini mahasiswa akan dapat : 1) Mengenal secara baik sintak-sintak dalam bahasa
Lebih terperinciPengantar dalam Bahasa Pemrograman Turbo Pascal
Pengantar dalam Bahasa Pemrograman Turbo Pascal Penulis: William www.etersoul.com Computer Club of Bunda Hati Kudus SMA Bunda Hati Kudus Pengantar Bahasa Pemrograman Pascal Page 1 / 11 License Agreements
Lebih terperinciTeknik Kompilasi. Notasi Bahasa
Teknik Kompilasi Notasi Bahasa TATA BAHASA Tata bahasa / Grammar dalam OTOMATA adalah kumpulan dari himpunan variabel (non-terminal), simbol-simbol awal dan terminal yang dibatasi oleh aturan-aturan produksi.
Lebih terperinciKomponen sebuah Kompilator
Komponen sebuah Kompilator Program Subjek Program Objek ANALISIS SINTESIS Penganalisis Leksikal (Scanner) Penganalisis Sintaks (Parser) Penganalisis Semantik Pembentuk Kode Pengoptimal Kode TABEL 1 Scanning
Lebih terperinciTEKNIK KOMPILASI. Dosen : Dwi Retno Wahyuningsih, S. Kom. Jurusan : Teknik Informatika Semester Genap 2007/2008
TEKNIK KOMPILASI Dosen : Dwi Retno Wahyuningsih, S. Kom Jurusan : Semester Genap 2007/2008 SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER (STMIK) DARMAJAYA BANDAR LAMPUNG 2008 GARIS-GARIS BESAR PROGRAM
Lebih terperinciANALISIS SEMANTIK. Teknik Kompilasi Dosen: Utami Dewi W.,S.Kom
ANALISIS SEMANTIK Teknik Kompilasi Dosen: Utami Dewi W.,S.Kom Pengertian (1) Suatu compiler selain harus memeriksa leksikal dan sintaks juga harus memeriksa semantik dari program sumber tersebut. Dalam
Lebih terperinciMODUL DUA VARIABEL DAN TIPE VARIABEL
MODUL DUA VARIABEL DAN TIPE VARIABEL Tujuan : Mahasiswa memahami tentang operator dan penggunaannya dalam bahasa pemrograman java, mengetahui macam-macam kategori operator dan mengetahui perbedaan operator
Lebih terperinciReview: Algoritme dan Program 12/29/2011. Algoritme dan Pemrograman. Review: Bagaimana memecahkan masalah dengan komputer?????
Algoritme dan Pemrograman Kuliah #3 Implementasi algoritme Struktur program C Elemen program * * * * Masalah Review: Bagaimana memecahkan masalah dengan komputer????? Logika Berpikir Logika Pemrograman
Lebih terperinciUNIVERSITAS GUNADARMA
UNIVERSITAS GUNADARMA SK No. 92 / Dikti / Kep /1996 Fakultas Ilmu Komputer, Teknologi Industri, Ekonomi,Teknik Sipil & Perencanaan, Psikologi, Sastra Program Diploma (D3) Manajemen Informatika, Teknik
Lebih terperinciTipe Data, Variabel, Input/Output
Tipe Data, Variabel, Input/Output Pendahuluan Untuk membuat program dengan bahasa pemrograman C harus memperhatikan struktur dasarnya. Strukturnya diawali dengan bagian preprocessor directive yang biasanya
Lebih terperinciTEKNIK KOMPILASI PERTEMUAN Ke 4 dan 5 Abdul Muis Mappalotteng ANALISIS SEMANTIK
TEKNIK KOMPILASI PERTEMUAN Ke 4 dan 5 Abdul Muis Mappalotteng ANALISIS SEMANTIK Analisis Semantik adalah proses setelah melewati proses scanning dan parsing. Pada tahap ini dilakukan pengecekan pada struktur
Lebih terperinciBAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS
29 BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS Dengan menggunakan Visual Basic 6.0 aplikasi perangkat ajar pengelolaan dan perhitungan ekspresi matematika yang akan dibangun dalam penelitian
Lebih terperinciVARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2
VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI Tujuan Pembelajaran 1. Siswa mampu memahami penulisan Tipe data, variabel dan konstanta dalam pascal 2. Siswa mampu menerapkan penggunaan Tipe data,
Lebih terperinciDesain dan Analisis Algoritma. Pengenalan Bahasa C. I Ketut Resika Arthana, S.T., M.Kom.
Desain dan Analisis Algoritma Pengenalan Bahasa C I Ketut Resika Arthana, S.T., M.Kom resika.arthana@gmail.com http://www.rey1024.com Intro Sadarilah Kawan, Pemrograman Itu Indah Bahasa Pemrograman mudah
Lebih terperinciPERTEMUAN 2 KONSEP DASAR PEMROGRAMAN
PERTEMUAN 2 KONSEP DASAR PEMROGRAMAN I. Algoritma Pemrograman Yang Baik Ciri-ciri algoritma pemrograman yang baik adalah: 1. Memiliki logika perhitungan/metode yang tepat dalam memecahkan masalah 2. Menghasilkan
Lebih terperinciBAB I SEKILAS TENTANG C
BAB I SEKILAS TENTANG C Tujuan : 1. Menjelaskan sejarah dan ruang lingkup pemakaian bahasa C 2. Menjelaskan kelebihan dan kekurangan bahasa C 3. Menjelaskan proses kompilasi dan linking program C 4. Menjelaskan
Lebih terperinciPemrograman Dasar C. Minggu 2
Pemrograman Dasar C Minggu 2 Topik Bahasan Stdio library Output dalam C: printf Input dalam C: scanf Escape sequence Assignment Statement Operator Arithmatika Urutan dan Asosiasi Input dan Output dalam
Lebih terperinciJAVA BASIC PROGRAMMING Joobshet
JAVA BASIC PROGRAMMING Joobshet 1. KOMPETENSI Mahasiswa dapat memahami jenis jenis tipe data Mahasiswa dapat memahami jenis jenis variable Mahasiswa dapat memahami jenis jenis seleksi kondisi Mahasiswa
Lebih terperinciTipe Data dan Variabel
Tipe Data dan Variabel L/O/G/O Agus Priyanto Introduction Sejarah C Bahasa C merupakan bahasa pemrograman yang di ciptakan oleh Dennis Ricthie yang berasal dari perkembangan bahasa BCPL (Basic Combined
Lebih terperinciTIPE DATA PADA JAVA. Pertemuan (K-04/L-04)
TIPE DATA PADA JAVA Pertemuan (K-04/L-04) Alangkah baiknya kita mempelajari terlebih dahulu tentang apa itu tipe data dan mengenal ada berapa tipe data yang digunakan dalam Bahasa Pemrograman Java. Sudah
Lebih terperinci9/9/2011 ILKOM IPB 1 ALGORITME DAN PEMROGRAMAN. Review: Algoritme dan Program. Bahasa tingkat rendah (low level language)
* * * * Masalah Review: Bagaimana memecahkan masalah dengan komputer????? ALGORITME DAN PEMROGRAMAN Kuliah #3 Implementasi algoritme Struktur program C Elemen program Logika Berpikir Implementasi Algortime
Lebih terperinciAlgoritme dan Pemrograman
Kuliah #2 Struktur program C Tipe data Input / Output Algoritme dan Pemrograman Beberapa Catatan Lakukan KRS B jika: Belum mendaftar di KRS A Mendaftar di KRS A, tapi nama tidak muncul di absen Pindah
Lebih terperinciPENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini:
PENGENALAN BAHASA C A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini: Kebanyakan pemrogram jarang memberikan keterangan/
Lebih terperinciPENGENALAN C++ Bab 1
PENGENALAN C++ Bab 1 1.1 SEJARAH C++ Bahasa C++ diciptakan oleh Bjarne Stroustrup di AT&T Bell Laboratories awal tahun 1980-an berdasarkan C ANSI (American National Standard Institute). Pertama kali, prototype
Lebih terperinciDasar Pemrograman Mikrokontroler dengan Bahasa C
Dasar Pemrograman Mikrokontroler dengan Bahasa C Pokok Bahasan: 1. Penggunaan Fungsi (Using Functions) 2. Penanaman bahasa rakitan di dalam Program 'C' Tujuan Belajar: Setelah mempelajari dalam bab ini,
Lebih terperinciKU-1072 PENGENALAN TEKNOLOGI INFORMASI B (PTI B)
KU-1072 PENGENALAN TEKNOLOGI INFORMASI B (PTI B) 2008 MATERI I PENGENALAN BAHASA C++ Materi Praktikum Durasi TIU/TIK Referensi Pengenalan Bahasa C++ 180 menit 1. Pendahuluan 2. Instruksi Output Sederhana
Lebih terperinciKesalahan Program dapat berupa
Error Handling Program Penanganan Reaksi Compiler Pada kesalahan Error Recovery Error repair Program Program dapat berupa leksikal Sintaks Semantics 1 Error Handling - Program Program dapat berupa leksikal
Lebih terperinciKuliah III - Dasar Pemrograman
17 September 2013 Kuliah III - Dasar Pemrograman Struktur program dalam bahasa C Kompilasi Variabel Statement : Deklarasi & Assignment statement, Inisialisasi Masukan dan Keluaran Contoh 1. assign.c /*
Lebih terperinciP3 Pengantar Pemrograman C
P3 Pengantar Pemrograman C A. Sidiq Purnomo Prodi Teknik Informatika & Prodi Sistem Informasi Universitas Mercu Buana Yogyakarta Tujuan Mahasiswa dapat mengetahui dan memahami sejarah bahasa C, struktur
Lebih terperinciTEORI BAHASA & OTOMATA (PENGENALAN KOMPILASI) PERTEMUAN VI Y A N I S U G I Y A N I
TEORI BAHASA & OTOMATA (PENGENALAN KOMPILASI) PERTEMUAN VI Y A N I S U G I Y A N I MATERI PERTEMUAN V & VI PENGENALAN KOMPILASI - BAHASA PEMROGRAMAN - TRANSLATOR - MODEL KOMPILATOR - ANALISIS LEKSIKAL
Lebih terperinciBahasa Pemrograman Java. Yudi Adha. ST. MMSI
Bahasa Pemrograman Java Yudi Adha. ST. MMSI Tujuan Pada bagian ini, kita akan mendiskusikan mengenai bagian dasar pemrograman Java. Kita akan memulai dengan mencoba menjelaskan bagian dasar dari program
Lebih terperinciSEMANTIK Syntax mendefinisikan suatu bentuk program yang benar dari suatu bahasa.
SEMANTIK Syntax mendefinisikan suatu bentuk program yang benar dari suatu bahasa. Semantik mendefinisikan arti dari program yang benar secara syntax dari bahasa tersebut. Semantik suatu bahasa membutuhkan
Lebih terperinciMODUL 3 Tipe Data, Variabel Dan Konstanta Pada Php
MODUL 3 Tipe Data, Variabel Dan Konstanta Pada Php 2.1 Tujuan 1. Mengenalkan kepada siswa tentang tipe data dan variabel 2. Siswa dapat membuat aplikasi sederhana dengan menggunakan tipe data dan variabel
Lebih terperinciIdentifier dan Tipe Data
Identifier dan Tipe Data Identifier Identifier atau pengenal merupakan nama yang biasa digunakan untuk : - Variable - Konstanta bernama - Fungsi - Dll Aturan yang berlaku bagi suatu pengenal secara umum
Lebih terperinci