BAB II LANDASAN TEORI

Ukuran: px
Mulai penontonan dengan halaman:

Download "BAB II LANDASAN TEORI"

Transkripsi

1 BAB II LANDASAN TEORI 2.1 Teori Himpunan Himpunan dan Elemen himpunan Himpunan merupakan konsep abstrak dari kumpulan objek-objek. Objek-objek di sini memiliki arti yang sangat luas, karena bukan hanya mencakup benda-benda konkrit seperti jeruk, singa, dan sebagainya, melainkan juga mencakup hal-hal yang abstrak seperti bilangan 205, operasi penjumlahan, dan sebagainya. Dalam notasi matematis, himpunan ditulis sebagai daftar objek-objek yang diapit oleh tanda kurung kurawal, atau bisa juga ditulis menggunakan deskripsi sifat-sifatnya (walaupun ini dapat menimbulkan paradoks). Setiap objek tersebut disebut sebagai elemen himpunan. Himpunan itu sendiri dapat diberi nama, dan biasanya dituliskan dengan sebuah huruf besar. A = { jeruk, 8, :, { 5, 2, badak }, Joni } Subhimpunan, kesamaan dua himpunan, dan ekivalensi dua himpunan Suatu himpunan A disebut sebagai subhimpunan dari himpunan B, atau A B, jika setiap anggota himpunan A berada dalam himpunan B juga. Jika ternyata setiap anggota himpunan B terdapat juga di dalam A, maka A dan B memiliki anggotaanggota yang sama. Dengan demikian himpunan-himpunan A dan B dikatakan sama, ditulis A = B. 7

2 8 Jumlah anggota yang dimiliki A dituliskan sebagai A. Dua himpunan A dan B dikatakan ekivalen jika A = B Operasi-operasi pada himpunan Dua buah himpunan dapat dioperasikan untuk membentuk himpunan baru. Operasi-operasi tersebut adalah: Komplemen Komplemen himpunan A, ditulis A, adalah himpunan yang semua anggota-anggotanya tidak terdapat dalam himpunan A, dalam suatu himpunan semesta tertentu. Dalam kaitan dengan visibilitas, maka suatu anggota kelas C yaitu s yang bersifat protected tidak dapat diakses oleh semua kelas yang bukan C atau bukan turunan dari C. Dengan demikian jika C adalah himpunan semua kelas-kelas turunan C beserta C sendiri, maka kelas-kelas yang terdapat dalam C tidak dapat mengakses s. Gabungan (union) Gabungan dari dua himpunan, ditulis A B adalah himpunan yang mengandung baik anggota-anggota A maupun anggota-anggota B. Dalam kaitan dengan OOP, jika suatu objek hendak mengimplementasikan dua macam interface I A dan I B, maka objek tersebut harus memiliki metodametoda yang terdapat baik di dalam I A maupun di dalam I B. Irisan (intersection) Irisan dari dua himpunan, ditulis A B adalah himpunan yang mengandung anggota-anggota A yang juga terdapat di dalam B. Sebagai

3 9 contoh, jika kelas A menurunkan A 1 dan A 2 (single inheritance), dengan m(a), m(a 1 ), dan m(a 2 ) adalah himpunan anggota-anggota kelas A, A 1, dan A 2 secara berurutan, maka m(a) m(a 1 ), m(a) m(a 2 ), dan m(a 1 ) m(a 2 ) = m(a). Beda (difference) Beda dari dua buah himpunan, ditulis A-B adalah himpunan yang anggotaanggotanya adalah anggota-anggota himpunan A yang tidak terdapat dalam himpunan B. Sebagai contoh, jika kelas A menurunkan kelas B, maka kelas B dapat mendefinisikan hanya anggota-anggota m(b)-m(a). Beda setangkup (symmetric difference) Beda setangkup dua buah himpunan ditulis A B, didefinisikan A B=(A B)-(A B). Hasil kali Kartesius (Cartesian product) Hasil kali kartesius dari dua himpunan, ditulis A B adalah himpunan yang anggota-anggotanya adalah pasangan berurutan dari anggota-anggota himpunan A dan B. Jika a adalah anggota A, dan b adalah anggota B, maka A B akan memiliki (a, b) sebagai anggotanya. Sebagai contoh, produksi tata bahasa bebas konteks merupakan perkalian kartesius dari himpunan nonterminal dengan himpunan string yang terdiri dari baik nonterminal maupun terminal.

4 10 Himpunan kuasa (power set) Himpunan kuasa dari himpunan A adalah himpunan dari semua himpunan bagian yang mungkin dari himpunan A, dituliskan sebagai (A) (Liu, 1985). Sebagai contoh, jika A={a,b,c} maka (A)={, {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c}} Relasi biner Relasi biner (binary relation) R terhadap A dan B adalah himpunan pasanganpasangan berurutan antara anggota-anggota himpunan A dan himpunan B. Dengan demikian R A B. Jika a A, dan b B, dan (a, b) R, maka dapat dituliskan sebagai a R b (Liu, 1985). Relasi biner pada A adalah relasi biner anggota-anggota himpunan A terhadap anggota-anggota himpunan A itu sendiri. Relasi biner pada sebuah himpunan dapat memiliki sifat-sifat sebagai berikut: Relasi refleksif Sebuah relasi R pada A disebut refleksif jika untuk setiap a A, (a, a) R. Relasi irefleksif Sebuah relasi R pada A disebut irefleksif jika untuk setiap a A, (a, a) R.

5 11 Relasi simetrik Sebuah relasi R pada A disebut simetrik jika untuk setiap a, b A, jika (a, b) R, maka (b, a) R juga. Relasi antisimetrik Sebuah relasi R pada A disebut antisimetrik jika untuk setiap a, b A, jika (a, b) R, maka (b, a) R hanya berlaku jika a=b. Produksi tata bahasa haruslah bersifat antisimetrik karena jika tidak maka dapat terjadi suatu nonterminal diuraikan dan direduksi kembali. Relasi transitif Sebuah relasi R pada A disebut transitif jika untuk setiap a, b, c A, jika berlaku (a, b) R dan (b, c) R, maka haruslah berlaku (a, c) R. Contoh relasi transitif adalah relasi < dan > pada bilangan bulat, juga relasi reduksi string oleh sebuah tata bahasa. Relasi ekivalen Suatu relasi disebut relasi ekivalen jika relasi tersebut memiliki gabungan sifat refleksif, simetrik, dan transitif. Contoh dari relasi ekivalen adalah relasi = pada persamaan aljabar Penutup (closure) Misalkan P adalah sebuah himpunan sifat-sifat relasi. Jika R* adalah penutup-p (P closure) dari relasi R, maka R* R, dan R* memiliki sifat-sifat P. Sebagai contoh, terdapat relasi # sedemikian hingga:

6 12 a # (false or a) # a (true or a) # true Relasi ini merupakan evaluasi dari ekspresi yang terdiri dari false, true, dan operator or yang dituliskan di antara tanda kurung. Relasi # tidaklah refleksif karena tidak terdapat a # a. Jika $ adalah penutup refleksif (reflexive closure) dari #, maka untuk $ akan berlaku: a $ (false or a) $ a (true or a) $ true a $ a Dengan demikian relasi $ memungkinkan untuk sebuah ekspresi tidak dievaluasi, karena (false or true) $ (false or true). Relasi $ tidaklah simetrik. Didefinisikan % sebagai penutup simetrik dari $. Dengan demikian % adalah penutup simetrik-refleksif (symmetric-reflexive closure) dari #, dan bagi % akan berlaku: a, b % (false or a) % a (true or a) % true a % a a % b b % a

7 13 Relasi % tidak hanya mengevaluasi suatu ekspresi, melainkan dapat mengembangkan suatu ekspresi menjadi ekspresi yang lebih kompleks, misalnya (true or true) dapat menjadi (false or (true or true)). Penambahan sifat transitif terhadap % menyebabkan ekspresi dapat dievaluasi ataupun dikembangkan secara langsung, sementara akan membutuhkan lebih dari satu langkah pada relasi %. Jika > adalah penutup transitif (transitive-closure) dari %, atau merupakan penutup refleksif-simetrik-transitif (reflexive-symmetrictransitive closure) dari #, maka akan berlaku: a, b > (false or a) > a (true or a) > true a > a a > b b > a a > b b > c a > c Relasi dan penutup berguna dalam mendefinisikan aturan-aturan produksi suatu tata bahasa, proses reduksi suatu string, serta evaluasi suatu ekspresi. Penutup transitif (transitive closure) berguna untuk membangkitkan string dari sebuah nonterminal, dan reduksi string Fungsi Fungsi f yang memetakan himpunan A kepada B adalah himpunan bagian dari A B. Jika a A, maka hanya ada tepat satu anggota f yang mengandung a.

8 Bahasa Pemrograman Kategori bahasa pemrograman Pada umumnya bahasa pemrograman dapat dibagi menjadi empat kategori: Bahasa pemrograman fungsional Bahasa pemrograman logik Bahasa pemrograman imperatif Bahasa pemrograman berorientasi objek Bahasa fungsional dan logik tidak akan dibahas di sini Bahasa pemrograman imperatif Elemen terkecil yang dapat dieksekusi dalam bahasa pemrograman imperatif adalah sebuah perintah. Perintah ini mengubah state awal menjadi state akhir. State awal Program State akhir Gambar 2.1 Perubahan state awal menjadi state akhir (sumber: Morgan (1994, p4)) Sebuah program dalam bahasa imperatif tersusun dari perintah-perintah yang masing-masing bertujuan untuk mengubah suatu prakondisi (precondition) atau state awal menjadi paskakondisi (postcondition) atau state akhir. Sebuah state merupakan kumpulan variabel-variabel yang secara konkret pada komputer merupakan suatu sel memori tertentu, yang dapat berisi suatu nilai. Dengan demikian perintah assignment, yaitu mengasosiasikan suatu variabel dengan nilai tertentu, menjadi sangat dominan dalam bahasa imperatif.

9 15 B. Komponen-komponen bahasa pemrograman imperatif Berikut ini akan dijelaskan komponen-komponen bahasa pemrograman imperatif. Beberapa komponen mutlak ada (seperti nama), beberapa yang lain bisa dihilangkan, tetapi akan mengurangi readability dan writability suatu program. Nama Nama adalah barisan karakter yang diasosiasikan dengan suatu entiti dalam sebuah program. Hal-hal yang harus dipertimbangkan mengenai nama: Karakter-karakter yang diijinkan untuk membentuk nama. Mengijinkan karakter-karakter aneh akan mengurangi readability dan writability. Panjang maksimum yang diijinkan untuk nama dapat menurunkan readability jika terlalu panjang atau terlalu pendek. Pembedaan huruf besar dan kecil Kata-kata baku (reserved words), yaitu kata-kata yang tidak boleh didefinisikan ulang dalam program. Variabel Variabel adalah sebuah nama yang diasosiasikan dengan sel memori tertentu. Atribut-atribut variabel yang penting diperhatikan adalah: Alamat/referensi memori yang ditunjuk oleh nama variabel tersebut Tipe data, Nilai, yaitu isi dari sel memori yang ditunjuknya Masa aktif variabel (lifetime).

10 16 Static binding dan dynamic binding. Static type binding dan dynamic type binding. Tipe data Tipe data berkaitan dengan nilai apa yang dapat diasosiasikan dengan sebuah variabel, dan operasi-operasi apa yang dapat dilakukan terhadap variabel tersebut. Sebagai contoh, sebuah variabel dengan tipe data integer pada mesin 32-bit diijinkan untuk memiliki nilai hingga dan operasioperasi yang diijinkan adalah seperti penjumlahan, pengurangan, perkalian, dan beberapa operasi lainnya. Contoh lainnya, dalam bahasa Pascal jika a dan b adalah variabel bertipe integer, maka a+b berarti menjumlahkan kedua nilai yang dimiliki a dan b. Lain halnya jika a dan b bertipe string, a+b akan menggabungkan keduanya. Tipe data ordinal adalah tipe data untuk merepresentasikan elemenelemen yang terurut (Simons, 2002). Assignment Assignment adalah pengubahan nilai suatu variabel, yang secara fisik berarti mengubah isi dari sel memori yang ditunjuk oleh variabel yang bersangkutan. Ekspresi Ekspresi merupakan barisan yang dibentuk dari kombinasi operator dan operand. Ekspresi merupakan suatu mekanisme pengiriman nilai dalam serangkaian proses.

11 17 Struktur kendali (control structure) Struktur kendali (control structure) memungkinkan pengendalian alur program sehingga alur program dapat memiliki lebih dari satu kemungkinan. Struktur kendali yang mendasar adalah: Seleksi dan lompatan Suatu pemrograman imperatif dapat memiliki hanya dua struktur kendali primitif, yaitu seleksi (selection) dan lompatan (jump). Kedua struktur kendali primitif ini saling ortogonal, dapat dikombinasikan untuk membentuk struktur kendali lain seperti perulangan, dan sebagainya. Bagaimana pun, penggunaan lompatan, yang biasanya dinamakan goto, sangat menyulitkan pembacaan program jika terlampau banyak digunakan (Djikstra, 1968). Perulangan Struktur perulangan bertujuan untuk mengulang suatu blok statement. Struktur perulangan dapat dibentuk oleh seleksi dan lompatan. Ada tiga macam bentuk perulangan yang sering digunakan dalam bahasa pemrograman imperatif: a. Logical posttest, yaitu perulangan do..while, atau repeat..until dalam bahasa Object Pascal, mengerjakan suatu blok statement, dan ketika blok tersebut selesai dikerjakan, program akan menguji suatu kondisi. Jika kondisi terpenuhi, maka blok akan dikerjakan kembali. Paling sedikit satu kali blok statement akan

12 18 dikerjakan. Pada perulangan jenis ini pengujian kondisi diletakkan pada akhir blok. b. Logical pretest, yaitu perulangan while..do, menguji suatu kondisi, jika kondisi terpenuhi, maka blok akan dikerjakan. Selesai mengerjakan blok tersebut, kondisi diuji kembali. Dengan demikian dimungkinkan untuk tidak mengerjakan blok samasekali. Pada perulangan jenis pengujian dilakukan pada awal blok. c. Counter controlled, biasanya dalam bentuk perulangan for, mengulang suatu blok statement dengan menggunakan counter. Dalam bahasa C# terdapat foreach, yang tidak menggunakan counter, melainkan membaca satu per satu elemen array. Subprogram Subprogram adalah bagian dari program yang berdiri sendiri, sebagai abstraksi dari proses. Literal Literal adalah representasi data secara langsung dalam sebuah program merupakan sebuah literal karena merepresentasikan data Literal yang umum terdapat dalam bahasa pemrograman adalah integer, string, dan floating-point Bahasa pemrograman berorientasi objek Bahasa pemrograman berorientasi objek menyediakan kemampuan untuk abstraksi bagi data dan proses, yang disatukan dalam sebuah tipe data abstrak yang disebut kelas.

13 19 Enkapsulasi Setiap data dan operasi yang berkaitan dijadikan satu dalam sebuah kelas, sehingga data yang berkaitan tidak tersebar dan mudah ditemukan, karena diasosiasikan dengan suatu objek tertentu. Inheritance Inheritance atau penurunan dalam OOP berarti menghasilkan kelas baru dengan sifat-sifat yang dimiliki oleh kelas induknya (base class). Jika m(a) adalah himpunan anggota-anggota kelas A, dan i(a) adalah himpunan objek-objek yang mungkin diinstansiasikan dari A, dibedakan berdasarkan state yang dimilikinya. Jika A + adalah kelas turunan A, maka m(a) m(a + ). Dan i(a + ) i(a). Jika sifat-sifat dua atau lebih kelas dapat digabungkan sebagai kelas baru, hal ini disebut multiple inheritance. Multiple inheritance dipakai dalam C++, tetapi dapat menimbulkan beberapa masalah, seperti masalah penamaan metoda yang sama dari kedua kelas induk, sehingga multiple inheritance tidak banyak dipakai dalam perancangan bahasa-bahasa pemrograman. Polymorfisme dan dynamic binding Polimorfisme (polymorphism) mengijinkan suatu variabel dengan tipe suatu kelas untuk merepresentasikan objek kelas turunannya. Beberapa metoda dapat bersifat polimorfik (polymorphic), dalam arti nama metoda yang sama dari suatu kelas dapat memiliki implementasi yang berbeda dari

14 20 metoda kelas induknya. Dengan demikian dengan polimorfisme dapat dilakukan pengiriman pesan pada suatu objek tanpa harus diketahui tipe objek tersebut. Polimorfisme di dalam kode tujuan diimplementasikan dengan dynamic binding. Sebagai contoh dalam dunia nyata, kelas binatang merupakan kelas induk dari kelas mamalia dan kelas serangga. Karena semua binatang dapat berpindah tempat, maka pindahtempat merupakan salah satu metoda dalam kelas binatang. Baik mamalia maupun serangga memiliki metoda pindahtempat juga. Walaupun begitu, cara mamalia berpindah tempat berbeda dengan cara serangga berpindah tempat. Dengan demikian, metoda pindahtempat bersifat polimorfik. A. Komponen-komponen bahasa pemrograman berorientasi objek Kelas Kelas adalah sebuah template dari objek. Sebuah kelas adalah sebuah tipe data abstrak yang menyatukan data dengan proses. Data dinyatakan sebagai field, proses dinyatakan dalam metoda (method). Dengan demikian suatu kelas merupakan wujud dari enkapsulasi. Jika hendak dibuat suatu kelas yang memiliki metoda-metoda yang sama dengan suatu kelas lain, kelas baru ini dapat diturunkan dari kelas yang lain tersebut, sehingga tidak perlu mendefinisikan ulang metoda-metoda yang hendak dipakai. Hal ini merupakan wujud dari inheritance.

15 21 Kelas abstrak (abstract class) adalah kelas yang tidak berisi implementasi yang lengkap (samasekali tidak berisi implementasi jika benar-benar abstrak), berguna sebagai template bagi pembangunan kelas-kelas lain yang fungsinya lebih spesifik. Hal ini sangat berguna dalam kaitan dengan polimorfisme. Antarmuka (Interface) Antarmuka (interface) berlaku sebagai kelas abstrak, yang tidak memiliki implementasi apa pun. Hanya memperkenalkan operasi-operasi tanpa mendefinisikan bagaimana seharusnya operasi tersebut dilakukan. Antarmuka harus diimplementasikan oleh suatu objek. Suatu variabel antarmuka dapat diasosiasikan dengan objek apa pun yang mengimplementasikan antarmuka tersebut. Field Field adalah variabel-variabel yang merupakan anggota kelas, diasosiasikan dengan data tertentu. Metoda (method) Metoda (method) adalah subprogram yang disatukan dalam sebuah kelas. Metoda menunjukkan operasi yang dapat dilakukan terhadap suatu objek. Dengan kesatuan metoda dan field dalam sebuah objek, penulis program hanya perlu mengetahui operasi apa yang dapat dilakukan terhadap sebuah objek, dan data apa yang dapat diambil dari objek tersebut. Pemrogram tidak perlu mengetahui detail proses yang dilakukan oleh suatu objek.

16 22 B. Visibilitas Visibilitas memberikan batasan-batasan akses terhadap sebuah anggota kelas, berguna untuk menjaga agar informasi yang tidak diperlukan oleh objek lain tidak dapat diakses, dan memberi kemungkinan operasi-operasi yang jelas bagi objek lain. Ada tiga macam visibilitas yang digunakan secara umum: Private, anggota-anggota kelas yang tidak dapat diakses selain oleh kelas itu sendiri. Protected, anggota yang didefinisikan dalam sebuah kelas dapat diakses dalam kelas turunannya. Public, anggota sebuah objek dapat diakses oleh objek lain. Tidak semua bahasa pemrograman menggunakan ketiganya. Beberapa bahasa pemrograman bahkan memiliki konsep yang berbeda-beda terhadap masing-masing visibilitas tersebut. Sebagai contoh, visibilitas private dalam C++ berarti dapat diakses oleh semua instance dari kelas yang sama, sedangkan dalam Delphi anggota kelas yang bersifat private dapat diakses oleh kelas lainnya dalam satu unit Kriteria evaluasi bahasa pemrograman Seperti telah disinggung dalam bab pendahuluan, ada tiga kriteria dalam menilai baik tidaknya suatu bahasa pemrograman. Kriteria yang dipaparkan di sini sesuai dengan kriteria yang dipaparkan oleh Sebesta (2002). Masing-masing tidak diukur secara kuantitatif.

17 23 A. Readability Readability adalah mengenai mudah tidaknya suatu program yang ditulis dalam bahasa pemrograman tertentu untuk dapat dibaca dan dipahami maksudnya. B. Writability Writability adalah mengenai mudah tidaknya menuliskan suatu program dalam bahasa pemrograman tertentu. Hal ini berkaitan dengan fitur-fitur yang disediakan. Semakin sedikit fitur-fitur yang disediakan, pemrogram harus membangun sendiri komponen-komponen yang mensimulasikan berbagai keperluannya. C. Reliability Reliability atau reliabilitas menunjukkan bahwa suatu program yang ditulis dalam suatu bahasa pemrograman dapat melakukan tugasnya dengan baik dalam berbagai macam kondisi. Reliabilitas yang tinggi mendukung kemudahan dalam pengembangan suatu software. Readability dan writability menentukan juga reliabilitas suatu bahasa pemrograman. D. Karakteristik yang berpengaruh pada masing-masing kriteria Karakteristik-karakteristik suatu bahasa pemrograman mempengaruhi ketiga kriteria yang telah disebutkan sebelumnya. Simplisitas Semakin sederhana suatu bahasa pemrograman, semakin sedikit fitur-fitur primitifnya. Semakin banyak fitur akan memaksa pemrogram untuk menghafalkan

18 24 banyak konstrak (penulisan) yang sebenarnya dapat disederhanakan. Jika terlampau banyak, akan mengakibatkan pemrogram hanya mempelajari sebagian dari bahasa pemrograman tersebut. Walaupun demikian, jumlah fitur yang terlalu sedikit akan menyebabkan penulisan program semakin panjang. Ortogonalitas Ortogonalitas dalam bahasa pemrograman menunjukkan bahwa beberapa konstrak-konstrak primitif dapat dikombinasikan membentuk struktur yang lebih kompleks. Ortogonalitas dan simplisitas saling terkait satu sama lain dalam menentukan readability dan writability. Karena semakin banyak fitur primitif yang saling ortogonal justru menyebabkan program semakin kompleks. Program yang kompleks sukar dibaca maupun ditulis. Idealnya, sebuah bahasa pemrograman memiliki sedikit fitur primitif yang seluruhnya saling ortogonal. Struktur kendali Jika suatu bahasa pemrograman hanya menyediakan struktur kendali if dan goto, misalnya, maka walaupun simplisitasnya tinggi dan ortogonalitasnya tinggi (if dan goto dapat digunakan untuk membangun struktur kendali yang lebih kompleks), program akan menjadi sukar dibaca. Penyediaan struktur kendali yang cukup akan meningkatkan readibiliy dan writability sebuah bahasa pemrograman. Umumnya, struktur kendali seleksi if..then..else dan switch, struktur perulangan pretest, posttest, dan counter, serta procedure call cukup untuk memenuhi kebutuhan pemrograman.

19 25 Tipe data dan struktur Setidaknya suatu bahasa pemrograman imperatif harus menyediakan tipe data primitif integer, floating-point, string, dan boolean. Penggunaan tipe data merupakan hal yang penting untuk meningkatkan readability dan writability. Katakanlah sebuah bahasa pemrograman tidak mengenal tipe data string. String harus diemulasikan dengan menggunakan integer array. Maka untuk menuliskan string Halo saja kita perlu menuliskan (0x48, 0x61, 0x6C, 0x6F). Hal ini jelas sangat menyulitkan. Selain terdapatnya tipe data primitif, terdapatnya konstrak untuk struktur data sangat meningkatkan readability dan writability. Struktur data record memungkinkan pemrogram untuk menyatukan berbagai variabel dalam sebuah variabel lain, sedangkan array memudahkan pemrogram untuk menyatukan data dalam jumlah besar. Dalam OOP kelas merupakan struktur yang menggabungkan data dan proses. Disain sintaks Disain sintaks berkaitan dengan bentuk elemen-elemen dasar suatu bahasa, mencakup disediakannya kata-kata kunci yang cukup untuk merepresentasikan berbagai hal, kejelasan penulisan, dan sebagainya. Hal ini juga mencakup pengertian yang diasosiasikan terhadap suatu nama, seperti if untuk pencabangan, = untuk assignment, dan sebagainya.

20 26 Sebagai contoh, deklarasi metoda dalam DOGI menggunakan kata kunci method agar pembaca program dapat dengan mudah membedakannya dengan jenis anggota kelas yang lain. Abstraksi Abstraksi memungkinkan pemrogram untuk mendefinisikan berbagai struktur maupun operasi, tanpa harus mengetahui bagaimana implementasinya. Dukungan terhadap abstraksi yang umum ada dalam bahasa pemrograman adalah subprogram, kelas abstrak dan interface. Ekspresivitas Ekspresivitas berkaitan dengan fitur-fitur yang memungkinkan pemrogram untuk menggantikan cara penulisan yang kompleks dengan yang lebih sederhana. Sebagai contoh, walaupun struktur perulangan for dapat diemulasikan dengan while..do, tetapi struktur for lebih nyaman digunakan untuk perulangan yang membutuhkan variabel penghitung. Bahasa DOGI mendukung pendefinisikan sendiri penulisan yang paling intuitif untuk melakukan operasi terhadap suatu objek. Type checking Type checking memungkinkan pendeteksian kesalahan lebih dini, yaitu pada waktu kompilasi. Assignment dua variabel yang memiliki tipe data yang saling tidak kompatibel dapat menimbulkan masalah serius jika dapat dikompilasi. Karena itu sebaiknya kompiler memberitahukan kesalahan ini pada waktu kompilasi. Hal ini lebih berkaitan dengan masalah reliability.

21 27 Penanganan Kesalahan (Exception handling) Suatu program harus dapat memastikan bahwa setiap kesalahan yang terjadi pada waktu program berjalan (run-time error) tidak akan menyebabkan program tersebut berhenti kecuali jika kesalahan tersebut terlalu fatal. Karena itu suatu program perlu menyediakan sistem penanganan kesalahan (exception handler). Suatu bahasa pemrograman dapat menyediakan konstrak khusus bagi penanganan kesalahan. Hal ini akan meningkatkan reliability. DOGI belum menyediakan penangan kesalahan. Aliasing Aliasing dapat terjadi jika dua buah nama menunjuk pada suatu hal yang sama (secara numerik). Sebagai contoh, variabel a dan b bukan merupakan pointer maupun reference, tetapi memiliki lokasi memori yang sama. Dengan demikian, setiap perubahan pada b akan menyebabkan a berubah. Hal demikian akan mengurangi reliability. 2.3 Teori bahasa dan Otomata Sebuah bahasa adalah sebuah himpunan dari barisan simbol-simbol, yang disebut string. Dalam bahasa Indonesia, misalnya, simbol-simbol adalah keduapuluhenam abjad dan angka, ditambah tanda baca. Kombinasi simbol-simbol tersebut yang disusun dalam sebuah barisan dapat membentuk kalimat-kalimat dalam bahasa Indonesia. Untuk seterusnya simbol-simbol akan disebut abjad.

22 28 Himpunan abjad suatu bahasa biasanya diberi notasi Σ. Suatu string kosong adalah string yang tidak mengandung abjad apa pun, dinotasikan sebagai ε. Jumlah simbol-simbol yang dipakai untuk membentuk string s disebut panjang string s, dituliskan dengan notasi s. Karena string ε tidak terdiri dari abjad apa pun, maka ε =0. Bahasa yang terdiri dari semua kemungkinan string yang dapat dibentuk berdasarkan setiap abjad dalam Σ disebut bahasa universal dari Σ, diberi notasi Σ*. Sebagai contoh, jika Σ = { a, o, u } maka Σ* = { ε, a, o, u, aa, ao, au, oa, oo, ou, ua, uo, uu, aaa, aao, }. Dengan demikian hubungan antara sebuah bahasa L berdasarkan abjad Σ dengan bahasa universal dari Σ adalah L Σ* Tata bahasa (grammar) Biasanya dalam literatur-literatur selalu dipisahkan definisi formal antara tata bahasa jenis yang satu dengan yang lain. Karena definisi semua jenis tata bahasa dapat digeneralisasikan, dalam skripsi ini hanya akan dituliskan satu definisi yang berlaku untuk semuanya. Suatu tata bahasa adalah merupakan 4-tupel G = (N, T, P, S) (Hopcroft et al., 1979), dan bahasa yang dibentuk oleh G disebut bahasa L(G). Masing-masing dijelaskan sebagai berikut. N adalah himpunan simbol-simbol nonterminal T adalah himpunan simbol-simbol terminal P adalah himpunan produksi-produksi atau aturan pengganti, dengan P (N T)* (N T)*

23 29 S adalah simbol awal (start symbol), yaitu S N Digunakan untuk menunjukkan bahwa sebuah produksi yang diawali dengan S harus menjadi produksi yang pertama kali dipilih. Jika α, β dan γ adalah anggota-anggota dari (N T)*, maka produksi (α, β) digunakan untuk mengganti kemunculan α dalam γ dengan β. Sebagai contoh: Sebuah tata bahasa G = (N, T, P, S) dengan N = { E } T = { 0, 1, 2, +, - } P = { (E, E+E), (E, E-E), (E, 0), (E, 1), (E, 2) } S = E Dengan demikian tata bahasa G akan membentuk suatu bahasa L(G) yang secara esensial adalah himpunan string, dapat dituliskan dalam batasan-batasan berikut ini. 0, 1, 2 L(G) a L(G) b L(G) a+b L(G) a L(G) b L(G) a-b L(G) Contoh beberapa anggota L(G) adalah 0, , dan

24 30 Biasanya produksi-produksi dalam P tidak dinyatakan dalam bentuk pasangan berurutan, melainkan dengan notasi produksi menggunakan tanda panah ( ). Dengan demikian produksi P di atas dapat dituliskan: E E + E (1) E E E (2) E 0 (3) E 1 (4) E 2 (5) Agar perbedaan nonterminal dengan terminal dapat terlihat dengan jelas, dalam skripsi ini terminal selalu ditulis dengan huruf tebal, sedangkan nonterminal tidak. Notasi digunakan untuk mengganti bagian dari string γ dengan salah satu produksi dalam P. Notasi * menyatakan bahwa penggantian tersebut bisa terdiri dari beberapa langkah penggantian tunggal oleh. Relasi * adalah transitiveclosure dari relasi. Sebagai contoh untuk tata bahasa G di atas: E E + E (produksi 1) E + E + E (1) E E + E + E (2) 1 E + E + E (4) E + E (5) E (3) (4) Dengan demikian E *

25 Hirarki bahasa menurut Chomsky Ada empat jenis bahasa menurut Chomsky, yaitu: Bahasa jenis-0 atau bahasa tak terbatas (unrestricted language) Bahasa jenis-0 dibentuk dari tata bahasa yang aturan-aturan produksinya tidak dibatasi. Bahasa jenis-1 atau bahasa sensitif konteks (context-sensitive language) Bahasa jenis-1 dibentuk dari tata bahasa yang aturan-aturan produksinya berbentuk: α β, β α. α, β (N T)* Bahasa jenis-2 atau bahasa bebas konteks (context-free language) Bahasa jenis-2 dibentuk dari tata bahasa yang setiap produksinya berbentuk: A α A N α (N T)* Bahasa jenis-3 atau bahasa reguler (regular language) Bahasa jenis-3 dibentuk dari tata bahasa yang setiap produksinya berbentuk: A a atau A a B

26 32 atau setiap produksinya berbentuk: A a atau A B a A, B N konteks. a T* Bahasa pemrograman pada umumnya dapat dibentuk dengan tata bahasa bebas Backus-Naur Form dan Extended Backus-Naur Form Bentuk Backus-Naur (Backus-Naur Form) hampir sama dengan tata bahasa bebas konteks (Sebesta, 2002, p110). Karena nonterminal-nonterminal dalam sebuah spesifikasi bahasa pemrograman sangat banyak, maka tidak cukup menuliskan setiap nonterminal menggunakan satu huruf. Karena itu dalam spesifikasi bahasa setiap nonterminal dalam BNF sering dituliskan di dalam tanda <..>, walaupun notasi ini tidak selalu dipakai. Sebagai contoh, salah satu produksi E pada contoh tata bahasa sebelumnya dapat dinyatakan dengan <ekspresi> <ekspresi> + <ekspresi>. Extended Backus-Naur Form (EBNF) adalah BNF yang diberi tambahan notasi untuk mempersingkat penulisan. Notasi-notasi tersebut dijelaskan sebagai berikut. Bagian optional Dituliskan di antara tanda kurung siku, menunjukkan bahwa bagian tersebut boleh tidak ada.

27 33 Contoh: <seleksi> if ( <ekspresi_boolean> ) <statement> [ else <statement> ] merupakan kependekan dari <seleksi> if ( <ekspresi_boolean> ) <statement> <seleksi> if ( <ekspresi_boolean> ) <statement> else <statement> Bagian yang dapat diulang Dituliskan di antara kurung kurawal, merupakan bagian yang dapat ada atau tidak, dan jika ada boleh lebih dari satu. Contoh: <exprs> <expr> {, <expr> } merupakan kependekan dari: <exprs> <expr> <nextexpr> <nextexpr> ε, <exprs> Pemilihan Jika terdapat (a b c d) maka penggantian dapat memilih antara satu dari keempat produksi tersebut. Contoh: <floatexp> <float> E (+ -) <integer> Merupakan kependekan dari: <floatexp> <float> E + <integer> <float> E - <integer>

28 Otomata Otomata dapat digunakan untuk mengenali bahasa-bahasa. Jenis otomata yang akan dibahas di sini adalah otomata berhingga nondeterministik (nondeterministic finite automata atau NFA), otomata berhingga deterministik (deterministic finite automata atau DFA), dan otomata pushdown (pushdown automata atau PDA). A. Otomata berhingga deterministik Otomata berhingga deterministik atau DFA adalah 5-tupel (Q, Σ, q 0, F, δ), masing-masing dijelaskan sebagai berikut: Q adalah himpunan berhingga dari state Σ adalah himpunan berhingga abjad-abjad q 0 Q adalah state awal (initial state) F Q adalah himpunan state yang merupakan state akhir (final states) δ: Q Σ Q adalah fungsi yang memetakan pasangan state dan abjad pada state lainnya, disebut sebagai fungsi transisi. DFA dapat digunakan untuk mengenali bahasa jenis-3 atau bahasa reguler. B. Otomata berhingga nondeterministik Otomata berhingga nondeterministik atau NFA adalah 5-tupel (Q, Σ, q 0, F, ), masing-masing dijelaskan sebagai berikut: Q adalah himpunan berhingga dari state Σ adalah himpunan berhingga abjad-abjad q 0 Q adalah state awal (initial state)

29 35 F Q adalah himpunan state yang merupakan state akhir (final states) δ: Q Σ (Q) adalah fungsi yang memetakan pasangan state dan abjad pada sebuah himpunan state, disebut sebagai fungsi transisi. NFA dapat digunakan untuk mengenali bahasa jenis-3 atau bahasa reguler. Dapat dibuktikan bahwa sebuah NFA memiliki sebuah DFA padanannya (Hopcroft et al., 1979, pp22-23). Dengan demikian jika M N adalah sebuah NFA, dan M D adalah sebuah DFA, dan R adalah sebuah tata bahasa reguler, maka L(M N ) = L(M D ) = L(R). C. Otomata pushdown Otomata pushdown atau PDA adalah 7-tupel (Q, Σ, Γ, δ, q 0, Z 0, F), masingmasing dijelaskan sebagai berikut: Q adalah himpunan berhingga dari state Σ adalah himpunan berhingga abjad-abjad Γ adalah himpunan berhingga simbol-simbol stack q 0 Q adalah state awal (initial state) Z 0 Γ adalah simbol awal stack (start symbol) F Q adalah himpunan state yang merupakan state akhir (final states) δ: Q (Σ {ε}) Γ Q Γ*, adalah fungsi transisi PDA digunakan untuk mengenali bahasa bebas konteks. Untuk tata bahasa bebas konteks G terdapat PDA M P sedemikian hingga L(M P ) = L(G).

30 Teknik kompilasi Proses kompilasi Kompilasi adalah penerjemahkan suatu kode program dalam sebuah bahasa menjadi kode program dalam bahasa yang lain, yang akan dieksekusi oleh sebuah komputer. Komputer di sini tidak perlu merupakan suatu hardware, tetapi bisa merupakan sebuah komputer semu (virtual computer), yakni sebuah program yang berlaku sebagai sebuah komputer. Sebagai contoh, object code hasil kompilasi program yang ditulis dalam bahasa C++ akan dijalankan langsung oleh sistem operasi. Sedangkan bytecode hasil kompilasi program dalam bahasa Java akan dijalankan oleh Java Virtual Machine. Dalam hal ini sistem operasi dan Java Virtual Machine berlaku sebagai komputer semu. Urut-urutan pengerjaan kompilasi adalah seperti yang terlihat pada diagram berikut:

31 37 Kode sumber Penganalisis Leksikal Penganalisis Sintaks Tabel Simbol Penganalisis semantik Pembangkit kode antara Optimasi Pembangkit kode tujuan Kode Tujuan Gambar 2.2 Proses kompilasi (sumber: Sebesta (2002)) Sebuah kode program dalam bahasa sumber akan dibaca per karakter oleh penganalisis leksikal (lexical analyzer), untuk dimengerti sebagai satuan-satuan kecil yang disebut lexeme. Penganalisis leksikal menggunakan tata bahasa reguler yang mengimplementasikan DFA untuk membedakan setiap lexeme. Tidak semua karakter harus diperhatikan, seperti karakter-karakter spasi dan line feed. Penganalisis leksikal untuk DOGI dibuat menggunakan program Flex.

32 38 Barisan lexeme dikirim oleh penganalisis leksikal kepada penganalisis sintaks (syntax analyzer). Tugas dari penganalisis sintaks adalah membentuk pohon pengurai untuk memeriksa keabsahan dari struktur program yang dibuat. Proses ini juga disebut dengan penguraian atau parsing. Penganalisis leksikal biasanya merupakan implementasi dari DPDA dan struktur sintaks bahasa sumber dirancang agar memenuhi tata bahasa bebas konteks deterministik. Penganalisis sintaks untuk DOGI dibuat menggunakan program Bison. Jika penganalisis sintaks memeriksa struktur, maka penganalisis semantik (semantic analyzer) memeriksa pengertian dari program tersebut. Sebagai contoh, pada potongan program C++ berikut ini: char *str; int index; str = index + str; Sekalipun secara sintaks benar, namun secara semantik salah, karena str tidak kompatibel dengan index. Biasanya penganalisis semantik tidak dipisahkan dengan pembangkit kode antara (intermediate code generator). Pembangkit kode antara akan menghasilkan kode dalam bahasa antara yang berbeda dari bahasa sumber maupun tujuan. Kode antara berguna dalam optimasi, karena kode tujuan biasanya lebih sulit untuk dioptimalkan. Kode antara akan diterjemahkan oleh pembangkit kode (code generator) menjadi kode dalam bahasa tujuan.

33 39 Keseluruhan proses yang telah disebutkan di atas memerlukan bantuan tabel simbol (symbol table), yang berisi informasi mengenai simbol-simbol yang digunakan dalam kode sumber Semantik operasional Aturan semantik adalah aturan yang menggambarkan arti dari setiap produksi dalam sebuah bahasa pemrograman. Bentuk aturan semantik yang umum dipakai dalam pembuatan kompiler adalah semantik operasional. Semantik operasional mendeskripsikan arti dari sebuah produksi dengan serangkaian kode yang akan dieksekusi oleh suatu mesin virtual. Semantik operasional digunakan dalam input file Bison, untuk mendeskripsikan aksi yang akan dilakukan berkaitan dengan produksi tertentu. Sebagai contoh, produksi tata bahasa: statement subprogram { call subprogram.address } Menunjukkan bahwa produksi tersebut memiliki arti operasi call subprogram.address.

BAB IV HASIL PENELITIAN DAN PENERAPAN

BAB IV HASIL PENELITIAN DAN PENERAPAN 87 BAB IV HASIL PENELITIAN DAN PENERAPAN 4.1 Karakteristik bahasa pemrograman DOGI Berikut ini akan dijabarkan karakteristik-karakteristik bahasa pemrograman DOGI yang mempengaruhi readability, writability

Lebih terperinci

BAB I PENDAHULUAN. Sebesta (2002) memaparkan kriteria evaluasi terhadap sebuah bahasa

BAB I PENDAHULUAN. Sebesta (2002) memaparkan kriteria evaluasi terhadap sebuah bahasa BAB I PENDAHULUAN 1.1 Latar Belakang Masalah Sebesta (2002) memaparkan kriteria evaluasi terhadap sebuah bahasa pemrograman, yaitu readability, writability, dan reliability. Sebesta juga mendaftar karakteristik-karakteristik

Lebih terperinci

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

UNIVERSITAS BINA NUSANTARA. Program Ganda Teknik Informatika Matematika Skripsi Sarjana Program Ganda Semester Genap 2003/2004 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

Lebih terperinci

ALGORITMA PEMROGRAMAN 1C SINTAKS

ALGORITMA 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 terperinci

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

SINTAKS. 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 terperinci

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

SINTAKS. 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 terperinci

SUMBER BELAJAR PENUNJANG PLPG

SUMBER 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 terperinci

Teori Bahasa & Otomata

Teori Bahasa & Otomata Teori Bahasa & Otomata Pendilkom/Ilkom Universitas Pendidikan Indonesia 1 Daftar Isi Bab 1 Pendahuluan Bab 2 Matematika Dasar Bab 3 Dasar-Dasar Teori Bahasa Bab 4 Representasi Bahasa Bab 5 Klasifikasi

Lebih terperinci

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

Syntax, 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 terperinci

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

Bahasa adalah kumpulan kalimat. Kalimat adalah rangkaian kata. Kata adalah komponen terkecil kalimat yang tidak bisa dipisahkan lagi. Konsep dan Notasi Bahasa Teori Bahasa Bahasa adalah kumpulan kalimat. Kalimat adalah rangkaian kata. Kata adalah komponen terkecil kalimat yang tidak bisa dipisahkan lagi. Contoh : Si Kucing kecil menendang

Lebih terperinci

TEKNIK KOMPILASI Konsep & Notasi Bahasa

TEKNIK KOMPILASI Konsep & Notasi Bahasa TEKNIK KOMPILASI Konsep & Notasi Bahasa Sekolah Manajemen Informatika dan Komputer (STMIK) Palangkaraya 2012 Konsep dan Notasi bahasa Teknik Kompilasi merupakan kelanjutan dari konsepkonsep yang telah

Lebih terperinci

Tata Bahasa Kelas Tata Bahasa. Konsep Bahasa (1)

Tata Bahasa Kelas Tata Bahasa. Konsep Bahasa (1) Tata Bahasa Kelas Tata Bahasa Risnawaty 2350376 Jurusan Teknik Informatika Institut Teknologi Bandung Page 1 Konsep Bahasa (1) String(kata) adalah suatu deretan berhingga dari simbol-simbol. Panjang string

Lebih terperinci

Grammar dan Tingkat Bahasa

Grammar dan Tingkat Bahasa CSG3D3 Teori Komputasi Grammar dan Tingkat Bahasa Agung Toto Wibowo Ahmad Suryan Yanti Rusmawati Mahmud Dwi Sulistiyo Kurniawan Nur Ramadhani Said Al Faraby Dede Rohidin KK Intelligence, Computing, and

Lebih terperinci

PENGEMBANGAN PROTOTIPE APLIKASI KONVERSI KODE DARI BAHASA C KE PASCAL

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 terperinci

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR BAB 3 TYPE DATA, VARIABLE DAN OPERATOR Bahasa pemrograman pada umumnya, mengenal adanya variabel yang digunakan untuk menyimpan nilai atau data. Sedangkan Java sendiri dikenal sebagai bahasa pemrograman

Lebih terperinci

Hirarki Comsky. Unrestricted. Context Sensitive Context free Regular

Hirarki Comsky. Unrestricted. Context Sensitive Context free Regular Hirarki Comsky Unrestricted Context Sensitive Context free Regular Contoh Tata Bahasa Sederhana BEGIN END ;

Lebih terperinci

TEKNIK KOMPILASI Bahasa Regular

TEKNIK KOMPILASI Bahasa Regular TEKNIK KOMPILASI Bahasa Regular Sekolah Manajemen Informatika dan Komputer (STMIK) Palangkaraya 2012 Tata bahasa reguler Sebuah bahasa dinyatakan regular jika terdapat Finite State Automata (FSA) yang

Lebih terperinci

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR 1 PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR Siti Mukaromah, S.Kom TEKNIK PENYAJIAN ALGORITMA Teknik Tulisan Structure English Pseudocode Teknik Gambar Structure Chart HIPO Flowchart 2 PSEUDOCODE Kode

Lebih terperinci

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN

PERTEMUAN 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 terperinci

TEORI BAHASA DAN AUTOMATA

TEORI 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 terperinci

Reserved words Reserved words atau keywords merupakan kata-kata spesifik digunakan oleh compiler untuk keperluan pemrograman. Contoh reserved words

Reserved words Reserved words atau keywords merupakan kata-kata spesifik digunakan oleh compiler untuk keperluan pemrograman. Contoh reserved words Comments Comments digunakan untuk memberikan keterangan/penjelasan suatu baris program. Comments tidak akan dikompilasi oleh compiler. Lambang untuk comments : - double slash ( // ) untuk memberikan penjelasan

Lebih terperinci

UNIVERSITAS GUNADARMA

UNIVERSITAS 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 terperinci

Teknik Kompiler 5. oleh: antonius rachmat c, s.kom, m.cs

Teknik 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 terperinci

Tujuan perancangan bhs program

Tujuan perancangan bhs program Tujuan perancangan bhs program Komunikasi dengan manusia Pencegahan dan deteksi kesalahan Usability Efektifitas pemrograman Compilability (mengurangi kompleksitas,mis:penggunaan bracket) Efisiensi dengan

Lebih terperinci

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

Tabel 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 terperinci

BAB 1 PENDAHULUAN. sederhana adalah kelas bahasa reguler (regular languages). Bahasa reguler dapat dengan

BAB 1 PENDAHULUAN. sederhana adalah kelas bahasa reguler (regular languages). Bahasa reguler dapat dengan BAB 1 PENDAHULUAN 1.1 Latar Belakang Dalam hierarki kelas-kelas bahasa menurut Chomsky, kelas bahasa yang paling sederhana adalah kelas bahasa reguler (regular languages). Bahasa reguler dapat dengan tepat

Lebih terperinci

TEORI BAHASA & OTOMATA (KONSEP & NOTASI BAHASA) PERTEMUAN IX Y A N I S U G I Y A N I

TEORI BAHASA & OTOMATA (KONSEP & NOTASI BAHASA) PERTEMUAN IX Y A N I S U G I Y A N I TEORI BAHASA & OTOMATA (KONSEP & NOTASI BAHASA) PERTEMUAN IX Y A N I S U G I Y A N I Konsep dan Notasi bahasa Thn 56-59 Noam chomsky melakukan penggolongan tingkatan dalam bahasa, yaitu menjadi 4 class

Lebih terperinci

2 TIPE DATA DAN VARIABEL

2 TIPE DATA DAN VARIABEL BAB 2 TIPE DATA DAN VARIABEL Kompetensi Dasar dan Indikator : Setelah mengikuti materi kuliah ini mahasiswa mampu menggunakan tipe data dan variable yang ada dalam Java, dengan indikator mahasiswa mampu:

Lebih terperinci

TIPE DATA, VARIABLE, dan OPERATOR DELPHI

TIPE 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 terperinci

BAB II VARIABEL DAN TIPE DATA

BAB II VARIABEL DAN TIPE DATA BAB II VARIABEL DAN TIPE DATA Bahasa pemrograman pada umumnya, mengenal adanya variabel yang digunakan untuk menyimpan nilai atau data. Sedangkan Java sendiri dikenal sebagai bahasa pemrograman dengan

Lebih terperinci

ALGORITMA PEMROGRAMAN 1C PENDAHULUAN KONSEP BAHASA PEMROGRAMAN

ALGORITMA PEMROGRAMAN 1C PENDAHULUAN KONSEP BAHASA PEMROGRAMAN ALGORITMA PEMROGRAMAN 1C PENDAHULUAN KONSEP BAHASA PEMROGRAMAN Indah Wahyuni KONSEP DASAR PEMROGRAMAN Program merupakan himpunan atau kumpulan instruksi tertulis yang dibuat oleh programer atau suatu bagian

Lebih terperinci

PEMROGRAMAN 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 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 terperinci

BAB II SINTAKS 2.1. SINTAKS

BAB 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 terperinci

Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya. Bahasa-bahasa yang diterima oleh suatu finite state

Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya. Bahasa-bahasa yang diterima oleh suatu finite state EKSPRESI REGULAR Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya. Bahasa-bahasa yang diterima oleh suatu finite state automata bisa dinyatakan secara sederhana

Lebih terperinci

PENDAHULUAN. Terdapat tiga topik utama di teori otomata yaitu:

PENDAHULUAN. Terdapat tiga topik utama di teori otomata yaitu: PENDAHULUAN Pengertian Komputer mengikuti sejumlah prosedur sistematis, atau algoritme, yang dapat diaplikasikan untuk serangkaian input (string) yang menyatakan integer dan menghasilkan jawaban setelah

Lebih terperinci

BAB II DASAR TEORI. 2.1 Kompilator

BAB II DASAR TEORI. 2.1 Kompilator 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

Lebih terperinci

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

Alat 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 terperinci

Aplikasi Rekursif dalam Analisis Sintaks Program

Aplikasi 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 terperinci

TEORI BAHASA DAN OTOMATA [TBO]

TEORI BAHASA DAN OTOMATA [TBO] TEORI BAHASA DAN OTOMATA [TBO] Ekspresi Regular (1) Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya. Bahasa-bahasa yang diterima oleh suatu finite state automata

Lebih terperinci

JAVA FUNDAMENTAL ATURAN PERKULIAHAN SILABUS

JAVA FUNDAMENTAL ATURAN PERKULIAHAN SILABUS JAVA FUNDAMENTAL Nama : Julian Chandra W Telp : 085647155605 Email : maeztro_87@yahoo.co.id Referensi : 1. Benny Hermawan. 2004. Menguasai Java 2 & Object Oriented Programming. Andi. 2. Bambang Hariyanto.

Lebih terperinci

Objek 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 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 terperinci

BEKERJA DENGAN JAVA CLASS LIBRARY

BEKERJA DENGAN JAVA CLASS LIBRARY MK. Pemrograman Berorientasi Objek BEKERJA DENGAN JAVA CLASS LIBRARY (CLASS-METHOD-OBJECT) KARMILASARI ANALOGI OBJEK DALAM DUNIA NYATA Objek di dunia nyata = Objek dalam perangkat lunak Atribut di dunia

Lebih terperinci

EKSPRESI REGULAR PADA SUATU DETERMINISTIC FINITE STATE AUTOMATA

EKSPRESI REGULAR PADA SUATU DETERMINISTIC FINITE STATE AUTOMATA Jurnal Matematika Vol.6 No., November 26 [ 63-7 ] EKSPRESI REGULAR PADA SUATU DETERMINISTIC FINITE STATE AUTOMATA Jurusan Matematika, UNISBA, Jalan Tamansari No, Bandung,46, Indonesia dsuhaedi@eudoramail.com

Lebih terperinci

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA Asep Herman Suyanto info@bambutechno.com http://www.bambutechno.com Bahasa pemrograman pada umumnya, mengenal adanya variabel yang digunakan untuk menyimpan nilai

Lebih terperinci

Proses Kompilasi. Otomata dan Pengantar Kompulasi Pertemuan 3

Proses 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 terperinci

MODUL MATA KULIAH TEORI BAHASA DAN OTOMATA DOSEN:

MODUL MATA KULIAH TEORI BAHASA DAN OTOMATA DOSEN: MODUL MATA KULIAH TEORI BAHASA DAN OTOMATA DOSEN: Mira Kania S.,ST.,MT Utami Dewi W.,S.Kom IF I. PENDAHULUAN PENDAHULUAN Komputer digunakan sebagai alat bantu untuk menyelesaikan pekerjaan(task). Dua pertanyaan

Lebih terperinci

Type Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String

Type Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String Struktur dapat diartikan sebagai suatu susunan, bentuk, pola atau bangunan. Data dapat diartikan sebagai suatu fakta, segala sesuatu yang dapat dikodekan atau disimbolkan dengan kode-kode atau lambang-lambang

Lebih terperinci

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA Tim Pengajar KU1102 - Institut Teknologi Sumatera Data Data adalah sesuatu yang belum mempunyai arti bagi penerimanya dan masih memerlukan adanya suatu

Lebih terperinci

IF-UTAMA 1. Definisi. Grammar. Definisi

IF-UTAMA 1. Definisi. Grammar. Definisi Definisi Grammar Bahasa adalah himpunan kata-kata atau kalimat yang telah disepakati, contoh : {makan, tidur, bermain, belajar} Bahasa Indonesia {shit, sheet, damn, kiss, smell} Bahasa Inggris {konichiwa,

Lebih terperinci

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

TIPE 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 terperinci

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA Tim Pengajar KU1102 - Institut Teknologi Sumatera Data Data adalah sesuatu yang belum mempunyai arti bagi penerimanya dan masih memerlukan adanya suatu

Lebih terperinci

BAB I PENGENALAN TEKNIK KOMPILASI

BAB I PENGENALAN TEKNIK KOMPILASI BAB 1 PENGENALAN TEKNIK KOMPILASI 1 BAB I PENGENALAN TEKNIK KOMPILASI TUJUAN PRAKTIKUM 1) Memahami penggolongan Bahasa Pemrograman berdasarkan tingkat ketergantungannya dengan mesin. 2) Mengetahui dan

Lebih terperinci

DEVAL GUSRION, S.KOM, M.KOM MATAKULIAH BAHASA PEMOGRAMAN JAVA LANJUTAN III

DEVAL GUSRION, S.KOM, M.KOM MATAKULIAH BAHASA PEMOGRAMAN JAVA LANJUTAN III DEVAL GUSRION, S.KOM, M.KOM MATAKULIAH BAHASA PEMOGRAMAN JAVA LANJUTAN III 2012 BAB I KONSEP DASAR JAVA Konsep Dasar Object Oriented Programming OOP di JAVA dimulai dari konsep dasar java yaitu: 1.1 Astraksi

Lebih terperinci

Teori Bahasa dan Otomata 1

Teori Bahasa dan Otomata 1 Teori Bahasa dan Otomata 1 KATA PENGANTAR Teori Bahasa dam Otomata merupakan matakuliah wajib yang harus diambil oleh seluruh mahasiswa jurusan Teknik Indonesia di lingkungan Sekolah Tinggi Teknologi Indonesia.

Lebih terperinci

MODUL 1: PENGANTAR TEORI BAHASA

MODUL 1: PENGANTAR TEORI BAHASA MODUL 1: PENGANTAR TEORI BAHASA Pengantar Automata dan Bahasa Teori Pendukung Konsep Bahasa Slide 1 dari 38 PENGANTAR AUTOMATA DAN BAHASA Obyektif membahas model-model komputasi sebagai mesin abstraks

Lebih terperinci

anggota alfabet dinamakan simbol terminal atau token.

anggota alfabet dinamakan simbol terminal atau token. GRAMMAR DAN BAHASA MATERI MINGGU KE-2 TATA BAHASA Dalam pembicaraan tata bahasa, anggota alfabet dinamakan simbol terminal atau token. Kalimat adalah deretan hingga simbo-lsimbol terminal. Bahasa adalah

Lebih terperinci

TEKNIK KOMPILASI. Firrar Utdirartatmo

TEKNIK 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 terperinci

Nama : Julian Chandra W Telp :

Nama : Julian Chandra W Telp : JAVA FUNDAMENTAL Nama : Julian Chandra W Telp : 085647155605 Email : maeztro_87@yahoo.co.id julian.chand@gmail.com Referensi : 1. Benny Hermawan. 2004. Menguasai Java 2 & Object Oriented Programming. Andi.

Lebih terperinci

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. dirancang dan selanjutnya dapat diketahui gambaran dan kemampuan sistem secara

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. dirancang dan selanjutnya dapat diketahui gambaran dan kemampuan sistem secara BAB 3 ANALISIS DAN PERANCANGAN PROGRAM 3.1 Analisis Kebutuhan Sistem Analisis kebutuhan sistem merepresentasikan daftar kebutuhan sistem yang akan dirancang dan selanjutnya dapat diketahui gambaran dan

Lebih terperinci

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom

Pengantar 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 terperinci

PEMAHAMAN DASAR DASAR JAVA

PEMAHAMAN DASAR DASAR JAVA MODUL 1 PEMAHAMAN DASAR DASAR JAVA A. PENGANTAR JAVA Java Standard Development Kit (JDK/SDK) merupakan alat-alat utama bagi programmer untuk membuat dan menjalankan java. Development Kit dapat didownload

Lebih terperinci

Badiyanto, S.Kom., M.Kom. PBO java

Badiyanto, S.Kom., M.Kom. PBO java Badiyanto, S.Kom., M.Kom PBO java Apa yang Disebut Java? Bahasa pemrograman berorientasi objek murni yang dibuat berdasarkan kemampuankemampuan terbaik bahasa pemrograman objek sebelumnya (C++, Ada, Simula).

Lebih terperinci

Teknik Kompilasi. Notasi Bahasa

Teknik 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 terperinci

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO Ramos Somya Identifier Merupakan nama yang digunakan untuk menamai class, variabel, method dan interface. Aturan: - Tidak ada batasan

Lebih terperinci

Dasar Pemrograman Java

Dasar 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 terperinci

TEKNIK KOMPILASI Tony Darmanto,ST / Smt V S1 TI / STMIK WIDYA DHARMA/ Hal 1

TEKNIK 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 terperinci

SEMANTIK. Int vector[10];

SEMANTIK. Int vector[10]; SEMANTIK Sintaks mendefinisikan suatu bentuk program yang benar dari suatu bahasa. Semantik mendefinisikan arti dari program yang benar secara sintaks dari bahasan tersebut. Sebagai contoh adalah deklarasi

Lebih terperinci

Teori Bahasa Formal dan Automata

Teori Bahasa Formal dan Automata Teori Bahasa Formal dan Automata Pertemuan 3 Semester Genap T.A. 2017/2018 Rahman Indra Kesuma, S.Kom., M.Cs. T. Informatika - ITERA MENDESAIN DFA Jika di definisikan = {0, 1}, bangunlah sebuah DFA yang

Lebih terperinci

BAB V CONTEXT FREE GRAMMAR DAN PUSH DOWN AUTOMATA

BAB V CONTEXT FREE GRAMMAR DAN PUSH DOWN AUTOMATA Bab V Context Free Grammar dan Push Down Automata 26 BAB V CONTEXT FREE GRAMMAR DAN PUSH DOWN AUTOMATA TUJUAN PRAKTIKUM 1. Memahami CFG dan PDA 2. Memahami Context Free Grammar 3. Memahami Push Down Automata

Lebih terperinci

Teori Bahasa & Otomata

Teori Bahasa & Otomata Teori Bahasa & Otomata Heri Sutarno - 131410892 Pendilkom/Ilkom Universitas Pendidikan Indonesia Bandung, 2008 08/06/2010 TBO/heri/ilkom 1 Buku Bacaan - Aho, Alfred V., Ravi Sethi and Jeffrey D Ulman,

Lebih terperinci

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

Pertemuan 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 terperinci

MODUL DUA VARIABEL DAN TIPE VARIABEL

MODUL 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 terperinci

FINITE STATE MACHINE / AUTOMATA

FINITE STATE MACHINE / AUTOMATA FINITE STATE MACHINE / AUTOMATA BAHASA FORMAL Dapat dipandang sebagai entitas abstrak, yaitu sekumpulan string yang berisi simbol-simbol alphabet Dapat juga dipandang sebagai entitasentitas abstrak yang

Lebih terperinci

TEKNIK KOMPILASI Tony Darmanto,ST / Smt V S1 TI / STMIK WIDYA DHARMA/ Hal 16

TEKNIK 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 terperinci

BAB I PENDAHULUAN 1-1

BAB I PENDAHULUAN 1-1 BAB I PENDAHULUAN 1.1 Pendahuluan Ilmu komputer memiliki dua komponen utama: pertama, model dan gagasan mendasar mengenai komputasi, kedua, teknik rekayasa untuk perancangan sistem komputasi, meliputi

Lebih terperinci

TEORI BAHASA & AUTOMATA

TEORI BAHASA & AUTOMATA TEORI BAHASA & AUTOMATA Dosen: Dadang mulyana Alamat email untuk tugas: dadangstmik@gmail.com 1 Cara pengiriman tugas: Dalam subjek email tuliskan: Instansi_kelas_nama_matakuliah_jenistugas Contoh: Ahmad

Lebih terperinci

JAVA. Sekilas tentang java : FITUR JAVA :

JAVA. Sekilas tentang java : FITUR JAVA : JAVA Sekilas tentang java : Java diciptakan oleh suatu tim yang dipimpin oleh Patrick Naughton dan james gosling dalam suatu proyek dari sun Microsystem. Tujuan adalah untuk menghasilkan bahasa komputer

Lebih terperinci

BAB I TEORI BAHASA DAN AUTOMATA

BAB I TEORI BAHASA DAN AUTOMATA Bab 1 Teori Bahasa dan Automata 1 BAB I TEORI BAHASA DAN AUTOMATA TUJUAN PRAKTIKUM 1. Memahami Tentang Teori Bahasa 2. Memahami Automata dan Istilah Istilah yang terdapat dalam Automata 3. Mengerti Tentang

Lebih terperinci

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran SILABUS MATAKULIAH Revisi : 2 Tanggal Berlaku : Maret 2014 A. Identitas 1. Nama Matakuliah : A11. 54401/ Teori dan Bahasa Otomata 2. Program Studi : Teknik Informatika-S1 3. Fakultas : Ilmu Komputer 4.

Lebih terperinci

Dasar Pemrograman. Nisa ul Hafidhoh

Dasar Pemrograman. Nisa ul Hafidhoh Dasar Pemrograman Nisa ul Hafidhoh nisa@dsn.dinus.ac.id 08156114760 Rencana Kuliah W Pokok Bahasan 1 Pendahuluan 2 Notasi Algoritmik, Tipe Data 3 Perintah Dasar 4 Aksi Sekuensial 5 Analisa Kasus 6 Analisa

Lebih terperinci

Pemrograman Berorientasi Obyek. Dasar Pemrograman Java

Pemrograman Berorientasi Obyek. Dasar Pemrograman Java Pemrograman Berorientasi Obyek Dasar Pemrograman Java 1 Materi Pokok Membedakan antara valid dan invalid identifiers. Mengetahui Java technology keywords. Mengetahui 8 tipe data primitif. Mendefinisikan

Lebih terperinci

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

Teknik 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 terperinci

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

Teknik Kompiler 2. oleh: antonius rachmat c, s.kom Teknik Kompiler 2 oleh: antonius rachmat c, s.kom Definisi Bahasa Pemrograman Function: Bahasa pemrograman adalah bahasa yang digunakan untuk menulis program komputer, dimana dapat menginstruksikan komputer

Lebih terperinci

Fase-fase proses sebuah kompilasi

Fase-fase proses sebuah kompilasi Fase-fase proses sebuah kompilasi Penganalisa Leksikal membaca program sumber, karakter demi karakter. Sederetan (satu atau lebih) karakter dikelompokkan menjadi satu kesatuan mengacu kepada pola kesatuan

Lebih terperinci

Bahasa Pemrograman 2.

Bahasa Pemrograman 2. Bahasa Pemrograman 2 Pengenalan JAVA 1 anton@ukdw.ac.id Instalasi JDK Download JDK for free Instalasi biasa Set PATH dan JAVA_HOME set PATH=%PATH%; set JAVA_HOME=

Lebih terperinci

JAVA BASIC PROGRAMMING Joobshet

JAVA 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 terperinci

BAHASA PEMROGRAMAN. Merupakan prosedur/tata cara penulisan program.

BAHASA PEMROGRAMAN. Merupakan prosedur/tata cara penulisan program. BAHASA PEMROGRAMAN PROGRAM Kata, ekspresi, pernyataan atau kombinasinya yang disusun dan dirangkai menjadi satu kesatuan prosedur yang berupa urutan langkah untuk menyelesaikan masalah yang diimplementasikan

Lebih terperinci

Teori Himpunan. Matematika Dasar untuk Teori Bahasa Otomata. Operasi pada Himpunan. Himpunan Tanpa Elemen. Notasi. Powerset & Cartesian Product

Teori Himpunan. Matematika Dasar untuk Teori Bahasa Otomata. Operasi pada Himpunan. Himpunan Tanpa Elemen. Notasi. Powerset & Cartesian Product Teori Himpunan Matematika Dasar untuk Teori Bahasa Otomata Teori Bahasa & Otomata Semester Ganjil 2009/2010 Himpunan adalah sekumpulan entitas tidak memiliki struktur sifatnya hanya keanggotaan Notasi

Lebih terperinci

Modul PVB-POLINEMA V1.0

Modul PVB-POLINEMA V1.0 BAB V TIPE DATA, VARIABEL DAN KONSTANTA MATERI 1. Tipe Data 2. Variabel 3. Konstanta STANDAR KOMPETENSI 1. Mampu memahami konteks pemakaian variabel dan konstanta 2. Mampu membuat variabel dengan tipe

Lebih terperinci

Struktur Program. Rinta Kridalukmana

Struktur Program. Rinta Kridalukmana Struktur Program Rinta Kridalukmana Struktur Program Struktur program merupakan suatu bentuk susunan dari suatu program yang dibuat. Secara umum, struktur program dibagi 3 bagian : Judul (header) Kamus

Lebih terperinci

MODUL II. OBJECK, PROPERTY, METHOD dan EVENT

MODUL II. OBJECK, PROPERTY, METHOD dan EVENT MODUL II OBJECK, PROPERTY, METHOD dan EVENT Dalam bahasa pemrograman berbasis obyek OOP, kita harus memahami istilah Object, Property, Method, dan Event sebagai berikut. 1) Object Komponen dalam sebuah

Lebih terperinci

Perjalanan sebuah intruksi

Perjalanan 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 terperinci

MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

MATERI 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 terperinci

SMA SANTO PAULUS PONTIANAK

SMA 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 terperinci

PERANCANGAN BERORIENTASI OBJEK

PERANCANGAN BERORIENTASI OBJEK PERANCANGAN BERORIENTASI OBJEK 1. PENDAHULUAN Analisis dan disain berorientasi objek adalah cara baru dalam memikirkan suatu masalah dengan menggunakan model yang dibuat menurut konsep sekitar dunia nyata.

Lebih terperinci

Chapter 2. Tipe Data dan Variabel

Chapter 2. Tipe Data dan Variabel Chapter 2 Tipe Data dan Variabel Pada prinsipnya suatu program computer memanipulasi data untuk dijadikan informasi yang berguna. Komputer memanipulasi berbagai macam data, bukan hanya angka, tetapi juga

Lebih terperinci

BAHASA PEMROGRAMAN. Untuk SMK. Kadarisman Tejo Yuwono Totok Sukardiyono Adi Dewanto. : Ratu Amilia Avianti. Perancang Kulit

BAHASA PEMROGRAMAN. Untuk SMK. Kadarisman Tejo Yuwono Totok Sukardiyono Adi Dewanto. : Ratu Amilia Avianti. Perancang Kulit BAHASA PEMROGRAMAN Untuk SMK Penulis Editor Perancang Kulit Ukuran Buku : Suprapto Kadarisman Tejo Yuwono Totok Sukardiyono Adi Dewanto : Ratu Amilia Avianti : Tim : 18,2 x 15,7 cm Direktorat Pembinaan

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI 5 BAB II LANDASAN TEORI 2.1. Tipe Data Abstrak (TDA) Tipe data sebuah variabel adalah kumpulan nilai yang dapat dimuat oleh variabel ini. Misalnya sebuah tipe boolean hanya bernilai TRUE atau FALSE, tidak

Lebih terperinci

RINGKASAN CATATAN KULIAH PENDAHULUAN TEORI HIMPUNAN

RINGKASAN CATATAN KULIAH PENDAHULUAN TEORI HIMPUNAN RINGKASAN CATATAN KULIAH PENDAHULUAN TEORI HIMPUNAN Apakah himpunan itu? Tidak ada definisi himpunan, yang ada hanya sinonim-sinonim atau kesamaan kata. 1. Menurut Kamus Besar Bahasa Indonesia: himpunan

Lebih terperinci

BAB II ANALISA LEKSIKAL (SCANNER)

BAB II ANALISA LEKSIKAL (SCANNER) BAB 2 PENGENALAN TEKNIK KOMPILASI 22 BAB II ANALISA LEKSIKAL (SCANNER) TUJUAN PRAKTIKUM 1) Memahami bahasa sumber. 2) Memahami dan mengerti tugas analisa leksikal. 3) Memahami dan mengerti membangun alisa

Lebih terperinci