1.
BENTUK-BENTUK
DARI FLOWCHART
a. Flowchart
Adalah
Bagan-bagan yang mempunyai arus yang menggambarkan langkah-langkah penyelesaian
suatu masalah. Flowchart merupakan cara penyajian dari suatu algoritma.
b. Jenis-jenis
flowchart
·
Bagan alir system
Merupakan bagan yang
menunjukkan arus pekerjaan secara keseluruhan dari system.
·
Bagan alir dokumen
Merupakan bagan yang
menunjukkan arus dari laporan dan formulir termasuk tembusan-tembusannya.
·
Bagan alir skematik
Merupakan bagan alir
yang mirip dengan bagan alir sistim yaitu untuk menggambarkan prosedur di dalam
system.
·
Bagan alir program
Merupakan baga yang
menjelaskan secara rinci langkah-langkah dari proses program.
·
Bagan alir process
Merupakan bagan alir
yang banyak digunakan di teknik indusri. Bagan alir ini berguna bagi analisis
sistim untuk menggambarkan proses dalam suatu prosedur.
c. Symbol-simbol
flowchart
Proses
yang dijalankan dengan tidak manual
Pemrosesan secara manual oleh
manusia atau mesin dengan kecepatan pekerjaan manusia
Ekstraksi mengeluarkan satu
atau lebih item dari satu kumpulannya
Merge
penggabungan 2 atau lebih item menjadi satu kumpulan
Cara
meng-input secara manual pada saat memproses, contohnya mengiput keyboard
Mewakili
input data untuk diproses atau output data yang sudah diproses
Proses
yang telah didefinisikan sebelumnya, digambarkan dalam flowchart yang lain
Keputusan yang mana terdapat 2
atau lebih alternative
Dokumen
yang merupakan input atau output
Display
atau tampilan output informasi saat pemrosesan secara online melalui
video,monitor dll
Simbol
konektor (penghubung) bilamana flowchart perlu diputuskan akibat keterbatasan
dari flowchart
Symbol
terminal yang mewakili start-stop
Data input atau output yang
disimpan dalam magnetic tape
Data base yang tersimpan dalam
magnetic disc Storage
Informasi input atau output yang
disimpan disebuah tempat penyimpanan (storage) yang bisa diakses langsung
Data
input atau output yang melalui punch card
Off-line storage, penyimpanan off-line, yang tidak
bisa dicapai oleh komputer
Anotasi
atau komentar atas suatu symbol
Aliran
proses satu arah
Aliran
proses dua arah
2.
Bentuk-bentuk pernyataan dalam bahasa c dan pascal
A. IF dalam pascal
Semua
pembicaraan kita tentang keputusan, kondisi, eksprsi logika ataupun tentang
statemen IF-THEN-ELSE yang lalu,adalah berlaku dengan baik dalam pemograman
pascal. Berikut ini beberapa contoh program pascal yang mengandung keputusan.
CONTOH 1
PROGRAM Lulus _
Tidak;
ONST
Batas = 60.00;
VAR
N1,N2 : Interger ;
Nrata : Real;
BEGIN
Read (N1,N2);
Nrata =
(N1+N2)/2;
IF (Nrata >= Batas )
THEN
WRITELN (‘Lulus’)
ELSE
WRITELN (‘Tidak Lulus’)
END
CONTOH
2
PROGRAM Upah _ Mingguan
CONST
Batas =
40;
Biasa = 3.50;
Khusus = 5.00;
VAR
Jam _ Kerja :
Integer;
Upah :
Real;
BEGIN
Read (jam_Kerja);
IF (Jam_kerja <=
Batas) THEN
Upah :=
Jam_ Kerja * Biasa
ELSE
Upah :=
(Jam _ Kerja – Batas) * Khusus + 200.00;
WRITELN (‘ Besarnya
upah = ‘, Upah )
END
B. IF ELSE
Pernyataan IF … ELSE
Bentuk umum dari IF … ELSE adalah:
If (Kondisi)
{
Statement 1;
Statement 2;
}
else
{
Statement 3;
Statement 4;
Statement dst;
}
{
Statement 1;
Statement 2;
}
else
{
Statement 3;
Statement 4;
Statement dst;
}
Contoh:
#include <stdio.h>
#include <conio.h>
Void main()
{
int x;
printf("1. Nilai Bahasa Inggris\n");
printf("2. Nilai Matematika\n");
scanf("%d",&x);
if (x =1)
{
printf("Nilainya 85");
}
if (x==2)
{
printf("Nilainya 90");
}
else
{
printf("Tidak ada nilainya");
}
return 0;
}
CONTOH:
#include <stdio.h>
#include <conio.h>
Void main()
{
int x;
printf("1. Nilai Bahasa Inggris\n");
printf("2. Nilai Matematika\n");
scanf("%d",&x);
if (x =1)
{
printf("Nilainya 85");
}
if (x==2)
{
printf("Nilainya 90");
}
else
{
printf("Tidak ada nilainya");
}
return 0;
}
·
IF-THEN-ELSE IF-AKHIR JIKADALAM BAHASA C
Para Nested IF-THEN-ELSE-AKHIR JIKA pernyataan bisa menghasilkan sangat nested IF pernyataan yang sulit untuk dibaca. Ada tangan pendek untuk mengatasi masalah ini. Ini adalah IF-THEN-ELSE IF-AKHIR-JIKA versi. Sintaks-nya adalah ditunjukkan di bawah ini:
IF (ekspresi logika-1) MAKA
pernyataan-1
ELSE IF (ekspresi logika-2) MAKA
pernyataan-2
ELSE IF (ekspresi logika-3) MAKA
Pernyataan-3
ATAU JIKA MAKA (.....)
...........
ELSE
pernyataan-ELSE
JIKA AKHIR
Fortran mengevaluasi logis-ekspresi-1 dan jika hasilnya adalah TRUE.., Pernyataan-1 dijalankan diikuti oleh pernyataan setelah END IF. Jika logika-ekspresi-1 adalah SALAH.., Fortran mengevaluasi logis-ekspresi-2 dan mengeksekusi pernyataan-2 dan seterusnya. .. Secara umum, jika logis-ekspresi-n adalah TRUE, pernyataan-n dieksekusi diikuti oleh pernyataan setelah END IF, jika tidak, Fortran terus mengevaluasi ekspresi logis berikutnya.
Jika semua ekspresi logis. FALSE. dan jika ELSE ada, Fortran mengeksekusi pernyataan-ELSE, jika tidak, Fortran mengeksekusi pernyataan setelah END IF.
Perhatikan bahwa pernyataan dalam bagian THEN, ELSE IF bagian, dan bagian ELSE dapat JIKA pernyataan lain.
Contoh
Misalkan kita perlu segmen program untuk membaca dan menampilkan x jumlah tandanya. Lebih tepatnya, jika x adalah positif, + akan ditampilkan, jika x adalah negatif, - ditampilkan, jika tidak, 0 akan ditampilkan. Berikut ini adalah solusi yang mungkin menggunakan IF-THEN-ELSE IF-AKHIR JIKA:
JIKA (x> 0)
KEMUDIAN
MENULIS (*,*) '+'
ELSE IF (x == 0) KEMUDIAN
MENULIS (*,*) '0 '
ELSE
MENULIS (*,*) '-'
JIKA AKHIR
Mengingat kapak, kita ingin menampilkan nilai-x jika x <0, nilai x * x jika x adalah dalam kisaran 0 dan 1 inklusif, dan nilai dari 2 * x jika x lebih besar dari 1.
Berikut ini adalah solusi yang mungkin:
JIKA (x <0) KEMUDIAN
MENULIS (*,*)-x
ELSE IF (x <= 1) THEN
MENULIS (*,*) x * x
ELSE
MENULIS (*,*) 2 * x
JIKA AKHIR
Pertimbangkan segmen kode berikut:
INTEGER:: x
KARAKTER (LEN = 1):: Kelas
JIKA (x <50) KEMUDIAN
Kelas = 'F'
ELSE IF (x <60) KEMUDIAN
Kelas = 'D'
ELSE IF (x <70) KEMUDIAN
Nilai = 'C'
ELSE IF (x <80) KEMUDIAN
Nilai = 'B'
ELSE
Kelas = 'A'
JIKA AKHIR
Pertama, jika x adalah kurang dari 50, 'M' adalah ditugaskan ke Kelas. Jika x lebih besar dari atau sama dengan 50, eksekusi lanjutkan dengan ELSE pertama JIKA di mana x <60 adalah diuji. Jika adalah TRUE.., 'D' yang ditugaskan ke Kelas. Perhatikan bahwa seseorang dapat mencapai uji x <60 hanya karena tes x <50 adalah. SALAH .. Karena itu, ketika mencapai x <60, kami yakin bahwa x> = 50 harus menahan dan sebagai hasilnya, Kelas menerima 'D' jika x lebih besar dari atau sama dengan 50 dan kurang dari 60.
MENULIS (*,*) '+'
ELSE IF (x == 0) KEMUDIAN
MENULIS (*,*) '0 '
ELSE
MENULIS (*,*) '-'
JIKA AKHIR
Mengingat kapak, kita ingin menampilkan nilai-x jika x <0, nilai x * x jika x adalah dalam kisaran 0 dan 1 inklusif, dan nilai dari 2 * x jika x lebih besar dari 1.
Berikut ini adalah solusi yang mungkin:
JIKA (x <0) KEMUDIAN
MENULIS (*,*)-x
ELSE IF (x <= 1) THEN
MENULIS (*,*) x * x
ELSE
MENULIS (*,*) 2 * x
JIKA AKHIR
Pertimbangkan segmen kode berikut:
INTEGER:: x
KARAKTER (LEN = 1):: Kelas
JIKA (x <50) KEMUDIAN
Kelas = 'F'
ELSE IF (x <60) KEMUDIAN
Kelas = 'D'
ELSE IF (x <70) KEMUDIAN
Nilai = 'C'
ELSE IF (x <80) KEMUDIAN
Nilai = 'B'
ELSE
Kelas = 'A'
JIKA AKHIR
Pertama, jika x adalah kurang dari 50, 'M' adalah ditugaskan ke Kelas. Jika x lebih besar dari atau sama dengan 50, eksekusi lanjutkan dengan ELSE pertama JIKA di mana x <60 adalah diuji. Jika adalah TRUE.., 'D' yang ditugaskan ke Kelas. Perhatikan bahwa seseorang dapat mencapai uji x <60 hanya karena tes x <50 adalah. SALAH .. Karena itu, ketika mencapai x <60, kami yakin bahwa x> = 50 harus menahan dan sebagai hasilnya, Kelas menerima 'D' jika x lebih besar dari atau sama dengan 50 dan kurang dari 60.
Dengan cara yang
sama, kita tahu bahwa jika x lebih besar dari atau sama dengan 60 dan kurang
dari 70, Kelas menerima 'C'. Jika x lebih besar dari atau sama dengan 70 dan
kurang dari 80, Kelas menerima 'B'. Akhirnya, jika x lebih besar dari atau sama
dengan 80, Kelas menerima 'A'.
Contoh pertama dan kedua menunjukkan bahwa IF-THEN-ELSE IF-AKHIR JIKA dapat menyimpan beberapa ruang dan pada saat yang sama membuat program lebih mudah dibaca. Bandingkan dua solusi dengan mereka yang menggunakan sarang JIKA.
Perhatikan juga bahwa tidak semua bersarang JIKA dapat dikonversi ke IF-THEN-ELSE IF-ELSE IF-END-bentuk. Misalnya, contoh menentukan terkecil dari tiga nomor tidak dapat dikonversi segera. Secara umum, jika semua tes (yaitu, ekspresi logis) adalah saling eksklusif, maka kesempatan untuk memiliki konversi yang sukses adalah tinggi. Jika tidak, menulis ulang beberapa bagian atau menggabungkan ekspresi logis dapat membantu. Berikut adalah satu lagi contoh:
Mari kita kembali masalah mencari yang terkecil dari tiga angka yang diberikan. Kita tahu bahwa jika adalah yang terkecil, maka harus lebih kecil dibandingkan dengan dua lainnya. Selain itu, kondisi untuk menjadi nomor yang terkecil adalah saling eksklusif. Jadi, kami memiliki konversi yang berhasil sebagai berikut:
JIKA (a <b. DAN sebuah <. C) KEMUDIAN
Hasil = a
ELSE IF (b <a. DAN b <c.) KEMUDIAN
Hasil = b
ELSE
Hasil = c
JIKA AKHIR
Contoh pertama dan kedua menunjukkan bahwa IF-THEN-ELSE IF-AKHIR JIKA dapat menyimpan beberapa ruang dan pada saat yang sama membuat program lebih mudah dibaca. Bandingkan dua solusi dengan mereka yang menggunakan sarang JIKA.
Perhatikan juga bahwa tidak semua bersarang JIKA dapat dikonversi ke IF-THEN-ELSE IF-ELSE IF-END-bentuk. Misalnya, contoh menentukan terkecil dari tiga nomor tidak dapat dikonversi segera. Secara umum, jika semua tes (yaitu, ekspresi logis) adalah saling eksklusif, maka kesempatan untuk memiliki konversi yang sukses adalah tinggi. Jika tidak, menulis ulang beberapa bagian atau menggabungkan ekspresi logis dapat membantu. Berikut adalah satu lagi contoh:
Mari kita kembali masalah mencari yang terkecil dari tiga angka yang diberikan. Kita tahu bahwa jika adalah yang terkecil, maka harus lebih kecil dibandingkan dengan dua lainnya. Selain itu, kondisi untuk menjadi nomor yang terkecil adalah saling eksklusif. Jadi, kami memiliki konversi yang berhasil sebagai berikut:
JIKA (a <b. DAN sebuah <. C) KEMUDIAN
Hasil = a
ELSE IF (b <a. DAN b <c.) KEMUDIAN
Hasil = b
ELSE
Hasil = c
JIKA AKHIR
C. NASTE IF (pascal)
Statemen if yang terkandung di dalam
statemen if yang lain,yang lebih atas, disebut dengan statemen if tersarang
(naste if). Hal ini mungkin terjadi jika statemen yang seharusnya di jalankan
setelah pemeriksaan kondisi atau ekspresi Boolean, tidak dapat langsung di
jalankan karena harus memeriksa kondisi.
Contoh:
Program pajakpenghasilan
{menghitung pajak
penghasilan berdasarkan masukan
Penghasilan sesuai
dengan ketentuan yang berlaku}
Const
Pphrendah = 0.15 ;
Pphtinggi
= 0.20 ;
Hasilmin
= 300000 ; {penghasilan minimum terkena pph}
Hasilmaks
= 10000000 ; {penghasilan maksimum terkena pph 15%}
Var
Penghasilan
: integer ;
Pph : real ;
Begin
{membaca besar
penghasilan}
Write ( ` Besar
penghasilan : `) ;
Readin
(penghasilan ) ;
{menghitung
besar pph berdasarkan besar penghasilan)
If penghasilan
> hasilmin then
{penghasilan
terkena pph}
Begin
If
penghasilan <= hasilmaks then
{penghasilan
terkena pph rendah ]
Pph
:= penghasilan *
pphrendah
Else
{ hasil > hasilmaks, terkena pph tinggi}
Pph : = penghasilan * pphtinggi ;
{menanpilkan besar pph }
Writein ( `pph
sebesar rp `,pph : 4 : 2
End
Else{penghasilan
<= hasilmin }
Written (` Tidak
di kenai pph ` ) ;
End .
Contoh 2:
·
IF
DALAM BAHASA C
ini akan di bahas
berikut
Bentuk
if tunggal tunggal sederha
Sintak dari bentuk if tunggal sederhana
adalah sebagai berikut ini.
If (kondisi) statemen;
Bentuk ini menunjukkan
jika if kondisi yang di seleksi adalah benar (bernilai logika satu), maka
statemen yang mengikutinya akan di proses. Sebaliknya jika kondisi yang di
seleksi adalah tidak benar (bernilai logika nol).,maka statemen yang akan di
proses.
Contoh:
Besarnya tunjangan yang
akan di terima oleh seorang pegawai tergantung dari jumlah anaknya. Jika
seorang pegawai mempunyai anak kurang dari 3, maka tunjangan adalah sebesar 20%
dari gaji kotornya, jika jumlah anaknya lebih besar atau sama dengan 3, maka
besar tunjangan adalah 30% dari gaji kotornya. Program berikut ini akan
menghitung besarnya jumlah tunjangan yang di terima oleh seorang pegawai.
#include
<stdio.h>
main()
{
int jumlahAnak;
float GajiKotor,Tunjangan,Persen Tunjangan=0.2
printf("Gaji kotor ? ");
scanf("%f",&GajiKotor);
printf("Jumlah anak ? ");
scanf("%d",&JumlahAnak);
if("JumlahAnak>2) PersenTunjangan =
0.3;
Tunjangan = PersenTunjangan * GajiKotor;
}
Contoh 2:
Pada contoh sebelumnya,
selain seorang pegawai mendapat tunjangan tergantung dari jumlah anaknya, gaji
pegawai bersangkutan juga akan di potong untuk keprluan asuransi.besatnya
potongan adalah sebesar 5% dari gaji kotor untuk jumlah anak sama atau kurang
dari 2 dan sebesar 7% untuk jumlah anak lebih dari dua.
Penggunaan IF-ELSE pada Bahasa C
Dalam hal ini kita akan mengambil suatu kasus tentang menentukan apakah suatu bilangan yang dimasukkan oleh user itu termasuk bilangan genap atau kah bilangan ganjil.
Untuk menyelesaikan masalah ini kita bisa menggunakan statemen IF dan ELSE.
Instruksi if dalam Bahasa C digunakan untuk
memilih jalur proses: melakukan atau tidak melakukan sesuatu proses (if),
atau memlih satu dari dua proses (if else).
if (expression) statement;
Expression dievaluasi. Jika hasilnya benar (true) maka
statement akan dikerjakan. Jika hasilnya salah (false) maka statement
tidak akan dikerjakan. Statement disini dapat berupa satu instruksi tunggal
atau sejumlah instruksi (compound statement) yang dalam bahasa C
ditandai dengan {dan}.
CONTOH:
#include<stdio.h>
int main()
{
int bilangan;
printf("Masukkan sebuah bilangan : ");
scanf("%d", &bilangan);
if ( bilangan % 2 == 0)
printf("%d adalah bilangan genap", bilangan);
else
printf("%d adalah bilangan ganjil", bilangan);
return 0;
}
int main()
{
int bilangan;
printf("Masukkan sebuah bilangan : ");
scanf("%d", &bilangan);
if ( bilangan % 2 == 0)
printf("%d adalah bilangan genap", bilangan);
else
printf("%d adalah bilangan ganjil", bilangan);
return 0;
}
Dengan flowchart, instruksi if
dapat digambarkan sebagai berikut:
Contoh program sederhana menggunakan if:
#include<stdio.h>
int main(void){
int nilai;
char grade;
printf("Nilai Akhir?"); scanf("%d", &nilai);
fflush(stdin);
if(nilai > 84) grade = 'A';
if(nilai > 74 && nilai < 85) grade = 'B';
if(nilai > 64 && nilai < 75) grade = 'C';
if(nilai > 49 && nilai < 65) grade = 'D';
if(nilai < 50) grade = 'E';
printf("Grade = %c", grade);
getchar();
return 0;
}
int main(void){
int nilai;
char grade;
printf("Nilai Akhir?"); scanf("%d", &nilai);
fflush(stdin);
if(nilai > 84) grade = 'A';
if(nilai > 74 && nilai < 85) grade = 'B';
if(nilai > 64 && nilai < 75) grade = 'C';
if(nilai > 49 && nilai < 65) grade = 'D';
if(nilai < 50) grade = 'E';
printf("Grade = %c", grade);
getchar();
return 0;
}
Output/hasil keluaran dari program diatas adalah seperti gambar
dibawah ini.
Untuk if
else, alur kerjanya hampir sama dengan if. Hanya saja, ditambah opsi
lain jika statement
if
(expression) statement1;else statement2;
Expression dievaluasi. Jika hasilnya
benar (true), maka statement1 akan dikerjakan, jika salah (false) maka
statement2 akan dikerjakan. Statement1 dan statement2 dapat berupa instruksi
tunggal atau beberapa instruksi yang dilingkup {dan}. Expression dapat berupa
ekspresi tunggal atau lebih.
Dengan flowchart, instruksi if else dapat digambarkan seperti gambar dibawah ini.
Dengan flowchart, instruksi if else dapat digambarkan seperti gambar dibawah ini.
Contoh program sederhana menggunakan if else:
#include<stdio.h>
int main(){
int sks;
float ipk;
printf("SKS Kumulatif? "); scanf("%d",&sks);
fflush(stdin);
printf("IP Kumulatif? "); scanf("%f",&ipk);
fflush(stdin);
if((sks >= 20) && (ipk >= 2.00))
printf("Ente calon sarjana");
else
printf("Aduh, ente lagi kurang beruntung nih");
getchar();
return 0;
}
int main(){
int sks;
float ipk;
printf("SKS Kumulatif? "); scanf("%d",&sks);
fflush(stdin);
printf("IP Kumulatif? "); scanf("%f",&ipk);
fflush(stdin);
if((sks >= 20) && (ipk >= 2.00))
printf("Ente calon sarjana");
else
printf("Aduh, ente lagi kurang beruntung nih");
getchar();
return 0;
}
Hasil ouput dari program diatas
lebih kurang akan seperti gambar dibawah ini.
Statement yanng dikerjakan true
atau false, dapat juga berupa instruksi if lainnya. Susunan
seperti contoh dibawah ini akan membentuk nested if.
#include<stdio.h>
int main(){
int bil;
printf("Bilangan? ");scanf("%d", &bil);
fflush(stdin);
if(bil == 0) printf("%d adalah bilangan nol", bil);
else{
if(bil % 2 == 0) printf("%d adalah bilangan genap", bil);
else printf("%d adalah bilangan ganjil", bil);
if(bil > 0) printf(" dan bilangan positif");
else printf(" dan bilangan negatif");
}
getchar();
return 0;
}
int main(){
int bil;
printf("Bilangan? ");scanf("%d", &bil);
fflush(stdin);
if(bil == 0) printf("%d adalah bilangan nol", bil);
else{
if(bil % 2 == 0) printf("%d adalah bilangan genap", bil);
else printf("%d adalah bilangan ganjil", bil);
if(bil > 0) printf(" dan bilangan positif");
else printf(" dan bilangan negatif");
}
getchar();
return 0;
}
Hasil ouput dari program diatas lebih
kurang akan seperti gambar dibawah ini.
If, elseif dan else Dalam bahasa c
Digunakan untuk melakukan aksi berbeda untuk kondisi yang berbeda. If dan else digunakan jika anda ingin membuat kode yang akan dijalankan jika kondisi adalah benar dan kode lain jika kondisi adalah salah. Sedangkan elseif digunakan jika kemungkinan kondisi benar lebih dari satu. Perhatikan contoh berikut;<!--Contoh if else-->
<?php
$jam=strftime("%H");
if($jam < 8) echo "Selamat pagi";
else echo "Anda telat";
?>Jika kode yang harus dijalankan lebih dari satu baris maka harus menggunakan kurung kurawal.
<!--Contoh if else-->
<?php
$jam=strftime("%H");
if($jam < 8){
echo 'Selamat pagi <br />';
echo 'Silahkan masuk';
echo ' Selamat bekerja';
}
?>Sedangkan jika kemungkinannya lebih dari satu maka digunakan elseif seperti contoh berikut ini;
<!--Contoh if elseif else-->
<?php
$jam=strftime("%H");
if($jam <= 9) echo 'Selamat pagi';
elseif($jam > 9 && $jam <= 14) echo 'Selamat siang';
elseif($jam > 14 && $jam <= 18) echo 'Selamat sore';
else echo 'Selamat malam';
?>
·
IF NASTED DALAM BAHASA C
Seperti
yang kita ketahui setiap bahasa program mempunyai struktur percabangan, salah
satunya adalah nested IF. Begitu juga dalam C++, terdapat struktur percabangan
nested IF atau yang lebih kita kenal dengan nama IF bersarang.
Contoh programnya dapat
kalian lihat dibawah ini:
#include
#include
void main()
{
int nilai; char mark;
clrscr();
cout<<"Masukkan
nilai ujian [0 - 100]: ";
cin>>nilai;
cout<<"\n";
if(nilai >=90
&& nilai <=100) mark = 'A';
else if(nilai >=80 && nilai
<=89) mark = 'B';
else if(nilai >=65
&& nilai <=79) mark = 'C';
else
if(nilai >=50 && nilai <=64) mark = 'D';
else
mark = 'E';
cout<<"Nilai
ujian = "<
Pernyataan
switch - case
PenjelasanBentuk dariini
memilikikegunaan sama seperti if – else bertingkat, tetapi penggunaannya
untukmemeriksa data yang bertipe karakter atau integer. Bentuk
penulisanperintah ini sebagai berikut :
switch (ekspresi integer
ataukarakter ){case konstanta-1 :… perintah;… perintah;break;case konstanta-2
:… perintah;… perintah;break;…………default :… perintah;… perintah;}
Setiap cabang akan dijalankan jika
syarat nilai konstanta tersebut dipenuhidan default akan dijalankan jika semua
cabang diatasnya tidak terpenuhi.Pernyataan
break
switch
- case
merupakan pernyataan yang
dirancangankhusus untuk menangani pengambilan keputusan yang melibatkansejumlah
atau banyak alternatif. Pernyataan
switch
- case
menunjukan bahwa perintah siap
keluar dari
switch
. Jikapernyataan ini tidak ada, maka
program akan diteruskan kecabang – cabang yang lainnya.
Contoh-5
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
Pemrogramman C
Operasi Penyeleksian Kondisi
main()
{
char kode;
clrscr();
cout<<"Masukkan Kode Barang
[A..C] : ";
cin>>kode;
switch(kode)
{
case 'A' :cout<<"Alat
Olah Raga";
break;case 'B' :
cout<<"Alat
Elelktronik";
break;case 'C'
:cout<<"Alat Masak";
break;default:cout<<"Anda
Salah Memasukan kode";
break;
}
getch();
}
Output yang akan dihasilkan, dari
program contoh-5 diatas adalah :Gambar 4.5 Hasil Contoh-5
Contoh-6
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main()
{
char kode;
clrscr();
cout<<"Masukkan Kode
Barang [A..C] : ";
cin>>kode;
Frieyadie, S.Kom67
Operasi Penyeleksian Kondisi
switch(kode)
{
case 'A' :
case 'a' :
cout<<"Alat
Olah Raga";
break;case
'B' :
case 'b' :
cout<<"Alat
Elelktronik";
break;
case 'C' :
case 'c' :
cout<<"Alat
Masak";
break;
default:
cout<<"Anda
Salah Memasukan kode";
break;
} getch
();
}
Output yang akan dihasilkan, dari
program contoh-6 diatas adalah :Gambar 4.6
B.
perulangan dalam bahasa c
Bentuk perulangan yang dapat di
buat:
Ø For
Ø While..
Ø Do while…
Variasi perulangan
Ø Perulangan sederhana
Ø Perulangan nested
Kondisi perulangan
Ø Go to
Ø Break
Ø
For….(loop)
Struktur perulangan for bisa di
gunakan untuk mengulang suatu proses yang sudah di ketahui jumlah
perulangannya.
Ekspresi umum perulangan for:
This expression executes this expression is executed
Once, when the loop stars
at the end of every loop cycle
++count
|
Count <= 10
|
Count = 1
|
This
expression is evaluated at the begining
Of each
loop cycle. If it is true, the loop
Continues,and if it is false,the loop ends
expresi umum :
fo
( awal ; kondisi ; counter )
{
Statement1
;
Statement2
;
}
Statement3;
CONTOH :
int
i;
For
(i= 1 ; I <= 10 ; ++i)
Printf
(“\niterasi ke = %d” , i);
Ø While …
(loop)
Perulangan while banyak di gunakan
pada program yang terstruktur. Perulanagan ini banyak di gunakan bila jumlah
perulangan belum di ketahui.
Ekspresi umum while... :
While
( expression )
{
Statement1;
Stetement2;
}
Statement3;
CONTOH:
Int
I;
While
(i<=10)
{
Printf(“\n\titerasi ke = %d” , i);
I++
}
Ø Do While …
(loop)
Perbedaanya dengan while, do … while
memiliki pengecekkan kondisi yang terletak setelah statement perulangan.
Expresi umum while …:
Do
{
Statement1;
Statement2;
}
While
( expression )
Statement3;
CONTOH:
Int
I;
Do
For (int 1 = 0 ; i<10 ; ++i)
For
(int j = 0 ; j<20 ; ++k) /* loop
executed 10 times */
For
(int k = 0 ; k<30 ; ++k) /*loop
exeuted 10x20 times */
{ /*loop
body executed 10x20x30 times */
/*
do something useful */
}
{
Printf(“\n\titerasi ke = %d” , I ) ;
I++;
While
(I <= 10)
Ø Perulangan
bersarang (nested)
CONTOH:
Ø Break
& goto
Break & goto di tempatkan di
dalam statement perulangan. Ketika kursor kompilasi menjalankan statement
break, maka kursor kompilasi akan
melompat keluar dari scope perulangan terkait.
Semua bentuk perulangan ( do … while
, while, dan for) dapat menggunakan break.
For (;;)
{
If
(iter < 10 )
{
Printf
(“iterasi ke-“ , iter ) ;
Iter++;
}
Else
break;
}
B.
PERULANGAN
Perulangan
digunakan untuk menjalankan satu atau beberapa pernyataan sebanyak beberapa
kali. Proses adalah suatu rutan-urutan pernyataan yang akan di ekskusi terus
menerus selama kondisi yang diharapkan terpenuhi. Pengulangan proses merupakan
suatu kemampuan yang dimiliki oleh semua compiler bahasa pemograman. Terdapat
banyak jenis pengulangan proses, Tetapi paling tidak aka dibahas dua buah
bentuk jenis pengulangan :
1.
For.
Pengulangan dengan besarnya nilai integer sebagai kondisi (biasanya berbentuk
for)
2.
While.
Pengulangan
dengan kondisi pernyataan Boolean (biasanya berbentuk while)
Gambaran flowchart dalam bentuk perulangan adalah
sebagai berikut :
Kondisi = nilai awal
|
Kondisi = nilai akhir
|
Pernyataan……..;
pernyataan……..; |
Koondisi diincrement
|
Pernyataan
FOR
Pernyataan for biasanya
digunakan untuk pernyataan yang sudah ditentukan jumlah pengulangannya.
Pernyataan FOR dengan
kondisi numerik yang menaik (increment). Pada looping yang berbentuk seperti
ini terdapat pernyataan increment atau penambahan yang berbentuk sebagai
berikut : kondisi= kondisi+n, dimana n adalah bernilai positif, sebagai contoh
sebagai berikut : j=j+1, j++;
Ø Pernyataan
FOR dalam bahasa C adalah sebagai
berikut :
FOR
(inisialisasi
nilai_awal; kondisiPembatas_perulangan;
increment/decrement)
{
instruksi-instruksi;
}
Ø Contoh
dari pernyataan for dalam bahasa C diperlihatkan pada program 7.1 :
Listing
Program dalam bentuk for
#include
<stdio.h>
void
main(void)
{
for(int j = 1; j <= 4; j= j+1)
{
printf("%d\n",j);
}
|
1
2
3
4
|
Perhatikanlah didalam pengulangan
dengan for, pernyataan yang berada didalam loop
akan dieksekusi sampai kondisi loop tersebut tidak
terpenuhi.
Catatan:
· Nilai untuk
perulangan dalam for tidak dibenarkan bertipe float.
Di akhir penulisan statemen for
tidak menggunakan tanda titik koma (;)
contoh: for (int j = 1 ; j < =
4 ; j = j+1); _ tidak dibenarkan
Penggunaan tanda titik koma
setelah statemen for tidak menimbulkan pesan kesalahan
tetapi akan menghasilkan keluaran
yang tidak sesuai karena statemen for tersebut tidak
dianggap pernyataan perulangan,
hanya akan dinyatakan sebagai pernyataan biasa
|
Listing program dengan titik koma
#include
<stdio.h>
void main(void)
{
for(int
j = 1; j <= 4; j= j+1);
{
printf("%d\n",j);
}
}
|
5
|
Hasil
yang didapat adalah 5, karena hanya nilai j akhir yaitu
5
yang tercetak, sedang saat j
bernilai
1 hingga 4 tidak
tercetak.
|
Menggunakan tanda titik
koma
|
Pernyataan for dapat dituliskan di dalam
pernyataan for lagi. Hal semacam ini
sering disebut dengan pernyataan for bersarang (nested for).
Bentuk umum pernyataan nested
for dalam
bahasa C adalah sebagai berikut:
for (inisialisasi_1; kondisi_1; increment/decrement_1)
{
for (inisialisasi_2;
kondisi_2; increment/
decrement_2)
{
instruksi-instruksi;
}
instruksi-instruksi;
}
|
Listing Program
Contoh for-bersarang
void main(void)
{
int
x,y;
for(x=1;
x<=3;x++)
{
for(y=1; y<=2; y++)
{ printf("%d
%d ",x, y); /* perintah ini dilakukan selama kondisiny masih terpenuhi */
printf("\n");
}
}
}
|
Hasil
output dari program
1
1
1
2
2
1
2
2
3
1
3 2
|
Kalang/looping
for yang luar (dengan pencacah variable x) akan menjalankan
kalang yang
dalam (dengan pencacah y) sebanyak 3 kali. Dan pada setiap pengulangan
di
layar akan
dituliskan nilai x dan y.
Pada saat x bernilai
1, y diulang sebanyak 2 kali. Jadi pada layar akan tertulis 1 1
dan 1 2.
demikian juga pada saat x bernilai 2, y diulang sebanyak 2 kali.
Jadi pada layar
akan tertulis 2 1 dan 2
2. hal yang sama terjadi pada saat x bernilai 3.
Pernyataan while
Pernyataan pengulangan ini biasanya digunakan bila
belum diketahui pasti berapa banyak akan dilakukan pengulang
pernyataan-pernyataan. Berakhir pengulangan ini ditentukan oleh suatu kondisi.
Bila kondisi sudah tidak terpenuhi maka pengulangan akan berakhir. Dengan kata
lain, selama kondisi masih terpenuhi, pengulangan akan terus dilakukan.
Ø Bentuk umum
pernyataan while dalam bahasa C adalah sebagai berikut:
while(kondisi)
{
instruksi;
}
Kondisi sendiri merupakan suatu ekspresi
Boolean, artinya hanya dapat bernilai benar (true) atau salah (false).
Ø Contoh
dari pernyataan while dalam bahasa C
#include
<stdio.h>
void main(void)
{
int j;
j = 1;
while
(j < 10) /* Perulangan akan dilakukan selama kondisi
terpenuhi */
{
printf("%d
",j);
j = j
+ 1; /* Menaikkan nilai j agar perulangan dapat
berakhir */
}
|
Hasil output program
1 2 3 4 5 6 7 8 9
|
Jika dilihat hasil yang
di dapat dari program tersebut dapat dilihat program menampilkan nilai j dar j bernilai awal 1 hingga saat j
bernilai 9. Jika dilihat kondisi
yang membatasi adalah (j < 10 ) sehingga
saat j sudah bernilai 10, perulangan
selesai dan program keluar dari blok while.
Penyataan
do-while
Pernyataan pengulangan do-while hamper sama
dengan pernyataan pengulangan while, dan biasanya digunakan bila jumlah
pengulangan belum dapat ditentukan pada saat program ditulis.
Struktur do-while digunakan untuk
melaksanakan (do) statement atau blok
statemen selama (while) kondisi yang
diseleksi pada while tidak terpenuhi. Sintaks dari struktur ini adalah :
Ø Bentuk umum
pernyataan do-while dalam bahasa C adalah sebagai berikut:
Do {
instruksi;
}
while(kondisi);
Catatan:
·Perbedaan pernyataan do-while
dan while terletak pada
pengecekan kondisi. Jika pada pernyataan while, kondisi dicek pada awa
blok, pada pernyataan do-while,
kondisi dicek pada akhir
blok.
. Struktur do-while
paling tidak akan mengerjakan satu kali instruksi meskipun kondisi tidak
terpenuhi karena pengecekan kondisi dilakukan di akhir blok.
|
Ø Contoh
dari
pernyataan do-while dalam bahasa C
Listing Program contoh do-while
#include
<stdio.h>
void main(void)
{
int
j;
j =
1;
do
{ // akan dikerjakan statemen-statemen di
bawah ini
printf("%d
",j);
j =
j + 1;
}
while(j < 10);
/* Pengecekan kondisi, jika masih terpenuhi maka perulangan
akan dilanjutkan,
jika tidak keluar dari blok perulangan */
}
|
Hasil output program
1 2 3 4 5 6 7 8 9
|
Hasil listing program do-whie 2
#include
<stdio.h>
void
main(void)
{
int j;
j = 1;
do {
printf("%d ",j);
} while(j
> 10);
}
|
1
|
Jika dilihat hasil yang
didapat dari program tersebut dapat dilihat program hanya menampilakan nilai j awal yaitu 1. Jika dilihat kondisi
yang membatasi adalah (j > 10) sehingga
saat dilakukan pengecekan ternyata nilai j
tidak memenuhi kondisi, perulangan selesai dan program keluar dari blok while, tetapi meskipun kondisi tidak
terpenuhi pencetakan nilai j telah
dikerjakan.
Jadi kita dapat menggunakan statement do-while jika kita menginginkan proses
perulangan dilakukan minimal satu kali.
FUNGSI
DAN PROSEDUR
F U N G S I
1. Pengertian
Fungsi
Fungsi merupakan suatu bagian dari
program yang dimasukkan untuk mengerjakan suatu tugas tertentu dan letaknya
terpisah dari program yang memanggilnya. Fungsi merupakan elemen utama dalam
bahasa C karena bahasa C sediri terbentuk dari kumpulan funsi-fungsi. Dalam
setiap program bahasa C, minimal terdapat satu fungsi main (). Fungsi banyak
diterapkan dalam program-program C yang terstruktur. Keuntungan pengguna fungsi
dalam program yaitu program akan memiliki struktur yang jelas (mempunyai
readability yang tinggi) dan juga akan menghindari penulisan bagian program
yang sama. Dalam bahasa C fungsi dapat dibagi menjadi 2, yaitu fungssi pustaka
atau fumgsi yang telah tersedia dalam C++
dan fungsi yang didefinisikan atau dibuat oleh programmer.
Beberapa Fungsi
yang telah tersedia di dalam bahasa C++, antara lain:
Fungsi Operasi
String (tersimpan dalam header file “string.h”)
.
1. strcpy()
Berfungsi untuk
menyalin suatu string asal ke variable string tujuan.
Bentuk umum :
strcpy(var_tujuan, string_asal);
2. strlen()
berfungsi untuk
memperoleh jumlah karakter dari suatu string.
Bentuk umum :
strlen(string);
3. strcat()
Digunakan untuk menambahkan
string sumber ke bagian akhir dari string
tujuan.
Bentuk umum :
strcat(tujuan, sumber);
4. strupr()
Digunakan untuk
mengubah setiap huruf dari suatu string menjadi huruf
capital.
Bentuk umum :
strupr(string);
5. strlwr()
Digunakan untuk mengubah setiap huruf
dari suatu string menjadi huruf
kecil
semua.
Bentuk
umum : strlwr(string);
6. strcmp()
Digunakan untuk
membandingkan dua buah string.
Hasil dari
fungsi ini bertipe integer dengan nilai :
(a) Negative,
jika string pertama kurang dari string kedua.
(b) Nol, jika
string pertama sama dengan string kedua
(c) Positif,
jika string pertama lebih besar dari string kedua.
Bentuk umum :
strcmp(string1, string2);
Fungsi Operasi
Karakter (tersimpan dalam header “ctype.h”)
. islower()
Fungsi akan
menghasilkan nilai benar (bukan nol) jika karakter
merupakan huruf
kecil.
Bentuk
umum : islower(char);
. isupper()
Fungsi akan menghasilkan nilai benar
(bukan nol) jika karakter
merupakan
huruf kapital.
Bentuk
umum : isupper(char);
.
isdigit()
Fungsi akan menghasilkan nilai benar
(bukan nol) jika karakter
merupakan
sebuah digit.
Bentuk
umum : isdigit(char);
.
tolower()
Fungsi akan mengubah huruf capital
menjadi huruf kecil.
Bentuk
umum : tolower(char);
.
toupper()
Fungsi akan mengubah huruf kecil menjadi
huruf kapital.
Bentuk
umum : toupper(char);
Fungsi
Operasi Matematik (tersimpan dalam header “math.h” dan “stdlib.h”)
.
sqrt()
Digunakan untuk menghitung akar dari
sebuah bilangan.
Bentuk
umum : sqrt(bilangan);
.
pow()
Digunakan untuk
menghitung pemangkatan suatu bilangan.
Bentuk
umum : pow(bilangan, pangkat);
.
sin(),
cos(), tan()
Masing-masing digunakan untuk menghitung
nilai sinus, cosinus dan
tangens
dari suatu sudut.
Bentuk
umum :
sin(sudut);
cos(sudut);
tan(sudut);
.
atof()
Digunakan untuk mengkonversi nilai
string menjadi bilangan bertipe
double.
Bentuk
umum : atof(char x);
.
atoi()
Digunakan untuk mengkonversi nilai
string menjadi bilangan bertipe
integer.
Bentuk umum :
atoi(char x);
.
div()
Digunakan untuk
menghitung hasil pembagian dan sisa pembagian.
Bentuk umum : div_t
div(int x, int y)
Strukturnya :
typedef struct
{ int qout; //
hasil pembagian
int rem // sisa
pembagian
} div_t;
.
max()
Digunakan untuk
menentukan nilai maksimal dari dua buah bilangan.
Bentuk umum
:max(bilangan1, bilangan2);
.
min()
Digunakan untuk menentukan bilangan
terkecil dari dua buah bilangan.
Bentuk
umum :min(bilangan1, bilangan2);
Membuat Fungsi
Sendiri
Deklarasi Fungsi
Sebelum
digunakan (dipanggil), suatu fungsi harus dideklarasikan da didefinisikan
terlebih dauhu. Bentuk umum pendeklarasian fungsi adalah :
tipe_fungsi
nama_fungsi(parameter_fungsi);
Sedangkan
bentuk umum pendefinisian fungsi adalah :
Tipe_fungsi
nama_fungsi(parameter_fungsi)
{
statement
statement
………...
………...
}
Hal-hal
yang perlu diperhatikan dalam penggunaan fungsi :
1. Kalau tipe fungsi tidak disebutkan, maka akan dianggap sebagai fungsi
dengan nilai keluaran bertipe integer.
2. Untuk fungsi yang memiliki keuaran yang bertipe bukan integer, maka diperlukan
pendefenisian penentu tipe fungsi.
3.
Untuk fungsi yang tidak mempunyai nilai keluaran
maka masukkan kedalam tipe void
4.
Pernyataa yang diberikan untuk memberikan nilai
akhir fungsi berupa pernyataan return.
5.
Suatu
fungsi dapat menghasilkan nilai balik bagi fungsi pemanggilannya.
Parameter
Formal dan Parameter Aktual
1. Parameter Formal
adalah variabel yang ada pada daftar parameter dalam
definisi fungsi
2. Parameter Aktual
adalah variabel (parameter) yang dipakai dalam
pemanggilan fungsi
Cara
Melewatkan Parameter
Cara
melewatkan suatu parameter dalam Bahasa C ada dua cara yaitu :
1.
Pemanggilan
Secara Nilai (Call by Value)
·
Call
by value akan menyalin nilai dari parameter actual ke parameter formal.
·
Yang
dikirimka ke fungsi adalah nilai dari datanya, bukan alamat memori letak dari
datanya
·
Fungsi
yang menerima kiriman nilai akan menyimpannya di alamat terpisah dari nilai
aslinya yang digunakan oleh bagian program yang memanggil fungsi.
·
Perubahan
nilai di fungsi (parameter formal) tidak akan merubah nilai asli di bagian
program yang memanggilnya.
·
Pengirim
parameter secara nilai adalah pengiriman searah, yaitu dari bagian program yang
memanggil fungsi ke fungsi yang dipanggil
·
Pengiriman
suatu nilai dapat dilakukan untuk suatu ungkapan, tidak hanya untuk sebuah
variabel, elemen array atau konstata saja.
2. secara
Referensi (call by Reference)
·
pemanggilan secara Referensi merupakan
upaya untuk melewatkan alamat dari suatu variabel kedalam fungsi
·
yang dikirimkan kefungsi adalah alamat
letak dari nilai datanya, bukan nilai datanya
·
fungsi yang menerima kiriman alamat ini
makan menggunakan alamat yang sama untuk mendapatkan nilai datanya.
·
Perubahan nilai di fungsi akan merubah
nilai asli di bagian program yang memanggil fungsi.
·
Pengiriman parameter secara referensi
adalah pengiriman dua arah, yaitu fungsi pmanggil ke fungsi yang dipanggil dan
juga sebaliknya.
·
Pengiriman secara acuan tidak dapat
dilakukan untuk suatu ungkapan.
Penggologan
Variabel berdasarkan Kelas Penyimpanan (Storage Class)
1.
Variabel local`
Variabel lokal adalah variabel yang
dideklarasikan di dalam fungsi.
Sifat-sifat
variabel lokal :
·
Secara
otomatis akan diciptakan ketika fungsi dipanggil dan akan lenyap ketika proses
ekskusi terhapad fungsi berakhir
·
Hanya
dikenal oleh fungsi tempat variabel di deklarasikan
·
Tidak
ada inisialisasi secara otomatis (saat variabel diciptaakan nilainya random)
·
Dideklarasikan
dengan menambahkan kata “auto”
(opsional).
2. Variabel global (eksternal)
Variabel
global (eksternal) adalah variabel yang dideklarasikan diluar fungsi
Sifat-sifat
variabel global :
Dikenal (dapat
diakses) oleh semua fungsi.
Jika tidak
diberi nilai awal secara otomatis berisi nilai nol.
Dideklarasikan
dengan menambahkan kata “extern” (opsional).
3. Variabel
Statis
Variabel
statis adalah variabel yang nilainya tetap dan bisa berupa variabel local
(internal) dan variabel global (eksternal).
Sifat-sifat
variabel statis :
·
Jika
bersifat internal (local), maka variabel hanya dikenal oleh fungsi tempat
variabel di deklarasikan
·
Jika
bersifat eksternal(global), maka variabel dapat dipergunakan oleh semua fungsi
yang terletak pada program yang sama.
·
Nilai
variabel statis tidak akan hilang walau eksekusi terhadap fungsi telah berakhir
·
Inisialisasi
hanya perlu dilakukan sekali saja, yaitu pada saat fungsi dipanggil pertama
kali
·
Jika
tidak diberi nilai awal secara otomatis berisi nilai nol.
·
Dideklarasikan
dengan menambahkan kata ‘static”.
4. Variabel Register
Variabel
Register adalah variabel yang nilainya disimpan dalam resister dan bukan dalam
memori RAM.
Sifat-sifat variabel register :
·
Hanya
dapat diterapkan pada variabel local yang bertipe int dan char
·
Digunakan
untuk mengendalikan poses perulang (looping)
·
Proses
perulangan akan lebih cepat karena variabel register memiliki kecepatan yang
lebih tinggi dibandingkan variabel biasa.
·
Dideklarasikan dengan menambahkan kata “register”.
F U N G S I R
E K U R S IF
Rekursif ialah salah satu teknik pemograman dengan cara memanggil sebuah
fungsi dari dirinya sendiri, baik itu secara langsung maupun tidak langsung.
Pemanggilan fungsi rekursif secara langsung berarti dalam fungsi tersebut
terdapat statemet untuk memanggil
dirinya sendiri sedangkan secara tidak langsung berarti fungsi rekursif
tersebut memanggil 1 atau lebih fungsi lain sebelum memanggil dirinya sendiri.
Fungsi Rekursif Tak Langsung
Penampungan stack yang cukup besar. Karena setiap kali pemanggilan
fungsi, register-register seperti cs (untuk memory far) dan ip harus disimpan,
belum lagi untuk penanganan local variabel serta parameter fungsi yang tentunya
membutuhkan ruang untuk stack lebih banyak lagi. Selain itu karena setiap
pemanggilan fungsi, register dan memory harus di push kestack maka setelah
selesai pemanggilan perlu diadakan pop stack. Untuk mengembalikan memory dan
register kembali ke adaan awal, ini sering disebut sebagai overhead.
Proses
Rekursif
Untuk dapat
memahami proses yang terjadi dalam sebuah fungsi rekusif, marilah kita simak
contoh fungsi rekusif berikut :
P R O S E D UR
Pengertian
Prosedur
Seperti halnya dan fungsi, prosedur merupakan
suatu bagian dari program yang dimaksud untuk mengerjakan suatu tugas tertentu
dan letaknya terpisah dari program yang memanggilnya. Perbedaanya adalah, fugsi
juga dideklarasikan seperti variabel, dan mengembalikan nilai fungsi
kepemanggilannya. Sedangkan prosedur tidak dideklarasikan seperti variabel dan
tidak mengembalikan nilai tertentu, tapi memberikan hasil ada dalam prosedur
ini. Prosedur juga sering disebut dengan fungsi tanpa tipe fungsi, artinya
dengan menggunakan tipe void.
Contoh Program:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <conio.h>
float
Volume; /* Variabel global */
void LuasLingkaran() /* deklarasi
fungsi tanpa parameter */
{
int
r; /* variabel lokal */
float
Luas; /* variabel lokal */
r=10;
Luas
= 3.14*r*r;
printf("Luas
Lingkaran = %2.2f",Luas);
}
void
VolumeBalok(int &p,int &l,int &t) /* deklarasi fungsi dengan
parameter */
{
Volume
= p*l*t;
}
//---------------------------------------------------------------------------
#pragma
argsused
int
main(int argc, char* argv[])
{
LuasLingkaran();
/* Pemanggilan Fungsi tanpa parameter */
VolumeBalok(2,3,4);
/* Pemanggilan fungsi dengan parameter */
printf("\nVolume
Balok = %2.2f",Volume);
getch();
return
0;
}
//---------------------------------------------------------------------------
void
LuasLingkaran() /* deklarasi fungsi tanpa parameter */
{
int r; /* variabel lokal */
float Luas; /* variabel lokal */
r=10;
Luas = 3.14*r*r;
printf("Luas Lingkaran =
%2.2f",Luas);
}
void VolumeBalok(int &p,int
&l,int &t) /* deklarasi fungsi dengan parameter */
{
Volume = p*l*t;
}
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
LuasLingkaran(); /* Pemanggilan
Fungsi tanpa parameter */
VolumeBalok(2,3,4); /*
Pemanggilan fungsi dengan parameter */
printf("\nVolume Balok =
%2.2f",Volume);
getch();
return
0;
}
//--------------------------------------------------------------------------
4.prosedur n funtion dalam bahasa c dan pascal
FUNCTION & PROCEDURE DALAM BAHASA C
Isue pemrograman berkembang
setiap saat, diawali dengan issue terstruktur sekitar tahun 70’an kemudian
issue modular dan yang sedang berkembang adalah issue object oriented. Issue terstruktur
dan modular merupakan paradigma prosedural sedangkan issue object oriented
adalah berada dalam paradigma object-oriented. Function&Procedure
berkembang pada saat terjadinya issue modular, hal itu memudahkan programmer
untuk memecah program menjadi bagian-bagian sub program kecil. Untuk
mempelajari function & procedure dalam paradigma prosedural perlu
diperhatikan dahulu tentang struktur data. Struktur data terbagi dalam beberapa
type :
- Dasar : integer, real, boolean, character. Nama informasi yang didefinisikan dengan type dasar ini setiap saat hanya dapat menyimpan satu nilai.
- Bentukan(user-defined type) : structure, union, enumeration. Type bentukan yaitu type yang merupakan komposisi dari type bentukan. Nama informasi yang didefinisikan dengan type ini setiap saat hanya mengandung satu nilai sesuai dengan komposisi dari type yang didefinisikan.
typedef struct {
float x , y;
}Point;
Deklarasi Variabel Bertype Point :
Point P;
Cara akses(baca & tulis) Point :
P.x = 10; // baca
P.y = 20; // bacaDefinisi Type Enumeration : (lihat Schaum’S hal 45, 138,139)
enum shape {circle, square, triagle }; // circle=0, square=1, triangle=2
enum color {red, blue, green, yellow }; // red=0, green=1, green=2, yellow=3;
Deklarasi Variabel Bertype Enumeration :
shape ellipse;
color background;
Cara akses(baca & tulis) Enumeration :
ellipse=circle; // baca, circle bernilai 0
color =yellow; // baca, yellow bernilai 3
cout << “ellipse : “ << ellipse << endl; // tulis, tercetak “ellipse : 0”
cout << “color : “ << color << endl; // tulis, tercetak “color : 3”
Derived type(array/tabel, function, pointer).
Procedure&Function dalam pemrograman
prosedural merupakan aksi(dari operator-operator) yang memanipulasi struktur
data. Lihat Schaum’S hal 89 – 126!!!
Contoh 1 : terdapat dua buah bilangan bertype
integer(struktur data dasar, integer), aksi yang dapat dilakukan terhadap
bilangan-bilangan tersebut adalah aksi tambah, kurang, bagi , kali dsb.
Aksi-aksi tersebut dapat dipandang sebagai sebuah prosedur atau function.
Umumnya, aksi terhadap type dasar sudah built-in dalam compiler.
Contoh 2 : Terdefinisi 1 variabel bertype
Point, aksi yang dapat dilakukan terhadap variabel tersebut adalah tambahpoint,
kurangpoint, setpoint, getpoint. Umumnya, aksi terhadap type buatan belum
terdefinisi di dalam compiler seperti C, programmer perlu
mendefinisikannya sendiri sehingga user-programmer dapat menggunakannya.
Aksi tambahpoint,kurangpoint,setpoint diimplementasikan dalam
prosedur& function.
Perlu diperhatikan beberapa aspek, ketika akan
mengimplementasikan prosedur&function dalam sebuah bahasa pemrograman
C/C++(prosedural) yaitu : struktur umum dalam program, relationship antara
function&procedure dengan data (global&lokal.
Ditulis dalam satu file dengan program utama/Driver
#include <……………>
//————Definisi type data
//————Deklarasi variabel/data global
//————Deklarasi function&procedure (primitif)/Prototipe : lihat Schaum’S hal
// 94-95
//————Realisasi Prototipe : lihat Schaum’S hal 94-95
//————Program Utama/Driver : Bagian pemanggil function&procedure, terbagi
// dua yaitu call by reference dan value : lihat Schaum’S hal 103 – 108.
Kelebihan bahasa C++ dalam hal function adalah
- Function bisa mengembalikan (return) by reference. Contoh 6.7 lihat Schaum’S hal 162.
- Overloading : Menggunakan nama yang sama untuk fungsi yang berbeda. Lihat Schaum’S hal 111.
Kategori function dalam C
1. Yaitu fungsi-fungsi yang telah di sediakan oleh C dalam
file-file header atau libarrynya. Misalnya: clrscr(), printf(), getch,() untuk
Untuk
fungsion ini kita harus mendeklarasikan terlebih dahulu library yang akan di
gunakan, yaitu dengan menggunakan propresesor direktif: #include
<conio.h>
2.
Programmer-difened function
Adalah
function yang di buat oleh programmer sendiri. Function ini memiliki nama
tertentu yang unik dalam program,letaknya terpisah dari program utama,dan bisa
di jadikan satu ke dalam suatu library buatan programmer itu sendiri yang
kemudian juga di includekan untuk penggunanya.
Keuntungan Fungsi
1.
Dapat melakukan pendekatan top-down
dan divide-and-conquer:
2.
Top-down: penelusuran program mudah
3.
Divide-and-conquer: program besar
dapat dipisah menjadi program-program kecil.
4.
Kode program menjadi lebih pendek,
mudah dibaca, dan mudah dipahami
5.
Program dapat dikerjakan oleh
beberapa orang sehingga program cepat selesai dengan koordinasi yang mudah.
6.
Mudah dalam mencari
kesalahan-kesalahan karena alur logika jelas dan sederhana Kesalahan dapat
dilokalisasi dalam suatu modul tertentu saja.
7.
Modifikasi program dapat dilakukan
pada suatu modul tertentu saja tanpa mengganggu program keseluruhan
8.
Fungsi – fungsi menjadikan program
mempunyai struktur yang jelas.
9.
Dengan memisahkan langkah – langkah
detail ke satu atau lebih fungsi – fungsi, maka fungsi utama (main) akan
menjadi lebih pendek, jelas dan mudah dimengerti.
10. Fungsi -fungsi digunakan untuk menghindari penulisan program
yang sama yang ditulis secara berulang – ulang. Langkah – langkah tersebut
dapat dituliskan sekali saja secara terpisah dalam bentuk fungsi. Selanjutnya
bagian program yang membutuhkan langkah – langkah ini tidak perlu selalu
menuliskannya, tidak cukup memanggil fungsi tersebut.
11. Mempermudah
dokumentasi.
12. Reusability: Suatu
fungsi dapat digunakan kembali oleh program atau fungsi lain
Sifat-sifat
fungsi
1.
Nilai fan-in tinggi, artinya semakin
sering suatu modul dipanggil oleh pengguna semakin tinggi nilai fan-in
2.
Nilai Fan-out rendah, artinya semakin
spesifik fungsi suatu modul akan semakin rendah nilai fan-out
3.
Memiliki Self-contained tinggi:
artinya kemampuan untuk memenuhi kebutuhannnya sendiri
Kategori fungsi dalam C
Standard
Library Function . Yaitu fungsi-fungsi yang telah disediakan oleh C dalam
file-file header atau librarynya. Misalnya: clrscr(), printf(), getch(). Untuk
function ini kita harus mendeklarasikan terlebih dahulu library yang akan
digunakan, yaitu dengan menggunakan preprosesor direktif. Misalnya: #include
Programmer-Defined
Function . Adalah function yang dibuat oleh programmer sendiri.
Function ini memiliki nama tertentu yang unik dalam program, letaknya terpisah dari program utama,dan bisa dijadikan satu ke dalam suatu library buatan programmer itu sendiri yang kemudian juga di-include-kan jika ingin menggunakannya.
Function ini memiliki nama tertentu yang unik dalam program, letaknya terpisah dari program utama,dan bisa dijadikan satu ke dalam suatu library buatan programmer itu sendiri yang kemudian juga di-include-kan jika ingin menggunakannya.
Perancangan
Fungsi
Dalam membuat fungsi, perlu diperhatikan:
1.
Data yang diperlukan sebagai inputan
2.
Informasi apa yang harus diberikan
oleh fungsi yang dibuat ke pemanggilnya
3.
Algoritma apa yang harus digunakan
untuk mengolah data menjadi informasi
Struktur Fungsi
Deklarasi function (function prototype/ declaration)Terdiri dari:
1.
Judul fungsi
2.
Tipe data yang akan
dikembalikan/void
3.
Tidak ada kode implementasi function
tersebut Bentuk umum: tipe_data|void nama_fungsi([arguman 1, argument 2,....]);
Deklarasi fungsi diakhiri dengan titik koma . Tipe_data dapat berupa segala tipe data yang dikenal C ataupun tipe data buatan, namun tipe data dapat juga tidak ada dan digantikan dengan void yang berarti fungsi tersebut tidak mengembalikan nilai apapun. Nama fungsi adalah nama yang unik. Argumen dapat ada atau tidak (opsional) yang digunakan untuk menerima argumen/parameter. Antar argumen-argumen dipisahkan dengan menggunakan tanda koma. Suatu fungsi perlu dideklarasikan sebelum digunakan. Untuk alasan dokumentasi program yang baik, sebaiknya semua fungsi yang digunakan dideklarasikan terlebih dahulu Deklarasi fungsi ditulis sebelum fungsi tersebut digunakan
Struktur
Fungsi
1.
Tubuh Function/Definisi Function
(FunctionDefinition)Terdiri dari:
2.
function prototype yang disertai
dengan kode implementasi dari function yang berisikan statemen/instruksi yang
akan melakukan tugas sesuai dengan tujuan dibuatnya fungsi tersebut.
Bentuk
Umum Definisi Fungsi
Tubuh fungsi dapat berisi segala perintah yang dikenal oleh C, pada dasarnya tubuh fungsi sama dengan membuat program seperti biasa. Return bersifat opsional, adalah keyword pengembalian nilai dari fungsi ke luar fungsi, return wajib jika fungsi tersebut mengembalikan nilai berupa tipe data tertentu, sedangkan return tidak wajib jika fungsi tersebut bersifat void.
Kapan
menggunakan Deklarasi dan Definisi Fungsi?
Karena prinsip kerja program C sekuensial, maka. Jika bagian dari program yang menggunakan fungsi diletakkan sebelum definisi dari fungsi, maka deklarasi dari fungsi diperlukan. Akan tetapi jika bagian dari program yang menggunakan fungsi terletak nsetelah definisi dari fungsi, maka deklarasi dari fungsi dapat tidak dituliskan.
Jenis fungsi dalam C
Fungsi Void
Fungsi yang void sering disebut juga prosedur . Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari hasil proses fungsi tersebut.
Ciri:
1.
Tidak adanya keyword return.
2.
tidak adanya tipe data di dalam deklarasi
fungsi.
3.
menggunakan keyword void.
4.
Tidak dapat langsung ditampilkan
hasilnya
5.
Tidak memiliki nilai kembalian
fungsi
Fungsi non-void
Fungsi
non-void disebut juga function. Disebut non-void karena mengembalikan nilai
kembalian yang berasal dari keluaran hasil proses function tersebut .
Ciri:
1.
ada keyword return
2.
ada tipe data yang mengawali fungsi
3.
tidak ada keyword void
4.
Memiliki nilai kembalian . Dapat
dianalogikan sebagai suatu variabel yang memiliki tipe data tertentu sehingga
dapat langsung ditampilkan hasilnya.
Keyword void
Keyword void juga digunakan jika suatu function tidak mengandung suatu parameter apapun. Contoh fungsi Faktorial
The
main Function
·
function main() dibutuhkan agar
program C dapat dieksekusi!
·
Tanpa function main, program C dapat
dicompile tapi tidak dapat dieksekusi (harus
dengan flag parameter -c, jika di UNIX) . Pada saat program C dijalankan, makacompiler C pertama kali akan mencari function main() dan melaksanakan instruksi-instruksi yang ada di sana. Function main, sering dideklarasikan dalam 2 bentuk:
dengan flag parameter -c, jika di UNIX) . Pada saat program C dijalankan, makacompiler C pertama kali akan mencari function main() dan melaksanakan instruksi-instruksi yang ada di sana. Function main, sering dideklarasikan dalam 2 bentuk:
. int main()
. void main()
. void main()
int main()
Berarti
di dalam function main tersebut harus terdapat keyword return di bagian akhir
fungsi dan mengembalikan nilai bertipe data int. Mengapa hasil return harus
bertipe int juga? karena tipe data yang mendahului fungsi main() diatas
dideklarasikan int. Tujuan nilai kembalian berupa integer adalahuntuk
mengetahui status eksekusi program. jika “terminated successfully”
(EXIT_SUCCESS) maka, akan dikembalikan status 0, sedangkan jika “terminated
unsuccessfully” (EXIT_FAILURE) akan dikembalikan nilai status tidak 0, biasanya
bernilai 1. Biasanya dipakai di lingkungan UNIX void main(). Berarti berupa
function yang void sehingga tidak mengembalikan nilai status program sehingga
nilai status program tidak bisa diketahui. Biasanya dipakai pada program C di
lingkungan Windows Bentuk pemanggilan fungsi di C.
#include <iostream.h>;
#include <conio.h>;
int fungsi_menu(void);
float fungsi_perKalian(void);
float fungsi_pemBagian(void);
float fungsi_pengUrangan(void);
float fungsi_penAmbahan(void);
int menu_exit(void);
main ()
{
fungsi_menu();
return 0;
}
int fungsi_menu()
{
clrscr();
int a;
cout <<
"——pilih——\n";
cout <<
"1. perkalian\n";
cout <<
"2. pembagian\n";
cout <<
"3. pengurangan\n";
cin >> a;
switch (a)
{
case 1: fungsi_perKalian(); break;
case 2: fungsi_pemBagian(); break;
case 3: fungsi_pengUrangan(); break;
case 4: fungsi_penAmbahan(); break;
default: break;
}
return 0;
}
float fungsi_perKalian()
{
float x,y,z;
cin >> x ;
cin >> y ;
z = x * y;
cout << "hasilnya : " << z <<
endl;
cout << endl;
menu_exit();
return 0;
}
float fungsi_pemBagian()
{
float x,y,z;
char a;
cin >> x ;
cin >> y ;
z = x / y;
cout << "hasilnya : " << z <<
endl;
cout << endl;
menu_exit();
return 0;
}
float fungsi_pengUrangan()
{
float x,y,z;
char a;
cin >> x ;
cin >> y ;
z = x - y;
cout << "hasilnya : " << z <<
endl;
cout << endl;
menu_exit();
return 0;
}
float fungsi_penAmbahan()
{
float x,y,z;
char a;
cin >> x ;
cin >> y ;
z = x + y;
cout << "hasilnya : " << z <<
endl;
cout << endl;
menu_exit();
return 0;
}
int menu_exit()
{
char a;
cin >> a;
if (a == 'y')
{
cout << endl;
fungsi_menu();
}
else
{
cout <<
"terimakasih telah menggunakannya";
}
return 0;
}
terima kasih atas postingannya, sangt bermanfaat
ReplyDelete