Dokumen tersebut merupakan ringkasan materi perkuliahan Pengantar Pemrograman Komputer yang mencakup pengertian algoritma dan pemrograman, pengenalan bahasa pemrograman, interpreter dan compiler, serta objektif mata kuliah tersebut yang bertujuan membekali mahasiswa dengan kemampuan mendefinisikan langkah sistematis untuk menyelesaikan masalah melalui pemrograman dalam bahasa Pascal.
5. Contoh 1 Terdapat dua jenis minuman dalam 2 gelas berukuran sama A dan B, kedua minuman akan ditukarkan tempatnya. {status awal: gelas A berisi minuman a, gelas B berisi minuman b status akhir: gelas A berisi minuman b, gelas B berisi minuman a} {Dibutuhkan sebuah gelas kosong yaitu gelas C} Algoritma Tuangkan minuman a ke gelas C Tuangkan minuman b ke gelas A Tuangkan minuman a ke gelas B
6.
7. Contoh 2 Misalkan terdapat sebuah atau sejumlah bola berwarna merah, kuning, hijau pada kotak A. Akan diambil secara acak sebuah bola dari kotak A dan dimasukkan ke kotak B yang kosong. {status awal: kotak A berisi sejumlah bola, kotak B kosong status akhir: Bola pada kotak A berkurang 1, kotak B berisi sebuah bola} Algoritma Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak B
8.
9.
10.
11. Contoh 4 {status awal: kotak A berisi sejumlah bola, kotak B dan C kosong status akhir: Bola pada kotak A berkurang 1, kotak B atau kotak C kosong atau berisi sebuah bola} Algoritma Ambilkan 1 bola dari kotak A if bola berwarna merah then Masukkan bola terambil ke kotak B else Masukkan bola terambil ke kotak C
12.
13. Contoh 5 {status awal: kotak A berisi 5 bola, kotak B kosong status akhir: kotak A kosong, kotak B berisi 5 bola} Algoritma Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak B Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak B Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak B Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak B Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak B
14. Contoh 6 {status awal: kotak A berisi 100 bola, kotak B kosong status akhir: kotak A kosong, kotak B berisi 100 bola} Algoritma repeat 100 times Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak B
15.
16.
17. Contoh 7 {status awal: kotak A berisi bola, kotak B kosong status akhir: kotak A kosong, kotak B berisi bola} Algoritma repeat Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak B Until kotak A kosong
18.
19. Contoh 8 {status awal: kotak A kosong atau berisi bola, kotak B kosong status akhir: kotak A kosong, kotak B berisi bola atau tetap kosong} Algoritma If kotak A tidak kosong then repeat Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak B until kotak A kosong
20.
21.
22.
23. Sejarah Bahasa Pemrograman First Generation Vacuum Tubes 1950-1957 Machine Language Second Generation Transistors 1957-1965 Assembly Languages High-level Programming Languages Third Generation Integrated Circuits 1965-1975 First minicomputer Birth of software industry Fourth Generation Even smaller Integrated circuits 1975-1985 First microcomputer Computer networks Electronic mail Graphical user interfaces Embedded systems Fifth Generation Transistors 1985-Present Parallel processors Handheld devices High-resolution graphics World wide web Massive storage devices Ubiquitous computing
Saat ini komputer telah banyak membantu tugas manusia. Dalam banyak kasus, komputer terlihat pintar bahkan lebih pintar dari manusia, sehingga sering muncul anggapan bahwa komputer bisa mengerjakan apa pun untuk memberikan hasil yang diinginkan manusia. Komputer tidak begitu saja bisa menyelesaikan masalah yang disodorkan. Orang harus merumuskan langkah-langkah penyelesaian masalah itu dalam bentuk urutan instruksi yang disebut dengan program. Tanpa program, komputer tetaplah sebuah perangkat keras yang tidak bisa melakukan apa-apa. Dengan semakin banyaknya bahasa pemrograman, pemecahan masalah tidak dilakukan dengan langsung menulis programnya. Perlu dibangun sebuah rancangan pemecahan masalah yang berisi urutan langkah-langkah untuk mencapai solusi dengan bahasa yang tidak tergantung pada bahasa pemrograman tertentu. Urutan langkah-langkah sistematis untuk menyelesaikan suatu masalah dinamakan algoritma .
Algoritma merupakan deskripsi pelaksanaan suatu proses yang disusun dari sederetan langkah instruksi yang logis. Tiap langkah instruksi mengerjakan suatu aksi . Efek pengerjaan dari suatu aksi dapat diamati dengan membandingkan status awal yaitu kondisi sebelum aksi dilakukan dan status akhir yaitu kondisi setelah aksi dilakukan. Merancang algoritma dimulai dengan menentukan status awal dan status akhir yang ingin dicapai dari sebuah proses.
Perhatikan contoh 1. Contoh 1 terdiri dari 3 instruksi. Status awal dan status akhir dari algoritma ditulis pada 2 baris teratas. Untuk setiap aksi yang dilakukan masing-masing instruksi bisa ditentukan status awal dan status akhir seperti pada slide. Perhatikan bahwa status akhir dari sebuah aksi menjadi status awal bagi aksi berikutnya
Adakalanya sebuah aksi dilakukan jika kondisi tertentu terpenuhi. Perhatikan algoritma berikut.
Notasi if menunjukkan “jika terpenuhi” dan then berarti “maka”. Aksi aksi hanya dilakukan jika kondisi terpenuhi. Pada algoritma di atas, bola yang terambil pada instruksi pertama akan dimasukkan ke kotak B jika berwarna merah. Jika bola terambil tidak berwarna merah, tidak ada aksi yang dilakukan.
Jika persoalan diperluas yaitu dengan menempatkan bola terambil yang bukan berwarna merah ke kotak lain maka algoritma menjadi seperti di bawah ini:
Sering terjadi aksi yang sama perlu dilakukan beberapa kali. Perhatikan contoh 5 berikut: Kotak A berisi 5 bola berwarna merah, kuning, hijau. Satu per satu bola akan dipindahkan ke kotak B sampai kotak A kosong Pada algoritma di atas terjadi pengulangan aksi sebanyak 5 kali, bagaimana jika bola yang harus dipindahkan berjumlah besar, misalkan 100, haruskah instruksi ditulis 100 kali?
Nilai n menunjukkan berapa kali aksi harus dilakukan. Masalahnya bagaimana jika jumlah bola pada kotak A tidak diketahui? yang diketahui adalah kondisi akhir kotak A setelah aksi-aksi dilakukan yaitu kotak kosong.
Pada contoh di atas aksi mengambil bola dari kotak A dan menyimpannya di kotak B akan berlangsung terus sampai kondisi berhenti yaitu kotak A kosong terpenuhi.
Jika persoalan diperluas dimana kotak A mungkin kosong maka algoritma akan berubah seperti pada slide
Program merupakan implementasi dari algoritma dalam bentuk sekumpulan instruksi untuk dikerjakan oleh mesin (komputer). Program ditulis dengan menggunakan bahasa pemrograman. Berdasarkan kedekatan notasinya dengan mesin kita mengenal istilah bahasa pemrograman tingkat rendah dan bahasa pemrograman tingkat tinggi.
Belajar memprogram adalah belajar tentang strategi pemecahan masalah, metodologi, dan sistematika pemecahan masalah kemudian menuangkannya dalam suatu notasi yang disepakati bersama. Belajar memprogram lebih bersifat belajar pemahaman persoalan, analisis, dan sintesis. Belajar bahasa pemrograman adalah belajar memakai suatu bahasa, aturan sintaks (tatabahasa), setiap instruksi yang ada dan tata cara pengoperasian kompilator bahasa yang bersangkutan pada mesin tertentu. Lebih lanjut, belajar bahasa pemrograman adalah belajar untuk memanfaatkan instruksi-instruksi dan kiat yang dapat dipakai secara spesifik hanya pada bahasa itu. Belajar pemrograman lebih bersifat keterampilan. Proses memprogram adalah proses yang memerlukan kepakaran. Termasuk di dalamnya adalah memilih merancang paradigma dan merancang strategi pemecahan masalah. Pengkodean merupakan bagian dari proses memprogram. Yang dilakukan pada proses pengkodean merupakan proses translasi algoritma ke dalam bentuk program dengan bahasa pemrograman tertentu. Pengajaran pemrograman titik beratnya adalah membentuk seorang perancang ( designer ) program, sedangkan pengajaran bahasa pemrograman adalah membentuk seorang coder . Pada kenyataannya belajar memprogram dan belajar bahasa pemrograman tidak bisa dilepaskan satu sama lain. Seorang pemrogram harus membuat rancangan program yang mungkin ditranslasikan ke bahasa pemrograman.
Agar komputer dapat memahami program yang disusun dengan bahasa pemrograman, maka dibutuhkan interpreter atau compiler. Interpreter merupakan penerjemah bahasa pemrograman yang menterjemahkan instruksi demi instruksi pada saat eksekusi program. Pada saat menerjemahkan, interpreter akan memeriksa sintaksis, leksikal, dan semantik dari setiap instruksi program. Jika ditemukan kesalahan sintaksis maka interpreter akan menampilkan pesan kesalahan dan proses eksekusi program akan langsung berhenti.
Compiler merupakan penerjemah bahasa pemrograman yang menerjemahkan instruksi-instruksi dalam satu kesatuan modul ke dalam bahasa mesin (object program). Kemudian object program akan mengalami proses linking yang berfungsi untuk menggabungkan modul tersebut dengan modul lain yang berkaitan. Hasil dari proses linking adalah executable program yaitu file untuk dieksekusi oleh komputer. Bila pada saat proses penterjemahan atau linking terjadi kesalahan, maka proses eksekusi akan berhenti dan tampil pesan kesalahan.
Profesor Niklaus Wirth memperkenalkan kompilator (compiler) bahasa Pascal pertama kali untuk komputer CDC 6000 (Control Data Corporation) yang dipublikasikan tahun 1971 dengan tujuan untuk membantu mengajar program komputer secara sistematik, khususnya memperkenalkan pemrograman terstruktur. Dalam waktu singkat Pascal telah menjadi bahasa yang popular di kalangan akademisi dan menjadi bahasa yang diajarkan di beberapa perguruan tinggi. Beberapa professional komputer juga mulai beralih ke bahasa Pascal. Pascal menjadi bahasa yang paling cepat popular. Standar Pascal adalah bahasa Pascal yang didefinisikan oleh K. Jensen dan Niklaus Wirth. Standar Pascal di Eropa didefinisikan oleh ISO (International Standar Organization) dan di Amerika oleh kerjasama antara ANSI (American National Standar Institute) dengan IEEE (Institute of Electrical and Electronic Engineers). Beberapa versi dari Pascal telah beredar di pasaran, diantaranya MS-Pascal, Apple Pascal, Turbo pascal, dan lain sebagainya.
Matakuliah Pemrograman Komputer di STT Telkom diberikan dalam 3 SKS bagi mahasiswa program sarjana pada tahun pertama. Kuliah diberikan dalam bentuk perkuliahan di kelas dan praktek di laboratorium. Di luar itu mahasiswa sangat dianjurkan untuk banyak membaca algoritma dan program.