Anda di halaman 1dari 16

RENCANA PROGRAM KEGIATAN PEMBELAJARAN SEMESTER (RPKPS)

PEMROGRAMAN DASAR

OLEH : Indriyana Hidayah Silmi Fauziati

JURUSAN TEKNIK ELEKTRO DAN TEKNOLOGI INFORMASI FAKULTAS TEKNIK UNIVERSITAS GADJAH MADA 2012

Nama Matakuliah Kode / SKS Prasyarat Status Matakuliah

: Pemrograman Dasar : TEI103 / 3 SKS : : Wajib

Deskripsi Singkat Matakuliah :


Matakuliah Pemrograman Dasar mempelajari konsep dan teori dasar pemrograman. Materi secara garis besar ditekankan pada komponen-komponen program, elemenelemen dasar pemrograman, dan penguasaan teknik menyelesaikan permasalahan pemrograman. Algoritma dituliskan dalam bentuk pseudocode dan diagram alir (flowchart), sedangkan implementasi dari algoritma ke source code diberikan dengan bahasa pemrograman C. Matakuliah ini diberikan pada semester 1 dan bersifat wajib bagi mahasiswa Program Studi Teknik Elektro dan Teknologi Informasi. Matakuliah prasyarat tidak ada. Materi pembelajaran diberikan dalam bentuk ceramah di dalam kelas, diskusi grup antar mahasiswa, latihan-latihan di akhir sesi kelas, dan tugas-tugas pemrograman di rumah untuk memecahkan masalah pemrograman menggunakan teknik pemrograman yang baru saja diberikan.

Tujuan Pembelajaran :
Setelah menyelesaikan matakuliah ini mahasiswa dapat memahami konsep dasar sistem komputer, komponen-komponen program, elemen-elemen dasar pembentukan sebuah program dan bagaimana membangun algoritma untuk menyelesaikan masalah yang diberikan.

Materi Pembelajaran :
1 Pengantar Pemrograman Dasar 1.1 Pengenalan Sistem Komputer 1.2 Konsep Pemrograman 1.3 Paradigma Pemrograman 1.4 Metodologi Perancangan Program 2 Pengembangan Program 2.1 Langkah-langkah Pengembangan Program 2.2 Perancangan program dengan algoritma dan pseudocode 2.3 Representasi algoritma dengan flowchart 2.4 Pengecekan algoritma 3 Tipe Data dan Struktur Data 3.1 Tipe data asal (primitif) 3.2 Tipe data bentukan 3.3 Konsep Struktur Data 4 Struktur Kontrol Seleksi 4.1 Struktur Kontrol Seleksi 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 Statement IF Sederhana Statement Null ELSE Statement Kombinasi IF Operator NOT Statement nested IF 4.1.5.1 Linear nested IF statement 4.1.5.2 Non-linear nested IF statement 4.2 Algoritma dengan seleksi 4.3 Struktur Case 4.4 Problem pemrograman

Struktur Kontrol Perulangan 5.1 DOWHILE structure 5.1.1 5.1.2 5.1.3 5.1.4 5.2.1 Leading Decision Loop DOWHILE dan perulangan tertentu (counted repetition) DOWHILE dan perulangan tak tertentu (uncounted repetition) Trailer Record atau Sentinel Trailing Decision Loop

5.2 Struktur REPEAT..UNTIL 5.3 Counted Repetition 5.4 Problem pemrograman 6 Kombinasi Kontrol Struktur Seleksi, Repetisi dan Sekuensial 6.1 Contoh-contoh problem pemrograman menggunakan kombinasi struktur 6.2 Implementasi ke Bahasa Pemrograman C 7 Proses Array 7.1 Pengantar 7.1.1 7.1.2 7.2.1 7.2.2 Operasi-operasi pada Array Algoritma sederhana untuk memanipulasi Array Memasukkan nilai konstan ke dalam Array Memasukkan nilai inisial melalui file input ke dalam Array 7.2.2.1 Array of variable size 7.2.2.2 Paired Array 7.3 Pencarian pada Array 7.3.1 7.3.2 Linear Search Binary Search

7.2 Inisialisasi elemen array

7.4 Penulisan isi Array 7.5 Array Dua Dimensi 7.5.1 7.5.2 Memuat nilai ke dalam array 2 dimensi Pencarian

7.6 Contoh problem pemrograman menggunakan array

Modularisasi 8.1 Pengantar Modularisasi 8.1.1 8.1.2 8.1.3 8.1.4 Proses Modularisasi Mainline Keuntungan penggunaan Contoh algoritma solusi menggunakan modul

8.2 Hierarchy Chart 8.3 Komunikasi antar modul 8.3.1 8.3.2 8.3.3 8.3.4 8.3.5 8.3.6 8.3.7 8.3.8 Lingkup variabel Global data Local data Side effects Passing parameter Parameter formal dan aktual Value parameter Reference parameter

8.4 Parameter dalam perancangan program 8.5 Langkah-langkah modularisasi 8.6 Contoh problem pemrograman menggunakan modul

Modularisasi Lanjutan 9.1 Modul Cohesion 9.1.1 9.1.2 9.1.3 9.1.4 9.1.5 9.1.6 9.1.7 Coincidental cohesion Logical cohesion Temporal cohesion Procedural cohesion Communicational cohesion Sequential cohesion Functional cohesion

9.2 Modul Coupling 9.2.1 9.2.2 9.2.3 9.2.4 9.2.5 Common coupling External coupling Control coupling Stamp coupling Data coupling

9.3 Problem pemrograman 10 Pengenalan Desain Berorientasi Obyek 10.1 Pengantar 10.1.1 Desain Prosedural vs Desain Beorientasi Obyek 10.1.2 Enkapsulasi dan information hiding 10.1.3 Obyek 10.1.4 Class 10.1.5 Attribute 10.1.6 Operasi 10.1.7 Constructor 10.1.8 Accessor dan Mutator 10.1.9 Message 10.1.10 Visibility 10.2 Langkah perancangan algoritma solusi berorientasi obyek 10.3 Contoh pemrograman menggunakan desain berorientasi obyek 11 Special Algorithm 11.1 Sorting Algorithms 11.2 Dynamic data structures 12 Flowchart 12.1 Tiga Struktur Kontrol Dasar 12.2 Algoritma sederhana menggunakan struktur kontrol sekuensial 12.3 Flowchart dan struktur kontrol seleksi 12.4 Algoritma sederhana menggunakan struktur kontrol sekuensial

12.5 Representasi flowchart untuk struktur case 12.6 Flowchart dan struktur kontrol berulang 12.7 Algoritma sederhana menggunakan struktur kontrol berulang 12.8 Contoh-contoh lanjutan menggunakan flowchart 12.9 Flowchart dan modul 13 Diagram Nassi-Scheidermann 13.1 Tiga Struktur Kontrol Dasar 13.2 Algoritma sederhana menggunakan struktur kontrol sekuensial 13.3 Diagram N-S dan struktur kontrol seleksi 13.4 Algoritma sederhana menggunakan struktur kontrol seleksi 13.5 Representasi N-S diagram untuk struktur case 13.6 N-S diagram dan struktur kontrol berulang 13.7 Algoritma sederhana menggunakan struktur kontrol berulang 14 Bahasa Pemrograman 14.1 Komparasi syntax Bahasa Pemrograman VB, Pascal, Delphi dan C 14.2 Translasi pseudocode ke dalam bahasa pemrograman

Outcome Pembelajaran:
1. Menjelaskan langkah-langkah dalam proses pengembangan program; mendiskusikan metodologi perancangan program terkini; pembentukan algoritma dan program data. 2. Mendiskusikan metode untuk menganalisa problem dan membentuk solusi; menjelaskan metode pengecekan manual bagi sebuah algoritma yang sudah dibangun. 3. Menjelaskan struktur kontrol seleksi dengan mengenalkan struktur seleksi ganda, seleksi bersarang dan konstruksi case dalam pseudocode; Menjelaskan pembentukan algoritma menggunakan variasi struktur kontrol seleksi. 4. 5. 6. Menjelaskan metode pengembangan algoritma menggunakan kontrol struktur repetisi dalam bentuk DOWHILE, REPEAT...UNTIL, dan loop repetisi tertentu. Mendiskusikan metode pengembangan algoritma dalam memecahkan problem yang menggunakan kombinasi kontruksi sekuensial, seleksi dan repetisi. Menjelaskan Array, operasi pada array dan algoritma untuk memanipulasi array; menjelaskan algoritma untuk array satu dan dua dimensi, meliputi inisialisasi array, pencarian dalam array, dan menampilkan isi dari array. 7. Mendiskusikan konsep modularisasi sebagai teknik pembagian problem menjadi subtask; Menjelaskan konsep hierarchy chart dan parameter passing; Menjelaskan algoritma pembentuk struktur modular. 8. 9. 10. Menjelaskan konsep kohesi dan coupling serta tingkatan-tingkatannya; Menjelaskan aplikasi pseudocode pada setiap level yang ada. Menjelaskan Flowchart dan diagram N-S, beserta semua komponennya sebagai representasi grafis dari algoritma pemrograman. Menjelaskan algoritma-algoritma khusus yang digunakan dalam bahasa pemrograman, seperti sorting dan struktur data dinamis.

Rencana Kegiatan Pembelajaran Mingguan (RKBM):


Minggu ke 1 Topik (Pokok Bahasan) Metode Pembelajaran o Ceramah o Menggunakan media OHP, papan tulis, notebook dan Infokus

1. Pengantar Pemrograman Dasar 1.1. Pengenalan Sistem Komputer 1.2. Konsep Pemrograman 1.3. Paradigma Pemrograman 1.4. Metodologi Perancangan Program 2. Pengembangan Program 2.1 Langkah-langkah pengembangan program 2.2 Perancangan program dengan algoritma dan pseudocode 2.3 Representasi Algoritma dengan flowchart 2.4 Pengecekan algoritma solusi 3. Tipe Data dan Struktur Data 3.1. Tipe data asal (primitif) 3.2. Tipe data bentukan 3.3. Konsep Struktur Data 4. Struktur Kontrol Seleksi 4.1 Struktur Kontrol Seleksi 4.1.1 Statement IF Sederhana 4.1.2 Statement Null ELSE 4.1.3 Statement Kombinasi IF 4.1.4 Operator NOT 4.1.5 Statement nested IF 4.1.5.1 Linear nested IF statement 4.1.5.2 Non-linear nested IF statement 4.2 Algoritma dengan seleksi 4.3 Struktur Case 5. Struktur Kontrol Perulangan 5.1 DOWHILE structure 5.1.1 Leading Decision Loop 5.1.2 5.1.3 DOWHILE dan perulangan tertentu (counted repetition) DOWHILE dan perulangan tak tertentu (uncounted repetition) 5.2 5.1.2 Trailer Record atau Sentinel Struktur REPEAT..UNTIL 5.2.1 Trailing Decision Loop

o Ceramah o Menggunakan media OHP, papan tulis, notebook dan Infokus

o Ceramah o Menggunakan media OHP, papan tulis, notebook dan Infokus o Ceramah o Menggunakan media OHP, papan tulis, notebook dan Infokus

o Ceramah o Menggunakan media OHP, papan tulis, notebook dan Infokus

10

5.3 5.4
6

Counted Repetition Problem pemrograman


o Tugas Kelompok, Diskusi o Menggunakan media OHP, papan tulis, notebook dan Infokus o Ceramah o Menggunakan media OHP, papan tulis, notebook dan Infokus

6. Kombinasi Kontrol Struktur Seleksi, Repetisi dan Sekuensial 6.1 Contoh-contoh problem pemrograman menggunakan kombinasi struktur 6.2 Implementasi ke Bahasa Pemrograman C 7. Proses Array 7.1 Pengantar 7.1.1 Operasi-operasi pada Array 7.1.2 Algoritma sederhana untuk memanipulasi Array 7.2 Inisialisasi elemen array 7.2.1 Memasukkan nilai konstan ke dalam Array 7.2.2 Memasukkan nilai inisial melalui file input ke dalam Array 7.2.1 Array of variable size 7.2.2 Paired Array 7.3 Pencarian pada Array 7.3.1 Linear Search 7.3.2 Binary Search 7.4 Penulisan isi Array 7.5 Array Dua Dimensi 7.5.1 Memuat nilai ke dalam array 2 dimensi 7.5.2 Pencarian 7.6 Contoh problem pemrograman menggunakan array UTS 9 8. Modularisasi 8.1 Pengantar Modularisasi 8.1.1 Proses Modularisasi 8.1.2 Mainline 8.1.3 Keuntungan penggunaan 8.1.4 Contoh algoritma menggunakan modul 8.3 Hierarchy Chart 8.4 Komunikasi antar modul 8.4.1 Lingkup variabel 8.4.2 Global data 8.4.3 Local data 8.4.4 Side effects 8.4.5 Passing parameter

8 9 8

o o o Ceramah o Menggunakan media OHP, papan tulis, notebook dan Infokus

solusi

11

8.5 8.6 8.7


9

8.4.6 Parameter formal dan aktual 8.4.7 Value parameter 8.4.8 Reference parameter Parameter dalam perancangan program Langkah-langkah modularisasi Contoh problem pemrograman menggunakan modul
o Ceramah o Menggunakan media OHP, papan tulis, notebook dan Infokus

9. Modularisasi Lanjutan 9.1 Modul Cohesion 9.1.1 Coincidental cohesion 9.1.2 Logical cohesion 9.1.3 Temporal cohesion 9.1.4 Procedural cohesion 9.1.5 Communicational cohesion 9.1.6 Sequential cohesion 9.1.7 Functional cohesion 9.2 Modul Coupling 9.2.1 Common coupling 9.2.2 External coupling 9.2.3 Control coupling 9.2.4 Stamp coupling 9.2.5 Data coupling 9.3 Problem pemrograman 10. Pengenalan Desain Berorientasi Obyek 10.1 Pengantar 10.1.1 Desain Prosedural vs Desain Beorientasi Obyek 10.1.2 Enkapsulasi & information hiding 10.1.3 Obyek 10.1.4 Class 10.1.5 Attribute 10.1.6 Operasi 10.1.7 Constructor 10.1.8 Accessor dan Mutator 10.1.9 Message 10.1.10 Visibility 10.2 Langkah perancangan solusi berorientasi obyek 10.3 Contoh pemrograman menggunakan desain berorientasi obyek 11. Special Algorithm 11.1 Sorting Algorithms 11.2 Dynamic data structures

10

o Ceramah o Menggunakan media OHP, papan tulis, notebook dan Infokus

11

12

o Ceramah o Menggunakan media OHP, papan tulis, notebook dan Infokus o Ceramah

12

13

14

14. Bahasa Pemrograman 1.1 Komparasi syntax Bahasa Pemrograman VB, Pascal, Delphi dan C 1.2 Translasi pseudocode ke dalam bahasa pemrograman 1.3 Introduksi Bahasa C

o Menggunakan media OHP, papan tulis, notebook dan Infokus o Ceramah o Menggunakan media OHP, papan tulis, notebook dan Infokus o Ceramah o Menggunakan media OHP, papan tulis, notebook dan Infokus

13

PENJABARAN RKBM:
1. Kuliah Minggu 1 Menjelaskan mengenai sistem komputer secara keseluruhan, cara kerja komputer dalam menerima informasi, menampilkan informasi, memroses data dengan melakukan perhitungan aritmatika, memasukkan sebuah nilai ke dalam variabel atau lokasi memori, membandingkan dua variabel dan memilih salah satunya, mengulang sekelompok aksi, serta menerangkan tentang komponen serta fungsi sistem komputer; Menjelaskan konsep dasar pemrograman; Menjelaskan paradikmaparadikma pemrograman; Menjelaskan metodologi perancangan program: procedure-driven, event-driven, data-driven. 2. Kuliah Minggu 2 Menjelaskan langkah-langkah pengembangan program: pendefinisian masalah, menetapkan solusi, mengembangkan solusi menjadi sebuah algoritma, mengecek kebenaran algoritma, melakukan coding algoritma ke dalam bahasa pemrograman tertentu, menjalankan program di komputer, dokumentasi dan perawatan program; Menjelaskan kedudukan algoritma dan pseudocode dalam perancangan program; Menjelaskan cara merepresentasikan algoritma dengan flow chart; Menjelaskan metode pengecekan manual bagi algoritma yang sudah dibangun (desk checking). 3. Kuliah Minggu 3 Menjelaskan secara detail tipe data asal, tipe data bentukan dan konsep struktur data yang bisa digunakan dalam sebuah program . 4. Kuliah Minggu 4 Menjelaskan penggunaan struktur seleksi sederhana, seleksi berganda dan nested seleksi dalam algoritma; Menjelaskan konstruksi case dalam pseudocode; Mengembangkan algoritma dengan menggunakan variasi struktur kontrol seleksi. 5. Kuliah Minggu 5 Menjelaskan pengembangan algoritma dengan menggunakan kontrol struktur DOWHILE dan REPEAT...UNTIL; Menjelaskan struktur pseudocode untuk loop perulangan tertentu (counted repetition); Menjelaskan pengembangan algoritma menggunakan variasi konstruksi repetisi. 6. Kuliah Minggu 6

14

Menjelaskan dan memberi contoh pengembangan algoritma solusi menggunakan kombinasi struktur kontrol; Menjelaskan implementasi program ke dalam bahasa pemrograman C. 7. Kuliah Minggu 7 Ujian Tengah Semester 8. Kuliah Minggu 8 Menjelaskan Array dan penggunaannya; Menjelaskan pengembangan algoritma pseudocode pada operasi-operasi dalam array; Menjelaskan manipulasi pada array tunggal dan dua dimensi. 9. Kuliah Minggu 9 Menjelaskan konsep modularisasi sebagai sarana untuk membagi problem menjadi subtask; Menjelaskan hierarchy chart sebagai representasi gambar dari struktur program modular; Menjelaskan komunikasi antar modul, variabel lokal dan global serta parameter yang dilewatkan antar modul; Menjelaskan cara pengembangan program yang menggunakan struktur modular. 10. Kuliah Minggu 10 Menjelaskan konsep cohesion sebagai ukuran untuk menentukan internal strenght dari sebuah modul; Menjelaskan konsep coupling sebagai ukuran untuk menentukan luas jangkauan pertukaran informasi antar modul. 11. Kuliah Minggu 11 Menjelaskan metode perancangan program berorientasi obyek; Menjelaskan definisi obyek, class, attributes, operasi dan information hiding; Menjelaskan langkahlangkah dalam merancang solusi berorientasi obyek dari suatu masalah. 12. Kuliah Minggu 12 Menjelaskan beberapa algoritma spesial yang banyak digunakan dalam teknik pemrograman modern: Algoritma sorting (Bubble sort, insertion sort, selection sort) dan struktur data dinamis (queues, stacks dan linked list). 13. Kuliah Minggu 13 Menjelaskan flowchart sebagai alternatif representasi sebuah algoritma dan penggunaannya pada tiga struktur kontrol dasar.

15

14. Kuliah Minggu 14 Menjelaskan diagram Nassi-Schneidermann sebagai alternatif representasi sebuah algoritma dan penggunaannya pada tiga struktur kontrol dasar. 15. Kuliah Minggu 15 Menjelaskan bahasa pemrograman modern yang ada; Membandingkan kode-kode dasar masing-masing bahasa pemrograman; Menjelaskan proses pengubahan pseudocode menjadi bahasa pemrograman; Pengenalan Bahasa C. 16. Kuliah Minggu 16 Ujian Akhir Semester.

EVALUASI:
1. 2. 3. 4. 5. Pemahaman Langkah-langkah Pengembangan Program Pemahaman Metodologi Perancangan Program Pemahaman Tiga Struktur Kontrol Dasar Pemrograman Pemahaman Konsep Modularisasi Program Pemahaman penggunaan pseudocode, flowchart dan diagram Nassi-Scheidermann sebagai representasi logika program

BAHAN, SUMBER INFORMASI DAN REFERENSI:


1. 2. 3. Robertson, L. Anne, 2004, Simple Program Design, Thomson Course Technology, United States of America. A.B. Tucker, 1995, Fundamentals of Computing I, McGraw-Hill, Inc., United States of America. L.L. Wear, 1991, Computers, McGraw-Hill, Inc., United States of America.

16