UNIVERSITAS BINA NUSANTARA. Program Ganda Teknik Informatika Matematika Skripsi Sarjana Program Ganda Semester Genap 2003/2004

dokumen-dokumen yang mirip
BAB I PENDAHULUAN. Sebesta (2002) memaparkan kriteria evaluasi terhadap sebuah bahasa

BAB IV HASIL PENELITIAN DAN PENERAPAN

BAB II LANDASAN TEORI

UNIVERSITAS BINA NUSANTARA. Program Studi Ganda TEKNIK INFORMATIKA - MATEMATIKA Skripsi Sarjana Program Ganda Semester Genap 2005/2006

UNIVERSITAS BINA NUSANTARA Program Studi Ganda Teknik Informatika - Statistika Skripsi Sarjana Program Ganda Semester Ganjil Tahun 2005/2006

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA

ALGORITMA PEMROGRAMAN 1C PENDAHULUAN KONSEP BAHASA PEMROGRAMAN

SUMBER BELAJAR PENUNJANG PLPG

UNIVERSITAS BINA NUSANTARA. Program Ganda Teknik informatika - Matematika Skripsi Sarjana Program Ganda Semester Ganjil 2006/2007

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA PERANCANGAN PROGRAM APLIKASI UNTUK PERCOBAAN DENGAN MENGGUNAKAN METODA RESPONS PERMUKAAN BERFAKTOR DUA.

TIPE DATA, VARIABLE, dan OPERATOR DELPHI

PERANCANGAN PROGRAM APLIKASI UJI PRIMALITAS BERDASARKAN TEOREMA POCKLINGTON

LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA. Abstrak

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA PERANCANGAN PROGRAM APLIKASI MOTION DETECTION BERBASISKAN SELISIH TEXTURE DI DALAM IMAGE. Abstrak

UNIVERSITAS BINA NUSANTARA

ALGORITMA PEMROGRAMAN 1C SINTAKS

TEKNIK KOMPILASI Bahasa Regular

UNIVERSITAS BINA NUSANTARA. Skripsi Sarjana Program Studi Ganda Teknik Informatika - Matematika Semester Genap 2003/2004

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA Program Ganda. Teknik Informatika - Matematika Skripsi Sarjana Program Ganda Semester Ganjil 2006/2007

Proses Kompilasi. Otomata dan Pengantar Kompulasi Pertemuan 3

UNIVERSITAS BINA NUSANTARA ABSTRAK

LAPORAN PRAKTIKUM PERTENGAHAN SEMESTER (LAB. ACTIVITY) ALGORITMA & PEMROGRAMAN TEKNIK INFORMATIKA. Oleh: NIM : Materi:

Jurusan Teknik Informatika Dan Statistika

DASAR PEMROGRAMAN. PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom

BAHASA PEMROGRAMAN. Merupakan prosedur/tata cara penulisan program.

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA. Program Ganda Teknik Informatika - Matematika Semester Ganjil 2007/2008 SKRIPSI PROGRAM GANDA UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA PERANCANGAN PROGRAM APLIKASI KRIPTOGRAFI DENGAN MENGGUNAKAN ALGORITMA TWOFISH. Abstrak

PERANCANGAN PROGRAM PENGOLAHAN DATA NAB REKSADANA ABSTRAK

UNIVERSITAS BINA NUSANTARA PERANCANGAN DAN PENERAPAN FINITE BEST-STRIP UNTUK MASALAH 2-D STOCK-CUTTING PADA PERUSAHAAN MEBEL SUMBER URIP

TEKNIK KOMPILASI Konsep & Notasi Bahasa

Pengenalan Pemrograman

UNIVERSITAS BINA NUSANTARA. Program Studi Ganda Teknik Informatika dan Matematika Skripsi Sarjana Program Ganda Semester Genap 2005/2006

UNIVERSITAS BINA NUSANTARA

SINTAKS. Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu:

PERANCANGAN PROGRAM RETRIVAL CITRA BERBASIS KONTEN MENGGUNAKAN TRANSFORMASI WALSH-HADAMARD TERHADAP RATA-RATA BARIS DAN KOLOM WARNA CITRA SKRIPSI

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA. Program Ganda Teknik Informatika - Matematika Skripsi Sarjana Program Ganda Semester Ganjil 2006/2007

TEKNIK KOMPILASI. Firrar Utdirartatmo

Implementasi OOP Pada Perangkat Lunak Pemrograman

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS GUNADARMA

SINTAKS. Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu:

UNIVERSITAS BINA NUSANTARA

PERANCANGAN PROGRAM SIMULASI RUTE PENDISTRIBUSIAN BARANG DENGAN ALGORITMA ELITIST ANT SYSTEM PADA PT TIMUR JAYA SKRIPSI

UNIVERSITAS BINA NUSANTARA. Program Ganda Teknik Informatika - Matematika Skripsi Sarjana Program Ganda Semester Ganjil Tahun 2006/2007

Konsep Dasar Pemrograman

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA

Bahasa adalah kumpulan kalimat. Kalimat adalah rangkaian kata. Kata adalah komponen terkecil kalimat yang tidak bisa dipisahkan lagi.

UNIVERSITAS BINA NUSANTARA HALAMAN ABSTRAK SKRIPSI PROGRAM GANDA UNIVERSITAS BINA NUSANTARA. Genbit Yasbil NIM:

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA. Program Ganda Teknik Informatika - Matematika Skripsi Sarjana Program Ganda Semester Ganjil 2007/2008

Teknik Kompiler 2. oleh: antonius rachmat c, s.kom

Alat bantu (tools) dalam pembuatan parser/ analisis sintaksis. Menggunakan simbol persegi panjang untuk non terminal

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA. Abstrak

Hirarki Comsky. Unrestricted. Context Sensitive Context free Regular

UNIVERSITAS BINA NUSANTARA. Program Ganda Teknik Informatika - Matemaatika Skripsi Sarjana Program Ganda Semester Ganjil 2007/2008

UNIVERSITAS BINA NUSANTARA PERANCANGAN PROGRAM APLIKASI PERAMBATAN PANAS PADA KULIT DENGAN MENGGUNAKAN LASER UNTUK APLIKASI TERAPI KANKER.

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA ABSTRAK

Syntax, Semantic & Grammar. Konsep Bahasa Pemrograman Materi 3 Yudianto Sujana, M.Kom

UNIVERSITAS BINA NUSANTARA. Program Ganda Teknik Informatika Matematika Skripsi Sarjana Program Ganda Semester Ganjil 2005/2006

Module 3. Variabel dan Tipe Data

Konsep Dasar Pemrograman Berorientasi Obyek I JAVA. Anugrah Kusuma Seno Adi Putra

Pemrograman II (Java)

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA

ANALISIS BIPLOT BAGI FAKTOR-FAKTOR YANG MENENTUKAN PEMILIHAN ACARA TELEVISI BERBASIS KOMPUTER SKRIPSI

BAB 4 PENGENALAN BAHASA C

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA. Program Studi Ganda. Teknik Informatika Matematika PERANCANGAN PROGRAM APLIKASI OPTIMASI BIAYA UNTUK

UNIVERSITAS BINA NUSANTARA PERANCANGAN PROGRAM APLIKASI OPTIMASI FUNGSIONAL DENGAN SISTEM STURM-LIOUVILLE

UNIVERSITAS BINA NUSANTARA

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

UNIVERSITAS BINA NUSANTARA

TEORI BAHASA & OTOMATA (PENGENALAN KOMPILASI) PERTEMUAN VI Y A N I S U G I Y A N I

UNIVERSITAS BINA NUSANTARA. Joy Amanda NIM:

UNIVERSITAS BINA NUSANTARA

MODEL KOMPILATOR FUNGSI UMUM BAGIAN KOMPILATOR. Dosen Pengampu: Utami Dewi Widianti,S.Kom

UNIVERSITAS BINA NUSANTARA

BAB III PERANCANGAN. Karakter-karakter yang diijinkan dipakai dalam bahasa DOGI adalah

UNIVERSITAS BINA NUSANTARA PERANCANGAN APLIKASI MENCARI NILAI EIGEN MENGGUNAKAN ALGORITMA QR DAN PENERAPANNYA PADA MODEL PERTUMBUHAN LESLIE

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

Algoritma dan Struktur Data

UNIVERSITAS SAM RATULANGI MANADO FAKULTAS TEKNIK, JURUSAN TEKNIK ELEKTRO Program Studi S-1 Teknik Informatika. Data & Ekspresi

Transkripsi:

UNIVERSITAS BINA NUSANTARA Program Ganda Teknik Informatika Matematika Skripsi Sarjana Program Ganda Semester Genap 2003/2004 PERANCANGAN BAHASA PEMROGRAMAN BERORIENTASI OBJEK DOGI Ari Prasetyo NIM: 0992980032 ABSTRAK Skripsi ini merupakan perancangan sebuah bahasa pemrograman berorientasi objek bernama DOGI. DOGI dibuat sedemikian rupa sehingga memiliki simplisitas dan ortogonalitas yang tinggi. Perancangan menitikberatkan pada bahasa pemrograman, dan bukan teknik kompilasi. Perancangan bahasa diusahakan menghindari ambiguitas dan tata bahasa dituliskan dengan menggunakan BNF (Backus-Naur Form). Bahasa DOGI yang dihasilkan dalam perancangan ini memiliki sifat objectoriented seperti pada Smalltalk, namun berhasil memiliki disain sintaks dengan elemen-elemen seperti halnya bahasa pemrograman lain. Bahasa lain yang diperbandingkan dengan DOGI di sini adalah C++, C#, Java, dan Object Pascal, yang semuanya adalah bahasa pemrograman berorientasi objek. DOGI memiliki karakteristik sederhana dan ortogonal, dengan ekspresivitas yang memungkinkan penulisan dalam bentuk yang paling intuitif (kecuali dalam hal presedensi operator), disain sintaks yang jelas, dan memiliki metoda-metoda dan kelas-kelas untuk membentuk struktur kendali. Beberapa elemen bahasa pemrograman tidak diimplementasikan pada kompiler untuk mengurangi kompleksitas. Bahasa DOGI yang dibuat dapat memenuhi tujuan semula, yaitu bahasa yang sederhana dan ortogonal. Di sisi yang lain, DOGI memiliki kekurangan seperti terlihat pada masalah presedensi operator. Diharapkan DOGI dapat dikembangkan sehingga kekurangan-kekurangan tersebut dapat tertutupi. Kata dan frasa kunci: Bahasa pemrograman, object-oriented, simplisitas, ortogonalitas, ekspresivitas, struktur kendali. v

PENGANTAR Penulis mengucap syukur kepada Tuhan Yang Maha Esa karena tuntunannya sehingga penulis dapat menyelesaikan skripsi ini, sekalipun banyak sekali hambatan yang penulis hadapi. Berbagai pihak telah membantu terlaksananya penulisan skripsi ini. Oleh karena itu pada kesempatan ini penulis ingin mengucapkan terima kasih kepada: 1. Bapak Wikaria Gazali, S. Si., M. T., yang telah banyak membantu penulis dalam menyelesaikan masalah administrasi, 2. Bapak Junaedi Santoso, Dipl.Ing., M.Kom., selaku pembimbing dari Fakultas Ilmu Komputer, yang banyak memberikan masukan dalam penulisan, 3. Bapak Don Tasman, Drs., M.M., selaku pembimbing dari Fakultas MIPA, bimbingan yang beliau berikan sangat membantu penulis, dan karena beliau telah menjadi editor skripsi ini, 4. Sdri. Anita Wijaya, S.Kom., S.Si., yang membantu penulis selama awal penulisan skripsi, pinjaman bukunya, juga untuk memahami algoritmaalgoritma menyangkut masalah kompilasi (beliau memiliki kemampuan menjelaskan algoritma secara manusiawi kemampuan yang dapat menjawab kebutuhan peradaban ini). Tentu saja penulis tidak beranggapan bahwa skripsi ini adalah sebuah karya yang sempurna. Masih banyak kekurangan di sana-sini, dan penulis berharap pada masa yang akan datang penulis sanggup untuk menuliskan karya ilmiah dengan jauh lebih baik. Sebagai catatan tambahan, Dogi adalah nama seekor anjing yang tinggal bersama penulis. Jakarta, Juli 2004 Penulis Ari Prasetyo 0992980032 vi

DAFTAR ISI HALAMAN JUDUL LUAR...I HALAMAN JUDUL DALAM... II HALAMAN PERSETUJUAN HARDCOVER... II HALAMAN PENGESAHAN DEWAN PENGUJI...IV ABSTRAK...V PENGANTAR...VI DAFTAR ISI... VII DAFTAR TABEL...XI DAFTAR GAMBAR... XII BAB I PENDAHULUAN... 1 1.1 LATAR BELAKANG MASALAH... 1 1.2 RUANG LINGKUP... 4 1.3 TUJUAN DAN MANFAAT... 5 1.3.1 Tujuan... 5 1.3.2 Manfaat... 6 1.4 METODOLOGI... 6 BAB II LANDASAN TEORI... 7 2.1 TEORI HIMPUNAN... 7 vii

2.1.1 Himpunan dan Elemen himpunan... 7 2.1.2 Subhimpunan, kesamaan dua himpunan, dan ekivalensi dua himpunan... 7 2.1.3 Operasi-operasi pada himpunan... 8 2.1.4 Relasi biner... 10 2.1.5 Penutup (closure)... 11 2.1.6 Fungsi... 13 2.2 BAHASA PEMROGRAMAN... 14 2.2.1 Kategori bahasa pemrograman... 14 2.2.2 Bahasa pemrograman imperatif... 14 2.2.3 Bahasa pemrograman berorientasi objek... 18 2.2.4 Kriteria evaluasi bahasa pemrograman... 22 2.3 TEORI BAHASA DAN OTOMATA... 27 2.3.1 Tata bahasa (grammar)... 28 2.3.2 Hirarki bahasa menurut Chomsky... 31 2.3.3 Backus-Naur Form dan Extended Backus-Naur Form... 32 2.3.4 Otomata... 34 2.4 TEKNIK KOMPILASI... 36 2.4.1 Proses kompilasi... 36 2.4.2 Semantik operasional... 39 BAB III PERANCANGAN... 40 3.1 SPESIFIKASI BAHASA DOGI... 40 3.1.1 Token... 40 3.1.2 Struktur program... 51 viii

3.1.3 Package... 51 3.1.4 Kelas... 53 3.1.5 Ekspresi... 63 3.1.6 Package System... 65 3.2 PERANCANGAN KOMPILER DOGI... 73 3.2.1 Spesifikasi rancangan... 73 3.2.2 Antarmuka pemakai... 74 3.2.3 Scanner... 74 3.2.4 Parser... 74 3.2.5 Aturan semantik tata bahasa DOGI... 75 3.3 PERANCANGAN DOGIVM (DOGI VIRTUAL MACHINE)... 81 3.3.1 Instruksi-instruksi dasar DOGIVM... 81 3.3.2 Siklus eksekusi instruksi... 84 3.3.3 State... 84 BAB IV HASIL PENELITIAN DAN PENERAPAN... 87 4.1 KARAKTERISTIK BAHASA PEMROGRAMAN DOGI... 87 4.1.1 Simplisitas ortogonalitas... 87 4.1.2 Struktur kendali... 88 4.1.3 Tipe data dan struktur... 89 4.1.4 Disain sintaks... 90 4.1.5 Abstraksi... 91 4.1.6 Ekspresivitas... 91 4.1.7 Type checking... 91 ix

4.1.8 Aliasing... 92 4.2 PERBANDINGAN DENGAN BAHASA PEMROGRAMAN LAINNYA... 92 4.2.1 Komponen yang dibandingkan... 93 4.2.2 Perbandingan secara umum dengan C++, C#, Java, dan Object Pascal... 95 4.2.3 Perbandingan secara khusus dengan C++... 96 4.2.4 Perbandingan secara khusus dengan bahasa C#... 97 4.2.5 Perbandingan secara khusus dengan bahasa Java... 97 4.2.6 Perbandingan secara khusus dengan Object Pascal Delphi... 97 4.3 CONTOH PROGRAM... 98 BAB V SIMPULAN DAN SARAN... 99 5.1 SIMPULAN... 99 5.2 SARAN PENGEMBANGAN... 100 DAFTAR PUSTAKA... 101 RIWAYAT HIDUP... 103 LAMPIRAN A LAMPIRAN B LAMPIRAN C PRODUKSI TATA BAHASA DOGI...L1 KODE SUMBER PROGRAM DOGI...L9 PERBANDINGAN CONTOH PROGRAM...L35 x

DAFTAR TABEL Tabel 3.1 Karakter-karakter escape yang berlaku... 45 Tabel 3.2 Pemisah dalam bahasa DOGI... 49 Tabel 3.3 Daftar metoda yang terdapat dalam kelas void... 68 Tabel 3.4 Daftar metoda yang terdapat dalam kelas int... 69 Tabel 3.5 Daftar metoda yang terdapat dalam kelas bool... 69 Tabel 3.6 Daftar metoda yang terdapat dalam kelas real... 70 Tabel 3.7 Daftar metoda yang terdapat dalam kelas string... 70 Tabel 3.8 Daftar metoda yang terdapat dalam kelas array... 71 Tabel 3.9 Daftar metoda yang terdapat dalam kelas code... 71 Tabel 3.10 Daftar metoda yang terdapat dalam kelas _if... 72 Tabel 3.11 Daftar metoda yang terdapat dalam kelas _loop... 72 Tabel 3.12 Daftar metoda yang terdapat dalam kelas console... 72 Tabel 3.13 Daftar opsi yang tersedia dalam program DOGI... 74 Tabel 3.14 Daftar instruksi DOGIVM... 84 Tabel 4.1 Perbandingan fitur-fitur yang dimiliki bahasa-bahasa pemrograman... 94 xi

DAFTAR GAMBAR Gambar 2.1 Perubahan state awal menjadi state akhir (sumber: Morgan (1994, p4))... 14 Gambar 2.2 Proses kompilasi (sumber: Sebesta (2002))... 37 Gambar 3.1 Graf sintaks untuk digit... 42 Gambar 3.2 Graf sintaks untuk digit heksadesimal... 43 Gambar 3.3 Graf sintaks untuk literal integer... 43 Gambar 3.4 Graf sintaks untuk literal floating-point... 44 Gambar 3.5 Graf sintaks untuk karakter tunggal... 46 Gambar 3.6 Graf sintaks untuk karakter... 46 Gambar 3.7 Graf sintaks untuk literal string... 46 Gambar 3.8 Graf sintaks untuk literal array... 47 Gambar 3.9 Graf sintaks untuk literal code... 48 Gambar 3.10 Graf sintaks untuk komentar... 50 Gambar 3.11 Graf sintaks untuk file program dalam bahasa DOGI... 51 Gambar 3.12 Graf sintaks untuk package... 52 Gambar 3.13 Graf sintaks untuk class... 54 Gambar 3.14 Graf sintaks untuk field... 55 Gambar 3.15 Graf sintaks untuk metoda... 57 Gambar 3.16 Graf sintaks untuk properti... 60 Gambar 3.17 Graf sintaks untuk antarmuka kelas... 62 Gambar 3.18 Graf sintaks untuk ekspresi... 64 Gambar 3.19 Graf sintaks untuk term... 65 xii

Gambar 3.20 Graf sintaks untuk objek... 65 Gambar 3.21 Siklus fetch-execute DOGIVM... 86 xiii