Pages

LAPORAN PRAKTIKUM STRUKTUR DATA MODUL 3

Minggu, 16 April 2017

LAPORAN PRAKTIKUM
MODUL 3
FUNGSI REKURSI
STUKTUR DATA
Diajukan untuk memenuhi tugas sebagai bahan praktikum
Dosen : Endra Suseno, M.Kom


Disusun oleh :
Egi Legitasari
20160910045
Sistem informasi A 2016

FAKULTAS ILMU KOMPUTER
UNIVERSITAS KUNINGAN
2016
PRAKTIKUM 1


Study Kasus
Dalam perhitungan matematika dikenal perpangkatan dengan menentukan bilangan dasar yang akan dipangkatkan dan menentukan pangkat yang akan diterapkan pada bilangan dasar tersebut, bagaimana pehitngan matematika tersebut jika dibuat sebuah program. 

Script Program menggunakan C/C++


#include<stdio.h>
#include<conio.h>
int pangkat (int x, int y);
main()
{
int x,y;
printf("Masukan Bilangan Yang Akan Dipangkatkan= ");
scanf("%d", &x);
printf("\nPangkat Bilangan= ");
scanf("%d", &y);
printf("\nHasil Bilangan %d Pangkat %d adalah %d", x, y, pangkat(x,y));
getch();
return 0;
}
int pangkat (int x, int y)
{
            if (y==0){
                        return 1;
            }else{
                        return x*pangkat (x,y-1);
            }
}

Pembahasaan
Program ini yaitu untuk menampilkan hasil perpangkatan dari dua bilangan yang diinputkan, yaitu bilangan yang akan dipangkatkan dan berapa pangkat bilangan yang diinginkan.
int pangkat (int x, int y); merupakan syntax yang berupa fungsi untuk hasil output akhir. Dan maksud dari x dan y yaitu merupakan variabelnya.
printf("\nHasil Bilangan %d Pangkat %d adalah %d", x, y, pangkat(x,y)); merupkan penggalan sytax yang berupa rumus atau proses program tersebut. Yang nantinya akan menjai hasil output dan variabel x dan y di simpan didalamnya.

int pangkat (int x, int y)
{
      if(y==0){
      return 1;
      }else{
      return x*pangkat(x,y-1);
}

Penggalan syntax diatas adalah fungsi pangkat dengan variabel int x, int y (if(y==0)) dan dibaca jika y sama dengan 0, maka program akan menjalankan return 1 yaitu fungsi utama dalam program, bertujuan untuk mengembalikan nilai 1, tetapi jika kondisi pertamanya if(y==0) tidak terpenuhi atau bernilai salah, misalnya y > 10 atau dibaca y lebih besar dari 10.
Maka program tidak akan menjalankan perintah yang pertama dan akan di jalankan oleh else yang akan menjalankan pernyataan ke-2 yaitu return x*pangkat(x,y-1);


Hasil Runing program



PRAKTIKUM 2
  
Study Kasus
Bilangan yang ada merupakan runtutan jumlah dari bilangan sbelumnya, dengan demikian kita dapat mengetahui deret bilangan sebelumnya dengan melakukan faktorisasi dari bilangan tersebut, hasil dari penjumlahaan deret bilangan tersebut dapat di lakukan dengan sebuah faktorial.
Contoh : 4 difaktorialkan (4!) => 4 3 2 1 : (hasil kali 4!) = 24


Script Program menggunakan C/C++ 


#include<iostream.h>
int factorial (int a)
{
if (a>0){
cout<<a<<" ";
return (a*factorial(a-1));
}
else
return 1;
}
int main()
{
int a;
int factorial(int a);

cout<<"Program Menampilkan Deret Nilai Faktorial"<<endl;
cout<<"Masukan Nilai Faktorial: ";
cin>>a;
cout<<endl;
cout<<"\n\nRekursif-> Hasil Perkalian Semua Nilai dari "<<a<<"!="<<factorial (a);

return 0;
}


Pembahasaan 
Program ini merupakan program yang akan menghasilkan nilai factorial. Dengan menginput beberapa nilai yang akan difaktorialkan, dengan itu akan menghasilkan deretan bilangan dari factorial nilai yang diinputkan.
int factorial (int a)
Merupakan sebuah fungsi dari program ini, yang berarti int a adalah bilangan yang akan difaktorialkan.

{
      if(a>0){
                  cout<<a<<" ";
                  return(a*factorial(a-1));
      }
      else
      return 1;
}

Merupakan penggalan syntax yang jika a lebih dari 0 (if(a>0)) yang akan dihitung dengan rumus return(a*factorial(a-1)); maka akan diketahui berapa deret bilangannya.
Sedangkan jika kondisi pertama yaitu if(a>0) bernilai salah maka else akan melakukan pernyataan ke-2 yaitu return 1 (kembali ke nilai 1).

int main()
{
      int a;
      int factorial(int a);
      cout<<"Program Menampilkan Deret Nilai Faktorial"<<endl;
      cout<<"Masukan Nilai Faktorial : ";
      cin>>a;
      cout<<endl;
      cout<<"\n\nRekursif -> Hasil Perkalian semua nilai dari "<<a<<"! = "<<factorial(a);

      return 0;
}

Fungsi dari endl yaitu untuk membuat baris baru.

cout<<"\n\nRekursif -> Hasil Perkalian semua nilai dari "<<a<<"! = "<<factorial(a);

Maka kita akan mengetahui berapa deret bilangan factorial dari nilai/angka yang kita masukan.



Hasil Runing program




PRAKTIKUM 3

Script Program menggunakan C/C++

#include<iostream.h>
#include<conio.h>
int fibo (int i)
{
if (i==0)
return 0;
else if(i==1)
return 1;
else
//Fungsi Rekursif
return fibo (i-1)+fibo(i-2);
}
int main()
{
int bil, i;

cout<<"\tFungsi Rekursif Bilangan Fibonacci"<<endl;
cout<<"\t=================================="<<endl;
cout<<"\nMasukan Bilangan: ";
cin>>bil;
//Pemanggilan Nilai Fibonacci
for (i=1; i<=bil; i++)
//Pemanggilan Fungsi
cout<<" "<<fibo(i);
cout<<"\nFibonacci("<<fibo(bil);

getche();
return 0;
}

Pembahasaan
Program ini yaitu program yang akan menampilkan fungsi rekursif dari bilangan Fibonacci. Bilangan Fibonanci adalah bilangan yang melakukan penambahan terhadap dirinya sendiri dan nilai penjumlahan dari bilangan pada dirinya yang sebelumnya.
int fibo(int i)
{
      if(i==0)
      return 0;
      else if(i==1)
      return 1;
      else
      //fungsi rekursif
      return fibo(i-1)+fibo(i-2);
}
Script ini adalah fungsi fibo dengan menggunakan tipe data integer untuk variabel i. Pada program ini juga menggunakan stuktur IF-ELSE. Jika i sama dengan 0 (if(i==0) maka pernyataan yang akan dijalankan yaitu return 0 dimana return 0 ini mengembalikan nilai 0, namun jika kondisi bernilai salah maka else akan menjalankan kondisi ke-2.
cout<<" "<<fibo(i); 
Merupakan fungsi fibo dengan variabel i. Untuk pemanggilan fungsi untuk mencari bilangan fibonanci itu sendiri. 
for(i=1; i<=bil; i++)
i sebagai nilai awal adalah 1, i<=bil merupakan pembatas nilai akhir, sedangkan i++ itu adalah dimana nilai i akan ditambah sampai nilai i itu terpenuhi sampai batas akhir nilai i.

Hasil Runing program



LATIHAN 1

Study Kasus
Program berikut ini berfungsi untuk membalikan urutan deret bilangan yang diinput menggunakan fungsi rekursif.
Contoh : 12345678 -> 87654321

Script Program menggunakan C/C++

#include<stdio.h>
#include<conio.h>
#define MAX 100
void rekursif_angka_terbalik(int);
main()
{
int i,j,jml= 0;
char bil[MAX];

printf("\nProgram Pembalik Angka");
printf("\n");
printf("\nMasukan bilangan yang akan dibalik kawan= ");
gets(bil);
for (i=0; bil[i]; i++)
jml= jml++;
printf("\n");
printf("Maka hasilnya adalah= ");
for(j= jml-1; j>=0; j--)
printf("%c", bil[j]);
printf("\n");
getch();
return 0;
}

Pembahasaan
Program ini yaitu program pembalik angka. Apabila memasukan beberapa nilai maka nilai itu akan langsung dibalik.
Statemen #define MAX 100 (maksimal diisi 100). Untuk mensubsitusikan suatu teks dalam program.
void rekursif_angka_terbalik(int);
Merupakan fungsi rekursif untuk angka terbalik.
for(j= jml-1; j>=0; j--)
Intruksi for yaitu untuk mengetahui secara pasti banyaknya pengulangan yang akan dilakukan.


Hasil Runing program



LATIHAN 2
Study Kasus
Deret fibonanci adalah deret unik yang dapat dirumuskan dalam rumus matematika sederhana bagaimana membuat menampilkan deret fibonanci dengan menggunakan batasan akhir dari sebuah angka fibonanci dengan menggunakan statement #define variabel.

Script Program menggunakan C/C++
#include <iostream.h>
#define MAX 10
long fibo[MAX];
int i,j, suku, a, b, c;
int main()
{
cout<<"Membuat Deret Fibonacci\n";
for(int i=0; i<MAX; i++)
{
cout<<"Masukkan nilai suku ke-: ";cin>>suku;
}
cout<<"Bilangannya adalah: \n";
a=0;b=1;
cout<<a<<endl<<b<<endl;

    for(int j=1; j<suku; j++)
    {
    c = a + b;
    a = b;
    b = c;

    cout<<c<<endl;
    }
    return 0;
    }

Pembahasaan
Program yaitu program untuk membuat Deret Bilangan Fibonanci dengan menggunakan fungsi rekursi. Menggunakan rumus  :
for(int j=1; j<suku; j++)
{
c = a + b; a = b; b = c; cout<<c<<endl;
}

Program ini menggunakan instruksi perulangan FOR, digunakan untuk mengetahui secara pasti banyaknya pengulangan yang akan dilakukan.
for(int i=0; i<MAX; i++)
i sebagai nilai awal bernilai 0,i<MAX merupakan pembatas nilai akhir. Sedangkan i++ itu adalah dimana nilai i akan ditambah sampai nilai i itu terpenuhi sampai batas akhir nilai i.


Hasil Runing program



LATIHAN 3

Script Program menggunakan C/C++

#include<stdio.h>
#include<conio.h>
int pangkat (int x, int y);
main()
{
int x,y;
printf("Masukan Bilangan Yang Akan Dipangkatkan= ");
scanf("%d", &x);
printf("\nPangkat Bilangan= ");
scanf("%d", &y);
printf("\nHasil Bilangan %d Pangkat %d adalah %d", x, y, pangkat(x,y));
getch();
return 0;
}
int pangkat (int x, int y)
{
                if (y==0){
                                return 1;
                }else{
                                return x*pangkat (x,y-1);
                }
}




















Pembahasan
Program ini yaitu untuk menampilkan perpangkatan dengan bilangan dasar yang akan dipangkatkan dan menentukan pangkat yang akan diterapkan pada bilangan dasar dengan menggunakan Fungsi Rekursi.


int pangkat (int x, int y)
{
            if(y==0){
            return 1;
            }else{
            return x*pangkat(x,y-1);
}
Apabila 0 (if(y==0)) maka program akan menjalankan return 1 yaitu mengembalikan nilai ke-1, tetapi jika kondisi pertama yaitu if(y==0) tidak terpenuhi atau bernilai salah, maka program akan menjalankan else yang akan menjalankan pernyataan ke-2 yaitu return x*pangkat(x,y-1);


Hasil Runing program



LINK POST TEST

Post Test 1

Post Test 2

Post Test 3

LAPORAN PRAKTIKUM STRUKTUR DATA MODUL 2

Kamis, 06 April 2017

LAPORAN PRAKTIKUM
MODUL 2
STUKTUR DATA
FUNGSI / FUNCTION C/C++
Diajukan untuk memenuhi tugas sebagai bahan praktikum
Dosen : Endra Suseno, M.Kom


Disusun oleh :
Egi Legitasari
20160910045
Sistem informasi A 2016

FAKULTAS ILMU KOMPUTER
UNIVERSITAS KUNINGAN

2016



PRAKTIKUM 1

Study kasus

Membuat program yang dapat melakukan operasi dua operator penjumlahan dan perkalian dengan masukan hanya dua buah variabel tampa ada nilai variabel yang dipindahkan ke variabel baru, dan ditempatkan pada dua variabel keluaran.

Script Program Menggunakan c++

#include <iostream.h>
#include <conio.h>
int tambah (int a, int b)
{
int hasil1; hasil1=
a+b; return hasil1;}
int kali (int a, int b)
{
int hasil2;
hasil2= a*b; return
hasil2;} void main()
{
int hasil1, hasil2, a, b;
cout<<"Nlai a = "; cin>>a;
cout<<"Nilai b = "; cin>>b;
hasil1=tambah(a,b);
cout<<"Hasil Tambah : "<<hasil1<<endl;
getch(); hasil2=kali(a,b);
cout<<"Hasil Kali : "<<hasil2<<endl; getch();

Pembahasan
Program ini yaitu untuk menjalankan operasi penjumlahan dan perkalian dengan menginputkan sebuah nilai. Maka untuk melakukan program degan hasil penjumlahan, maka rumus nya sebagai berikut.


{
 int hasil1;
 hasil1 = a+b;
 return hasil1;
}

Rumus di atas merupakan fungsi dari operasi penjumlahan, dimana hasil dari penjumlahan tersebut akan di simpan di variabel hasil1.

{
 int hasil2;
 hasil2= a*b;
 return hasil2;

Fungsi ini merupakan operasi perkalian dan hasilnya akan di simpan di variabel hasil2.


Hasil Runing program





PRAKTIKUM 2

Study Kasus

Terdapat sebuah balok dengan ukuran yang belum ditentukan, yaitu panjang, lebar dan tinggi, bagaimana membuat program yang dapat menghitung luas balok dan volumenya dengan mengunakan function.

Script Program Menggunakan c++

#include<iostream.h>
#include<conio.h>
int volume(int l)
{
int t;
cout<<"Masukan Nilai Tinggi Balok  : "; cin>>t;
l=l*t;
return l;
}
int luas(int p, int l)
{
int x;
x=p*l;
cout<<"Tampilkan Nilai Luas Balok  : "<<x<<endl;
volume(x);
return x;
}
void main ()
{
int p,l,j;
cout<<"Masukan Nilai Panjang Balok : "; cin>>p; endl;
cout<<"Masukan Nilai Lebar Balok   : "; cin>>l; endl;
j=luas(p,l);
cout<<"\nVolume balok adalah\t    : "<<j<<endl;
getch();
}

Pembahasan 
Program ini yaitu untuk menghitung luas dan volume dengan menghitung panjang, lebar, dan tinggi menggunakan fungction.
Yang harus di lakukan yaitu dengan menggunakan rumus yang pertama untuk mencari luas balok (panjang dikali lebar x=p*l) dan rumus yang kedua yaitu untuk mencari nilai volume balok (l=1*t).



Hasil Runing program






PRAKTIKUM 3


Study Kasus

Sebuah kendaraan roda empat melaju dengan kecepatan maksimum 85 KM/jam selama 3 jam dengan demikian total jarak yang ditempuh sudah dapat diketahui yaitu 85 KM/Jam X 3 jam = 255 KM, namun bila mana kendaraan tersebut melaju dengan kecepatan yang tidak konstan dengan ketentuan di 1 jam pertama melaju dengan kecepatan 72% dan pada jam ke dua hanya melaju 35% dari kecepatan maksimum dan pada jam ke tiga melaju 21% dari kecepatan maksimum berapakah jarak yang ditempuh oleh kendaraan tersebut.

Script Program Menggunakan c++

#include<stdio.h>
#include<iostream.h>
#include<conio.h>
float b = 85;
float pertama (float a)
{ float km1;
km1 = (a / 100) * b;
return km1;
}
float kedua (float c)
{ float km2;
km2 = (c / 100) * b;
return km2;
}
float ketiga (float d)
{ float km3;
km3 = (d / 100) * b;
return km3;
}
main() {
float a,c,d,h;
printf("Mengitung Jarak Tempuh Kendaraan dalam waktu dinamis 3 Jam\n");
cout<<"\nMasukan Kecepatan pada Jam Pertama %: "; cin>>a;
cout<<"\nMasukan Kecepatan pada Jam Kedua % : "; cin>>c;
cout<<"\nMasukan Kecepatan pada Jam Ketiga % : "; cin>>d;
h = pertama(a) + kedua(c) + ketiga(d);
printf("\nJarak yang ditempuh kendaraan tersebut sejauh %.2f Kilometer",h);
getch();
}

Pembahasan
Program ini yaitu untuk mencari jarak yang ditempuh oleh suatu kendaraan dalam waktu 3 jam, dengan menghitung kecepatan pertama, kedua, dan ketiga.
program ini menggunakan 3 file header, yaitu stdio, iostream, conio dan tipe data float.
float b = 85;  = berarti tipe data float dengan variabel b dan variabel b tersebut bernilai 85.
float pertama(float a)
{
float km1;
km1 = (a / 100) * b;
return km1;
}  =
Pada fungction pertama yaitu untuk menentukan kecepatan pada jam pertama dalam %. Menggunkan tipe data float dan variabel km1. Dan menggunakan rumus km1 = (a / 100) * b;


Hasil runing program





LATIHAN 1

Study Kasus

Seorang tukang cat tembok mempunyai ukuran dalam pengecatan yang terbagi dalam 3 kategori kualitas yaitu kualitas tinggi, kualitas sedang dan kualitas rendah. Untuk kualitas tingggi 5 Kg cat tembok dapat menutupi bidang dengan baik seluas 3 X 4 m2 atau seluas 12 m2 dan kualitas sedang 5 Kg cat tembok dapat menutupi bidang seluas 4 X 5 m2 atau seluas 20 m2 serta kualitas rendah 5 Kg cat tembok dapat menutupi seluas 6 X 11 m2 atau seluas 66 m2.

Script Program Menggunakan c++

#include<stdio.h>
#include<iostream.h>
#include<conio.h>
#define kilo 5000;
float tinggi(float l_bidang)
{
 float temp1,nilai;
 nilai = (l_bidang / 12) * kilo;
 temp1 = nilai / 1000;
 return temp1;
}

float sedang(float l_bidang)
{
 float temp2,nilai;
 nilai = (l_bidang / 20) * kilo;
 temp2 = nilai / 1000;
 return temp2;
}

float rendah(float l_bidang)
{
 float temp3, nilai;
 nilai = (l_bidang / 66) * kilo;
 temp3 = nilai / 1000;
 return temp3;
}
int main()
{
 int i,pilih;
 float l_bidang, hasil;
 printf(" PROGRAM PERHITUNGAN JUMLAH CAT \n");
 for (i= 0;i < 33;i++)printf("=");printf("\n");
 printf(" 1.Kualitas Tinggi\n 2. Kualitas Sedang\n 3. Kualitas Rendah\n");
 printf("Masukan Nomor Pilihan Kualitas :");
 scanf("%d",&pilih);
 switch(pilih)
{
 case 1:
{
 cout<<"Kualitas Tinggi"<<endl;
 cout<<"Luas Bidang\t= ";
 cin>>l_bidang;
 hasil = tinggi(l_bidang);
 printf("Jumlah cat yang dibutuhkan = %.1f Kg",hasil);
 break;
}
 case 2:
{
 cout<<"Kualitas Sedang"<<endl;
 cout<<"Luas Bidang\t= ";
 cin>>l_bidang;
 hasil = sedang(l_bidang);
 printf("Jumlah cat yang dibutuhkan = %.1f Kg",hasil);
 break;
}
 case 3:
{
 cout<<"Kualitas Sedang"<<endl;
 cout<<"LuasBidang\t= ";
 cin>>l_bidang;
 hasil = rendah(l_bidang);
 printf("Jumlah cat yang dibutuhkan = %.1f Kg",hasil);
 break;
}
   default : printf ("Yang anda masukan salah : ");

}
return 0;
getch();
}


Pembahasan

Program ini yaitu untuk menghitung perhitungan jumlah cat yang digunakan sesuai dengan luas bidang yang sudah ada. Program ini menggunakan instruksi switch-case diman
instruksi ini dgunakan untuk memilih sejumlah pilihan dari sejumlah pilihan yang terlibat, yaitu untuk memilih pilihan kualitas cat yang akan digunakan sesuai dengan luas bidangnya.
Penggalan script nya adalah :

switch(pilih)
{
 case 1:
{
 cout<<"KualitasTinggi"<<endl;
 cout<<"LuasBidang\t= ";
 cin>>l_bidang;
 hasil = tinggi(l_bidang);
 printf("Jumlah cat yang dibutuhkan = %.1f Kg",hasil);
 break;
}                  

Apabila memilih case 1 makan akan keluar pilhan yang ada didalam case 1, begitupun pada case-case selanjutnya. Dan untuk di akhir script bisa menggunakan
fungsi default, yang berfungsi apabila pilihan yang tidak tersedia.
Default : printf("Yang anda masukan salah"); maka default berfungsi apabila memilih pilihan yang tidak terdapat di dalam pilihan, maka fungsi default ini akan dijalankan.
Terdapat juga break; berfungsi untuk berhenti ketika operasi case tersebut sudah selesai. Berlaku untuk case 2 dan case 3, operasinya sama dengan case 1.


Hasil runing program







LATIHAN 2

Study Kasus

No
Harga BBM
Jarak
Tarif
1
RP. 6.700
800 Km
Rp. 6.700.000
2
Rp. 6.700
600 Km
Rp. 5.900.000
3
Rp. 6.700
400 Km
Rp. 5.000.000
4
Rp. 6.700
200 Km
Rp. 4.700.000

Tabel diatas menujukan biaya pengiriman barang dengan menggunakan kendaraan truk dengan asumsi bahwa konsumsi BBM kendaraan 1:3 berapakah rasio BBM terhadap tarif tersebut dalam prosentase (%) yang diinput jarak dan tarif.

Script Program Menggunakan c++

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
long rasio(float tarif, float km)
{
 float olah, pros;
 olah = 6700 * (km / 3);
 pros = (olah / tarif) * 100;
 return pros;
}

int main()
{
 float km,hasil,tarif;
 cout<<"Program Perhitungan Rasio Tarif"<<endl;
 cout<<"Masukan Jarak Tempuh KM = ";
 cin>>km;
 cout<<"Masukan Tarif : ";
 cin>>tarif;
 hasil = rasio(tarif, km);
 printf("Presentase rasio BBM dan Tarif adalah :%.2f%", hasil);
 getch();
 return 0;
}

Pembahasan

Program ini yaitu untuk mencari presentase rasio BBM terhadap tarif.
Rumusnya :
olah = 6700 * (km / 3);
pros = (olah / tarif) * 100;
Dan untuk dapat mengetahui hasil akhirnya dengan cara penginputan jarak dan harga BBM nya, dan pemrosesan kembali function pada syntax ini :

int main()
{
float km,hasil,tarif;
cout<<"Program Perhitungan Rasio Tarif"<<endl;
cout<<"Masukan Jarak Tempuh KM = ";
cin>>km;
cout<<"Masukan Tarif : ";
cin>>tarif;
hasil = rasio(tarif, km);
printf("Presentase rasio BBM dan Tarif adalah :%.2f%", hasil);
return 0;
}

Maka function akan berkerja sesuai dengan rumus yang sudah di tulis, dan hasil nya akan terlihat.

Hasil runing program


 
FREE BLOGGER TEMPLATE BY DESIGNER BLOGS