Di dalam bahasa C terdapat fungsi yang biasa disebut parameter fungsi. Parameter Fungsi ini biasa digunakan untuk meminimalisir atau meminimaliskan penampilan fungsi-fungsi yang ada di dalam main. Berikut ini merupakan contoh program nya :
#include <stdio.h>
#include <conio.h>
#include <string.h>
//parameter fungsi biasa disebut fungsi yang ada di luar main, yang digunakan untuk meminimalisir penampilan fungsi didalam main
void view(char);//untuk deklarasi fungsi
void member(int);
void nonmember(int);
void regist(char);
main()
{
int pilih;
char daftar;
menu:
view(daftar);//untuk memanggil fungsi *void view (char daftar)
printf("Masukkan Pilihan\t:\t");scanf("%d", &pilih);
switch(pilih)
{
case 1:
{
char mem, biaya;
printf("\nBiaya pendaftaran adalah Rp. 50.000,-\n");
printf("\nAnda ingin menjadi member ? [Y/N]\t:\t"); scanf("%s", &mem);
if(mem == 'y'|| mem == 'Y')
{
regist(biaya); //untuk memanggil fungsi *void regist(char biaya)
getch();
system("cls");
goto menu;
}
else
{
system("cls"); goto menu;
}
}
case 2:
{
int total;
char mb;
printf("\nApakah anda sudah menjadi member ?[Y/N]\t:\t");scanf("%s", &mb);
if(mb == 'y' || mb == 'Y')
{
member(total); //untuk memanggil fungsi *void member (int total)
getch();
return 0;
}
else if(mb == 'n' || mb == 'N')
{
nonmember(total);//untuk memanggil fungsi *void nonmember (int total)
getch();
return 0;
}
else
{
goto menu;
}
}
}
}
void view(char daftar)
{
printf("|\t\tBilling Warnet\t\t|\n\n");
printf("| 1. Daftar Member Baru\t\t\t|\n| 2. Pembayaran\t\t\t\t|\n\n");
}
void regist(char biaya)
{
printf("\nSelamat Anda Telah Menjadi Member");
}
void member(int total)
{
int warnet, warna, bw;
printf("\nBerapa lama sewa internet ?\t\t:\t");scanf("%d", &warnet);
printf("Berapa halaman kertas hitam putih ?\t:\t");scanf("%d", &bw);
printf("Berapa halaman kertas berwarna ?\t:\t");scanf("%d", &warna);
total = (warnet*2500)+(bw*200)+(warna*400);
printf("\n\nTotal Biaya %d", total);
}
void nonmember(int total)
{
int warnet, warna, bw;
printf("\nBerapa lama sewa internet ?\t\t:\t");scanf("%d", &warnet);
printf("Berapa halaman kertas hitam putih ?\t:\t");scanf("%d", &bw);
printf("Berapa halaman kertas berwarna ?\t:\t");scanf("%d", &warna);
total = (warnet*3000)+(bw*250)+(warna*500);
printf("\n\nTotal Biaya %d", total);
}
Continue Reading
Sorting atau Pengurutan seringkali digunakan dalam beberapa kasus program tingkat tinggi. Di dalam bahasa c terdapat 5 metode sorting atau pengurutan, yaitu :
1. Bubble Sort
2. Selection Sort
3. Insertion Sort
4. Merge Sort
5. Quick Sort
1. Bubble Sort
Bubble sort merupakan metode yang paling mudah digunakan dan merupakan metode sorting paling lambat, karena membandingkan elemen 1 dengan elemen lainnya dengan dua kali looping.
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define max 5
main()
{
int arr[max], i, j, temp;
printf("\n\t\tBubble Sort Ascending\n\n");
for(i=0; i<max; i++)
{
printf("Masukkan Angka\t\t\t\t: \t");
scanf("%d",&arr[i]);
}
for(i=0; i<max ; i++)
{
for(j=0; j<(max-1)-i; j++)
{
if( arr[j] > arr[j+1] )//ubah panah jika ingin dijadikan descending
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
printf("Data yang terurut secara Ascending\t:\n");
for(i=0; i<max; i++)
printf("\t\t\t\t\t\t%d\n",arr[i]);
}
2. Selection Sort
Selection sort melakukan pengurutan dengan cara menyeleksi setiap elemen pada array, kemudian membandingkan elemen pada loop pertama dengan elemen pada loop kedua.
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define max 5
main()
{
int arr[max], i, j, swap;
printf("\n\t\tSelection Sort Ascending\n\n");
for ( i = 0 ; i < max ; i++ )
{
printf("Masukkan Angka\t\t\t\t:\t");
scanf("%d", &arr[i]);
}
for ( i = 0 ; i < ( max - 1 ) ; i++ )
{
for ( j = i + 1 ; j < max ; j++ )
{
if ( arr[i] > arr[j] )//ubah panah jika ingin dijadikan descending
{
swap = arr[i];
arr[i] = arr[j];
arr[j] = swap;
}
}
}
printf("Data yang terurut secara Ascending\t:\t\n");
for ( i = 0 ; i < max ; i++ )
printf("\t\t\t\t\t\t%d\n", arr[i]);
}
3. Insertion Sort
Insertion sort melakukan pengurutan dengan cara setiap elemen dicek satu per satu hingga akhir jika ditemukan elemen yang lebih kecil maka akan disisipkan pada posisi yang sesuai.
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define max 5
main()
{
int arr[max], i, j, t;
printf("\n\t\tInsertion Sort Ascending\n\n");
for ( i = 0 ; i < max ; i++ )
{
printf("Masukkan Angka\t\t\t\t:\t");
scanf("%d", &arr[i]);
}
for (i = 1 ; i <= (max - 1); i++)
{
j = i;
while ( j > 0 && arr[j] < arr[j-1])//ubah panah setelah arr[j] jika ingin dijadikan descending
{
t = arr[j];
arr[j] = arr[j-1];
arr[j-1] = t;
j--;
}
}
printf("Data yang terurut secara Ascending\t:\t\n");
for (i = 0; i <= max - 1; i++)
printf("\t\t\t\t\t\t%d\n", arr[i]);
}
4. Merge Sort
Merge sort melakukan pengurutan dengan cara menggabungkan 2 data lalu mengurutkannya hingga menjadi satu data saja. Teknik merge sort memerlukan fungsi rekursif.
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define max 5
main()
{
int a[max], b[max], c[total], i, j, t, k = 0;
printf("\n\t\t\tMerge Sort Ascending\n\n");
for (i = 0; i < max; i++)
{
printf("Data Pertama\t\t\t\t:\t");
scanf("\t%d", &a[i]);
}
for (i = 0; i < max; i++)
{
printf("Data Kedua \t\t\t\t:\t");
scanf("\t%d", &b[i]);
}
for(i=0; i<max; i++)
{
for(j=i+1; j<max; j++)
{
if(a[i] > a[j])//ubah arah panah jika ingin dijadikan descending
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(i=0; i<max; i++)
{
for(j=i+1; j<max; j++)
{
if(b[i] > b[j])//ubah arah panah jika ingin dijadikan descending
{
t=b[i];
b[i]=b[j];
b[j]=t;
}
}
}
j=0;
t=0;
for(i=0; i<max+max;)
{
if(a[j] < b[t])//ubah arah panah jika ingin dijadikan descending
{
c[i++]=a[j++];
}
else
{
c[i++]=b[t++];
}
if(j==max || t==max)
{
break;
}
}
for(; j < max;)
{
c[i++]=a[j++];
}
for(; t < max;)
{
c[i++]=b[t++];
}
printf("\nData setelah di gabungkan\t\t:\t\n");
for (i = 0; i < max+max; i++)
{
printf("\t\t\t\t\t\t%d\n", c[i]);
}
}
5. Quick Sort
Quick sort sesuai namanya "quick" merupakan teknik sorting paling cepat, Menggunakan teknik rekursif, teknik pivot (tumpuan) untuk menjadi kunci perbandingan, dan teknik divide and conquer.
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define max 5
main()
{
int arr[max],n,i;
void quicksort(int arr[], int find, int lind)// find=First Index, lind= Last Index, ind1= index 1, ind2= index 2
{
int pind, temp, ind1, ind2;
if(find < lind)
{
pind = find;
ind1 = find;
ind2 = lind;
while(ind1 < ind2)
{
while(arr[ind1] <= arr[pind] && ind1 < lind)//ubah arah panah jika ingin dijadikan descending
{
ind1++;
}
while(arr[ind2]>arr[pind])//ubah arah panah jika ingin dijadikan descending
{
ind2--;
}
if(ind1<ind2)
{
temp = arr[ind1];
arr[ind1] = arr[ind2];
arr[ind2] = temp;
}
}
temp = arr[pind];
arr[pind] = arr[ind2];
arr[ind2] = temp;
quicksort(arr, find, ind2-1);
quicksort(arr, ind2+1, lind);
}
}
printf("\n\n\t\tQuick Sort Ascending\n\n");
for(i = 0; i < max; i++)
{
printf("Masukkan Angka\t\t\t\t:\t");
scanf("%d",&arr[i]);
}
quicksort(arr,0,max-1);
printf("Data yang terurut secara Ascending\t:\t\n");
for(i=0;i<max;i++)
printf("\t\t\t\t\t\t%d\n",arr[i]);
}
Continue Reading
Rumus Matematika :
A = 10*x
SIN -------
C
B = 3 * 3 akar(phir*r kuadrat)
Contoh Program Matematika :
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#define PHI 4*atan(1)
main()
{
int pilih;
printf("------- Program sederhana -------\n\n");
printf("1.\tA = sin(10*x/c)\n2.\tB = 3*3(phi*r kuadrat)\n\n\n");
printf("masukkan pilihan\t:\t");scanf("%d", &pilih);
switch(pilih)
{
case 1:
{
double A, b, c, x, rad;
printf("Masukkan nilai c : ");scanf("%lf",&c);
printf("Masukkan nilai x : ");scanf("%lf",&x);
b=10*x/c;
rad=b*180/PHI;
A=sin(rad);
printf("nilai dari A adalah %lf ",A);
}
break;
case 2:
{
double B, r;
printf("Masukkan nilai r\t:\t");scanf("%lf", &r);
B = 3*(3/sqrt(PHI*pow(r,2.0)));
printf("\n\nHasilnya adalah\t\t:\t%lf", B);
}
}
}
Continue Reading
Rekursif adalah fungsi yang memanggil dirinya sendiri, baik secara langsung maupun tidak dan proses pemanggilannya disebut rekursi.
Contoh Program Rekursif :
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
int main(){
int n,i,F=1;
n=5;
for(i = 1;i<=n;i++){
F=F*i;
}
// i = 1 -> F = 1 * 1 = 1
// i = 2 -> F = 1 * 2 = 2
// i = 3 -> F = 2 * 3 = 6
// i = 4 -> F = 6 * 4 = 24
// i = 5 -> F = 24 * 5 = 120
printf("%d\n",F);
getch();
return 0;
}
Continue Reading