Pemrograman
3 SKS
Adi Wahyu Pribadi
Literatur
1. Rinaldi Munir, 1998, Algoritma dan Pemrograman 1 & 2; Informatika Bandung
2. Deitel etc., 2017, C++ How to Program, Pearson
3. Stanley B. Lippman, etc., 2013, C++ Primer 5th Edition, Addison-Wesley
Professional
4. Robert Setiadi, 2008, Algoritma itu Mudah, Prima Infosarana Media
Pengantar Algoritma
Cara menyelesaikan masalah dengan komputer
Yang dilakukan A:
● Ambil mie rebus → ambil panci, piring → masukkan air di panci → masak air → buka
bungkus mie → buka bumbu2 di piring → masukkan mie ke panci → matang dan taruh di
piring
Yang dilakukan B:
● Ambil mie rebus → ambil panci, piring → masukkan air di panci → buka bungkus mie → buka
bumbu2 di piring → masak air → masukkan mie ke panci → matang dan taruh di piring
Apakah Algoritma itu?
1. Ilustrasi membuat mie rebus menggambarkan sebuah algoritma dalam
kehidupan sehari-hari.
2. Jadi Algoritma adalah cara yang dapat ditempuh oleh komputer dalam
mencapai suatu tujuan, terdiri atas langkah-langkah yang terdefinisi dengan
baik, menerima input, melakukan proses, dan menghasilkan output. Meskipun
tidak selalu, biasanya sebuah algoritma memiliki sifat bisa dihitung
(computable) atau bisa diukur (measurable)
3. Ciri algoritma yang baik:
a. Berurutan
b. Tidak berarti ganda (ambigu)
c. Berhingga
5 Ciri Algoritma
1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah. Program
yang tidak pernah berhenti adalah program yang berisi algoritma yang salah
2. Setiap langkah, harus didefinisikan dengan tepat dan tidak berarti ganda
3. Algoritma memiliki nol/lebih masukan (input)
4. Algoritma memiliki nol/lebih keluaran (output)
5. Algoritma harus efektif
Efektif vs Efisien?
Efektivitas vs Efisiensi?
Notasi Algoritma
● Notasi I : diagram alir (flowchart)
● Notasi II: pseudo-code
● Natosi III : Deskripsi Algoritma
Simbol-simbol pada Flowchart
No Simbol Gambar Keterangan
Deklarasi
luas, panjang, lebar: integer;
Deskripsi
Input (panjang)
Input (lebar)
luas panjang * lebar
Print (luas)
Pseudocode II
Algoritma Luas_Segiempat
{ menghitung luas segiempat dengan memasukkan nilai lebar dan panjang
Segiempat }
Deklarasi
luas, panjang, lebar: integer;
Deskripsi
Read(panjang)
Read(lebar)
Luas ← panjang * lebar
Write(luas)
Ciri-ciri Algoritma
● Ada input
● Ada proses
● Ada output
● Memiliki instruksi-instruksi yang jelas dan tidak ambigu
Sifat Algoritma
● Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman
● Tidak tergantung pada suatu bahasa pemrograman
● Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun
Algoritma yang Baik dan Benar
Sebuah algoritma dikatakan BENAR jika algoritma tersebut berhasil
mengeluarkan output yang benar untuk semua kemungkinan input.
Imperative Decalrative
Object
Procedural Parallel Logic Functional Database
Oriented
main()
{
cout << "Hallo dunia!" << "\n";
}
Program C++ Sederhana
#include <iostream> // header
main() {
int x; // variabel x dengan tipe data integer
main() {
int x, y, sum;
return 0;
}
Input User (string)
#include <iostream>
using namespace std;
return 0;
}
Operator Aritmatika
Operator Nama Contoh
+ Penjumlahan X + Y
- Pengurangan X - Y
* Perkalian X * Y
/ Pembagian X / Y
% Modulus X % Y
main() {
int x, y, hasil;
● Macam
○ += → x += 5 → x = x+5
○ -= → x -= 5 → x = x - 5
○ *= → x *= 5 → x = x * 5
○ /= → x /= 5 → x = x / 5
○ %= → x %= 5 → x = x % 5
Pengoperasian Apabila Operand Beda Tipe
● Tipe char akan dikonversikan ke tipe int
● Tipe float akan dikonversikan ke tipe double
● Jenjang tertinggi adalah mulai dari long double, double, long int, unsigned
int dan int. Ini berarti jika tipe double dioperasikan dengan tipe int, maka
hasilnya adalah tipe double sebagai jenjang tertinggi
Equality and Comparison Operators
Operator Nama Contoh
== Sama dengan x == y
x = x + y;
return 0;
}