RPKPS Pemrograman Dasar id. doc

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

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

3

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
4.4 Problem pemrograman

4

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

7.6 Contoh problem pemrograman menggunakan array

5

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

Functional cohesion

6

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.4 Algoritma sederhana menggunakan struktur kontrol sekuensial

7

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

8

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.

10.

Menjelaskan algoritma-algoritma khusus yang digunakan dalam bahasa
pemrograman, seperti sorting dan struktur data dinamis.

9

Rencana Kegiatan Pembelajaran Mingguan (RKBM):
Minggu
ke
1

Topik (Pokok Bahasan)

Metode Pembelajaran

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

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

5.1.2

DOWHILE

dan

perulangan

tertentu (counted repetition)
5.1.3

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
10

5.3
5.4

Counted Repetition
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
9
8

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

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

solusi

11

8.5
8.6
8.7

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

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

12

11. Special Algorithm
11.1 Sorting Algorithms
11.2 Dynamic data structures

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.

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.

3.

L.L. Wear, 1991, “Computers”, McGraw-Hill, Inc., United States of America.

16