Anda di halaman 1dari 8

Algoritma dan Pemrograman

Kompetensi Dasar Pengetahuan :


[XI-3.4.a.] Mengenal modularisasi dalam penulisan program.
[XI-3.4.b.] Mengenal beberapa proses standard (search, sort) yang primitif/sederhana.
[XI-3.4.c.] Mengetahui adanya algoritma-algoritma standard yang efisien untuk keperluan-keperluan
tertentu termasuk yang berdasarkan konsep AI.

Kompetensi Dasar Keterampilan :


[XI-4.4.a.] Menulis program yang mengandung prosedur/fungsi dan array (Siswa mampu menulis
pemecahan persoalan dalam bentuk program moduler, yang sudah mengandung parameter-
parameter).
[XI-4.4.b.] Melakukan pemecahan persoalan dengan cara sederhana.
[XI-4.4.c.] Melakukan pemecahan persoalan dengan cara lebih advance.
[XI-4.4.d.] Mengevaluasi dan memilih algoritma berdasarkan perfomansi, penggunaan ulang dan
kemudahan implementasi.
[XI-4.4.e.] Mengenal beberapa algoritma yang dipakai mengembangkan software, mengamankan
data dan menyimpan informasi.

Konsep Modularisasi Kode Program


Konsep Modularisasi Kode Program adalah Salah satu yang paling penting konsep-konsep
pemrograman adalah kemampuan untuk group beberapa baris kode ke dalam sebuah unit yang
dapat dimasukan dalam program, untuk kata lain adalah sub-program. Nama lain meliputi: makro,
sub-rutin, prosedur, modul dan fungsi. Kita akan menggunakan istilah fungsi untuk apa mereka di
sebut dalam bahasa pemrograman Pascal.
Fungsi-fungsi penting karena membolehkan kita untuk mengambil program besar dan rumit untuk
membagi menjadi potongan-potongan kecil diatur. Karena fungsi yang lebih kecil adalah bagian
program secara keseluruhan, kita bisa berkonsentrasi pada apa yang kita inginkan dan melakukan tes
untuk memastikan ia berfungsi dengan baik.

Umumnya fungsi jatuh kedalam dua kategori:


1. Control program
Fungsinya hanya di gunakan untuk membagi dan sub control program. fungsi ini adalah fungsi unik
yang di tulis. Lain-lain program dapat menggunaka fungsi serupa bahkan fungsi dengan nama yang
sama, tetapi isi dari fungsi hamper selalu sangaat berbeda.

2. Spesifik tugas
Fungsinya dirancang untuk digunakn dengan beberapa program . fungsi ini melakukan tugas tertentu
dan dengan itu bias digunakan dalam berbagai program karna program lain juga perlu untuk
melakukan tugas tertentu . spesifik tugas fungsi kadang-kadang disebut sebagai blok bangunan .
karena mereka sudah di uji dank ode. Kita dapat menggunakannya dengan keyakinan lebih efisien
untuk menulis program yang besar.

Proram utama harus menetapkan adanya fungsi yang di gunakan dalam program ini . tergantung
pada bahasa pemrograman, ada cara untuk formal:
1. menentukan fungsi (it’s definisi atau kode akan dijalankan))
2. memanggil fungsi
3. menyatakan fungsi (prototipe adalah sebuah deklarasi untuk kompilator)
Fungsi kontrol program biasanya tidak ke informasi untuk berkomunikasi satu sama lain, tetapi
daerah yang umum digunakan untuk menyimpan variabel. Tugas fungsi-fungsi khusus dibangun agar
data dapat dikomunikasikan antara memanggil program piece (yang biasanya fungsi lainnya) dan
fungsi yang dipanggil. Ini kemampuan untuk berkomunikasi data yang memungkinkan kita untuk
membangun suatu tugas fungsi yang dapat digunakan di banyak program. Peraturan untuk
bagaimana data yang dikomunikasikan dari dalam dan fungsi sangat bervariasi oleh bahasa
pemrograman, namun konsep yang sama.
Data item lulus (atau dikomunikasikan) disebut parameter. Dengan demikian, kata: parameter
lulus.Empat pilihan komunikasi data antara lain:
1. tidak ada komunikasi dalam komunikasi tanpa keluar
2. beberapa komunikasi tanpa komunikasi keluar
3. beberapa komunikasi dengan beberapa komunikasi keluar4. tidak ada komunikasi di luar
komunikasi dengan beberapa

Pengertian prosedur dan fungsi pada bahasa perograman Pascal


Pengertian Prosedur dan Fungsi
Di dalam pemrograman prosedur dan fungsi memiliki pengertian yang sama yaitu sebagai sebuah
program terpisah (sub-program) yang berfungsi untuk mengerjakan tugas tertentu.
Tujuan dibuatnya prosedur atau fungsi adalah untuk memudahkan dalam proses ngoding, karena
setiap tugas atau fungsi nantinya dapat di kelompokan ke dalam satu blok program (sub-program)
yang terpisah dari program utama. sehingga proses yang kelihatannya rumit dapat di pecah menjadi
bagian-bagian yang lebih sederhana.
Selain itu ketika kita sudah mendefinisikan suatu prosedur atau fungsi, maka cukup membuatnya
sekali saja dan seterusnya jika ingin menggunakannya kita hanya perlu memanggilnya dari program
utama, hal ini membuat program lebih efisien karena tidak perlu membuat perintah yang sama
berulang-ulang.

Perbedaan Fungsi dan Prosedur


Walaupun tujuan fungsi dan prosedur sama sebagai sub program namun keduanya memiliki sifat dan
ciri-ciri yang berbeda. Berikut ini adalah perbedaannya:
• Perbedaan pertama terletak pada cara pendeklarasiannya, prosedur di deklarasi
menggunakan kata kunci procedure, sedangkan fungsi memakai function.
• Perbedaan yang kedua, prosedur tidak memiliki tipe data sedangkan fungsi mempunyai tipe
data
• Karena fungsi memiliki tipe data maka fungsi akan mengembalikan nilai sesuai dengan tipe
nya saat fungsi tersebut dipanggil.

Pendefinisian Prosedur
Mendefinisiakan prosedur artinya menuliskan nama prosedur, konstanta, variabel dan menjabarkan
aksi apa yang akan dilakukan, termasuk deklarasi parameter jika ingin menggunakannya.
Berikut ini bentuk umum pendefinisian prosedur di pascal:

Program Nama_Program;
Procedure Nama_Prosedur;
Begin
........
........
End;
Begin
.........
.........
End.

Setiap prosedur mempunyai nama yang unik, sebaiknya nama prosedur diawali dengan kata kerja
misalnya HitungKeliling, CariBilangan, CetakNilai dan lain sebagainya.

Contoh Program Prosedur di Pascal


Program Procedure_1 ;
uses crt;
//Mendefinisikan prosedur

procedure CetakHello;
begin
writeln('Hello World');
end;

Begin
//Memanggil prosedur
CetakHello;
end.

Pada program di atas kita membuat prosedur CetakHello tanpa menggunakan parameter dengan


aksi yang di lakukan yaitu mencetak kalimat Hello World.
Prosedur tersebut di panggil pada program utama dengan cara menyebutkan nama
prosedur CetakHello.

Hasil Keluaran

Program Procedure_2 ;
uses crt;
var bil1,bil2, hasil: integer;
//Mendefinisikan prosedur
procedure HitungPenjumlahan(var a,b :integer);
begin
hasil:=a+b;
writeln('Hasil Penjumlahan ',a,'+',b,'=',hasil);
end;

Begin
write('Masukan bilangan pertama : ');
readln(bil1);
write('Masukan bilangan kedua : ');
readln(bil2);
//Memanggil prosedur
HitungPenjumlahan(bil1,bil2);
end.

Pada program kedua kita membuat prosedur dengan nama HitungPenjumlahan prosedur ini


membawa dua parameter yakni variabel a dan b masing-masing bertipe integer.
Variabel a dan b merupakan variabel lokal, dimana ruang lingkup aksesnya hanya pada prosedur itu
sendiri, tidak dapat di akses oleh prosedur lain ataupun pada program utama.

Prosedur HitungPenjumlahan akan menjumlahkan nilai yang dilewatkan dari parameternya dan di


simpan pada variabel hasil. variabel hasil merupakan variabel global yang dapat di akses oleh seluruh
prosedur yang ada dalam program.
Saat program di jalankan, pengguna akan memasukan bilangan pertama dan kedua yang di tampung
pada variabel bil1 dan bil2 (keduanya merupakan variabel global) yang kemudian nilainya menjadi
pelewatan parameter pada prosedur HitungPenjumlahan.

Hasil Keluaran

Program Procedure_3 ;
uses crt;
var i, N : integer; a, t : real; L : real;
//Mendefinisikan prosedur
procedure HitungLuasSegitiga(alas, tinggi :real; var luas : real);
begin
luas:=(alas*tinggi)/2;
end;

Begin
write('Banyaknya segitiga : ');
readln(N);
for i:=1 to N do

begin
writeln ('HITUNG LUAS SEGITIGA-',i);
write ('Masukan alas : ');
readln(a);
write ('Masukan tinggi : ');
readln(t);

//Memanggil prosedur
HitungLuasSegitiga(a,t,L);
writeln('Luas segitiga = ',L:0:2);
writeln();
end;
end.

Pada contoh prosedur yang ketiga kita membuat program untuk menghitung sejumlah N luas segitiga
dengan menggunakan prosedur HutungLuasSegitiga dengan melewatkan 3 parameter yakni alas,
tinggi dan luas yang masing-masing bertipe real. Prosedur ini akan mengerjakan instruksi untuk
menghitung luas segitiga dengan rumus luas=(alas*tinggi)/2;

Karena program akan menghitung sejumlah N luas segitiga, maka kita perlu melakukannya dengan
menggunakan perulangan for do. Nilai N akan menjadi batas perulangan akan dilakukan.

Pengguna akan memaukan alas dan tinggi segitiga yang di tampung pada variabel a dan t yang
merupakan variabel global, yang selanjutnya nilainya akan di lewatkan pada
prosedur HutungLuasSegitiga.

Pendefinisian Fungsi
Pendefinisian fungsi sama halnya dengan prosedur, yang membedakan pada kata kunci
menggunakan function  sebelum nama fungsi di deklarasikan.
Selain itu fungsi juga memiliki tipe yang mendefinisikan tipe nilai yang diberikan oleh fungsi, tipe
dapat berupa tipe dasar atau bentukan. Nantinya fungsi akan mengembalikan nilai sesuai dengan
tipe fungsi tersebut.
Perlu diketahui setiap variabel/konstanta yang di deklarasikan di dalam fungsi hanya dapat digunakan
dalam fungsi itu sendiri(tidak untuk fungsi lain atau program utama), hal ini kita kenal dengan istilah
variabel lokal.
Berikut ini bentuk umum mendefinisikan fungsi di pascal

Program Nama_Program;
Function nama_fungsi(daftar_parameter): type;
Begin
........
........
End;
Begin
.........
.........
End.

Contoh Program Fungsi di Pascal


Program Fungsi_1;
uses crt;
Function HitungPerkalian(Var a,b : integer):integer;
begin
HitungPerkalian:=a*b;
end;
Var x,y : integer;
Begin
Writeln('Silahkan masukan Angka: ');
write('Nilai X : ');
readln(x);
write('Nilai Y : ');
readln(y);
writeln;
write(x,' x ',y,' = ',HitungPerkalian(x,y));
readln;
end.

Pada program di atas kita membuat program untuk menghitung perkalian dua buah bilangan
menggunakan fungsi HitungPerkalian dengan parameter a dan b bertipe integer. Fungsi ini akan
mengembalikan nilai dengan mengalikan bilangan a dan b. Variabel a dan b merupakan variabel lokal
pada fungsi tersebut.
Pada bagian main program di deklarasikan variabel x dan y dengan tipe integer, nantinya pengguna
akan memasukan nilai x dan y dan nilai tersebut akan dilewatkan pada parameter
fungsi HitungPerkalian.
Program Fungsi_2;
uses crt;
Function genap(var x:integer): boolean;
Begin
genap:=(x mod 2=0);
End;
Var bil: integer;
begin
clrscr;
write('Masukan bilangan : ');
readln(bil);
if genap(bil) then
begin
writeln(bil,' adalah bilangan genap');
end
else
begin writeln(bil,' adalah bilangan ganjil');
end;
readln;
end.

Pada contoh program yang kedua, untuk menentukan apakah suatu bilangan yang dimasukan
merupakan bilangan genap atau ganjil tentunya menggunakan function.
Fungsi di definisikan dengan nama genap yang membawa sebuah parameter x dengan tipe integer.
Fungsi genap bertipe boolean yang mana fungsi ini akan menghasilkan nilai balik true  atau false.
Fungsi genap akan mengerjakan instruksi untuk melakukan operasi modulus 2 terhadap nilai x, jika
menghasilkan nilai 0 maka fungsi tersebut bernilai true (artinya nilai x adalah genap).
Pada main program pengguna akan memasukan bilangan yang di tampung pada variabel bil yang
kemudian di cek kondisi jika fungsi genap bernilai true maka program menampilkan bilangan genap
sedangkan jika false akan menampilkan bilangan ganjil.

Program Fungsi_3;
uses crt;
Function faktor(bilangan :integer) : real;
Begin
If bilangan = 0 then faktor := 1
Else
Faktor := faktor(bilangan-1)*bilangan;
End;
Var n : integer;
begin
clrscr;
write('Berapa Faktorial Dari = ');
readln(n);
writeln(n,' faktorial = ', faktor(n):0:0);
readln;
end.

Pada contoh yang ketiga program tentang faktorial, fungsi yang kita definisikan sebenarnya sudah
mengimplementai algoritma rekursif.
Fungsi yang di definisikan adalah faktor bertipe real dengan sebuah parameter bertipe integer. Fungsi
ini akan mengerjakan instruksi untuk menghitung faktorial suatu bilangan.
Uji Pemahaman :
1. Apa yang dimaksud dengan :
a. Algoritma
b. Flowchart
2. Berikan contoh Algoritma dalam kehidupan sehari-hari yang pernah dialami !
3. Buat contoh Algoritma pemrograman pascal untuk menuliskan dua baris kalimat,
Contoh : Nama Lengkap Alamat Lengkap
4. Buatlah program untuk menampilkan dua baris kalimat tersebut dengan program pascal
 
Langkah-langkah menyelesaikan Uji Pemahaman.
Silahkan dikerjakan :
1. Tulis jawaban no. 1- 3 di buku tulis kalian masing-masing setelah selesai berikan nama di
bawah jawaban lalu foto dan di kirimkan melalui Ms. Teams kelas.
2. Install aplikasi Pascal Dev pada smartphone masing-masing lalu Soal no 4 dikerjakan pada
aplikasi tersebut dengan membuat kode programnya setelah selesai dan berhasil dijalankan
silahkan di screenshoot lalu di kirim bersama foto jawaban no 1 - 3.
3. Terima kasih.

Anda mungkin juga menyukai