CS1023 Pemrograman Komputer

Lecture 1 Pengantar & Pengertian-pengertian dasar

Pengantar ProKom
• • • • Silabus matakuliah Pengantar algoritma Pengantar pemrograman Belajar Memprogram dan Belajar Bahasa Pemrograman • Interpreter dan Compiler • Compiler Pascal • Objektif Matakuliah
20/1/'07 Pengantar 2

Pengantar Algoritma

20/1/'07

Pengantar

3

Pengantar Algoritma

20/1/'07

Pengantar

4

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

20/1/'07

Pengantar

5

gelas C berisi minuman a } Tuangkan minuman a ke gelas C {status akhir: gelas B berisi minuman a. gelas B kosong } Aksi 3 {status awal: gelas B kosong.Penjelasan Contoh 1 Aksi 1 {status awal: gelas A berisi minuman a. gelas C kosong} Tuangkan minuman a ke gelas C {status akhir: gelas A kosong. gelas C berisi minuman a } Aksi 2 {status awal: gelas A kosong. gelas B berisi minuman b } Tuangkan minuman b ke gelas A {status akhir: gelas A berisi minuman b. gelas C kosong. } 20/1/'07 Pengantar 6 .

hijau pada kotak A. Akan diambil secara acak sebuah bola dari kotak A dan dimasukkan ke kotak B yang kosong.Contoh 2 Misalkan terdapat sebuah atau sejumlah bola berwarna merah. kotak B berisi sebuah bola} Algoritma Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak B 20/1/'07 Pengantar 7 . kuning. {status awal: kotak A berisi sejumlah bola. kotak B kosong status akhir: Bola pada kotak A berkurang 1.

20/1/'07 Pengantar 8 .Latihan 1 • Terdapat 4 buah bola yang tampilannya sama. • Buat algoritma untuk persoalan ini. 3 bola mempunyai berat yang sama dan sebuah bola lebih ringan atau lebih berat. Untuk mencari bola mana yang beratnya berbeda disediakan sebuah timbangan tanpa skala yang hanya bisa menunjukkan 2 benda beratnya sama atau tidak.

{status awal: kotak A berisi sejumlah bola. dimana setelah bola diambil dari kotak A. kotak B kosong status akhir: bola pada kotak A berkurang 1. bola tersebut disimpan di kotak B jika berwarna merah. kotak B kosong atau berisi sebuah bola merah} Algoritma Ambilkan 1 bola dari kotak A if bola berwarna merah then Masukkan bola terambil ke kotak B 20/1/'07 Pengantar 9 .Contoh 3 Berdasarkan contoh 1.

Perhatikan pemilihan kondisi pada baris ke-2. Skema pemilihan yang digunakan memiliki pola: if kondisi then aksi 20/1/'07 Pengantar 10 .

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 20/1/'07 Pengantar 11 .Contoh 4 {status awal: kotak A berisi sejumlah bola. kotak B dan C kosong status akhir: Bola pada kotak A berkurang 1.

20/1/'07 Pengantar 12 . Pada contoh dia atas.Perhatikan pemilihan kondisi pada baris ke-2. Skema pemilihan yang digunakan memiliki pola: if kondisi then aksi 1 else aksi 2 else menunjukkan “jika tidak terpenuhi”. jika tidak terpenuhi kondisi bola berwarna merah maka yang dilakukan adalah memasukkan bola ke kotak C.

kotak B kotak B berisi 5 B B B B B 13 . bola} Algoritma Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak 20/1/'07 Pengantar 5 bola.Contoh 5 {status awal: kotak A berisi kosong status akhir: kotak A kosong.

kotak B kosong status akhir: kotak A kosong.Contoh 6 {status awal: kotak A berisi 100 bola. kotak B berisi 100 bola} Algoritma repeat 100 times Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak B 20/1/'07 Pengantar 14 .

Pada algoritma di atas digunakan struktur: repeat n times Aksi 20/1/'07 Pengantar 15 .

Bagaimana jika jumlah bola pada kotak A tidak diketahui? 20/1/'07 Pengantar 16 .

Contoh 7 {status awal: kotak A berisi bola. kotak B berisi bola} Algoritma repeat Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak B Until kotak A kosong 20/1/'07 Pengantar 17 . kotak B kosong status akhir: kotak A kosong.

Bagaimana jika kotak A KOSONG ? 20/1/'07 Pengantar 18 .

kotak B kosong status akhir: kotak A kosong.Contoh 8 {status awal: kotak A kosong atau berisi bola. 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/1/'07 Pengantar 19 .

Latihan 2 Persoalan pada contoh 7 sedikit diubah dimana bola-bola dari kotak A akan dipindahkan ke 3 kotak lain berdasarkan warnanya sehingga kotak A kosong dan 3 kotak lain terisi dengan bola berwarna sejenis. 20/1/'07 Pengantar 20 .

Algoritma harus berhenti 2. Contohnya ketika kita membuat algoritma yang melibatkan bilangan positif. harus jelas apakah nol bilangan positif atau bukan. 20/1/'07 Pengantar 21 .Syarat Algoritma 1. Setiap instruksi dan spesifikasi harus didefinisikan dengan tepat dan tidak ambigu.

Memiliki nol atau lebih keluaraan 5. Efektif.Syarat Algoritma 3. Memiliki nol atau lebih masukan 4. yaitu urutan instruksi sesederhana mungkin 20/1/'07 Pengantar 22 .

Sejarah Bahasa Pemrograman First Generation Vacuum Tubes 1950-1957 Second Generation Transistors 1957-1965 Third Generation Integrated Circuits 1965-1975 Fourth Generation Even smaller Integrated circuits 1975-1985 First microcomputer Computer networks Electronic mail Graphical user interfaces Embedded systems Machine Language Assembly Languages High-level Programming Languages First minicomputer Birth of software industry Fifth Generation Transistors 1985-Present Parallel processors Handheld devices High-resolution graphics World wide web Massive storage devices Ubiquitous computing 20/1/'07 Pengantar 23 .

Machine Language • A machine generally processes very primitive calculator-like instructions: 􀂄 􀂄 “Get first number from memory” 􀂄 􀂄 “Get second number from memory” 􀂄 􀂄 “Add the two numbers” 􀂄 􀂄 “Store the results back in memory” • All of this is in binary code (machine language) 20/1/'07 Pengantar 24 .

What is this code executing? • 11000010 00000000 00101000 00101100 • 11000100 00000000 00101000 00110000 • 10000110 10001000 11000000 00000000 20/1/'07 Pengantar 25 .

Assembly Language • Instead of using hard-to-read machine language. user-oriented environment 20/1/'07 Pengantar 26 . use textual representations • Designed to overcome shortcomings of machine languages • Create a more productive.

Assembly Language • Earlier termed second-generation languages • Now viewed as low-level programming languages • Assembly language: considered “second-level” language 20/1/'07 Pengantar 27 .

y load the value of y into R2 in the CPU) ADD R0. R1. R2 (add contents of R1 and R2 and store it in R0) Still really annoying: what we want is “x + y” 20/1/'07 Pengantar 28 .Assembly Language LD R1. x (load the value of x into R1 in the CPU) LD R2.

High-level Languages • Started in the 50s/60s with FORTRAN and COBOL • Idea: take a higher-level description of what we want to do. and let the computer translate it into the machine language as specified before 20/1/'07 Pengantar 29 .

store binary commands in executable file • Alternative: interpret commands on the fly and issue low-level statements to the processor (BASIC does this) • C is compiled.High-level Languages • Called compiler because it might take a single high-level command. Java between compiled and interpreted 20/1/'07 Pengantar 30 . and compile a sequence of low-level commands – Input high-level language as text.

Programming Paradigms • A paradigm – A model or mental framework for representing or thinking about something • Programming Paradigms – Procedural – Object Oriented – Functional – Logic 20/1/'07 Pengantar 31 .

Programming Paradigms • Procedural programming – Fortran. resulting in the solution to the problem 20/1/'07 Pengantar 32 . etc. Pascal. – A sequence of detailed instructions is provided to the computer – Each instruction accesses or modifies the contents of a memory location – Computer carries out the instructions one at a time. C.

Java. SmallTalk – Each object is an example drawn from a class of similar objects – Encapsulation • A class consists of its subtask modules and its properties • Both are “encapsulated” in the class 20/1/'07 Pengantar 33 .Programming Paradigms • Object-oriented programming (OOP) – C++.

depending on the class of the object providing the service 20/1/'07 Pengantar 34 . a class B of objects can be defined as a “subclass” of A – Polymorphism • One name. has several meanings.Programming Paradigms – Inheritance • Once a class A of objects is defined. the name of the service to be performed.

Programming Paradigms • Functional Programming – Lisp – programming in terms of function calls – no use of temporary variables to store intermediate results (x = 5) • Logical Programming – Prolog – A series of logical deductions from known facts – Various facts are asserted to be true – On the basis of these facts. a logic program can infer or deduce other facts 20/1/'07 Pengantar 35 .

Belajar memrogram = Belajar bahasa pemrograman ? 20/1/'07 Pengantar 36 .

Interpreter Data Source Program Interpreter Machine Language Execute Output 20/1/'07 Pengantar 37 .

Compiler 20/1/'07 Pengantar 38 .

Jensen dan Niklaus Wirth.Compiler Pascal • Pascal adalah bahasa tingkat tinggi yang dirancang oleh Profesor Niklaus Wirth dari Technical University di Zurich. • Standar Pascal adalah bahasa Pascal yang didefinisikan oleh K. 20/1/'07 Pengantar 39 . • Nama Pascal diambil dari Blaise Pascal. Switzerland. ahli matematik dan philosophi terkenal abad 17 dari Perancis.

20/1/'07 Pengantar 40 .Objektif Matakuliah Kuliah ditekankan pada belajar memprogram dan bukan untuk mempelajari bahasa pemrograman tertentu.

Setelah menyelesaikan matakuliah ini mahasiswa diharapkan mampu mendefinisikan langkah-langkah sistematis untuk menyelesaikan persoalan-persoalan yang perlu diselesaikan dengan program dan mentranslasikannya ke dalam bahasa Pascal. 20/1/'07 Pengantar 41 .

20/1/'07 Pengantar 42 .Pada kuliah ini digunakan compiler Pascal dengan pertimbangan “kekakuan” skema program Pascal yang dipandang baik bagi pemrogram pemula.

Notasi Algoritmik 20/1/'07 Pengantar 43 .

Teks Algoritma Terdiri atas tiga bagian • Judul • Kamus • Algoritma 20/1/'07 Pengantar 44 .

Contoh teks algoritma 20/1/'07 Pengantar 45 .

Teks yang dituliskan diluar tanda kurung kurawal adalah teks algoritma 20/1/'07 Pengantar 46 .Pada setiap bagian akan didefinisikan & dituliskan NAMA atau komentar Komentar dituliskan diantara tanda kurung kurawal.

algoritma.NAMA Definisi Sesuatu yang dipakai sebagai identifikasi: Modul program. skema program dsb Fungsi Prosedur Type Tempat penyimpanan (nama variabel) Konstanta 20/1/'07 Pengantar 47 .

2. jika singkat harus disertai penjelasan.Aturan pemberian NAMA 1. tidak menimbulkan kerancuan. Dalam bahasa pemrograman. Pada teks algoritma tidak ada aturan ketat. Pemilihan nama harus interpretatif. setiap nama mempunyai aturan penulisan. contoh: x-y akan membingungkan sebab mungkin “x minus y” 20/1/'07 Pengantar 48 .

3. maka sebuah nama harus dituliskan secara utuh (tidak dipisah blank) supaya satu nama dapat dibedakan dengan nama lainnya (besaran leksikal lain) 20/1/'07 Pengantar 49 . Nama merupakan satu kesatuan leksikal.

Semua nama dalam program harus unik. artinya suatu nama hanya didefinisikan satu kali saja Semua nama yang dipakai dalam teks algoritma harus sudah didefinisikan pada salah satu bagian teks algoritma 20/1/'07 Pengantar 50 .

fungsi. atau modul Setelah judul tuliskan spesifikasi singkat dari teks algoritma. prosedur. Bagian judul identik dengan judul buku dan intisari pada suatu teks ilmiah dalam suatu makalah berbahasa Indonesia 20/1/'07 Pengantar 51 .JUDUL Bagian teks algoritma tempat mendefinisikan apakah teks tsb adalah program.

sekaligus spesifikasi Nama fungsi.KAMUS Definisi Bagian teks algoritma tempat mendefinisikan: Nama type Nama konstanta Nama informasi (nama variabel) Nama prosedur. sekaligus spesifikasi 20/1/'07 Pengantar 52 .

Contoh pendefinisian kamus 20/1/'07 Pengantar 53 .

ALGORITMA Definisi Bagian teks algoritma yang berisi instruksi atau pemanggilan aksi yang telah didefinisikan 20/1/'07 Pengantar 54 .

assignment Sequence Analisa kasus Pengulangan 20/1/'07 Pengantar 55 . seperti I/O.Komponen Algoritma Komponen teks algoritmik dalam pemrograman prosedural dapat berupa Instruksi dasar.

Referensi • Liem. 2003 20/1/'07 Pengantar 56 . Diktat kuliah Algoritma & Pemrograman. ITB. Inggriani.

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.