RENCANA PEMBELAJARAN SEMESTER (RPS)
NAMA MATA KULIAH : ALGORITMA DAN PEMROGRAMAN KODE MK : MKRK45107
Berbasis
KERANGKA KUALIFIKASI NASIONAL INDONESIA
Indonesian Qualification Framework
Peraturan Presiden No. 8 Tahun 2012
PROGRAM STUDI TEKNIK INFORMATIKA STMIK KAPUTAMA
BINJAI
LEMBAR PENGESAHAN
Rencana Pembelajaran Semester (RPS) ini telah disahkan untuk mata kuliah sbb:
Nama Mata Kuliah : Algoritma dan Pemrograman
Kode : MKRK45107
Binjai, 13 September 2021 Mengetahui,
Achmad Fauzi, M.Kom Ka. Prodi Teknik Informatika
DAFTAR ISI
LEMBAR PENGESAHAN DAFTAR ISI
A. RENCANA PEMBELAJARAN SEMESTER (RPS) B. RANCANGAN TUGAS
STMIK KAPUTAMA
PROGRAM STUDI TEKNIK INFORMATIKA
RENCANA PEMBELAJARAN SEMESTER
MATA KULIAH KODE RUMPUN MATA
KULIAH
BOBOT
(sks) SEMESTER Tanggal Penyusunan Algoritma dan
Pemrograman MKRK45107 Mata Kuliah
Rumpun Keilmuan 3 sks I 13 September 2021
OTORISASI
Disusun oleh Dosen Pengembang RPS
Dr. Akim M. H. Pardede, S.T, M.Kom
Diperiksa oleh
Ka. Prodi Teknik Informatika
Achmad Fauzi, M.Kom
Diverifikasi oleh Unit Penjaminan Mutu
Dr. Relita Buaton, S.T, M.Kom
CAPAIAN PEMBELAJARAN
(CP)
CPL – PROGRAM STUDI
S01 Bertakwa kepada Tuhan Yang Maha Esa dan mampu menunjukkan sikap religius.
S02 Menjunjung tinggi nilai kemanusiaan dalam menjalankan tugas berdasarkan agama, moral dan etika.
S03 Dapat berperan sebagai warga negara yang bangga dan cinta tanah air, memiliki nasionalisme serta tanggungjawab pada negara dan bangsa.
S04 Dapat berkontribusi dalam peningkatan mutu kehidupan bermasyarakat, berbangsa, dan bernegara berdasarkan Pancasila.
S05 Dapat bekerja sama dan memiliki kepekaan sosial serta kepedulian terhadap masyarakat dan lingkungan.
S06 Dapat menghargai keanekaragaman budaya, pandangan, agama, dan kepercayaan, serta pendapat atau temuan orisinal orang lain.
S07 Taat hukum dan disiplin dalam kehidupan bermasyarkat dan bernegara.
S08 Menunjukkan sikap bertanggungjawab atas pekerjaan dibidang keahliannya secara mandiri.
S09 Menginternalisasi nilai, norma, dan etika akademik.
S10 Menginternalisasi semangat kemandirian, kejuangan dan kewirausahaan.
S11 Mendemonstrasikan kemampuan komunikasi lisan dan tulisan yang berkaitan dengan aspek teknis dan non- teknis.
S12 Berpikir kritis, mengidentifikasi akar masalah dan pemecahannya secara komprehensif, serta mengambil keputusan yang tepat berdasarkan analisis informasi dan data.
S13 Memiliki integritas profesional dan berkomitmen terhadap nilai-nilai etika.
S14 Memiliki sikap untuk belajar seumur hidup (life-long learning).
S15 Memimpin dan bekerja dalam tim, mandiri dan bertanggung jawab terhadap pekerjaannya.
S16 Bekerja sama dengan individu yang memiliki latar belakang sosial dan budaya yang beragam.
S17 Mencari, merunut, menyarikan informasi ilmiah dan non-imiah secara mandiri dan kritis.
S18 Beradaptasi terhadap situasi yang dihadapi dan menangani berbagai kegiatan secara simultan pada berbagai kondisi.
P01 Menguasai konsep-konsep matematika untuk memecahkan berbagai masalah yang berkaitan dengan logika, pemodelan matematika dan struktur diskrit.
P02 Menguasai teori dan konsep yang mendasari ilmu komputer untuk merancang, menerapkan dan menganalisis algoritma untuk menyelesaikan masalah.
P03 Memahami teori dasar arsitektur komputer, termasuk perangkat keras komputer dan jaringan.
P04 Menguasai metodologi pengembangan sistem, yaitu perencanaan, desain, penerapan, pengujian dan pemeliharaan sistem.
P05 Memahami konsep dan prinsip algoritma dan kompleksitas dalam pemodelan dan desain sistem berbasis komputer.
P06 Memahami konsep dan prinsip algoritma dan kompleksitas dalam memanipulasi model gambar, grafis dan citra, robotik, pengenalan suara, sistem cerdas, jaringan dan keamanan sistem.
P07 Menguasai konsep-konsep bahasa pemrograman, serta mampu membandingkan berbagai solusi serta
berbagai model bahasa pemrograman.
KU01 Memahami konsep rekayasa perangkat lunak serta mampu menganalisa dan merancang sistem sesuai dengan kebutuhan user.
KU02 Mampu berkomunikasi dengan pemangku kepentingan dari berbagai latar belakang.
KU03 Menganalisis, merancang, dan menerapkan suatu sistem berbasis komputer secara efisien untuk menyelesaikan masalah, menggunakan pemrograman prosedural dan berorientasi objek.
KU04 Memahami pendekatan sistem cerdas yang sesuai dengan problem yang dihadapi, memilih representasi pengetahuan dan mekanisme penalarannya
KU05 Mampu memilih struktur dan arsitektur jaringan komputer dan komponen-komponen sesuai dengan kebutuhan user.
KU06
Mampu menerapkan konsep-konsep yang berkaitan dengan manajemen informasi, termasuk menyusun pemodelan dan abstraksi data serta membangun aplikasi perangkat lunak untuk pengorganisasian data dan penjaminan keamanan akses data.
KU07
Mampu mengidentifikasi kebutuhan bidang wirausaha di bidang teknologi informasi serta mampu memimpin dan bekerja dalam tim, mandiri dan bertanggung jawab terhadap pekerjaannya serta mampu berkomunikasi lisan dan tulisan yang berkaitan dengan aspek teknis dan non-teknis.
KU08
Mampu mencari, merunut, mencari informasi ilmiah dan non-imiah secara mandiri dan kritis serta mengidentifikasi akar masalah dan pemecahannya secara komprehensif, serta mengambil keputusan yang tepat berdasarkan analisis informasi dan data.
KU09
Menerapkan konsep-konsep yang berkaitan dengan manajemen informasi, termasuk menyusun pemodelan dan abstraksi data serta membangun aplikasi perangkat lunak untuk pengorganisasian data dan penjaminan keamanan akses data.
KK01 Mampu membangun aplikasi dan sistem perangkat lunak yang berkaitan dengan pengetahuan ilmu komputer.
KK02 Mampu membuat program untuk meningkatkan efektivitas penggunaan komputer untuk memecahkan masalah tertentu.
KK03 Mampu membangun, mengevaluasi sistem dengan menggunakan bahasa pemrograman, menerapkan
konsep-konsep yang berkaitan dengan pengembangan berbasis platform pada Mobile Computing.
KK04 Mampu membangun sistem dan merakit alat sistem cerdas, menganalisis, merancang dan mengimplementasikan peripheral computer.
KK05 Mampu merancang, memprogram dan mengimplementasikan Programmable Logic dan Field Programmable Logic Array (FPGA).
KK06 Mampu merancang dan mengembangkan program aplikasi untuk memanipulasi model gambar, grafis dan citra, serta dapat memvisualisasikannya.
KK07 Mampu membangun dan mengevaluasi perangkat lunak dalam berbagai area, termasuk yang berkaitan dengan interaksi antara manusia dan komputer.
KK08 Mampu membangun, merancang, mengkonfigurasi dan mengelola infrastruktur sistem jaringan komputer dan sistem keamanannya serta melakukan pengelolaan secara kontinu terhadap proteksi profil yang ada.
KK09 Mampu membangun sistem online sebagai pendukung bisnis dalam bidang teknologi dengan menggunakan teknik, ketrampilan dan alat bantu yang modern yang diperlukan dalam bidang teknik komputer.
KK10 Mampu menghasilkan karya ilmiah dalam bentuk jurnal atau prosiding untuk dikembangkan pada studi lanjut.
CP – MATA KULIAH
M1 Mampu menjelaskan pengertian / defenisi dan konsep algoritma, serta membuat algoritma untuk menyelesaikan kasus sehari-hari.
M2
Mampu menjelaskan sejarah dan ruang lingkup pemakaian bahasa C, Menjelaskan kelebihan dan kekurangan bahasa C, Menjelaskan proses kompilasi dan linking program C, Menjelaskan struktur penulisan bahasa C dan menjelaskan komponen-komponen program dalam contoh aplikasi sederhana.
M3 Mampu menjelaskan tentang tipe data dasar, tentang variabel, tentang konstanta, temtamg berbagai jenis Operator, dan tentang instruksi I/O.
M4
Mampu menjelaskan tentang Menjelaskan tentang operator kondisi (operator relasi dan logika), penggunaan pernyataan if, penggunaan pernyataan if-else, penggunaan pernyataan if dalam if, penggunaan pernyataan else-if, penggunaan pernyataan switch.
M5 Mampu menjelaskan proses pengulangan menggunakan pernyataan for, Menjelaskan proses pengulangan
menggunakan pernyataan while, Menjelaskan proses pengulangan menggunakan pernyataan do-while, Menjelaskan penggunaan pernyataan break, Menjelaskan penggunaan pernyataan continue, Menjelaskan penggunaan pernyataan goto, Menjelaskan loop di dalam loop (nested loop) dan contoh kasusnya, Menjelaskan penggunaan exit() untuk menghentikan eksekusi program dan contoh kasusnya.
M6 Mampu Memecah program dalam fungsi fungsi yang sederhana, Menjelaskan tentang pemrograman terstruktur, Mengetahui perbedaan antara variabel lokal, eksternal, statis dan register.
M7
Mampu Menjelaskan tentang array berdimensi satu, Menjelaskan tentang array berdimensi dua, Menjelaskan tentang array berdimensi banyak, Menjelaskan tentang inisialisasi array tak berukuran, Menjelaskan array sebagai parameter fungsi.
M8 Mampu Menjelaskan tentang konsep string, Menjelaskan operasi I/O pada string, Menjelaskan cara mengakses elemen string, Menjelaskan berbagai fungsi mengenai string.
M9
Mampu Menjelaskan tentang ko nsep dari variabel pointer, Menjelaskan tentang pointer array, Menjelaskan tentang pointer string, Menjelaskan tentang array pointer, Menjelaskan tentang pointer dalam fungsi, Menjelaskan tentang pointer sebagai parameter fungsi, Menjelaskan tentang pointer yang menu njuk pointer.
M10
Mampu Menjelaskan cara mendeklarasikan struktur, Menjelaskan cara menginisialisasi struktur, Menjelaskan cara mengakses elemen struktur, Menjelaskan pembentukan array dari struktur (array of struct), Menjelaskan tentang hubungan antara struktur dengan fungsi, Menjelaskan tentang hubungan antara struktur dengan pointer.
M11
Mampu Menjelaskan tentang tipe data union, Menjelaskan penggunaan bitfield, Menjelaskan tentang tipe data enumerasi, Menjelaskan penggunaan typedef, Menjelaskan penggunaan ternary operator, Menjelaskan tentang konversi tipe data (type casting).
M12
Mampu Menjelaskan tentang struktur file, Menjelaskan tentang tahap-tahap operasi pada file, Menjelaskan tentang fungsi untuk penyimpanan dan pembacaan file per-karakter, Menjelaskan tentang file biner dan file teks, Menjelaskan tentang operasi penyimpanan dan pembacaan file per-int, Menjelaskan tentang operasi penyimpanan dan pembacaan file per-blok, Menjelaskan cara membaca dan menyimpan data string pada file, Menjelaskan cara mengakses file biner secara acak, Menjelaskan cara menghapus file, Menjelaskan
cara mengganti nama file.
Deskripsi Singkat Mata Kuliah Kuliah ini membahas tentang pengertian/definisi Algoritma & Pemrograman, Flowchart, memahami logika berpikir komputer, memahami prinsip kerja program dan mampu menggambarkan logika jalannya program secara tertulis dengan algoritma. Serta membuat contoh-contoh program dengan pemrograman bahasa C, C++, atau Java.
Materi Pembelajaran / Pokok Bahasan
1. Pengenalan Algoritma.
2. Sekilas Tentang C.
3. Dasar-Dasar Pemrograman C dan Library Function.
4. Pengambilan Keputusan dan Flowchart.
5. Pengulangan Proses.
6. Fungsi.
7. Array.
8. String.
9. Pointer.
10. Struktur.
11. Data Tingkat Lanjut.
12. Operasi File.
Pustaka 1. Jogianto H.M., Konsep Dasar Pemrograman Bahasa C, Penerbit Andi, 2000.
2. Antonie Pranata, Algoritma dan Pemrograman, J&J Learning Yogyakarta, 2000.
3. Iwan Binanto, Konsep Bahasa Pemrograman, Penerbit Andi Yaogyakarta, 2005.
4. Moh. Sjukani, Prak. Algoritma & Struk. Data dengan C, C++ dan Java, Mitra Wacana Media, 2005.
Media Pembelajaran Perangkat Lunak Perangkat Keras
LCD Projector, Laptop, Board Team Teaching Dr. Akim M. H. Pardede, S.T, M.Kom
Mata Kuliah Syarat -
A. RENCANA PEMBELAJARAN SEMESTER (RPS)
PERTE MUAN
KEMAMPUAN AKHIR
YANG DIHARAPKAN BAHAN KAJIAN METODE
PEMBELAJARAN
INDIKATOR KEBERHASILAN
ALOKASI WAKTU
BOBOT PENILAIAN 1 Mampu menjelaskan
pengertian / defenisi dan konsep algoritma, serta membuat algoritma untuk menyelesaikan kasus sehari-hari.
1. Pengertian Algoritma 2. Contoh Kasus
penyelesaian dengan algoritma
Diskusi Ketepatan
menjelaskan
1x3x50
5%
2 Mampu menjelaskan sejarah dan ruang lingkup pemakaian bahasa C, Menjelaskan kelebihan dan kekurangan bahasa C, Menjelaskan proses kompilasi dan linking program C, Menjelaskan struktur penulisan bahasa C dan menjelaskan komponen-komponen program dalam contoh aplikasi sederhana
1. Sejarah dan Ruang Lingkup C
2. Kelebihan dan Kelemahan C
3. Proses Kompilasi dan Linking Program C 4. Struktur Penulisan
Program C
5. Pengenalan Program C
Diskusi Ketepatan
menjelaskan
1x3x50 5%
3 Mampu menjelaskan tentang tipe data dasar, tentang variabel, tentang konstanta, temtamg berbagai jenis Operator, dan tentang instruksi I/O
1. Tipe Data Dasar 2. Variabel
3. Konstanta 4. Operator
5. Menanpilkan data ke layar
Diskusi Ketepatan
menjelaskan
1x3x50 10%
4 & 5 Mampu menjelaskan tentang . Menjelaskan tentang operator kondisi (operator relasi dan logika), penggunaan pernyataan if, penggunaan pernyataan if-else,
penggunaan pernyataan if dalam if, penggunaan pernyataan else-if, penggunaan pernyataan switch
1. Operator Kondisi 2. Pernyataan if 3. Pernyataan if-else 4. Pernyataan if di dalam if 5. Pernyataan else-if 6. Pernyataan switch
Diskusi kelompok dan Problem Based
Ketepatan menjelaskan dan Menyelesaikan masalah
1x3x50 10%
6 Mampu menjelaskan proses pengulangan menggunakan pernyataan for, Menjelaskan proses pengulangan
menggunakan pernyataan while, Menjelaskan proses pengulangan
menggunakan pernyataan do-while, Menjelaskan
1. Pernyataan for 2. Pernyataan while 3. Pernyataan do-while 4. Pernyataan break 5. Pernyataan continue 6. Loop di dalam loop 7. Pernyataan goto 8. Menggunakan exit()
Diskusi kelompok dan Problem Based
Ketepatan menjelaskan dan Menyelesaikan masalah
1x3x50 10%
penggunaan pernyataan break, Menjelaskan penggunaan pernyataan continue, Menjelaskan penggunaan pernyataan goto, Menjelaskan loop di dalam loop (nested loop) dan contoh kasusnya, Menjelaskan penggunaan exit() untuk menghentikan eksekusi program dan contoh kasusnya 7 Mampu Memecah
program dalam fungsi fungsi yang sederhana, Menjelaskan tentang pemrograman terstruktur, Mengetahui perbedaan antara variabel lokal, eksternal, statis dan register
1. Dasar Fungsi 2. Memberikan nilai
keluaran fungsi
3. Fungsi dengan keluaran bukan integer
4. Prototipe Fungsi 5. Parameter Formt dan
Parameter Aktual 6. Cara melewatkan
parameter
7. Penggolongan variabel berdasarkan kelas penyimpanana
8. Menciptakan sejumlah fungsi
9. Pengenalan konsep pemrograman terstruktur
Diskusi kelompok dan Problem Based
Ketepatan menjelaskan dan Menyelesaikan masalah
1x3x50 10%
UJIAN TENGAH SEMESTER (UTS) 9 Mampu Menjelaskan
tentang array berdimensi satu, Menjelaskan tentang array berdimensi dua, Menjelaskan tentang array berdimensi banyak, Menjelaskan tentang inisialisasi array tak berukuran, Menjelaskan array sebagai parameter fungsi
1. Array Berdimensi Satu 2. Array Berdimensi Dua 3. Array Berdimensi
Banyak
4. Inisialisasi Array Tak Berukuran
5. Array Sebagai Parameter
Diskusi kelompok dan Problem Based
Ketepatan menjelaskan dan Menyelesaikan masalah
1x3x50 10%
10 Mampu Menjelaskan tentang konsep string, Menjelaskan operasi I/O pada string, Menjelaskan cara mengakses elemen string, Menjelaskan berbagai fungsi mengenai string
1. Konstanta dan Variabel String
2. Inisialisasi String 3. Input Output Data String 4. Mengakses Elemen
String
5. Fungsi-Fungsi Mengenai String
Diskusi kelompok dan Problem Based
Ketepatan menjelaskan dan Menyelesaikan masalah
1x3x50 5%
11 Mampu Menjelaskan tentang konsep dari variabel pointer, Menjelaskan tentang pointer array, Menjelaskan tentang pointer string, Menjelaskan tentang array
1. Konsep dasar pointer 2. Mendeklarasikan
Variabel Pointer 3. Mengatur Pointer agar
Menunjuk ke Variabel Lain
4. Mengakses Isi Suatu Variabel Melalui Pointer
Diskusi kelompok dan Problem Based
Ketepatan menjelaskan dan Menyelesaikan masalah
1x3x50 10%
pointer, Menjelaskan tentang pointer dalam fungsi, Menjelaskan tentang pointer sebagai parameter fungsi, Menjelaskan tentang pointer yang menu njuk pointer
5. Mengakses dan Mengubah isi Suatu Variabel Pointer 6. Pointer dan Array
(pointer to array) 7. Pointer dan String
(pointer to string)
8. Array dari Pointer (Array of Pointer)
9. Pointer menunjuk Pointer (Pointer to Pointer)
10. Pointer dalam Fungsi 12 Mampu Menjelaskan cara
mendeklarasikan struktur, Menjelaskan cara
menginisialisasi struktur, Menjelaskan cara
mengakses elemen struktur, Menjelaskan pembentukan array dari struktur (array of struct), Menjelaskan tentang hubungan antara struktur dengan fungsi,
Menjelaskan tentang hubungan antara struktur dengan pointer
1. Mendefinisikan &
Mendekiarasikan Struktur
2. Mengakses Elemen Struktur
3. Menginisialisasi Struktur 4. Array dan Struktur 5. Struktur dan Fungsi 6. Struktur dan Pointer
Diskusi kelompok dan Problem Based
Ketepatan menjelaskan dan Menyelesaikan masalah
1x3x50 10%
13 Mampu Menjelaskan tentang tipe data union, Menjelaskan penggunaan bitfield, Menjelaskan tentang tipe data
enumerasi, Menjelaskan penggunaan typedef, Menjelaskan penggunaan ternary operator,
Menjelaskan tentang konversi tipe data (type casting)
1. Union 2. Bitf ield 3. Enumerasi 4. Typedef
5. Ternary Operator 6. Type Cast
Diskusi kelompok dan Problem Based
Ketepatan menjelaskan dan Menyelesaikan masalah
5%
14 &
15
Mampu Menjelaskan tentang struktur file, Menjelaskan tentang tahap-tahap operasi pada file, Menjelaskan tentang fungsi untuk penyimpanan dan pembacaan file per- karakter, Menjelaskan tentang file biner dan file teks, Menjelaskan tentang operasi penyimpanan dan pembacaan file per-int, Menjelaskan tentang operasi penyimpanan dan pembacaan file per-blok, Menjelaskan cara
1. Struktur File
2. Tahapan Operasi File 3. Operasi Penyimpanan
dan Pembacaan File Per Karakter
4. File Biner dan File Teks 5. Operasi Penyimpanan
dan Pembacaan File Per Int
6. Operasi Penyimpanan dan Pembacaan File Per Blok
7. Menyimpan dan Membaca Data String pada File
8. Mengakses File Biner secara Acak
Diskusi kelompok dan Problem Based
Ketepatan menjelaskan dan Menyelesaikan masalah
10%
membaca dan menyimpan data string pada file, Menjelaskan cara mengakses file biner secara acak, Menjelaskan cara menghapus file, Menjelaskan cara mengganti nama file
9. Menghapus File 10. Mengganti Nama File
UJIAN AKHIR SEMESTER (UAS)
B. RANCANGAN TUGAS
Nama Mata Kuliah ALGORITMA DAN PEMROGRAMAN
Kode Mata Kuliah MKRK45107
Kemampuan Akhir yang Diharapkan Mampu membuat program pencabangan dan output yang sesuai.
Minggu/ Pertemuan ke 4
Tugas ke 1
1. Tujuan Tugas : 2. Uraian Tugas : soal Nilai akhir Mulai
Masukkan Nilai : Baca Nilai
jika Nilai >=80 tamnpilkan Nilai Anda A jika Nilai >=70 Tampilaka Nilai Anda B Jika Nilai >=60 Tampilkan Nilai Anda C Jika Nilai A, B dan C maka tampilkan LULUS Jika Nilai >=50 Tampilkan Nilai Anda D Jika Nilai <50 Tampilkan Nilai Anda E
Jika Nilai D dan E, maka tampilkan TIDAK LULUS Selesai.
3. Kriteria Penilaian : Output program sesuai.
Nama Mata Kuliah ALGORITMA DAN PEMROGRAMAN
Kode Mata Kuliah MKRK45107
Kemampuan Akhir yang Diharapkan Mampu membuat program berdasarkan flowchart.
Minggu / Pertemuan ke 6
Tugas ke 2
1. Tujuan Tugas : 2. Uraian Tugas :
3. Kriteria Penilaian : Output program sesuai.
Nama Mata Kuliah ALGORITMA DAN PEMROGRAMAN
Kode Mata Kuliah MKRK45107
Kemampuan Akhir yang Diharapkan Mampu membuat flowchart dan program berdasarkan keterangan kebutuhan program.
Minggu / Pertemuan ke 12
Tugas ke 3
1. Tujuan Tugas : 2. Uraian Tugas :
Buatlah suatu flowchart dokumen,flowcahart program dan programnya pada suatu rs, untuk mencetak tagihan pembayaran pasien.
diketahui, kelas 3=Rp.80.000/hari,kelas 2=Rp.100.000/hari,kelas 1=Rp.150.000/hari, kelas VIP=Rp.200.000/hari, dan kelas VVIP=Rp.400.000/hari.
dan honor dokter umum=Rp.100.000/hari, dan dokter spesial=150.000/hari,
dimana honor dokter setiap hari akan lebih mahal 20% untuk kelas VIP dan VVIP.
sedangkan biaya obat diluar tagihan rumah sakit dan honor diterima dokter akan selalu dipotong perhari Rp.10.000 sebagai fee ke rs jika pasiennya
berada pada kelas VIP dan VVIP.
Dan jika biaya rumah sakit diatas 10jt, maka pasien akan mendapatkan discount sebesar 5%.
Dan tentukan juga berapa honor yg diterima dokter dari rumah sakit.
3. Kriteria Penilaian : Output program sesuai.