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
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.
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.
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
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.
begin
A:=False;
writeln(A);
writeln(not A);
readln;
end.
begin
A:=True;
B:=False;
writeln(A and A);
writeln(A and B);
writeln(B and A);
writeln(B and B);
readln;
end.
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
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.
19
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;
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.
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