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

kotak B kosong status akhir: Bola pada kotak A berkurang 1. kuning. Akan diambil secara acak sebuah bola dari kotak A dan dimasukkan ke kotak B yang kosong. hijau pada kotak A. {status awal: kotak A berisi sejumlah bola. 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.

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

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 . dimana setelah bola diambil dari kotak A.Contoh 3 Berdasarkan contoh 1. 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.

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

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

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

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

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

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

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

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

Efektif. yaitu urutan instruksi sesederhana mungkin 20/1/'07 Pengantar 22 .Syarat Algoritma 3. Memiliki nol atau lebih keluaraan 5. 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 .Assembly Language • Instead of using hard-to-read machine language. 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 .

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.Assembly Language LD 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 .

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

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

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

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 .

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

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

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.

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

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

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

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.

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

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

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

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

Sign up to vote on this title
UsefulNot useful