Anda di halaman 1dari 59

KUG1E3 Pemrograman Terstruktur I

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

Aturan Perkuliahan
Komponen Nilai :
UTS : 35% UAS : 35% Tugas + Quis: 30%

Kehadiran MINIMAL 75 %

Penilaian ( N = Skala 100 )


A : N 75 B : 60 N < 75 C : 45 N < 60 D : 25 N < 45 E : N < 25

Aturan Perkuliahan
Tugas :
Berupa tugas yang dikerjakan pada saat kuliah dan homework. Kemungkinan ada tugas besar. Sediakan satu buku latihan. Tugas koding dikumpulkan pada saat materi berikutnya berlangsung Tool pemrograman : Pascal. Delphi Yang dikumpulkan untuk koding adalah capture hasil dan source code]

Aturan Perkuliahan
Toleransi Keterlambatan 10 Menit Non Aktifkan Alat Komunikasi Pakai Seragam sesuai dengan Panduan Akademik Tidak Boleh Ramai di Kelas

Pengantar Algoritma

20/1/'07

Pengantar

Pengantar Algoritma

20/1/'07

Pengantar

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

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 B kosong } Aksi 3 {status awal: gelas B kosong, gelas C berisi minuman a } Tuangkan minuman a ke gelas C {status akhir: gelas B berisi minuman a, gelas C kosong, }
20/1/'07 Pengantar 9

Contoh 2
Misalkan terdapat sebuah 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
20/1/'07 Pengantar 10

Latihan 1

Terdapat 4 buah bola yang tampilannya sama. 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. Buat algoritma untuk persoalan ini.
20/1/'07 Pengantar 11

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

Perhatikan pemilihan kondisi pada baris ke-2. Skema pemilihan yang digunakan memiliki pola: if kondisi then aksi

20/1/'07

Pengantar

13

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

14

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. Pada contoh dia atas, jika tidak terpenuhi kondisi bola berwarna merah maka yang dilakukan adalah memasukkan bola ke kotak C.

20/1/'07

Pengantar

15

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
16

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

20/1/'07

Pengantar

17

Pada algoritma di atas digunakan struktur: repeat n times Aksi

20/1/'07

Pengantar

18

Bagaimana jika jumlah bola pada kotak A tidak diketahui?

20/1/'07

Pengantar

19

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

20/1/'07

Pengantar

20

Bagaimana jika kotak A KOSONG ?

20/1/'07

Pengantar

21

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/1/'07

Pengantar

22

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

23

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

20/1/'07

Pengantar

24

Syarat Algoritma
3. Memiliki nol atau lebih masukan 4. Memiliki nol atau lebih keluaraan 5. Efektif, yaitu urutan instruksi sesederhana mungkin

20/1/'07

Pengantar

25

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 Processor 1985-Present


Parallel processors Handheld devices High-resolution graphics World wide web Massive storage devices Ubiquitous computing
20/1/'07 Pengantar 26

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 27

What is this code executing?

11000010 00000000 00101000 00101100 11000100 00000000 00101000 00110000 10000110 10001000 11000000 00000000

20/1/'07

Pengantar

28

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

29

Assembly Language
Earlier termed second-generation languages Now viewed as low-level programming languages Assembly language: considered second-level language

20/1/'07

Pengantar

30

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

31

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

32

High-level Languages
Called compiler because it might take a single high-level command, 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; Java between compiled and interpreted
20/1/'07 Pengantar 33

Interpreter
Data

Source Program

Interpreter

Machine Language

Execute

Output

20/1/'07

Pengantar

34

Compiler

20/1/'07

Pengantar

35

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

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 37

Programming Paradigms
Procedural programming
Fortran, C, Pascal, 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, resulting in the solution to the problem
20/1/'07 Pengantar 38

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

39

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, the name of the service to be performed, has several meanings, depending on the class of the object providing the service
20/1/'07 Pengantar 40

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 41

Belajar memrogram = Belajar bahasa pemrograman ?

20/1/'07

Pengantar

42

Objektif Matakuliah
Kuliah ditekankan pada belajar memprogram dan bukan untuk mempelajari bahasa pemrograman tertentu.

20/1/'07

Pengantar

43

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 44

Pada kuliah ini digunakan compiler Pascal dengan pertimbangan kekakuan skema program Pascal yang dipandang baik bagi pemrogram pemula.

20/1/'07

Pengantar

45

Notasi Algoritmik

20/1/'07

Pengantar

46

Teks Algoritma

Terdiri atas tiga bagian Judul Kamus / deklarasi Algoritma

20/1/'07

Pengantar

47

Contoh teks algoritma

20/1/'07

Pengantar

48

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 49

NAMA
Definisi Sesuatu yang dipakai sebagai identifikasi: Modul program, algoritma, skema program dsb Fungsi Prosedur Type Tempat penyimpanan (nama variabel) Konstanta

20/1/'07

Pengantar

50

Aturan pemberian NAMA


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

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) 4. Dimulai dg alphabet 5. Tdk boleh memuat operator matematik 6. Bersifat unik
20/1/'07 Pengantar 52

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 53

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

KAMUS
Definisi Bagian teks algoritma tempat mendefinisikan: Nama type Nama konstanta Nama informasi (nama variabel) Nama prosedur, sekaligus spesifikasi Nama fungsi, sekaligus spesifikasi

20/1/'07

Pengantar

55

Contoh pendefinisian kamus

20/1/'07

Pengantar

56

ALGORITMA

Definisi Bagian teks algoritma yang berisi instruksi atau pemanggilan aksi yang telah didefinisikan

20/1/'07

Pengantar

57

Komponen Algoritma
Komponen teks algoritmik dalam pemrograman prosedural dapat berupa
Instruksi dasar, seperti I/O, assignment
Sequence

Analisa kasus
Pengulangan

20/1/'07

Pengantar

58

Referensi
Liem, Inggriani. Diktat kuliah Algoritma & Pemrograman. ITB. 2003

20/1/'07

Pengantar

59