SILABUS PERKULIAHAN JENJANG DIPLOMA III (D.III) AMIK BSI Mata Kuliah Jurusan Deskripsi Standar Kompetensi Kode/sks
: Algoritma & Pemrograman II (C++ Lanjutan) : Teknik Komputer : Teknik-Teknik Dasar Mengakses Perangkat Keras Komputer Menggunakan Bahasa Pemrograman C++ : Mahasiswa Bisa Membuat Program untuk Mengakses Perangkat Keras Komputer Menggunakan Bahasa Pemrograman C++ : 917 / 4 sks (2/2 sks)
Sumber Referensi: 1. 2. 3. 4. 5.
6.
Arnush, Craig, et al. 1996. Teach Your Self Borland C++ 5 in 21 Days (Third Edition). Sams Publishing. Indianapolis H. M., Jogiyanto. 2006. Konsep Dasar Pemrograman Bahasa C (Edisi Empat). Andi. Yogyakarta Mukodim, Didin. 1994. Pengantar Bahasa Rakitan. Gunadarma. Jakarta Sjartuni, Ananta. 1992. Lebih Lanjut dengan C. Elex Media Komputindo. Jakarta Rahardjo, Budi. 2007. Pemrograman C++. Informatika. Bandung Rahardjo, Budi dan Imam Heryanto. 2003. Pemrograman Borland C++ Builder. Informatika. Bandung
Pertemuan
1
Kompetensi Dasar 1. Memahami arsitektur mikroprosesor. 2. Memahami registerregister pada mikroprosesor. 3. Memahami interupsi pada mikroprosesor. 4. Bisa membuat project menggunakan IDE Borland C++ 5.02.
Materi Pokok 1. Pengenalan register pada mikroprosesor 2. Pengenalan interupsi BIOS. 3. Pengenalan interupsi DOS. 4. Cara menjalankan interupsi BIOS dan DOS. 5. Membuat project baru menggunakan IDE Borland C++ 5.02. 6. Menggunakan fungsi standar int86.
Indikator
Pengalaman Belajar
1. Bisa membuat project baru dengan IDE Borland C++ 5.02. 2. Bisa membuat program untuk mencetak karakter menggunakan fungsi standar int86.
Mahasiswa membuat program sederhana untuk menjalankan interupsi yang berfungsi untuk mencetak karakter menggunakan fungsi standar int86 pada sebuah project baru.
Alokasi Waktu 45 menit untuk mempelajari register dan interupsi pada mikroprosesor. 45 menit untuk praktikum membuat program sederhana.
Pertemuan
2
3
4
Kompetensi Dasar
Mahasiswa bisa memberikan contoh sederhana mencetak karakter menggunakan teknik inline assembly.
1. Memahami modemode video dan tahu cara mengaktifkan mode video teks pada monitor. 2. Bisa mengaktifkan mode video dengan fungsi standar int86.
1. Memahami cara mengetahui mode video yang sedang digunakan. 2. Bisa memilih mode video dengan teknik inline assembly. 3. Bisa mengetahui mode video yang sedang digunakan dengan fungsi int86.
Materi Pokok 1. Pengenalan kata kunci asm. 2. Cara menuliskan kodekode assembly menggunakan kata kunci asm. 3. Menyimpan nilai dalam register dan menyalin nilai dari register. 1. Memilih mode teks dan mengaktifkannya dengan fungsi standar int86. 2. Efek clear screen pada saat mengubah mode video. 3. Menjalankan interupsi BIOS 10 heksadesimal servis 0 menggunakan fungsi int86. 4. Membuat fungsi untuk mengubah mode video (fungsi setMode). 1. Menjalankan interupsi 10 heksadesimal servis 0 heksadesimal dengan teknik inline assembly. 1. Banyaknya baris, kolom dan halaman layar pada mode teks. 2. Menjalankan interupsi BIOS 10 heksadesimal servis 0F heksadesimal dengan fungsi int86. 3. Membuat fungsi untuk mengetahui posisi kursor (fungsi getMode).
Indikator 1. Memahami perbedaan cara menjalankan interupsi menggunakan fungsi int86 dengan teknik inline assembly. 2. Mampu menuliskan instruksi inline assembly.
1. Dapat membedakan berbagai mode video pada monitor. 2. Bisa memilih mode video untuk program berbasis teks. 3. Bisa menjalankan fungsi int86 untuk memilih mode video.
1. Bisa memilih mode video dengan teknik inline assembly. 2. Bisa membuat program untuk mengetahui mode video dan posisi kursor. 3. Bisa membedakan jumlah baris, kolom dan halaman pada setiap mode video.
Pengalaman Belajar
Mahasiswa membuat program sederhana untuk mencetak karakter menggunakan teknik inline assembly.
Mahasiswa bisa mengubah mode video teks dan mempelajari efek clear screen saat mengubah mode video.
Mahasiswa bisa membuat program untuk memilih dan mengetahui mode video menggunakan teknik inline assembly atau dengan fungsi int86.
Alokasi Waktu 45 menit untuk mempelajari teknik inline assembly. 45 menit untuk mempraktekkan teknik inline assembly untuk mencetak karakter. 30 menit untuk mempelajari cara mengubah mode video. 60 menit untuk mempraktekkan program untuk mengubah mode video.
30 menit untuk mempelajari cara memilih dan mengetahui mode video dan posisi kursor. 60 menit mempraktekkan program.
Pertemuan
5
6
Kompetensi Dasar
Materi Pokok
1. Memahami cara mencetak karakter pada layar menggunakan BIOS video interrupt. 2. Mahasiswa memahami atribut karakter, posisi baris dan kolom karakter.
1. Menjalankan interupsi BIOS 10 heksadesimal servis 0F heksadesimal dengan teknik inline assembly. 2. Menjalankan interupsi BIOS 10 heksadesimal servis 09 heksadesimal dengan fungsi int86 untuk mencetak karakter dan atributnya. 3. Menjalankan interupsi BIOS 10 heksadesimal servis 03 dan servis 02 heksadesimal dengan fungsi int86. 4. Membuat fungsi untuk mencetak karakter (fungsi writeChar), mengetahui posisi kursor (fungsi getCursorPos) dan fungsi untuk memindahkan posisi kursor (fungsi setCursorPos).
1. Memahami proses komputer saat mencetak string. 2. Mengembangkan fungsi untuk mencetak karakter menjadi fungsi untuk mencetak string.
1. Membuat fungsi untuk mencetak string (fungsi writeString). 2. Mempelajari algoritma mencetak string berdasarkan contoh program yang diberikan dalam modul.
Indikator
1. Bisa membuat program untuk mencetak karakter dengan fungsi int86. 2. Bisa membuat fungsi untuk mencetak karakter (fungsi writeChar). 3. Bisa membuat fungsi untuk mendeteksi posisi kursor (fungsi getCursorPos) dan memindahkan posisi kursor (fungsi setCursorPos).
1. Memahami konsep string pada C/C++. 2. Bisa membuat program untuk mencetak string dan karakter tunggal.
Pengalaman Belajar 1. Mahasiswa membuat program untuk mencetak karakter dan memindahkan posisi kursor dengan fungsi int86. 2. Mahasiswa membuat program menggunakan fungsi writeChar, setCursorPos dan getCursorPos.
Mahasiswa membuat program sederhana untuk mencetak string.
Alokasi Waktu
30 menit untuk mempelajari cara mencetak karakter, mindahkan kursor dan mengetahui posisi kursor. 60 menit untuk mempraktekan program mencetak karakter, memindahkan kursor dan mengetahui posisi kursor.
30 menit untuk mempelajari konsep string dan cara mencetaknya. 60 menit untuk praktek membuat program mencetak string.
Pertemuan
7
Kompetensi Dasar
1. Memahami cara mendeteksi karakter yang ada diposisi tertentu pada layar. 2. Mahasiswa memahami kode urut karakter ASCII. 3. Menampilkan karakter ASCII reguler dan perluasan.
1.
2.
8
9
Bisa membuat class library/pustaka class untuk operasi pada layar monitor. Mengenkapsulasi fungsi-fungsi operasi layar monitor dalam pustaka class screen.cpp sebagai fungsi anggota class Screen.
1. Membahas contoh program yang menggunakan pustaka class screen.cpp. 2. Bisa membuat aplikasi sederhana yang menggunakan class Screen.
Materi Pokok 1. Menjalankan interupsi BIOS 10 heksadesimal servis 08 heksadesimal dengan fungsi int86. 2. Membuat fungsi untuk membaca karakter pada posisi tertentu dilayar (fungsi getCharAttr). 3. Mencetak karakter ASCII menggunakan fungsi writeChar yang telah dibuat sebelumnya. 1. Memahami kembali struktur class dalam bahasa pemrograman C++. 2. Mengenkapsulasi fungsifungsi BIOS video interrupt dalam fungsi anggota class Screen. 3. Membuat fungsi anggota tambahan, yaitu setActivePage, getActivePage, setVisualPage, getVisualPage dan cls dalam class Screen. 1. Mendeklarasikan tipe objek Screen sebagai tipe data untuk variabel dan memanggil konstruktor class Screen. 2. Menghancurkan objek Screen yang telah dibuat. 3. Menjalankan fungsi anggota class Screen.
Indikator
1. Bisa membuat contoh program untuk mencetak karakter ASCII perluasan/extended. 2. Bisa membuat contoh program untuk mengetahui kode ASCII dari karakter yang tercetak di layar.
Bisa membuat class Screen untuk operasi layar menggunakan BIOS video interrupt berdasarkan fungsifungsi yang telah dibuat pada pertemuan sebelumnya.
Bisa membuat contoh program yang memanfaat pustaka screen.cpp dan membuat objek Screen untuk operasi output di layar.
Pengalaman Belajar
Mahasiswa membuat program untuk mendeteksi dan mencetak karakter ASCII extended dengan teknik inline assembly.
Mengetikkan kode program screen.cpp dan membuat contoh program penggunaan objek Screen.
Mahasiswa membuat contohcontoh program yang menggunakan pustaka class screen.cpp.
Alokasi Waktu 30 menit untuk mempelajari perbedaan ASCII regular dengan ASCII perluasan. 60 menit untuk praktek membuat contoh program penggunaan karakter ASCII perluasan.
60 menit untuk mengetikkan kode program screen.cpp. 30 menit untuk mempraktekkan contoh program yang ada pada modul.
30 menit untuk mempelajari cara mendeklarasikan objek Screen. 60 menit untuk membuat contoh program.
Pertemuan
Kompetensi Dasar
Materi Pokok
Indikator
Pengalaman Belajar
Memahami dan bisa menggunakan fungsifungsi-fungsi BIOS keyboard interrupt.
1. Menjalankan interupsi BIOS 16 heksadesimal servis 0 untuk mendeteksi penekanan tombol keyboard dengan teknik inline assembly. 2. Membuat fungsi untuk memasukan satu karakter dengan mengenkapsulasi interupsi BIOS 16 heksadesimal servis 0 heksadesimal (fungsi getKey).
Bisa membuat contoh program sederhana untuk input satu karakter dengan teknik inline assembly menggunakan interupsi BIOS 16 heksadesimal servis 0.
Mahasiswa mempelajari contoh program untuk memasukan sebuah karakter dan dapat membuat fungsi untuk memasukan karakter.
11
1. Bisa membuat program untuk mendeteksi penekanan tomboltombol khusus dengan BIOS keyboard interrupt. 2. Memahami kode scan keyboard/ keyboard scan code untuk tombol extended.
1. Menjalankan interupsi BIOS 16 heksadesimal servis 0 heksadesimal dengan teknik inline assembly. 2. Membuat fungsi untuk mendeteksi penekanan tombol extended (fungsi getSpecialKey) 3. Menggunakan pernyataan switch untuk mendeteksi tombol extended.
Bisa membuat program sederhana mendeteksi penekanan tomboltombol extended pada keyboard.
Mahasiswa membuat program untuk mendeteksi tombol extended berdasarkan contoh yang ada pada modul praktikum.
12
1. Bisa mengembangkan fungsi program untuk memasukan karakter menjadi fungsi untuk memasukan string. 2. Memahami pokokpokok permasalahan pada saat memasukan string.
1. Konsep null terminated string (ASCIIZ) pada bahasa C/C++. 2. Karakter alphanumerik, simbol dan spasi sebagai rangkaian karakter yang dapat dimasukan sebagai string. 3. Membuat fungsi untuk memasukan string (fungsi getString).
Bisa membuat program sederhana untuk memasukan string dan menampilkan kembali string yang dimasukan.
Mahasiswa mempelajari contoh program untuk memasukan string dan membuat program sederhana berdasarkan contoh yang ada pada modul praktikum.
10
Alokasi Waktu 30 menit untuk mempelajari interupsi BIOS 16 heksadesimal servis 0. 60 menit untuk mempraktekkan program untuk memasukan sebuah karakter. 30 menit untuk mempelajari tombol-tombol extended pada keyboard. 60 menit untuk mempraktekkan program untuk mendeteksi penekanan tombol extended. 30 menit untuk mempelajari konsep string pada C/C++. 60 menit untuk mempraktekkan program memasukan string.
Pertemuan
Kompetensi Dasar
Materi Pokok
Indikator
Pengalaman Belajar
13-14
Review Materi/Quiz
15-16
UJIAN TENGAH SEMESTER (UTS) TEORI DAN PRAKTEK
17
18
1. Bisa mengembangkan fungsi untuk memasukan string menjadi fungsi untuk memasukan password. 2. Bisa membuat program untuk mendeteksi status tombol (ON/OFF) 3. Mendeteksi status tekan tombol.
1. Membuat fungsi untuk memasukan password (fungsi getPwdString). 2. Mempelajari algoritma fungsi untuk memasukan password melalui contoh program. 3. Menjalankan interupsi BIOS 16 heksadesimal servis 2 heksadesimal untuk mengetahui status tombol dengan teknik inline assembly. 4. Membuat fungsi untuk mengetahui status tombol dan manipulasi bit pada BIOS keyboard flag (fungsi getKeyState).
1. Bisa membuat program sederhana untuk memasukan password. 2. Bisa membuat program untuk mengetahui status tombol (ON/OFF). 3. Bisa membuat contoh program untuk mengetahui status tekan tombol Shift, Ctrl, dan Ins.
1. Bisa memasukan nilai numerik menggunakan keyboard. 2. Bisa menampilkan nilai numerik pada layar menggunakan fungsi anggota writeString dari class Screen.
1. Fungsi standar atoi dan atof untuk konversi string menjadi nilai numerik integer dan floating point. 2. Fungsi standar gcvt untuk konversi nilai numerik menjadi representasi string-nya.
Mahasiswa bisa membuat program menggunakan perhitungan matematika dengan masukan nilai melalui keyboard yang telah dikonversi.
Mahasiswa membuat contoh program untuk memasukan password, mendeteksi penekanan tombol dan status tombol.
Membuat program sederhana dengan proses konversi string ke numerik atau sebaliknya.
Alokasi Waktu
30 menit untuk mempelajari mengubah fungsi memasukan string menjadi password. 30 menit untuk mempelajari cara mendeteksi status tombol (ON/OFF). 30 menit untuk mempelajari cara mendeteksi penekanan tombol. 30 menit untuk mempelajari cara memasukan sring. 60 menit praktikum membuat program.
Pertemuan
19
20
21
Kompetensi Dasar
1. Bisa mengenkapsulasi BIOS keyboard interrupt dalam fungsi program. 2. Bisa membuat pustaka class untuk operasi input memanfaatkan BIOS keyboard interrupt.
Bisa membuat program berbasis teks menggunakan pustaka class screen.cpp dan keyboard.cpp.
Bisa mendeteksi mouse.
Materi Pokok 1. Membuat pustaka class keyboard.cpp untuk menyimpan kode program class Keyboard. 2. Menambahkan fungsi anggota hideCursor dan showCursor pada class Keyboard. 3. Menggunakan class Keyboard dan class Screen. 1. Menggunakan file header screen.cpp dan keyboard.cpp. 2. Mendeklarasikan class Screen dan Keyboard serta memanggil konstruktor Screen dan Keyboard. 3. Menggunakan fungsi anggota class Screen dan Keyboard dalam aplikasi/program yang dibuat. 1. Menjalankan software interrupt 33 heksadesimal servis 0 heksadesimal. 2. Menjalankan software interrupt 33 heksadesimal servis 1 dan servis 2 heksadesimal. 3. Membuat fungsi untuk mendeteksi mouse. 4. Membuat fungsi untuk menampilkan dan menyembunyikan pointer mouse.
Indikator
Bisa membuat program sederhana memanfaat objek Keyboard dalam pustaka class keyboard.cpp
Bisa membuat program berbasis teks dengan objek Screen dan Keyboard yang telah dideklarasikan dalam pustaka screen.cpp dan keyboard.cpp.
1. Bisa membuat program untuk mendeteksi mouse terinstal atau tidak. 2. Bisa membuat program untuk menampilkan atau menyembunyikan pointer mouse.
Pengalaman Belajar Mahasiswa mempraktikan contoh program penggunaan objek Keyboard dan bisa membuat program sederhana lainnya memanfaatkan pustaka keyboard.cpp.
Mahasiswa diberikan kebebasan untuk membuat program berbasis teks berdasarkan ide masing-masing.
Mahasiswa mengubah contoh kode program fungsi detectMouse dari inline assembly menjadi menggunakan fungsi int86.
Alokasi Waktu 30 menit untuk mempelajari cara menggunakan pustaka keyboard.cpp. 60 menit untuk praktikum membuat program sederhana.
60 menit untuk membuat praktikum membuat program. 30 menit untuk diskusi dan tanya jawab.
45 menit untuk mempelajari cara mendeteksi mouse dan contoh program. 45 menit untuk praktikum mengubah contoh kode program.
Pertemuan
22
23
24
Kompetensi Dasar
Materi Pokok
Indikator
Pengalaman Belajar
1. Menjalankan interrupt 33 heksadesimal servis 0020 heksadesimal dalam fungsi enableMouse dengan teknik inline assembly. 2. Menjalankan interrupt 33 heksadesimal servis 001F heksadesimal dalam fungsi disableMouse dengan teknik inline assembly.
Bisa menggunakan fungsi enableMouse dan disableMouse dalam contoh program untuk mengaktifkan dan menonaktifkan driver mouse.
1. Bisa membuat program untuk mendeteksi posisi pointer mouse. 2. Bisa membuat program untuk mendeteksi penekanan tombol mouse.
1. Menjalankan software interrupt 33 heksadesimal servis 0003 heksadesimal dengan teknik inline assembly. 2. Membuat fungsi untuk mendeteksi posisi pointer mouse dan tombol yang ditekan (fungsi getMousePos).
Bisa membuat program sederhana yang menggunakan fungsi getMousePos untuk mendeteksi posisi pointer mouse dan tombol yang ditekan.
Mahasiswa mempraktikkan mengubah kode fungsi getMousePos dari inline assembly menjadi menggunakan fungsi int86.
Bisa membuat program untuk memindahkan posisi pointer mouse secara software.
1. Menjalankan software interrupt 33 heksadesimal servis 0004 heksadesimal dengan teknik inline assembly. 2. Membuat fungsi untuk memindahkan posisi pointer mouse (fungsi setMousePos).
Bisa menggunakan fungsi setMousePos dalam contoh program untuk memindahkan posisi pointer mouse.
Mahasiswa mengubah kode fungsi setMousePos dari inline assembly menjadi menggunakan fungsi int86.
Bisa membuat program untuk mengaktifkan dan menonaktifkan driver mouse.
Mahasiswa mempraktikan contoh program untuk mengaktifkan dan menonaktifkan driver mouse.
Alokasi Waktu 30 menit mempelajari cara mengaktifkan dan menonaktifkan driver mouse. 60 menit mempraktikkan contoh program. 45 menit untuk mempraktikkan contoh kode program dalam modul praktikum. 45 menit untuk mengubah contoh kode program dalam fungsi getMousePos. 45 menit untuk mempraktikkan contoh kode program dalam modul praktikum. 45 menit untuk mengubah contoh kode program dalam fungsi setMousePos.
Pertemuan
25
26
27
Kompetensi Dasar
Materi Pokok
Indikator
Pengalaman Belajar
Bisa membuat program untuk membatasi area gerak pointer mouse.
1. Menjalankan software interrupt 33 heksadesimal servis 0007 dan 0008 heksadesimal dengan teknik inline assembly. 2. Membuat fungsi untuk membatasi posisi gerak pointer mouse (fungsi setMouseRegion).
Bisa menggunakan fungsi setMouseRegion dalam kode program untuk membatasi area gerak pointer mouse di layar monitor.
Mahasiswa mempraktikan contoh program penggunaan fungsi setMouseRegion dalam modul praktikum.
Bisa membuat program untuk mengetahui jumlah penekanan tombol mouse.
1. Menjalankan software interrupt 33 heksadesimal servis 0005 heksadesimal dengan teknik inline assembly. 2. Membuat fungsi untuk mendeteksi status dan jumlah penekanan tomboltombol mouse (fungsi getButtonClick).
Bisa menggunakan fungsi getButtonClick untuk membuat program sederhana untuk mengetahui status dan jumlah penekanan tombol mouse.
Mengubah kode fungsi getButtonClick dari inline assembly menjadi menggunakan fungsi int86.
Bisa membuat program untuk mengetahui status dan jumlah pelepasan tombol mouse.
1. Menjalankan software interrupt 33 heksadesimal servis 0006 heksadesimal dengan teknik inline assembly. 2. Membuat fungsi untuk mendeteksi status dan jumlah pelepasan tomboltombol mouse (fungsi getButtonRelease).
Bisa menggunakan fungsi getButtonRelease untuk membuat program sederhana untuk mengetahui status dan jumlah pelepasan tombol mouse.
Mahasiswa mempraktikan contoh program penggunaan fungsi getButtonRelease dalam modul praktikum.
Alokasi Waktu 30 menit mempelajari cara membatasi area gerak mouse. 60 menit untuk mempraktikan contoh program dan membuat program sederhana. 45 menit untuk mempraktikkan contoh kode program dalam modul praktikum. 45 menit untuk mengubah contoh kode program dalam fungsi getButtonClick. 30 menit mempelajari cara mengetahui pelepasan tombol mouse. 60 menit untuk mempraktikan contoh program dan membuat program sederhana.
Pertemuan
28
29
Kompetensi Dasar
Materi Pokok
1. Bisa mengenkapsulasi software interrupt 33 heksadesimal. 2. Bisa membuat pustaka class untuk operasi input menggunakan mouse.
1. Mengenkapsulasi fungsi getState, getNumButton, disableMouse, enableMouse, showMouse, hideMouse, getButtonClick, getButtonRelease, getClickMode, getMousePos, getX dan getY kedalam class Mouse. 2. Mendeklarasikan variabel dengan tipe data class Mouse sebagai objek untuk input menggunakan mouse. 3. Memanggil konstruktor class Mouse. 4. Menggunakan fungsifungsi anggota pada class Keyboard, class Screen dan class Mouse.
Indikator
1. Mahasiswa bisa mendeklarasikan objek Mouse dalam kode program untuk input menggunakan mouse. 2. Mahasiswa bisa menggunakan pustaka class mouse.cpp untuk membuat program berbasis teks yang menggunakan input melalui mouse.
UJIAN AKHIR SEMESTER (UAS) PRAKTIKUM
Pengalaman Belajar
Mahasiswa mempraktekan contoh program dalam modul praktikum untuk membuat program berbasis teks yang menggunakan objek Screen, Keyboard dan Mouse dari pustaka-pustaka class yang telah dibuat.
Alokasi Waktu
60 menit untuk mengetikan kode program pustaka class mouse.cpp 30 menit untuk mempraktikkan contoh program.