• Tidak ada hasil yang ditemukan

PENGEMBANGAN PROTOTIPE APLIKASI KONVERSI KODE DARI BAHASA C KE PASCAL

N/A
N/A
Protected

Academic year: 2021

Membagikan "PENGEMBANGAN PROTOTIPE APLIKASI KONVERSI KODE DARI BAHASA C KE PASCAL"

Copied!
11
0
0

Teks penuh

(1)

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 SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA

INSTITUT TEKNOLOGI BANDUNG

2008

(2)

Lembar Pengesahan

Program Studi Sarjana Informatika

Pengembangan Prototipe Aplikasi Konversi Kode Dari Bahasa C Ke Pascal

Tugas Akhir

Program Studi Sarjana Informatika ITB

Oleh

Ipam Fuaddina Adam / 13502079

Telah disetujui dan disahkan sebagai laporan tugas akhir di Bandung, pada tanggal 17 Juni 2008

Pembimbing

Ir. Rinaldi Munir, M.T NIP. 132084796

(3)

Abstraksi Tugas Akhir

Tugas akhir ini bertujuan membangun program yang melakukan proses konversi kode sumber program dari bahasa C ke Pascal. Proses translasi dilakukan dengan membuat rule yang mencocokkan grammar dari C dan Pascal, rule ini kemudian dipakai untuk memproduksi kode yang ekivalen dengan kode masukan. Beberapa komponen program dibangun dengan bantuan kakas scanner generator dan parser generator. Pada akhir proses pengembangan, dilakukan pengujian untuk mengetahui kebenaran jalannya program. Tidak semua komponen bahasa C ditranslasi, fitur-fitur yang kompleks seperti C preprocessing, function pointer, tipe kompleks ( pointer to pointer ), dll, tidak ditranslasi.

Alur kerja dari program konversi kode dibagi menjadi tiga bagian : preprocessing ( dilakukan dengan memanggil program eksternal ), scanning parsing ( komponen ini dikembangkan dengan menggunakan kakas ) dan code generation, yaitu proses penerjemahan dan pembangkitan kode, yang merupakan inti dari tugas akhir. Seluruh komponen program konversi kode dikembangkan dengan bahasa C.

Hasil akhir dari tugas akhir ini adalah prototipe perangkat lunak translator yang mampu mengkonversi kode dari bahasa C ke Pascal. Program menerima inputi berupa berkas ( file ) yang berisi kode sumber program dalam bahasa C, dan menghasilkan keluaran berupa file yang berisi kode program yang ekivalen dalam bahasa Pascal. Nama file keluaran selalu sama dengan nama file masukan, hanya berbeda ekstensi menjadi .pas . Program konversi kode dioperasikan lewat console dan berjalan pada sistem operasi Linux/Unix.

Kata kunci : kompilator, translator, grammar, penganalisis leksikal (scanner), penganalisis sintaks ( parser ), pembangkit kode ( code generator ), tabel simbol ( symbol table ).

(4)

Kata Pengantar

Puji syukur penulis panjatkan kepada Tuhan YME atas berkat dan rahmat-Nya, tugas akhir ini dapat diselesaikan dengan lancar. Selama pelaksanaan tugas akhir ini, penulis mendapatkan banyak dukungan dari berbagai pihak, tanpa mereka tugas akhir ini tidak akan selesai. Penulis ingin mengucapkan terima kasih, kepada :

1. Bapak dan ibu yang tiada hentinya memberikan dukungan moral, kasih, dan sumbangan pemikiran

2. Bapak Ir. Rinaldi Munir, M.T. yang telah bersedia menjadi dosen pembimbing selama tugas akhir ini dilaksanakan

3. Adikku Deka yang aku sayangi, yang selalu menanyakan perkembangan tugas akhir ini 4. Semua staf dosen dan karyawan teknik informatika ITB

5. Semua civitas akademika teknik informatika ITB yang menemani hari demi hari selama penulis menimba ilmu di ITB

Sebagai penutup, penulis menyadari bahwa tugas akhir ini adalah karya yang jauh dari sempurna, oleh karenanya penulis selalu mengharapkan kritik dan saran dari pembaca, demi proses perbaikan di masa yang akan datang.

Bandung, 12 Juni 2008

Penulis

(5)

Daftar Isi

Lembar Pengesahan ... ii

Abstraksi Tugas Akhir ... ii 

Kata Pengantar ... iii 

Daftar Isi ... iv 

Daftar Gambar ... vii 

Daftar Tabel ... viii 

BAB I PENDAHULUAN ... 11 

1.1  Latar Belakang ... 11 

1.2  Rumusan Masalah ... 13 

1.3  Tujuan ... 13 

1.4  Batasan Masalah ... 14 

1.5  Metodologi ... 14 

1.6  Sistematika Laporan ... 15 

BAB II DASAR TEORI ... 16 

2.1  Kompilator... 16 

2.2  Penganalisis Leksikal / Lexical Analyzer ... 18 

2.3  Penganalisis Sintaks / Grammar ... 18 

2.3.1  Bottom-up Parser ... 19 

2.3.2  Top-down Parser ... 20 

2.4  Pembangkitan Kode ... 20 

2.5  Tabel Simbol ... 21 

2.6  C dan Pascal ... 23 

2.6.1  Struktur Program ... 24 

2.6.2  Tipe String ... 24 

2.6.3  Komentar ... 25 

2.6.4  Deklarasi ... 25 

2.6.5  Operator Assignment ... 26 

2.6.6  Standar Input Output ... 26 

2.6.7  Statement for ... 27 

2.6.8  Macro... 27 

(6)

2.6.9  Senarai ... 28 

2.6.10  Subrutin ... 29 

2.7  Kakas Parser Generator dan Scanner Generator ... 29 

BAB III ANALISIS PEMECAHAN MASALAH ... 31 

3.1  Alur Kerja Global ... 31 

3.2  Spesifikasi Grammar Bahasa C ... 32 

3.3  Proses Parsing ... 36 

3.4  Konfigurasi Kakas Flex dan Yacc ... 41 

3.5  Proses Konversi ... 44 

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK ... 50 

4.1  Analisis Aliran Data ... 50 

4.1.1  Diagram level 0 ... 50 

4.1.2  Diagram level 1 ... 51 

4.1.3  Diagram Level 2 Proses 3 ... 52 

4.2  Analisis Modul ... 52 

4.3  Perancangan Struktur Data ... 54 

4.3.1  Specifier dan Declarator ... 54 

4.3.2  Representasi Tipe ... 56 

4.3.3  Implementasi Tabel Simbol... 57 

4.3.4  Elemen Tabel Simbol ... 59 

4.3.5  Struktur Tabel Simbol ... 60 

4.3.6  AST ( Abstract Syntax Tree ) ... 60 

4.4  Perancangan Antarmuka dan Perintah ... 62 

BAB V Implementasi Dan Pengujian ... 63 

5.1  Implementasi ... 63 

5.1.1  Lingkungan Perangkat Lunak ... 63 

5.1.2  Lingkungan Perangkat Keras ... 63 

5.2  Batasan Implementasi ... 64 

5.3  Implementasi Struktur Data... 65 

5.3.1  Implementasi Tabel Simbol... 65 

5.3.2  Implementasi Simbol dan Sistem tipe ... 66 

5.3.3  Implementasi Fungsi Hash ... 67 

(7)

5.3.4  Implementasi AST ... 67

5.4  Implementasi modul ... 68 

5.5  Pengujian ... 68 

5.5.1  Metode Pengujian ... 68 

5.5.2  Hasil Pengujian... 68 

BAB VI Kesimpulan dan Saran ... 72 

6.1  Kesimpulan ... 72 

6.2  Saran ... 73 

DAFTAR PUSTAKA ... 74 

LAMPIRAN ... 75 

(8)

Daftar Gambar

Gambar I-1 Alur Kerja Kompilator Empat Fase ... 12 

Gambar II-1 Kompilator Empat Fase... 17 

Gambar II-2 Pohon Parsing... 20 

Gambar III-1 Alur Kerja Global ... 31 

Gambar IV-1 diagram DFD level 0 ... 50 

Gambar IV-2 Diagram DFD level 1 ... 51 

Gambar IV-3 Diagram DFD level 2 proses 3 ... 52 

Gambar IV-4 Struktur modul program ... 53 

Gambar IV-5 Representasi tipe ... 56 

Gambar IV-6 Tabel simbol ... 58 

Gambar IV-7 Struktur item tabel simbol ... 59 

Gambar IV-8 Stuktur AST ... 61 

Gambar IV-9 Pemanggilan program dari console ... 62 

(9)

Daftar Tabel

Tabel II-1 Contoh Tabel Simbol ... 22 

Tabel II-2 Perbandingan C dan Pascal ... 23 

Tabel II-3 Pebandingan Struktur Program ... 24 

Tabel II-4 String pada C dan Pascal... 25 

Tabel II-5 Deklarasi Variabel ... 26 

Tabel II-6 Input dan Output ... 27 

Tabel II-7 Pengulangan for ... 27 

Tabel II-8 Efek preprocessing ... 28 

Tabel II-9 Penggunaan Senarai pada C dan Pascal ... 28 

Tabel II-10 Subrutin pada C dan Pascal... 29 

Tabel III-1 Spesifikasi Grammar ... 33 

Tabel III-2 Pemrosesan Deklarasi Struktur ... 37 

Tabel III-3 Pemrosesan Deklarasi Enumerasi ... 38 

Tabel III-4 Pemrosesan Definisi Fungsi ... 39 

Tabel III-5 Pemrosesan Ekspresi ... 40 

Tabel III-6 Konfigurasi input untuk Kakas Lex/Flex ... 42 

Tabel III-7 Konfigurasi input untuk Kakas Yacc/Bison ... 43 

Tabel III-8 Konversi typedef... 44 

Tabel III-9 Pemakaian Nama Tipe sebagai identifier ... 45 

Tabel III-10 Konversi storage class ... 45 

Tabel III-11 Penanganan duplikasi visibilitas variabel ... 46 

Tabel III-12 Pemrosesan struktur ... 47 

Tabel III-13 Pemrosesan union ... 48 

Tabel III-14 Pemorsesan typedef ... 48 

Tabel III-15 Ekspresi Kondisional ... 49 

Tabel IV-1 keterangan entitas dan proses untuk level 0 ... 50 

Tabel IV-2 keterangan DFD level 1 ... 51 

Tabel IV-3 Proses pembangkitan kode ... 52 

Tabel IV-4 Penjelasan modul ... 53 

Tabel IV-5 Senarai pada C dan Pascal ... 55 

(10)

Tabel V-1 Batasan Implementasi ... 64 

Tabel V-2 Implementasi tabel hash ... 65 

Tabel V-3 implementasi simbol dan sistem tipe ... 66 

Tabel V-4 Implementasi fungsi hash ... 67 

Tabel V-5 Implementasi AST ... 67 

Tabel V-6 Detail implementasi modul ... 68 

(11)

Daftar Istilah

Istilah / singkatan Penjelasan

AST Abstract Syntax Tree

Bison Nama salah satu software parser generator

DFA Deterministic Finite Automaton

Flex Nama salah satu software scanner generator

Grammar Aturan yang menata rangkaian kalimat atau kata dalam bahasa

Hash

Teknik identifikasi obyek dengan cara mengubah obyek menjadi kode id unik, sehingga memungkinkan obyek dicari dengan cepat

kompilator

Program yang menerjemahkan bahasa tingkat tinggi menjadi kode assembly

Lex Nama salah satu software scanner generator

Macro Fasilitas pada bahasa C yang dipakai selama preprocessing

NFA Nondeterministic Finite Automaton

Parser Program yang melakukan proses parsing

Scanner Program yang memecah kode sumber menjadi serangkaian token

Token Rangkaian karakter/simbol yang bermakna dalam suatu bahasa

Yacc Nama salah satu software parser generator

Referensi

Dokumen terkait

Ho2: Tidak terdapat perbezaan yang signifikan diantara minat kerjaya dengan jantina dalam kalangan pelajar tingkatan 4 di 3 buah sekolah menengah daerah Johor Bahru.. Ho3:

Kajian dari penelitian yaitu bagaimana iklim komunikasi pada Sekretariat Daerah Kutai Barat menciptakan komunikasi yang baik sehingga dapat meningkatkan kinerja yang baik pula

Inti galaksi aktif adalah daerah yang terletak di pusat sebuah galaksi yang memiliki luminositas yang jauh lebih besar dibandingkan dengan galaksi biasa.. Para astronom

dari Semarang km Nama Pemeriksa Jl Ki Narto Sabdo 02/08/2020 Lokasi Jembatan Nama Jembatan 110.434492 -7.088241 Tanggal Pemeriksaan NIP 33.74.11.042.0.1 Koordinat KI NARTO SABDO

Dengan melakukan wawancara kepada narasumber terpercaya di STMIK Bina Sarana Global (Ketua STMIK Global dan HRD) untuk mendapatkan data yang akurat, informasi yang

Tujuan penelitian ini adalah: 1) untuk mengetahui dan menganalisis implikasi Evaluasi Kinerja Penyelenggaraan Pemerintahan Daerah di Kabupaten Bolaang Mongondow Utara; 2)

sampai dengan gambar 7 tersebut terlihat bahwa grafik transien arus dan tegangan pada rangkaian RC yang dihasilkan dari pemodelan ATPDraw sudah sama dengan grafik

Mengamati Pelaksanaan proses kegiatan belajar mengajar, khususnya proses kegiatan belajar mengajar bahasa Arab Mulok terjemah Al-Qur’an pada siswa kelas VIII MTsN