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.Penjelasan Contoh 1 Aksi 1 {status awal: gelas A berisi minuman a. gelas C berisi minuman a } Aksi 2 {status awal: gelas A kosong. gelas B kosong } Aksi 3 {status awal: gelas B kosong. } 20/1/'07 Pengantar 6 . gelas B berisi minuman b } Tuangkan minuman b ke gelas A {status akhir: gelas A berisi minuman b. gelas C kosong. gelas C kosong} Tuangkan minuman a ke gelas C {status akhir: gelas A kosong.

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 20/1/'07 Pengantar 7 . kuning. hijau pada kotak A.Contoh 2 Misalkan terdapat sebuah atau sejumlah bola berwarna merah. {status awal: kotak A berisi sejumlah bola. Akan diambil secara acak sebuah bola dari kotak A dan dimasukkan ke kotak B yang kosong.

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

bola tersebut disimpan di kotak B jika berwarna merah. kotak B kosong status akhir: bola pada kotak A berkurang 1. dimana setelah bola diambil dari kotak A. 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. {status awal: kotak A berisi sejumlah bola.

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

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 20/1/'07 Pengantar 11 .

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

Contoh 5 {status awal: kotak A berisi kosong status akhir: kotak A kosong. 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. kotak B kotak B berisi 5 B B B B B 13 .

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 .Contoh 6 {status awal: kotak A berisi 100 bola. kotak B kosong status akhir: kotak A kosong.

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 .

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.Contoh 7 {status awal: kotak A berisi bola.

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

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 . kotak B kosong status akhir: kotak A kosong.

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 .

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

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

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. use textual representations • Designed to overcome shortcomings of machine languages • Create a more productive. user-oriented environment 20/1/'07 Pengantar 26 .

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 .

x (load the value of x into R1 in the CPU) LD R2.Assembly Language LD R1. 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 .

and let the computer translate it into the machine language as specified before 20/1/'07 Pengantar 29 .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 compile a sequence of low-level commands – Input high-level language as text. 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 .

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 .

etc. – 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. Pascal. resulting in the solution to the problem 20/1/'07 Pengantar 32 . C.Programming Paradigms • Procedural programming – Fortran.

Programming Paradigms • Object-oriented programming (OOP) – 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 – Inheritance • Once a class A of objects is defined. a class B of objects can be defined as a “subclass” of A – Polymorphism • One name. has several meanings. depending on the class of the object providing the service 20/1/'07 Pengantar 34 . 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 .

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

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 .

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

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 .

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

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

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

3. Nama merupakan satu kesatuan leksikal. 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 .

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 .Semua nama dalam program harus unik.

fungsi. 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. atau modul Setelah judul tuliskan spesifikasi singkat dari teks algoritma. prosedur.

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

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 .

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

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

Sign up to vote on this title
UsefulNot useful