Anda di halaman 1dari 22

HASIL PRAKTIKUM

1. Latihan 1
a. Algorithma
 mulai
 Inisialisasi nilai mak
 Isi array pertama dan kedua
 Isi array seterusnya dengan menggunakan perulangan
 Tampilkan semua array
 Selesai
b. Source code
#include<iostream.h>

#define mak 10 //pendefinisian konstanta mak

int fibo[mak]; //inisialisasi array fibo

void main()
{
int i;

fibo[0]=1; //isi array pertama


fibo[1]=1; //isi array kedua

for(i=2;i<mak;i++) //perulangan untuk mengisi array ke-3 sampai ke-10


fibo[i]=fibo[i-2]+fibo[i-1];

cout<<mak<<" bilangan fibonacci pertama adalah "<<endl;


for(i=0;i<mak;i++) //perulangan untuk menampilkan semua array fibo
cout<<fibo[i]<<" ";
}
c. Print Screen
2. Latihan 2
a. Algorithma
 Mulai
 Inisialisasi y dan x
 Deklarasi pointer *px
 Pengisian alamat pointer px
 Pengisian variable y
 Tampilkan semua variable dan pointer
 Selesai
b. Source code
#include<iostream.h>

void main()
{
int y, x=87; // inisialisasi y xan x
int *px; //definisi pointer *px

px=&x; //pemberian pointer *px dengan alamat x


y=*px; //pemberian nilai y dengan pointer *px

cout<<"Alamat x = "<<&x<<endl;
cout<<"isi px = "<<*px<<endl;
cout<<"Isi x = "<<x<<endl;
cout<<"Nilai yang ditunjuk oleh px = "<<*px<<endl;
cout<<"nilai y "<<y<<endl;
}
c. Print screen
3. Latihan 3
a. Algorithma
 Mulai
 Inisialisasi variable d dan pointer pd
 Tampilkan d
 Pemberian alamat pointer pd dan penambahan nilai
 Tampilkan pointer pd
 selesai
b. Source code
#include<stdio.h>

void main()
{
float d=54.5f,*pd; //inisialisasi variabel d dan pointer pd
printf("Isi d mula-mula = %g\n",d);

pd=&d; //pemberian alamat pointer pd


*pd+=10; //penambahan nilai pada pointer pd
printf("Isi d sekarang = %g\n",d);
}
c. Print screen
4. Latihan 4
a. Algorithma
 Mulai
 Inisialisasi kostanta mass
 Deklarasi pointer perfibo
 Pengalokasian memory dg ukuran integer*mas
 Pengisian memory pertama dg 1
 Pengisian memory kedua dg 1
 Perulangan untuk mengisi memory selanjutnya
 Perulangan untuk menampilkan isi dari memory yang telah dialokasikan
 Selesai
b. Source code
#include<iostream.h>
#include<stdlib.h>

#define mas 10 //inisialisasi mas

int *perfibo; // deklarasi pointer

void main()
{
int i;
perfibo=(int *) malloc (mas * sizeof(int)); //mengalokasikan memory dg
ukuran integer*mas
*(perfibo+0)=1; //pengisian memory pertama dg 1
*(perfibo+1)=1; //pengisian memory kedua denan 1
for(i=2;i<mas;i++) //perulangan untuk mengisi memory selanjutnya
*(perfibo+i)=*(perfibo+(i-2))+*(perfibo+(i-1));
cout<<i<<" bilangan fibonacci pertama adalah "<<endl;
for(i=0;i<mas;i++) //perulangan untuk menampilkan isi dari memory yang
telah dialokasikan
cout<<*(perfibo+i)<<" ";
}
c. Print screen
5. Latihan 5
a. Algorithma
 Mulai
 Deklarasi struktur polar dank artesian
 Input nilai r dan alpha dari struktur polar
 Pemberian nilai x dan y dari struktur kartesian
 Tampilkan struktur polar dank artesian
 selesai
b. Source code
#include<iostream.h>
#include<math.h>

struct polar{ //pendeklarasian struktur polar


double r;
double alpha;
}pl;
struct kartesian{ //pendeklarasian struktur kartesian
double x;
double y;
}kar;

void main()
{
cout<<"Masukkan nilai r untuk koordinat polar : ";cin>>pl.r; //input r
dari struktur polar
cout<<"Masukkan nilai alpha untuk koordinat polar ";cin>>pl.alpha;
//input alpha dari struktur polar
kar.x=pl.r*cos(pl.alpha); //memberi nilai x dari struktur kartesian
kar.y=pl.r*cos(pl.alpha); //memberi nilai y dari struktur kartesian
cout<<"Nilai koordinat kartesian untuk r="<<pl.r<<" dan
alpha="<<pl.alpha<<endl<<" adalah ("<<kar.x<<","<<kar.y<<").";
}
c. Print screen
6. Latihan 6
a. Algorithma
 Mulai
 Deklarasi struktur data mahasiswa
 Input data mahasiswa
 Jika sudah selesai tampilkan data mahasiswa
 Dalam menampilkan data mahasiswa jika data[].nilai tidak lebih dari 0 maka
data tidak akan ditampilkan.
 Selesai
b. Source code
#include<iostream.h>
#include<string.h>
#include<stdio.h>
struct dtnilai //deklarasi struktur
{
char nrp[10];
char nama[20];
double nilai;
};
struct dtnilai data[10];
int j=0;
void tambahnilai()
{
char jawab[2];
while(1)
{
fflush(stdin);
cout<<"NRP : ";cin>>data[j].nrp;
cout<<"Nama : ";cin>>data[j].nama;
cout<<"Nilai test : ";cin>>data[j].nilai;

cout<<endl<<"Ada data lagi(y/t)?";cin>>jawab;

if((strcmp(jawab,"Y")==0)||(strcmp(jawab,"y")==0))
{
j++;
continue;
}
else if((strcmp(jawab,"T")==0)||(strcmp(jawab,"t")==0))
break;
}
}
void tampil() //fungsi untuk menampilkan data dari mahasiswa
{
int i=0;

cout<<"data mahasiswa yang telah diinputkan adalah:"<<endl;


cout<<"NRP\tNama\tNilai"<<endl;

while(data[i].nilai>0)
{
cout<<data[i].nrp<<"\t"<<data[i].nama<<"\t"<<data[i].nilai<<endl;
i++;
}
}
void main()
{
tambahnilai();
tampil();
}
c. Print screen
7. Tugas rumah 1
a. Algorithma
 Mulai
 Deklarasi struktur data, fungsihasil, dan fungsihasilkali
 Deklarasi fungsi
 Jalankan fungsi inputfungsi()
 Panggil fungsi hapusfungsihasil()
 Masukkan pilihan operasi
 Jika op==’+’ panggil fungsi penambahan()
 Jika op==’-‘ panggil fungsi pengurangan()
 Jika op==’*’ panggil fungsi perkalian()
 Jika op tidak sama engan diatas maka panggil fungsi deferensial()
b. Source code
#include<iostream.h>
#include<stdlib.h>
#include<conio.h>

struct data //struktur untuk menyimpan fungsi inputan


{
int pangkat[20];
char variabel[20];
int konstanta[20];
char operatorr[20];
}fungsi[10];

struct datahasil //struktur untuk menyimpan hasil dari penambahan,


pengurangan, dan deferensial
{
int pangkat[20];
char variabel[20];
int konstanta[20];
}fungsihasil;

struct datahasilkali //struktur untuk menyimpan hasil kali


{
int pangkat1[50];
int pangkat2[50];
char variabel1[50];
char variabel2[50];
int konstanta[50];
}fungsihasilkali;

//deklarasi fungsi =======================


void tampilhasil();
void tampilfungsi();
void hapusfungsihasil();
void inputfungsi();
void penambahan(int, int);
void pengurangan(int, int);
void perkalian(int, int);
void deferensial(int);

void main()
{
char ulangmain,ulangop;
do
{
system("cls");
int a,b;
char op;
inputfungsi(); //panggil input fungsi
system("cls");
do
{
system("cls");
hapusfungsihasil(); //panggil fungsi
tampilfungsi(); //panggil fungsi
cout<<endl<<"contoh input operasi polinom : "<<endl;
cout<<"1. (fungsi) operator (fungsi) "<<endl;
cout<<" -->1 + 2"<<endl;
cout<<" -->1 - 2"<<endl;
cout<<" -->1 * 2"<<endl;
cout<<"2. 0 (deferensial) fungsi"<<endl;
cout<<" -->0 d 1"<<endl;
cout<<" -->0 d 5"<<endl<<endl;
cout<<"Masukkan operasi polinom : ";
cin>>a>>op>>b;
if(op=='+')
{
penambahan(a-1,b-1);
}
else if(op=='-')
{
pengurangan(a-1,b-1);
}
else if(op=='*')
{
perkalian(a-1,b-1);
}
else
{
deferensial(b-1);
}
cout<<"Apakah anda ingin melakukan operasi polinom lagi?";
cin>>ulangop;
}
while(ulangop=='Y' || ulangop=='y');
cout<<"Apakah anda ingin memasukkan fungsi lagi?";
cin>>ulangmain;
}
while(ulangmain=='Y' || ulangmain=='y');
}

void pengurangan(int a, int b)//fungsi untuk pengurangan aritmatika polinom


{
int i,j,k=0,indik=0,ii,indika=0,indiki=0;
for(ii=0;ii<20;ii++)
{
if(fungsi[a].konstanta[ii]>0)
{
indiki++;
}
if(fungsi[b].konstanta[ii]>0)
{
indik++;
}
}
//deteksi a ke b================================
for(i=0;i<20;i++)
{
if(fungsi[a].konstanta[i]>0)
{
indika=indik;
for(j=0;j<20;j++)
{
if(fungsi[b].konstanta[j]>0)
{
if(fungsi[a].pangkat[i]==fungsi[b].pangkat[j]
&& fungsi[a].variabel[i]==fungsi[b].variabel[j])
{
fungsihasil.konstanta[k]=fungsi[a].konstanta[i]-fungsi[b].konstanta[j];
fungsihasil.variabel[k]=fungsi[a].variabel[i];
fungsihasil.pangkat[k]=fungsi[a].pangkat[i];
k++;
}
else
{
indika--;
}
}
}
if(indika==0)
{
fungsihasil.konstanta[k]=fungsi[a].konstanta[i];
fungsihasil.variabel[k]=fungsi[a].variabel[i];
fungsihasil.pangkat[k]=fungsi[a].pangkat[i];
k++;
}
}
}
//deteksi b ke a================
for(i=0;i<20;i++)
{
if(fungsi[b].konstanta[i]>0)
{
indika=indiki;
for(j=0;j<20;j++)
{
if(fungsi[a].konstanta[j]>0)
{
if(fungsi[b].pangkat[i]==fungsi[a].pangkat[j]
&& fungsi[b].variabel[i]==fungsi[a].variabel[j])
{
continue;
}
else
{
indika--;
}
}
}
if(indika==0)
{
fungsihasil.konstanta[k]=fungsi[b].konstanta[i];
fungsihasil.variabel[k]=fungsi[b].variabel[i];
fungsihasil.pangkat[k]=fungsi[b].pangkat[i];
k++;
}
}
}
tampilhasil();
}

void penambahan(int a, int b) //fungsi untuk menambahkan aritmatika polinom


{
int i,j,k=0,indik=0,ii,indika=0,indiki=0;
for(ii=0;ii<20;ii++)
{
if(fungsi[a].konstanta[ii]>0)
{
indiki++;
}
if(fungsi[b].konstanta[ii]>0)
{
indik++;
}
}
//#deteksi a ke b================================
for(i=0;i<20;i++)
{
if(fungsi[a].konstanta[i]>0)
{
indika=indik;
for(j=0;j<20;j++)
{
if(fungsi[b].konstanta[j]>0)
{
if(fungsi[a].pangkat[i]==fungsi[b].pangkat[j]
&& fungsi[a].variabel[i]==fungsi[b].variabel[j])
{
fungsihasil.konstanta[k]=fungsi[a].konstanta[i]
+fungsi[b].konstanta[j];
fungsihasil.variabel[k]=fungsi[a].variabel[i];
fungsihasil.pangkat[k]=fungsi[a].pangkat[i];
k++;
}
else
{
indika--;
}
}
}
if(indika==0)
{
fungsihasil.konstanta[k]=fungsi[a].konstanta[i];
fungsihasil.variabel[k]=fungsi[a].variabel[i];
fungsihasil.pangkat[k]=fungsi[a].pangkat[i];
k++;
}
}
}
//deteksi b ke a================
for(i=0;i<20;i++)
{
if(fungsi[b].konstanta[i]>0)
{
indika=indiki;
for(j=0;j<20;j++)
{
if(fungsi[a].konstanta[j]>0)
{
if(fungsi[b].pangkat[i]==fungsi[a].pangkat[j]
&& fungsi[b].variabel[i]==fungsi[a].variabel[j])
{
continue;
}
else
{
indika--;
}
}
}
if(indika==0)
{
fungsihasil.konstanta[k]=fungsi[b].konstanta[i];
fungsihasil.variabel[k]=fungsi[b].variabel[i];
fungsihasil.pangkat[k]=fungsi[b].pangkat[i];
k++;
}
}
}
tampilhasil();
}

void perkalian(int a, int b) //fungsi untuk perkalian aritmatika polinom


{
int i=0,ii,k=0,j,indiki=0;
for(ii=0;ii<20;ii++)
{
if(fungsi[a].konstanta[ii]>0)
{
indiki++;
}
}
for(ii=0;ii<50;ii++)
{
fungsihasilkali.pangkat1[ii]=0;
fungsihasilkali.pangkat2[ii]=0;
fungsihasilkali.variabel1[ii]='0';
fungsihasilkali.variabel2[ii]='0';
fungsihasilkali.konstanta[ii]=0;
}
while(fungsi[a].konstanta[i]>0)
{
j=0;
while(fungsi[b].konstanta[j]>0)
{
if(fungsi[a].variabel[i]==fungsi[b].variabel[j])
{
fungsihasilkali.konstanta[k]=fungsi[a].konstanta[i]*fungsi[b].konstanta[j];
fungsihasilkali.variabel1[k]=fungsi[a].variabel[i];
fungsihasilkali.variabel2[k]='0';
fungsihasilkali.pangkat1[k]=fungsi[a].pangkat[i]+fungsi[b].pangkat[j];
fungsihasilkali.pangkat2[k]=0;
}
else
{
fungsihasilkali.konstanta[k]=fungsi[a].konstanta[i]*fungsi[b].konstanta[j];
fungsihasilkali.variabel1[k]=fungsi[a].variabel[i];
fungsihasilkali.variabel2[k]=fungsi[b].variabel[j];
fungsihasilkali.pangkat1[k]=fungsi[a].pangkat[i];
fungsihasilkali.pangkat2[k]=fungsi[b].pangkat[j];
}
j++;
k++;
}
i++;
}
//tampilkan hasil kali ====================================
int c=0;
cout<<"Hasilnya adalah : "<<endl;
while(fungsihasilkali.konstanta[c]>0)
{
if(c>0 && fungsihasilkali.konstanta[c]>0)
{
cout<<"+";
}
cout<<" ";

cout<<fungsihasilkali.konstanta[c]<<fungsihasilkali.variabel1[c]<<fungsihasilkali.p
angkat1[c];
if(fungsihasilkali.variabel2[c]!='0')
{
cout<<fungsihasilkali.variabel2[c];
}
if(fungsihasilkali.pangkat2[c]>0)
{
cout<<fungsihasilkali.pangkat2[c];
}
cout<<" ";
c++;
}
cout<<endl;
}

void deferensial(int a) //fungsi untuk ddeferensial aritatika polinom


{
int i=0;
while(fungsi[a].konstanta[i]>0)
{
fungsihasil.konstanta[i]=fungsi[a].konstanta[i]*fungsi[a].pangkat[i];
fungsihasil.variabel[i]=fungsi[a].variabel[i];
fungsihasil.pangkat[i]=fungsi[a].pangkat[i]-1;
i++;
}
tampilhasil();
}
void inputfungsi() //fungsi untuk mengambil data dan memasukkan dalam
struktur
{
system("cls");
if(fungsi[0].pangkat[0]>0)
{
for(int a=0;a<10;a++)
{
for(int b=0;b<20;b++)
{
fungsi[a].konstanta[b]=0;
fungsi[a].operatorr[b]='0';
fungsi[a].pangkat[b]=0;
fungsi[a].variabel[b]='0';
}
}
}
int i,x,j;
cout<<endl<<"Berapakah fungsi yang ingin anda masukkan ? ";
cin>>x;
if(x<2)
{
cout<<"Anda harus memasukkan minimal 2 fungsi";
main();
}
for(j=0;j<x;j++)
{
cout<<"Masukkan fungsi "<<j+1<<"\t: ";
for(i=0;i<20;i++)
{
cin>>fungsi[j].konstanta[i];
cin>>fungsi[j].variabel[i];
cin>>fungsi[j].pangkat[i];
cin>>fungsi[j].operatorr[i];
if(fungsi[j].operatorr[i]=='.')
{
i=25;
}
}
}
}

void tampilfungsi() //fungsi untuk menampilkan hasil dari penjumlahan,


pengurangan, deferensial
{
int i,j=0;
while(fungsi[j].pangkat[0]>0)
{
cout<<"Fungsi "<<j+1<<"\t: ";
for(i=0;i<20;i++)
{
cout<<fungsi[j].konstanta[i];
if(fungsi[j].pangkat[i]>0)
{
cout<<fungsi[j].variabel[i];
cout<<fungsi[j].pangkat[i]<<" ";
}
if(fungsi[j].operatorr[i]!='.')
{
cout<<fungsi[j].operatorr[i]<<" ";
}
if(fungsi[j].operatorr[i]=='.')
{
i=25;
}
}
cout<<endl;
j++;
}
}

void hapusfungsihasil() //fungsi untuk mengosongkan struktur hasil


{
int i;
for(i=0;i<20;i++)
{
fungsihasil.konstanta[i]=0;
fungsihasil.variabel[i]='0';
fungsihasil.pangkat[i]=0;
}
}

void tampilhasil() //fungsi untuk menampilkan hasil


{
int j;
cout<<"Hasilnya adalah :"<<endl;
for(j=0;j<20;j++)
{
if(fungsihasil.konstanta[j]!=0)
{
if(fungsihasil.konstanta[j]>0 && j>0)
{
cout<<"+";
}
cout<<" ";
cout<<fungsihasil.konstanta[j];
if(fungsihasil.pangkat[j]>0)
{
cout<<fungsihasil.variabel[j]<<fungsihasil.pangkat[j];
}
cout<<" ";
}
}
cout<<endl;
}
c. Print screen
I. Input fungsi

II. Pilihan penambahan


IV. Pilihan perkalian

V. Pilihan deferensial

8. Tugas
rumah
2
a. Algorithma
 Mulai
 Deklarasi struktur data dan hasil
 Ambil inputan dari user
 Tentukan kondisi dari operasi yang akan dilakukan
 Jika + maka jiklahkan bilangan kompleksnya
 Jika – maka kurangkan bilangan kompleksnya
 Jika * maka kalikan bilangan kompleknya
 Jika / maka bagikan bilangan kompleksnya
 Tampilkan hasil
 Jika mengulang lagi kembali masukkan data
b. Source code
#include<iostream.h>
#include<stdlib.h>

struct data //deklarasi struktur data


{
float a[2];
float b[2];
char var[2];
char op[3];
}datainput;

struct hasil //deklarasi struktur hasil


{
float a;
float b;
char var;
}hasilop;

void tampil() //fungsi untuk menampilkan hasil operasi


{
cout<<"Hasilnya adalah : "<<endl;
cout<<hasilop.a<<" + "<<hasilop.b<<hasilop.var;
}

void main()
{
char ulang;
do
{
system("cls");
cout<<"Masukkan masukkan bilangan kompleksnya :"<<endl;
cin>>datainput.a[0]>>datainput.op[0]>>datainput.b[0]>>datainput.var[0]>>
datainput.op[1]>>datainput.a[1]>>datainput.op[2]>>datainput.b[1]>>datainp
ut.var[1]; //inputan user
if(datainput.var[0]==datainput.var[1]) // kondisi pemilihan operasi
{
if(datainput.op[1]=='+')
{
hasilop.a=datainput.a[0]+datainput.a[1];
hasilop.b=datainput.b[0]+datainput.b[1];
hasilop.var=datainput.var[0];
tampil();
}
else if(datainput.op[1]=='-')
{
cout<<"akur";
hasilop.a=datainput.a[0]-datainput.a[1];
hasilop.b=datainput.b[0]-datainput.b[1];
hasilop.var=datainput.var[0];
tampil();
}
else if(datainput.op[1]=='*')
{
hasilop.a=((datainput.a[0]*datainput.a[1])-(datainput.b[0]*datainput.b[1]));
hasilop.b=((datainput.a[0]*datainput.b[1])+(datainput.b[0]*datainput.a[1]));
hasilop.var=datainput.var[0];
tampil();
}
else
{
hasilop.a=((datainput.a[0]*datainput.a[1])+(datainput.b[0]*datainput.b[1]))/
((datainput.a[0]*datainput.a[0])+(datainput.b[0]*datainput.b[0]));
hasilop.b=((datainput.b[0]*datainput.a[1])-(datainput.a[0]*datainput.b[1]))/
((datainput.a[1]*datainput.a[1])+(datainput.b[1]*datainput.b[1]));
hasilop.var=datainput.var[0];
tampil();
}
}
else
{
cout<<"Maaf variabel yang anda masukkan tidak
sama."<<endl;
cout<<"Please insert same variabel.";
}
cout<<endl<<"Apakah anda ingin menghitung lagi ? ";cin>>ulang;
hasilop.a=0;
hasilop.b=0;
hasilop.var='0';
}
while(ulang=='Y'||ulang=='y');
}
c. Print screen
I. Penambahan

II. Pengurangan

III. Perkalian

IV. Pembagian

Anda mungkin juga menyukai