Top Banner
STRUCK, 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. DASAR TEORI 1.1 Pengenalan Struktur Data 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. 1.2 Pengenalan Algoritma Algoritma adalah barisan langkah-langkah perhitungan dasar yang mengubah masukan(dari beberapa fungsi matematika) menjadi keluaran. Contoh : Perkalian Input : integer positif a , b Output : a X b Algoritma perkalian : Contoh kasus : a = 365, b = 24 Metode 1 : 365 * 24 = 365 + (365 * 23) = 730 + (365 * 22) ….. = 8760 + (365 * 0) S1 Pend. Teknik Informatika 2014 OFF D Page 1
31

Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

Dec 14, 2015

Download

Documents

yusri

ini adalah laporan modul 1 ASD
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

STRUCK, 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.

DASAR TEORI

1.1 Pengenalan Struktur Data

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.

1.2 Pengenalan Algoritma

Algoritma adalah barisan langkah-langkah perhitungan dasar yang mengubah

masukan(dari beberapa fungsi matematika) menjadi keluaran. Contoh :

Perkalian

Input : integer positif a , b

Output : a X b

Algoritma perkalian :

Contoh kasus : a = 365, b = 24

Metode 1 : 365 * 24 = 365 + (365 * 23)

= 730 + (365 * 22)

…..

= 8760 + (365 * 0)

= 8760

Metode 2 : 3 6 5

2 4

1 4 6 0

7 3 0

8 7 6 0

Manakah algoritma yang lebih baik ?

S1 Pend. Teknik Informatika 2014 OFF D Page 1

Page 2: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

1.3 Array

Array adalah organisasi kumpulan data homogen yang ukuran atau jumlah elemen

maksimumnya telah diketahui dari awal. Array umumnya disimpan di memori komputer

secara kontigu (berurutan). Deklarasi dari array adalah sebagai berikut:

int A[5]; artinya variabel A adalah kumpulan data sebanyak 5 bilangan bertipe integer.

Operasi terhadap elemen di array dilakukan dengan pengaksesan langsung. Nilai di masing-

masing posisi elemen dapat diambil dan nilai dapat disimpan tanpa melewati posisi-posisi

lain.

Terdapat dua tipe operasi, yaitu:

1. Operasi terhadap satu elemen/posisi dari array

2. Operasi terhadap array sebagai keseluruhan

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

1.3.1 Penyimpanan dan Pengambilan Nilai

Biasanya bahasa pemrograman menyediakan sintaks tertentu untuk penyimpanan dan

pengambilan nilai elemen pada posisi tertentu di array.

Contoh:

A[10] = 78, berarti penyimpanan nilai 78 ke posisi ke-10 dari array A

C = A[10], berarti pengambilan nilai elemen posisi ke-10 dari array A

1.3.2 Keunggulan dan Kelemahan Array

Keunggulan array adalah sebagai berikut:

1. Array sangat cocok untuk pengaksesan acak. Sembarang elemen di array dapat diacu secara

aalangsung tanpa melalui elemen-elemen lain.

2. Jika berada di suatu lokasi elemen, maka sangat mudah menelusuri ke elemen-elemen

aatetangga, baik elemen pendahulu atau elemen penerus

3. Jika elemen-elemen array adalah nilai-nilai independen dan seluruhnya harus terjaga, maka

aapenggunaan penyimpanannya sangat efisien

Kelemahan array. Array mempunyai fleksibilitas rendah, karena array mempunyai batasan

sebagai berikut:

S1 Pend. Teknik Informatika 2014 OFF D Page 2

Page 3: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

1. Array harus bertipe homogen. Kita tidak dapat mempunyai array dimana satu elemen

aaadalah karakter, elemen lain bilangan, dan elemen lain adalah tipe-tipe lain

2. Kebanyakan bahasa pemrograman mengimplementasikan array statik yang sulit diubah

aaukurannya di waktu eksekusi. Bila penambahan dan pengurangan terjadi terus-menerus,

aamaka representasi statis

Tidak efisien dalam penggunaan memori

Menyiakan banyak waktu komputasi

Pada suatu aplikasi, representasi statis tidak dimungkinkan

1.4 Pointer

Misalnya kita ingin membuat beberapa penunjuk ke blok penyimpan yang berisi

integer.

Deklarasi pada C adalah:

int *IntegerPointer;

Tanda asterik (*) yang berada sebelum nama variable IntegerPointer menandakan ‘pointer

pada suatu int’. Jadi deklarasi diatas berarti ‘definisikan sebuah tipe yang terdiri dari pointer

bertipe integer yang bernama IntegerPointer’. Apabila didepannya ditambahkan typedef

sebagai berikut

Typedef int *IntegerPointer;

Berarti IntegerPointer merupakan suatu tipe pointer berbentuk integer.

Apabila akan mendeklarasikan dua variable A dan B sebagai penunjuk ke bilangan integer :

IntegerPointer A, B;

Berarti kompiler C akan berisi nilai dari variable A dan B yang ‘menunjuk ke integer’.

Untuk membuat beberapa penunjuk ke beberapa penyimpan integer yang kosong dan

untuk membuat A dan B menunjuk tempat tersebut, digunakan prosedur dinamis untuk

alokasi penyimpan yang disebut malloc

S1 Pend. Teknik Informatika 2014 OFF D Page 3

Page 4: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

Misalnya kita akan menyimpan integer 5 pada blok penyimpan yang ditunjuk pointer

pada variable A. Untuk menuimpan angka 5 pada blok penyimpan integer itu melalui pointer

A, digunakan pernyataan :

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

1.5 Struktur

Struktur adalah koleksi dari variabel yang dinyatakan dengan sebuah nama, dengan

sifat setiap variabel dapat memiliki tipe yang berlainan. Struktur biasa dipakai untuk

mengelompokkan beberapa informasi yang berkaitan menjadi sebuah satu kesatuan.

Contoh sebuah struktur adalah informasi data tanggal, yang berisi: tanggal, bulan dan

tahun.

1.5.1 Mendeklarasikan Struktur

Contoh pendefinisian tipe struktur adalah sebagai berikut:

struct data_tanggal {

int tanggal;

int bulan;

int tahun;

};

yang mendefinisikan tipe struktur bernama data_tanggal, yang terdiri dari tiga buah elemen

(field) berupa : tanggal, bulan dan tahun. Pendefnisian dan pendeklarasian struktur dapat juga

ditulis sebagai berikut:

S1 Pend. Teknik Informatika 2014 OFF D Page 4

Page 5: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

struct data_tanggal {

int tanggal;

int bulan;

int tahun;

} tgl_lahir;

Bentuk umum dalam mendefinisikan dan mendeklarasikan struktur adalah sebagai

berikut

struct nama_tipe_struktur {

tipe field1;

tipe field2;

...

...

tipe fieldn;

}variabel_struktur1, ... , variabel_strukturM;

Masing-masing tipe dari elemen struktur dapat berlainan. Adapun variabel_struktur1 sampai

dengan variabel_strukturM menyatakan bahwa variabel struktur yang dideklarasikan bisa

lebih dari satu. Jika ada lebih dari satu variabel, antara variabel struktur dipisahkan dengan

tanda koma.

1.5.2 Mengakses Elemen Struktur

Elemen dari struktur dapat diakses dengan menggunakan bentuk

variabel_struktur.nama_field

Antara variabel_struktur dan nama_field dipisahkan dengan operator titik (disebut operator

anggota struktur). Contoh berikut merupakan instruksi untuk mengisikan data pada field

tanggal

tgl_lahir.tanggal = 30;

S1 Pend. Teknik Informatika 2014 OFF D Page 5

Page 6: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

1.6 Kesimpulan

1. Struktur data adalah sebuah skema organisasi yang diterapkan pada data sehingga data

aadapat diinterprestasikan dan sehingga operasi-operasi spesifik dapat dilaksanakan pada data

aatersebut

2. Apabila kita membuat program dengan data yang sudah kita ketahui batasnya, maka kita

aabisa menggunakan array (tipe data statis), namun apabila data kita belum kita ketahui

aabatasnya, kita bisa menggunakan pointer (tipe data dinamis)

3. Untuk sekumpulan data dengan tipe data yang berlainan, namun merupakan satu-kesatuan,

aakita dapat menggunakan struktur untuk merepresentasikannya

S1 Pend. Teknik Informatika 2014 OFF D Page 6

Page 7: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

LATIHAN 1

Pemrograman C++

Nama Program : Program Penggunaan Array Pada Bilangan Fibonacci

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Syntax :

Hasil execute dalam bentuk printscreen :

Algoritma :

1. Mulai.

2. Membaca file header.

3. Membaca fungsi fibo.

4. Membaca fungsi utama.

5. Membaca tipe data integer i.

6. Menggunakan rumus : (disini menggunakan array satu dimensi)

fibo[1]=1;

S1 Pend. Teknik Informatika 2014 OFF D Page 7

Page 8: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

fibo[2]=1;

7. Menggunakan perulangan for dengan rumus :

for (i=3;i<=MAX;i++)

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

8. Cetak hasil.

printf("%d Bilangan Fibonaci Pertama adalah : \n",MAX);

for (i=1;i<=MAX;i++)

printf("%d-", fibo[i]);

9. Selesai.

Deskripsi Program :

Code blocks tidak dapat diexecute jika menggunakan “void” , maka diganti dengan “int”.

kemudian program diatas tetap dapat diexecute namun hasil program terdapat kesalahan. Dari

10 bilangan fibonaci yang diminta , yang keluar hanya 9. Mengapa? Karena penggunaan

rumus yang kurang tepat, yaitu “ for (i=1;i<=MAX;i++)”, yang pada awalnya tidak

menggunakan operator = setelah “<’. Hal ini sangat berpengaruh pada hasil program.

S1 Pend. Teknik Informatika 2014 OFF D Page 8

Page 9: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

LATIHAN 2

Pemrograman C++

Nama Program : Program Mengubah Isi Variable Melalui Pointer

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Syntax :

Hasil execute dalam bentuk printscreen :

Algoritma :

1. Start.

2. Membaca file header.

3. Membaca fungsi utama.

S1 Pend. Teknik Informatika 2014 OFF D Page 9

Page 10: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

4. Menggunakan tipe data integer y,x dengan nilai tetap=87.

5. Menggunakan pointer pada tipe data.

6. Menentukan letak alamat px dan y , dengan ketentuan:

px=&x;

y= *px;

7. Cetak hasil

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

8. Selesai.

Deskripsi :

Dalam program diatas tidak ada kesalahan pada syntax. Menggunakan file

header stdio untuk mendeklarasikan penginputan data bak secara manual atau

sistematis. Menggunakan pointer untuk membaca suatu alamat yang sudah

ditentukan dalam syntax.

S1 Pend. Teknik Informatika 2014 OFF D Page 10

Page 11: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

LATIHAN 3

Pemrograman C++

Nama Program : Program Mengakses dan Mengubah Isi Suatu Variabel Pointer

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Syntax :

Hasil Execute dalam bentuk printscreen :

Algoritma :

1. Start

2. Membaca file header.

3. Membaca fungsi utama.

4. Membaca tipe data yang digunakan dengan ketentuan angka yang

ditetapkan.

5. Membaca penggunaan pointer pada tipe data.

float d = 54.5f, *pd;

6. Menentukan letak alamat dan nilai yang diinginkan.

pd = &d;

*pd += 10;

S1 Pend. Teknik Informatika 2014 OFF D Page 11

Page 12: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

7. Cetak hasil.

printf("Isi d sekarang = %g\n", d);

8. Selesai.

Deskripsi :

Tidak ada kesalahan yang terdapat pada syntax tersebut. Program ini

menggunakan pointer untuk menghitung nilai d. menggunakan rumus *pd+10

yang nantinya padaproses hasil akhir akan ditambahkan 10 sehingga nilai

langsung berubah sesuai rumus yang dipakai.

LATIHAN 4

S1 Pend. Teknik Informatika 2014 OFF D Page 12

Page 13: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

Pemrograman C++

Nama Program : Program Penggunaan Pointer Untuk Bilangan Fibonacci

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Syntax :

Hasil Execute dalam bentuk printscreen :

Algoritma :

1. Start.

2. Membaca file header.

3. Membaca fungsi fibo dengan penggunaan pointer didalamnya.

4. Membaca fungsi utama.

5. Membaca tipe data integer i.

S1 Pend. Teknik Informatika 2014 OFF D Page 13

Page 14: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

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

7. Cetak hasil.

printf("%d Bilangan Fibonaci Pertama adalah : \n", MAX);

for (i=1;i<=MAX;i++)

printf("%d-", *(fibo+i));

8. Selesai.

Deskripsi :

Program diatas memiliki beberapa kesalahan, yaitu penggunaan void yang

seharusnya menggunakan int. penggunaan rumus yang kurang tepat. Hamper

sama dengan percobaan 1, namun dalam percobaan ini , menggunakan pointer

dalam proses execute program tersebut.

LATIHAN 5

Pemrograman C++

S1 Pend. Teknik Informatika 2014 OFF D Page 14

Page 15: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

Nama Program : Program Penggunaan Struktur Pada Konversi Koordinat Polar

aake Koordinat Catersian

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Syntax :

Hasil Execute dalam bentuk printscreen :

S1 Pend. Teknik Informatika 2014 OFF D Page 15

Page 16: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

Algoritma :

1. Start.

2. Membaca file header.

3. Membaca struct polar, kartesian.

4. Membaca fungsi utama.

5. Pemanggilan strcut polar dank artesian.

6. Masukkan nilai r untuk polar.

7. Masukkan nilai alpha untuk kartesian.

8. Penggunaan rumus .

kl.x=pl.r * cos(pl.alpha);

kl.y=pl.r * sin(pl.alpha);

9. Cetak hasil.

printf(

"Nilai koordinat kartesian untuk koordinat polar r=

%2.2lf alpha=%2.2lfadalah: \n", pl.r,pl.alpha);

printf("x= %2.2lf y= %2.2lf", kl.x,kl.y);

10. Selesai.

S1 Pend. Teknik Informatika 2014 OFF D Page 16

Page 17: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

Deskripsi :

Program diatas memiliki kesalahan dalam penulisan syntax.Yang pertama,

tentang penulisan fungsi utama yang seharusnya menggunakan int bukan

void.Penulisan syntax yang perlu diperhatikan.Untuk baris 28-29 nnti ada

kesalahan pada syntax yang pertama. Dan seharusnya tidak menggunakan enter

saat penulisan rumus.

S1 Pend. Teknik Informatika 2014 OFF D Page 17

Page 18: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

LATIHAN 6

Pemrograman C++

Nama Program : Program Struktur Dalam Array

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Syntax :

Syntax yang benar dalam bentuk printscreen :

S1 Pend. Teknik Informatika 2014 OFF D Page 18

Page 19: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

Algoritma :

1. Start.

2. Membaca file header.

3. Membaca srtuct datanila dengan beberapa tipe data yang mendukung

jalannya progam ini.

4. Membaca kumpulan fungsi.

5. Masukkan data mahasiswa.

int i;

S1 Pend. Teknik Informatika 2014 OFF D Page 19

Page 20: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

printf("Data Mahasiswa yang telah diinputkan : \n");

printf("NRP\tNama\tNilai\n");

6. Cetak hasil.

for (i=0;i<=j;i++)

{ printf("%s\t%s\t%6.2f\

n",data[i].nrp,data[i].nama,data[i].nilai);

7. Jika ingin mengulang untuk menginputkan data maka “y” jika tidak “t”.

8. Cetak hasil.

9. Selesai.

Deskripsi :

Program diatas hanya memiliki penulisan syntax yaitu penulisan void

main pada baris 45. Maka untuk pembenaran dan prses kirim segera dimulai.

Program diaa menggunakan struct , kumpulan fungsi. Menggunakan perulangan

while untuk menginputkan kembali data yang dinginkan. Menggunakan break

agar program tidak langsung berhent. Menggunakan file header string untuk

penggunaan strcmp pada syntax.

S1 Pend. Teknik Informatika 2014 OFF D Page 20

Page 21: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

TUGAS RUMAH 1

Pemrograman C++

Nama Program : Program Aritmatika Polinom

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Perintah :

Hasil Execute dalam bentuk printscreen :

S1 Pend. Teknik Informatika 2014 OFF D Page 21

Page 22: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

TUGAS RUMAH 2

Pemrograman C++

Nama Program : Program Bilangan Kompleks

Bahasa Pemrogramam : C++

Compiler : MinGW Developer Studio

Perintah :

Hasil Execute dalam bentuk printscreen :

S1 Pend. Teknik Informatika 2014 OFF D Page 22

Page 23: Laporan Modul 1 ASD M Yusriansyah F Dz PTIUM2014

A. Kesimpulan

1. Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari

suatuvariabel lain. Alamat ini merupakan lokasi dari obyek lain (biasanya variabel

lain) di dalam memori. Operator Pointer ada dua, yaitu :

Operator &

Operator & bersifat unary (hanya memerlukan satu operand saja). Operator &

menghasilkan alamat dari operandnya.

Operator *

Operator * bersifat unary (hanya memerlukan satu operand saja).Operator *

menghasilkan nilai yang berada pada sebuah alamat

2. Array merupakan tipe data tersetruktur dimana didalamnya terdiri dari komponen –

komponen yang mempunyai tipe data yang sama. Didalam suatu array setiap

kompoenen ditunjukan oleh suatu index yang unik. Index dari setiap komponen array

menunjukan urutan data atau identitas yang mewakili data yang ada didalamnya.

3. Struktur yaitu pengelompokan dari variabel-variabel atau sejumlah data dengan

tipe yang berlainanyang bernaung dalam satu nama yang sama. Struktur ini

biasanya digunakan untuk mengelompokkanbeberapa informasi yang berkaitan

dengan sebuah kesatuan, atau biasanya disebut dengan record. Sedangkan struktur

data adalah sebuah skema organisasi yang diterapkan pada data, sehingga data

tersebut dapat diinterprestasikan di dalam komputer dan agar bisa dipakai secara

efisien.

B. DaftarPustaka

Kadir, Abdul. 1995. Pemrograman C++. Yogyakarta:Penerbit Andi.

Modul Praktikum,2010.Struct, Array, Pointer.Pendidikan Teknik Informatika, Teknik

Elektro, Universitas Negeri Malang.

Modul Praktikum Dasar Pemrograman Komputer.2014. Modul 6 “Array”. Pendidikan

Teknik Informatika,Teknik Elektro, Universitas Negeri Malang.

Modul Praktikum Dasar Pemrograman Komputer.2014. Modul 8 “Pointer”.

Pendidikan Teknik Informatika,Teknik Elektro, Universitas Negeri Malang.

Modul Praktikum Dasar Pemrograman Komputer.2014. Modul 9 “Struct”. Pendidikan

Teknik Informatika,Teknik Elektro, Universitas Negeri Malang.

S1 Pend. Teknik Informatika 2014 OFF D Page 23