You are on page 1of 32

Media Pembelajaran Interaktif

Program Keahlian Rekayasa Perangkat Lunak


Oleh Maryanto, S.Kom
X

±¾ DASAR ALGORITMA PEMROGRAMAN


Standar Kompetensi
Menerapkan Algoritma Pemrograman Tingkat Dasar

Kompetensi Dasar
Menjelaskan strukrur algoritma
SK/KD Membuat algoritma pemrograman
Menjelaskan data flow diagraman (DFD)
Membuat diagram alir pemrograman
INDIKATOR Tipe data dan operator

MATERI

EVALUASI
X

±¾ DASAR ALGORITMA PEMROGRAMAN


Indikator

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
SK/KD Simbol-simbol dalam data flow diagram dijelaskan dengan kreatif dan
mandiri
DFD dengan skema program sekuensial
INDIKATOR DFD dengan skema program percabangan
DFD dengan skema program pengulangan
Tipe data, variabel dan konstanta
MATERI Operator logika, operator aritmatika, operator relasional dijelaskan
pemanfaatannya

EVALUASI
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Materi

Struktur algoritma

Alur logika pemrograman


SK/KD

Data flow diagram


INDIKATOR

MATERI Diagram alir pemrograman

EVALUASI Tipe data & operator


X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ 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
SK/KD  Algoritma pemrograman merupakan langkah-langkah tersetruktur yang
tepat dan terperinci yang digunakan untuk menyelesaikan sebuah masalah
dalam proses perancangan sebuah program komputer
INDIKATOR  Bahasa pemrograman yang berarti bahasa yang digunakan dalam
pembuatan program komputer. contoh bahasa pemrograman : C, C++,
Pascal, Phyton, Qbasic, Visual Basic, Java, PHP. dll
MATERI
2. Contoh algoritma
algoritma memasak mie instan prosesnya adalah :
memanaskan air, membuka pembungkus mie instant (tentunya),
EVALUASI memasukkan mie ke dalam air, taruh bumbu di piring, angkat mie jika sudah
masak, campurkan dengan bumbu yang sudah ada di piring dengan mie
X

±¾ 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
SK/KD  Memiliki keluaran (output) atau kondisi akhir
 Algoritma harus efektif; bila digunakan benar – benar menyelesaikan
persoalan.
INDIKATOR
4. Cara penulisan algoritma
 Judul algoritma
MATERI
{ komentar mengenai algoritma, kondisi awal dan kondisi akhir }
 Kamus
{ deklarasi nama variabel, nama konstantan, fungsi dan prosedur }
 Algoritma
EVALUASI { uraian algoritma, input, proses dan output }
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Struktur Algoritma

Contoh

Program Menghitung Luas Segitiga


{ diberikan inputan alas dan tinggi segitiga, kemudian menghitung
luas segitiga dan mencetak luas segitiga }
SK/KD Kamus
alas, tinggi, luas : integer
Algoritma
INDIKATOR input(alas,tinggi)
luas  0.5*alas*tinggi
output(luas)
MATERI

EVALUASI
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Struktur Algoritma

Latihan

1. Buatlah Algoritma untuk menghitung volume kubus


2. Buatlah algoritma kecepatan laju mobil jika diketahui waktu tempuh adalah
3jam dan jarak tempuh adalah 3Km
SK/KD

INDIKATOR

MATERI

EVALUASI
X

±¾ 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
SK/KD  Tiap instruksi dikerjakan sekali, tidak ada yang diulang
 Akhir dari instruksi terakhir merupakan akhir dari algoritma

INDIKATOR Contoh
Program Konversi Celcius ke Fahrenheit
{ diinputkan nilai celcius kemudian dikonversikan ke fahrenheit }
MATERI
Kamus
c, f : integer
Algoritma
input(c)
EVALUASI f  c*1.8 + 32
output(f)
X

±¾ 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 Macam-macam statement percabangan sbb :


 if –else
Perintah ini memberikan satu alternatif dari dua kemungkinan.
INDIKATOR
Bentuk umum:

MATERI
if (kondisi)
{
statemen_jika_kondisi_terpenuhi;
}
EVALUASI else
{
statemen_jika_kondisi_tidak_terpenuhi;
}
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Alur Logika Pemrograman

Contoh algoritma dengan if-else

Algoritma Menentukan Bilangan Terbesar


{ menentukan bilangan terbesar dari dua bilangan, a dan b }
Kamus
SK/KD a, b, terbesar : integer
Algoritma
input(a,b)
INDIKATOR if(a>b)
{
terbesar  a
MATERI
}
else
{
terbesar  b
EVALUASI }
output(terbesar)
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Alur Logika Pemrograman

 Contoh source code if – else dalam bahasa C


/* judul : program menenentukan bilangan terbesar dari dua bilangan
autho : Dewi Nurdiyah
date : ......
*/
#include <stdio.h>
SK/KD #include <conio.h>
main()
{
/*kamus*/
INDIKATOR int a,b,terbesar;
/*algoritma*/
printf(“input kan bilangan a = “); scanf(“%d”,&a);
MATERI printf(“input kan bilangan b = “); scanf(“%d”,&b);
if(a>b)
{
terbesar = a;
EVALUASI }
else
{
terbesar = b;
}
printf(“terbesar adalah %d”, terbesar)
getch();
retun 0;
}
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Alur Logika Pemrograman

 Contoh source code if – else if- else dalam bahasa C


/* judul : program menenentukan bentuk air berdasarkan suhu yang diinputkan
autho : Dewi Nurdiyah
date : ......
*/
#include <stdio.h>
SK/KD #include <conio.h>
main()
{
/*kamus*/
INDIKATOR int suhu;
/*algoritma*/
printf(“input kan suhu air “); scanf(“%d”,&suhu);
MATERI if(suhu <0)
{ printf(“\n suhu air kurang dari 0 °C, maka bentuk air adalalah
padat”);
}
EVALUASI 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;
}
X

±¾ 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
SK/KD 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’.
INDIKATOR
Bentuk umum :

MATERI
switch(kondisi)
{
case 1 : pernyataan-1;
break;
EVALUASI case 2 : pernyataan-2;
break;
.....
.....
case n : pernyataan-n;
break;
default : pernyataan-m
}
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Alur Logika Pemrograman

 Algoritma switch-case..

Algoritma Menentukan Nama Hari


{ menentukan nama hari berdasarkan angka yang diinputkan }
Kamus
harike : integer
SK/KD Algoritma
input(harike)
switch(harike)
{
INDIKATOR case 1 : output (hari senin)
break
case 2 : output (hari selasa)
MATERI break
case 3 : ouput(hari rabu)
break
case 4 : output(hari kamis)
EVALUASI break
case 5 : output(hari jum’at)
break
case 6 : ouput(hari sabtu)
break
case 7 : output(hari minggu)
break
default : output(inputan salah)
}
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Alur Logika Pemrograman

 Contoh source code switch-case dalam bahasa C

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


author : Dewi Nurdiyah
date : ......
*/
SK/KD #include <stdio.h>
#include <conio.h>
main()
{
INDIKATOR /*kamus*/
int harike;
/*algoritma*/
MATERI printf(“input hari ke = “); scanf(“%d”,&harike);
switch(harike)
{
case 1 : printf(“\n hari senin”); break;
EVALUASI 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 jum’at”); break;
case 6 : printf(“\n hari sabtu”); break;
default : printf(“\n angka yang anda inputkan salah”);
}
getch();
retun 0;
}
X

±¾ 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()
SK/KD perintah ini akan mengulang-ulang pernyataan dari kondisi awal awal
sampai kondisi akhir dengan lompatan yang sudah ditentukan.

INDIKATOR Bentuk umum:

for (kondisi awal ; syarat kondisi awal dan akhir ; lompatan)


MATERI
{
statemen_jika_kondisi_terpenuhi;
}
EVALUASI
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Alur Logika Pemrograman

 Contoh source code dengan statement for()


algoritma untuk menampilkan bilangan 1 sampai 1000

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


{
SK/KD printf(“%d”, bilangan);
}

INDIKATOR

MATERI

EVALUASI
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Alur Logika Pemrograman

 Contoh source code dengan statement while()


algoritma untuk menampilkan bilangan 1 sampai 1000

bilangan =1;
while(bilangan<=100)
SK/KD {
printf(“%d”, bilangan);
bilangan ++;
INDIKATOR }

MATERI

EVALUASI
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Alur Logika Pemrograman

Latihan

Buatlah algoritma untuk menentukan bilangan terkecil dari tiga bilangan

SK/KD

INDIKATOR

MATERI

EVALUASI
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Data Flow Diagram

1. Flow Chart
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
SK/KD untukmembuat algoritma sebagaimana tercantum pada table dibawah ini
Symbol Arti
Notasi ini disebut Terminator yang berarti digunakan untuk
INDIKATOR 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.
MATERI 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 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.
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Diagram Alir Pemrograman

1. Flow chart dengan skema sequential

Begin

SK/KD Input jari2

Luas = 3.14 * jari2 * jari2


INDIKATOR

Print luas

MATERI
End

EVALUASI
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Diagram Alir Pemrograman

2. Flow chart dengan skema branching

Begin

Input a,b
SK/KD

ya tidak

a>b
INDIKATOR

Print “Terbesar Print “Terbesar


MATERI adalah a” adalah b”

EVALUASI
End
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Diagram Alir Pemrograman

3. Flow chart dengan skema looping

Begin

Bilangan
SK/KD = 1 To
10000

INDIKATOR

MATERI End

EVALUASI
X

±¾ 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
SK/KD Char : char(0) … char (255)
Bolean : [ TRUE,FALSE]
String : ‘abc’,’456’,’10’
INDIKATOR
 Tipe bentukan
Contoh :
MATERI
LIST
Record (rekaman)
STACK
FILE
EVALUASI TREE, dll
 Tipe Array
 Tipe Set (himpunan) memiliki batas bawah 0 dan batas atas 255 elemen
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Tipe Data & Operator

2. Operator biner aritmatik

Operator Operation Operand types Result type


+ Addition integer type integer type
SK/KD real type real type
- Subtraction integer type integer type
INDIKATOR real type real type
* Multiplication integer type integer type

MATERI real type real type


/ Division integer type real type
real type real type
EVALUASI
div Integer division integer type integer type
mod Remainder integer type integer type
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Tipe Data & Operator

3. Operator string

Operator Operation Operand types Result type


+ concatenation string type, Char type, string type
or packed string type
SK/KD

4. Operator set
INDIKATOR

Operator Operation Operand types


MATERI + Union compatible set types
- Difference compatible set types
EVALUASI
* 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.
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Tipe Data & Operator

5. Operator boolean

Operator Operation Operand types Result type


not negation Boolean Boolean

SK/KD and logical and Boolean Boolean


or logical or Boolean Boolean
xor logical xor Boolean Boolean
INDIKATOR

6. Operator logika
MATERI
Operator Operation Operand types Result type
not Bitwise negation integer type integer type
EVALUASI
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
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Tipe Data & Operator

7. Operator relasional
Operator Operation Result type Operand types

compatible simple, pointer, set,


= Equal Boolean string, or packed string types
SK/KD
compatible simple, pointer, set,
<> Not equal Boolean string, or packed string types
INDIKATOR compatible simple, string, packed
< Less than Boolean string types, or PChar
compatible simple, string, packed
MATERI
> Greater than Boolean string types, or PChar
compatible simple, string, packed
<= Less or equal Boolean string types, or PChar
EVALUASI compatible simple, string, or packed
>= Greater or equal Boolean 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.
X

±¾ 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
SK/KD 4. 12 x 10 7
5. (Januari,…, Desember)
6. X bernilai False, dan Y bernilai TRUE
INDIKATOR 7. Y = 10
 Kasus 2
Gunakan operator yang sudah ada, berapakah hasilnya
MATERI 1. 3+3=
2. ‘saya’ + ‘ dia’ =
3. TRUE and False =
EVALUASI 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]
X

±¾ DASAR ALGORITMA PEMROGRAMAN

™ Tipe Data & Operator

7. Operator relasional

SK/KD

INDIKATOR

MATERI

EVALUASI
X

±¾ DASAR ALGORITMA PEMROGRAMAN

SK/KD

INDIKATOR

MATERI

EVALUASI

You might also like