BA 18P02224 5d5a9ffee7958
BA 18P02224 5d5a9ffee7958
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 1 dari 32 27 Februari 2017
BAHAN AJAR/DIKTAT
TEKNIK INFORMATIKA
FMIPA
UNIVERSITAS NEGERI SEMARANG
2019
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 2 dari 32 27 Februari 2017
Pada hari ini Rabu tanggal 19 bulan Agustus tahun 2019 Bahan Ajar Mata
Kuliah Algoritma dan Pemrograman Program Studi Teknik Informatika Fakultas
Matematika dan Ilmu Pengetahuan Alam telah diverifikasi oleh Ketua Jurusan
Ilmu Komputer
Semarang, 19 Agustus 2019
Ketua Jurusan Ilmu Komputer Tim Penulis
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 3 dari 32 27 Februari 2017
PRAKATA
Algoritma memegang peranan penting dalam bidang pemrograman. Algoritma
menjadi dasar dalam menyelesaikan suatu permasalahan menggunakan
komputer. Apabila algoritma telah dibuat maka langkah selanjutnya adalah
membuat kode program untuk menyelesaikan permasalahan tersebut.
Pada mata kuliah ini akan dibahas banyak berkaitan dengan algoritma dan
pemrograman komputer, meliputi pengantar algoritma, dasar-dasar algoritma,
aturan penulisan algoritma, Konsep Tipe Data, Variabel, Konstanta, dan
operator, runtunan, penyeleksian kondisi, konsep counter dan accumulator,
perulangan, prosedur, fungsi, array, searching dan sorting.
Penyusun
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 4 dari 32 27 Februari 2017
DESKRIPSI MATAKULIAH
Mata kuliah ini merupakan mata kuliah yang memberikan bekal kepada
mahasiswa tentang pembuatan algoritma dalam memecahkan suatu masalah.
Materi yang diberikan meliputi: pengantar algoritma, dasar-dasar algoritma,
aturan penulisan algoritma, Konsep Tipe Data, Variabel, Konstanta, dan
operator, runtunan, penyeleksian kondisi, konsep counter dan accumulator,
perulangan, prosedur, fungsi, array, searching dan sorting.
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 5 dari 32 27 Februari 2017
DAFTAR ISI
Prakata i
Daftar Isi ii
Daftar Gambar vii
Daftar Tabel viii
Bab I Pengantar Algoritma dan Pemrograman 1
A. Deskripsi Singkat 1
B. Capaian pembelajaran pertemuan 1
C. Pengantar Algoritma dan Pemrograman 1
D. Rangkuman 4
E. Pertanyaan/Diskusi 4
Bab II Fungsi Input Output dan Runtunan
A. Deskripsi Singkat
B. Capaian pembelajaran pertemuan
C. Fungsi Input Output dan Runtunan
D. Rangkuman
E. Pertanyaan/Diskusi
Bab III Struktur Seleksi Bersyarat
A. Deskripsi Singkat
B. Capaian pembelajaran pertemuan
C. Struktur Seleksi Bersyarat
D. Rangkuman
E. Pertanyaan/Diskusi
Bab IV Perulangan
A. Deskripsi Singkat
B. Capaian pembelajaran pertemuan
C. Perulangan
D. Rangkuman
E. Pertanyaan/Diskusi
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 6 dari 32 27 Februari 2017
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 7 dari 32 27 Februari 2017
BAB I
PENGANTAR ALGORITMA DAN PEMROGRAMAN
A. Deskripsi Singkat
Pada Bab I ini berisi materi pengantar algoritma. Materi pengantar
algoritma dan pemrograman meliputi definisi, dasar-dasar algoritma,
aturan penulisan teks algoritma sampai kepada konsep tipe data,
variabel, konstanta, dan operator.
Aspek Kognitif
Mahasiswa mampu menjelaskan pengertian algortima, dasar-dasar
algoritma, dan mengimplementasikan aturan penulisan teks algoritma.
Aspek Psikomotorik
Sigap dan terampil mengikuti instruksi perkuliahan dalam hal materi dan
penunjang kuliah, kreatif mencari literatur selain yang disampaikan oleh
Dosen.
Aspek Afektif
Bertanggung jawab, disiplin, serta peduli membantu mahasiswa lain
dalam menguasai.
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 8 dari 32 27 Februari 2017
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 9 dari 32 27 Februari 2017
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 10 dari 32 27 Februari 2017
Sifat algoritma
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 11 dari 32 27 Februari 2017
2. Selection
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 12 dari 32 27 Februari 2017
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 13 dari 32 27 Februari 2017
3. Looping
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 14 dari 32 27 Februari 2017
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 15 dari 32 27 Februari 2017
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 16 dari 32 27 Februari 2017
Contoh :
Luas_Persegi_Panjang
{ Algoritma menghitung luas persegi panjang }
2. Kamus(Deklarasi)
Kamus sebagai tempat untuk pendefinisian : nama tipe data, nama
konstanta, nama variable, nama fungsi, nama prosedur. Semua nama itu
baru dapat dipakai dalam algoritma jika telah didefinisikan dahulu dalam
kamus. Penulisan sekumpulan nama dalam kamus sebaiknya
dikelompokan manurut jenis nama itu.
Nama variable belum terdefinisi nilainya ketika didefinisikan.
Pendefinisian nama konstanta sekaligus memberikan harga konstanta
tersebut, pendefinisian nama fungsi dilakukan sekaligus dengan nama
domain / range serta spesifikasinya. Pendefinisian nama prosedur
sekaligus dengan pendefinisian parameter (jika ada) dan spesifikasi
prosedurnya.
Contoh :
Deklarasi :
Panjang = integer {tipe data bilangan bulat}
Lebar = integer
Luas = real {tipe data bilangan pecahan}
3. Algoritma(Deskripsi)
Algoritma adalah bagian inti dari suatu algoritma yang berisi instruksi atau
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 17 dari 32 27 Februari 2017
Contoh :
Deskripsi :
input (panjang, lebar)
luas <-- panjang * lebar
output (luas)
Bahasa Pemrograman
Berdasarkan aplikasi kegunaannya, bahasa pemograman dapat digolongkan
menjadi dua kelompok, yaitu :
1. Bahasa pemograman bertujuan khusus (Specific purpose programming
language). Yang termasuk kelompok ini adalah Cobol (untuk terapan
bisnis dan administrasi), Fortran (aplikasi komputer ilmiah), bahasa
assembly (aplikasi pemograman mesin), prolog (aplikasi kecerdasan
buatan), bahasa-bahasa simulasi, dan sebagainya.
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 18 dari 32 27 Februari 2017
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 19 dari 32 27 Februari 2017
dengan pasti tipe datanya. Ketepatan pemilihan tipe data pada variabel
atau konstanta akan sangat menentukan pemakaian sumberdaya
komputer (terutama memori komputer). Salah satu tugas penting seorang
programmer adalah memilih tipe data yang sesuai untuk menghasilkan
program yang efisien dan berkinerja tinggi.
Tipe data dibagi menjadi 3, yaitu :
a. Tipe Sederhana
1. Numeric
Tipe data numeric digunakan pada variabel atau konstanta
untuk menyimpan nilai dalam bentuk bilangan atau angka. Semua
bahasa pemrograman menyediakan tipe data numeric, hanya berbeda
dalam jenis numeric yang diakomodasi.
Jenis yang termasuk dalam tipe data numeric antara lain
integer (bilangan bulat), dan float (bilangan pecahan). Selain jenis,
dalam bahasa pemrograman juga diterapkan presisi angka yang
digunakan, misalnya tipe data Single adalah tipe data untuk bilangan
pecahan dengan presisi yang terbatas, sedangkan tipe data Double
adalah tipe data untuk bilangan pecahan dengan presisi yang lebih
akurat.
2. Boolean
Nama tipe data Boolean diambil dari nama seseorang
matematikawan dari Inggris yang bernama George Boole.
Tipe data Boolean digunakan untuk menyimpan nilai
True/False (Benar/Salah). Pada sebagian besar bahasa pemrograman
nilai 1 menunjukkan True dan 0 melambangkan False. Tipe data ini
banyak digunakan untuk pengambilan keputusan pada struktur
percabangan dengan IF … THEN atau IF … THEN … ELSE.
3. Character
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 20 dari 32 27 Februari 2017
b. Tipe String
String
String berarti sederetan karakter (character). Nilai data string
akan menempati memori sebesar banyaknya karakter stringnya
ditambah dengan 1 byte. Bila panjang dari suatu string di dalam
deklarasi variabel tidak disebutkan, maka dianggap panjangnya adalah
255 karakter. Konstanta string ditulis dengan awalan dan akhiran tanda
petik ganda (“...”).
c. Tipe terstruktur
Array
Array adalah tipe terstruktur yang mempunyai komponen dalam
jumlah tetap dan setiap komponen mempunyai tipe data yang sama.
Posisi masing – asing komponen dalam larik dinyatakan sebagai
nomor index.
Record
Dengan tipe data record, dapat dikumpulkan beberapa Item
data yang masing – masing mempunyai tipe data yang berbeda –
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 21 dari 32 27 Februari 2017
2. Variabel
Variabel adalah suatu nama yang menyatakan tempat dalam
memori komputer untuk menyimpan suatu nilai dan nilainya dapat dirubah
sewaktu – waktu ketika program sedang dieksekusi.
Contoh Nama variabel dan nilai.
username = “joni”
Nama = “Al-Khawarizmi”
Harga = 2500
HargaTotal = 34000
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 22 dari 32 27 Februari 2017
3. Konstanta
Konstanta adalah variabel yang nilai datanya bersifat tetap dan
tidak bisa diubah. Jadi konstanta adalah juga variabel bedanya adalah
pada nilai yang disimpannya. Jika nilai datanya sepanjang program
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 23 dari 32 27 Februari 2017
4. Operator
a. Operator Aritmatika
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 24 dari 32 27 Februari 2017
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 25 dari 32 27 Februari 2017
b. Operator Relasi
Operator Relasi digunakan untuk membandingkan hubungan
antara dua buah operand dan akan didapatkan hasil tipe boolean, yaitu
TRUE atau FALSE.Operator relasi antara lain:
Data: A = 5
B=8
C=5
Operator Arti Contoh
= Sama dengan A=B
> Lebih dari A>B
< Kurang dari A<B
>= Lebih dari atau sama A>=C
dengan
<= Kurang dari atau sama A<=B
dengan
<> Tidak sama dengan A < >C
c. Operator Logika
Operator logika juga digunakan untuk memberikan nilai atau
kondisi true
dan false. Biasanya operator logika dipakai untuk membandingkan dua
kondisi.
Misalnya:
((5==5) && (3>6)) mengembalikan nilai false, karena (true && false)
untuk logika NOT (!), contohnya !(5==5) akan mengembalikan nilai false,
karena !(true).
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 26 dari 32 27 Februari 2017
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 27 dari 32 27 Februari 2017
dalam
pernyataan di atas, dikenal dengan lvalue (left value) dan di sebelah
kanan
tanda = dikenal dengan rvalue (right value). lvalue harus selalu berupa
variable,
sedangkan rvalue dapat berupa variable, nilai, konstanta, hasil operasi
ataupun
kombinasinya.
e. Operator Majemuk ( +=, -=, *=, /=, %=, <<=, >>=, &=, |= )
Dalam C++, operasi aritmatika dapat disederhanakan penulisannya
dengan format penulisan operator majemuk.
Misalnya :
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 28 dari 32 27 Februari 2017
nilai
variable. Misalnya :
a++;
a+=1;
a=a+1;
untuk ketiga pernyataan tersebut, memiliki arti yang sama yaitu
menaikkan 1
nilai. Karakteristik dari operator ini adalah dapat dipakai di awal (++a) atau
di
akhir (--a) variable. Untuk penggunaan biasa, mungkin tidak akan ditemui
perbedaan hasil dari cara penulisannya. Namun untuk beberapa operasi
nantinya
harus diperhatikan cara peletakan operator ini, karena akan berpengaruh
terhadap hasil
Contoh 1 :
B=3;
A=++B;
//hasil A= 4,B=4
Contoh 2:
B=3;
A=B++;
//hasil A=3, B=4
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 29 dari 32 27 Februari 2017
Beda dari operator --/++ di sebelah kiri variabel dengan --/++ di sebelah
kanan variabel bisa dilihat dari contoh berikut ini:
int i = 10;
cout << --i << endl;
cout << i << endl;
hasil output:
9
9
int i = 10;
cout << i-- << endl;
cout << i << endl;
hasil output:
10
9
Jadi bisa diambil kesimpulan, dengan operator --/++ (--i) di sebelah kiri
variabel maka operator tersebut akan mempunyai prioritas lebih tinggi
untuk
dikerjakan terlebih dahulu. Jadi i akan dikurangi terlebih baru dicetak oleh
cout.
Sebaliknya dengan operator --/++ (i--) di sebelah kanan variabel maka
operator
tersebut akan mempunyai prioritas lebih rendah untuk dikerjakan. Maka i
akan
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 30 dari 32 27 Februari 2017
Contoh :
(7==5) hasilnya adalah fase
(5>4) hasilnya adalah tua
(5<5) hasilnya adalah false
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 31 dari 32 27 Februari 2017
D. Rangkuman
Algoritma adalah susunan langkah-langkah sistematis, logis, dan
terhingga dalam pemecahan suatu masalah.
Dalam penulisan teks algoritma harus mengikuti aturan yang telah
ditetapkan dengan memperhatikan juga berbagai tipe data, variabel,
konstanta, dan operator.
E. Pertanyaan/Diskusi
1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari, dan
berikan contoh langkah-langkah dalam algoritma tersebut.
2. Tuliskan algoritma untuk membeli paket internet lewat ponsel yang
ditawarkan oleh sebuah opeator seluler.
3. Tulislah algoritma untuk menghitung volume dan luas permukaan
kerucut, bola, dan limas segitiga.
FORMULIR MUTU
BAHAN AJAR/DIKTAT
No. Dokumen No. Revisi Hal Tanggal Terbit
FM-01-AKD-07 02 32 dari 32 27 Februari 2017
Daftar Pustaka
Munir, Rinaldi. 1999. Algoritma dan Pemrograman Dalam Bahasa Pascal dan C.
Bandung: Informatika.
Munir, Rinaldi dan Lidya, L. 2016. Algoritma dan Pemrograman Dalam Bahasa
Pascal, C, dan C++. Bandung: Informatika.
Kadir, Abdul. 2014. Belajar Sendiri Pasti Bisa Pemrograman C++. Yogyakarta:
Penerbit Andi.