LAPORAN PRAKTIKUM I
STRUCT, ARRAY, dan POINTER
Disusun untuk Memenuhi Matakuliah Praktikum Algoritma dan Struktur Data Dibimbing oleh Ibu Triyanna Widiyaningtyas
Oleh:
Nama : Musfiratus Solehah
Nim : 150533602144
S1 PTI OFF-C 2015
UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
STRUCT, ARRAY, dan POINTER
Tujuan :
1. Mahasiswa memahami apakah yang dimaksud dengan struktur data. 2. Mahasiswa memahami apakah yang dimaksud dengan algoritma. 3. Mengingat kembali array, struktur, pointer dalam bahasa C.
Latihan Praktikum I
Nama Program : Penggunaan array pada bilangan fibonacci
Compiler : MinGW Developer Studio
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. Start.
2. Inisialisasi fibo 1=1, fibo 2=1.
3. Memproses data yaitu i=3 sampai dengan 10. 4. Rumus untuk tampilan fibo [i] = fibo(i-2)+fibo(i-1). 5. Tampilkan hasil.
Penjelasan Program :
Program diatas dibuat untuk menampilkan bilangan Fibonacci berjumlah 10 dengan ketentuan bahwa bilangan fibo ke 1 dan 2 adalah 1, untuk mengetahui bilangan ke 3 sampai 10 menggunakan rumus fibo[i]=fibo[i-2]+fibo[i-1] dengan i=3, setelah bilangan fibonacci ditampilkan sampai dengan 10 maka program akan selesai.
Latihan Praktikum II
Nama Program : Program mengubah isi variable melalui pointer
Compiler : MinGW Developer Studio
Script program : #include <stdio.h> 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);
printf("Nilai yang ditunjuk oleh px = %d\n",*px); printf("Nilai y = %d\n",y);
}
Output Program :
Algoritma : 1. Start.
2. Membaca file header.
3. Menggunakan tipe data integer y,x dengan nilai yg ditentukan 87. 4. Menentukkan letak alamat px dan y : px=&x;y= *px;.
Penjelasan Program :
Program tersebut menggunakan tipe data pointer, pertama program akan membaca tipe data kemudian memproses data dengan ketentuan nilai adalah 87, untuk mencari nilai px dan y yang di perintahkan menggunakan px=&x; y= *px;. Terakhir program akan menampilkan hasil data yang telah diproses.
Latihan Praktikum III
Nama Program : Program mengakses dan mengubah isi suatu variabel pointer
Bahasa Pemrogramam : C++
Compiler : MinGW Developer Studio
Script program : #include <stdio.h> 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. Start.
2. Membaca tipe data pada ketentuan angka yang ditetapkan float d = 54.5f, *p. 3. Menentukan letak alamat dan nilai yang diinginkan : pd = &d;*pd += 10. 4. Tampilkan hasil.
Penjelasan Program :
Pada program diatas menggunakan tipe data pointer yaitu terletak pada ketentuan angka yang telah ditetapkan float d = 54.5f, *pd;. F dibelakang angka tersebut digunakan untuk menjelaskan bahwa program diatas merupakan tipe data float. Setelah itu untuk menentukan letak alamat dan nilai yang diinginkan menggunakan pd = &d;*pd += 10;. Langkah terakhir adalah menampilkan hasil.
Latihan Praktikum IV
Nama Program : Penggunaan pointer untuk bilangan fibonacci
Bahasa Pemrogramam : C++
Compiler : MinGW Developer Studio
Script program : #include <stdio.h> #include <stdlib.h> #define MAX 10
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)); }
Algoritma : 1. Start.
2. Membaca tipe data integer i. 3. Memproses data dengan rumus :
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)); 4. Menampilkan data.
5. Finish.
Penjelasan Program :
Program diatas adalah menentukan bilangan Fibonacci menggunakan pointer, pertama adalah membaca tipe data integer I kemudian memproses data dengan menggunakan rumus
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));. Setelah proses selesai maka hasil akan ditampilkan.
Latihan Praktikum V
Nama Program : Penggunaan struktur pada konversi koordinat polar ke koordinat cartesian
Bahasa Pemrogramam : C++
Compiler : MinGW Developer Studio
Script program : #include <stdio.h> #include <math.h> struct polar
{
double r; double alpha; };
struct kartesian {
double y; };
int main() {
struct polar pl; struct kartesian 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", pl.r,pl.alpha);
printf ("x=%2.2lf y=%2.2lf",kl.x,kl.y); }
Output Program :
Algoritma : 1. Start.
2. Membaca struct polar dan kartesian. 3. Pemanggilan struct polar dan kartesian. 4. Masukkan nilai r untuk polar.
5. Masukkan nilai alpha untuk kartesian.
6. Memproses data menggunakan rumus : kl.x = pl.r * cos(pl.alpha); kl.y = pl.r * sin(pl.alpha); 7. Tampilkan hasil.
Penjelasan Program :
Progam diatas menggunakan struct untuk mengkonversi koordinat polar ke koordinat Cartesian, pertama program akan mendeklarasikan struct untuk mengaksesnya kembali dengan mengganti nama elemen struct sesuai inisial, kemudian user diminta untuk memasukkan nilai r inisialisasi dari koordinat polar, dan memasukkan nilai alpha sebagai inisial dari koordinat kartesian. Kemudian setelah inputan selesai program akan memproses data yang telah user inputkan dengan rumus kl.x = pl.r * cos(pl.alpha); kl.y = pl.r * sin(pl.alpha);. Terakhir data akan ditampilkan.
Latihan Praktikum VI Nama Program : Program struktur dalam array
Bahasa Pemrogramam : C++
Compiler : MinGW Developer Studio
Script program : #include <stdio.h> #include <string.h> struct dtnilai
{
char nrp[10]; char nama [20]; double nilai; };
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 :
Algoritma : 1. Start.
2. Membaca struct dtnilai dengan beberapa tipe data lain. 3. Membaca kumpulan fungsi.
4. Masukkan data mahasiswa. 5. Tampilkan hasil.
6. Finish.
Penjelasan Program :
Tugas Rumah I Nama Program : Aritmatika Polinom
Bahasa Pemrogramam : C++
Compiler : MinGW Developer Studio
Soal :
#include<stdio.h>
using namespace std;
void jumlah(int a[],int b[],int c,int e) {
if(l==c)
cout<<h[f]<<"x^"<<j[f]; }
}
cout<<endl; }
void turunan(int a[],int b[],int c,int e) {
cout<<"turunan polinom pertama adalah: "<<" "; for(f=0;f<c;f++)
cout<<endl<<endl<<"turunan polinom kedua adalah: "<<" "; for(f=0;f<e;f++)
cout<<"Kode salah, silahkan coba kembali!"<<endl; }
int main() {
{
int a[21],b[21],c,d,e,f;
cout<<"Masukkan Derajat Tertinggi Polinom Pertama: "; cin>>c;
cout<<"Masukkan Koofisien x Mulai Dari x 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<<"\nMasukkan Derajat Tertinggi Polinom Kedua: "; cin>>e;
cout<<"\nMasukkan Koofisien x Mulai dari x Pangkat 0"<<endl; for(d=0;d<=e;d++)
{
cout<<"\nKoofisien x Pangkat "<<d<<" : "; cin>>b[d];
cout<<endl; }
cout<<"1. PENJUMLAHAN \n2.PENGURANGAN \n3.PERKALIAN \n4. TURUNAN"<<endl;
break; }
}
printf("\n Coba Lagi ? [y/t] "); scanf("%s",&hasil);
}
while ((hasil=='Y' || hasil=='y')); printf("SELESAI!");
}
Output Program :
Algoritma :
1. Start.
2. Membaca 5 fungsi yang digunakan untuk perhitungan.
3. Membaca fungsi utama.
4. Masukkan nilai derajat tertinggi polinom pertama.
5. Memasukkan koofisien x sebanyak nilai derajat tertinggi pertama yang dimasukkan.
6. Masukkan nilai derajat tertinggi polinom kedua.
7. Memasukkan koofisien x sebanyak nilai derajat tertinggi kedua yang di masukkan.
a. 1= proses perhitungan penjumlahan.
b. 2= proses perhitungan pengurangan.
c. 3= proses perhitungan perkalian.
d. 4= proses perhitungan turunan.
9. Tampilkan hasil.
10.Pilihan kembali ke perhitungan jika pilih y maka akan kembali ke awal memulai program jika pilih t maka program akan diakhiri.
11.Tampilkan hasil.
12.Finish.
Penjelasan Program :
Program diatas 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 beberapa fungsi untuk penguraian aspek yang ingin dimunculkan saat program dijalankan.
Tugas Rumah II Nama Program : Bilangan Kompleks
Bahasa Pemrogramam : C++
Soal :
Script program : #include<stdio.h> #include<windows.h> #include <math.h>
struct {
int a,b,c,d; }
bil;
void kali() {
printf("\tPERKALIAN BILANGAN KOMPLEKS \t"); int angka1 = (bil.a * bil.c) - (bil.b * bil.d);
printf("Hasil perkalian dari (%d + %di) * (%d + %di) = (%d.%d - %d.%d)+
printf("\tPEMBAGIAN BILANGAN KOMPLEKS \t"); int angka1 = ((bil.a*bil.c)+(bil.b*bil.d));
int angka2 = (bil.a*bil.a)+(bil.b*bil.b); int angka3 = ((bil.b*bil.c)-(bil.a*bil.d)); int angka4 = (bil.c*bil.c)+(bil.d*bil.d);
printf("Hasil pembagian dari (%d + %di)/(%d + %di) =[(%d.%d +
%d.%d)/(%d.%d + %d.%d)]+[(%d.%d - %d.%d)/(%d.%d + %d.%d)i adalah (%d/%d)
printf("\tPENJUMLAHAN BILANGAN KOMPLEKS \t"); int angka1 = (bil.a + bil.c);
int angka2 = (bil.b + bil.d); printf(
"Hasil penjumlahan dari (%d + %di) + (%d + %di) = (%d + %d)+(%d + %d)i adalah %d + %di",bil.a,bil.b,bil.c,bil.d,bil.a,bil.c,bil.b,bil.d,angka1,angka2);
}
void kurang() {
printf("\tPENGURANGAN BILANGAN KOMPLEKS \t"); int angka1 = (bil.a - bil.c);
int angka2 = (bil.b - bil.d); printf(
"Hasil pengurangan dari (%d + %di) - (%d + %di) = (%d - %d)+(%d - %d)i adalah %d + %di",bil.a,bil.b,bil.c,bil.d,bil.a,bil.c,bil.b,bil.d,angka1, angka2);
}
printf("Masukkan bilangan A : "); scanf("%d",&bil.a);
scanf("%d",&bil.b);
printf("Masukkan bilangan C : "); scanf("%d",&bil.c);
printf("Masukkan bilangan D : "); scanf("%d",&bil.d);
printf("\tPilihan : ");
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(); else
printf("Error, try again!!"); printf("\n Coba Lagi ? [y/t] "); scanf("%s",&hasil);
}
while ((hasil=='Y' || hasil=='y')); printf("\n\n SELESAI!");
}
Output Program :
Algoritma : 1. Start.
2. Membaca struct.
4. Membaca fungsi utama.
5. Masukan bilangan A,B,C dan D. 6. Masuk kemenu pilihan
a. Jika pilih menu 1 maka akan pemanggilan rumus perkalian. b. Jika pilih menu 2 maka akan pemanggilan rumus pembagian. c. Jika pilih menu 3 maka akan pemanggilan rumus penjumlahan. d. Jika pilih menu 4 maka akan pemanggilan rumus pengurangan. 7. Tampilkan hasil.
8. Untuk mengulang, tekan Y/y untuk iya m T/t untuk tidak. 9. Tampilkan hasil.
10. Selesai.
Penjelasan Program :
Program diatas berfungsi untuk memudahkan pengguna dalam menyelesaikan permasalahan hitungan bilangan kompleks .menggunakan file header iostream dalam code blocks harus disertai dengan using namespace std, jika tidak maka tidak akan bisa di execute. Menggunakan beberapa fungsi dan menggunakan struct (kumpulan tipe data). Menggunakan file header math.h yang diperuntukkan untuk operasi matematika dalam penyusunan script sebuah program.
1. Struktur data adalah sebuah skema organisasi, seperti struktur dan array, yang diterapkan pada data sehingga data dapat diinterprestasikan dan sehingga operasi operasi spesifik dapat dilaksanakan pada data tersebut.
2. Algoritma adalah barisan langkah-langkah perhitungan dasar yang mengubah masukan menjadi keluaran.
3. Array adalah organisasi kumpulan data homogeny yang ukuran atau jumlah elemen maksimumnya telah diketahui dari awal.
4. Pointer adalah suatu variable yang berisi alamat memori dari suatu variable lain. 5. Struktur adalah koleksi dari variable yang dinyatakan dengan sebuah nama, dengan
sifat setiap variable dapat memiliki tipe yang berlainan.
DAFTAR RUJUKAN
1. Tim Asisten Dosen. 2016. Modul 1 array, pointer, dan struct. Algoritma dan struktur komputer. Malang: Universitas Negeri Malang.
2. Tim Asisten Dosen. Modul 8 Pointer, Ide Visual C++, Dan Algoritma Pemrogaman. Malang: Universitas Negeri Malang.