RENCANA PROGRAM KEGIATAN
PEMBELAJARAN SEMESTER (RPKPS)
PEMROGRAMAN DASAR
OLEH :
Indriyana Hidayah
Silmi Fauziati
JURUSAN TEKNIK ELEKTRO DAN TEKNOLOGI INFORMASI
FAKULTAS TEKNIK
Nama Matakuliah : Pemrograman Dasar
Kode / SKS : TEI103 / 3 SKS
Prasyarat :
-Status Matakuliah : Wajib
Deskripsi Singkat Matakuliah :
Matakuliah Pemrograman Dasar mempelajari konsep dan teori dasar pemrograman. Materi secara garis besar ditekankan pada komponen-komponen program, elemen-elemen 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 :
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 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 DOWHILE dan perulangan tertentu (counted repetition) 5.1.3 DOWHILE dan perulangan tak tertentu (uncounted repetition) 5.1.4 Trailer Record atau Sentinel
5.2 Struktur REPEAT..UNTIL 5.2.1 Trailing Decision Loop 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 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.2.1 Array of variable size
7.2.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
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 solusi menggunakan modul 8.2 Hierarchy Chart
8.3 Komunikasi antar modul 8.3.1 Lingkup variabel 8.3.2 Global data 8.3.3 Local data 8.3.4 Side effects 8.3.5 Passing parameter
8.3.6 Parameter formal dan aktual 8.3.7 Value parameter
8.3.8 Reference parameter
8.4 Parameter dalam perancangan program 8.5 Langkah-langkah modularisasi
8.6 Contoh problem pemrograman menggunakan modul
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.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 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.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 BahasaPemrograman
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. Menjelaskan metode pengembangan algoritma menggunakan kontrol struktur repetisi dalam bentuk DOWHILE, REPEAT...UNTIL, dan loop repetisi tertentu. 5. Mendiskusikan metode pengembangan algoritma dalam memecahkan problem
yang menggunakan kombinasi kontruksi sekuensial, seleksi dan repetisi.
6. 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. Menjelaskan konsep kohesi dan coupling serta tingkatan-tingkatannya; Menjelaskan aplikasi pseudocode pada setiap level yang ada.
9. Menjelaskan Flowchart dan diagram N-S, beserta semua komponennya sebagai representasi grafis dari algoritma pemrograman.
Rencana Kegiatan Pembelajaran Mingguan (RKBM):
Minggu ke
Topik (Pokok Bahasan) Metode Pembelajaran
1 1. Pengantar Pemrograman Dasar
1.1. Pengenalan Sistem Komputer 1.2. Konsep Pemrograman
1.3. Paradigma Pemrograman
1.4. Metodologi Perancangan Program
o Ceramah
o Menggunakan media OHP, papan tulis, notebook dan Infokus
2 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
o Ceramah
o Menggunakan media OHP, papan tulis, notebook dan Infokus
3 3. Tipe Data dan Struktur Data
3.1. Tipe data asal (primitif) 3.2. Tipe data bentukan 3.3. Konsep Struktur Data
o Ceramah
o Menggunakan media OHP, papan tulis, notebook dan Infokus
4 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
o Ceramah
o Menggunakan media OHP, papan tulis, notebook dan Infokus
5 5. Struktur Kontrol Perulangan
5.1 DOWHILE structure
5.1.1 Leading Decision Loop
5.1.2 DOWHILE dan perulangan tertentu (counted repetition)
5.1.3 DOWHILE dan perulangan tak tertentu (uncounted repetition) 5.1.2 Trailer Record atau Sentinel 5.2 Struktur REPEAT..UNTIL
5.2.1 Trailing Decision Loop
o Ceramah
5.3 Counted Repetition 5.4 Problem pemrograman
6 6. Kombinasi Kontrol Struktur Seleksi, Repetisi dan Sekuensial
6.1 Contoh-contoh problem pemrograman menggunakan kombinasi struktur 6.2 Implementasi ke Bahasa Pemrograman C
o Tugas Kelompok, Diskusi
o Menggunakan media OHP, papan tulis, notebook dan Infokus
7 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
o Ceramah
o Menggunakan media OHP, papan tulis, notebook dan Infokus
8 UTS o
9 9 o
8 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 solusi 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
o Ceramah
8.4.6 Parameter formal dan aktual 8.4.7 Value parameter
8.4.8 Reference parameter
8.5 Parameter dalam perancangan program 8.6 Langkah-langkah modularisasi
8.7 Contoh problem pemrograman menggunakan modul
9 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
o Ceramah
o Menggunakan media OHP, papan tulis, notebook dan Infokus
10 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
o Ceramah
o Menggunakan media OHP, papan tulis, notebook dan Infokus
11 11. Special Algorithm
11.1 Sorting Algorithms 11.2 Dynamic data structures
o Ceramah
o Menggunakan media OHP, papan tulis, notebook dan Infokus
o Menggunakan media OHP, papan tulis, notebook dan Infokus
13 o Ceramah
o Menggunakan media OHP, papan tulis, notebook dan Infokus 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 Ceramah
PENJABARAN RKBM:
1. Kuliah Minggu 1Menjelaskan 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 paradikma-paradikma 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.
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 langkah-langkah 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
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. Pemahaman Langkah-langkah Pengembangan Program 2. Pemahaman Metodologi Perancangan Program
3. Pemahaman Tiga Struktur Kontrol Dasar Pemrograman 4. Pemahaman Konsep Modularisasi Program
5. Pemahaman penggunaan pseudocode, flowchart dan diagram Nassi-Scheidermann sebagai representasi logika program
BAHAN, SUMBER INFORMASI DAN REFERENSI:
1. Robertson, L. Anne, 2004, Simple Program Design, Thomson Course Technology, United States of America.
2. A.B. Tucker, 1995, Fundamentals of Computing I, McGraw-Hill, Inc., United States of America.