You are on page 1of 32

Media Pembelajaran Interaktif

DASAR ALGORITMA
PEMROGRAMAN
Program Keahlian Rekayasa Perangkat Lunak
Oleh Maryanto, S.Kom

DASAR ALGORITMA PEMROGRAMAN


Standar Kompetensi
Menerapkan Algoritma Pemrograman Tingkat Dasar

Kompetensi Dasar
SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

Menjelaskan strukrur algoritma


Membuat algoritma pemrograman
Menjelaskan data flow diagraman (DFD)
Membuat diagram alir pemrograman
Tipe data dan operator

DASAR ALGORITMA PEMROGRAMAN


Indikator

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

Konsep algoritma dijelaskan dengan kreatif dan mandiri


Algortima dengan skema program sekuensial dibuat dengan mandiri
Algortima dengan skema program percabangan dibuat dengan mandiri
Algortima dengan skema program pengulangan dibuat dengan mandiri
Konsep data flow diagram dijelaskan dengan kreatif dan mandiri
Simbol-simbol dalam data flow diagram dijelaskan dengan kreatif dan
mandiri
DFD dengan skema program sekuensial
DFD dengan skema program percabangan
DFD dengan skema program pengulangan
Tipe data, variabel dan konstanta
Operator logika, operator aritmatika, operator relasional dijelaskan
pemanfaatannya

DASAR ALGORITMA PEMROGRAMAN


Materi
Struktur algoritma

Alur logika pemrograman


SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

Data flow diagram

Diagram alir pemrograman

Tipe data & operator

DASAR ALGORITMA PEMROGRAMAN

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

Struktur Algoritma
1. Pengertian algoritma
.algoritma adalah urutan langkah-langkah logis yang digunakan untuk
menyelesaikan masalah
.Program merupakan kumpulan instruction set yang akan dijalankan oleh
pemroses, yaitu berupa software
.Algoritma pemrograman merupakan langkah-langkah tersetruktur yang
tepat dan terperinci yang digunakan untuk menyelesaikan sebuah
masalah dalam proses perancangan sebuah program komputer
.Bahasa pemrograman yang berarti bahasa yang digunakan dalam
pembuatan program komputer. contoh bahasa pemrograman : C, C++,
Pascal, Phyton, Qbasic, Visual Basic, Java, PHP. dll
2.

Contoh algoritma
algoritma memasak mie instan prosesnya adalah :
memanaskan air, membuka pembungkus mie instant (tentunya),
memasukkan mie ke dalam air, taruh bumbu di piring, angkat mie jika sudah
masak, campurkan dengan bumbu yang sudah ada di piring dengan mie

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

DASAR ALGORITMA PEMROGRAMAN


Struktur Algoritma
3. Ciri algoritma
.Algoritma mempunyai awal dan akhir
.Setiap Setiap langkah harus didefinisikan dengan tepat sehingga tidak
memiliki arti ganda (ambigu)
.Memiliki masukan (input) atau kondisi awal
.Memiliki keluaran (output) atau kondisi akhir
.Algoritma harus efektif; bila digunakan benar benar menyelesaikan
persoalan.
4. Cara penulisan algoritma
.Judul algoritma
{ komentar mengenai algoritma, kondisi awal dan kondisi akhir }
.Kamus
{ deklarasi nama variabel, nama konstantan, fungsi dan prosedur }
.Algoritma
{ uraian algoritma, input, proses dan output }

DASAR ALGORITMA PEMROGRAMAN

Struktur Algoritma
Contoh

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

Program Menghitung Luas Segitiga


{ diberikan inputan alas dan tinggi segitiga, kemudian menghitung luas
segitiga dan mencetak luas segitiga }
Kamus
alas, tinggi, luas : integer
Algoritma
input(alas,tinggi)
luas 0.5*alas*tinggi
output(luas)

DASAR ALGORITMA PEMROGRAMAN

Struktur Algoritma
Latihan
1.
2.

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

Buatlah Algoritma untuk menghitung volume kubus


Buatlah algoritma kecepatan laju mobil jika diketahui waktu tempuh adalah
3jam dan jarak tempuh adalah 3Km

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

DASAR ALGORITMA PEMROGRAMAN


Alur Logika Pemrograman
1. Sequential
Struktur berurutan terdiri dari satu atau lebih instruksi. Setiap instruksi
dikerjakan secara berurutan.
ketentual pemrograman sequential :
.Tiap instruksi dikerjakan satu persatu
.Tiap instruksi dikerjakan sekali, tidak ada yang diulang
.Akhir dari instruksi terakhir merupakan akhir dari algoritma
Contoh
Program Konversi Celcius ke Fahrenheit
{ diinputkan nilai celcius kemudian dikonversikan ke fahrenheit }
Kamus
c, f : integer
Algoritma
input(c)
f c*1.8 + 32
output(f)

DASAR ALGORITMA PEMROGRAMAN


Alur Logika Pemrograman
2. Branching / Percabangan
Di gunakan untuk menguji sebuah kondisi. bila kondisi yang di uji terpenuhi
maka program akan melakukan pernyataan-pernyataan tertentu & bila
kondisi yang di uji salah maka program akan menjalankan pernyataan lain

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

Macam-macam statement percabangan sbb :


. if else
Perintah ini memberikan satu alternatif dari dua kemungkinan.
Bentuk umum:
if (kondisi)
{
statemen_jika_kondisi_terpenuhi;
}
else
{
statemen_jika_kondisi_tidak_terpenuhi;
}

DASAR ALGORITMA PEMROGRAMAN


Alur Logika Pemrograman
Contoh algoritma dengan if-else

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

Algoritma Menentukan Bilangan Terbesar


{ menentukan bilangan terbesar dari dua bilangan, a dan b }
Kamus
a, b, terbesar : integer
Algoritma
input(a,b)
if(a>b)
{
terbesar a
}
else
{
terbesar b
}
output(terbesar)

DASAR ALGORITMA PEMROGRAMAN


Alur Logika Pemrograman
Contoh source code if else dalam bahasa C

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

/* judul : program menenentukan bilangan terbesar dari dua bilangan


autho : Dewi Nurdiyah
date : ......
*/
#include <stdio.h>
#include <conio.h>
main()
{
/*kamus*/
int a,b,terbesar;
/*algoritma*/
printf(input kan bilangan a = ); scanf(%d,&a);
printf(input kan bilangan b = ); scanf(%d,&b);
if(a>b)
{
terbesar = a;
}
else
{
terbesar = b;
}
printf(terbesar adalah %d, terbesar)
getch();
retun 0;
}

DASAR ALGORITMA PEMROGRAMAN


Alur Logika Pemrograman
Contoh source code if else if- else dalam bahasa C

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

/* judul : program menenentukan bentuk air berdasarkan suhu yang diinputkan


autho : Dewi Nurdiyah
date : ......
*/
#include <stdio.h>
#include <conio.h>
main()
{
/*kamus*/
int suhu;
/*algoritma*/
printf(input kan suhu air ); scanf(%d,&suhu);
if(suhu <0)
{
printf(\n suhu air kurang dari 0 C, maka bentuk air adalalah
padat);
}
else if((suhu>0 ) && (suhu<100))
{
printf(\n suhu air antara 0 s/d 100 C, maka bentuk air adalah
cair);
}
else
{
printf(\n suhu air lebih dari 100 C, maka bentuk air adalah uap);
}
getch();
retun 0;
}

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

DASAR ALGORITMA PEMROGRAMAN


Alur Logika Pemrograman
Pernyataan switch-case..
Struktur kondisi switch....case....default digunakan untuk penyeleksian
kondisi dengan kemungkinan yang terjadi cukup banyak. Struktur ini akan
melaksanakan salah satu dari beberapa pernyataan case tergantung
nilai kondisi yang ada di dalam switch. Selanjutnya proses diteruskan
hingga ditemukan pernyataan break. Jika tidak ada nilai pada case yang
sesuai dengan nilai kondisi, maka proses akan diteruskan kepada
pernyataan yang ada di bawah default.
Bentuk umum :
switch(kondisi)
{
case 1 : pernyataan-1;
break;
case 2 : pernyataan-2;
break;
.....
.....
case n : pernyataan-n;
break;
default : pernyataan-m
}

DASAR ALGORITMA PEMROGRAMAN


Alur Logika Pemrograman
Algoritma switch-case..

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

Algoritma Menentukan Nama Hari


{ menentukan nama hari berdasarkan angka yang diinputkan }
Kamus
harike : integer
Algoritma
input(harike)
switch(harike)
{
case 1 : output (hari senin)
break
case 2 : output (hari selasa)
break
case 3 : ouput(hari rabu)
break
case 4 : output(hari kamis)
break
case 5 : output(hari jumat)
break
case 6 : ouput(hari sabtu)
break
case 7 : output(hari minggu)
break
default : output(inputan salah)
}

DASAR ALGORITMA PEMROGRAMAN


Alur Logika Pemrograman
Contoh source code switch-case dalam bahasa C

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

/* judul : program menenentukan nama hari berdasarkan angka yang diinputkan


author : Dewi Nurdiyah
date : ......
*/
#include <stdio.h>
#include <conio.h>
main()
{
/*kamus*/
int harike;
/*algoritma*/
printf(input hari ke = ); scanf(%d,&harike);
switch(harike)
{
case 1 : printf(\n hari senin);
break;
case 2 : printf(\n hari selasa); break;
case 3 : printf(\n hari rabu);
break;
case 4 : printf(\n hari kamis);
break;
case 5 : printf(\n hari jumat);
break;
case 6 : printf(\n hari sabtu);
break;
default : printf(\n angka yang anda inputkan salah);
}
getch();
retun 0;
}

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

DASAR ALGORITMA PEMROGRAMAN


Alur Logika Pemrograman
3. Looping / Pengulangan
Di gunakan untuk mengulang-ulang pernyataan dengan syarat terdapat
kondisi awal(start) dan kondisi akhir(final).
Macam-macam statement percabangan sbb :
. for()
perintah ini akan mengulang-ulang pernyataan dari kondisi awal awal
sampai kondisi akhir dengan lompatan yang sudah ditentukan.
Bentuk umum:
for (kondisi awal ; syarat kondisi awal dan akhir ; lompatan)
{
statemen_jika_kondisi_terpenuhi;
}

DASAR ALGORITMA PEMROGRAMAN


Alur Logika Pemrograman
Contoh source code dengan statement for()
algoritma untuk menampilkan bilangan 1 sampai 1000

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

for (bilangan=1; bilangan<=1000; bilangan++)


{
printf(%d, bilangan);
}

DASAR ALGORITMA PEMROGRAMAN


Alur Logika Pemrograman
Contoh source code dengan statement while()
algoritma untuk menampilkan bilangan 1 sampai 1000

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

bilangan =1;
while(bilangan<=100)
{
printf(%d, bilangan);
bilangan ++;
}

DASAR ALGORITMA PEMROGRAMAN


Alur Logika Pemrograman
Latihan
Buatlah algoritma untuk menentukan bilangan terkecil dari tiga bilangan

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

DASAR ALGORITMA PEMROGRAMAN


Data Flow Diagram
1. Flow Chart

SK/KD
SK/KD

Flowchart atau bagan alir adalah skema/bagan (chart) yang menunjukkan


aliran (flow) di dalam suatu program secara logika. Flowchart merupakan alat yang
banyak digunakan untuk menggambarkan algoritma dalam bentu notasi-notasi
tertentu. Secara lebih detil bagian ini akan dibahas pada bagian berikutnya.
Pada flowchart ada beberapa simbol penting yang digunakan untukmembuat
algoritma sebagaimana tercantum pada table dibawah ini
Symbol

INDIKATOR
INDIKATOR

MATERI
MATERI

Arti
Notasi ini disebut Terminator yang berarti digunakan untuk
menunjukkan awal dan akhir suatu algoritma
Notasi ini disebut Data yang digunakan untuk mewakili data
input atau output atau menyatakan operasi pemasukan data
dan pencetakan hasil.
Notasi ini disebut Process yang digunakan untuk mewakili
suatu proses.
Notasi ini disebut Decision yang digunakan untuk suatu
pemilihan, penyeleksian kondisi di dalam suatu program

EVALUASI
EVALUASI

Notasi ini disebut Preparation yang digunakan untuk memberi


nilai awal, nilai akhir, penambahan/pengurangan bagi suatu
variable counter.
Notasi ini disebut Predefined Process yang digunakan untuk
menunjukkan suatu operasi yang rinciannya ditunjukkan di
tempat lain (prosedur, sub-prosedur, fungsi)
Notasi ini disebut Connector yang digunakan untuk
menunjukkan sambungan dari flowchart yang terputus di
halaman yang sama atau halaman berikutnya.
Notasi ini disebut Arrow yang digunakan untuk menunjukkan
arus data atau aliran data dari proses satu ke proses lainnya.

DASAR ALGORITMA PEMROGRAMAN


Diagram Alir Pemrograman
1. Flow chart dengan skema sequential

Begin

SK/KD
SK/KD

INDIKATOR
INDIKATOR

Input jari2

Luas = 3.14 * jari2 * jari2

Print luas

MATERI
MATERI
End

EVALUASI
EVALUASI

DASAR ALGORITMA PEMROGRAMAN


Diagram Alir Pemrograman
2. Flow chart dengan skema branching
Begin

Input a,b

SK/KD
SK/KD
ya

a>b

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

tidak

Print Terbesar
adalah a

Print Terbesar
adalah b

End

DASAR ALGORITMA PEMROGRAMAN


Diagram Alir Pemrograman
3. Flow chart dengan skema looping
Begin

SK/KD
SK/KD

Bilangan
= 1 To
10000

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

End

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

DASAR ALGORITMA PEMROGRAMAN


Tipe Data & Operator
1. Tipe data ordinal & tipe data bentukan
.Data ordinal : tipe data yang memiliki ranah yang dapat dihitung.
Contoh :
Integer : -32768 32767
Real : 2.9 x e -39 1.7 x 10 e 38
Char : char(0) char (255)
Bolean : [ TRUE,FALSE]
String : abc,456,10
.Tipe bentukan
Contoh :
LIST
Record (rekaman)
STACK
FILE
TREE, dll
.Tipe Array
.Tipe Set (himpunan) memiliki batas bawah 0 dan batas atas 255 elemen

DASAR ALGORITMA PEMROGRAMAN

Tipe Data & Operator


2.

Operator biner aritmatik


Operator
+

Operation
Addition

integer type

real type

real type

integer type

integer type

real type

real type

integer type

integer type

real type

real type

integer type

real type

real type

real type

Integer division

integer type

integer type

Remainder

integer type

integer type

Subtraction

INDIKATOR
INDIKATOR

Multiplication

MATERI
MATERI

/
EVALUASI
EVALUASI

div
mod

Result type

integer type

SK/KD
SK/KD

Operand types

Division

DASAR ALGORITMA PEMROGRAMAN


Tipe Data & Operator
3. Operator string
Operator
Operation
+
concatenation

Operand types
string type, Char type,
or packed string type

SK/KD
SK/KD

INDIKATOR
INDIKATOR

4. Operator set
Operator

MATERI
MATERI

EVALUASI
EVALUASI

Result type
string type

Operation

Operand types

Union

compatible set types

Difference

compatible set types

Intersection

compatible set types

Hasil dari operasi set tergantung dari aturan logika set :


- An ordinal value C is in A + B only if C is in A or B.
- An ordinal value C is in A - B only if C is in A and not in B.
- An ordinal value C is in A * B only if C is in both A and B.

DASAR ALGORITMA PEMROGRAMAN

Tipe Data & Operator


5. Operator boolean
Operator

SK/KD
SK/KD

Operation

Operand types

Result type

not

negation

Boolean

Boolean

and

logical and

Boolean

Boolean

or

logical or

Boolean

Boolean

xor

logical xor

Boolean

Boolean

Operand types

Result type

INDIKATOR
INDIKATOR

6. Operator logika
MATERI
MATERI

EVALUASI
EVALUASI

Operator

Operation

not

Bitwise negation integer type

integer type

and

Bitwise and

integer type

integer type

or

Bitwise or

integer type

integer type

xor

Bitwise xor

integer type

integer type

shl

Shift left

integer type

integer type

shr

Shift right

integer type

integer type

DASAR ALGORITMA PEMROGRAMAN

Tipe Data & Operator


7. Operator relasional
Operator Operation
=

Equal

Result type Operand types


Boolean

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

<>

Not equal

Boolean

<

Less than

Boolean

>

Greater than

Boolean

<=

Less or equal

Boolean

compatible simple, pointer, set,


string, or packed string types
compatible simple, pointer, set,
string, or packed string types
compatible simple, string, packed
string types, or PChar
compatible simple, string, packed
string types, or PChar
compatible simple, string, packed
string types, or PChar

>=

Greater or equal Boolean

compatible simple, string, or packed


string types, or PChar

<=

Subset of

Boolean

compatible set types

>=

Superset of

Boolean

compatible set types

in

Member of

Boolean

left operand: any ordinal type T;


right operand: set whose base is
compatible with T.

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

DASAR ALGORITMA PEMROGRAMAN


Tipe Data & Operator
Latihan tipe data untuk berbagai kasus
Kasus 1 :
Definisikan suatu tipe data untuk nilai-nilai berikut:
1.
0.9899
2.
Saya Pergi ke ST-INTEN
3.
120000
4.
12 x 10 7
5.
(Januari,, Desember)
6.
X bernilai False, dan Y bernilai TRUE
7.
Y = 10
Kasus 2
Gunakan operator yang sudah ada, berapakah hasilnya
1.
3+3=
2.
saya + dia =
3.
TRUE and False =
4.
7 div 3 =
5.
8 mod 3 =
Kasus 3:
Berapa hasilnya (TRUE / FALSE):
1. A = A
2. Aku = Aku
3. 5 <> 7
4. 4 >= 3
5. 4 in [1,2,3,4]

DASAR ALGORITMA PEMROGRAMAN


Tipe Data & Operator
7. Operator relasional

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

SK/KD
SK/KD

INDIKATOR
INDIKATOR

MATERI
MATERI

EVALUASI
EVALUASI

DASAR ALGORITMA PEMROGRAMAN

You might also like