Laporan Akhir Praktikum
Algoritma dan Komputasi Numerik
AKN 3
-( Judul Modul
)
Nama
: Puspita Melati Anggaeni
NPM
:140310160050
Hari/Tanggal
: kamis/23 Maret 2017
Waktu
: 07.30 – 10.00
Asisten
: A.F Al-Fikri
LABORATORIUM KOMPUTER DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS PADJADJARAN
V. Tugas Praktikum
5.1 Fungsi Tanpa Mengahsilkan Nilai a. Listing Program
Listing program awal
#include <stdio.h> main()
{
hapus() garis()
printf("\n laboratorium komputer ");
printf("\n praktikum algoritma pemrogrograman "); printf("\n praktikum IV penggunaan fungsi "); printf("\n ");
printf("\n jurusan fisika ");
printf("\n fakultas matematika dan ilmu pengetahuan alam "); printf("\n universitas padjadjaran ");
printf("\n 2016 "); garis();
#include <stdio.h>
printf("\n laboratorium komputer ");
printf("\n praktikum algoritma pemrogrograman "); printf("\n praktikum IV penggunaan fungsi "); printf("\n ");
printf("\n jurusan fisika ");
printf("\n fakultas matematika dan ilmu pengetahuan alam "); printf("\n universitas padjadjaran ");
printf("\n 2016 "); garis();
hapus();
}
c. Analisa
pada listing program yang awal tidak bias di compile karena terdapat banyak error. Modifikasi dilakukan pada posisi fungsi utama yang jadi diletakan sebelum fungsi hapus dan garis, menambahkan tanda “;” setelah pemanggilan fungsi garis dan hapus yang ada di fungsi utama dan menyimpan kedua pemanggilan fungsi itu di bawah. Dan hasil dari modifikasinya terlihat pada tampilan gambar diatas.
Fungsi pada listing program diatas merupakan fungsi tanpa nilai balik cirinya dapat diketahui dengan mudah yaitu tidak adanya sintaks return. Karena biasanya fungsi dengan nilai balik melibatkan nilai sedangkan program diatas tidak.
5.2 Penggunaan Fungsi Dalam Library C
a. Listing Program
#include <stdio.h> #include <math.h> #define pi 3.14159
int i,j; printf("\n"); for(i=1;i<=1;++i) {
for(j=1;j<=30;j++) printf("*");
printf("\n"); }
}
main () {
int sudut;
float sinus, cosinus, tangen, radian; radian=180/pi;
garis();
printf ("sudut\tsinus\tcosinus\ttangen\n"); garis();
for (sudut=0; sudut<=360; sudut+=15) { sinus =sin (sudut/radian);
cosinus=cos (sudut/radian); tangen=tan (sudut/radian);
printf ("%d\t%.2f\t%.2f\t%.2f\n", sudut, sinus, cosinus, tangen);
}
}
b. Tampilan Program
dalam pembuatan deret tabel sinus, cosinusa dan tangen ini menggunakan file header math.h karena fungsi trigonometri ini terdapat pada library math.h yang jelas tidak akan tredapat di file header stdio.h. pada pembuatan tabelnya digunakan juga struktur pengulangan for. Listing program yang digunakan tertera diatas dan menghasilkan tampilan program tersebut.
5.3 Fungsi Yang Menghasilkan Nilai a. Listing Program
/*Program 3 */ #include <stdio.h>
float fibonacci (int a, int b) {
return (a+b); }
main () {
int i, N, bil1, bil2, bil3;
printf ("Masukan banyaknya bilangan yang akan ditampilkan : ");
scanf ("%d", &N);
printf ("Masukan bilangan pertama : "); scanf ("%d", &bil1);
printf ("Masukan bilangan kedua : "); scanf ("%d", &bil2);
printf ("%d,%d,", bil1, bil2); for (i=1; i<=N-2; i++)
{
bil3 = fibonacci (bil1, bil2); printf ("%d,", bil3);
bil1 = bil2; bil2 = bil3; }
printf ("\n"); return 0; }
c. Analisa
pada program diatas terdapat fungsi sebelum fungsi utamanya. Fungsi tersebut merupakan fungsi dengan nilai balik dicirikan dengan adanya sintaks return. Pada fungsi diatas, nilai yang dibalikan adalah nilai penjumlahan antara variable a dan variable b. fungsi fibonanci dipanggil pada fungsi utama dan menghasilkan hasil penjumlahan antara bil1 dan bil2 yang mana bila1 jadi parameter a dan bil2 jadi parameter b. fungsi ini menggunakan struktur pengulangan for sehingga proses akan terus berlanjut sampai syarat banyaknya pengulangna terpenuhi.
5.4 Pointer dan Fungsi a. Listing Program
// program 4 #include<stdio.h>
void luaspersegi (int*); main ()
{
int sisi;
printf ("input panjang sisi persegi: "); scanf(" %d", &sisi);
luaspersegi (&sisi);
printf(" luas persegi adalah %d \n", sisi); return 0;
}
void luaspersegi (int *ptr_sisi) {
b. Tampilan Program
c. Analisa
program dengan diatas dinyatakan berhasil. Dengan masukan nilai sisi perseginya 4 maka muncul luar perseginya 16.
VI. Tugas Akhir
6.1 Menghitung nilai permutasi dan kombinasi a. Listing Program
#include <stdio.h> #include <conio.h>
long int faktorial (int a, int b) {
return (a*b); }
long int permutasi (int c, int d) {
return (c*d); }
long int combinasi (int e, int f) {
return (e*f); }
main () {
int i, N, r, j, k, h, P, R, a, L; long int f;
printf ("masukan nilai n : "); scanf ("%d", &N); printf ("masukan nilai r : "); scanf ("%d", &r); f=1;
h=1; k=N-r;
for (i=1; i<=N; i++) {
f = faktorial (f,i); }
for (a=1; a<=r; a++) {
R = combinasi (R,a); }
for (j=1; j<=k; j++) {
h = permutasi (h,j); }
P=f/h; L=f/(R*h);
printf ("\n%d permutasi %d : %d\n\n", N,r,P); printf ("%d combinasi %d : %d", N,r,L);
getch (); }
b. Tampilan Program
c. Analisa
pada fungsi utama. Pada program utama untuk menyelesaikannya menggunakan struktur pengulangan for.
printf ("masukan nilai n : "); scanf ("%d", &N);
printf ("masukan nilai r : "); scanf ("%d", &r); f=1;
f = faktorial (f,i); }
for (a=1; a<=r; a++) {
R = combinasi (R,a); }
for (j=1; j<=k; j++) {
h = permutasi (h,j); }
Pada pemanggilan fungsi factorial, parameter a menjadi f yang mana f bernilai 1 dn parameter i menjadi nilai yang mengalami struktur pengulangan. Dimulia dari 1 sampai sejumlah batas N yang dideklarasikan.
Pada pemanggilan kombinasi, parameter c menjadi R dan parameter d menjadi a yang mana a dideklarasikan oleh struktur perulangan for. Nilai a dimulia dari 1 sampai sejumlah batas r yang dideklarasikan.
Begitu juga pada pemanggilan permutasi. Parameter e menjadi h dan parameter f menjadi j. yang mana f dan j masing masing dinyatakan sesuai listing program diatas dan tak jauh beda penjelasannya seperti pada kombinasi dan factorial. Dan untuk menentukan masing masing nilai dari permutasi dan kombinasi adalah dengan
P=f/h; L=f/(R*h);
Dimana telah disesuaikan dengan rumus matematikannya.
6.2 Deret Fibonacci a. Listing Program
//tugas akhir 2 #include <stdio.h>
float fibonacci(int *a, int *b) {
} main() {
int i, N, a, b, c;
printf("Masukkan banyaknya bilangan yang akan ditampilkan : ");scanf("%d",&N);
printf("Masukkan bilangan pertama : ");scanf("%d",&a); printf("Masukkan bilangan kedua : ");scanf("%d",&b); printf("%d,%d,",a,b);
for (i=1; i<=N-2; i++) {
c = fibonacci(&a,&b); printf("%d,",c); a = b;
b = c; }
printf("\n"); return 0;}
b. Tampilan Program
c. Analisa Program