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

kuning. hijau pada kotak A. 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 .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.

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

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

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

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

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”. 20/1/'07 Pengantar 12 . Pada contoh dia atas. jika tidak terpenuhi kondisi bola berwarna merah maka yang dilakukan adalah memasukkan bola ke kotak C.

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 .

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 . 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 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 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. 20/1/'07 Pengantar 21 . Setiap instruksi dan spesifikasi harus didefinisikan dengan tepat dan tidak ambigu.Syarat Algoritma 1. harus jelas apakah nol bilangan positif atau bukan.

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

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 .

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

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 .

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

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.

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

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 . Java.Programming Paradigms • Object-oriented programming (OOP) – C++.

the name of the service to be performed. 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. depending on the class of the object providing the service 20/1/'07 Pengantar 34 .

a logic program can infer or deduce other facts 20/1/'07 Pengantar 35 .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.

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 .

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

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

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

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 .

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

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

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.3.

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

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 .

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

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

Sign up to vote on this title
UsefulNot useful