Anda di halaman 1dari 26

Algoritma dan Pemrograman

Mudul 11&12

Di Susun Oleh :
I Gde Bagus Ngurah Aditya Darma Giri
Nim:
19101160

STMIK STIKOM INDONESIA ( STIKI )


DENPASAR
2019
Bab I
Pembahasan(Modul 11)
Prosedur merupakan bagian dari program yang berupa serangkaian statement yang memiliki
nama. Sebuah prosedur dapat terdiri atas satu atau lebih dari satu prosedur. Penggunaan prosedur dapat
memberikan beberapa keuntungan, sebagai berikut:
1. Dapat membagi atau memecah program menjadi lebih sederhana.
2. Dapat membantu menghemat penggunaan memori penyimpanan karena dapat dapat
memperkecil ukuran file.
3. Dapat digunakan pada program lain cukup dengan mengopi prosedur yang hendak digunakan.
Oleh karena itu, prosedur pada umumnya digunakan pada program yang kompleks dan memiliki
subprogram. Dalam penggunaannya, sebuah prosedur dapat digunakan dengan memanggil atau
mengetikkan nama prosedur tersebut.

Parameter
Pada prosedur dan fungsi (dibahas pada pertemuan berikutnya) akan melibatkan penggunaan
parameter. Parameter adalah suatu variable yang berfungsi sebagai penampung nilai pada prosedur atau
fungsi, yang diberikan oleh pemanggil prosedur atau fungsi. Parameter yang dikirmkan dari modul utama
ke modul prosedur disebut dengan parameter nyata (actual parameter) dan parameter yang ada dan
dituliskan pada judul prosedur disebut dengan parameter formal (formal parameter).
Proses pengiriman data lewat parameter nyata ke parameter formal disebut dengan parameter
passing. Parameter nyata dan parameter formal harus dengan tipe yang sama.

a. Pass by Value
Parameter yang dikirimkan berupa nilai (value)nya saja. Jadi apabila terjadi pengubahan nilai
pada prosedur ataupun fungsi tidak akan mempengaruhi nilai pada variabel yang
dipassingkan, atau yang dikirimkan.
b. Pass by Reference
Parameter yang dikirimkan berupa acuan. Jadi apabila terjadi pengubahan nilai pada
prosedur ataupun fungsi akan mempengaruhi nilai pada variabel yang dipassingkan, atau
yang dikirimkan.

Terdapat dua jenis prosedur, yaitu prosedur dengan parameter dan prosedur tanpa parameter.
Berikut format penulisan pendeklarasian prosedur yang memiliki parameter:

procedure nama_prosedur (tipe_data parameter1,tipe_data parameter2, ….)


{
tipe_data variabel1;
tipe_data variabel2;
......
......
Prenyataan_1;
Prenyataan_2;
Prenyataan_3;
.......
.......
}

Selain prosedur dengan parameter, terdapat pula prosedur yang tidak memiliki parameter.Berikut
format prosedur tanpa parameter:

procedure nama_prosedur()
{
tipe_data variabel1;
tipe_data variabel2;
......
......
Prenyataan_1;
Prenyataan_2;
Prenyataan_3;
.......
.......
}

KEGIATAN PRAKTIKUM

Buatlah projek baru dengan nama ModProsedur, buat 3 file dalam projek tersebut :

1. header.h

2. function.c

3. main.c

Langkah-langkah membuat projek aplikasi :

1. Membuat projek baru, pilih file > new > project..


2. Setting new project

- Basic > Pilih Consule Application


- Selanjutnya gunakan bahasa C Project
- Terakhir beri nama ModProsedur

3. Menambahkan file baru pada projek

4. Simpan file pertama dengan nama header.h


Salinlah coding program di bawah ini ke dalam file header.h :
#include
#include
void tampil();
5. Simpan file kedua dengan nama function.c

Salinlah coding program di bawah ini ke dalam file function.c :


#include "header.h"
void tampil()
{
printf("Hallo, ini percobaan pertama prosedur..");
}

6. Simpan file ketiga dengan nama main.c

Salinlah coding program di bawah ini ke dalam file main.c :

int main()
{
tampil(); return 0;
}
Setelah pekerjaan tersimpan, lakukan kompilasi projek dengan menekan F9 dan jalankan
program dengan menekan F10. Amatilah hasilnya!
Pembahasan (Modul 12)
Pada dasarnya fungsi atau function maupun prosedur adalah sama. Fungsi maupun prosedur
sama-sama merupakan subprogram. Selain itu, fungsi dan prosedur dapat digunakan atau dipanggil
berkali-kali atau berulang-ulang dalam sebuah program. Namun, fungsi lebih cenderung digunakan
untuk membuat perintah-perintah yang bersifat perhitungan. Selain itu, perbedaan antara fungsi dan
prosedur adalah fungsi memiliki pengembalian nilai, sehingga pada saat dipanggil, sebuah fugnsi dapat
langsung digunakan untuk mengisikan ekspresi yang ada. Dalam bahasa pemrograman C, fungsi
didefinisikan dengan function. Berikut format penulisan untuk mendeklarasikan sebuah function:

return_type nama_fungsi(tipe_data parameter)


{
Pernyataan_1;
Pernyataan_2;
return value;
}
Suatu fungsi secara umum terdiri dari dua buah komponen utama, yaitu defenisi fungsi dan tubuh
fungsi. Defenisi fungsi berisi dengan tipe databalikan dari fungsi, nama dari fungsi dan argumen-
argumennya jika digunakan. Tubuh dari fungsi berisi dafengan pernyataan-pernyataan yang melakukan
tugas yang diberikan kepada fungsi yang bersangkutan, ditulis dalam tanda kurung kurawal buka dan
tutup.
BAB II
PEMBAHASAN
Contoh 1.
#include<stdio.h> (merupakan fungsi dasar sebuah header. Stdio adalah singkatan dari
standar input output yang merupakan header standar yang digunakan dalam Bahasa c.)
#include<stdlib.h> (merupakan file header yang berfungsi untuk operasi pembanding
dan konversi.)

void tampil (); (merupakan sebuah fungsi dengan variable tampil. Void memiliki arti
“kosong” sehingga Fungsi void sendiri tidak mengembalikan nilai keluaran yang didapat dari
proses tersebut.)
//header

#include"header.h" (berfungsi untuk memanggil kembali deklarasi pada header.)

void tampil ()(merupakan sebuah fungsi dengan variable tampil. Void memiliki arti
“kosong” sehingga Fungsi void sendiri tidak mengembalikan nilai keluaran yang didapat dari
proses tersebut.)

{
printf("Hallo, ini percobaan pertama prosedur modul 11");
(perintah yang digunakan untuk mencetak kalimat dalam tanda petik.)
}
//function

#include"header.h" (berfungsi untuk memanggil kembali deklarasi pada header.)

int main ()(adalah fungsi pertama yang akan dijalankan ketika program dimulai/dieksekusi.
Penggunaan “int” sendiri, berarti menyatakan bahwa program tersebut memberikan nilai balik
berupa integer.)
{

tampil ();(merupakan program utama untuk menampilkan program yang


dideklarasikan pada function.)
return 0; (menyatakan bahwa nilai balik program adalah nol, nilai nol biasa
digunakan untuk menyatakan bahwa program berhasil melaksanakan tugas yang
dibebankan.)

}
//main
Output :

Contoh 2.

#include<stdio.h> (merupakan fungsi dasar sebuah header. Stdio adalah singkatan dari
standar input output yang merupakan header standar yang digunakan dalam Bahasa c.)

#include<stdlib.h> (merupakan file header yang berfungsi untuk operasi pembanding


dan konversi.)

void tulispagar (int n); (merupakan sebuah fungsi dengan variable tulis pagar
dengan parameter int n. Void memiliki arti “kosong” sehingga Fungsi void sendiri tidak
mengembalikan nilai keluaran yang didapat dari proses tersebut.)
//header

#include"header.h" (berfungsi untuk memanggil kembali deklarasi pada header.)


void tulispagar (int n) (merupakan sebuah fungsi dengan variable tulis pagar dengan
parameter int n. Void memiliki arti “kosong” sehingga Fungsi void sendiri tidak mengembalikan
nilai keluaran yang didapat dari proses tersebut.)
{

int i; (deklarasi sebuah tipe data integer dengan variable i.)

for(i=0;i<n;i++) (rumus perulangan dimana nilai awal I adalah 0, I kurang dari


nilai n dan I akan terus bertambah satu nilai apabila kondisi benar.)
{

printf("#"); (digunakan untuk mencetak tanda pagar yang ada di dalam


tanda petik.)
}
}
//function

#include"header.h" (berfungsi untuk memanggil kembali deklarasi pada header.)

int main ()(adalah fungsi pertama yang akan dijalankan ketika program
dimulai/dieksekusi. Penggunaan “int” sendiri, berarti menyatakan bahwa program tersebut
memberikan nilai balik berupa integer.)

tulispagar(5); (digunakan untuk mendeklarasikan bahwa program akan mencetak


5 buah tanda pagar.)

return 0; (menyatakan bahwa nilai balik program adalah nol, nilai nol biasa
digunakan untuk menyatakan bahwa program berhasil melaksanakan tugas yang
dibebankan.)
}
//main
Output :

Contoh 3

#include<stdio.h>(merupakan fungsi dasar sebuah header. Stdio adalah singkatan dari


standar input output yang merupakan header standar yang digunakan dalam Bahasa c.)

#include<stdlib.h>(merupakan file header yang berfungsi untuk operasi pembanding dan


konversi.)

void persegi(float sisi); (sebuah bentuk deklarasi prosedur dengan float sisi
sebagai parameternya.)

void persegi_panjang(float panjang, float lebar); (sebuah bentuk


deklarasi prosedur dengan float panjang dan float lebar sebagai parameternya.)

void jajar_genjang(float alas, float tinggi);(sebuah bentuk deklarasi


prosedur dengan float alas dan float tinggi sebagai parameternya.)

void layang_layang(float d1, float d2); (sebuah bentuk deklarasi prosedur


dengan float d1 dan float d2 sebagai parameternya.)
//header

#include"header.h" (berfungsi untuk memanggil kembali deklarasi pada header.)


void persegi(float sisi)(deklarasi prosedur persegi dengan float sisi sebagai
parameternya.)
{
float luas; (deklarasi variable luas dengan tipe data float.)
luas=sisi*sisi; (rumus untuk memperoleh jumlah luas persegi.)
printf("\nLuas persegi : %f",luas); (perintah untuk mencetak hasil
kalkulasi luas berdasarkan rumus yang ditulis sebelumnya.)
}

void persegi_panjang(float panjang, float lebar) (deklarasi prosedur


persegi panjang dengan float panjang dan float lebar sebagai parameternya.)
{

float luas; (deklarasi variable luas dengan tipe data float.)


luas=panjang*lebar; (rumus untuk memperoleh jumlah luas persegi panjang.)
printf("\nLuas persegi panjang : %f",luas); (perintah untuk
mencetak hasil kalkulasi luas berdasarkan rumus yang ditulis sebelumnya.)
}

void jajar_genjang(float alas, float tinggi) (deklarasi prosedur jajar


genjang dengan float alas dan float tinggi sebagai parameternya.)
{

float luas; (deklarasi variable luas dengan tipe data float.)


luas=alas*tinggi; (rumus untuk memperoleh jumlah luas jajar genjang.)
printf("\nLuas jajar genjang : %f",luas); (perintah untuk mencetak
hasil kalkulasi luas berdasarkan rumus yang ditulis sebelumnya.)
}

void layang_layang(float d1, float d2) (deklarasi prosedur laying-layang


dengan float d1 dan float d2 sebagai parameternya.)
{

float luas; (deklarasi variable luas dengan tipe data float.)


luas=0.5*d1*d2; (rumus untuk memperoleh jumlah luas laying-layang.)
printf("\nLuas layang-layang : %f",luas); (perintah untuk mencetak
hasil kalkulasi luas berdasarkan rumus yang ditulis sebelumnya.)
}
//function

#include"header.h" (berfungsi untuk memanggil kembali deklarasi pada header.)


int main ()(adalah fungsi pertama yang akan dijalankan ketika program
dimulai/dieksekusi. Penggunaan “int” sendiri, berarti menyatakan bahwa program tersebut
memberikan nilai balik berupa integer.)
{

int pil; (deklarasi variable pil (pilihan) dengan tipe data integer.)
float sisi,panjang,lebar,alas,tinggi,d1,d2; (deklarasi variable sisi,
panjang, lebar, alas, tinggi, d1, d2 dengan tipe data float.)
printf("======Menu Aplikasi======\n"); (perintah untuk mencetak
kalimat dalam tanda petik.)
printf("1. Menghitung luas persegi.\n");(perintah untuk mencetak
kalimat dalam tanda petik.)
printf("2. Menghitung luas persegi panjang.\n");(perintah untuk
mencetak kalimat dalam tanda petik.)
printf("3. Menghitung luas jajar genjang.\n");(perintah untuk
mencetak kalimat dalam tanda petik.)
printf("4. Menghitung luas layang-layang.\n");(perintah untuk
mencetak kalimat dalam tanda petik.)
printf("\nMasukkan pilihan anda : ");scanf("%d",&pil);
(perintah untuk mencetak kalimat dalam tanda petik dan membaca nilai yang diinputkan pada
program.)
switch(pil)(merupakan sebuah tahap dimana program akan melakukan pengecekan
kondisi dan menentukan bagian program atau statement mana yang akan dijalankan jika kondisi
tertentu terpenuhi.) {

case 1 :(digunakan sebagai pilihan 1, yaitu untuk memilih menu penyelesaian


perhitungan luas persegi.)

printf("Masukkan nilai sisi


:");scanf("%f",&sisi);
persegi(sisi);

break; (digunakan untuk menghentikan atau memberi batas antar


cabang kondisi.)
case 2 : (digunakan sebagai pilihan 1, yaitu untuk memilih menu
penyelesaian perhitungan luas persegi panjang.)
printf("Masukkan nilai
panjan:");scanf("%f",&panjang);
printf("Masukkan nilai lebar
:");scanf("%f",&lebar);
persegi_panjang(panjang,lebar);

break; (digunakan untuk menghentikan atau memberi batas antar


cabang kondisi.)
case 3 : (digunakan sebagai pilihan 1, yaitu untuk memilih menu
penyelesaian perhitungan luas jajar genjang.)
printf("Masukkan nilai alas
:");scanf("%f",&alas);
printf("Masukkan nilai tinggi
:");scanf("%f",&tinggi);
jajar_genjang(alas,tinggi);

break; (digunakan untuk menghentikan atau memberi batas antar


cabang kondisi.)
case 4 : (digunakan sebagai pilihan 1, yaitu untuk memilih menu
penyelesaian perhitungan luas laying-layang.)
printf("Masukkan nilai diagonal 1
:");scanf("%f",&d1);
printf("Masukkan nilai diagonal 2
:");scanf("%f",&d2);
layang_layang(d1,d2);
break; (digunakan untuk menghentikan atau memberi batas antar
cabang kondisi.)
}

return 0; (menyatakan bahwa nilai balik program adalah nol, nilai nol biasa
digunakan untuk menyatakan bahwa program berhasil melaksanakan tugas yang dibebankan.)
}
//main

Output :
Modul 12 Pembahasan
Buatlah projek baru dengan nama ModFunngsi, buat 3 file dalam projek tersebut :

1. header.h

2. function.c

3. main.c

Salinlah coding program di bawah ini ke dalam file header.h :

#include <conio.h>
#include <stdio.h>
float kali(float a,float b);
Salinlah coding program di bawah ini ke dalam file function.c :

#include "header.h"
float kali(float a,float b)
{
return a*b;
}

Salinlah coding program di bawah ini ke dalam file main.c :


#include "header.h"
int main() {
printf("hasil perkalian : %f",kali(10,40));
return 0;
}
Sebuah program dapat memiliki lebih dari satu buah fungsi. Pada program di atas fungsi
dideklarasikan pada file header yang bertujuan agar kompiler dapat mendeteksi semua fungsi-fungsi
yang digunakan dalam program tanpa diikuti oleh pernyataan-pernyataan yang digunakan dalam fungsi.
File function.c berisi defenisi detail (operasi) dari masing masing fungsi dan file main.c berisi dari cara
pemanggilan fungsi.

1. Function dengan input dari user


Buat projek baru dengan nama fungsikali yang berisi 3 file yaitu header.h, function.c, dan
main.c
File header.h
#include <stdio.h>
#include <stdlib.h>
float perkalian(float a,float b);

File function.c
#include "header.h"
float perkalian(float a, float b)
{
return a*b;
}
File main.c
#include "header.h"
/* run this program using the console pauser or add your own
getch, system("pause") or input loop */
int main() {
float a,b;
printf("Masukkan nilai pertama : ");scanf("%f",&a);
printf("Masukkan nilai kedua : ");scanf("%f",&b);
printf("Hasil perkalian : %f",perkalian(a,b));
return 0;
}
Bab III
Tugas
Modul 11
Soal 1.
FUNCTION.C
#include”header.h”

void segitiga (float alas, float tinggi)


{
float luas;
luas=alas*tinggi*0.5;
printf(“\nLuas segitiga adalah : %f”,luas);
}

MAIN.C
#include”header.h”
int main()
{
float alas,tinggi,luas;

printf(“\nMasukkan nilai alas :”);scanf(“%f”,&alas);


printf(“\nMasukkan nilai tinggi :”);scanf(“%f”,&tinggi);
segitiga(alas,tinggi);
}

HEADER.H
#include<stdio.h>
#include<stdlib.h>
void segitiga(float alas, float tinggi);

output :

Soal 2.
Header.h
#include<stdio.h>
#include<stdlib.h>

void ppanjang();

function.c
#include"header.h"

void ppanjang()
{
int panjang,lebar,luas;
luas=panjang*lebar;
}

Main.c
#include"header.h"
int main()
{
int panjang,lebar;

printf("\nMasukkan nilai panjang :");scanf("%d",&panjang);


printf("\nMasukkan nilai lebar :");scanf("%d",&lebar);

int luas;
luas=panjang*lebar;
printf("\nLuas persegi panjang : %d",luas);

return 0;
}

Output :
Soal 3.
FUNCTION.C (GAJI)
#include"header.h"

void gaji (char nama[10], char golongan[3], char status[2])


{
int jmlh_anak;
float gajipokok,tunjangan,tunjangan_rumahtangga,
tunjangan_anak, total_gaji ;

if (strcmp(golongan, "1")==0)
{
gajipokok=2000000;
}
else if (strcmp(golongan, "2")==0)
{
gajipokok=3000000;
}
else if (strcmp(golongan, "3")==0)
{
gajipokok=4000000;
}
else
{
printf("golongan salah!");
}

if (strcmp(status, "1")==0)
{
total_gaji=gajipokok;
tunjangan=0;

}
else if (strcmp(status, "2")==0)
{
printf("masukkan jumlah anak :"); scanf
("%d",&jmlh_anak);
tunjangan_rumahtangga= 0.5*gajipokok;
if (jmlh_anak=0)
{
total_gaji= gajipokok+tunjangan_rumahtangga;
tunjangan=tunjangan_rumahtangga;
}
else
{
tunjangan_anak=jmlh_anak*0.2*gajipokok;
total_gaji=
gajipokok+tunjangan_rumahtangga+tunjangan_anak;
tunjangan=tunjangan_rumahtangga+tunjangan_anak;
}
}
else
{
printf("status salah!");
}
printf("\n-----------------------------------\n");
printf("\nNama : %s",nama);
printf("\ngolongan : %s",golongan);
printf("\nstatus : %s", status);
printf("\nGaji Pokok : %.2f", gajipokok);
printf("\ntunjangan : %.2f", tunjangan);
printf("\ntotal gaji : %.2f",total_gaji);
}

FUNCTION2.C (KAMAR)
#include"header.h"

void kamar (char nama[10], char jenis[4], int lama)


{
int harga, total_harga;

if (strcmp(jenis,"1")==0)
{
harga=650000;
}
if (strcmp(jenis,"2")==0)
{
harga=900000;
}
if (strcmp(jenis,"3")==0)
{
harga=1200000;
}
if (strcmp(jenis,"4")==0)
{
harga=1500000;
}

total_harga=harga*lama;
printf("total harga : %d", total_harga);
}

MAIN.C
#include"header.h"
int main()
{
int pilihan, lama;
char nama[10], golongan[3], status[2], jenis[4];
float total_gaji;

printf("-----MENU-----\n");
printf("1. Menghitung Gaji\n");
printf("2. Booking kamar hotel\n");
printf("3. keluar\n");
printf("Masukkan pilihan anda : "); scanf("%d",&pilihan);

switch (pilihan)
{
case 1:
printf("\n-----Menghitung gaji-----\n");
printf("Nama pegawai :");
scanf("%s",&nama);
printf("Golongan Pegawai (1/2/3) :"); scanf
("%s",&golongan);
printf("status (1. lajang/ 2.menikah) :");
scanf("%s",&status);

gaji(nama, golongan, status);


break;

case 2:
printf("\n-----Booking Kamar Hotel-----\n");
printf("Nama Tamu :"); scanf("%s",&nama);
printf("\n-----JENIS KAMAR-----");
printf("\n 1. Single room \n 2. Double room \n 3.
Deluxe room \n 4. Suite room \n ");
printf("pilih jenis kamar :"); scanf("%s",
jenis);
printf("lama mengiinap :"); scanf("%d",
&lama);

kamar(nama, jenis, lama);


break;

default:
printf("end");
break;

}
return 0;
}
HEADER.H
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>

void gaji (char nama[10], char golongan[3], char status[2]);


void kamar (char nama[10], char jenis[4], int lama);

Anda mungkin juga menyukai