1/8/2011 Pertemuan 13-14: Dasar Pemrograman Sub pokok bahasan Penerapan Komputer (KOM201), SKS: 3(2-2) Departemen Ilmu Komputer, FMIPA-IPB Program Komputer dan Bahasa Pemrograman Program komputer: sekumpulan instruksi yang mengarahkan komputer untuk melalukan tugas tertentu. Bahasa pemrograman digunakan untuk menulis instruksi Bahasa pemrograman: kumpulan dari kata-kata yang sudah didefinisikan sebelumnya (predefined words) yang dikombinasikan dengan menggunakan sintaks Sintaks: suatu aturan yang sudah didefinisikan sebelumnya (predefined rules). Programmer, kadang-kadang dinamakan developer, membuat atau memodifikasi program komputer Program Komputer dan Bahasa Pemrograman Low-level language dan high-level language Low-level language Bersifat machine-dependent hanya berjalan pada satu tipe komputer Contoh: bahasa mesin dan bahasa assembly High-level language Umumnya bersifat machineindependent dapat berjalan pada tipe-tipe komputer yang berbeda Departemen Ilmu Komputer, FMIPA-IPB Low-Level Language – bahasa mesin Departemen Ilmu Komputer, FMIPA-IPB Bahasa simbolik (symbolic language) Muncul tahun 1950an Dibuat oleh Grace hopper, seorang matematikawan menggunakan simbol untuk mewakili instruksi-instruksi pada bahasa mesin. symbolic language disebut juga assembly language. assembler digunakan untuk menerjemahkan simbol ke dalam instruksi yang sebenarnya dalam bahasa mesin Bahasa yang dikenali oleh komputer secara langsung Muncul sekitar tahun 1940an Masing-masing jenis komputer pada masa itu memiliki bahasa mesinnya sendiri. Departemen Ilmu Komputer, FMIPA-IPB 1. 2. 3. 4. 5. entry main, ^m<r2> subl2 #12, sp jsb C$MAIN_ARS movab $CHAR_STRING_CON pushal -8(fp) Departemen Ilmu Komputer, FMIPA-IPB 1 1/8/2011 Low-Level Language – Bahasa Assembly Bahasa Pemrograman Tingkat Tinggi Muncul tahun 1960an Bahasa tingkat tinggi dirancang sehingga programmer tidak lagi harus memikirkan pengkodean sebuah instruksi mesin ke dalam simbol-simbol. Contoh: BASIC, COBOL, Pascal, Ada, dan C. Seperti bahasa simbolik, harus dikonversi ke dalam bahasa mesin. Instruksi-instruksi dibuat dari kode instruksi simbolik, singkatan yang memiliki makna dan kode Source program mengandung kode yang dikonversi ke bahasa mesin Departemen Ilmu Komputer, FMIPA-IPB Bahasa Pemrograman Tingkat Tinggi - Compiler 1. # include <iostream.h> 2. int main (void) 3. { 4. // Local declarations 5. int number1; 6. int number2; 7. int result; 8. // Statements 9. cin >> number1; 10. cin >> number2; 11. result = number1*number2; 12. cout << result; 13. return 0; 14.} //main Proses penerjemahan ke dalam bahasa mesin disebut proses kompilasi (compilation) Departemen Ilmu Komputer, FMIPA-IPB Langkah mendapat executable (machine language) file Program setelah ditulis dan disimpan dalam tempat penyimpanan disebut sebagai source file. Source file dikompilasi ke dalam bahasa mesin menjadi object file Object file kemudian mengalami proses ketiga yang disebut dengan linking process. Linker akan menghubungkan semua fungsi yang terdapat dalam program dengan modul dan library yang diperlukan untuk menghasilkan executable file. Program yang mengkonversi seluruh source program ke dalam bahasa mesin sebelum program tersebut dieksekusi Langkah mendapat executable (machine language) file: menulis dan mengedit program kompilasi terhadap program link program dengan modul dan library yang dibutuhkan Departemen Ilmu Komputer, FMIPA-IPB Bahasa Pemrograman Tingkat Tinggi - Interpreter Departemen Ilmu Komputer, FMIPA-IPB Kategori dan Contoh Bahasa Pemrograman tingkat tinggi Interpreter 1. membaca sebuah pernyataan dan 2. mengkonversinya ke satu atau lebih instruksi bahasa mesin dan 3. kemudian mengeksekusi instruksi bahasa mesin tersebut. Ketika menemukan error pada saat mengkonverksi satu baris kode program, pesan error akan segera ditampilkan pada layar dan program berhenti dieksekusi. interpreter tidak menghasilkan object program. Bahasa prosedural mengeksekusi setiap baris perintah satu persatu dari awal sampai akhir sesuai dengan urutan prosedur yang terdapat didalamnya. Contoh: FORTRAN, COBOL, Pascal, C, dan Ada. Disebut juga bahasa generasi ketiga (third-generation languange (3GL) Bahasa berorientasi obyek memiliki pandangan yang berbeda untuk menyelesaikan masalah. Bahasa berorientasi obyek memecah masalah menjadi obyek-obyek yang saling berkaitan. Contoh: C++ dan Java. Departemen Ilmu Komputer, FMIPA-IPB Departemen Ilmu Komputer, FMIPA-IPB 2 1/8/2011 Kategori dan Contoh Bahasa Pemrograman tingkat tinggi Algoritme Bahasa fungsional, sebuah program dianggap sebagai sebuah fungsi matematika. Contoh: LISP dan Scheme. Bahasa deklaratif menggunakan prinsip logika matematika untuk menjawab masalah yang ada. Program terdiri dari beberapa statement pendahuluan yang memuat fakta, untuk kemudian diakhiri dengan beberapa kesimpulan. Contoh: Prolog. Beberapa bahasa dikembangkan untuk berbagai keperluan khusus. Algoritme: urutan langkah-langkah terurut yang digunakan untuk menyelesaikan masalah. dibuat untuk membantu penulisan program. • Algoritme harus memenuhi sifat-sifat berikut: Langkah-langkah dalam algoritme harus sederhana dan tidak memiliki arti ganda. Algoritme harus efektif bahwa algoritme harus selalu menyelesaikan masalah dalam sejumlah langkah berhingga. Contoh: PERL dan SQL. Departemen Ilmu Komputer, FMIPA-IPB Tahap penyelesaian masalah menggunakan komputer Departemen Ilmu Komputer, FMIPA-IPB Deskripsi Algoritme Tahap penyelesaian masalah Penyelesaian dalam bentuk algoritme Langkah-langkah verbal. Diagram alur (flow chart), diagram alur menunjukkan logika dari algoritme yang menekankan langkah-langkah individual dan hubungannya. Simbol dalam diagram alur: Tahap implementasi Penyelesaian sebagai suatu program komputer proses keputusan input Departemen Ilmu Komputer, FMIPA-IPB output Departemen Ilmu Komputer, FMIPA-IPB Contoh algoritme sederhana: Langkah-langkah verbal Diberikan dua bilangan bulat (dalam variabel a dan b). Algoritme Tambah menentukan jumlah dari dua bilangan bulat dan mencetak hasil penjumlahan tersebut. Hasil penjumlahan disimpan dalam variabel jumlah. Algoritme Tambah 1 [Input dua bilangan bulat] baca(a,b) 2 [Hitung penjumlahan dua bilangan] jumlah ← a + b 3 [Output] cetak(jumlah) Keterangan: • Kalimat dalam kurung siku adalah keterangan yang memberikan penjelasan singkat tentang langkah tertentu. ∀ ← menyatakan operator penugasan Departemen Ilmu Komputer, FMIPA-IPB Departemen Ilmu Komputer, FMIPA-IPB 3 1/8/2011 Contoh 1 Langkah-langkah verbal Diberikan alas segitiga (dalam variabel alas) dan tinggi segitiga (dalam variabel tinggi). Algoritme Segitiga menentukan luas segitiga (disimpan dalam variabel luas) berdasarkan nilai alas dan tinggi yang diberikan. Algoritme volume_balok 1 [Input sisi1,sisi2,sisi3] baca(sisi1,sisi2,sisi3) 2 [Hitung volume balok] volume ← sisi1*sisi2*sisi3 3 [Output] cetak(volume) Departemen Ilmu Komputer, FMIPA-IPB Departemen Ilmu Komputer, FMIPA-IPB Contoh 2 Diberikan panjang dari sisi segitiga (dalam variabel sisi1, sisi2). Algoritme Phytagoras menentukan dan mencetak panjang sisi ke 3 (sisi3). sisi1 sisi3 Algoritme Phytagoras 1 [Input sisi yang diketahui] baca(sisi1, sisi2) 2 [Hitung kuadrat dari panjang sisi yang diketahui] SQ1 ← sisi1↑2 SQ2 ← sisi2↑2 (Maksud dari tahap ini adalah untuk mengurangi kompleksitas dari pernyataan dalam langkah 3) 3 [Hitung panjang sisi miring] sisi3 ← SQRT(SQ1+SQ2) (SQRT menunjukkan operasi akar kuadrat) 4 [Output] cetak(sisi1,sisi2,sisi3) Latihan: buat diagram alur untuk Algoritme Phytagoras sisi2 Departemen Ilmu Komputer, FMIPA-IPB Departemen Ilmu Komputer, FMIPA-IPB Dasar Pemrograman Pascal Struktur Bahasa Pascal Sejarah perkembangan Pascal dimulai pada tahun 1960, yaitu ketika bahasa ALGOL 60 digunakan sebagai algorithmic language. Nama Pascal diambil dari nama seorang ahli matematika dan ilmu pengetahuan bangsa Perancis, yaitu Blaise Pascal (1623-1662). Secara garis besar, Pascal terdiri dari tiga bagian utama, yaitu : Bagian Judul Program (Nama Program). Blok program, terdiri dari 2 bagian: Bagian Deklarasi : Terdiri dari Deklarasi / Definisi Tipe Data Deklarasi / Definisi Konstanta Deklarasi Label Deklarasi Variabel Deklarasi Procedure dan/atau Function Tampilan Editor Turbo Pascal for Windows Versi 1.5 Bagian pernyataan Departemen Ilmu Komputer, FMIPA-IPB Departemen Ilmu Komputer, FMIPA-IPB 4 1/8/2011 Program hello world {1} {2} {3} {4} {5} {6} {7} Contoh 1: Program Tambah program hello_world; uses wincrt; var world_stmt: string; begin world_stmt := 'Hello world!'; writeln(world_stmt); end. Departemen Ilmu Komputer, FMIPA-IPB Contoh 2: Program Segitiga Program Tambah; {Judul Program} Var x,y,z : integer; {Deklarasi Variabel} Begin x := 20; y := 30; x : = 10; z := x + y; End. {Awal Program } {Akhir Program} Departemen Ilmu Komputer, FMIPA-IPB Contoh 3: Program Volume Balok Program Segitiga; {Judul Program} Var alas,tinggi,luas : real; {Deklarasi Variabel} Program volume_balok; {Judul Program} Var sisi1,sisi2,sisi3,volume : integer; {Deklarasi Variabel} Begin {Awal Program } alas := 20; tinggi := 30; luas := (alas*tinggi)/2; End. {Akhir Program} Begin {Awal Program } sisi1:= 20; sisi2:= 25; sisi3:= 30; volume := sisi1*sisi2*sisi3; End. {Akhir Program} Departemen Ilmu Komputer, FMIPA-IPB Departemen Ilmu Komputer, FMIPA-IPB Pengertian Identifier Ketentuan penulisan identifier: Identifier diperlukan sebagai tanda pengenal untuk mencapai suatu lokasi memori. Identifier digunakan untuk : 1. Identifier harus dimulai oleh karakter huruf, yaitu : a ... z, atau A ... Z , atau karakter garis bawah (underscore) yaitu _ 2. Karakter berikutnya boleh menggunakan karakter numerik yaitu 0 ... 9 atau kombinasi dari karakter huruf dan numerik. 3. Jumlah karakter yang digunakan tergantung dari versi Pascal, tetapi umumnya tidak lebih dari 63 karakter, secara praktis angka ini sudah lebih dari cukup. 4. Tidak boleh menggunakan karakter istimewa. 5. Tidak membedakan huruf besar (kapital) dengan huruf kecil (Not Case Sensitive). Nama Program Nama Variabel, Konstanta, Label dan Tipe Data Nama Procedure dan Function. dengan identifier maka objek-objek pemrograman dipanggil untuk digunakan. Departemen Ilmu Komputer, FMIPA-IPB Departemen Ilmu Komputer, FMIPA-IPB 5 1/8/2011 Karakter istimewa Fungsi karakter-karakter istimewa adalah karakter karakter yang telah dicadangkan untuk keperluan tertentu seperti sebagai operator atau sebagai pembatas dan sebagainya. Karakter istimewa yang dimaksud adalah : + - * / = < > [ ] .,( ) 0 :;^ @ { } $ # + - * / digunakan untuk operasi aritmatika = < > digunakan untuk operasi relasional . ; sebagai delimiter , batas suatu program, statemen atau procedure { } sebagai tanda yang membatasi suatu komentar, dan sebagainya. Departemen Ilmu Komputer, FMIPA-IPB Departemen Ilmu Komputer, FMIPA-IPB Jenis Identifier Contoh penulisan identifier yang benar A ; _B ; B2 ; Sudut_A ; LuasLingkaran ;ABC3FG ; IdentifierYangSangatPanjang Contoh penulisan identifier yang salah • • • • 2D, karena karakter numerik tidak boleh ditulis pada posisi awal Sisi B, karena tidak diijinkan adanya karakter kosong (blank) Sudut-C, karena tanda - digunakan sebagai operator minus BC#, karena karakter # adalah karakter istimewa. Departemen Ilmu Komputer, FMIPA-IPB Variabel dan Konstanta Identifier Umum adalah identifier yang dapat ditulis secara bebas, sepanjang mengikuti aturan-aturan di atas. Identifier Standar adalah identifier yang pada dasarnya telah digunakan oleh Pascal di dalam kepustakaannya, walaupun demikian pemrogram boleh mendeklarasikan kembali. Sebagai contoh dari identifier standar yang digunakan oleh TURBO Pascal, adalah : pi, blue, maxint, dsb. Identifier Terlindung (Kata Terlindung) juga digunakan oleh Pascal, tetapi sama sekali tidak boleh dideklarasikan kembali oleh pemrogram , contoh identifier terlindung atau kata terlindung (reserved word): program, begin, end, var, const, type, while, do dsb. Departemen Ilmu Komputer, FMIPA-IPB Mendeklarasikan variabel adalah Variabel adalah konsep matematis yang menggunakan simbol, dimana simbol tersebut dapat dioperasikan dengan nilai yang berbeda dan boleh berbeda pada setiap saat tergantung keperluan. Konstanta, sebuah lokasi memori yang telah diberi identifier, hanya saja isi dari lokasi tersebut tetap sepanjang program berjalan. Variabel dan kosntanta keterkaitan dengan tipe data dan seperangkat operator. Departemen Ilmu Komputer, FMIPA-IPB 1. Menentukan atau memberi identitas dengan cara memberi nama variabel 2. Menentukan tipe data Contoh deklarasi variabel : var x,y : integer; Z: real; Departemen Ilmu Komputer, FMIPA-IPB 6 1/8/2011 Mendefinisikan konstanta adalah Tipe Data 1. Menentukan atau memberi identitas dengan cara memberi nama konstanta 2. Menentukan nilai konstanta, dari nilai konstanta tersebut dapat diketahui tipe data. Contoh deklarasi konstanta : const k = 10; Const phi = 3.14; Tipe Data 1. Tipe Data Sederhana sederhana Integer (Bilangan Bulat) Real (Bilangan Pecahan) Char (Karakter Integer alphanumerik dan tandatanda baca) Boolean (Logika) 2. Tipe Data Terstruktur Array Record, Set dan File 3. Tipe Data Pointer Ukuran Lokasi Rentang Nilai 2 Byte - 32768 s/d 32767 Real 6 Byte 29 x 10 -39 s/d 1.7 x 10 38 Char 1 Byte Boolean 1 Byte Departemen Ilmu Komputer, FMIPA-IPB Tabel ASCII False, True Departemen Ilmu Komputer, FMIPA-IPB Tipe Data Char Tipe Data String dan Boolean Tipe char merupakan tipe data yang non-numerik, nilai yang dapat diberikan kepada suatu variabel dengan tipe data char, adalah semua karakter yang ada di tabel ASCII Contoh deklarasi variabel char : var c : char; Contoh deklarasi konstanta char : const Tidak = ‘T’; Penulisan karakter adalah dengan mengapit karakter dengan tanda petik tunggal ('), sebagai contoh, karakter A harus ditulis 'A', demikian juga karakter numerik, misalnya karakter numerik 6 harus ditulis '6'. Tipe data string yaitu tipe data yang dapat mendeklarasikan suatu variabel sehingga dapat menampung lebih dari satu karakter. Bila suatu variabel direncanakan untuk menampung 10 karakter, maka ia harus dideklarasikan sebagai tipe string, yaitu dengan deklarasi variabel : var s : string[10]; Deklarasi konstanta string : const E = ‘Tekan Tombol Enter’; Tipe data Boolean Mempunyai dua kemungkinan nilai : True atau False. Contoh deklarasi tipe boolean : var sukses : boolean; Departemen Ilmu Komputer, FMIPA-IPB Operator Departemen Ilmu Komputer, FMIPA-IPB Operator Logika • Beberapa jenis operator standar, yaitu operator aritmatika, boolean, relational, set dan string, Operator Aritmetika Operator Operasi Tipe Operand Tipe hasil Operasi Tipe Operand Tipe hasil Not Negasi Boolean Boolean + Penambahan Integer, real Integer atau real and Logika AND Boolean Boolean - Pengurangan Integer real Integer Real or Logika OR Boolean Boolean * Perkalian Integer real Integer Real Xor Logika XOR Boolean Boolean / Pembagian Integer Real Real Real mod Pembagian Integer Sisa bagi Integer Operator div Integer DepartemenInteger Ilmu Komputer, FMIPA-IPB Departemen Ilmu Komputer, FMIPA-IPB 7 1/8/2011 Operator Relasional Operator Tipe Operand Tipe hasil Sama Dengan Sederhana,String Pointer, dan Set Boolean Tidak Sama Dengan Idem < Lebih Kecil Dari Sederhana,String > Lebih Besar Dari Idem Boolean <= Lebih Kecil atau Sama Dengan Idem Boolean Lebih Besar atau Sama Dengan Idem Boolean = <> >= Operasi Ekspresi Boolean Boolean kombinasi atau gabungan antara operator dengan operand (variabel, konstanta, bilangan dsb.), contoh ekspresi yang paling sederhana adalah sebuah variabel, misalkan : var a : integer; variabel a merupakan ekspresi yang paling sederhana, karena ekspresi selalu menghasilkan suatu nilai, pada contoh di atas nilai ekpresi a adalah isi dari variabel a itu sendiri. Departemen Ilmu Komputer, FMIPA-IPB Jenis ekspresi sesuai dengan jenis nilai yang dihasilkan, yaitu : Ekspresi Numerik, nilainya selalu numerik, integer atau real Ekspresi Boolean, nilainya selalu boolean, true atau false. Ekspresi String, dengan nilai string. Perbandingan Penulisan Ekspresi Departemen Ilmu Komputer, FMIPA-IPB Pernyataan seleksi (1) Konstruksi IF-THEN-ELSE: IF “kondisi’ THEN “pernyataan 1” ELSE “pernyataan 2” Contoh: Ekspresi Matematika Ekspresi Pascal a+b x(y+z) b2 - 4.a.c a+b x*(y+z) b*b-4*a*c IF A > B Then cetak(A) Else cetak(B) Departemen Ilmu Komputer, FMIPA-IPB Pernyataan seleksi (2) Departemen Ilmu Komputer, FMIPA-IPB Masukan dan Keluaran Pernyataan masukan read(x); artinya : masukan data dari papan tombol ke variabel x. Pernyataan penayangan ke layar write dan writeln. write('TEST'); Dengan perintah write, kata TEST akan ditayangkan di layar monitor,pada posisi kursor sebelum perintah dijalankan, setelah perintah dijalankan, kursor pindah ke ujung kata TEST. writeln('TEST'); Sama seperti perintah write, tetapi posisi kursor pindah ke baris berikutnya, setelah perintah writeln dijalankan. Diagram alur IF-THEN Diagram alur IF-THEN-ELSE Departemen Ilmu Komputer, FMIPA-IPB Departemen Ilmu Komputer, FMIPA-IPB 8 1/8/2011 Contoh Program Rata-rata Algoritme Rata-rata 1 [Input dua bilangan bulat] baca(a,b) 2 [Hitung penjumlahan dan rata-rata dua bilangan] jumlah ← a + b rataan ← jumlah/2 3 [Output] cetak(rataan) Program rata2; var a,b,jumlah : integer; rataan : real; begin {1} write('Masukan nilai pertama : '); readln(a); {2} write('Masukan nilai kedua : '); readln(b); {3} jumlah := a + b; {4} rataan := jumlah/2; {4} writeln(‘Rataan = ', rataan:6:2); end. Output: Masukan data pertama : 20 Masukan data kedua : 30 Rataan = 25.00 Departemen Ilmu Komputer, FMIPA-IPB program phytagoras; Departemen Ilmu Komputer, FMIPA-IPB program rataan_nilai; uses wincrt; uses wincrt; var a, b,kuadrat_a, kuadrat_b: integer; c: real; begin write('masukan sisi write('masukan sisi kuadrat_a := a*a; kuadrat_b := b*b; c:=sqrt(kuadrat_a + writeln('nilai sisi 1: ');readln(a); 2: ');readln(b); kuadrat_b); 3: ', c:4:2, ' cm'); end. var nama : string[10]; nrp: string[9]; n_penkom, n_kimia, rataan:real; begin writeln('---------------------------'); write('masukan nama: '); readln(nama); write('masukan nrp: '); readln(nrp); write('1. nilai penkom: '); readln(n_penkom); write('2. nilai kimia: '); readln(n_kimia); rataan:=(n_penkom+n_kimia)/2; writeln('rataan : ', rataan:6:2); writeln('---------------------------'); end. Departemen Ilmu Komputer, FMIPA-IPB Tahapan membuat program sederhana Departemen Ilmu Komputer, FMIPA-IPB Penutup 1. Definisi masalah • IPO chart 2. Pembuatan algoritme Setelah dibuat, algoritme harus diuji untuk menentukan apakah algoritme tersebut telah melakukan proses yang benar. Pengujian algoritme dapat dilakukan dengan memberikan data untuk variabel input dan mencatat nilai yang diambil oleh variabel pada setiap langkah dalam algoritme. Setiap langkah dieksekusi secara berurutan. 3. Implementasi menggunakan bahasa permograman Departemen Ilmu Komputer, FMIPA-IPB Departemen Ilmu Komputer, FMIPA-IPB 9