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

SEMANTIK Syntax mendefinisikan suatu bentuk program yang benar dari suatu bahasa.

SEMANTIK Syntax mendefinisikan suatu bentuk program yang benar dari suatu bahasa. SEMANTIK Syntax mendefinisikan suatu bentuk program yang benar dari suatu bahasa. Semantik mendefinisikan arti dari program yang benar secara syntax dari bahasa tersebut. Semantik suatu bahasa membutuhkan

Lebih terperinci

PENGENALAN BAHASA C. Praktikum 3

PENGENALAN BAHASA C. Praktikum 3 Praktikum 3 PENGENALAN BAHASA C A. TUJUAN 1. Mengenal sintaks dan fungsi-fungsi dasar dalam bahasa C 2. Mampu membuat flowchart untuk algoritma untuk memecahkan suatu masalah sederhana, selanjutnya mengimplementasikannya

Lebih terperinci

BAB 6 Array Dua Dimensi

BAB 6 Array Dua Dimensi BAB 6 Array Dua Dimensi Di dalam pascal Array dapat berdimensi lebih dari satu yang disebut dengan array dimensi banyak (Multidimensional array), disini akan dibahas array 2 dimensi saja. Array 2 dimensi

Lebih terperinci

# $ % &' ( & &' (& " # ) &* ( & (+(, "

# $ % &' ( & &' (&  # ) &* ( & (+(, BAB IV ANTAR MUKA MANUSIA DAN KOMPUTER Prinsip kerja dalam dalam sebuah sistem komputer adalah masukan, proses dan keluaran (input, proses, output). Kepada komputer kita memberikan data masukan (angka

Lebih terperinci

PRAKTIKUM 3 DASAR PEMROGRAMAN C

PRAKTIKUM 3 DASAR PEMROGRAMAN C PRAKTIKUM 3 DASAR PEMROGRAMAN C A. TUJUAN 1. Menjelaskan tentang beberapa tipe data dasar (jenis dan jangkauannya) 2. Menjelaskan tentang Variabel 3. Menjelaskan tentang konstanta 4. Menjelaskan tentang

Lebih terperinci

Konsep Dasar Pemrograman Prosedural

Konsep Dasar Pemrograman Prosedural Seri Buku Persiapan Seleksi Buku Untuk Siswa dan Guru Konsep Dasar Pemrograman Prosedural (dilengkapi contoh soal dan pembahasan) ii Konsep Dasar Pemrograman Prosedural Disusun Oleh : Tim Pembina TOKI

Lebih terperinci

Tipe Data. Definisi Tipe Data

Tipe Data. Definisi Tipe Data Tipe Data Definisi Tipe Data Dalam pemrograman pascal, semua peubah yang akan dipakai harus ditentukan tipe data yang digunakan karena akan berpengaruh terhadap operasi bilangan yang dapat dilaksanakan

Lebih terperinci

Dasar Pemrograman. Kondisi dan Perulangan. By : Hendri Sopryadi, S.Kom, M.T.I

Dasar Pemrograman. Kondisi dan Perulangan. By : Hendri Sopryadi, S.Kom, M.T.I Dasar Pemrograman Kondisi dan Perulangan By : Hendri Sopryadi, S.Kom, M.T.I Kondisi dan Perulangan Pendahuluan Dalam sebuah proses program, biasanya terdapat kode penyeleksian kondisi, kode pengulangan

Lebih terperinci

Praktikum 2 Data File pada AWK

Praktikum 2 Data File pada AWK Praktikum 2 Data File pada AWK Tujuan Pembelajaran Mahasiswa dapat memahami dan menggunakan data file dalam bahasa pemrograman awk. Dasar Teori Kebanyakan program komputer bekerja dengan file. Hal ini

Lebih terperinci

Baca Tulis File. Untuk dapat membaca atau menulis data dari/ke sebuah file maka langkah yang perlu dilakukan adalah:

Baca Tulis File. Untuk dapat membaca atau menulis data dari/ke sebuah file maka langkah yang perlu dilakukan adalah: Untuk dapat membaca atau menulis data dari/ke sebuah file maka langkah yang perlu dilakukan adalah: 1. membuka file - mendefinisikan variabel stream - melakukan perintah open() 2. Melakukan pembacaan atau

Lebih terperinci

Lecture Notes Algoritma dan Pemrograman

Lecture Notes Algoritma dan Pemrograman Menukar Isi Dua Variabel (ed. ) / Lecture Notes Algoritma dan Pemrograman Menukar Isi Dua Variabel Thompson Susabda Ngoen Salah satu kegiatan pengolahan data adalah menukar isi dua variabel, misalnya pada

Lebih terperinci

BAHASA TINGKAT TINGGI

BAHASA TINGKAT TINGGI BAHASA TINGKAT TINGGI PENGEMBANGAN BAHASA TINGKAT TINGGI Kelemahan bahasa tingkat rendah Dikembangkan untuk mengatasi kelemahan / keterbatasan bahasa tingkat rendah (BTR), yaitu : a. Penulisan program

Lebih terperinci

Pertemuan 2 Struktur Dasar PHP

Pertemuan 2 Struktur Dasar PHP Pertemuan Struktur Dasar PHP Sebelum Belajar PHP Mari Mengenal PHP Say Hello to PHP Variabel Tipe Data Konstanta Operator dalam PHP Komentar Program Sebelum Belajar PHP. Saya asumsikan Anda telah mengenal

Lebih terperinci

Algoritma dan Struktur Data

Algoritma dan Struktur Data Algoritma dan Struktur Data Week 2 : Bahasa C dan Array I Ketut Resika Arthana, S.T., M.Kom NIP. 198412012012121002 resika.arthana@gmail.com 085-737-515-515 http://www.rey1024.com Pendidikan Teknik Informatika

Lebih terperinci

# SEVEN PROCUDURE & FUNCTION

# SEVEN PROCUDURE & FUNCTION HANDOUT ALGORITMA PEMROGRAMAN DAN STRUKTUR DATA 1 PRODI SISTEM INFORMASI UKDW # SEVEN PROCUDURE & FUNCTION Mengapa Menggunakan Fungsi? - Pemrograman yang baik harus bersifat modular agar suatu masalah

Lebih terperinci

BAHAN AJAR ALGORITMA DAN PEMROGRAMAN I

BAHAN AJAR ALGORITMA DAN PEMROGRAMAN I BAHAN AJAR ALGORITMA DAN PEMROGRAMAN I OLEH: Budi Mulyono, S.Pd., M.Sc. Drs. Purwoko, M.Si. PENDIDIKAN MATEMATIKA FAKULTAS KEGURUAN DAN ILMU PENDIDIKAN UNIVERSITAS SRIWIJAYA i KATA PENGANTAR Bahan ajar

Lebih terperinci

Sistem Distribusi Data Melalui COM+ Dengan Visual Basic

Sistem Distribusi Data Melalui COM+ Dengan Visual Basic Sistem Distribusi Data Melalui COM+ Dengan Visual Basic Artikel ini telah dipublikasikan pada majalah Mikrodata Vol. 5 Series 17, May 2002. Agus Kurniawan agusk@cs.ui.ac.id http://blog.aguskurniawan.net

Lebih terperinci

TIPE DATA ABSTRAK MENGGUNAKAN BAHASA C

TIPE DATA ABSTRAK MENGGUNAKAN BAHASA C WAHJUDI ULTIMATICS VOL. 1 NO. 1, DESEMBER 2009 TIPE DATA ABSTRAK MENGGUNAKAN BAHASA C Universitas Multimedia Nusantara Tangerang - Banten Januar Wahjudi Abstrak- Tipe data abstrak(abstract data types atau

Lebih terperinci

BAB 4 KONDISI / PEMILIHAN

BAB 4 KONDISI / PEMILIHAN BAB 4 KONDISI / PEMILIHAN Penyeleksian kondisi digunakan untuk mengarahkan perjalanan suatu proses. Penyeleksian kondisi dapat diibaratkan sebagai katup atau kran yang mengatur jalannya air. Bila katup

Lebih terperinci

PRAKTIKUM MINGGU 1 IDE DELPHI

PRAKTIKUM MINGGU 1 IDE DELPHI I. TUJUAN INTRUKSIONAL KHUSUS Setelah menyelesaikan materi ini diharapkan mahasiswa dapat : 1. Mengenal konsep pemrograman visual 2. Menyebutkan bagian-bagian dari IDE Delphi 3. Menggunakan IDE Delphi

Lebih terperinci

PEMROGRAMAN WEB 09 JavaScript Lanjut

PEMROGRAMAN WEB 09 JavaScript Lanjut PEMROGRAMAN WEB 09 JavaScript Lanjut Andi WRE JavaScript Objects Object Based Programming language Setiap object dapat memiliki properti dan method Properti the values associated with an object Contoh

Lebih terperinci

BAB 2 : Dasar Penulisan Statemen SQL. 2.1. Sasaran Mengetahui kemampuan dari SQL SELECT Statement Dapat membuat perintah SQL dengan SELECT Statement

BAB 2 : Dasar Penulisan Statemen SQL. 2.1. Sasaran Mengetahui kemampuan dari SQL SELECT Statement Dapat membuat perintah SQL dengan SELECT Statement BAB 2 : Dasar Penulisan Statemen SQL 2.1. Sasaran Mengetahui kemampuan dari SQL SELECT Statement Dapat membuat perintah SQL dengan SELECT Statement 2.2. Dasar Statement SELECT Sintak (cara penulisan) dari

Lebih terperinci

PRAKTIKUM 1 DASAR PEMROGRAMAN JAVA

PRAKTIKUM 1 DASAR PEMROGRAMAN JAVA PRAKTIKUM 1 DASAR PEMROGRAMAN JAVA A. TUJUAN 1. Memahami tentang lingkungan java 2. Memahami tentang aplikasi program java sederhana 3. Memahami tentang proses input dan output B. DASAR TEORI Bahasa pemrograman

Lebih terperinci

www.konsultasivb.com

www.konsultasivb.com Oleh : Uus Rusmawan Hal - 1 Program Ganti Password User Catatan : Anda harus membuat database dan memiliki tabel kasir terlebih dahulu. Field Type Size Ket Kodeksr Text 5 Primary Key Namaksr Text 30 Passwordksr

Lebih terperinci

Asal Mula Software Komputer

Asal Mula Software Komputer Asal Mula Software Komputer Barian Berial Siswoyo ryan.wisastra@yahoo.com Abstrak Software Komputer adalah kumpulan dari pada intruksi atau statement yang di susun secara logis dan berbentuk kode yang

Lebih terperinci

BAB 5 Mendapatkan Input dari Keyboard

BAB 5 Mendapatkan Input dari Keyboard BAB 5 Mendapatkan Input dari Keyboard 5.1 Tujuan Kita sudah mempelajari konsep mendasar pada Java dan menulis beberapa program sederhana. Sekarang kita akan mencoba membuat program kita lebih interaktif

Lebih terperinci

BAB II LANDASAN TEORI. komputer. Bahasa komputer berasal dari bahasa asing yaitu To Compute, yang artinya

BAB II LANDASAN TEORI. komputer. Bahasa komputer berasal dari bahasa asing yaitu To Compute, yang artinya BAB II LANDASAN TEORI 2.1 Pengertian Komputer Dalam merancang sebuah sistem informasi, digunakan suatu alat pendukung yaitu komputer. Bahasa komputer berasal dari bahasa asing yaitu To Compute, yang artinya

Lebih terperinci

2. DASAR TEORI 2.1 PHP5

2. DASAR TEORI 2.1 PHP5 Modul 2 1. TUJUAN Mahasiswa dapat memahami pemrograman server side menggunakan PHP5 Mahasiswa dapat mengetahui sintak-sintak yang digunakan dalam penanganan form dengan menggunakan metode GET dan POST

Lebih terperinci

Fungsi (Function) Pendahuluan. Objektif. Bahan Bacaan

Fungsi (Function) Pendahuluan. Objektif. Bahan Bacaan Fungsi (Function) Pendahuluan Fungsi (function) adalah sub modul atau sub program yang dibuat untuk menyelesaikan hal tertentu. Fungsi memiliki nama dan dalam ANSI/C, diimplementasi untuk hal-hal yang

Lebih terperinci

Mei 2006 Oleh : Feri Djuandi. www.tobuku.com

Mei 2006 Oleh : Feri Djuandi. www.tobuku.com MEMBUAT SSCI_NET DENGAN C# Mei 2006 Oleh : Feri Djuandi Tingkat: Pemula Menengah Mahir 6.1. Kompilasi ssci_net.cs Bagian terakhir dari artikel ini adalah uraian tambahan yang sifatnya opsional karena pembahasan

Lebih terperinci

Fungsi Lanjut DASAR PEMROGRAMAN

Fungsi Lanjut DASAR PEMROGRAMAN Fungsi Lanjut DASAR PEMROGRAMAN Tujuan Mengerti variabel dalam Fungsi a. Variabel lokal b. Variabel eksternal b. Variabel statis c. Variabel register Memahami dalam menciptakan sejumlah fungsi. 2 Jenis-jenis

Lebih terperinci

Bab 2 POKOK BAHASAN: TUJUAN BELAJAR: 2.1 KOMPONEN SISTEM

Bab 2 POKOK BAHASAN: TUJUAN BELAJAR: 2.1 KOMPONEN SISTEM Bab 2 Struktur Sistem Operasi POKOK BAHASAN: Komponen Sistem Operasi Layanan Sistem Operasi Sistem Call Sistem Program Struktur Sistem Operasi Mesin Virtual TUJUAN BELAJAR: Setelah mempelajari materi dalam

Lebih terperinci

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class Tessy Badriyah, SKom. MT. http://lecturer.eepis-its.edu/~tessy Pendahuluan Pada bagian ini, kita akan membuat program berbasis obyek menggunakan

Lebih terperinci

Bab 12 Prosedure dan Fungsi

Bab 12 Prosedure dan Fungsi Bab 12 Prosedure dan Fungsi taryanarx@yahoo.com http://kuliahonline.unikom.ac.id Target Pencapaian Siswa mengerti erti cara kerja prosedure, kemudian membuat dan mengaplikasi prosedure dalam program Prosedur

Lebih terperinci

Menampilkan List Komputer dan User-nya dalam Jaringan Intranet Dengan Fungsi WNet API

Menampilkan List Komputer dan User-nya dalam Jaringan Intranet Dengan Fungsi WNet API Menampilkan List Komputer dan User-nya dalam Jaringan Intranet Dengan Fungsi WNet API Artikel ini telah dipublikasikan pada majalah Mikrodata Vol. 8 Series 17, Agustus 2002. Agus Kurniawan agusk@cs.ui.ac.id

Lebih terperinci

Array. Pengantar. int a, b, c, d, e;

Array. Pengantar. int a, b, c, d, e; Array Pengantar Program yang cukup kompleks membutuhkan variabel dalam jumlah besar. Kita mungkin saja mendeklarasikan variabel-variabel tersebut satu per satu. Andaikan sebuah program membutuhkan 5 (lima)

Lebih terperinci

ALGORITMA & PEMROGRAMAN 1

ALGORITMA & PEMROGRAMAN 1 ALGORITMA & PEMROGRAMAN 1 Tri Ginanjar Laksana tryanjar@yahoo.com laksana.anjar@gmail.com 0899-7373-392 Tri Ginanjar Laksana Lahir di Majalengka, 7 Agustus 1985 SD Negeri Kesambi Dalam 2 Cirebon (1992)

Lebih terperinci

LOGIKA DAN ALGORITMA

LOGIKA DAN ALGORITMA LOGIKA DAN ALGORITMA Penyusun: Ali Ridho Barakbah, S.Kom., PhD. NIP.197308162001121001 Tita Karlita, S. Kom., M.Kom. NIP. 197910142002122002 Ahmad Syauqi Ahsan, S.Kom. NIP. 197505302003121001 Program Studi

Lebih terperinci

Menghapus Pointer Statement yang digunakan untuk menghapus pointer adalah Dispose, yang mempunyai bentuk umum : Dispose(peubah) ;

Menghapus Pointer Statement yang digunakan untuk menghapus pointer adalah Dispose, yang mempunyai bentuk umum : Dispose(peubah) ; Maka sekarang kita mempunyai dua buah simpul yang ditunjuk oleh P1 dan P2. Setelah itu kita dapat melakukan pengaksesan data, yaitu dengan menuliskan : P1^.Nama_Peg := Ariswan ; P1^.Alamat := Semarang

Lebih terperinci

PERTEMUAN 1 Membuat Project & Komponen Swing [PBO II JAVA] dosen : SOPINGI, S.Kom

PERTEMUAN 1 Membuat Project & Komponen Swing [PBO II JAVA] dosen : SOPINGI, S.Kom PERTEMUAN 1 Membuat Project & Komponen Swing [PBO II JAVA] dosen : SOPINGI, S.Kom 1. Membuat Project Baru File New Project Browse : Cari folder tempat untuk menyimpan Project. 2. Membuat Form baru menggunakan

Lebih terperinci

MODUL PRAKTIKUM PRAKTEK ALGORITMA DAN PEMROGRAMAN II

MODUL PRAKTIKUM PRAKTEK ALGORITMA DAN PEMROGRAMAN II MODUL PRAKTIKUM PRAKTEK ALGORITMA DAN PEMROGRAMAN II MODUL I ARRAY DIMENSI I (1 x pertemuan) I. TUJUAN - Mempelajari tipe terstruktur Array dimensi satu. II. TEORI SINGKAT Array atau Larik adalah Type

Lebih terperinci

! " #!!! $ "!! % &! '!! (!! % " " #! "! $ " % ) " #$! " % * " +!% "!, " -!! #. $.! ). *. + - /.!

!  #!!! $ !! % &! '!! (!! %   #! ! $  % )  #$!  % *  +!% !,  -!! #. $.! ). *. + - /.! BAB XII DAYA GUNA 12.1 Pendahuluan Daya guna adalah tingkat produk dapat digunakan yang ditetapkan oleh user untuk mencapai tujuan secara efektif dan tingkat kepuasan dalam menggukanya. (ISO 1998). Atribut

Lebih terperinci

Tidak ada satupun dari pilihan di atas yang benar karena checked exception tidak bisa ditulis

Tidak ada satupun dari pilihan di atas yang benar karena checked exception tidak bisa ditulis Waktu Sisa : 0:58:12 1. Package mana yang memiliki class IOException? java.util java.text java.error java.io 2. Pilihan manakah di bawah ini yang paling tepat mendeskripsikan langkah-langkah penting dalam

Lebih terperinci

Pertemuan 3 Struktur Kondisi dan Perulangan

Pertemuan 3 Struktur Kondisi dan Perulangan Diktat Kuliah Pemrograman Web Pertemuan Struktur Kondisi dan Perulangan Struktur Kondisi + Struktur Kondisi If + Struktur Kondisi If...Else + Struktur Kondisi Khusus? : + Struktur Kondisi Switch...Case

Lebih terperinci

visit : www.marisharingilmu.wordpress.com

visit : www.marisharingilmu.wordpress.com Lisensi Pocket Book Pocket Book ini dapat anda copy dan distribusikan dengan gratis untuk kegiatan pembelajaran. Selamat datang di Pocket Book edisi selanjutnya yaitu Pocket Book : Membuat Aplikasi Java

Lebih terperinci

BAB V FUNGSI Tujuan : 5.1 Dasar Fungsi

BAB V FUNGSI Tujuan : 5.1 Dasar Fungsi BAB V FUNGSI Tujuan : 1. Memecah program dalam fungsi fungsi yang sederhana. 2. Menjelaskan tentang pemrograman terstruktur. 3. Mengetahui perbedaan antara variabel lokal, eksternal, statis dan register

Lebih terperinci

STREAM DAN FILE. PipedInputStream, SequenceInputStream, dan StringBufferInputStream.

STREAM DAN FILE. PipedInputStream, SequenceInputStream, dan StringBufferInputStream. STREAM DAN FILE Proses penulisan dan pembacaan data sering kita sebut dengan proses input dan output, dimana penulisan data berarti mengalirkan data ke output dan menerima atau mendapatkan data dari input.

Lebih terperinci

PERINTAH-PERINTAH COMMAND PROMPT DI WINDOWS XP

PERINTAH-PERINTAH COMMAND PROMPT DI WINDOWS XP PERINTAH-PERINTAH COMMAND PROMPT DI WINDOWS XP By Gapra. Email : ga_pra_27@yahoo.co.id MS-DOS MS-DOS adalah singkatan dari Microsoft Disk Operating System, yaitu Sistem Operasi berbasis baris-perintah

Lebih terperinci

Panduan membuat aplikasi sederhana pada Smartphone berbasis Windows Mobile 5

Panduan membuat aplikasi sederhana pada Smartphone berbasis Windows Mobile 5 Panduan membuat aplikasi sederhana pada Smartphone berbasis Windows Mobile 5 Eko Riduwan eko@ekoriduwan.com http://www.ekoriduwan.com Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan,

Lebih terperinci

Melakukan Operasi Logika

Melakukan Operasi Logika Melakukan Operasi Logika Hampir semua statemen C++ adalah ekspresi. Operator C++ selain +, -, /, * yakni operator logika. Pada dasarnya orang2 menghitung menggunakan operasi AND dan OR Mengapa Menggunakan

Lebih terperinci

Fungsi Library EX-word TextLoader

Fungsi Library EX-word TextLoader EW-ID2000 Kamus Elektronik EX-word Fungsi Library EX-word TextLoader Pedoman Pemakaian Pendahuluan Pedoman Pemakaian ini menjelaskan cara menggunakan software EX-word TextLoader dan fungsi Library Kamus

Lebih terperinci

Krisna D. Octovhiana. 1.1 Mengenal Visual Basic (VB) mail4krisna@yahoo.com

Krisna D. Octovhiana. 1.1 Mengenal Visual Basic (VB) mail4krisna@yahoo.com Cepat Mahir Visual Basic 6.0 mail4krisna@yahoo.com Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit),

Lebih terperinci

Pengenalan bahasa C. membutuhkan kecermatan yang teliti bagi pemrogram karena perintahnya harus

Pengenalan bahasa C. membutuhkan kecermatan yang teliti bagi pemrogram karena perintahnya harus 27 Pengenalan bahasa C 1. Pendahuluan Bahasa C adalah bahasa pemrograman yang dapat dikatakan berada di antara bahasa beraras rendah dan beraras tinggi. Bahasa beraras rendah artinya bahasa yang berorientasi

Lebih terperinci

Menggunakan CodeBlock Dengan Cepat (platform non linux) Oleh:wijanarto

Menggunakan CodeBlock Dengan Cepat (platform non linux) Oleh:wijanarto Menggunakan CodeBlock Dengan Cepat (platform non linux) Oleh:wijanarto Tutorial ini di tujukan untuk mahasiswa yang baru mengenal bahasa c dengan compiler GCC yang berjalan di platform bukan Linux. IDE

Lebih terperinci

MODUL PRAKTIKUM DASAR PEMROGRAMAN & KOMPUTER

MODUL PRAKTIKUM DASAR PEMROGRAMAN & KOMPUTER MODUL PRAKTIKUM DASAR PEMROGRAMAN & KOMPUTER LABORATORIUM KOMPUTER Jurusan Teknik Industri Fakultas Teknologi Industri Tahun Ajaran 2013/2014 UNIVERSITAS ISLAM SULTAN AGUNG (UNISSULA) i KATA PENGANTAR

Lebih terperinci

Pengambilan Keputusan

Pengambilan Keputusan Pengambilan Keputusan TUJUAN Menjelaskan tentang operator kondisi (operator relasi dan logika) Menjelaskan penggunaan pernyataan if Menjelaskan penggunaan pernyataan if-else Menjelaskan penggunaan pernyataan

Lebih terperinci

Praktikum 5 Mencetak Output

Praktikum 5 Mencetak Output Praktikum 5 Mencetak Output Tujuan Pembelajaran Mahasiswa dapat memahami dan menggunakan perintah mencetak output dalam bahasa pemrograman awk. Dasar Teori Salah satu intruksi yang paling sering digunakan

Lebih terperinci

4. Melakukan pengawasan terhadap kinerja proyek merupakan pengertian dari... a. Chronicling b. Perubahan c. Analisa d. Bottlenecks

4. Melakukan pengawasan terhadap kinerja proyek merupakan pengertian dari... a. Chronicling b. Perubahan c. Analisa d. Bottlenecks A. Pengembangan Sistem Pakar 1. Maksud dari tools dalam pemilihan problem pada Sistem Pakar adalah.... a. Alasan dibuatnya Sistem Pakar b. Produk yang dihasilkan dalam Sistem Pakar c. Bayaran apa yang

Lebih terperinci

Teknik-Teknik Penyesuaian Sensor

Teknik-Teknik Penyesuaian Sensor Teknik-Teknik Penyesuaian Sensor Workshop Teknologi Sensor & Aktuator Untuk Kontes Robot Indonesia Nopember 2007 riyanto@eepis-its.edu Politeknik Elektronika Negeri Surabaya Materi 1. Teknik-Teknik Penyesuaian

Lebih terperinci

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id Kinerja yang perlu ditelaah pada algoritma: beban komputasi efisiensi penggunaan memori Yang perlu

Lebih terperinci

PANDUAN OLIMPIADE DAN KISI-KISI SOAL OLIMPIADE SAINS KOMPUTER

PANDUAN OLIMPIADE DAN KISI-KISI SOAL OLIMPIADE SAINS KOMPUTER PANDUAN OLIMPIADE DAN KISI-KISI SOAL OLIMPIADE SAINS KOMPUTER I. Panduan Olimpiade Secara Umum a. Peserta ujian wajib mengenakan seragam sekolah lengkap. b. Peserta ujian hadir di tempat ujian 30 menit

Lebih terperinci

Contoh Soal 1. Cari Maksimum (Soal ini pernah diberikan dalam OSN 2003, Balikpapan)

Contoh Soal 1. Cari Maksimum (Soal ini pernah diberikan dalam OSN 2003, Balikpapan) Contoh-contoh soal Pemrograman Pascal, Seleksi TOKI halaman 1 Contoh Soal 1. Cari Maksimum (Soal ini pernah diberikan dalam OSN 2003, Balikpapan) Pembahasan oleh : Ilham Kurnia, Alumni TOKI 2003 Nama Program:

Lebih terperinci

Bab 10. Konsep Proses

Bab 10. Konsep Proses Bab 10. Konsep Proses 10.1. Pendahuluan Proses didefinisikan sebagai program yang sedang dieksekusi. Menurut Silberschatz proses tidak hanya sekedar suatu kode program ( text section), melainkan meliputi

Lebih terperinci

MICROSOFT OFFICE POWERPOINT 2007

MICROSOFT OFFICE POWERPOINT 2007 MICROSOFT OFFICE POWERPOINT 2007 Cakupan Panduan : Menjalankan software presentasi Menggunakan menu-menu serta shortcut Menyimpan, memanggil, insert, edit Menggunakan Header, footer, page numbering Pencetakan

Lebih terperinci

PRAKTIKUM 11 POINTER 1

PRAKTIKUM 11 POINTER 1 PRAKTIKUM 11 POINTER 1 A. Tujuan 1. Menjelaskan tentang konsep dari variabel pointer 2. Menjelaskan tentang pointer array 3. Menjelaskan tentang pointer string B. DASAR TEORI Konsep Dasar Pointer Variabel

Lebih terperinci

Pemrograman Dekstop Pulut Suryati

Pemrograman Dekstop Pulut Suryati Pemrograman Dekstop Pulut Suryati Komponen jradiobutton, jcheckbox JCheckBox dan JRadioButton hanya bisa mempunyai dua buah kemungkinan nilai, benar atau salah. Kedua komponen ini digunakan untuk merepresentasikan

Lebih terperinci

PROJEK. Kemudian kirimkan melalui e-learning ini sebelum tanggal terakhir pengumpulan yang telah ditentukan.

PROJEK. Kemudian kirimkan melalui e-learning ini sebelum tanggal terakhir pengumpulan yang telah ditentukan. PROJEK Pilih salah satu diantara soal-soal berikut. Compress file program dan file hasil kompilasi dalam zip file dan beri nama Projek-PBO-Nim-NamaAnggotaKelompok-NoSoalYangDipilih. Contoh: Projek-PBO-

Lebih terperinci

2.6. Struktur dasar sistem operasi

2.6. Struktur dasar sistem operasi c. System Call Layanan langsung sisem operasi ke pemogram adalah system call atau API (Application Programming Interface). System call adalah tata cara pemanggilan di program aplikasi untuk memperoleh

Lebih terperinci

Data Manipulation Language (DML)

Data Manipulation Language (DML) Modul ke: Data Manipulation Language (DML) Pemrograman Basis Data & SQL Fakultas FASILKOM Alen Boby Hartanto, S.Kom,M.M. Program Studi Sistem Informasi Data Manipulation Language DML (Data Manipulation

Lebih terperinci

Pemrograman Input/Output (I/O)

Pemrograman Input/Output (I/O) Praktikum 3 Pemrograman Input/Output (I/O) A. T U J U A N 1. Menggunakan statement echo dan printf untuk menampilkan data pada standar output (layar monitor) 2. Menggunakan statment read untuk memproses

Lebih terperinci

Membuat program sederhana mengendalikan lampu LED melalui port USB dengan VB. USB HIDClass<->IOConverter

Membuat program sederhana mengendalikan lampu LED melalui port USB dengan VB. USB HIDClass<->IOConverter Membuat program sederhana mengendalikan lampu LED melalui port USB dengan VB Pada kesempatan ini kita akan mencoba membuat program sederhana untuk mengendalikan (ON/OFF) lampu LED melalui port USB. Sebagai

Lebih terperinci

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR PROGRAM DENGAN KONDISI

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR PROGRAM DENGAN KONDISI LAPORAN PRAKTIKUM PEMROGRAMAN DASAR PROGRAM DENGAN KONDISI Disusun oleh : Nama : Sigit Pangestu NIM : 135150201111188 Asisten 1 : Fattah Rizki Hizama Lubbi Asisten 2 : Risza Nurrahman Asisten 3 : - Dosen

Lebih terperinci

Contoh Soal Olimpiade Sains BIDANG INFORMATIKA/KOMPUTER dan Pembahasan

Contoh Soal Olimpiade Sains BIDANG INFORMATIKA/KOMPUTER dan Pembahasan Buku Panduan Olimpiade Sains Bidang Komputer Contoh Soal Olimpiade Sains BIDANG INFORMATIKA/KOMPUTER dan Pembahasan Disusun Oleh: Tim Pembina Olimpiade Sains Bidang Komputer dan Alumni TOKI A. Soal Aritmatika,

Lebih terperinci

FUNGSI PADA PYTHON. def (arg1, arg2, arg3,,argn) :

FUNGSI PADA PYTHON. def <nama_fungsi>(arg1, arg2, arg3,,argn) : <statemen-statemen> FUNGSI PADA PYTHON 1. Pendahuluan Fungsi (Function) adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai sub-program (modul program) yang merupakan sebuah program kecil untuk memproses

Lebih terperinci

Gaya Dialog MENU Deskripsi Menu merupakan sekumpulan pilihan yang dapat dipilih user sesuai dengan keinginannya. Banyak variasi dari gaya dialog Menus, diantaranya : 1/16/2010 2 Contoh 1 OFFICE AUTOMATION

Lebih terperinci

Konsep SISTEM OPERASI. Pengenalan Sistem Operasi

Konsep SISTEM OPERASI. Pengenalan Sistem Operasi Konsep SISTEM OPERASI Pengenalan Sistem Operasi Course Objective Definisi Sistem Operasi. Peran Sistem Operasi dalam Sistem Komputer. Tujuan Sistem Operasi. Sejarah perkembangan Sistem Operasi. Sistem

Lebih terperinci

1. Rancangan Input Program Form Menu Utama Form Data Barang [ Input Barang ]

1. Rancangan Input Program Form Menu Utama Form Data Barang [ Input Barang ] 1. Rancangan Input Program Form Menu Utama Form Data Barang [ Input Barang ] L-1 Form Data Barang [ Browse ] Form Produksi L-2 Form Faktur Penjualan Form Pembeli L-3 Form Pembeli [ Browse ] Properti Form

Lebih terperinci

DAFTAR PERUBAHAN INDEX - A B C D E F G

DAFTAR PERUBAHAN INDEX - A B C D E F G Revisi A DAFTAR PERUBAHAN Deskripsi B C D E F G TGL INDEX - A B C D E F G Ditulis oleh Diperiksa oleh Disetujui oleh Jurusan Ilmu Komputer IPB DPPL - AKKSES Halaman 2 dari 39 Daftar Halaman Perubahan Halaman

Lebih terperinci

SISTEM KENDALI JARAK JAUH UNTUK KONTROL BUKA DAN TUTUP PINTU DENGAN MIKROKONTROLLER AT89S51

SISTEM KENDALI JARAK JAUH UNTUK KONTROL BUKA DAN TUTUP PINTU DENGAN MIKROKONTROLLER AT89S51 SISTEM KENDALI JARAK JAUH UNTUK KONTROL BUKA DAN TUTUP PINTU DENGAN MIKROKONTROLLER AT89S51 Arif Munandar (1111453) Mahasiswa Program Studi Teknik Informatika STMIK Budi Darma Medan Jl. Sisingamangaraja

Lebih terperinci

PERANGKAT LUNAK PENGAMBILAN KEPUTUSAN DALAM PENJADWALAN DENGAN METODE RECURSIVE LARGEST FIRST

PERANGKAT LUNAK PENGAMBILAN KEPUTUSAN DALAM PENJADWALAN DENGAN METODE RECURSIVE LARGEST FIRST PERANGKAT LUNAK PENGAMBILAN KEPUTUSAN DALAM PENJADWALAN DENGAN METODE RECURSIVE LARGEST FIRST Sadar Aman Gulo (0911040) Mahasiswa Program Studi Teknik Informatika, STMIK Budidarma Medan Jl. Sisingamangaraja

Lebih terperinci

Struktur Kontrol Kondisi Dalam PHP

Struktur Kontrol Kondisi Dalam PHP Struktur Kontrol Kondisi Dalam PHP RiyanSindiSaputra ssaputrariyan@gmail.com Abstrak Struktur kontrol dalam hal ini struktur control kondisi yang dimiliki PHP hampir sama seperti bahasa pemrograman lain.

Lebih terperinci

By. Rita Wiryasaputra

By. Rita Wiryasaputra By. Rita Wiryasaputra Pengenalan bahasa Java Konsep bahasa pemrograman Java Operator dan assignment Array Class Pewarisan Encapsulation Polymorphism Collection (list, vektor) J2ME (Pada perangkat bergerak)

Lebih terperinci

SISTEM PAKAR UNTUK MENDIAGNOSA PENYAKIT ANGINA PEKTORIS (ANGIN DUDUK) DENGAN MENGGUNAKAN METODE BAYES

SISTEM PAKAR UNTUK MENDIAGNOSA PENYAKIT ANGINA PEKTORIS (ANGIN DUDUK) DENGAN MENGGUNAKAN METODE BAYES SISTEM PAKAR UNTUK MENDIAGNOSA PENYAKIT ANGINA PEKTORIS (ANGIN DUDUK) DENGAN MENGGUNAKAN METODE BAYES Ayu Permata Lestari (0911267) Mahasiswa Program Studi Teknik Informatika, STMIK Budidarma Medan Jl.

Lebih terperinci

Sistem Operasi Jaringan

Sistem Operasi Jaringan Proxy server: komputer server yang bertindak sebagai penengah antara user di jaringannya dengan sumber daya eksternal yang sedang diakses. Recovery: usaha untuk mengembalikan kendali terhadap suatu sistem.

Lebih terperinci

MODUL 9 PENGENALAN SOFTWARE PROTEUS

MODUL 9 PENGENALAN SOFTWARE PROTEUS MODUL 9 PENGENALAN SOFTWARE PROTEUS TUJUAN 1. Praktikan dapat mengenal software proteus dan merancang skematik rangkaian elektronika serta simulasinya. 2. Praktikan dapat mewujudkan rangkaian yang di simulasikan.

Lebih terperinci

Menulis Makalah Yang Baik:

Menulis Makalah Yang Baik: Menulis Makalah Yang Baik: 1. Memilih topik, ide Teman saya Peter Turney memiliki bagian kunci dari saran: menjadi ambisius. Bayangkan setiap kertas baru Anda menulis sebagai referensi berlangsung selama

Lebih terperinci

DASAR KOMPUTER DAN PEMROGRAMAN

DASAR KOMPUTER DAN PEMROGRAMAN BUKU AJAR DASAR KOMPUTER DAN PEMROGRAMAN oleh : RINTA KRIDALUKMANA, S.Kom, M.T. Program Studi Sistem Komputer Fakultas Teknik Universitas Diponegoro 2009 Kata Pengantar Puji syukur penulis panjatkan kepada

Lebih terperinci

Control Structure. Suatu program tidak hanya linear/berurut, tetapi dapat bercabang, mengulang kode, atau mengambil keputusan

Control Structure. Suatu program tidak hanya linear/berurut, tetapi dapat bercabang, mengulang kode, atau mengambil keputusan Control Structure Control Structure Suatu program tidak hanya linear/berurut, tetapi dapat bercabang, mengulang kode, atau mengambil keputusan Terdapat beberapa stuktur kontrol yang dikenali C++ : if,

Lebih terperinci

Cara Mudah Membuat Aplikasi Windows dengan Microsoft Visual C++

Cara Mudah Membuat Aplikasi Windows dengan Microsoft Visual C++ Bab DATABASE Mengakses Database dengan ADO Database atau bisa juga disebut sebagai bank data, adalah sebuah sistem yang terdiri dari sebuah atau beberapa file. Database bisa terdiri dari beberapa tabel

Lebih terperinci

BAB IV ANALISA DAN DESAIN

BAB IV ANALISA DAN DESAIN 26 BAB IV ANALISA DAN DESAIN 4.1 Identifikasi Masalah Sebelum proses analisa dilakukan, tahapan yang terlebih dahulu dilakukan adalah identifikasi permasalahan yang terdiri dari survey, wawancara kepada

Lebih terperinci

Sesi 15 : Setup & Deployment

Sesi 15 : Setup & Deployment Sesi 15 : Setup & Deployment 1. Pendahuluan Aplikasi yang dibangun dengan menggunakan Visual Basic baru bisa diaktifkan jika komputer dimana aplikasi tersebut akan dijalankan telah ter-install Visual Basic/Visual

Lebih terperinci

BAGIAN 1: M. F ACHRURROZI

BAGIAN 1: M. F ACHRURROZI KONSEP DAN APLIKASI PEMROGRAMAN MENGGUNAKAN BORLAND C++ BUILDER 6 BAGIAN 1: APLIKASI KONSOL M. F ACHRURROZI Daftar Isi MUQADDIMAH 1. PENDAHULUAN 2. KONSEP DASAR PEMROGRAMAN 3. INSTALASI DAN PENGENALAN

Lebih terperinci

PANDUAN PRAKTIS MICROSOFT WORD 2007

PANDUAN PRAKTIS MICROSOFT WORD 2007 Bagian 1: Mengenal Microsoft Office Word 2007 1.1. Memulai Aplikasi Microsoft Office Word 2007 Untuk membuka Microsoft Word caranya adalah: Klik Tombol Start yang ada di taskbar. Pilih menu All Program

Lebih terperinci

BAB III ANALISA DAN PEMBAHASAN MASALAH. Didalam jaman komputer sekarang ini program aplikasi seperti ini sangat

BAB III ANALISA DAN PEMBAHASAN MASALAH. Didalam jaman komputer sekarang ini program aplikasi seperti ini sangat BAB III ANALISA DAN PEMBAHASAN MASALAH 3.1 Analisa Masalah Didalam jaman komputer sekarang ini program aplikasi seperti ini sangat dibutuhkan oleh setiap perusahaan dan organisasi yang bekerja dengan database

Lebih terperinci

Tugas IV PBO: Akses Database

Tugas IV PBO: Akses Database Tugas IV PBO: Akses Database Buatlah sebuah aplikasi pendataan barang yang menggunakan tabel barang sebagai berikut: Nama Tabel: Barang Nama field dan tipe data: 1. kodebrg: varchar2(5) 2. nama: varchar2(20)

Lebih terperinci

Modul Pengembangan Aplikasi Android Berbasis Client- Server Aplikasi sederhana android Versi 1.0

Modul Pengembangan Aplikasi Android Berbasis Client- Server Aplikasi sederhana android Versi 1.0 Modul Pengembangan Aplikasi Android Berbasis Client- Server Aplikasi sederhana android Versi 1.0 I Ketut Resika Arthana, M.Kom http://www.rey204.com resika.arthana@gmail.com Disajikan dalam mata kuliah

Lebih terperinci

Metodologi pengembangan sistem METODOLOGI PENGEMBANGAN SISTEM INFORMASI DIAN PALUPI RINI, M.KOM 1

Metodologi pengembangan sistem METODOLOGI PENGEMBANGAN SISTEM INFORMASI DIAN PALUPI RINI, M.KOM 1 Metodologi pengembangan sistem METODOLOGI PENGEMBANGAN SISTEM INFORMASI adalah metode-metode, prosedur-prosedur, konsep-konsep pekerjaan, aturan-aturan yang akan digunakan sebagai pedoman bagaimana dan

Lebih terperinci

PENGATURAN PROSES. Proses adalah program yang sedangdieksekusi atau sofware yang sedang dilaksanakan.

PENGATURAN PROSES. Proses adalah program yang sedangdieksekusi atau sofware yang sedang dilaksanakan. PENGATURAN PROSES Proses adalah program yang sedangdieksekusi atau sofware yang sedang dilaksanakan. 1. Konsep Dasar : Multiprogramming system. Melakukan proses satu persatu secara bergantian dalam waktu

Lebih terperinci

Perangkat Lunak Simulasi Langkah Kuda Dalam Permainan Catur

Perangkat Lunak Simulasi Langkah Kuda Dalam Permainan Catur Perangkat Lunak Simulasi Langkah Kuda Dalam Permainan Catur Hartono 1) Liva Junter 2) STMIK IBBI Medan Jl. Sei Deli No. 18 Medan, Telp. 061-4567111 Fax. 061-4527548 Email: hartonoibbi@gmail.com 1 Abstrak

Lebih terperinci

KOMPONEN DAN ARSITEKTUR BASIS DATA. Pengolahan Basis Data D3-TI STMIK AMIKOM

KOMPONEN DAN ARSITEKTUR BASIS DATA. Pengolahan Basis Data D3-TI STMIK AMIKOM KOMPONEN DAN ARSITEKTUR BASIS DATA Pengolahan Basis Data D3-TI STMIK AMIKOM KOMPONEN LINGKUNGAN DATABASE KOMPONEN LINGKUNGAN DATABASE Computer-aided software engineering (CASE) Tools Peranti otomasi untuk

Lebih terperinci