Oleh:
(140533602803)
Setiawan
(140533603042)
S1 PTI 2014 offering E
Perkalian
Input : integer positif n,w
Output : n X w
Algoritma perkalian :
Contoh kasus : a = 250, b = 16
Metode 1 : 250 * 16 = 250 + (250 * 15)
= 500 + (250 * 14)
=
= 4000 + (250 * 0)
Metode 2 :
250
16
1500
25
3. Pengenalan Array
Array adalah sekumpulan data homogen yang terorganisir dengan
ukuran atau jumlah elemen maksimumnya telah diketahui awal. Array
secara umum disimpan dalam memori komputer secara tertata dan teratur.
Deklasi array dapat didefinisikan sebagai berikut :
Int N[5]; artinya variabel N adalah sekumpulan data dengan jumlah
5 buah bilangan yang mempunyai integer. Pengaksesan langsung dapat
dilaksanakan pada operasi terhadap elemen di array. Dalam pengambilan
nilai di masing masing posisi elemen dapat dilakukan secara langsung dan
disimpan tanpa melewati posisi-posisi lain. Tipe operasi mempunyai 2
tipe, yaitu :
1. Operasi terhadap satu elemen/posisi dari array
2. Operasi terhadap array sebagai kesuluruhan
Dua operasi paling dasar terhadap satu elemen/posisi adalah
1. Penyimpanan nilai elemen ke posisi tertentu di array
2. Pengambilan nilai elemen dari posisi tertentu di array
Int *IntegerPointer;
IntegerPointer A, B;
Berarti kompiler C akan berisi nilai dari variable A dan B yang menunjuk
ke integer.
*A = 5;
Linked list adalah salah satu struktur data yang paling fundamental. Linked
list terdiri dari sejumlah kelompok elemen (linked ) dengan urutan tertentu.
Linked list sangat berguna untuk memelihara sekelompok data, semacam
array, tetapi linked list lebih menguntungkan dalam beberapa kasus. Linked
list lebih efisien dalam proses penyisipan (insertion ) dan penghapusan
(deletion ). Linked list juga menggunakan pengalokasian penyimpan secara
dinamis, dimana penyimpan dialokasikan pada saat waktu berjalan
(runtime).
(http://lecturer.eepis-its.edu/~entin/Struktur%20Data%20&
%20Algoritma/buku/Data%20Structure%20-%20Bab%201.pdf
diunduh
Mendeklarasikan Struktur
Penggunaan
array
pada
bilangan
fibonacci
Bahasa Pemrogramam
: C++
Compiler
Script program
#include <stdio.h>
#define MAX 10
int fibo[MAX];
int main()
{
int i;
fibo[1] = 1;
fibo[2] = 1;
for(i=3;i<=MAX;i++)
fibo[i]=fibo[i-2]+fibo[i-1];
printf("%d Bilangan Fibonaci Pertama adalah : \n",MAX);
for(i=1;i<=MAX;i++)
printf("%d ",fibo[i]);
}
Output Program :
Algoritma :
1. Algoritma Penggunaan array pada bilangan fibonacci(10)
2. Pre : 10 adalah nilai yang akan digunakan untuk menghitung deret bilangan
Fibonacci
3. Post : Menampilkan hasil perhitungan 10 bilangan awal deret fibonacci
4. Mendeklarasikan angka pertama dan kedua adalah 1 menggunakan array satu
dimensi dengan ketentuan :
fibo[1]=1;
fibo[2]=1;
Jika
syarat
terpenuhi
maka
dilakukan
perhitungan
dengan
rumus
fibo[i]=fibo[i-2]+fibo[i-1];
9.
pointer
Bahasa Pemrogramam
: C++
Compiler
Script program
#include <stdio.h>
int main()
{
int y, x = 87;
int *px;
px = &x;
y = *px;
printf("Alamat x = %p\n",&x);
printf("Isi px
= %p\n",px);
printf("Isi x
= %d\n",x);
Output Program :
= %d\n",y);
Algoritma :
1. Algoritma Program mengubah isi variabel melalui pointer(87)
2. Pre : 87 adalah isi dari variable
3. Post : Menampilkan perubahan isi variable melalui pointer
4. Membaca file header
5. Mendeklarasikan isi variable
int y, x = 87;
7. Mencetak hasil
printf("Alamat x
= %p\n", &x);
printf("Isi px
= %p\n", px);
printf("Isi x
= %d\n", x);
= %d\n", y);
menggunaan
pointer
adalah
untuk
mempersingkat
script
dan
suatu variabel
pointer.
Bahasa Pemrogramam
: C++
Compiler
Script program
#include <stdio.h>
int main()
{
float d = 54.5f, *pd;
printf("Isi d mula-mula = %g\n",d);
pd = &d;
*pd += 10;
printf("Isi d sekarang = %g\n",d);
}
Output Program :
Algoritma :
1. Algoritma Program mengakses dan mengubah isi suatu
variabel pointer(54.5)
11
7. Mencetak hasil
printf("Isi d sekarang = %g\n", d);
Deskripsi :
Program ini menggunakan file header <stdio.h> untuk mendeklarasikan
penginputan data baik secara manual atau sistematis, menggunakan printf.
Program ini menggunakan tipe data interger.Program ini menggunakan pointer
untuk menghitung nilai d.menggunakan rumus *pd+10 yang nantinya pada proses
hasil akhir akan ditambahkan 10 sehingga nilai langsung berubah sesuai hasil
perhitungan menggunakan rumus yang dipakai. Tujuan pengaplikasikan fungsi
pointer dalam script adalah untuk mempermudah dan mempersingkat script,
dalam satu baris dapat mempersingkat penggunaan rumus dan penentuan lokasi
pemanggilan fungsi.
Percobaan 4
Algoritma dan Struktur Data
Nama Program
Penggunaan
pointer
fibonacci.
Bahasa Pemrogramam
: C++
Compiler
Script program
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
12
untuk
bilangan
int *fibo;
int main()
{
int i;
fibo = (int*) malloc(MAX*sizeof(int));
*(fibo+1) = 1;
*(fibo+2) = 1;
for(i=3;i<=MAX;i++)
*(fibo+i)=(*(fibo+i-2) + *(fibo+i-1));
printf("%d Bilangan Fibonaci Pertama adalah : \n",MAX);
for(i=1;i<MAX;i++)
printf("%d ",*(fibo+i));
}
Output Program :
Algortima :
1. Algoritma
Penggunaan
pointer
untuk
bilangan
fibonacci(10)
2. Pre : 10 adalah nilai yang akan digunakan untuk menghitung deret bilangan
Fibonacci
3. Post : Menampilkan hasil perhitungan 10 bilangan awal deret fibonacci
4. Membaca file header.
13
5. Mendeklarasikan variabel
6. Membaca fungsi fibo dengan penggunaan pointer didalamnya.
7. Mendeklarasikan angka pertama dan kedua adalah 1 menggunakan pointer
dengan ketentuan :
fibo = (int *) malloc(MAX * sizeof(int));
*(fibo+1)= 1;
*(fibo+2)= 1;
13.
Penggunaan
struktur
koordinat polar
ke koordinat catersian.
Bahasa Pemrogramam
: C++
Compiler
Script program
#include <stdio.h>
#include <math.h>
struct polar
{
double r;
double alpha;
};
14
pada
konversi
struct kartesian
{
double x;
double y;
};
int main()
{
struct polar pl;
struct kartesiaan kl;
printf("Masukkan nilai r untuk koordinat polar
: ");
scanf("%lf",&pl.r);
printf("Masukkan nilai alpha untuk koordinat polar : ");
scanf("%lf",&pl.alpha);
kl.x = pl.r * cos(pl.alpha);
kl.y = pl.r * sin(pl.alpha);
printf("Nilai koordinat kartesian untuk koordinat polar r =
%2.2lf alpha = %2.2lf adalah n:\n",pl.r,pl.alpha);
printf("x = %2.2lf y = %2.2lf",kl.x,kl.y);
}
Output Program :
Algoritma :
15
2. Pre : koordinat 0
3. Post
Menunjukkan
penggunaan
struktur
pada
: ");
scanf("%lf",&pl.r);
16
Deskirpsi :
Program di atas tidak dapat diexecute menggunakan minGW apabila
menggunakan void, maka diganti dengan int. Program ini menggunakan
header <stdio.h> untuk menggunakan fungsi printf dan scanf. Program ini
menggunakan header <Math.h> untuk pengoperasian matematika. Program ini
menggunakan tipe data interger. Program ini menggunakan fungsi perulangan for
untuk melakukan perhitungan dan juga menggunakan struct untuk menampilkan
hasil perhitungannya.
Percobaan 6
Algoritma dan Struktur Data
Nama Program
Bahasa Pemrogramam
: C++
Compiler
Script program
#include <stdio.h>
#include <string.h>
struct dtnilai
{
char nrp[10];
char nama[20];
double nilai;
};
struct dtnilai data[10];
int j=0;
void tambah_data()
{
char jawab[2];
while(1)
{
fflush(stdin);
printf("NRP
17
: ");
scanf("%s",&data[j].nrp);
printf("Nama : ");
scanf("%s",&data[j].nama);
printf("Nilai Test : ");
scanf("%lf",&data[j].nilai);
printf("Ada data lagi (y/t) : ");
scanf("%s",&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()
{
int i;
printf("Data Mahasiswa yang telah diinputkan : \n");
printf("NRP\tNama\tNilai\n");
for(i=0;i<=j;i++)
{
printf("%s\t%s\t%6.2f\n",data[i].nrp,data[i].nama,
data[i].nilai);
}
}
int main()
{
tambah_data();
tampil();
}
Output Program :
18
Algoritma :
1. Algoritma Program struktur dalam array
2. Membaca file header
#include <stdio.h>
#include <string.h>
4. Mendeklarasikan variable
int j=0;
int i;
: ");
scanf("%s",&data[j].nrp);
printf("Nama : ");
scanf("%s",&data[j].nama);
printf("Nilai Test : ");
scanf("%lf",&data[j].nilai);
7.
19
while(1)
8.
9. Menampilkan Hasil
printf("Data Mahasiswa yang telah diinputkan : \n");
printf("NRP\tNama\tNilai\n");
for(i=0;i<=j;i++)
{
printf("%s\t%s\t%6.2f\n",data[i].nrp,data[i].nama,
data[i].nilai);
}
Bahasa Pemrogramam
: C++
Compiler
Script program
#include<iostream>
#include<conio.h>
#include<stdio.h>
20
21
else if(l==e)
{
k=c+1;
for( ;k<=l;k++)
{
a[k]=0;
}
}
int z;
for(z=0;z<=l;z++)
{
a[z]=a[z]-b[z];
}
for(z=0;z<=l;z++)
if(z!=l)
{
cout<<a[z]<<"x"<<z<<"+";
}
else
{
cout<<a[z]<<"x"<<z;
}
cout<<endl;
}
void kali(int a[],int b[],int c,int e)
{
int f,g,h[21],i=0,j[21];
for(f=0;f<=c;f++)
for(g=0;g<=e;g++)
{
h[i]=b[g]*a[f];
j[i]=f+g;
i++;
}
for(f=0;f<i;f++)
{
if(f!=i-1)
{
cout<<h[f]<<"x"<<j[f]<<"+";
}
else
{
cout<<h[f]<<"x"<<j[f];
}
}
cout<<endl;
}
void turunan(int a[],int b[],int c,int e)
{
int f;
for(f=0;f<=c;f++)
{
a[f]=a[f+1]*(f+1);
}
cout<<"Turunan pertama : "<<" ";
for(f=0;f<c;f++)
{
if(f!=c-1)
{
22
cout<<a[f]<<"x"<<f<<"+";
}
else
{
}
{
cout<<a[f]<<"x"<<f;
}
for(f=0;f<=e;f++)
b[f]=b[f+1]*(f+1);
}
cout<<endl<<endl<<"Turunan kedua : "<<" ";
for(f=0;f<e;f++)
{
if(f!=e-1)
{
cout<<b[f]<<"x"<<f<<"+";
}
else
{
cout<<b[f]<<"x"<<f;
}
}
cout<<endl;
}
void eror()
{
cout<<"Kode salah, silahkan coba kembali!"<<endl;
}
int main()
{
char hasil;
do
{
int a[21],b[21],c,d,e,f;
cout<<"\t\t\tOperasi Hitung Bilangan Polinom\n\n";
cout<<"Masukkan Polinom Pertama"<<endl;
cout<<"Masukkan Derajat Tertinggi Polinom Pertama :
";
cin>>c;
cout<<"Masukkan
Koofisien
Mulai
Dari
Pangkat
0"<<endl;
for(d=0;d<=c;d++)
{
cout<<"\nKoofisien x Pangkat "<<d<<" : ";
cin>>a[d];
cout<<endl;
}
cout<<"Masukkan Polinom Kedua"<<endl;
cout<<"Masukkan Derajat Tertinggi Polinom Kedua: ";
cin>>e;
cout<<"Masukkan Koofisien x Mulai dari x Pangkat 0"<<endl;
for(d=0;d<=e;d++)
{
cout<<"\nKoofisien x Pangkat "<<d<<" : ";
cin>>b[d];
cout<<endl;
23
}
cout<<"Pilih Operasi Yang Diinginkan : \n";
cout<<"1. PENJUMLAHAN
\n2.
PENGURANGAN
\n3.
\n4. TURUNAN"<<endl;
cout<<"Masukkan Kode Operasi : ";
cin>>f;
switch(f)
{
case 1:
{
cout<<"\n";
jumlah(a,b,e,c);
break;
}
case 2:
{
}
case 3:
{
}
case 4:
{
}
default:
{
}
}
cout<<"\n";
kurang(a,b,e,c);
break;
cout<<"\n";
kali(a,b,c,e);
break;
cout<<"\n";
turunan(a,b,c,e);
break;
eror();
break;
}
while ((hasil=='Y' || hasil=='y'));
Output Program :
24
PERKALIAN
Algoritma :
Mulai
25
\n2.
PENGURANGAN
\n3.
PERKALIAN
\n4. TURUNAN"<<endl;
cout<<"Masukkan Kode Operasi : ";
cin>>f;
10 Cetak hasil.
11 Selesai
Deskripsi :
Program ini berfungsi untuk operasi perhitungan aritmatika polinom.
Proses yang dijalankan dalam script ini adalah, inputan derajat polinom pertama ,
maksudnya adalah diperintahkan untuk mengisi batas maksimal inputan nilai
untuk proses aritmatika polinom . kemudian masukkan inputan ke dua untuk
memudahkan terjadinya operasi matematika. Setelah selesai, pilih beberapa menu
yang disediakan untuk mengetahui hasil dari operasi aritmatika yang dibuat.
Menggunakan beberpa fungsi untuk penguraian aspek yang ingin dimunculkan
saat program dijalankan.
Program ini menggunakan header <iostream>, <conio.h>, dan <stdio.h>.
Menggunakan header iostream karena program melibatkan fungsi cin dan
26
Bahasa Pemrogramam
: C++
Compiler
Script program
#include<stdio.h>
#include<windows.h>
#include <math.h>
struct
{
int a,b,c,d;
}bil;
void kali()
{
printf("\t\t
%d.%d)i
\n\t\t
%d
%di",bil.a,bil.b,bil.c,bil.d,bil.a,bil.c,bil.b,bil.d,bil.a,bil.d,
bil.b,bil.c,angka1, angka2);
}
void bagi()
{
printf("\t\t
HASIL PEMBAGIAN BILANGAN KOMPLEKS\n\n");
int
int
int
int
angka1
angka2
angka3
angka4
=
=
=
=
printf("Hasil
((bil.a*bil.c)+(bil.b*bil.d));
(bil.a*bil.a)+(bil.b*bil.b);
((bil.b*bil.c)-(bil.a*bil.d));
(bil.c*bil.c)+(bil.d*bil.d);
pembagian
dari
\n(%d
%di)/(%d
%di)
\n\t\t
(%d/%d)+(%d/
%d)i",bil.a,bil.b,bil.c,bil.d,bil.a,bil.c,bil.b,bil.d,bil.a,bil.a
,bil.b,bil.b,bil.b,bil.c,bil.a,bil.d,bil.c,bil.c,bil.d,bil.d,angk
a1,angka2,angka3,angka4);
27
}
void jumlah()
{
printf("\t\t
%d)+(%d
%d)i
\n\t\t
%d
%di",bil.a,bil.b,bil.c,bil.d,bil.a,bil.c,bil.b,bil.d,angka1,angka
2);
}
void kurang()
{
printf("\t\t
%d)+(%d
%d)i
\n\t\t
%d
%di",bil.a,bil.b,bil.c,bil.d,bil.a,bil.c,bil.b,bil.d,angka1,
angka2);
}
int main()
{
char hasil;
do
{
char menu;
system("cls");
printf("\t\t\tOperasi Bilangan Kompleks\n\n");
printf("Masukkan bilangan A : ");
scanf("%d",&bil.a);
printf("Masukkan bilangan B : ");
scanf("%d",&bil.b);
printf("Masukkan bilangan C : ");
scanf("%d",&bil.c);
printf("Masukkan bilangan D : ");
scanf("%d",&bil.d);
printf("\nPilih Operasi Yang Diinginkan\n");
printf("\n1. Perkalian \n2. Pembagian \n3. Penjumlahan
\n4. Pengurangan\n");
printf("\nPilih Menu : ");
scanf("%s",&menu);
if(menu=='1')
kali();
else if(menu=='2')
bagi();
else if(menu=='3')
jumlah();
else if(menu=='4')
kurang();
28
else
printf("Error, try again!!");
printf("\nCoba Lagi (Y/T)? ");
scanf("%s",&hasil);
}
while ((hasil=='Y' || hasil=='y'));
printf("\n\nEXIT!");
}
Output Program :
Algoritma :
1. Mulai
2. Membaca file header
#include<stdio.h>
#include<windows.h>
#include <math.h>
3. Membaca struct.
struct
{
int a,b,c,d;
}bil;
29
8. Cetak hasil
9. Selesai
Deskripsi :
Program diatas digunakan untuk mengetahui apakah suatu kata
tersebut merupaka kata palindrom. Palindrom yaitu kata yg apabila di
balik memiliki susunan kata yang sama. Program diatas menggunakan
putz yang fungsinya sama sepertinya printf. Sebagai pemanggil
sebuah kalimat atau kata yang dimunculkan dalam program ketika
berjalan sebagai acuan. Menggunakan strcmp untuk memanggil
kembali sebuah kata yang telah diinputkan sebelumnya.
E. KESIMPULAN
30
F. DAFTAR PUSTAKA
http://lecturer.eepis-its.edu/~entin/Struktur%20Data%20&
%20Algoritma/buku/Data%20Structure%20-%20Bab%201.pdf
http://elearning.upnjatim.ac.id/courses/ISI3002/document/Struktur_Data_
Ruby/Struktur_Data_Pertemuan_1.ppt?cidReq=ISI3002
http://elib.unikom.ac.id/download.php?id=55604
http://www2.ukdw.ac.id/kuliah/si/erickblog/Materi12_B10E/AlgoritmaPe
mrograman.pdf
31