Masalah :
Saya ingin membuat perkalian 1 sampai 10 , tapi saya tidak hafal perkalian 1 sampai 10.
Spesifikasi :
- Fungsi Kali : mengalikan 2 angka, dalam contoh ini adalah integer/ bilangan bulat.
- Prosedur printPerkalian : menampilkan setiap kelompok hasil perkalian ke layar.
/* File Name : perkalian.c */
#include <stdio.h>
/* fungsi Kali */
int Kali(int a, int b) {
return a * b;
}
/* Prosedur printPerkalian */
void printPerkalian(int N) {
int i, j;
for (i = 0; i < N; i++) {
printf("\nPERKALIAN %d\n", i+1);
for (j = 0; j < 10; j++) {
printf("%d x %d = %d\n", j+1, i+1, Kali(i+1, j+1));
}
printf("\n");
}
}
/*Program Utama */
int main() {
int N;
printf("Print hasil perkalian sampai perkalian : ");
scanf("%d", &N);
printPerkalian(N);
return 0;
}
#include <stdio.h>
/* fungsi Kali */
int Kali(int a, int b) {
return a * b;
}
/* Prosedur printPerkalian */
void printPerkalian(int N) {
int i, j;
for (i = 0; i < N; i++) {
printf("\nPERKALIAN %d\n", i+1);
for (j = 0; j < 10; j++) {
printf("%d x %d = %d\n", j+1, i+1, Kali(i+1, j+1));
}
printf("\n");
}
}
/*Program Utama */
int main() {
int N;
printf("Print hasil perkalian sampai perkalian : ");
scanf("%d", &N);
printPerkalian(N);
return 0;
}
Kompilasi :
gcc -o hasil perkalian.c
Jalankan Porgram
./hasil
Spesifikasi :
Dengan menggunakan Newton's Method sebagai acuan dasar dalam membuat fungsi akar.
angka 128 adalah 128 bit = 16 bytes sebagai batas maksimal double.
#include <stdio.h>
#define epsilon 1e-12
double akar(double x) {
double d = x/128;
double xn = d;
double xnmin;
double temp;
while (d > epsilon) {
xnmin = xn;
xn = xnmin - ((xnmin * xnmin - x)/(2 * xnmin));
temp = xn - xnmin;
if (temp < 0) {
d = temp * (-1);
} else {
d = temp;
}
}
return xn;
}
/* Program Utama */
int main() {
float x;
printf("Akar dari : ");
scanf("%f", &x);
printf("adalah %.4f\n", akar(x));
return 0;
}
#define epsilon 1e-12
double akar(double x) {
double d = x/128;
double xn = d;
double xnmin;
double temp;
while (d > epsilon) {
xnmin = xn;
xn = xnmin - ((xnmin * xnmin - x)/(2 * xnmin));
temp = xn - xnmin;
if (temp < 0) {
d = temp * (-1);
} else {
d = temp;
}
}
return xn;
}
/* Program Utama */
int main() {
float x;
printf("Akar dari : ");
scanf("%f", &x);
printf("adalah %.4f\n", akar(x));
return 0;
}
Spesifikasi :
Fungsi int pangkat(int a, int n) mengembalikan nilai pangkat dari a pangkat n
Rumus : a pangkat n
a : integer positif atau negatif
n : integer positif
batas : batas bilangan integer
#include <stdio.h>
int pangkat(int a, int n) {
if (n == 0) {
return 1;
} else if (n == 1) {
return a;
} else {
return a * pangkat(a, n-1);
}
}
/* Program Utama */
int main() {
int angka, N;
scanf("%d %d", &angka, &N);
printf("%d \n", pangkat(angka, N));
return 0;
}
int pangkat(int a, int n) {
if (n == 0) {
return 1;
} else if (n == 1) {
return a;
} else {
return a * pangkat(a, n-1);
}
}
/* Program Utama */
int main() {
int angka, N;
scanf("%d %d", &angka, &N);
printf("%d \n", pangkat(angka, N));
return 0;
}
Spesifikasi :
Fungsi int Faktorial(int number) mengembalikan nilai intger dari number! (number faktorial)
number : nilai yang akan dicari faktorialnya
contoh faktorial dalam matematika :
4! = 1 x 2 x 3 x 4 = 24
#include <stdio.h>
int Faktorial(int number) {
if (number == 0) {
return 1;
} else {
return number * Faktorial(number - 1);
}
}
/* Program Utama */
int main() {
int N;
printf("Hasil faktorial dari : ");
scanf("%d", &N);
printf("adalah %d \n", Faktorial(N));
return 0;
}
int Faktorial(int number) {
if (number == 0) {
return 1;
} else {
return number * Faktorial(number - 1);
}
}
/* Program Utama */
int main() {
int N;
printf("Hasil faktorial dari : ");
scanf("%d", &N);
printf("adalah %d \n", Faktorial(N));
return 0;
}
Hi guys, sekedar catatan untuk belajar pemerograman dengan pendekatan rekursif. Di dalam rekursif ada dua kondisi yang penting yang menjadi acuan untuk membangun sebuah program. Pertama adalah basis, basis adalah kondisi dimana looping/pengulangan itu menghasilkan sesuatu nilai. Basis menjadi acuan dasar dimana program akan mengembalikan sebuah nilai yang nantinya di proses secara berulang-ulang sehingga menghasilkan nilai yang diinginkan. Yang kedua adalah rekurens, rekurens merupakan kondisi pengulangan untuk memperoses nilai yang ada pada basis. Rekurens menjadi tempat untuk memanipulasi nilai yang ada pada basis menjadi hasil yang diinginkan. Pada umumnya, basis mempunyai dua kondisi yaitu basis-0, dimana kondisi pengulang berada pada index 0 dan basis-1 dimana kondisi pengulangan berada pada index-1.
Berikut contoh program fibonacci dengan pendekatan rekursif. Bilangan Fibonacci adalah bilangan dengan menjumlah dua nilai di awal untuk menghasilkan nilai berikutnya yaitu dengan mengikuti rumus berikut.

/* File Name : fibonacci.c */
/* Author : Sabitudddin Bigbang */
#include <stdio.h>
int fibonacci(int number) {
if ((number == 0) || (number == 1)) { /* Basis */
return 1;
} else { /* Rekurens */
return fibonacci(number-1) + fibonacci(number-2);
}
}
int main() {
printf("Bilangan Fibonacci Rekursif\n");
int i,count;
printf("Masukkan jumlah Bilangan : ");
scanf("%d", &count);
for (i = 0; i < count; i++) {
printf(" %d ", fibonacci(i));
}
printf("\n");
return 0;
}
/* Author : Sabitudddin Bigbang */
#include <stdio.h>
int fibonacci(int number) {
if ((number == 0) || (number == 1)) { /* Basis */
return 1;
} else { /* Rekurens */
return fibonacci(number-1) + fibonacci(number-2);
}
}
int main() {
printf("Bilangan Fibonacci Rekursif\n");
int i,count;
printf("Masukkan jumlah Bilangan : ");
scanf("%d", &count);
for (i = 0; i < count; i++) {
printf(" %d ", fibonacci(i));
}
printf("\n");
return 0;
}
Steps :
- Tentukan basis, basis-0 atau basis-1, atau dua-duanya
- Buatlah rekurens dengan menggunakan fungsi itu sendiri.
Notes :
Basis : kondisi pada index 0 untuk basis-0, index 1 untuk basis-1 dan mengembalikan sebuah nilai.
Rekurens : Kondisi pengulangan untuk memproses nilai pada basis yaitu dengan menggunakan fungsi itu sendiri.
Biangan Fibonacci = 1, 1, 2, 3, 5, 8, 13, 21, ...
Git Help!
git --help
Maka akan muncul
usage: git [--version] [--help] [-C <path>] [-c name=value]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>]
These are common Git commands used in various situations:
start a working area (see also: git help tutorial)
clone Clone a repository into a new directory
init Create an empty Git repository or reinitialize an existing one
work on the current change (see also: git help everyday)
add Add file contents to the index
mv Move or rename a file, a directory, or a symlink
reset Reset current HEAD to the specified state
rm Remove files from the working tree and from the index
examine the history and state (see also: git help revisions)
bisect Use binary search to find the commit that introduced a bug
grep Print lines matching a pattern
log Show commit logs
show Show various types of objects
status Show the working tree status
grow, mark and tweak your common history
branch List, create, or delete branches
checkout Switch branches or restore working tree files
commit Record changes to the repository
diff Show changes between commits, commit and working tree, etc
merge Join two or more development histories together
rebase Forward-port local commits to the updated upstream head
tag Create, list, delete or verify a tag object signed with GPG
collaborate (see also: git help workflows)
fetch Download objects and refs from another repository
pull Fetch from and integrate with another repository or a local branch
push Update remote refs along with associated objects
'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.
Iplementasi
Cloning from repository :
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>]
These are common Git commands used in various situations:
start a working area (see also: git help tutorial)
clone Clone a repository into a new directory
init Create an empty Git repository or reinitialize an existing one
work on the current change (see also: git help everyday)
add Add file contents to the index
mv Move or rename a file, a directory, or a symlink
reset Reset current HEAD to the specified state
rm Remove files from the working tree and from the index
examine the history and state (see also: git help revisions)
bisect Use binary search to find the commit that introduced a bug
grep Print lines matching a pattern
log Show commit logs
show Show various types of objects
status Show the working tree status
grow, mark and tweak your common history
branch List, create, or delete branches
checkout Switch branches or restore working tree files
commit Record changes to the repository
diff Show changes between commits, commit and working tree, etc
merge Join two or more development histories together
rebase Forward-port local commits to the updated upstream head
tag Create, list, delete or verify a tag object signed with GPG
collaborate (see also: git help workflows)
fetch Download objects and refs from another repository
pull Fetch from and integrate with another repository or a local branch
push Update remote refs along with associated objects
'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.
git clone url_repository