• Tidak ada hasil yang ditemukan

LAPORAN PRAKTIKUM I STRUCT ARRAY dan POI (1)

N/A
N/A
Protected

Academic year: 2018

Membagikan "LAPORAN PRAKTIKUM I STRUCT ARRAY dan POI (1)"

Copied!
21
0
0

Teks penuh

(1)

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

(2)

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.

(3)

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;.

(4)

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.

(5)

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)); }

(6)

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 {

(7)

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.

(8)

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; };

(9)

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 :

(10)

Tugas Rumah I Nama Program : Aritmatika Polinom

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Soal :

(11)

#include<stdio.h>

using namespace std;

void jumlah(int a[],int b[],int c,int e) {

(12)

if(l==c)

(13)

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() {

(14)

{

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;

(15)

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.

(16)

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++

(17)

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);

(18)

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);

(19)

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.

(20)

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.

(21)

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.

Referensi

Dokumen terkait

sehingga dengan melihat ringkasan laporan keuangan diatas, untuk sementara dapat dilihat bagaimana perusahaan menjaga likuiditasnya dari aspek pengalokasian dana pada aktiva

Menyatakan bahwa terdakwa KHAIRUL ARMAN terbukti secara sah dan meyakinkan bersalah melakukan tindak pidana : “Memperdagangkan barang yang diketahui atau patut diketahui

3 on 3 merupakan permainan bola voli yang dimodifikasi sedemikian rupa dari jumlah pemain, ukuran lapangan dan tinggi net, dengan tujuan untuk meningkatkan kemampuan

Daur air dapat terganggu dengan adanya kegiatan manusia. Kegiatan manusia yang dapat menyebabkan terganggunya daur air adalah penebangan pohon di hutan secara belebihan

Adapun dalam hal ini yang menjadi poin-poin yang observasi pada dasarnya diawali dengan argumen yang diberikan oleh informan pada saat wawancara, namun dalam hal ini sebagai

Pada tahap perencanaan strategik, manajemen membuat alternatif strategi dan program kerja beserta target kinerja. Peran akuntan manajemen dalam perencanaan strategik dalah

Ada 18 nilai untuk pengembangan pendidikan budaya dan karakter bangsa yang disusun oleh Diknas. Mulai tahun ajaran 2011, seluruh tingkat pendidikan di Indonesia harus

Retnaningati (2011), melakukan penelitian di SMA Negeri 3 Surakarta menggunakan Model Pembelajaran Siklus Belajar (Learning Cycle) Untuk Meningkatkan Ke- terampilan Proses