Pendahuluan Bahasa Pemrograman

Ukuran: px
Mulai penontonan dengan halaman:

Download "Pendahuluan Bahasa Pemrograman"

Transkripsi

1 1 Pendahuluan Teknik Kompilasi merupakan mata kuliah yang khusus ditujukan kepada mahasiswa jurusan Teknik Informatika dan Ilmu Komputer. Adapun sejumlah sasaran dari mempelajari mata kuliah Teknik Kompilasi ini diantaranya adalah : 1. Mahasiswa diharapkan mampu memahami prinsip kerja yang mendasar dari suatu kompiler. 2. Mengetahui tahapan tahapan dari suatu proses kompilasi. 3. Mahasiswa juga diharapkan mempunyai bekal mendasar untuk mengembangkan ilmu pengetahuan yang dimilikinya ke tingkat yang lebih lanjut. Bahasa Pemrograman Manusia dapat melakukan interaksi secara efektif dengan menggunakan media bahasa. Bahasa memungkinkan penyampaian gagasan dan pemikiran, tanpa itu komunikasi akan sulit terjadi. Dalam lingkungan pemrograman komputer, bahasa pemrograman bertindak sebagai sarana komunikasi antara manusia dan permasalahannya dengan komputer yang dipakai untuk membantu memperoleh pemecahan. Bahasa pemrograman berdasarkan tingkat ketergantungannya dengan mesin bisa meliputi: 1. Bahasa Mesin Merupakan bentuk terendah dari bahasa komputer. Setiap instruksi dalam program direpresentasikan dengan kode numerik, yang secara fisik berupa deretan angka 0 dan Bahasa Assembly Merupakan bentuk simbolik dari bahasa mesin. Setiap kode operasi memiliki kode simbolik, misalnya ADD untuk penjumlahan (Addition) dan MUL untuk perkalian (Multiplication). Pada bahasa assembly tersedia alat bantu untuk diagnostik atau debug yang tidak terdapat pada bahasa mesin. Contoh produk yang ada untuk pengembangan dan debug bahasa assembly di pasaran saat ini, misalnya Turbo Assembler dari Borland, Macro Assembler dari Microsoft, Debug yang tersedia pada DOS, dan lain lain.

2 2 3. Bahasa tingkat tinggi (User Oriented) Disebut tingkat tinggi karena lebih dekat dengan manusia. Memberikan fasilitas yang lebih banyak, kontrol program yang terstruktur, kalang (nested), block, dan prosedur. Contohnya : Pascal, C, Basic, dan lain lain. 4. Bahasa yang Problem Oriented Memungkinkan penyelesaian untuk suatu masalah atau aplikasi yang spesifik. Contohnya : SQL (Structured Query Language) untuk aplikasi database, COGO untuk aplikasi teknik sipil. Bahasa yang problem oriented kadang dimasukkan pula sebagai bahasa tingkat tinggi. Keuntungan bahasa tingkat tinggi dibandingkan bahasa tingkat rendah adalah sebagai berikut. 1. Kemudahan untuk dipelajari. 2. Lebih mendekati permasalahan yang akan diselesaikan. 3. Pemrogram tidak perlu mengetahui bagaimana representasi data ke dalam bentuk internal di memory. 4. Memberikan banyak pilihan struktur kontrol seperti : Kondisional (IF THEN ELSE) Looping Struktur Blok (... End) Nested Statement 5. kompabilitas dan dokumentasi yang lebih baik dalam pengembangan program. Translator Sebuah translator melakukan pengubahan source code / source program (program sumber) ke dalam target code / object code / object program (program objek). Source code ditulis dalam bahasa sumber, sedang object code bisa berupa suatu bahasa pemrograman lain atau bahasa mesin pada suatu komputer. Ada beberapa macam translator. 1. Assembler Menerjemahkan langsung dari source code ke object code. Source Code adalah bahasa assembly sedangkan object code adalah bahasa mesin. Contohnya adalah TASM.

3 3 File.ASM Assembler File.Exe atau.com Contoh yang menghasil.com adalah : Debug, TASM (bila linker dilakukan dengan perintah Tlink/x/t), emu8086, Contoh yang menghasilkan.exe adalah : TASM dengan perintah linker Tlink, HLA, MASM32, FASM Khusus TASM terkadang file.com yang dihasilkan akan lebih baik daripada file.exe yang dihasilkan sebagai contoh adalah pada program berikut :.Model Small.Code Org 100h Main : Jmp Mulai Pesan db 'Selamat Datang!','$' Mulai : Mov Ah,09H Mov dx,offset pesan int 21h mov ah,4ch int 21h end Main 2. Kompilator (Compiler) Source Code adalah bahasa tingkat tinggi (misal bahasa Pascal), object code adalah bahasa mesin atau bahasa assembly. Source Code dan data diproses pada saat yang berbeda. Contohnya : Turbo Pascal, C++. Source File Compiler Object Code File Executable 3. Interpreter Interpreter tidak membangkitkan Object Code, hasil translasi hanya dalam bentuk Run Time Code. Contohnya : Bahasa Basica, Dbase/Foxbase

4 4 Source Code Interpreter Run Time Code Perbedaan antara Interpreter dengan Compile Interpreter 1. Menerjemahkan instruksi per instruksi 2. Tidak menghasilkan objek program 3. Tidak menghasilkan executable program 4. Source program terus dipergunakan karena tidak dihasilkan executable program. Compiler 1. Menerjemahkan secara keseluruhan sekaligus 2. Dihasilkan objek program 3. Dihasilkan executable program 4. Source program tidak dipergunakan lagi untuk menjalankan program. Model Kompilator Pengembangan kompilator untuk sebuah bahasa merupakan pekerjaan yang kompleks. Kompleksitas kompilator bisa dikurangi bila perancang bahasa pemrograman mempertimbangkan bermacam macam faktor perancangan. Karena kita berhubungan dengan bahasa tingkat tinggi, bagaimanapun suatu model dasar dari kompilator dapat diformulasikan. Sebuah kompilator umumnya memiliki 2 tugas pokok : 1. Fungsi Analisis Fungsi analisis biasa disebut sebagai Front End. Tugasnya melakukan dekomposisi program sumber menjadi bagian bagian dasarnya. 2. Fungsi Sintesis Fungsi sintesis biasa disebut sebagai Back End. Tugasnya melakukan pembangkitan dan optimasi program objek.

5 5 Model sebuah kompilator bisa dilihat pada gambar di bawah ini. Source Code Object Code Analysis Synthesis Lexical Analyzer (Scanner) Syntetic Analyzer (Parser) Sematic Analyzer Intermediate Code Generator Intermediate Code Code Generator Code Optimizer Tabel Informasi Keterangan gambar : Scanner : memecah program sumber menjadi besaran leksikalnya. Beberapa kegiatan pada tahap scanner ini diantaranya adalah : - Menangani kesalahan Contohnya : A = +B 1 - Membuang Blank Contohnya : A = B Mengenali besaran leksikal Contohnya di sini adalah mengenali apakah huruf atau angka - Dan lain lain Parser : Memeriksa kebenaran dan urutan kemunculan token Seperti : - Samping kiri = pasti variabel - Samping kanan = pasti ekspresi - Tiap operator +, -, *, /, tidak boleh double. Contohnya : A = 3++7

6 6 Analisis semantik : Melakukan analisa semantik, biasanya dalam realisasi akan digabungkan dengan intermediate code generator (bagian yang berfungsi membangkitkan kode antara. Seperti : - Triples Notation - Quadruples Notation Code Generator : Membangkitkan kode objek. Bagian ini merupakan bagian yang bersifat abstrak, artinya tidak dilaksanakan oleh programmer. Tetapi dilakukan oleh bahasa pemrograman yang dilakukan oleh programmer dalam perancangan compiler. Di sini kode antara dari program biasanya ditranslasi ke bahasa assembly atau bahasa mesin. Code Optimizer : Upaya untuk memperkecil hasil dan mempercepat proses Tabel Informasi : Menyimpan semua informasi yang berhubungan dengan proses kompilasi. Pada beberapa kompilator, bagaimanapun, fase fase kompilasi tersebut bisa dikombinasikan. Bisa kita lihat, misalnya interaksi antara scanner dan parser terdapat dua kemungkinan : 1. Scanner menghasilkan suatu token untuk diproses oleh parser. Parser akan memanggil scanner bila token berikutnya diperlukan. 2. Scanner menghasilkan semua token yang berhubungan dengan source program sebelum memneruskan ke parser. Pada kasus ini scanner telah memeriksa keseluruhan source program. Mutu Kompilator Misalkan saja kita pernah menggunakan kompilator untuk bahasa Basic seperti Turbo Basic dan Quick Basic. Kemudian kita bisa mengatakan bahwa salah satu lebih baik dari lainnya. Tentu ada beberapa hal yang menjadi pertimbangan kita, dalam hal ini bisa kita sebut sebagai mutu dari kompilator yang bersangkutan. Mutu sebuah kompilator bergantung dari beberapa faktor, yaitu : 1. Kecepatan dan waktu proses kompilasi. Bisa Anda bayangkan misalkan saat Anda menekan F9 (Compile) dalam kompilator Turbo Pascal untuk melakukan kompilasi suatu program. Berapa lama

7 7 Anda harus menunggu untuk memperoleh hasil kompilasi itu merupakan waktu proses kompilasi. Mutu ini tergantung dari : Penulisan algoritma kompilator : yaitu algoritma yang digunakan untuk menuliskan program kompilator tersebut. Misalkan saja bisa dikatakan bahwa suatu kompilator lebih cepat melakukan kompilasi dibandingkan lainnya, karena para pemrogramnya menggunakan algoritma yang lebih baik saat membuat kompilator tersebut. Kompilator pengkompilasi : sebuah program khusus yang menghasilkan kompilator tersebut. Bisa kita bayangkan kompilator Turbo Basic, misalnya, tentu saja tidak dibuat dengan bahasa Basic, tetapi menggunakan bahasa lain dan dikompilasi.dengan kompilator lain. Kalau sebuah kompilator dibuat dengan bahasa C, misalnya, kompilator C tersebut juga ikut menentukan mutu kompilator yang dibuat. Source Program Kompilator A dalam Bahasa K Kompilator Pengkompilasi (K) Kompilator Bahasa A 2. Mutu Program Objek Mutu suatu program objek (program hasil dari proses kompilasi) ditentukan oleh ukuran dan kecepatan eksekusi dari program objek. Misalkan saja kita bisa mengatakan bahwa Turbo Pascal 6 lebih baik dari Turbo Pascal 5, bila program Objek (EXE) yang dihasilkan berukuran lebih kecil dan lebih cepat dieksekusi. Hal ini tergantung dari fungsi translasi yang digunakan oleh kompilator tersebut (cara untuk melakukan perubahan dari source code ke object code). Misalkan saja kita akan membuat suatu kompilator yang memiliki instruksi untuk menuliskan suatu kalimat ke layar, kita sebut saja instruksi writekar. Kompilator ini kita buat dengan bahasa assembly. Sementara pada assembly untuk melakukan pencetakan kalimat bisa dengan Intterupt 10 atau Intterupt 21. Maka pilihan apakah instruksi

8 8 writekar tadi akan diubah ke intterupt 10 atau intterupt 21, akan ikut menentukan ukuran object code nya. 3. Integrated Environtment Merupakan fasilitas fasilitas terintegrasi yang dimiliki oleh kompilator tersebut. Misalnya untuk melakukan editing, debugging, testing. Biasa disebut juga dengan IDE (Integrated Development Environtment). Misalkan saja dengan Turbo Pascal (Turbo.Exe) Anda bisa melakukan penyuntingan sekaligus kompilasi dan debug dalam satu lingkungan pemrograman. Sementara kalau menggunakan Clipper (Clipper.Exe) Anda harus melakukan penyuntingan dengan menggunakan suatu program editor (PE.Exe) ataupun notepad yang terpisah dari kompilatornya. Pembuatan Kompilator Pembuatan suatu kompilator dapat dilakukan dengan : 1. Bahasa Mesin Tingkat kesulitannya sangat tinggi, karena bahasa mesin ini sangat dekat dengan mesin sehingga sangat tidak manusiawi, dan tingkat ketergantungannya pada mesin yang tinggi. Pembuatan kompilator dengan bahasa mesin hampir mustahil dilakukan. Bahasa mesin mungkin digunakan saat membuat assembler. 2. Bahasa Assembly Bahasa assembly bisa dan biasa digunakan sebagai tahap awal pada proses pembuatan sebuah kompilator. Keuntungan penggunaan bahasa assembly adalah program hasil (object code) yang memiliki ukuran kecil. Kerugiannya memerlukan usaha yang besar, karena instruksi assembly pendek pendek (sulit dimengerti) dan memiliki fasilitas yang terbatas. Sehingga masih terdapat kesulitan untuk mengembangkan sebuah kompilator yang secara keseluruhan dibuat dengan bahasa assembly. 3. Bahasa tingkat tinggi Keuntungannya adalah proses pembuatan kompilator akan lebih mudah, karena menggunakan bahasa tingkat tinggi yang lebih mudah dimengerti dan fasilitasnya lebih baik dibandingkan assembly. Kerugiannya kompilator yang dihasilkan akan memiliki ukuran yang besar. Bisa dibayangkan kalau kita akan mengembangkan suatu kompilator untuk suatu bahasa dengan menggunakan Turbo Pascal.

9 9 4. Bootstrap Gagasan dari Bootstrap adalah kita bisa membangun sesuatu yang besar dengan lebih dulu membuat bagian intinya. Cara ini diperkenalkan oleh Niklaus Wirth saat membuat kompilator untuk bahasa Pascal. P2 P1 P0 Pada gambar di atas, P0 dibangun dengan assembly, P1 dibangun dengan P0, P2 dibangun dengan P1. Jadi kompilator untuk bahasa P bisa dibuat tanpa harus secara keseluruhan menggunakan assembly. Soal : 1. Mengapa kita memerlukan bahasa pemrograman? 2. Berikan penjelasan dari istilah istilah berikut : a. Kompilator b. Translator c. Interpreter d. Assembler e. Emulator 3. Berikan beberapa contoh produk yang ada dipasaran untuk setiap istilah pada nomor Apa keuntungan dari penggunaan metode Bootsrap. Jawab : 1. Alasan pentingnya bahasa pemrograman : Bahasa pemrograman digunakan sebagai alat untuk berkomunikasi dengan komputer untuk menjalankan suatu instruksi (program) tertentu, sehingga melalui bahasa pemrograman dapat dihasilkan suatu sistem yang sederhana hingga sistem yang kompleks. 2. Artinya adalah :

10 10 a. Kompilator adalah suatu bahasa tingkat tinggi untuk menerjemahkan dari suatu source code untuk menjadi object code, untuk kemudian menghasilkan suatu executable program. b. Interpreter adalah suatu bahasa tingkat tinggi untuk menerjemahkan dari suatu source code menjadi run time code. c. Translator adalah Suatu bahasa tingkat tinggi untuk menerjemahkan dari suatu source code manjadi bahasa mesin. d. Assembler adalah suatu bahasa untuk menerjemahkan dari suatu sintaks assembly menjadi bahasa mesin. e. Emulator adalah suatu bahasa pemrograman yang dirancang untuk menyerupai cara kerja dari suatu bahasa yang lain. 3. Contoh kompilator adalah :Bahasa Pascal, C++. Contoh Interpreter adalah : Bahasa Basica, Dbase / Foxbase Contoh Translator adalah : Bahasa Pascal, C++, Bahasa Basica Contoh Assembler adalah : TASM, MASM, NASM, FASM Contoh Emulator : emu Jika program inti sudah dirancang dengan baik, maka pengembangan akan lebih cepat dilakukan. Sumber Perancangan Bahasa Pemrograman Gagasan untuk perancangan bahasa pemrograman bisa berasal dari bahasa alami (natural language), matematika, dan bahasa pemrograman yang sudah ada. Penjelasannya masing masing sebagai berikut. 1. Konstruksi yang diturunkan dari bahasa alami berguna untuk kejelasan dan kemudahan pembacaan. Sebuah instruksi akan mengerjakan mirip dengan arti instruksi itu. Hal ini memberikan kenyamanan untuk para pemrogram, khususnya yang belum berpengalaman. Di sisi lain bisa pula menimbulkan ambiguitas / ke dwi artian- yang tidak diinginkan dalam sebuah bahasa pemrograman. Bagaimanapun, bahasa alami bisa digunakan sebagai panduan untuk perancangan sintaks sebuah bahasa pemrograman. 2. Matematika telah banyak dipakai untuk aturan aturan yang terdapat pada bahasa pemrograman, misalnya ekspresi aritmatika. Tetapi, seseorang pemrogram dan ahli matematika menggunakan metode dan memecahkan masalah yang berbeda.

11 11 Meskipun matematika merupakan suatu sumber yang berguna, perlu kehati hatian saat mengadopsi notasi matematika untuk suatu konsep. 3. Bahasa pemrograman yang sudah ada bisa menjadi sumber yang bagus untuk perancangan bahasa pemrograman. Tetapi perlu ketelitian saat menggunakannya, karena bahasa yang sudah ada itu mungkin mengandung kesalahan yang serius. Beberapa fasilitas yang diinginkan bisa dibatasi untuk meningkatkan kemudahan baca (readability) dan pemeriksaaan kesalahan, dengan mengamati bagian mana dari bahasa yang jarang digunakan. Misalnya motivasi untuk tidak menggunakan instruksi GOTO datang dari pengamatan bahwa pemrogram yang baik tidak menggunakan GOTO untuk membuat struktur yang lebih mudah dipahami. Pertimbangan dalam Perancangan Bahasa Pemrograman Adapun pertimbangan pertimbangan yang perlu dalam perancangan sebuah bahasa pemrograman adalah sebagai berikut. 1. Komunikasi dengan manusia Jika sebuah program sulit dimengerti oleh manusia, akan terjadi kesulitan juga untuk memeriksa dan melakukan pemeliharaan / modifikasi. Masalah ini tidak bisa dipecahkan dengan sekedar menambahkan komentar atau melalui dokumentasi tersendiri. Pemrogram tidak suka menambahkan komentar yang berlebihan, sementara dokumentasi program sering tidak lengkap. Sintaks sebuah bahasa pemrograman harus merefleksikan semantiknya. Keterbatasan kemampuan pikir menyulitkan untuk memahami suatu struktur yang kompleks, sementara kompilator tidak. Mungkin suatu statement bermakna ambigu bagi manusia, sementara sudah cukup jelas bagi kompilator, misalkan instruksi aritmatika berikut : A / b / c Bisa berarti a dibagi dengan b, baru hasilnya dibagi dengan c Atau a dibagi dengan hasil pembagian b dengan c 2. Pencegahan dan deteksi kesalahan Sebuah bahasa pemrograman yang baik perlu mengidentifikasikan error yang mungkin terjadi. Sehingga mempermudah deteksi kesalahan dan menghilankannya.

12 12 3. Usability Bahasa pemrograman harus mudah dipelajari dan diingat. Sekali seorang pemrogram familiar dengan bahasa itu, dia tidak harus melihat manual terus menerus. Usability berkaitan dengan aspek kenyamanan seorang pemrogram menggunakan bahasa. 4. Efektifitas pemrograman Efektifitas pemrograman berkaitan erat dengan kemudahan dalam proses pembuatan program. Bahasa pemrograman yang case sensitive akan mempunyai tingkat efektifitas yang lebih rendah dibandingkan dengan bahasa pemrograman yang non case sensitive 5. Compilability Pengembangan sebuah kompilator merupakan pekerjaan yang tidak sederhana. Sebuah bahasa yang terlalu kompleks akan menyulitkan pembuatan kompilator untuk bahasa tersebut. Kompleksitas tersebut bisa muncul baik pada tahapan analisis maupun sintaksis. Sebagai contoh yang sederhana adalah penggunaan buka kurung dan tutup kurung, yang bisa digunakan untuk banyak kegunaan. 1. Untuk membatasi argumen pada pemanggilan prosedur 2. Untuk membatasi parameter pada definisi prosedur 3. Ekspresi logika 4. dll 6. Efisiensi Efisiensi merupakan bahasan yang penting dalam sejarah pengembangan bahasa pemrograman. Dalam hal ini perlu diingat bahwa tidak seharusnya user dikorbankan dengan memaksa mereka mengeluarkan uang untuk peningkatan perangkat keras. 7. Machine Independent Sebuah bahasa dikatakan machine independent jika dan hanya jika sebuah program yang telah sukses dikompilasi dan dieksekusi pada suatu mesin, saat dipindahkan ke mesin lainnya akan berjalan dengan input dan output yang tepat sama 8. Kesederhanaan (simpiclicty) Suatu bahasa pemrograman harus dirancang secara sederhana, seperti menyangkut pendeklarasian variabel, pemakaian suatu fungsi, ataupun untuk mengakses suatu

13 13 properti pada suatu bahasa. Bahasa pemrograman visual basic misalnya memiliki konsep keserhanaan dalam artian untuk pendeklrasian variabel. Detail Rancangan Microstructure Microstructure pada dasarnya mencakup masalah masalah dalam perancangan bahasa yang mempengaruhi penampilan bahasa sehingga lebih mudah dimengerti. Prinsip mendasar dari suatu microstructure adalah arti dari suatu konstruksi, seperti keyword, harus jelas dari wujudnya. Dengan kata lain, token suatu bahasa harus mudah dikenali apakah itu dan apa yang dilakukan. Keyword harus bisa diucapkan, karena akan lebih mudah diingat. Keyword harus dipilih sedemikian sehingga tidak akan sama dengan identifier yang dibuat user. Misalkan saja gunakan operator SIZE ketimbang SIZ. Jika mungkin jangan gunakan dua keyword yang memiliki ejaan yang mirip (misal PROGEND dengan PROCEND ). Terdapat tiga pendekatan bagaimana memisahkan keyword dengan identifier yang didefinisikan user : 1. Keyword adalah reserved dan tidak boleh digunakan sebagai identifier Merupakan alternatif terbaik karena sederhana dan jarang menimbulkan masalah. 2. Keyword dibedakan dari identifier berdasarkan konteksnya Menyulitkan pada tahap parser, karena jumlah keyword pada beberapa implementasi begitu besar sehingga user tidak dapat menghindarinya. 3. Keyword diawali dengan karakter khusus untuk menandainya Memerlukan tambahan pengetikan dan membuat program lebih susah dibaca. Aspek lain dari Microstructure adalah pengaturan komentar. Salah satu pendekatan dalam yang digunakan adalah dengan menggunakan suatu simbol untuk menandai awal komentar dan kemudian apapun sampai akhir baris dianggap sebagai komentar. Pemilihan simbol yang mendahului komentar idealnya : 1. Simbol terdiri dari dua karakter, lebih baik karakter yang sama 2. Simbol yang jarang dipergunakan 3. Terdiri dari karakter berlokasi sama pada keyboard Contohnya simbol // adalah pilihan yang baik untuk menandai komentar.

14 14 Struktur Ekspresi Salah satu topik yang berhubungan dengan ekspresi adalah urutan dari evaluasinya. Seperti dalam operasi aritmatika memiliki urutan evaluasi : 1. Operator ( dan operator ) 2. Operator * dan / 3. Operator + dan - Struktur Data Empat aspek dari struktur data adalah : 1. Deklarasi Data Biasanya kebutuhan bahasa pemrograman berkaitan dengan deklarasi untuk : a. Konstanta b. Tipe c. Variabel 2. Tipe Data Terdapat tiga pendekatan untuk tipe data dalam bahasa pemrograman : a. Tidak ada sama sekali. Merupakan karakteristik yang ada pada bahasa assembly b. Soft Typing. Ditentukan suatu jenis tipe, di mana setiap variabel boleh memuat nilai apapun. c. Hard typing. Ditentukan suatu jenis tipe, di mana setiap variabel hanya boleh memuat nilai yang menjadi domain dari tipe tersebut. Dari sudut pandang pemeriksaan kesalahan saat kompilasi hard typing lebih unggul. Struktur Kontrol Sering dipakai dengan menggunakan If then else dan juga perintah Case. Struktur Kompilasi Struktur kompilasi mencakup aspek dari bahasa yang berkaitan dengan proses kompilasi, berhubungan dengan operasi pada bahasa yang dikerjakan saat kompilasi dan bagaimana kompilasi modul yang berbeda dan terpisah dari program. Salah satu fasilitas adalah untuk menyisipkan suatu file lain (seperti include pada bahasa C ataupun uses pada bahasa Pascal).

15 15 Pendahuluan Teknik Kompilasi merupakan mata kuliah yang khusus ditujukan kepada mahasiswa jurusan Teknik Informatika dan Ilmu Komputer. Adapun sejumlah sasaran dari mempelajari mata kuliah Teknik Kompilasi ini diantaranya adalah : 1. Mahasiswa diharapkan mampu memahami prinsip kerja yang mendasar dari suatu kompiler. 2. Mengetahui tahapan tahapan dari suatu proses kompilasi. 3. Mahasiswa juga diharapkan mempunyai bekal mendasar untuk mengembangkan ilmu pengetahuan yang dimilikinya ke tingkat yang lebih lanjut. Bahasa Pemrograman Manusia dapat melakukan interaksi secara efektif dengan menggunakan media bahasa. Bahasa memungkinkan penyampaian gagasan dan pemikiran, tanpa itu komunikasi akan sulit terjadi. Dalam lingkungan pemrograman komputer, bahasa pemrograman bertindak sebagai sarana komunikasi antara manusia dan permasalahannya dengan komputer yang dipakai untuk membantu memperoleh pemecahan. Bahasa pemrograman berdasarkan tingkat ketergantungannya dengan mesin bisa meliputi: 1. Bahasa Mesin Merupakan bentuk terendah dari bahasa komputer. Setiap instruksi dalam program direpresentasikan dengan kode numerik, yang secara fisik berupa deretan angka 0 dan Bahasa Assembly Merupakan bentuk simbolik dari bahasa mesin. Setiap kode operasi memiliki kode simbolik, misalnya ADD untuk penjumlahan (Addition) dan MUL untuk perkalian (Multiplication). Pada bahasa assembly tersedia alat bantu untuk diagnostik atau debug yang tidak terdapat pada bahasa mesin. Contoh produk yang ada untuk pengembangan dan debug bahasa assembly di pasaran saat ini, misalnya Turbo Assembler dari Borland, Macro Assembler dari Microsoft, Debug yang tersedia pada DOS, dan lain lain.

16 16 Mengenali Huruf pada Suatu Input Pengenalan huruf ini penting untuk mengetahui apakah suatu besaran leksik itu berupa identifier, variabel ataupun konstanta. 1) Identifier atau Keyword Terdiri dari deretan kata kunci pada suatu bahasa pemrograman seperti : if, else, end if, then, for, while, dll 2) Konstanta Berupa angka tetap 3) Delimiter dan Operator Terdiri dari rangkaian operator, dalam hal ini adalah operator aritmatika dan operator pembanding seperti : +, -, <, >, dll. Berikut ini adalah program pada Bahasa Pemrograman Visual Basic untuk mengenali apakah suatu input itu huruf atau tidak. Private Sub Form_Load() a = InputBox("Masukkan Input:") For i = 1 To Len(a) d = Mid(a, i, 1) If (d >= "A" And d <= "Z") Or (d >= "a" And d <= "z") Then Debug.Print "Huruf" Else Debug.Print "Bukan Huruf" End If Next i End Sub Atau, cara lain : Private Sub Form_Load() a = InputBox("Masukkan Input:") For i = 1 To Len(a) d = Mid(a, i, 1) If (Asc(d) >= Asc("A") And Asc(d) <= Asc("Z")) Or (Asc(d) >= Asc("a") And Asc(d) <= Asc("z")) Then Debug.Print "Huruf" Else Debug.Print "Bukan Huruf"

17 17 End If Next i End Sub Dengan menggunakan Bahasa Pascal : uses crt; var ekspresi : String; tampung:char; i:integer; clrscr; write('masukkan ekspresi:'); readln(ekspresi); for i:=1 to length(ekspresi) do if ((ekspresi[i]>=#65) and (ekspresi[i]<=#97)) or ((ekspresi[i]>=#97) and (ekspresi[i]<=#122)) then writeln('huruf') else writeln('bukan Huruf'); readln; end. Dengan menggunakan bahasa C : #include <stdio.h> #include <conio.h> #include <ctype.h> #include <string.h> void main() { clrscr(); char ekspresi[100]; int i; printf("masukkan Ekspresi:"); scanf("%s",&ekspresi); for(i=0;i<strlen(ekspresi);i++) {

18 18 } if (isalpha(ekspresi[i])) printf("adalah huruf\n"); else printf("bukan Huruf\n"); } getch(); Versi II : #include <stdio.h> #include <conio.h> #include <string.h> void main() { clrscr(); char ekspresi[100]; int kar; int i; printf("masukkan Ekspresi:"); scanf("%s",&ekspresi); for(i=0;i<strlen(ekspresi);i++) { kar=ekspresi[i]; if (((kar>=65) && (kar<=90)) ((kar>=97) && (kar<=122))) printf("adalah huruf\n"); else printf("bukan Huruf\n"); } getch(); } Mengenali Angka pada Suatu Input Private Sub Form_Load() Debug.Print " " a = InputBox("Masukkan Input:") For i = 1 To Len(a) d = Mid(a, i, 1) If (Asc(d) >= Asc("0") And Asc(d) <= Asc("9")) Then Debug.Print "Angka" Else

19 19 End If Debug.Print "Bukan Angka" Next i End Sub Cara lain : Private Sub Form_Load() a = InputBox("Masukkan Input:") For i = 1 To Len(a) d = Mid(a, i, 1) If (d >= "0" And d <= "9") Then Debug.Print "Angka" Else Debug.Print "Bukan Angka" End If Next i End Sub Dengan menggunakan bahasa Pascal : uses crt; var ekspresi : String; tampung:char; i:integer; clrscr; write('masukkan ekspresi:'); readln(ekspresi); for i:=1 to length(ekspresi) do if ((ekspresi[i]>=#48) and (ekspresi[i]<=#57))then writeln('angka') else writeln('bukan Angka'); readln; end.

20 20 Dengan menggunakan Bahasa C : #include <stdio.h> #include <conio.h> #include <ctype.h> #include <string.h> void main() { clrscr(); char ekspresi[100]; int i; printf("masukkan Ekspresi:"); scanf("%s",&ekspresi); for(i=0;i<strlen(ekspresi);i++) { if (isdigit(ekspresi[i])) printf("angka\n"); else printf("bukan Angka\n"); } getch(); } Versi : #include <stdio.h> #include <conio.h> #include <string.h> void main() { clrscr(); char ekspresi[100]; int kar; int i; printf("masukkan Ekspresi:"); scanf("%s",&ekspresi); for(i=0;i<strlen(ekspresi);i++) { kar=ekspresi[i]; if ((kar>=48) && (kar<=57)) printf("angka\n"); else

21 21 } } getch(); printf("bukan Angka\n"); Analisis Leksikal Tugas utama penganalisis leksikal / Scanner adalah mengidentifikasi semua besaran yang membangun suatu bahasa pada program sumber. Scanner adalah bagian dari kompilator yang menerima input berupa stream karakter kemudian memilah program sumber menjadi satuan leksik yang disebut dengan token. Token ini akan menjadi input bagi parser. Pekerjaan yang dikerjakannya antara lain : 1. Melakukan pembacaan kode sumber dengan merunut karakter demi karakter. 2. Mengenali besaran leksik. 3. Membuang komentar : Komentar biasanya ditulis oleh programmer untuk mempermudah dalam mempelajari program yang dibuat. Dalam setiap bahasa pemrograman selalu disediakan simbol untuk mengawali / mengakhiri komentar. Oleh karena itu scanner pada analisis leksikal ini harus dapat mengenali bagian awal dan akhir setiap komentar supaya dapat dibuang atau tidak ikut dalam proses kompilasi. 4. Menyeragamkan huruf kapital menjadi huruf kecil atau sebaliknya : Untuk bahasa bahasa bahasa pemrograman yang bersifat non case sensitive, identifier arraysize dan arraysize dianggap sama. Oleh karena itu, bagian penganalisis leksikal bertugas menyeragamkan jenis huruf agar identifier semacam itu tidak dianggap berbeda. 5. Membuang spasi 6. Menangani kesalahan Besaran Leksik Besaran pembangun bahasa / leksik meliputi : 1. Identifier Bisa berupa keywords atau nama. Keywords adalah kata kunci yang sudah didefinisikan oleh suatu bahasa seperti, End, If, dan Else di dalam Pascal. Nama dideklarasikan sendiri oleh pemakai seperti nama pada sebuah variabel. Misal :

22 22 Var Nama : Integer; Suhu : Real; 2. Nilai Konstanta Adalah suatu konstanta yang terdapat pada program. Bisa berupa konstanta integer, real, boolean, character, string, dan sebagainya. Misal : Const N := 10; Kata := Saya 3. Operator dan Delimiter Operator misalnya +, -, *, dan /. Menghilangkan Blank Dalam pengetikan suatu program, terkadang sering terjadi adanya banyak blank yang tidak diperlukan. Salah satu dari tugas scanner atau lexical analyzer ini adalah untuk mengabaikan blank yang dimaksud. Sebagai contoh adalah : C = A + B Maksud dari pernyataan di atas, adalah C = A + B. Jika pernyataan semacam itu tidak diantisipasi oleh compiler maka pernyataan ini tidak akan dapat dieksekusi, karena tidak dimengerti oleh compiler. Berikut ini adalah program untuk menghilangkan blank. Private Sub Form_Load() c = InputBox("Masukkan Ekspresi:") d = "" flag = False For i = 1 To Len(c) If Mid(c, i, 1) = " " Then If flag = False Then d = d + Mid(c, i, 1) End If flag = True Else d = d + Mid(c, i, 1) flag = False End If

23 23 End Sub Next i Debug.Print d Dengan menggunakan Bahasa Pascal : uses crt; var ekspresi : String; tampung:string; i:integer; flag:boolean; clrscr; flag:=false; write('masukkan ekspresi:'); readln(ekspresi); for i:=1 to length(ekspresi) do if ekspresi[i]=' 'then if flag=false then tampung:=tampung+ekspresi[i]; flag:=true; end else tampung:=tampung+ekspresi[i]; flag:=false writeln(tampung); readln; end. Dengan menggunakan Bahasa C : #include <stdio.h> #include <conio.h> #include <string.h> void main() {

24 24 } clrscr(); char ekspresi[100]; char kalimat[100]; int kar; int i; int hitung; int flag; hitung=0; flag=0; printf("masukkan Ekspresi:"); gets(ekspresi); for(i=0;i<strlen(ekspresi);i++) { if (ekspresi[i]==' ') { if (flag==0) { kalimat[hitung]=ekspresi[i]; hitung=hitung+1; } flag=1; } else { kalimat[hitung]=ekspresi[i]; hitung=hitung+1; flag=0; } } for(i=0;i<hitung;i++) printf("%c",kalimat[i]); getch(); Pemakaian Procedure 1. Pada Pascal Pada Pascal pengiriman parameter dapat dilakukan dengan dua cara yaitu : a. Pengiriman parameter secara nilai Jika nilai parameter pada prosedur diubah tidak akan mempengaruhi nilai parameter nyata.

25 25 b. Pengiriman parameter secara acuan. Jika nilai parameter pada prosedur diubah akan mempengaruhi nilai parameter nyata. Contoh pengiriman parameter secara nilai : uses crt; procedure hitung(a,b:integer); var c:integer; c:=a+b; writeln('nilai c = ',c); var x,y:integer; write('masukkan Nilai X :'); readln(x); write('masukkan Nilai Y :'); readln(y); hitung(x,y); readln; end. Contoh pengiriman parameter secara acuan : uses crt; procedure hitung(var a,b:integer); var c:integer; a:=10; c:=a+b; writeln('nilai c = ',c); var x,y:integer; write('masukkan Nilai X :'); readln(x); write('masukkan Nilai Y :'); readln(y);

26 26 end. hitung(x,y); writeln('nilai variabel x=',x); readln; 2. Pada Visual Basic Pada VB 6, ada 4 jenis procedure yaitu : a. Procedure Sub procedure yang tidak mengembalikan nilai setelah tugasnya selesai. Sering disebut juga Procedure. b. Procedure Function Procedure yang mengembalikan nilai setelah tugasnya selesai. Sering disebut juga Fungsi c. Procedure Event Procedure untuk sebuah event pada suatu object. Digunakan di dalam Class Module. d. Procedur Property Procedure untuk mengubah (Let) dan mengambil (Get) nilai property pada sebuah object. Digunakan di dalam Class Module. Contoh pemakaian Procedure Sub : Private Sub Form_Load() a = InputBox("Masukkan Panjang:") b = InputBox("Masukkan Lebar:") Call hitung(val(a), Val(b)) End Sub Private Sub hitung(panjang As Integer, lebar As Integer) luas = panjang * lebar Debug.Print luas End Sub 3. Pada Bahasa C # include <stdio.h> # include <conio.h> void hitung(int panjang,int lebar); void main() { int a,b; clrscr(); printf("masukkan Panjang :");

27 27 } scanf("%i",&a); printf("masukkan Lebar:"); scanf("%i",&b); hitung(a,b); getch(); void hitung(int panjang,int lebar) { int luas; luas=panjang*lebar; printf("luas = %i",luas); } Pemakaian Fungsi Berikut ini adalah contoh pemakaian fungsi pada Turbo Pascal 1. Fungsi Tanpa parameter uses crt; Function garis:string; garis:=' '; writeln(garis); writeln('pascal'); writeln(garis); readln; end. 2. Fungsi dengan Parameter uses crt; function luas(panjang,lebar:integer):integer; luas:=panjang*lebar; var p,l:integer; clrscr;

28 28 end. write('masukkan Panjang :'); readln(p); write('masukkan Lebar :'); readln(l); writeln('luas=',luas(p,l)); readln; Pemakaian Fungsi pada Bahasa pemrograman Visual Basic Private Sub Form_Load() a = InputBox("Masukkan panjang :") b = InputBox("Masukkan lebar:") luas = luaspersegi(a, b) Debug.Print luas End Sub Private Function luaspersegi(panjang, lebar) luaspersegi = Val(panjang) * Val(lebar) End Function Pemakaian fungsi pada Bahasa C # include <stdio.h> # include <conio.h> int hitung(int panjang,int lebar); void main() { int a,b; clrscr(); printf("masukkan Panjang :"); scanf("%i",&a); printf("masukkan Lebar:"); scanf("%i",&b); printf("luas=%i",hitung(a,b)); getch(); } int hitung(int panjang,int lebar) { int luas; luas=panjang*lebar;

29 29 } Token dan Lexemes Untuk keperluan parsing, suatu pernyataan yang ada perlu dipisahkan menjadi token dan lexemes. Ada sebagian pendapat yang menyamakan antara token dan lexemes dengan hanya menggunakan istilah token saja. Namun, tidak jarang kita menemukan pendapat yang membedakan antara token dengan lexemes ini. Secara umum, token menyatakan suatu kelompok misalnya kelompok identifier, operator atau delimiter, ataupun konstanta. Sedangkan lexemes menjelaskan anggota anggota dari token bersangkutan. Berikut ini adalah program untuk Memisahkan suatu input menjadi bagian bagiannya : Dengan menggunakan bahasa pascal : uses crt; var Kalimat:string; i,n:integer; pos:array[1..100]of integer; posisi:integer; kar:array[1..100] of string; token:array[1..100] of string; karb:string; clrscr; posisi:=1; karb:=''; write('masukkan sebuah kalimat:'); readln(kalimat); kalimat:=kalimat+' '; for i:=1 to length(kalimat) do if kalimat[i]<>' 'then karb:=karb+kalimat[i]; end else if (kalimat[i]=' ') then

30 30 kar[posisi]:=karb; karb:=''; posisi:=posisi+1; end. for i:=1 to posisi-1 do write('kata ke- ',i,' adalah ',kar[i]); writeln; readln; Program untuk mengecek apakah input terdapat di dalam array identifier atau tidak. Misal identifier itu terdiri dari kata If dan Then Input yang dimasukkan adalah : If nama= Anton then lakukan penyeleksian Maka tampilan hasil program adalah sebagai berikut : If termasuk identifier Nama= bukan identifir Anton bukan identifier Then termasuk identifier Lakukan bukan identifier Penyeleksian bukan identifier. Programnya adalah sebagai berikut : uses crt; var Kalimat:string; i,n,j,jiden,hitung:integer; pos:array[1..100]of integer; posisi:integer; kar:array[1..100] of string; iden:array[1..100] of string; karb:string; clrscr;

31 31 posisi:=1; hitung:=1; karb:=''; write('masukkan jumlah identifier:'); readln(jiden); write('masukkan sebuah kalimat:'); readln(kalimat); kalimat:=kalimat+' '; for i:=1 to length(kalimat) do if kalimat[i]<>' 'then karb:=karb+kalimat[i]; end else if (kalimat[i]=' ') then kar[posisi]:=karb; karb:=''; posisi:=posisi+1; writeln('posisi=',posisi); for i:=1 to jiden do write('masukkan identifier:'); readln(iden[i]); for i:=1 to posisi-1 do for j:=1 to jiden do if kar[i]<>iden[j] then if hitung=jiden then writeln('kata ',kar[i],' Bukan Termasuk Identifier'); hitung:=hitung+1;

32 32 end. end else writeln('kata ',kar[i],' Termasuk Identifier'); hitung:=1; j:=jiden; hitung:=1; readln; Pembuatan Unit Sebelum kita mempelajari penggunaan unit, maka ada baiknya program yang udah dibuat, kita jadikan menggunakan Function ataupun Procedure. Pada soal sebelumnya untuk pemisahan suatu kalimat menjadi bagian bagian pembentuknya dapat dibuat menjadi sebuah procedure seperti yang tampak pada program di bawah ini. uses crt; procedure pisah(var a:string); var i,n,posisi:integer; kar,token:array[1..20] of string; karb:string; posisi:=1; karb:=''; a:=a+' '; for i:=1 to length(a) do if a[i]<>' 'then karb:=karb+a[i]; end else if (a[i]=' ') then

33 33 kar[posisi]:=karb; karb:=''; posisi:=posisi+1; for i:=1 to posisi-1 do write('kata ke- ',i,' adalah ',kar[i]); writeln; var Kalimat:string; clrscr; write('masukkan sebuah kalimat:'); readln(kalimat); pisah(kalimat); readln; end. Bila dibuat dalam bentuk unit menjadi. unit mesin; interface procedure pisah(var a:string); implementation uses crt; procedure pisah; var i,n,posisi:integer; {pos:array[1..100]of integer;} kar,token:array[1..20] of string; karb:string; posisi:=1; karb:=''; a:=a+' '; for i:=1 to length(a) do

34 34 end. if a[i]<>' 'then karb:=karb+a[i]; end else if (a[i]=' ') then kar[posisi]:=karb; karb:=''; posisi:=posisi+1; for i:=1 to posisi-1 do write('kata ke- ',i,' adalah ',kar[i]); writeln; Sedangkan programnya menjadi : uses crt,mesin; var Kalimat:string; clrscr; write('masukkan sebuah kalimat:'); readln(kalimat); pisah(kalimat); readln; end. Analisis Sintaks Sintaks adalah susunan kalimat dan aturan aturan dalam membentuk kalimat disebut grammar. Penganalisis sintaks dalam bidang kompilasi sering disebut dengan parser. Aturan pendeklarasian variabel : 1. Samping kiri : pasti variabel 2. Samping kanan : pasti tipe data 3. Karakter paling kiri dari suatu variabel harus berupa huruf

35 35 4. Karakter selanjutnya harus berupa Huruf ataupun angka Program untuk mengecek bagian paling kiri dari suatu variabel yang harus berupa huruf. uses crt; var variabel : String; clrscr; write('masukkan variabel:'); readln(variabel); if ((ord(variabel[1])>=65) and (ord(variabel[1])<=91)) or((ord(variabel[1])>=97) and (ord(variabel[1])<=122)) then writeln('variabel Benar') else writeln('karakter pertama harus berupa huruf'); readln; end. Program untuk mengecek karakter kedua dan seterusnya dari suatu variabel yang harus berupa huruf uses crt; var variabel : String; posisi,i:integer; flag:boolean; clrscr; write('masukkan variabel:'); readln(variabel); flag:=true; for i:=2 to length(variabel) do if variabel[i]=':' then posisi:=i; for i:=2 to posisi-1 do

36 36 if not(((ord(variabel[i])>=65) and (ord(variabel[i])<=91)) or((ord(variabel[i])>=97) and (ord(variabel[i])<=122)) or ((ord(variabel[i])>=48) and (ord(variabel[i])<=57))) then flag:=false; if flag=false then writeln('ada kesalahan dengan variabel Anda') else writeln('variabel sudah benar'); readln; end. Program untuk memisahkan tipe data dari suatu deklarasi variabel. uses crt; var variabel : String; tdata:string; posisi,i:integer; flag:boolean; clrscr; write('masukkan variabel:'); readln(variabel); for i:=1 to length(variabel) do if variabel[i]=':' then posisi:=i; end. for i:=posisi+1 to length(variabel) do tdata:=tdata+variabel[i]; writeln('tipe data anda adalah :',tdata); readln; Cara untuk mengetahui apakah tipe data yang kita masukkan merupakan tipe data yang ada dalam suatu kompiler atau tidak. uses crt; var

37 37 variabel : String; tdata:string; tipe:array[1..100] of string; posisi,i,jlh_tipe:integer; flag:boolean; clrscr; flag:=false; write('masukkan variabel:'); readln(variabel); write('masukkan tipe data yang dikenali:'); readln(jlh_tipe); for i:=1 to jlh_tipe do write('masukkan tipe data ke-[',i,']:'); readln(tipe[i]); for i:=1 to length(variabel) do if variabel[i]=':' then posisi:=i; for i:=posisi+1 to length(variabel) do tdata:=tdata+variabel[i]; writeln('tipe data anda adalah :',tdata); for i:=1 to jlh_tipe do if tdata=tipe[i] then flag:=true; if flag=true then writeln('tipe data yang anda masukkan yaitu ',tdata, ' Sudah terdaftar') else writeln('periksa kembali tipe data Anda yaitu ',tdata); readln; end.

38 38 Untuk perbandingan ada baiknya tipe data Anda terlebih dahulu dikonversi menjadi huruf besar semua. uses crt; var variabel : String; tdata,tdatab,tampung,tampungb:string; tipe,tipeb:array[1..100] of string; posisi,i,jlh_tipe,j:integer; flag:boolean; clrscr; flag:=false; write('masukkan variabel:'); readln(variabel); write('masukkan tipe data yang dikenali:'); readln(jlh_tipe); for i:=1 to jlh_tipe do write('masukkan tipe data ke-[',i,']:'); readln(tipe[i]); for i:=1 to length(variabel) do if variabel[i]=':' then posisi:=i; for i:=posisi+1 to length(variabel) do tdata:=tdata+variabel[i]; for i:=1 to length(tdata) do tdatab:=tdatab+upcase(tdata[i]); writeln('tipe data anda adalah :',tdatab); for i:=1 to jlh_tipe do tampung:=tampung+tipe[i]; for j:=1 to length(tampung) do tampungb:=tampungb+upcase(tampung[j]); tipeb[i]:=tampungb;

39 39 tampung:=''; tampungb:=''; for i:=1 to jlh_tipe do writeln(tipeb[i]); for i:=1 to jlh_tipe do if tdatab=tipeb[i] then flag:=true; if flag=true then writeln('tipe data yang anda masukkan yaitu ',tdata, ' Sudah terdaftar') else writeln('periksa kembali tipe data Anda yaitu ',tdata); readln; end. Penggunaan File Dalam perancangan suatu kompiler, sering digunakan suatu file untuk menyimpan source code yang diketikkan oleh user. User mengetikkan program mereka kemudian barulah program tersebut dikompilasi. Cara yang hampir mirip diterapkan pada bahasa pemrograman Java. Pada bahasa pemrograman Pascal ada dua tipe teks yaitu : 1. File Teks 2. File Bertipe Kedua jenis file ini mempunyai cara pemakaian yang berbeda. File bertipe lebih mudah dipakai, namun kita tidak dapat mengetikkan source program secara langsung pada suatu teks editor. File Bertipe File bertipe untuk memasukkan data : Uses crt; Type Mahasiswa=record

40 40 Nomor : integer; Nama: String; Nilai: String; End; Var FileMahasiswa:File of Mahasiswa; RecordMahasiswa: Mahasiswa; I,n:Byte; Assign ( FileMahasiswa,'MHS.txt'); Rewrite ( FileMahasiswa ); Clrscr; Write('Ketikkan Banyak Mahasiswa:'); Readln(n); For i:= 1 to n do Writeln('Mahasiswa ke-',i); Write('Nomor:'); Readln(RecordMahasiswa.Nomor); Write('Nama:'); Readln(RecordMahasiswa.Nama); Write('Nilai:'); Readln(RecordMahasiswa.Nilai); Write(FileMahasiswa,RecordMahasiswa); Writeln; End; Close ( FileMahasiswa ); End. File bertipe untuk menampilkan keseluruhan data : uses crt; type mahasiswa=record Nomor :integer; nama : String; Nilai : String; var FileMahasiswa : File of Mahasiswa;

41 41 RecordMahasiswa : Mahasiswa; i:integer; Assign (FileMahasiswa,'Mhs.txt'); reset(filemahasiswa); clrscr; writeln(' '); writeln('nomor '); writeln('mhs Nama Mahasiswa Nilai'); writeln(' '); while not eof(filemahasiswa) do read(filemahasiswa,recordmahasiswa); with RecordMahasiswa do writeln(nomor:2,nama:10,nilai:14); writeln(' '); readln; close(filemahasiswa); end. File bertipe untuk menampilkan data tertentu uses crt; type mahasiswa=record Nomor :integer; nama : String; Nilai : String; var FileMahasiswa : File of Mahasiswa; RecordMahasiswa : Mahasiswa; i,cari:integer; ketemu:boolean; Assign (FileMahasiswa,'Mhs.txt'); reset(filemahasiswa); clrscr; Write('Ketik no. mahasiswa yang ingin dibaca:'); Readln(cari); while not eof(filemahasiswa) do

42 42 end. read(filemahasiswa,recordmahasiswa); if(recordmahasiswa.nomor=cari) then ketemu:=true; writeln('nama Mahasiswa:',recordmahasiswa.nama); writeln('nilai Mahasiswa:',recordmahasiswa.nilai); readln; File Teks File Teks untuk memasukkan data: Uses crt; Var BerkasTeks : Text; KodeBrg : String; NamaBrg : String; UnitBrg : string; HargaBrg:String; lagi,jawab : char; sudahada : Boolean; Assign ( berkasteks,'dataku.txt'); sudahada:=(ioresult=0); if sudahada then jawab:=' '; while not((jawab='y') or (jawab='t')) do write(chr(7)); write('file sudah pernah ada, tumpangi!!!!(y/t)?'); readln(jawab); jawab:=upcase(jawab); if jawab='t' then halt; rewrite(berkasteks);

43 43 lagi:='y'; while upcase(lagi)='y' do clrscr; gotoxy(5,6); write('kode Barang :'); gotoxy(5,8); write('nama Barang :'); gotoxy(5,10); write('unit Barang:'); gotoxy(5,12); write('harga Satuan Barang :'); gotoxy(27,6); Readln(KodeBrg); gotoxy(27,8); Readln(NamaBrg); gotoxy(27,10); Readln(UnitBrg); gotoxy(27,12); Readln(HargaBrg); writeln(berkasteks,kodebrg); writeln(berkasteks,namabrg); writeln(berkasteks,unitbrg); writeln(berkasteks,hargabrg); end. gotoxy(5,15); write('ada Lagi?(Y/T)'); readln(lagi); close(berkasteks); End. File teks untuk menampilkan semua data Uses Crt; Var BerkasTeks : Text; KodeBrg : string; NamaBrg : string;

44 44 UnitBrg :string; hargabrg:string; I,n : byte; Assign ( berkasteks,'dataku.txt'); Reset ( berkasteks); Clrscr; Writeln(' '); writeln(' Kode Unit harga '); writeln(' Brg Nama Barang Akhir Satuan'); writeln(' '); While not EOF ( berkasteks ) do Readln( berkasteks,kodebrg,namabrg,unitbrg,hargabrg); write(kodebrg,' ',namabrg,' ',unitbrg,' ',hargabrg); close ( BerkasTeks ); readln; end. File teks untuk menampilkan data tertentu : uses crt; var berkasteks:text; kodebrg:string; namabrg:string; unitbrg:string; hargabrg:string; kodecari:string; spasi:string; lagi:char; assign(berkasteks,'dataku.txt'); lagi:='y'; while upcase(lagi)='y' do

45 45 reset(berkasteks); clrscr; write('kode Barang dicari?'); readln(kodecari); writeln; while(not eof(berkasteks)) and (kodebrg<>kodecari) do readln(berkasteks,kodebrg); readln(berkasteks,namabrg); readln(berkasteks,unitbrg); readln(berkasteks,hargabrg); if kodebrg=kodecari then writeln('kode barang:',kodebrg); writeln('nama barang:',namabrg); writeln('unit barang:',unitbrg); writeln('harga barang:',hargabrg); end else writeln('tidak ada data barang ini!!!'); end. close(berkasteks); writeln; writeln('ada Lagi data yang akan dicari (Y/T)'); readln(lagi); readln; Perhatikan bahwa untuk mahasiswa.txt, hasil dari File bertipe berisi :

46 Dan hasil dari file teks (dataku.txt) berisi : 46

47 47 Soal : Buatlah program untuk memisahkan pendeklarasian variabel yang jumlahnya lebih dari satu. Contoh : Panjang,lebar,luas:integer Dipisahkan menjadi : Variabel 1 : Panjang Variabel 2 : Lebar Variabel 3 : Luas Jawab : uses crt; var variabel : String; tdata:string; posisi,i:integer;

48 48 pkar:integer; kar:array[1..100] of string; karb:string; clrscr; write('masukkan variabel:'); readln(variabel); for i:=1 to length(variabel) do if variabel[i]=':' then posisi:=i; for i:=1 to posisi-1 do tdata:=tdata+variabel[i]; writeln(tdata); tdata:=tdata+','; pkar:=1; karb:=''; for i:=1 to length(tdata) do if tdata[i]<>','then karb:=karb+tdata[i]; end else if (tdata[i]=',') then kar[pkar]:=karb; karb:=''; pkar:=pkar+1; for i:=1 to pkar-1 do write('variabel ke- ',i,' adalah ',kar[i]); writeln;

49 49 end. readln; Pemakaian Procedure uses crt; procedure cek(tdata:string); var i:integer; pkar:integer; kar:array[1..20] of string; karb:string; tdata:=tdata+','; pkar:=1; karb:=''; for i:=1 to length(tdata) do if tdata[i]<>','then karb:=karb+tdata[i]; end else if (tdata[i]=',') then kar[pkar]:=karb; karb:=''; pkar:=pkar+1; for i:=1 to pkar-1 do write('variabel ke- ',i,' adalah ',kar[i]); writeln; var variabel : String; i,posisi:integer; tdata:string;

50 50 clrscr; write('masukkan variabel:'); readln(variabel); for i:=1 to length(variabel) do if variabel[i]=':' then posisi:=i; end. for i:=1 to posisi-1 do tdata:=tdata+variabel[i]; cek(tdata); readln; Pemakaian Unit Unit kompilasi.pas unit kompilasi; interface procedure cek(tdata:string); implementation uses crt; procedure cek(tdata:string); var i:integer; pkar:integer; kar:array[1..20] of string; karb:string; tdata:=tdata+','; pkar:=1; karb:=''; for i:=1 to length(tdata) do if tdata[i]<>','then karb:=karb+tdata[i];

51 51 end else if (tdata[i]=',') then kar[pkar]:=karb; karb:=''; pkar:=pkar+1; end. for i:=1 to pkar-1 do write('variabel ke- ',i,' adalah ',kar[i]); writeln; Program Cek.pas uses kompilasi,crt; var variabel : String; i,posisi:integer; tdata:string; clrscr; write('masukkan variabel:'); readln(variabel); for i:=1 to length(variabel) do if variabel[i]=':' then posisi:=i; for i:=1 to posisi-1 do tdata:=tdata+variabel[i]; cek(tdata); readln; end.

52 52 Aturan Pendeklarasian Konstanta Konstanta adalah suatu tempat untuk menampung nilai di mana nilai yang ditampung adalah tetap dan tidak dapat berubah. Secara umum bentuk pendeklarasian variabel pada suatu konstanta adalah dituliskan sebagai : Konstanta = Nilai Contoh : Panjang = 1 Nama = Hartono Jadi, pada suatu konstanta untuk nilai selain angka maka harus diapit dengan tanda petik ganda. Program untuk memisahkan nama konstanta dari nilai konstanta. uses crt; var kons : String; konstanta:string; posisi,i:integer; flag:boolean; clrscr; write('masukkan deklarasi konstanta:'); readln(kons); for i:=1 to length(kons) do if kons[i]='=' then posisi:=i; end. for i:=1 to posisi-1 do konstanta:=konstanta+kons[i]; writeln('nama konstanta adalah :',konstanta); readln; Program untuk memisahkan nilai konstanta dari nama konstanta. uses crt; var kons : String;

53 53 nkonstanta:string; posisi,i:integer; flag:boolean; clrscr; write('masukkan deklarasi konstanta:'); readln(kons); for i:=1 to length(kons) do if kons[i]='=' then posisi:=i; end. for i:=posisi+1 to length(kons) do nkonstanta:=nkonstanta+kons[i]; writeln('nilai konstanta adalah :',nkonstanta); readln; Program untuk mengecek kebenaran nama konstanta yang dimasukkan. uses crt; var kons : String; nkonstanta:string; posisi,i:integer; flag:boolean; str:boolean; clrscr; flag:=true; write('masukkan deklarasi konstanta:'); readln(kons); for i:=1 to length(kons) do if kons[i]='=' then posisi:=i;

54 54 for i:=posisi+1 to length(kons) do nkonstanta:=nkonstanta+kons[i]; writeln('nilai konstanta adalah :',nkonstanta); for i:=1 to length(nkonstanta) do if ((ord(nkonstanta[i])>=48) and (ord(nkonstanta[i])<=57)) then str:=false else str:=true; if str=true then if ((ord(nkonstanta[1])=39) and (ord(nkonstanta[length(nkonstanta)])=39)) then flag:=true else flag:=false; if flag=false then writeln('konstanta salah') else writeln('konstanta sudah benar'); readln; end. uses crt; var kons : String; nkonstanta:string; constan:string; posisi,i:integer; flag:boolean; str:boolean; clrscr; flag:=true; constan:=''; write('masukkan deklarasi konstanta:'); readln(kons);

55 55 for i:=1 to length(kons) do if kons[i]='=' then posisi:=i; for i:=posisi+1 to length(kons) do nkonstanta:=nkonstanta+kons[i]; for i:=1 to length(nkonstanta) do if ((ord(nkonstanta[i])>=48) and (ord(nkonstanta[i])<=57)) then str:=false else str:=true; if str=true then for i:=1 to length(nkonstanta) do if (ord(nkonstanta[i])<>39) then constan:=constan+nkonstanta[i] if str=true then writeln('nilai konstanta adalah :',constan); if ((ord(nkonstanta[1])=39) and (ord(nkonstanta[length(nkonstanta)])=39)) then flag:=true else flag:=false; if flag=false then writeln('konstanta salah') else writeln('konstanta sudah benar'); readln;

56 56 end. Type Checking Kompiler harus memeriksa apakah source program mengikuti konvensi sintaksis atau semantik dari source language. Pemeriksaan ini disebut static checking, untuk meyakinkan bahwa kesalahan programming akan dideteksi dan dilaporkan. Static Checking : Checking yang dilakukan oleh kompiler Dynamic Checking : Checking yang dilakukan oleh target program Posisi Type Checking dalam kompiler : Token Parser Syntax Type Checker Intermediate Code Generator Analisis Leksikal dan Sintaksis dengan File Pada bagian ini kita akan melihat bagaimana imnplementasi dari file pada perancangan suatu kompiler. Di sini peran dari file adalah untuk menyimpan source code, menyimpan tipe data yang dikenali, menyimpan nama variabel, nama konstanta, dan lain lain. Misalkan pada kompiler yang kita rancang mempunyai kemampuan untuk mengenali tipe data : 1. Char 2. String 3. Integer dengan jangkauan dari s/d LongInt dengan jangkauan dari s/d Real untuk bilangan desimal Berikut ini adalah contoh penggunaan dari file untuk menyimpan tipe data yang kita kenali pada suatu file. Langkah langkahnya adalah sebagai berikut.

57 57 1. Buat program untuk membentuk file dengan nama tdata.dat untuk menyimpan tipe data yang kita kenali 2. Buat program untuk menyimpan tipe data beserta dengan jangkauannya ke dalam file tdata.dat yang telah kita buat sebelumnya. Program untuk membentuk file tdata.dat Uses crt; Var VF:text; Assign ( VF,'C:\tdata.dat'); Rewrite ( VF ); Close ( VF ); End. Program untuk menyimpan tipe data. Uses crt; Var BerkasTeks : Text; tipe : String; tipeb: string; jangkauan : String; lagi,jawab : char; sudahada : Boolean; i:integer; Assign ( berkasteks,'c:\tdata.dat'); rewrite(berkasteks); lagi:='y'; while upcase(lagi)='y' do clrscr; gotoxy(5,6); write('tipe Data :'); gotoxy(5,8); write('jangkauan :'); gotoxy(27,6); Readln(tipe);

58 58 gotoxy(27,8); Readln(jangkauan); for i:=1 to length(tipe) do tipeb:=tipeb+upcase(tipe[i]); writeln(berkasteks,tipeb); writeln(berkasteks,jangkauan); tipeb:= ; end. gotoxy(5,15); write('ada Lagi?(Y/T)'); readln(lagi); close(berkasteks); Menyimpan reserved word Pada setiap bahasa pemrograman tentu ada reserved word (kata tercadang), kata tercadang itu tidak dapat kita gunakan sebagai nama variabel. Kata tercadang itu masing masing mempunyai kegunaan seperti : for untuk perulangan, var untuk

TEKNIK KOMPILASI (TEKKOM) ISTIQOMAH, S.KOM /SEMESTER VI

TEKNIK KOMPILASI (TEKKOM) ISTIQOMAH, S.KOM /SEMESTER VI TEKNIK KOMPILASI (TEKKOM) ISTIQOMAH, S.KOM /SEMESTER VI METODE PERKULIAHAN Materi Tugas Individu Tugas Kelompok KONTRAK BELAJAR Penilaian: UTS 20% UAS 30% Tugas besar 40% Tugas, kuis 10% Kehadiran (>=80%)

Lebih terperinci

Teori Komputasi 10/15/2015. Bab 1: Pendahuluan. Teori Komputasi dan Teknik Kompilasi. Teori Komputasi dan Teknik Kompilasi

Teori Komputasi 10/15/2015. Bab 1: Pendahuluan. Teori Komputasi dan Teknik Kompilasi. Teori Komputasi dan Teknik Kompilasi Teori Komputasi Agenda Teori Komputasi dan Teknik Kompilasi Translator Pembuatan Compiler Mutu Compiler Bab 1: Pendahuluan Fakultas Teknologi dan Desain Program Studi Teknik 1-1 Informatika Teori Komputasi

Lebih terperinci

PENGANTAR TEKNIK KOMPILASI

PENGANTAR TEKNIK KOMPILASI PENGANTAR TEKNIK KOMPILASI Tujuan Konsep Teknik Kompilasi Tujuan Pembelajaran : 1.Mahasiswa memahami cara kerja serta proses yang terjadi pada sebuah Compiler 2.Mahasiswa memahami konsep pembuatan sebuah

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

Pengantar dalam Bahasa Pemrograman Turbo Pascal

Pengantar dalam Bahasa Pemrograman Turbo Pascal Pengantar dalam Bahasa Pemrograman Turbo Pascal Penulis: William www.etersoul.com Computer Club of Bunda Hati Kudus SMA Bunda Hati Kudus Pengantar Bahasa Pemrograman Pascal Page 1 / 11 License Agreements

Lebih terperinci

Pengenalan Pascal. Sejarah Singkat Pascal

Pengenalan Pascal. Sejarah Singkat Pascal Pengenalan Pascal Sejarah Singkat Pascal Dirancang oleh Prof. Nicklaus Wirth dari Technical University di Zurich, Switzerland tahun 1971. Nama Pascal berasal dari Blaise Pascal, nama ahli matematika dan

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

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

PEMROGRAMAN TERSTRUKTUR OLEH : IR. H. SIRAIT, MT

PEMROGRAMAN TERSTRUKTUR OLEH : IR. H. SIRAIT, MT PEMROGRAMAN TERSTRUKTUR C++ OLEH : IR. H. SIRAIT, MT PEMROGRAMAN C++ C sebagai bahasa pendahulunya C++ C merupakan termasuk bahasa pemrograman tingkat menengah. Pencipta C adalah Brian W. Kernighan dan

Lebih terperinci

Teknik Kompilasi Dosen: Utami Dewi W.,S.Kom

Teknik Kompilasi Dosen: Utami Dewi W.,S.Kom Teknik Kompilasi Dosen: Utami Dewi W.,S.Kom Sebuah kompilator akan sering menemui program yang mengandung kesalahan. Oleh karena itu, kompilator harus memiliki strategi yang dapat dilakukan untuk menangani

Lebih terperinci

Compiler & Interpreter

Compiler & Interpreter Compiler & Interpreter ICT Nama Kelompok Dyah Kamiswari Sarah Apriliana Stania Ajeng IT AeU Politeknik Negeri Jakarta KOMPILATOR Kompilator (Inggris: compiler) adalah sebuah program komputer yang berguna

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

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

BAB VI CARA PENANGANAN KESALAHAN

BAB VI CARA PENANGANAN KESALAHAN BAB 6 CARA PENANGANAN KESALAHAN 55 BAB VI CARA PENANGANAN KESALAHAN TUJUAN PRAKTIKUM 1. Mengetahui jenis - jenis kesalahan yang biasa terjadi 2. Memahami cara cara penanganan kesalahan 3. Mengerti bagaimana

Lebih 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

Algoritma Pemrograman

Algoritma Pemrograman Algoritma Pemrograman Pertemuan Ke-2 (Teks Algoritma) Noor Ifada noor.ifada@if.trunojoyo.ac.id S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Pendahuluan Judul Algoritma Deklarasi Deskripsi Translasi

Lebih terperinci

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

DASAR PEMROGRAMAN. PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom DASAR PEMROGRAMAN PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom https://www.facebook.com/groups/dasarpemrogramanc TUJUAN Mengenal sejarah, struktur, sintaks

Lebih 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

Algoritma Pemrograman

Algoritma Pemrograman Algoritma Pemrograman Pertemuan Ke-2 (Teks Algoritma) :: Noor Ifada :: S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Pendahuluan Judul Algoritma Deklarasi Deskripsi Translasi Teks Algoritma ke dalam

Lebih terperinci

PENGENALAN DASAR PEMROGRAMAN

PENGENALAN DASAR PEMROGRAMAN PENGENALAN DASAR PEMROGRAMAN Pertemuan 1 I. Pengertian Program adalah pernyataan yang disusun menjadi satu kesatuan prosedur yang berupa urutan langkah yang disusun secara logis dan sistematis untuk menyelesaikan

Lebih terperinci

Bab 2. Dasar-Dasar Pemrograman C

Bab 2. Dasar-Dasar Pemrograman C Bab 2. Dasar-Dasar Pemrograman C Konsep Pemrograman 2015 Overview Tipe Data Standar (Standart Data Type) Aturan Pendefinisian Identifier Variabel Mendeklarasikan Variabel Inisialisasi Variabel Konstanta

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

IT234 - Algoritma dan Struktur Data. Ramos Somya

IT234 - Algoritma dan Struktur Data. Ramos Somya IT234 - Algoritma dan Struktur Data Ramos Somya Asal kata Algoritma berasal dari nama seorang ilmuan Persian yang bernama Abu Ja far Mohammed lbn Musa al-khowarizmi, yang menulis kitab al jabr w al-muqabala

Lebih terperinci

TEKNIK KOMPILASI. Alamat untuk tugas: Informasi: DADANG MULYANA. dadang mulyana 2013

TEKNIK KOMPILASI. Alamat  untuk tugas: Informasi: DADANG MULYANA. dadang mulyana 2013 TEKNIK KOMPILASI DADANG MULYANA Alamat email untuk tugas: dadangstmik@gmail.com Informasi: dadangmulyana@wordpress.com 1 Cara pengiriman tugas: Dalam subjek email tuliskan: Instansi_kelas_nama_matakuliah_jenistugas

Lebih terperinci

Bab 2. Dasar-Dasar Pemrograman C

Bab 2. Dasar-Dasar Pemrograman C Bab 2. Dasar-Dasar Pemrograman C Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 Overview Tipe Data Standar (Standart Data Type) Aturan Pendefinisian Identifier Variabel Mendeklarasikan

Lebih terperinci

Algoritma Pemrograman

Algoritma Pemrograman Algoritma Pemrograman Pertemuan Ke-2 (Teks Algoritma) :: Noor Ifada :: S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Pendahuluan Judul Algoritma Deklarasi Deskripsi Translasi Teks Algoritma ke dalam

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

Pengenalan Pascal Sejarah Pascal Pascal bersifat data oriented

Pengenalan Pascal Sejarah Pascal Pascal bersifat data oriented Pengenalan Pascal Sejarah Pascal Pascal merupakan pengembangan dari bahasa ALGOL 60, bahasa pemrograman untuk sains komputasi. Tahun 1960, beberapa ahli komputer bekerja untuk mengembangkan bahasa ALGOL,

Lebih terperinci

Pemrograman dan Bahasa Pemrograman

Pemrograman dan Bahasa Pemrograman Pemrograman dan Bahasa Pemrograman Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN - 2008 Apakah Pemrograman? Problem Space Abstraction Modelling Programming Language Implementation Solution

Lebih terperinci

Pengenalan Pascal. Tujuan Pembelajaran

Pengenalan Pascal. Tujuan Pembelajaran Pengenalan Pascal Tujuan Pembelajaran Setelah melalui diskusi dan penjelasan 1. Mahasiswa dapat memahami struktur program pascal dengan benar 2. Mahasiswa memahami istilah identifier dengan benar 3. Mahasiswa

Lebih terperinci

Pertemuan Ke-2 (Teks Algoritma) Rahmady Liyantanto. S1 Teknik Informatika-Unijoyo

Pertemuan Ke-2 (Teks Algoritma) Rahmady Liyantanto. S1 Teknik Informatika-Unijoyo Algoritma Pemrograman Pertemuan Ke-2 (Teks Algoritma) Rahmady Liyantanto Sub Pokok Bahasan Pendahuluan Judul Algoritma Deklarasi Deskripsi Translasi Teks Algoritma ke dalam Teks Program Bahasa Pascal Tabel

Lebih terperinci

P3 Pengantar Pemrograman C

P3 Pengantar Pemrograman C P3 Pengantar Pemrograman C A. Sidiq Purnomo Prodi Teknik Informatika & Prodi Sistem Informasi Universitas Mercu Buana Yogyakarta Tujuan Mahasiswa dapat mengetahui dan memahami sejarah bahasa C, struktur

Lebih 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

KONSEP DASAR BAHASA PASCAL

KONSEP DASAR BAHASA PASCAL KONSEP DASAR BAHASA PASCAL Sejarah Singkat Bahasa PASCAL Dikembangkan awal tahun 70-an oleh NICLAUS WIRTH di Technical University, Zurich Swiss. Nama PASCAL diambil dari nama seorang ahli matematika bangsa

Lebih terperinci

Start. Baris Program. Baris Program. Baris Program. Selesai. Contoh Program Struktur berurutan menghitung luas empat persegi panjang

Start. Baris Program. Baris Program. Baris Program. Selesai. Contoh Program Struktur berurutan menghitung luas empat persegi panjang ANALISA STRUKTUR PROGRAM LANJUTAN I. Struktur Program A. Struktur Berurutan (Sequence Structure) Struktur Berurutan adalah struktur program yang paling sederhana. Setiap baris program akan dikerjakan secara

Lebih terperinci

Chapter 3.2 : Tipe, Nama dan Nilai

Chapter 3.2 : Tipe, Nama dan Nilai Mata Kuliah : Logika dan Algoritma / 4 SKS Chapter 3.2 : Tipe, Nama dan Nilai Dosen Pengasuh : Fatoni, M.M.,M.Kom. Mail : fatoni@binadarma.ac.id/toniubd@yahoo.com Materi Yang Dipelajari Tipe Data Dasar

Lebih terperinci

Konsep Dasar Pemrograman Pascal

Konsep Dasar Pemrograman Pascal Konsep Dasar Pemrograman Pascal 1.1 Definisi Algoritma Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untuk memecahkan suatu permasalahan. Langkah-langkah dalam algoritma

Lebih terperinci

Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-1

Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-1 Struktur Data Belajar Struktur Data Menggunakan Pascal Pertemuan-1 I n W a h y u W i d o d o e m a i l @ r i n g k e s. c o m Identifier, Konstanta dan Variabel Identifier (sebutan / pengenal) Identifier

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

Modul 1 Dasar Dasar Bahasa Pemrograman C

Modul 1 Dasar Dasar Bahasa Pemrograman C Modul 1 Dasar Dasar Bahasa Pemrograman C 1. C dan Pengolahan Sinyal Digital C adalah bahasa pemrograman tingkat tinggi. Sebab bahasa pemrogramannya menggunakan keyword dan syntax yang mudah dimengerti

Lebih 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

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

VISUAL BASIC 6.0 PEMROGRAMAN KOMPUTER. Visual Basic

VISUAL BASIC 6.0 PEMROGRAMAN KOMPUTER. Visual Basic PEMROGRAMAN KOMPUTER VISUAL BASIC 6.0 Visual Basic Asal mula VB dari bahasa BASIC (Beginners Allpurpose Symbolic Instruction Code) yang pada awalnya bekerja pada sistem operasi DOS. Kelebihan VB : Sangat

Lebih terperinci

Definisi Algoritma Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untuk memecahkan suatu permasalahan.

Definisi Algoritma Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untuk memecahkan suatu permasalahan. Konsep Dasar Pemrograman Pascal Definisi Algoritma Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untuk memecahkan suatu permasalahan. Langkah-langkah dalam algoritma harus

Lebih terperinci

dilakukan oleh bahasa mesin dapat dilakukan oleh C dengan penyusunan program yang lebih sederhana dan mudah. Bahasa C dalam pemakainnya memerlukan

dilakukan oleh bahasa mesin dapat dilakukan oleh C dengan penyusunan program yang lebih sederhana dan mudah. Bahasa C dalam pemakainnya memerlukan I. PENDAHULUAN Perkembangan bahasa C erat kaitannya dengan perkembangan sistem operasi UNIX, dimana keduanya dikembangkan di AT&T Bell Lab (USA). Pertama kali bahasa C diimplementasikan pada komputer DEC

Lebih terperinci

JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

JENIS DATA SEDERHANA & INPUT/OUTPUT DATA JENIS DATA SEDERHANA & INPUT/OUTPUT DATA 1.1 Tipe Data A. Data Tipe Sederhana Dihubungkan dengan sebuah identifier untuk sebuah data. Data tipe ini digolongkan menjadi tipe data standar dan tipe data yang

Lebih terperinci

Memulai Pemrograman Pascal dengan Delphi Console 1. Buka aplikasi delphi 2. Pilih File New Other Console Application

Memulai Pemrograman Pascal dengan Delphi Console 1. Buka aplikasi delphi 2. Pilih File New Other Console Application #2 Aplikasi Console Aplikasi console merupakan aplikasi berbasis teks yang berjalan pada command prompt. Bahasa yang digunakan pada aplikasi delphi adalah bahasa pemrograman pascal. Struktur Penulisan

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

Tipe Data dan Operator

Tipe Data dan Operator Tipe Data dan Operator Dasar Algoritma dan Pemrogrman Eka Maulana, ST, MT, MEng. Klasifikasi Tipe Data 1 Tipe Data Tipe data adalah jenis data yang dapat diolah oleh komputer untuk memenuhi kebutuhan dalam

Lebih terperinci

BAB-2 : TIPE DATA, VARIABEL DAN OPERATOR

BAB-2 : TIPE DATA, VARIABEL DAN OPERATOR BAB-2 : TIPE DATA, VARIABEL DAN OPERATOR Setelah selesai pembahasan pada bab ini, diharapkan Anda dapat : Mengenal dan dapat menggunakan tipe data Mengenal dan menggunakan variable Mengenal dan menggunakan

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

Pemrograman Dasar C. Minggu 1: Pengenalan C Programming

Pemrograman Dasar C. Minggu 1: Pengenalan C Programming Pemrograman Dasar C Minggu 1: Pengenalan C Programming Sejarah Bahasa C Pencipta: Dennis M. Ritchie dan Brian W. Kernighan (awal 1970) Pada awalnya berkembang di UNIX (90% System Operasi UNIX dalam C)

Lebih terperinci

Dasar Pemrograman C++

Dasar Pemrograman C++ Dasar Pemrograman C++ Yuli Astuti, Jurusan Sistem Informasi, STMIK AMIKOM Yogyakarta, Jl. Ring Road Utara, Condong Catur, Sleman, Yogyakarta, Indonesia 1.1 Konsep Dasar Pemrograman Program adalah deretan

Lebih terperinci

BAB 2 BAGAIMANA MENULISKAN PROGRAM PASCAL

BAB 2 BAGAIMANA MENULISKAN PROGRAM PASCAL BAB 2 BAGAIMANA MENULISKAN PROGRAM PASCAL Target Pencapaian Siswa mengerti dan d dapat membuat program dengan engan Menggunakan Pascal Menuliskan Program Pascal Untuk Menuliskan Program Pascal tidak mengenal

Lebih terperinci

Pertemuan 4 KONSEP TIPE DATA

Pertemuan 4 KONSEP TIPE DATA Pertemuan 4 KONSEP TIPE DATA Bahasa Pemrograman PASCAL Pascal, merupakan bahasa pemrograman tingkat tinggi. Pascal dirancang oleh Prof. Niklaus Writh (Technical University di Zurich, Switzerland) pada

Lebih terperinci

1. Algoritma & Pemrograman

1. Algoritma & Pemrograman 1. Algoritma & Pemrograman A. Teori algoritma Suatu himpunan hingga Intruksi yang secara jelas memperinci langkahlangkah proses pelaksanaan pemecahan suatu masalah. Himpunan intruksi yang dimaksud harus

Lebih terperinci

Sekilas C DAN C++ DISUSUN OLEH. Sebuah bahasa, yaitu: 1. Bahasaa tingkat tinggi. High. dapat. lunak

Sekilas C DAN C++ DISUSUN OLEH. Sebuah bahasa, yaitu: 1. Bahasaa tingkat tinggi. High. dapat. lunak DISUSUN OLEH : ADAM MUKHARIL BACHTIAR, S..Kom. DIKTAT MATAA KULIAH PEMROGRAMAN I BAB I PENDAHULUAN C DAN C++ IF Sekilas Tentang C dan C+ ++ Sebuah bahasa pemrograman dapat dikategorikan ke dalam tiga level

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

Review: Algoritme dan Program 12/29/2011. Algoritme dan Pemrograman. Review: Bagaimana memecahkan masalah dengan komputer?????

Review: Algoritme dan Program 12/29/2011. Algoritme dan Pemrograman. Review: Bagaimana memecahkan masalah dengan komputer????? Algoritme dan Pemrograman Kuliah #3 Implementasi algoritme Struktur program C Elemen program * * * * Masalah Review: Bagaimana memecahkan masalah dengan komputer????? Logika Berpikir Logika Pemrograman

Lebih terperinci

BAB I SEKILAS TENTANG C

BAB I SEKILAS TENTANG C BAB I SEKILAS TENTANG C Tujuan : 1. Menjelaskan sejarah dan ruang lingkup pemakaian bahasa C 2. Menjelaskan kelebihan dan kekurangan bahasa C 3. Menjelaskan proses kompilasi dan linking program C 4. Menjelaskan

Lebih terperinci

MODUL PRAKTIKUM PEMROGRAMAN PASCAL. Fight #1 PENGENALAN PASCAL, VARIABEL, TIPE DAN KONSTANTA.

MODUL PRAKTIKUM PEMROGRAMAN PASCAL. Fight #1 PENGENALAN PASCAL, VARIABEL, TIPE DAN KONSTANTA. 1 MODUL PRAKTIKUM PEMROGRAMAN PASCAL Fight #1 PENGENALAN PASCAL, VARIABEL, TIPE DAN KONSTANTA. A. Teori Pengenalan Compiler Pascal Sebelum kita mengenal suatu bahasa pemrograman, marilah terlebih dahulu

Lebih terperinci

STRUKTUR DATA. - Pendahuluan - Tipe Data. Altien Jonathan Rindengan, S.Si., M.Kom

STRUKTUR DATA. - Pendahuluan - Tipe Data. Altien Jonathan Rindengan, S.Si., M.Kom STRUKTUR DATA - Pendahuluan - Tipe Data Altien Jonathan Rindengan, S.Si., M.Kom Pendahuluan Struktur Data adalah cara penyimpanan dan pengorganisasian data-data pada memori komputer maupun file pada media

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

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

I. KATA PENGANTAR. Modul Algoritma Pemrograman. Modul Ke-4 - Hal 1

I. KATA PENGANTAR. Modul Algoritma Pemrograman. Modul Ke-4 - Hal 1 I. KATA PENGANTAR Dewasa ini sudah banyak berkembang bahasa-bahasa pemrograman tingkat tinggi yang pemakaiannya sudah sangat mudah, hanya klik dan drag saja. Namun meskipun demikian tetap saja programmer

Lebih terperinci

STRUKTUR PROGRAM. Secara ringkas, struktur suatu program Pascal dapat terdiri dari : 1.Judul Program 2.Blog Program a.

STRUKTUR PROGRAM. Secara ringkas, struktur suatu program Pascal dapat terdiri dari : 1.Judul Program 2.Blog Program a. PASCAL STRUKTUR PROGRAM Struktur program Pascal terdiri dari sebuah judul program (program heading) dan suatu blok program (program block) atau badan program (body program). Blok program dibagi lagi menjadi

Lebih terperinci

P A S C A L D A S A R

P A S C A L D A S A R P A S C A L D A S A R Komputer merupakan satu rangkaian perangkat elektronik yang terdiri dari monitor, CPU(Central Processing Unit), keyboard, speaker maupun printer. Penggunaaan komputer sudah sangat

Lebih terperinci

Brigida Arie Minartiningtyas, M.Kom

Brigida Arie Minartiningtyas, M.Kom Brigida Arie Minartiningtyas, M.Kom Pseudocode Pseudo berarti imitasi atau mirip atau menyerupai Code menunjukkan kode dari program Pseudocode adalah kode yang mirip dengan instruksi kode program yang

Lebih terperinci

Pengenalan Visual Basic

Pengenalan Visual Basic Pengenalan Visual Basic KETERANGAN : 1. Baris Menu, digunakan untuk memilih tugas-tugas tertentu seperti menyimpan project, membuka project, dll. 2. Main Toolbar, digunakan untuk melakukan tugastugas tertentu

Lebih terperinci

Bahasa Pemrograman- TIS SKS

Bahasa Pemrograman- TIS SKS Bahasa Pemrograman- TIS1313 3 SKS T.Informatika@2013 Materi Bahasan Pemrograman TIS1313 Pengenalan / Pengantar Bahasa Pemrograman Algoritma,Program, Bahasa Pemrograman Struktur sistem komputer Siklus Hidup

Lebih terperinci

Keg. Pembelajaran 2 : Mengenal Bahasa C++

Keg. Pembelajaran 2 : Mengenal Bahasa C++ Keg. Pembelajaran 2 : Mengenal Bahasa C++ 1. Tujuan Kegiatan Pembelajaran Setelah mempelajari materi kegiatan pembelajaran ini mahasiswa akan dapat : 1) Mengenal secara baik sintak-sintak dalam bahasa

Lebih 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

PENGERTIAN adalah pekerjaan penulisan instruksi bagi komputer untuk menyelesaikan suatu masalah.

PENGERTIAN adalah pekerjaan penulisan instruksi bagi komputer untuk menyelesaikan suatu masalah. KONSEP DASAR BAHASA PASCAL PENGERTIAN Pemrograman / programming adalah pekerjaan penulisan instruksi bagi komputer untuk menyelesaikan suatu masalah. Program : adalah himpunan instruksi yang diperuntukkan

Lebih terperinci

P - 3 Bab 2 : Pengantar Pemrograman C

P - 3 Bab 2 : Pengantar Pemrograman C P - 3 Bab 2 : Pengantar Pemrograman C 2.1 Tujuan Mahasiswa dapat mengetahui dan memahami sejarah bahasa C, struktur program C dan alur eksekusi program C 2.2 Materi 1. Sejarah C 2. Interprenter dan Compiler

Lebih terperinci

Materi ke-4 Praktikum Algoritma dan Pemrograman kelas Matematika PEMROGRAMAN MODULAR

Materi ke-4 Praktikum Algoritma dan Pemrograman kelas Matematika PEMROGRAMAN MODULAR PEMROGRAMAN MODULAR Tujuan - Praktikan dapat mengenal struktur prosedur dan fungsi di dalam Pascal - Praktikan dapat membuat program dengan menggunakan prosedur dan fungsi Pemrograman modular merupakan

Lebih terperinci

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

UNIVERSITAS SAM RATULANGI MANADO FAKULTAS TEKNIK, JURUSAN TEKNIK ELEKTRO Program Studi S-1 Teknik Informatika. Data & Ekspresi UNIVERSITAS SAM RATULANGI MANADO FAKULTAS TEKNIK, JURUSAN TEKNIK ELEKTRO Program Studi S-1 Teknik Informatika Data & Ekspresi Mata Kuliah: Algoritma & Logika Informatika (IFC3504) Alwin M. Sambul, S.T.,

Lebih terperinci

[Type the company name] [Type the document title] [Type the document subtitle] Gilang Abdul Aziz [Pick the date]

[Type the company name] [Type the document title] [Type the document subtitle] Gilang Abdul Aziz [Pick the date] [Type the company name] [Type the document title] [Type the document subtitle] Gilang Abdul Aziz [Pick the date] H a l a m a n 1 DAFTAR ISI DAFTAR ISI... 1 1. TIPE DATA DALAM BORLAND DELPHI7... 2 1.1.

Lebih terperinci

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK Bab ini membahas analisis perancangan perangkat lunak (diberi nama c2p) dari segi struktur data dan analisis aliran data. Hal-hal yang dibahas diantaranya

Lebih terperinci

Keterangan : Integer Long : tipe data untuk angka bulat Single, Double : tipe data untuk angka pecahan/desimal Currency : tipe data untuk angka mata

Keterangan : Integer Long : tipe data untuk angka bulat Single, Double : tipe data untuk angka pecahan/desimal Currency : tipe data untuk angka mata TIPE DATA, VARIABEL DAN KONSTANTA, OPERATOR DAN KONTROL PROGRAM Minggu ke-3 Tipe Data dalam Visual Basic Microsoft Visual Basic menyediakan beberapa tipe data seperti Integer, Long, Single, Double, Currency,

Lebih terperinci

PRAKTIKUM 1 MENGENAL BAHASA PASCAL. File, Edit, Search, Run, Compile, Debug, Tools, Option, Windows dan Help.

PRAKTIKUM 1 MENGENAL BAHASA PASCAL. File, Edit, Search, Run, Compile, Debug, Tools, Option, Windows dan Help. PRAKTIKUM 1 MENGENAL BAHASA PASCAL 1. Judul Materi/ Pokok Bahasan : Mengenal Bahasa Pascal 2. Tujuan Insruksional Khusus : Mahasiswa dapat memahami konsep dasar struktur Algoritma dan struktur program

Lebih terperinci

PENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini:

PENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini: PENGENALAN BAHASA C A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini: Kebanyakan pemrogram jarang memberikan keterangan/

Lebih terperinci

1.1 Mengenal Visual Basic (VB) 1.2 Mengenal Integrated Development Environment (IDE) VB 6

1.1 Mengenal Visual Basic (VB) 1.2 Mengenal Integrated Development Environment (IDE) VB 6 1.1 Mengenal Visual Basic (VB) Visual Basic adalah salah satu bahasa pemrograman komputer. Bahasa pemrograman adalah perintahperintah yang dimengerti oleh komputer untuk melakukan tugas-tugas tertentu.

Lebih terperinci

Materi : Operasi File

Materi : Operasi File Matakuliah : Visual Pemrograman 3 Versi : 1.0.0 Materi : Operasi File Penyaji : Zulkarnaen NS Operasi File Dalam Visual Basic Visual Basic menyediakan suatu fasilitas untuk membaca, menyimpan dan memperbaiki

Lebih terperinci

Bab 1 Pengenalan Pascal 1 BAB I PENGENALAN PASCAL, TIPE-TIPE DATA PASCAL DAN STATEMEN DASAR PADA PASCAL TUJUAN PRAKTIKUM TEORI PENUNJANG

Bab 1 Pengenalan Pascal 1 BAB I PENGENALAN PASCAL, TIPE-TIPE DATA PASCAL DAN STATEMEN DASAR PADA PASCAL TUJUAN PRAKTIKUM TEORI PENUNJANG Bab 1 Pengenalan Pascal 1 BAB I PENGENALAN PASCAL, TIPE-TIPE DATA PASCAL DAN STATEMEN DASAR PADA PASCAL TUJUAN PRAKTIKUM 1. Mengetahui sejarah bahasa Pascal. 2. Mengerti dan memahami struktur pemrograman

Lebih terperinci

Tipe Data dan Variabel. Dosen Pengampu Muhammad Zidny Naf an, M.Kom

Tipe Data dan Variabel. Dosen Pengampu Muhammad Zidny Naf an, M.Kom Tipe Data dan Variabel Dosen Pengampu Muhammad Zidny Naf an, M.Kom Format Pseudocode Lengkap Judul program/algoritma PROGRAM Euclidean Program untuk mencari GCD dari dua buah bilangan bulat positif m dan

Lebih terperinci

Achmad Solichin.

Achmad Solichin. Pemrograman Bahasa C dengan Turbo C Sh-001@plasa.com Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit),

Lebih terperinci

Struktur Dasar Bahasa C Tipe Data Dalam bahasa C terdapat lima tipe data dasar, yaitu :

Struktur Dasar Bahasa C Tipe Data Dalam bahasa C terdapat lima tipe data dasar, yaitu : 1 Struktur Dasar Bahasa C Tipe Data Dalam bahasa C terdapat lima tipe data dasar, yaitu : Contoh Program : { int x; float y; char z; double w; clrscr(); /* untuk membersihkan layar */ x = 10; /* variable

Lebih terperinci

Preliminary Test Axioo Class Program

Preliminary Test Axioo Class Program (masing-masing soal dapat memiliki lebih dari satu jawaban) A. Mikrokontroler dan Pemrograman Umum 1. Sebutkan bahasa pemrograman yang Anda kuasai. A) Assembly B) C C) C++ / Java / Visual Basic D) PHP

Lebih terperinci

PEMROGRAMAN DASAR ( PASCAL ) PERTEMUAN I

PEMROGRAMAN DASAR ( PASCAL ) PERTEMUAN I PEMROGRAMAN DASAR ( PASCAL ) PERTEMUAN I I. Pengertian Algoritma Algorithm sebenarnya berasal dari kata algorism yang berarti proses menghitung dengan angka Arab. Perencanaan dan perancangan program komputer

Lebih terperinci

Struktur Program Bahasa C

Struktur Program Bahasa C Struktur Program Bahasa C Struktur Program Bahasa C /* Komentar */ main( ) { statemen-statemen; } fungsi_tambahan( ) { statemen-statemen } program utama fungsi tambahan yang dapat dipanggil oleh program

Lebih terperinci

Catatan: Jawaban yang dipilih di berikan warna huruf merah dan text highlight warna kuning

Catatan: Jawaban yang dipilih di berikan warna huruf merah dan text highlight warna kuning Nama Peserta Asal Sekolah Kabupaten Provinsi : H. Tubagus Nizomi : SMK Insan Kreatif : Bogor : Jawa Barat Catatan: Jawaban yang dipilih di berikan warna huruf merah dan text highlight warna kuning (Masing-masing

Lebih terperinci

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom BAB III DASAR-DASAR PEMROGRAMAN Tipe Data Data adalah sekumpulan kejadian/fakta yang dipresentasikan dengan huruf, angka,

Lebih terperinci

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut 1. Pengenalan Bahasa C++ a. Elemen Bahasa C+ Bahasa C++ ditulis dari beberapa elemen, antara lain: Pernyataan Satu atau beberapa ekspresi

Lebih terperinci

KONSEP DASAR PEMROGRAMAN PASCAL

KONSEP DASAR PEMROGRAMAN PASCAL KONSEP DASAR PEMROGRAMAN PASCAL 1.1 Perkembangan Pascal Pascal adalah bahasa tingkat tinggi yang orientasinya pada segala tujuan, dirancang oleh Prof. Niklaus Wirth dari Technical University di Zurich,

Lebih terperinci

AP2B Dini Triasanti STRUKTUR PEMROGRAMAN PYTHON

AP2B Dini Triasanti STRUKTUR PEMROGRAMAN PYTHON STRUKTUR PEMROGRAMAN PYTHON 1. Aturan Penulisan Program-program yang ditulis dalam Python secara khas jauh lebih pendek dibandingkan dengan program-program C atau C++, karena beberapa pertimbangan: tipe

Lebih terperinci

LAPORAN PRAKTIKUM RESMI TIPE DATA, KONSTANTA DAN VARIABEL

LAPORAN PRAKTIKUM RESMI TIPE DATA, KONSTANTA DAN VARIABEL LAPORAN PRAKTIKUM RESMI TIPE DATA, KONSTANTA DAN VARIABEL Disusun oleh : Nama : Trins Astriani Br Sidauruk NIM : 201302011 Dosen pengampu : Yosef Murya Kusuma Ardhana.S.T., M.Kom JURUSAN KOMPTERISASI AKUNTANSI

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

Tipe Data dan Variabel

Tipe Data dan Variabel Tipe Data dan Variabel L/O/G/O Agus Priyanto Introduction Sejarah C Bahasa C merupakan bahasa pemrograman yang di ciptakan oleh Dennis Ricthie yang berasal dari perkembangan bahasa BCPL (Basic Combined

Lebih terperinci

PROSEDUR DAN FUNCTION

PROSEDUR DAN FUNCTION PROSEDUR DAN FUNCTION PROSEDUR DAN FUNCTION PROSEDUR Prosedur adalah suatu program yang terpisah dalam blok sendiri yang berfungsi sebagai seubprogram (program bagian). Prosedur diawali dengan kata cadangan

Lebih terperinci

ELEMEN DASAR PROGRAM FORTRAN. Kuliah ke-2

ELEMEN DASAR PROGRAM FORTRAN. Kuliah ke-2 ELEMEN DASAR Kuliah ke-2 1 Mengapa dengan FORTRAN? FORmula TRANslation adalah bahasa pemrograman komputer tingkat tinggi yang langsung berorientasi pada permasalahan teknik, dan umum dipakai oleh para

Lebih terperinci