• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
9
0
0

Teks penuh

(1)

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-NaurForm).

Bahasa DOGI yang dihasilkan dalam perancangan ini memiliki sifat object

-oriented 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.

(2)

vi

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 algoritma-algoritma 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

(3)

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.2RUANG 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

(4)

viii

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

(5)

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

(6)

x

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 PRODUKSI TATA BAHASA DOGI...L1 LAMPIRAN B KODE SUMBER PROGRAM DOGI...L9

(7)

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

(8)

xii

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

(9)

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

Referensi

Dokumen terkait

Menyatakan bahwa sekripsi dengan judul “EVALUASI KEBIJAKAN PENATAAN KEMBALI KAWASAN OBJEK WISATA PANTAI PARANGTRITIS” saya buat dengan sebenar-benarnya dan tidak

Pengecualian dari instrumen ekuitas AFS, jika, pada periode berikutnya, jumlah penurunan nilai berkurang dan penurunan dapat dikaitkan secara obyektif dengan sebuah peristiwa

Lampiran 1a Surat Edaran Bank Indonesia Nomor 13/30/DPNP tanggal 16 Desember 2011.. Bank : BANK JTRUST

22 dari Notaris Novita Puspitarini, S.H., pemegang saham menyetujui untuk menjaminkan seluruh atau sebagian besar harta kekayaan Perusahaan dan/ atau bertindak

Permasalahan kurangnya pemahaman/pengetahuan masyarakat terkait bahaya sampah terhadap lingkungan dan kesehatan masyarakat, belum dimilikinya kemampuan/ skill dalam

Kedua, latar belakang terjadinya pembaruan di Al-Azhar karena; bergesernya paham rasional Syi’ah pada ortodoksi ideologi Sunni; invasi Napoleon Bonaparte dari Prancis

Penelitian ini dilakukan untuk menghasilkan rancangan produk baby walker yang dapat memenuhi kebutuhan konsumen dengan meningkatan keamanan produk dan bermanfaat

Pentadbir institusi sekolah terlalu berfokus kepada aktiviti-aktiviti lain yang terlalu mendesak golongan guru dan murid untuk mencapai kecemerlangan, sedangkan