Tujuan Pembelajaran
Diharapkan dapat:
1. Mengerti tentang algoritma
2. Membuat algoritma dari suatu permasalahan
3. Mengerti tentang flowchart
4. Membuat flowchart dari suatu permasalahan
Pendahuluan
1. Komputer adalah alat bantu untuk menyelesaikan masalah
2. Dalam menyelesaikan masalah dengan komputer perlu merumuskan langkah-langkah penyelesaian masalah dalam sekumpulan instruksi
3. sekumpulan instruksi yang dimengerti oleh komputer disebut dengan program
Bahasa Pemrograman
1. Program harus ditulis dalam suatu bahasa yang dimengerti oleh komputer yaitu dalam bahasa pemrograman, dibedakan menjadi:
· Bahasa tingkat rendah (low level language):
Bahasa yang berorientasi ke mesin.
· Bahasa tingkat tinggi (high level language):
Bahasa yang berorientasi ke manusia (seperti bahasa inggris). Contoh bahasa Pascal, bahasa C, dll.
2.
Program yang ditulis dalam bahasa pemrograman akan diterjemahkan ke
dalam bahasa mesin (kenal dengan biner digit) dengan menggunakan
penerjemah.
Penerjemah:
· Interpreter : menerjemahkan baris per baris instruksi. Contoh bahasa Basic.
· Compiler : menerjemahkan setelah seluruh instruksi ditulis. Contoh bahasa Pascal, bahasa C/C++, dll.
Algoritma
Arti
umum adalah serangkaian urutan langkah-langkah yang tepat, logis,
terperinci, dan terbatas untuk menyelesaikan suatu masalah yang disusun
secara sistematis.
1. Algoritma adalah inti dari ilmu komputer
2. Algoritma adalah urutan-urutan dari instruksi atau langkah-langkah untuk menyelesaikan suatu masalah
3. Algoritma adalah blueprint dari program
4. Sebaiknya disusun sebelum membuat program
5. Kriteria suatu algoritma:
· Ada input dan output
· Efektifitas dan efisien
· Terstruktur
Contoh:
Algoritma TUKAR ISI BEJANA
Diberikan
2 buah bejana A dan B, bejana A berisi larutan berwarna merah, bejana B
berisi larutan berwarna biru. Tukarkan isi kedua bejana itu sedemikian
sehingga bejana A berisi larutan warna biru dan bejana B berisi larutan
berwarna merah.
Deskripsi:
1. Tuangkan larutan dari bejana A ke dalam bejana B
2. Tuangkan larutan dari bejana B ke dalam bejana A
Algoritma
TUKAR ISI BEJANA di atas tidak menghasilkan pertukaran yang benar.
Langkah di atas tidak logis, hasil pertukaran yang terjadi adalah
pertukaran kedua larutan tersebut.
Untuk
itu pertukaran isi dua bejana, diperlukan sebuah tambahan sebagai
tempat penampungan sementara, misalnya bejana C. Maka algoritma untuk
menghasilkan pertukaran yang benar adalah sebagai berikut:
Diberikan
dua buah bejana A dan B, bejana A berisi larutan berwarna merah, bejana
B berisi larutan berwarna biru. Tukarkan isi kedua bejana itu
sedemikian hingga bejana A berisi larutan berwarna biru dan bejana B
berisi larutan berwarna merah.
Deskripsi:
1. Tuangkan larutan dari bejana A ke dalam bejana C.
2. Tuangkan larutan dari bejana B ke dalam bejana A.
3. Tuangkan larutan dari bejana C ke dalam bejana B.
Ciri Penting Algoritma
1. Algoritma harus berhenti setelah menjalankan sejumlah langkah terbatas.
2. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambiguitas).
3. Algortima memiliki nol atau lebih masukan.
4. Algoritma memiliki nol atau lebih keluaran.
5. Algoritma harus efektif (setiap langkah sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal).
Memrogram dan Bahasa Pemrograman:
1.
Belajar memrogram adalah belajar tentang metode pemecahan masalah,
kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan
dipahami.
2.
Belajar bahasa pemrograman adalah memakai suatu bahasa, aturan, tata
bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya
untuk membuat program yang ditulis dalam bahasa itu saja.
Notasi Algoritma:
1.
Penulisan algoritma tidak tergantung dari spesifikasi bahasa
pemrograman dan komputer yang mengeksekusinya. Notasi algoritma bukan
notasi bahasa pemrograman tetapi dapat diterjemahkan ke dalam berbagai
bahasa pemrograman.
2. Notasi algoritma dapat berupa:
· Uraian kalimat deskriptif (narasi):
Contoh:
Algoritma kelulusan mahasiswa
Diberikan
nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama
dengan 60 maka mahasiswa tersenut dinyatakan lulus, jika nilai lebih
kecil dari 60 maka dinyatakan tidak lulus.
Deskripsi:
Baca nama dan nilai mahasiswa
Jika nilai >= 60 maka
Keterangan = lulus
Tetapi jika salah
Keterangan = tidak lulus
Tulis nama dan keterangan.
Tahapan Pembuatan Program:
1.
Mendefinisikan masalah dan menganalisanya. Mencangkup : tujuan
pembuatan, parameter yang digunakan, fasilitas yang disediakan,
algoritma yang diterapkan, dan bahasa pemrograman yang digunakan.
2. Merealisasikan dengan langkah-langkah sebagai berikut:
Contoh Algoritma:
1. Mengirim surat kepada teman:
· Tulis surat pada secarik kertas surat
· Ambil sampul surat
· Masukkan surat ke dalam sampul
· Tutup sampul surat dengan perekat
· Jika kita ingat alamat teman tersebut, maka tulis alamat surat pada sampul
· Jika tidak ingat, lihat buku alamat, kemudian tulis alamat surat pada sampul
· Tempel prangko pada sampul
· Bawa sampul ke kantor pos untuk diposkan
2. Menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap:
· Masukkan sebuah bilangan sembarang
· Bagi bilangan tersebut dengan 2
· Hitung sisa hasil bagi pada langkah 2
· Bila sisa hasil sama dengan 0, maka bilangan itu adalah bilangan genap
· Jika hasil bagi sama dengan 1, maka bilangan itu adalah bilangan ganjil
Flowchart
1. Flowchart adalah bagan-bagan yang mempunyai arus menggambarkan langkah-langkah penyelesaian suatu masalah
2. Merupakan cara penyajian dari suatu algoritma
3. Ada 2 macam flowchart:
· System flowchart:
Urutan proses dalam system dengan menunjukkan alat media input, output
serta jenis penyimpanan dalam proses pengolahan data.
· Program flowchart:
Urutan instruksi yang digambarkan dengan symbol tertentu untuk memecahkan masalah dalam suatu program.
Contoh program Flowchart
Simbol-simbol Flowchart
1. Flow Direction Symbols (simbol penghubung alur)
2. Processing Symbols (simbol proses)
3. Input-Output Symbols (simbol input-output)
Tabel Simbol-simbol Flowchart
Pembuatan Flowchart
1. Tidak ada kaidah yang baku
2. Flowchart = gambaran hasil analisa suatu masalah
3. Flowchart dapat bervariasi antara satu pemrograman dengan pemrograman lainnya.
4. Secara garis besar ada 3 bagian utama:
· Input
· Proses
· Output
5. Hindari pengulangan yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat
6. Jalannnya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
7. Sebuah Flowchart diawali dari satu titik START dan diakhiri dengan End.
Pseudocode:
1.
Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar
atau sama dengan 60 maka mahasiswa tersebut dinyatakan lulus jika tidak
maka dinyatakan tidak lulus.
Deklarasi:
Nama : String
Nilai : Integer
Keterangan : String
Deskripsi:
Read (nama, nilai)
if nilai >= 60 then
Keterangan = 'lulus'
else
Keterangan = 'tidak lulus'
write (nama, keterangan)
Aturan Penulisan Teks Algoritma
1. Judul Algoritma
Bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi)
tentang algoritma tersebut. Nama sebaiknya singkat dan menggambarkan apa
yang dilakukan oleh algoritma tersebut.
2. Deklarasi
Bagian untuk mendefinisikan semua nama yang digunakan di dalam program.
Nama tersebut dapat berupa nama tetapan, peubah, tipe, prosedure, dan
fungsi.
3. Deskripsi
Bagian ini berisi uraian langkah-langkah penyelesaian masalah yang
ditulis dengan menggunakan notasi yang akan dijelaskan selanjutnya.
Contoh Pseudocode:
1. Algoritma Luas_Keliling_Lingkaran (ini merupakan judul algoritma)
{
Menghitung
luas dan keliling untuk ukuran jari-jari tertentu. Algoritma menerima
masukkan jari-jari lingkaran, menghitung luas dan kelilingnya, dan
mencetak luas lingkaran ke piranti keluaran
} (ini spesifikasi algoritma)
2. Deklarasi
const phi = 3.14 {nilai konstanta phi}
R : real {jari-jari lingkaran}
Luas : real {luas lingkaran}
Keliling : real {keliling lingkaran}
3. Deskripsi
Read (R)
Luas = phi * R * R
Keliling = 2 * phi * R
Write (luas, keliling)
============================================================
Sebelum membuat suatu algoritma pemrograman, alangkah baiknya apabila
kita mengetahui serta memahami terlebih dulu bagian-bagian yang
digunakan pada algoritma pemrograman tersebut. Berikut merupakan bagian dari algoritma pemrograman C++:
PREPROCESSOR
#include
Digunakan untuk memanggil atau menambahkan file header (file unit) yang
telah dibuat sebelumnya. File header berisikan perintah-perintah atau
fungsi-fungsi yang telah didefinisikan. Beberapa file header, secara
default telah ada di dalam Borland C++, namun bisa dibuat sendiri sesuai
dengan kebutuhan. PreProcessor ini berada pada bagian paling atas dari
pemrograman. Berikut contoh penulisannya:
#include “iostream.h”
atau
#include <iostream.h>
#include “iostream.h”
atau
#include <iostream.h>
#define
Digunakan untuk mendefiniskan sebuah identifier (pengenal) untuk
menggantikan beberapa pernyataan (statement) yang ada di header file.
Berikut contoh penulisannya:
#define RI “Republik Indonesia”
#define PLG“Palembang”
artinya, pengenal RI dapat menggantikan posisi pernyataan “Republik Indonesia” dan PLG menggantikan “Palembang”.
#define pi 3.14
#define g 10
Artinya, pi bernilai konstan 3.14 dan g bernilai konstan 10.
#define RI “Republik Indonesia”
#define PLG“Palembang”
artinya, pengenal RI dapat menggantikan posisi pernyataan “Republik Indonesia” dan PLG menggantikan “Palembang”.
#define pi 3.14
#define g 10
Artinya, pi bernilai konstan 3.14 dan g bernilai konstan 10.
TIPEDATA
Tipe data merupakan bagian program yang paling penting karena tipe data mempengaruhi setiap instruksi yang akan dilaksanakan oleh computer. Misalnya saja 5 dibagi 2 bisa saja menghasilkan hasil yang berbeda
tergantung tipe datanya. Jika 5 dan 2 bertipe integer maka akan menghasilkan nilai 2, namun jika keduanya bertipe float maka akan menghasilkan nilai 2.5000000. Pemilihan tipe data yang tepat akan membuat proses operasi data menjadi lebih efisien dan efektif. Dalam bahasa C terdapat lima tipe data dasar, yaitu :
char
Format : %c, keterangan : karakter / string.
int
int
Format : %i / %d, keterangan : integer / bilangan bulat.
float
Format : %f, keterangan : float / bilangan pecahan.
double
Format : %1f, keterangan : pecahan presisi.
string
Format : %s, keterangan : string.
KONSTANTA
Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program berlangsung. Konstanta nilainya selalu tetap. Konstanta harus didefinisikan terlebih dahulu di awal program. Konstanta dapat bernilai integer, pecahan, karakter dan string. Contoh konstanta : 50; 13; 3.14; 4.50005; ‘A’; ‘Bahasa C’. Selain itu, bahasa C juga menyediakan beberapa karakter khusus yang disebut karakter escape, antara lain:
\a : untuk bunyi bell (alert)
\b : mundur satu spasi (backspace)
\f : ganti halaman (form feed)
\n : ganti baris baru (new line)
\r : ke kolom pertama, baris yang sama (carriage return)
\v : tabulasi vertical
\0 : nilai kosong (null)
\’ : karakter petik tunggal
\” : karakter petik ganda
\\ : karakter garis miring.
VARIABEL
Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan. Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut :
- Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf. Bahasa C bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. Jadi antara nim, NIM dan Nim dianggap berbeda.
- Tidak boleh mengandung spasi.
- Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore). Yang termasuk symbol khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !, &, *, (, ), -, +, = dsb
- Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.
Contoh penamaan variabel yang benar :
NIM, a, x, nama_mhs, f3098, f4, nilai, budi, dsb.
Contoh penamaan variable yang salah :
%nilai_mahasiswa, 80mahasiswa, rata-rata, ada spasi, penting!, dsb.
NIM, a, x, nama_mhs, f3098, f4, nilai, budi, dsb.
Contoh penamaan variable yang salah :
%nilai_mahasiswa, 80mahasiswa, rata-rata, ada spasi, penting!, dsb.
OPERATOR ARITMATIKA
Bahasa C menyediakan lima operator aritmatika, yaitu :
* : untuk perkalian
/ : untuk pembagian
% : untuk sisa pembagian (modulus)
+ : untuk pertambahan
- : untuk pengurangan.
OPERATOR PERBANDINGAN
< Kurang dari
<= Kurang dari sama dengan
> Lebih dari
>= Lebih dari sama dengan
== Sama dengan
!= Tidah sama dengan
OPERATOR LOGIKA
&& : Logika AND (DAN)
|| : Logika OR (ATAU)
! : Logika NOT (INGKARAN)
KODE PENENTU FORMAT
. %c : Membaca sebuah karakter
. %s : Membaca sebuah string
. %i, %d : Membaca sebuah bilangan bulat (integer)
. %f, %e : Membaca sebuah bilangan pecahan (real)
. %o : membaca sebuah bilangan octal
. %x : Membaca sebuah bilangan heksadesimal
. %u : Membaca sebuah bilangan tak bertanda.
===========================================================
Pada dasarnya bahasa pemrograman memiliki 3 unsur / bagian utama. Yaitu input, proses, dan output.
Berikut merupakan contoh algoritma pemrograman menggunakan bahasa C++, menampilkan kata / output "Hello World":
#include <iostream.h>
#include <conio.h>
main()
{
cout << "Hello World";
getch();
}
Penjelasan:
#include <iostream.h>
Digunakan untuk mengaktifkan / menambahkan perintah / sistem tulis input
(masukan), output (keluaran), konstanta, kode penentu format, dll.
#include <conio.h>
Digunakan untuk mengaktifkan / menambahkan perintah / sistem tulis seperti getch();, clrscr();, goto ...., dll.
main()
{
}
Merupakan badan / inti program.
Instruksi / perintah di buat di antara kurung buka kurawal "{" sampai dengan kurung tutup kurawal "}".
cout << "Hello World";
"cout <<" merupakan instruksi untuk menampikan kalimat yang
terdapat di antara dua kutip dua / nilai variabel. Pada program ini
menampilkan "Hello World" pada keluaran / output setelah di jalankan /
di run.
getch();
Merupakan perintah untuk memberhentikan "pause" pada keluaran / output setelah di jalankan / di run.
Berikut merupakan contoh algoritma pemrograman menggunakan bahasa C++, menampilkan nilai variabel yang ditentukan oleh program:
#include <iostream.h>
#include <conio.h>
main()
{
int a;
a = 1;
cout << "Nilai a yaitu : " << a;
getch();
}
Penjelasan:
#include <iostream.h>
Digunakan
untuk mengaktifkan / menambahkan perintah / sistem tulis input
(masukan), output (keluaran), konstanta, kode penentu format, dll.
#include <conio.h>
Digunakan untuk mengaktifkan / menambahkan perintah / sistem tulis seperti getch();, clrscr();, goto ...., dll.
main()
{
}
Merupakan badan / inti program.
Instruksi / perintah di buat di antara kurung buka kurawal "{" sampai dengan kurung tutup kurawal "}".
int a;
Merupakan pendeklarasian nilai variabel. Maksudnya yaitu variabel a bertipe integer (bilangan bulat).
a = 1;
Maskud dari instruksi di atas yaitu variabel a di isi oleh 1.
cout << "Nilai a yaitu : " << a;
"cout <<" merupakan
instruksi untuk menampikan kalimat yang terdapat di antara dua kutip
dua / nilai variabel. Karena variabel a diisi oleh nilai 1. Maka pada
program ini menampilkan "Nilai a yaitu : 1" pada keluaran / output
setelah di jalankan / di run.
getch();
Merupakan perintah untuk memberhentikan "pause" pada keluaran / output setelah di jalankan / di run.
Berikut merupakan contoh algoritma pemrograman menggunakan bahasa
C++, menampilkan nilai variabel yang ditentukan oleh user:
#include <iostream.h>
#include <conio.h>
main()
{
int a;
cout << "Masukan Nilai a : ";
cin >> a;
cout << "Nilai a yaitu : " << a;
getch();
}
Penjelasan:
#include <iostream.h>
Digunakan
untuk mengaktifkan / menambahkan perintah / sistem tulis input
(masukan), output (keluaran), konstanta, kode penentu format, dll.
#include <conio.h>
Digunakan untuk mengaktifkan / menambahkan perintah / sistem tulis seperti getch();, clrscr();, goto ...., dll.
main()
{
}
Merupakan badan / inti program.
Instruksi / perintah di buat di antara kurung buka kurawal "{" sampai dengan kurung tutup kurawal "}".
int a;
Merupakan pendeklarasian nilai variabel. Maksudnya yaitu variabel a bertipe integer (bilangan bulat).
cout << "Masukan Nilai a : ";
"cout <<" merupakan
instruksi untuk menampikan kalimat yang terdapat di antara dua kutip
dua / nilai variabel. Instruksi di atas menampilkan "Masukan Nilai a : "
pada keluaran / output
setelah di jalankan / di run. Maksud instruksi di atas yaitu menyediakan
perintah "masukan nilai a : ", kemudian inputkan nilai a tersebut oleh
user / pengguna (bukan program). Misalnya user memasukan nilai a dengan
nilai 5. Maka hasilnya outputnya "Masukan Nilai a : 5".
cin >> a;
Variabel a tadi diisi oleh nilai 5. "cin >> a;" tersebut merupakan
instruksi memasukan nilai variabel yang diinputkan oleh user, kemudian
dimasukan ke variabel a. Sehingga variabel a diisi oleh 5.
cout << "Nilai a yaitu : " << a;
"cout <<" merupakan
instruksi untuk menampikan kalimat yang terdapat di antara dua kutip
dua / nilai variabel. Karena variabel a diisi oleh nilai 5. Maka pada
program ini menampilkan "Nilai a yaitu : 5" pada keluaran / output
setelah di jalankan / di run.
getch();
Merupakan perintah untuk memberhentikan "pause" pada keluaran / output setelah di jalankan / di run.
/* Materi ini saya dapat dari pembelajaran kuliah waktu semester 1. Baru sempat saya posting.
Mohon maaf jika posting ini ada beberapa yang sama dengan sumbernya */
========================================================================