Algoritma Dan Pemrograman 1

MATERI KULIAH
ALGORITMA DAN PEMROGRAMAN I
DOSEN:
UTAMI DEWI W.,S.Kom
JURUSAN TEKNIK INFORMATIKA
UNIKOM

PERTEMUAN I
PENGANTAR ALGORITMA
Algoritma dan Pemrograman I
Teknik Informatika
UNIKOM

masalah

Program
komputer

solusi

Algoritma dan Pemrograman I

Utami Dewi w.,S.Kom

Cara mendeskripsikan masalah
dengan komputer :




menjabarkan masalah
merinci langkah untuk menyelesaikan masalah
membuat sarana interaksi manusia-komputer

Algoritma dan Pemrograman I
Utami Dewi w.,S.Kom

Tranformasi masalah menjadi program komputer
diperlukan:






bentuk urutan masalah
bahasa yang dipakai
konsep mesin computer

Algoritma dan Pemrograman I

masalah

algoritma

Program
komputer

solusi

Algoritma dan Pemrograman I

Apakah Algoritma itu?






Algorism  algorithm
nama penulis buku Arab yaitu Abu Ja’far Muhammad ibnu Musa
Al-Khuwarizmi
Algoritma adalah:






penyusunaan aspek proses logika dari suatu
pemecahan masalah tanpa melihat karakteristik
bahasa pemrograman yang akan digunakan
urutan notasi logika yang merupakan hasil analisis
dan rancangan sistematik dari strategi pemecahan

masalah, untuk menggambarkan urutan langkah kerja
yang jika dikerjakan akan membawa ke tujuannya.
urutan logika langkah kerja untuk menyelesaikan
suatu masalah.
Algoritma dan Pemrograman I

Notasi Algoritma






Notasi I : untaian kalimat deskriptif
Notasi II : diagram alir (flow chart)
Notasi III : psudo-code

Contoh masalah : menghitung luas
segiempat.


Algoritma dan Pemrograman I

Notasi I :
Algoritma Luas_Segiempat
Menghitung luas segiempat dengan
memasukkan nilai lebar dan panjang
segiempat
Deklarasi
luas,panjang,lebar : bil. bulat
Deskripsi
1.
Masukkan nilai lebar dan panjang
2.
Hitung luas sama dengan panjang kali lebar
3.
Tampilkan Luas

Algoritma dan Pemrograman I

Notasi II :

mulai
Input
panjang,
lebar
Luas  panjang * lebar
Output
Luas
selesai

Algoritma dan Pemrograman I

Notasi III :
Algoritma Luas_Segiempat
{Menghitung luas segiempat dengan
memasukkan nilai lebar dan panjang
segiempat}
Deklarasi
luas, panjang, lebar : integer
Deskripsi
input(panjang)

input(lebar)
luas  panjang * lebar
output(luas)
Algoritma dan Pemrograman I

Program
Adalah perwujudan atau implementasi teknis
Algoritma yang ditulis dalam bahasa
pemrogaman tertentu sehingga dapat
dilaksanakan oleh komputer.

Algoritma dan Pemrograman I

Belajar Memrogram Vs Belajar Bahasa
Pemrograman




Belajar memprogram adalah belajar tentang

metodologi pemecahan masalah, kemudian
menuangkannya dalam suatu notasi tertentu yang
mudah dibaca dan dipahami.
Belajar bahasa pemrograman berarti belajar
memakai suatu bahasa, aturan-aturan tata
bahasanya, instruksi-instruksinya, tata cara
pengoperasian compiler-nya, dan memanfaatkan
instruksi-instruksi tersebut untuk membuat program
yang ditulis hanya dalam bahasa itu saja.

Algoritma dan Pemrograman I

Belajar Memprogram








belajar bahasa pemrograman
belajar tentang strategi pemecahan
masalah, metodologi dan sistematika
pemecahan masalah kemudian
menuliskannya dalam notasi yang
disepakati bersama
bersifat pemahaman persoalan, analisis
dan sintesis
titik berat : designer program
Algoritma dan Pemrograman I

Belajar Bahasa Pemrograman




belajar memakai suatu bahasa pemrograman,
aturan sintaks, tatacara untuk memanfaatkan
instruksi yang spesifik untuk setiap bahasa
titik berat : coder


Algoritma dan Pemrograman I

Program yang baik
mempunyai syarat:
1.
2.
3.
4.
5.

benar
berlaku umum untuk beragam data (valid)
mudah dibaca
mudah dimodifikasi dan dikembangkan
efisiensi dalam penggunaan ruang dan waktu
(kompleksitas rendah)

Algoritma dan Pemrograman I


Bahasa pemrogram dibedakan
berdasarkan
tujuan dan fungsinya diantaranya :

Algoritma dan Pemrograman I

Beberapa Paradigma dalam
Pemrograman







Prosedural / Terstruktur
Paradigma Fungsional
Paradigma Deklaratif / Logika
Paradigma Object-Oriented
Paradigma Konkruen
sarana object-oriented  event-programming.

Pemrograman Prosedural




Algoritma berisi urutan langkah-langkah
penyelesaian masalah  proses yang
procedural.
Definisi Prosedural menurut Kamus Besar
Bahasa Indonesia:
1. Tahap-tahap kegiatan untuk menyelesaikan
suatu aktivitas.
2. Metode langkah demi langkah secara eksak
dalam memecahkan suatu masalah.

Algoritma dan Pemrograman I



program dibedakan antara bagian data
dengan bagian instruksi.
 Bagian instruksi terdiri atas runtutan
(sequence) instruksi yang dilaksanakan
satu per satu secara berurutan oleh
pemroses. Alur pelaksanaan instruksi
dapat berubah karena adanya
pencabangan kondisional.
 Data yang disimpan di dalam memori
dimanipulasi oleh instruksi secara
beruntun atau procedural.

Algoritma dan Pemrograman I

Paradigma Object-Oriented






mengkonstruksi program dari objek-objek
dalam ruang lingkup masalahnya.
sekumpulan objek yang mempunyai sifat
yang sama. Dapat menjadi sebuah kelas.
Sebuah kelas mempunyai attribute
(sekumpulan sifat/ciri).
menawarkan konsep modularitas,
penggunaan ulang, dan kemudahan
modifikasi.

Algoritma dan Pemrograman I

Pemrograman Berorientasi Objek


Kerangka berpikir PBO berbeda dengan
pemrograman tradisional.

Pemrograman tradisional :
memisahkan antara data, dan
prosedur yang mengolah data
tersebut.
 PBO : data dan prosedur ini
dipadukan sebagai sebuah
obyek.


Algoritma dan Pemrograman I

1/14/2010

PERTEMUAN 2
NOTASI ALGORITMIK dan BAHASA
C++
Algoritma dan Pemrograman I

Algoritma disusun berdasarkan 3 bagian,
antara lain :

1.
2.
3.

JJudul
d l Algoritma
Al it
Kamus / Deklarasi
Algoritma / Deskripsi

Algoritma dan Pemrograman I

1

1/14/2010

Format Syntax Algoritma
JUDUL
ALGORITMA
DEKLARASI/
KAMUS
{Lokal / Umum}
ALGORITMA

TUBUH
ALGORITMA/
DESKRIPSI
URAIAN
ALGORITMA

Nama Algoritma
Type namatipe : tipe [subrange]
Type namatipe : array [min..maks] of tipe
Namavar
: tipe
p
Namavar
: array [ min..maks] of tipe
Const nama
= nilai
Procedure namaproc
(Input/Output[daftar_nama_parameter:tipe])
Notasi Assigment
Notasi Kondisional/Pemilihan
N
Notasi
i Pengulangan
P
l
Notasi Pemanggilan
Kumpulan algoritma masing-masing
Procedure ataupun Function yang dipanggil
dari Tubuh Algoritma

Algoritma untuk menulis Hello world:
Algoritma Hello_world
{ program untukk mencetakk “Hello
“H ll world”}
ld }
DEKLARASI
{tidak ada}
DESKRIPSI
Write(“Hello world”)

Algoritma dan Pemrograman I

2

1/14/2010

Algoritma untuk menghitung luas segiempat:
LuasSegi4

{ g
{algoritma
untuk menghitung
g
g luas segiempat
g
p dengan
g
diketahui panjang dan lebarnya}
KAMUS
Luas,panjang,lebar :integer
ALGORITMA
panjang Å 10
lebar Å 5
Luas Å panjang * lebar
write(Luas)

Algoritma dan Pemrograman I

Translasi Teks Algoritma ke dalam Teks Program Bahasa
C++

Algoritma
1

Transla
si
Notasi
Kamus

Contoh :

C++
#include

2

CONST namaconst = #define namaconst nilai
nilai

3

TYPE namatipe :
tipedata

Typedef
namatipe;

4

namavar : tipedata
namavar : namatipe

tipedata namavar;
namatipe namavar;

1

tipedata

#include


2

CONST phi = 3.14

#define phi 3.14

3

TYPE jumlah : integer

Typedef int jumlah;

4

n : integer
n : jumlah

int n;
jumlah n;
Algoritma dan Pemrograman I
Algoritma dan Pemrograman I

3

1/14/2010

Lanjutan Translasi Notasi Pengendalian
Algoritma
5

IF THEN
aksi1
ELSE
aksi2
ENDIF

C++
If (kondisi)
aksi1;
else
aksi2;

atau
If (kondisi)
{
aksi1;
}
else
{
aksi2;
}

Algoritma dan Pemrograman I

Lanjutan Translasi Notasi Pengendalian
Algoritma

6

DEPEND ON
: aksi_1
: aksi_2
aksi 2
:
: aksi_n

atau
CASE namavarcase OF
expkonstan 1 : aksi_1
expkonstan 2 : aksi
aksi_2
2
:
expkonstan n : aksi_n
ELSE
aksi_lain
ENDCASE

C++
Switch (ekspresi)
{
case nilai1:
aksi_1;
break;
case nilai2:
aksi_2;
break;
:
case nilain:
aksi_n;
break;
default: aksi_lain;
}

Algoritma dan Pemrograman I

4

1/14/2010

Lanjutan Translasi Notasi Pengendalian
Algoritma

7

C++

[inisialisasi]
WHILE DO

daftar aksi
daftar_aksi
{ada aksi thd var kondisi}
ENDWHILE

8

[inisialisasi]
REPEAT

[inisialisasi]
while (kondisi_ulang)
{
daftar_aksi;
/*ada aksi thd var kondisi*/
}
[inisialisasi]
do
{

daftar aksi
daftar_aksi

daftar_aksi;

{ada aksi thd var kondisi}
UNTIL

/*ada aksi thd var kondisi*/
}
while (kondisi_ulang);
Algoritma dan Pemrograman I

Lanjutan Translasi Notasi Pengendalian
Algoritma
9

namavar TRAVERSAL [awal..akhir]

daftar_aksi;
atau
FOR var Å awal TO/DOWNTO akhir STEP counter DO

daftar_aksi
ENDFOR
C++
for(awal;kondisiulang;step)
{

daftar_aksi;
}
Algoritma dan Pemrograman I

5

1/14/2010

Contoh Algoritma
Algoritma Luas_Lingkaran
{menghitung luas lingkaran diketahui jari-jarinya}
DEKLARASI
CONST phi = 3.14
r : integer
Luas : real
DESKRIPSI
rÅ5
Luas Å phi * r * r
output(”Jari –jari = ”,r);
output(”Luas lingkaran = ”,Luas);

Algoritma dan Pemrograman I

Contoh program C++
#include
#define phi 3.14
main ()
{
int r;
float Luas;
r = 5;
Luas = phi * r * r;
cout =, >=, =,A then Max ÅB endIf
If A>B then Max ÅA
Else Max ÅB
endIf
Algoritma dan Pemrograman I

Pengulangan (Repetition)
for var Å awal to akhir do
aksi
Endfor
repeat
aksi
until kondisi_stop
while kondisi_ulang do
aksi
endwhile

Algoritma dan Pemrograman I

7

1/14/2010

Contoh (Pengulangan) :
For i Å 1 to 5 do
output(“UNIKOM)

EndFor
iÅ1
Repeat
output(“UNIKOM”)
iÅi+1
Until (i>5)
iÅ1

While (i<
(i x;
switch
it h ((x))
{
case 1 : cout