Anda di halaman 1dari 29

Perhatian

Rangkuman Pembelajaran ini, dapat diunduh, digandakan, disalin, dicetak, dialihmediakan, ataupun
difotokopi.
Penggandaan baik dalam bentuk penyalinan, pencetakan, dan lain sebagainya yang bertujuan untuk
dikomersilkan/dijual tidak dapat dilakukan tanpa izin tertulis dari PJ Modul Pengurus Angkatan 64
dan Pengurus Angkatan 64. Apabila melanggar, akan diberikan sanksi sesuai peraturan yang
berlaku.
KRITIK DAN SARAN
Untuk kritik dan saran terhadap rangkuman pembelajaran ini, dapat dikirimkan melalui Google
Formulir yang tersedia di bawah.

https://forms.gle/6PbAFj8UmioDHvCd8

1
RANGKUMAN
ALGORITMA DAN PEMROGRAMAN/DASAR-DASAR PEMROGRAMAN
Sekilas
Algoritma dan pemrograman mengajarkan teknik dasar dalam membuat algoritma yang nantinya
akan dituangkan dalam pembuatan program. Mata kuliah ini juga akan mengajarkan struktur dasar
algoritma seperti sequence, percabangan, perulangan dan juga translasi dari algoritma ke bahasa
pemrograman.
Di Polstat STIS, Praktik Algoritma dan Pemrograman menggunakan bahasa Pascal.

Pengertian
Pendekatan atau metode yang digunakan untuk menyelesaikan masalah.
Syarat Algoritma yang Baik
1. Finiteness, algoritma harus ada akhir atau berhenti setelah mengerjakan suatu instruksi.
2. Defineteless, setiap langkah pada algoritma harus didefinisikan dengan jelas, sehingga
tidak menimbulkan makna ganda.
3. Input, algoritma harus memiliki masukan data untuk diolah.
4. Output, algoritma harus memiliki output yang merupakan hasil dari pengolahan data.
Effectivenes, memiliki langkah-langkah yang sederhana, sehingga dapat diselesaikan dalam waktu
yang wajar
Penyajian Algoritma
1. Menggunakan bahasa (Bahasa Indonesia, Bahasa Inggris)
• Tidak menggunakan simbol atau sintaks bahasa pemrograman.
• Tidak tergantung bahasa pemrograman.
• Notasinya dapat digunakan untuk seluruh bahasa apa pun.
2. Pseudocode
Menggunakan kode yang mirip dengan kode pemrograman sebenarnya.
1) input (a, b, c)
2) Jml = a+b+c
3) Rerata = Jml/3
4) Output (Rerata)
3. Flowchart
Flowchart (diagram alir) adalah sebuah bagan yang dibuat untuk menunjukan alir, arus,
atau flow dengan menggunakan prosedur yang sistematis dan berlaku secara logis dalam
suatu sistem.

2
Lambang Flowchart

Contoh Flowchart
Menentukan ganjil-genap

Struktur Dasar Algoritma


1. Struktur Pemilihan

3
Pada struktur ini, jika kondisi terpenuhi maka salah satu aksi akan dilaksanakan dan aksi
yang ke dua diabaikan. Kondisi dapat dinilai benar atau salah, sehingga setiap kemungkinan
dapat memunculkan hasil yang berbeda.

Contoh : Menentukan bilangan terbesar :


if x > y then
writeln(‘x bilangan terbesar’);
else
writeln(‘y bilangan terbesar’);
2. Struktur Pengulangan
• Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang.
Instruksi dikerjakan selama memenuhi suatu kondisi tertentu.
• Jika syarat (kondisi) masih terpenuhi maka pernyataan (aksi) akan terus dilakukan
secara berulang.

4
Latihan Soal
1. Buatlah flowchart untuk menentukan suatu bilangan bulat lebih dari 10 atau tidak.

5
Pertemuan 2
Arsitektur Data
Struktur Program
1. Judul Program
Blok Program atau Badan Program
2. Bagian Deklarasi
(deklarasi label, konstanta, tipe, variable, prosedur, fungsi)
3. Bagian Pernyataan

Contoh
program Contoh_real;
var a:real;
begin
a:=12;
writeln('Hello World',a);
end.program Contoh_real;
var a:real;
begin
a:=12;

6
writeln('Hello World',a);
end.

Baris 1 merupakan judul program


Baris 2 merupakan bagian deklarasi
Baris 3-6 merupakan bagian program
Penulisan Program Pascal
Judul
• Judul program sifatnya adalah opsional dan tidak terlalu berarti dalam program. Judul program
bila ditulis, harus terletak pada awal dari program dan diakhiri dengan titik koma.
• Judul program ditulis dalam satu kata, jika lebih dari dua kata harus disambung dengan
tanda hubung bawah (tidak boleh ada spasi kosong).
• Judul program sifatnya sebagai dokumentasi saja, tidak berkaitan dengan proses program.
Badan Program
• Badan program ditulis diatara kata Begin dan End. Akhir penulisan End harus diakhiri tanda
titik.
Deklarasi
• Bagian deklarasi sering juga kamus program.
• Bagian deklarasi digunakan bila di dalam program menggunakan pengenal (identifier).
Pengenal dapat berupa label, tipe, variabel, prosedur, atau fungsi.
Pernyataan
• Penulisan pernyataan-pernyataan pada umumnya menjorok masuk beberapa kolom. Tidak
berpengaruh pada proses, hanya dimaksudkan supaya mempermudah pembacaan program,
sehingga akan lebih terlihat bagian-bagiannya.
• Setiap akhir pernyataan harus diakhiri dengan tanda titik koma.
Elemen Program Pascal
Program Pascal dapat dibentuk dari simbol-simbol yang terdiri dari huruf-huruf, angka-angka dan
simbol-simbol khusus.
1. Huruf
Huruf yang digunakan adalah huruf A sampai dengan Z, a sampai dengan z dan garis bawah (
_ ). Huruf besar dan huruf kecil dianggap sama, tidak dibedakan.
2. Angka
Angka yang digunakan adalah angka 0 1 2 3 4 5 6 7 8 9
3. Simbol khusus

7
Simbol khusus yang dapat digunbakan adalah:
+ - * / = ^ () [] {} . , : ; ’ # $ <= >= := .. (*
*)
Reserved Word
Kata-kata yang sudah didefiniskan oleh Pascal yang mempunyai maksud tertentu. Reserved words
tidak dapat dipergunakan sebagai identifier.
And Array Begin Case Const
Div Do Downto Else End
File For Forward Function Goto
If In Label Mod Nil
Not Of Or Procedure Program
Record Repeat Set Shl Shr
String Then To Type Until
Uses Var While With Xor
Identifier
• Identifier adalah nama yang diberikan sendiri oleh pengguna untuk konstansa, variable,
prosedur, fungsi.
• Identifier didefinsikan sendiri secara bebas, tetapi harus mengikuti ketentuan sebagai berikut.
1) Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf. Huruf
besar dan huruf kecil dianggap sama.
nAmA SisWa dan nama siswa dianggap merupakan karakter yang sama.
2) Tidak boleh mengandung spasi.
3) Tidak boleh mengandung simbol-simbol khusus, kecuali garis bawah.
4) Panjangnya bebas, tetapi hanya 63 karakter pertama yang dianggap siginifikan.
Contoh
NamaSiswa Benar
12333 Benar
10juta Salah
Juta10 Benar
A B Salah

Pertemuan 3

8
Tipe Data di Pascal

Integer
Tipe Data Ukuran Memori Jangkauan
Byte 1 byte 0…127
ShortInt 1 byte -64…63
Integer 2 byte -32768....32767
Word 2 byte 0…65535
LongInt 4 byte -231…231-1

Contoh :
Misalkan kita akan menulis 𝑛 = 100, maka 𝑛 tidak dapat bertipe ShortInt, karena 100 tidak masuk
dalam jangkauan ShortInt.
Tipe Data Real
• Nilai konstanta numeril real berkisar dari 1E-38 sampai dengan 1E+38 dengan mantisa yang
signifikan sampai dengan 11 digit.

9
• E menunjukkan nilai 10 pangkat. Nilai konstanta numeril real menempati memori sebesar 6
byte.

Contoh:
Misalnya kita akan membuat pengenal variabel yang bernama Luas dan akan bernilai desimal
atau ada pecahannya.

Digit Ukuran
Tipe Jangkauan
Signifikan (dalam byte)
Real platform dependant* ???* 4–8
(2,9 E-39 .. 1.7 E38) (11-12) (6)
Single 1,5E-45 .. 3,4E38 7-8 4
Double 5,0E-324 .. 1,7E308 15-16 8
Extended 1,9E-4951 .. 1,1E4932 19-20 10
Comp -263+1 .. 263-1 19-20 8

Contoh Program Real


{$N+}
program ujicoba;
uses crt;
var
a:real;
b:single;
c:double;
d:extended;
e:comp;

begin
clrscr;
a:=12345.6789;
b:=12345.6789;
c:=12345.6789;
d:=12345.6789;
e:=12345.6789;

writeln(' a ',a:6:4);
writeln(' b ',b:6:4);
writeln(' c ',c:6:4);

10
writeln(' d ',d:6:4);
writeln(' e ',e:6:4);
end.

KARAKTER
Nilai data karakter berupa karakter yang ditulis diantara tanda petik tunggal, seperti ‘A’, ‘a’,
‘!’, ‘5’ dan sebagainya. Penggunaan variabel untuk menyimpan data tipe karakter ini harus
dideklarasikan dengan tipe Char.
Contoh:
STRING
• Nilai data string merupakan urutan dari karakter yang terletak di antara tanda petik tunggal.
• Bila karakter petik merupakan bagian dari string, maka dapat ditulis dengan menggunaan dua
buah petik tunggal berurutan.
• Nilai data string akan menempati memori sebesar banyaknya karakter stringnya ditambah
dengan 1 byte. Bila panjang string tidak didefinisikan, maka dianggap panjangnya adalah 255
karakter (256 byte).
Contoh :
program HariTanggal;
var tanggal:string[10];hari:string[6];pasaran:string[6];
begin
tanggal:='26-12-2005';
hari:='Senin';
pasaran:='Pahing';
writeln(tanggal,' ',hari,' ',pasaran);
readln;
end.

BOOLEAN
Tipe data boolean mempunyai dua buah nilai, yaitu True dan False. Kita dapat mendeklarasikan
suatu variabel dengan tipe boolean dan mengisi variabel tersebut dengan nilai data boolean True
atau False. Tipe data ini tidak dapat dioperasikan kedalam bentuk aritmatika.
ORDINAL
Tipe data ordinal adalah tipe data yang merupakan subset dari tipe data sederhana. Yang termasuk
tipe data ordinal adalah:
• Tipe data standar (Ineteger, ShortInt, LongInt, Byte, Word, Boolean, Char)
• Tipe data yang didefinisikan sendiri
Tipe data ordinal mempunyai 4 karakteristik sebagai berikut.

11
1. Nilai dari tipe data ordinal mempunyai nilai yang berurutan.
2. Fungsi standar Ord dapat digunakan untuk menghasilkan nilai urutannya.
3. Fungsi standar Pred dapat digunakan untuk mengasilkan nilai urutan sebelumnya.
4. Fungsi standar Succ dapat digunakan untuk menghasilkan nilai urutan sesudahnya.
Contoh :
program Ordinal1;
begin
writeln(Ord('A'));
writeln(Pred('B'));
writeln(Succ('C'));
end.

ASSIGNMENT OPERATOR
Assignment operator adalah operator pengerjaan, operator ini menggunakan simbol titik dua diikuti
oleh tanda sama dengan (:=).
OPERATOR ARITMATIK

OPERATOR RELASIONAL

Operator Boolean

12
Hanya dadpat digunakan untuk membandingkan dua operand Boolean dan menghasilkan data
bertipe boolean juga.

Contoh Program dengan operator not


program Test;
var a:boolean;

begin
A:=False;
writeln(A);
writeln(not A);
readln;
end.

Contoh Program dengan operator and


program Test;
var a:boolean;b:boolean;

begin
A:=True;
B:=False;
writeln(A and A);
writeln(A and B);
writeln(B and A);
writeln(B and B);
readln;
end.

Contoh program dengan operator or.


program Test;
var a:boolean;
b:boolean;

13
begin
A:=True;
B:=False;
writeln(A or A);
writeln(A or B);
writeln(B or A);
writeln(B or B);
readln;
end.

Operator Bitwise
• Digunakan untuk operasi bit per bit pada nilai integer. Operator ini mirip seperti operator
logika, hanya saja perbandingannya dilakukan bit per bit.
• Operator ini dugunakan untuk operand integer dan menghasilkan ouput integer juga.
Misalkan A=60 dan B=13, dalam biner.
A = 0011 1100 : 60
B = 0000 1101 : 13

A&B = 0000 1100 : 2


A^B = 0011 1101

Shl dan Shr


Shl dan Shr berfungsi untuk menggeser kode biner.
Shl : Shift left artinya geser kiri secara matematis,

14
Shr : Shift right artinya geser kanan, secara matematis, dikali 2.

Misal
A≔10

Pertemuan 4
Konsep Pemilihan
Kondisi
• Kondisi adalah sebuah syarat atau keadaan yang harus dipenuhi pada proses penentuan langkah
program berikutnya.
”Jika dingin, maka kenakan mantel Anda!”
• Program seolah-olah dapat berpikir dan mengambil keputusan, padahal semua hal yang
dilakukan adalah berdasarkan perintah.
• Dalam memprogram, percabangan/pemilihan untuk pengambilan keputusan darisejumlah
pilihan kondisi yang mungkin.
• Bahasa pemrograman menyediakan pernyataan IF…THEN dan kata kunci yang lain seperti
CASE untuk melakukan suatu percabangan.
Pemilihan Sederhana
Statemen ini digunakan untuk memecahkan masalah dengan terlebih dahulu mengevaluasi sebuah
ekspresi boolean.

• Jika ekspresi tersebut bernilai true, maka satu (atau serangkaian) statement dilakukan.
• Aturan penulisan statemen If-Then adalah sebagai berikut:
if kondisi then
statement;

Latihan Soal

15
• Buatlah sebuah program di mana limit kartu kredit divalidasi untuk pembelian barang/jasa
tertentu.
• Program ini dimulai dengan mengevaluasi suatu batas/limit nilai konstanta, yang merupakan
limit kartu kredit (Rp1.000.000)
• Variabel jumlah tagihan nilainya bisa diterima dari entry data dengan keyboard.
• Program ini menampilkan pesan "Tagihan Anda diterima", jika jumlah tagihan kurang dari atau
sama dengan Limit kartu kredit.
• Jika kondisinya SALAH, maka program akan berakhir tanpa respon.
Else-If Berjenjang
• Meskipun pernyataan IF-THEN-ELSE ditujukan untuk pilihan biner, pernyataan dapat
diperluas untuk mengatasi pilihan yang lebih rumit.
• Struktur penulisannya yang berjenjang dikenal juga sebagai tangga ELSE-IF.
• Kondisi tangga ELSE-IF akan dievaluasi dari atas ke bawah.
• Ketika kondisi dievaluasi sebagai TRUE, pernyataan yang sesuai dijalankan dan sisa struktur
akan dilewati.
• Jika tidak ada kondisi yang sesuai, maka ELSE terakhir yang akan dieksekusi.

Kode :
If kondisi-1 then
statement-1
else if kondisi-2 then
statement-2
else if kondisi-3 then
statement-3
. . .

16
else
statement-n;

Jika kondisi yang satu merupakan komplemen kondisi yang lain, maka gunakan statemen if
berjenjang.
Else-If Bersarang

• Statemen if yang terkandung pada statemen if yang lain yang lebih duludijalankan, disebut
dengan statemen if tersarang (nested if).
• Hal ini mungkin terjadi jika statemen yang seharusnya dijalankan setelah pemeriksaan kondisi
atau ekspresi boolean, tidak dapat langsung dijalankan karena harus memeriksa kondisi atau
ekspresi boolean yang lain.

If kondisi-1 then
If kondisi-2 then
Statement-1
Else
Statement-2;

17
If kondisi-1 then
If kondisi-2 then
Statement-1
Else
Statement-2
Else
Statement-3;

If kondisi-1 then
If kondisi-2 then
...
If kondisi-n then
Statement-n1
Else
Statement-n2
...
Else
Statement-2
Else
Statement-1

Contoh
Aturan kelulusan

18
• Aturan kelulusan mahasiswa pada matakuliah Algortima Pemrograman diterapkan sebagai
berikut :
• Jika nilai ujian tengah semester (UTS) lebih besar dari 70, maka mahasiswa dinyatakan lulus
dan Nilai Akhir sama dengan nilai UTS.
• Jika nilai UTS kurang atau sama dengan 70 maka mahasiswa dinyatakan lulus jika Nilai Akhir
lebih besar atau sama dengan 60 dimana Nilai Akhir = (nilai UTS x 40%) + (nilai UAS x 60%)

If-Else Puzzle
program Test;

VAR
angka : INTEGER;
BEGIN
Write('Ketik sembarang integer:');
Readln (angka);
If Angka > 10 THEN
If Angka > 20 then
Writeln ('A')
ELSE
Writeln ('B');
Writeln ('C');
END.

• Jika kita masukkan sembarang integer: 30, 15 dan 5 apa hasilnya?


• Else pada program ini menjadi “milik” statement if yang mana?
Jika bagian else menjadi “milik” statemen if yang pertama
If Angka > 10 then
If Angka > 20 then
Writeln ('A')

19
Else
Writeln ('B')
Writeln ('C')

Jika bagian else menjadi “milik” statemen if yang kedua


program
If Angka > 10 then
If Angka > 20 then
Writeln ('A')
Else
Writeln ('B')
Writeln ('C')

Dalam Pascal, bagian else dianggap sebagai “milik” statemen if yang terdekat.
Kode Mati
Perhatikan contoh berikut.
If Jumlah < 200 then
statemen1
Else {jumlah >= 200}
If Jumlah >= 100 then
statemen2
Else {jumlah < 100}
statemen3

Perhatikan bahwa statemen3 tidak dapat dijalankan untuk suatu nilai jumlah, statement seperti ini
disebut kode mati.
Pertemuan 5
Konsep Pemilihan (2)
Untuk kasus berjenjang, struktur case dapat menyederhanakan penulisan.
CASE ungkapan OF
label-1 : statemen-1 ;
label-2 : statemen-2 ;
label-3 : statemen-3 ;


label-n : statemen-n ;
[ELSE statemen n+1]
END;

20
Yang ekuivalen dengan
If kondisi-1 then
statement-1
else if kondisi-2 then
statement-2
else if kondisi-3 then
statement-3
. . .
. . .
else if kondisi-n then
statement-n
else
statement-x;

Contoh : Menentukan Nama Bulan


Algoritma NAMA_NAMA_BULAN
AngkaBulan: integer {1..12}
Read(AngkaBulan)
case (AngkaBulan)
AngkaBulan=1 : write(‘Januari’)
AngkaBulan=2 : write(‘Februari’)
AngkaBulan=3 : write(‘Maret’)
AngkaBulan=4 : write(‘April’)
AngkaBulan=5 : write(‘Mei’)
AngkaBulan=6 : write(‘Juni’)
AngkaBulan=7 : write(‘Juli’)
AngkaBulan=8 : write(‘Agustus’)
AngkaBulan=9 : write(‘September’)
AngkaBulan=10 : write(‘Oktober’)
AngkaBulan=11 : write(‘November’)
AngkaBulan=12 : write(‘Desember’)
otherwise write(‘Bukan bulan yang benar’)
endcase
Pemilihan Tanpa Syarat

Exit

21
Goto
• Kita dapat memerintahkan komputer untuk melaksanakan baris secara melompat/meloncat,
serta melaksanakan lebih dari satu kali. Untuk itu kita dapat memanfaatkan statemen alih
kontrol GOTO.
• Pernyataan GOTO merupakan instruksi untuk mengarahkan eksekusi program menuju
pernyataan yang diawali dengan suatu Label.

GOTO label;
Label
• Suatu identifier yand diawali dengan titik dua
• Label adalah bilangan bulat positif hingga empat digit sebelum statemen yang diperlukan
(dalam Turbo Pascal label dapat berupa identifier yang valid dan dapat dimulai dengan
digit/angka).
• Label harus dideklarasikan di bagian deklarasi program.
• Deklarasi label dimulai dengan kata kunci LABEL dan dideklarasikan di bagian pertama
pada bagian deklarasi

Contoh Penggunaan

22
Pertemuan 6
Struktur Pengulangan
• Komputer dapat melakukan instruksi berulang dengan kinerja yang sama.
• Misal : menulis kata ‘Dahlah’ sebanyak 1000 kali.
Struktur Pengulangan
Terdapat 2 bagian struktur pengulangan:

• Kondisi pengulangan
• Badan (body) pengulangan
Struktur pengulangan biasanya disertai bagian:

• Inisialisasi
• Terminasi
Di dalam algoritma, pengulangan (repetition atau loop) dapat dilakukan sejumlah n kali, atau
sampai kondisi pengulangan berhenti tercapai.
Notasi Pengulangan
While-Do
Repeat-Until

For

23
Penjelasan
• Pada mulanya n diisi nilai 1
• Sebelum memasuki badan pengulangan, kondisi n<=10 diperiksa apakah bernilai true
• Karena 1<=10 bernilai true maka pernyataan writeln(‘HALO’) dilaksanakan sehingga output
yang tercetak:
HALO
• Selanjutnya pernyataan n:=n+1 menyebabkan nilai n bertambah 1 menjadi 2, lalu siklus
pengulangan dimasuki lagi

24
• Sebelum melaksanakan writeln(‘HALO’), kondisi pengulangan n<=10 diperiksa terlebih
dahulu
• Karena 2<=10 maka badan pengulangan dimasuki, writeln(‘HALO’) dilaksanakan sehingga
output yang tercetak:
HALO
HALO
• Demikian seterusnya sebanyak 10 kali. Setiap kali badan pengulangan dimasuki,nilai n
bertambah satu sampai n=11.
• Karena 11>10 maka kondisi pengulangan n<=10 bernilai false
• Pengulangan dihentikan.
program cetak_angka;
var
n,angka:integer;
Begin
write('masukkan jumlah angka: ');
readln(n);
angka:=1;
while angka<=n do
begin
writeln(angka);
angka:=angka+1;
end;
readln;
end.

Repeat-Until
Struktur

• Aksi di dalam badan pengulangan terus diulang sampai kondisi boolean bernilai true
• Dengan kata lain, jika kondisi berhenti masih false, pengulangan masih terus dilakukan.
• Karena pengulangan harus berhenti, di dalam badan pengulangan harus ada aksi yang
mengubah nilai kondisi
program cetak_halo;

25
var
n:integer;
begin
n:=1;
repeat
begin
writeln('HALO');
n:=n+1;
end;
until n>10;
readln;
end.

Mirip dengan WHILE-DO


• Pada struktur REPEAT-UNTIL, aksi dilaksanakan minimal satu kali, karena kondisi pengulangan
diperiksa pada akhir struktur.
• Pada struktur WHILE-DO kondisi pengulangan diperiksa pada awal struktur sehingga
memungkinkan badan pengulangan sama sekali tidak dilaksanakan.
Program Cetak Angka Sebanyak N
program cetak_angka;
var
n,angka:integer;
Begin
write(‘masukkan jumlah angka: ’);
readln(n);
angka:=1;
repeat
begin
writeln(angka);
angka:=angka+1;
end;
until angka>n;
readln;
end

For

• Struktur FOR digunakan untuk menghasilkan pengulangan sejumlah kali tanpa penggunaan
kondisi apapun.
• Struktur ini menyebabkan aksi diulangi sejumlah kali (tertentu)

26
Nested Loop
• Di dalam sebuah struktur pengulangan diperbolehkan untuk membuat pengulangan lainnya.
• Pada operasi FOR dalam FOR, FOR yang paling dalam akan diselesaikan lebih dahulu, baru
dieksekusi FOR yang di luar
• sehingga instruksi-instruksi yang didapat pada FOR yang paling dalam akan paling banyak
dieksekusi.
Syarat Nested Loop
Syarat yang harus diperhatikan untuk operasi FOR pengulangan tersarang :
• Setiap pengulangan tidak boleh menggunakan variabel counter yang sama
• Antara pengulangan-pengulangan tersebut tidak boleh saling berpotongan (overlapping)

27
Perhatian. Pada Rangkuman Alpro/DDP pihak akademik tidak menyediakan latihan soal, karena
soal mata kuliah Alpro tidak tersedia.

Referensi :
Kumpulan salindia yang telah diberikan dosen, diakses melalui drive FOSIL 63

28

Anda mungkin juga menyukai