• Tidak ada hasil yang ditemukan

LAPORAN PRAKTIKUM ALGORITMA DAN STR DATA

N/A
N/A
Protected

Academic year: 2018

Membagikan "LAPORAN PRAKTIKUM ALGORITMA DAN STR DATA"

Copied!
19
0
0

Teks penuh

(1)

LAPORAN PRAKTIKUM

ALGORITMA DAN STRUKTUR DATA I

Abstract Data Type (ADT)

Modul I

Disusun Oleh : Syukur Jaya Mendrofa

201501072

Dosen Pengampu :

Oskar Ika Adi Nugroho S.T., MT

SISTEM INFORMASI

SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO

PURWOKERTO

2016

(2)

TIPE DATA ABSTRAK

Tipe Data Abstrak atau Abstract Data Type (ADT) adalah data dan operasi yang dapat digunakan untuk memanipulasi data tersebut. Dalam C++, ADT dapat dibuat dalam sebuah class. Class dalam C++ merupakan pengembangan dari struct dalam Bahasa pemrograman C. Class memiliki data dan fungsi.

A. CLASS ATAU STRUCT

Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel yang bernaung dalam satu nama yang sama dan memiliki kaitan satu sama lain.

Bentuk umum struct:

struct nama_tipe_truktur {

tipe field 1 tipe field 1 tipe field 1 . . .

tipe field n

} variable _struktur1, . . . , variabel_struktur_n Contoh : struct data_tanggal { int tanggal; int bulan; int tahun; } struct data_teman { char nama[21];

struct data_tanggal tgl_lahir; }info_teman;

Pengertian dari contoh di atas:

nama

info_teman tgl_lahir tanggal

bulan tahun

(3)

Output Program STRUCT 001

(4)

Typedef biasa dipakai untuk memberikan nama alias terhadap suatu tipe data.

Bentuk umum:

typedef <tipe_data_lama> <tipe_data_baru> Contoh Program TYPEDEF 002

Output Program TYPEDEF 002

(5)

Tipe data abstrak ini merupakan gabungan antara typedef dan struct Contoh Program TYPEDEF DAN STRUCT 003

Output Program TYPEDEF DAN STRUCT 003

Analisa dari program typedef dan struct 003 diatas , akan dibahas di bab 2.

(6)

PENJELASAN LISTING PROGRAM DAN TUGAS

Listing Program 003

#include

<iostream>

//baris

1

using

namespace

std;

//baris

2

typedef

struct

Mahasiswa

//baris 3

{

//baris 4

char

NIM [15];

//baris 5

char

nama[25];

//baris

6

float

ipk;

//baris 7

};

//baris 8

int

main()

//baris 9

{

//baris 10

Mahasiswa mhs;

//baris

11

cout <<

"NIM = "

;

//baris

12

cin >> mhs.NIM;

//baris

13

cout <<

"Nama = "

;

//baris

14

cin >> mhs.nama;

//baris

15

cout <<

"IPK = "

;

//baris

16

cin >> mhs.ipk;

//baris

17

cout << endl;

//baris 18

cout <<

"Data Anda : \n"

;

//baris 19

cout <<

"NIM : "

<< mhs.NIM << endl;

//baris 20

cout <<

"Nama : "

<< mhs.nama << endl;

(7)

cout <<

"IPK : "

<< mhs.ipk << endl;

//baris 22

system(

"pause"

);

//baris

23

return

0;

//baris 24

}

//baris 25

Analisa program 003

1. Baris 1 => #include adalah suatu perintah yang digunakan untuk mengatur compiler agar membaca berkas header yang disertakan dibelakang kata include yakni dalam program ini <iostream> saat pelaksanaan kompilasi.

2. Baris 2 => menyatakan kepada compiler bahwa program menggunakan namespace bernama std; namespace fungsinya untuk mengelompokkan elemen-elemen ke dalam sebuah nama. std adalah nama bawaan yang digunakan pada semua pustaka standar C++. Contohnya untuk menampilkan keluaran berupa cout, endl.

3. Baris 3 => merupakan pendeklarasian tipe data baru struct = Mahasiswa.

4. Baris 4 => awal dari pendeklarasian tipe data Mahasiswa.

5. Baris 5 =>NIM merupakan elemen struct atau field dari tipe data Mahasiswa. Bertipe Char dan mempunya komposisi 0-14.

6. Baris 6 => nama merupakan elemen struct atau field dari tipe data Mahasiswa. Bertipe Char dan mempunya komposisi 0-24.

7. Baris 7 => ipk merupakan elemen struct atau field dari tipe data Mahasiswa. Bertipe float (pecahan).

8. Baris 8 => akhir dari pendeklarasian tipe data Mahasiswa. Mahasiswa bisa diletakkan setelah tanda } sebelum tanda ;

9. Baris 9 => tipe kode keluar program.

(8)

11. Baris 11 => variabel mhs bertipe data Mahasiswa.

12. Baris 12 => pernyataan untuk menampilkan NIM = pada output program.

13. Baris 13 => tempat untuk memasukkan struct ‘NIM’ operator dot ‘

.

’ Harus digunakan untuk mengakses member dari variabel mhs bertipe data Mahasiswa. Cin yang dapat digunakan untuk membaca data dari keyboard.

14. Baris 14 => pernyataan untuk menampilkan Nama = pada output program.

15. Baris 15 => tempat untuk memasukkan struct ‘nama’ operator dot ‘

.

’ Harus digunakan untuk mengakses member dari variabel mhs bertipe data Mahasiswa Cin yang dapat digunakan untuk membaca data dari keyboard.

16. Baris 16 => pernyataan untuk menampilkan IPK = pada output program.

17. Baris 17 => tempat untuk memasukkan struct ‘ipk’ operator dot ‘

.

’ Harus digunakan untuk mengakses member dari variabel mhs bertipe data Mahasiswa. Cin yang dapat digunakan untuk membaca data dari keyboard.

18. Baris 18 => endl; untuk menyatakan karakter berpindah baris.

19. Baris 19 => pernyataan untuk menampilkan Data Anda : pada output program. “\n” => untuk menyatakan karakter berpindah baris

20. Baris 20 => pernyataan untuk menampilkan NIM = << menampilkan isi dari baris 13 << endl; untuk menyatakan karakter berpindah baris.

21. Baris 21 => pernyataan untuk menampilkan Nama = << menampilkan isi dari baris 15 << endl; untuk menyatakan karakter berpindah baris

22. Baris 22 => pernyataan untuk menampilkan IPK = << menampilkan isi dari baris 17 <<

endl; untuk menyatakan karakter berpindah baris

(9)

24. Baris 24 => pernyataan bahwa nilai balik program adalah nol. Nol biasa digunakan untuk menyatakan bahwa program berhasil melaksanakan tugas yang diembannya.

25. Baris 25 => merupakan akhir dari tubuh fungsi utama

int

main().

Listing Program 004

#include<iostream> Baris 1

#include<math.h> Baris 2

typedefstruct Baris 3

{ Baris 4

int sumbu_x; Baris 5

int sumbu_y; Baris 6

}Titik; Baris 7

Titik Make_Titik(int x, int y); Baris 8

void tampil(Titik t); Baris 9

float jarak( Titik t1, Titik t2); Baris 10

Titik cerminx(Titik c); Baris 11

Titik cerminy(Titik c); Baris 12

Titik cermin(Titik c, Titik d); Baris 13

Titik cerminxh(Titik c, int h); Baris 14

Titik cerminyh(Titik c, int h); Baris 15

Titik cermino(Titik c); Baris 16

Titik rotasi(Titik c); Baris 17

int main() Baris 18

(10)

Titik T1, T2, T3; Baris 20

int x, y, h; Baris 21

printf("Masukan nilai x1 : "); scanf_s("%d", &x); Baris 22 printf("Masukan nilai y1 : "); scanf_s("%d", &y); Baris 23

T1 = Make_Titik(x, y); Baris 24

printf("Masukan nilai x2 : "); scanf_s("%d", &x); Baris 25 printf("Masukan nilai y2 : "); scanf_s("%d", &y); Baris 26 T2 = Make_Titik(x, y); Baris 27

tampil(T1); Baris 28

printf("\n"); Baris 29

tampil(T2); Baris 30

printf("\n"); Baris 31

printf("pencerminan T1 terhadap sumbu x\n"); Baris 32

T3 = cerminx(T1); Baris 33

tampil(T3); Baris 34

printf("\n"); Baris 35

printf("Pencerminan T1 terhadap sumbu y\n"); Baris 36

T3 = cerminy(T1); Baris 37

tampil(T3); Baris 38

printf("\nPencerminan T1 terhadap titik (0,0)\n"); Baris 39

T3 = cermino(T1); Baris 40

tampil(T3); Baris 41

printf("\nPencerminan T1 terhadap titik T2\n"); Baris 42

T3 = cermin(T1, T2); Baris 43

tampil(T3); Baris 44

printf("\nMasukan nilai h : "); scanf_s("%d", &h); Baris 45 printf("Pencerminan terhadap garis x=h\n"); Baris 46

T3 = cerminxh(T1, h); Baris 47

tampil(T3); Baris 48

printf("\nMasukan nilai h : "); scanf_s("%d", &h); Baris 49 printf("Pencerminan terhadap garis y=h\n"); Baris 50

T3 = cerminyh(T1, h); Baris 51

tampil(T3); Baris 52

printf("\nRotasi T1 terhadap 90\n"); Baris 53

T3 = rotasi(T1); Baris 54

tampil(T3); Baris 55

system("pause"); Baris 56

printf("\n"); Baris 57

printf("\n"); Baris 58

return 0; Baris 59

} Baris 60

Titik Make_Titik(int x, int y) Baris 61

{ Baris 62

Titik t; Baris 63

t.sumbu_x = x; Baris 64

t.sumbu_y = y; Baris 65

return t; Baris 66

} Baris 67

void tampil(Titik t) Baris 68

(11)

printf("Titik x : %d\n", t.sumbu_x); Baris 70 printf("Titik y : %d", t.sumbu_y); Baris 71

} Baris 72

Titik cerminx(Titik c) Baris 73

{ Baris 74

Titik b; Baris 75

b.sumbu_x = c.sumbu_x; Baris 76

b.sumbu_y = -c.sumbu_y; Baris 77

return b; Baris 78

} Baris 79

Titik cerminy(Titik c) Baris 80

{ Baris 81

Titik b; Baris 82

b.sumbu_x = -c.sumbu_x; Baris 83

b.sumbu_y = c.sumbu_y; Baris 84

return b; Baris 85

} Baris 86

Titik cerminxh(Titik c, int h) Baris 87

{ Baris 88

Titik b; Baris 89

b.sumbu_x = 2 * h - c.sumbu_x; Baris 90 b.sumbu_y = c.sumbu_y; Baris 91

return b; Baris 92

} Baris 93

Titik cerminyh(Titik c, int h) Baris 94

{ Baris 95

Titik b; Baris 96

b.sumbu_x = c.sumbu_x; Baris 97

b.sumbu_y = 2 * h - c.sumbu_y; Baris 98

return b; Baris 99

} Baris 100

Titik cermino(Titik c) Baris 101

{ Baris 102

Titik b; Baris 103

b.sumbu_x = -c.sumbu_x; Baris 104 b.sumbu_y = -c.sumbu_y; Baris 105

return b; Baris 106

} Baris 107

Titik cermin(Titik c, Titik d) Baris 108

{ Baris 109

Titik b; Baris 110

b.sumbu_x = (2 * d.sumbu_x) - c.sumbu_x; Baris 111 b.sumbu_y = (2 * d.sumbu_y) - c.sumbu_y; Baris 112

return b; Baris 113

} Baris 114

Titik rotasi(Titik c) Baris 115

{ Baris 116

Titik b; Baris 117

(12)

return b; Baris 120

} Baris 121

(13)
(14)

Nomor = Baris ke :

1. #include adalah suatu perintah yang digunakan untuk mengatur compiler agar membaca berkas header yang disertakan dibelakang kata include yakni dalam program ini <iostream> saat pelaksanaan kompilasi.

2. Bahasa C menyediakan berkas header <math.h> yang menyediakan prototype sejumlah fungsi untuk operasi matematika. Jadi program 004 menggunakan operasi/fungsi matematika.

3. Merupakan pendeklarasian tipe data baru struct = Titik. 4. Awal dari pendeklarasian tipe data Titik.

5. Merupakan variabel bertipe int, yang merupakan anggota variabel dari tipe data baru = Titik.

6. Merupakan variabel bertipe int, yang merupakan anggota variabel dari tipe data baru = Titik.

7. Akhir dari pendeklarasian tipe data Titik.

8. Baris 8-17 merupakan Pendeklarasian Function yang merupakan satu blok kode yang melakukan tugas tertentu atau satu blok instruksi yang dieksekusi ketika dipanggil dari bagian lain dalam suatu program.

Titik Make_Titik(int x, int y); merupakan fungsi untuk menerima nilai (x1, y1) dan nilai (x2,

y2) dan nilai yang dikembalikan pada fungsi ini adalah ‘t’ dari ‘Titik t;’.

9. void tampil(Titik t); merupakan fungsi untuk menampilkan T1 = Make_Titik(x, y), T2 = Make_Titik(x, y), T3 = cerminx(T1), T3 = cerminy(T1), T3 = cermino(T1), T3 = cermin(T1, T2), T3 = cerminxh(T1, h), T3 = cerminyh(T1, h), T3 = rotasi(T1) dan fungsi ini juga tidak memiliki nilai kembalian.

10. float jarak(Titik t1, Titik t2); fungsi ini tidak digunakan pada program.

11. Titik cerminx(Titik c); merupakan fungsi untuk menerima variabel Titik c dan nilai yang

akan dikembalikan adalah ‘b’ dari ‘Titik b’ dimana nilai sumbu_y = negative ‘-‘.

12. Titik cerminy(Titik c); merupakan fungsi untuk menerima variabel Titik c dan nilai yang

akan dikembalikan adalah ‘b’ dari ‘Titik b’ dimana nilai sumbu_x = negative ‘-‘.

13. Titik cermin(Titik c, Titik d) merupakan fungsi untuk menerima variabel Titik c, Titik d

dan nilai yang akan dikembalikan adalah ‘b’ dari ‘Titik b’ dimana b.sumbu_x = (2 * d.sumbu_x) - c.sumbu_x; dan b.sumbu_y = (2 * d.sumbu_y) - c.sumbu_y;

14. Titik cerminxh(Titik c, int h); merupakan fungsi untuk menerima variabel Titik c, int h

dan nilai yang akan dikembalikan adalah ‘b’ dari ‘Titik b’ dimana b.sumbu_x = 2 * h -c.sumbu_x; dan b.sumbu_y = c.sumbu_y; .

15. Titik cerminyh(Titik c, int h); merupakan fungsi untuk menerima variabel Titik c, int h

dan nilai yang akan dikembalikan adalah ‘b’ dari ‘Titik b’ dimana b.sumbu_x = c.sumbu_x; dan b.sumbu_y = 2 * h - c.sumbu_y .

16. Titik cermino(Titik c) merupakan fungsi untuk menerima variabel Titik c, dan nilai yang

akan dikembalikan adalah ‘b’ dari ‘Titik b’ dimana b.sumbu_x = -c.sumbu_x; dan b.sumbu_y = -c.sumbu_y; .

17. Titik rotasi(Titik c) merupakan fungsi untuk menerima variabel Titik c, dan nilai yang

akan dikembalikan adalah ‘b’ dari ‘Titik b’ dimana b.sumbu_x = -c.sumbu_y; dan b.sumbu_y = -c.sumbu_x; .

18. Fungsi utama int main()

(15)

20. Pendeklarasian variabel T1, T2, T3 yang bertipe data sama yaitu tipe data Titik. 21. Pendeklarasian variabel x, y, h yang bertipe data sama yaitu tipe data int.

22. Fungsi printf pada Bahasa C yang berguna untuk menampilkan informasi ke layar = cout pada C++. Dan scan_s = cin (nilai x1 akan disimpan pada variabel x).

23. Fungsi printf pada Bahasa C yang berguna untuk menampilkan informasi ke layar = cout pada C++. Dan scan_s = cin (nilai y1 akan disimpan pada variabel y).

24. Bahwa T1 Variabel T1 = nilai yang telah dimasukkan pada baris 22 dan baris 23 (x1=1 dan y1=2).

25. Fungsi printf pada Bahasa C yang berguna untuk menampilkan informasi ke layar = cout pada C++. Dan scan_s = cin (nilai x2 akan disimpan pada variabel x).

26. Fungsi printf pada Bahasa C yang berguna untuk menampilkan informasi ke layar = cout pada C++. Dan scan_s = cin (nilai y2 akan disimpan pada variabel y).

27. Bahwa T2 Variabel T2 = nilai yang telah dimasukkan pada baris 26 dan baris 25 (x2= 3 dan y2=4).

28. Pemanggilan fungsi tampil T1, sehingga dilayar tampil Titik x : 1 dan dibawahnya Titik y : 2.

29. Masuk new line.

30. Pemanggilan fungsi tampil T2, sehingga dilayar tampil Titik x : 3 dan dibawahnya Titik y : 4.

31. Masuk new line.

32. Menampilkan dilayar pencerminan T1 terhadap sumbu x dan masuk new line . 33. Pendeklarasian bahwa T3 = cerminx(T1).

34. Pemanggilan fungsi tampil(T3) cerminx(T1). 35. Masuk new line

36. Menampilkan dilayar pencerminan T1 terhadap sumbu y dan masuk new line 37. Pendeklarasian bahwa T3 = cerminy(T1).

38. Pemanggilan fungsi tampil(T3) cerminy(T1).

39. New line, menampilkan dilayar pencerminan T1 terhadap titik (0,0) dan masuk new line 40. Pendeklarasian bahwa T3 = cermino(T1).

41. Pemanggilan fungsi tampil(T3) cermino(T1).

42. New line, menampilkan dilayar pencerminan T1 terhadap titik T2 dan masuk new line 43. Pendeklarasian bahwa T3 = cermin(T1, T3).

44. Pemanggilan fungsi tampil(T3) cermin(T1, T3).

45. New line dan untuk menampilkan dilayar Masukan nilai h : ,Dan scan_s = cin (nilai h akan disimpan pada variabel h).

46. Untuk menampilkan dilayar Pencerminan terhadap garis x=h masuk new line. 47. Pendeklarasian bahwa T3 = cerminxh(T1, h).

48. Pemanggilan fungsi tampil(T3) cerminxh(T1, h).

49. New line dan untuk menampilkan dilayar Masukan nilai h : ,Dan scan_s = cin (nilai h akan disimpan pada variabel h).

50. Untuk menampilkan dilayar Pencerminan terhadap garis y=h masuk new line. 51. Pendeklarasian bahwa T3 = cerminyh(T1, h).

52. Pemanggilan fungsi tampil(T3) cerminyh(T1, h).

53. New line dan untuk menampilkan dilayar Rotasi T1 terhadap 90 dan masuk new line 54. Pendeklarasian bahwa T3 = Rotasi (T1).

55. Pemanggilan fungsi tampil(T3) Rotasi (T1). 56. System masih bisa berhenti sejenak/enter 1X lagi. 57. Masuk new line

(16)

59.Pernyataan bahwa nilai balik program adalah nol. Nol biasa digunakan untuk menyatakan bahwa program berhasil melaksanakan tugas yang diembannya.

60.Merupakan akhir dari tubuh fungsi utama int main()

scanf_s("%d", &h); pernyataan untuk membaca sebuah bilangan bulat dan meletakkannya ke variabel h.

scanf_s("%d", &x); pernyataan untuk membaca sebuah bilangan bulat dan meletakkannya ke variabel x.

scanf_s("%d", &y); pernyataan untuk membaca sebuah bilangan bulat dan meletakkannya ke variabel y.

Analisa baris 61 – baris 121. Baris ini merupakan fungsi-fungsi yang dipanggil pada fungsi utama atau didalam int main ( ).

Fungsi yang dipanggil pada Baris 24

Fungsi yang dipanggil pada Baris 28, 30, 34, 38, 41, 44, 48, 52, 55

Fungsi yang dipanggil pada Baris 33

(17)

Fungsi yang dipanggil pada Baris 47

Fungsi yang dipanggil pada Baris 51

Fungsi yang dipanggil pada Baris 40

(18)

Fungsi yang dipanggil pada Baris 54

BAB III

(19)

Berdasarkan praktikum yang telah saya lakukan saya dapat belajar tentang tipe data abstrak atau ADT (Abstract Data Type) yakni typedef dan struct yang dapat didefenisikan :

typedef struct {

tipe data <nama_var> tipe data <nama_var> tipe data <nama_var> . . . .

}<nama_struct> ;

Referensi

Dokumen terkait

Berdasarkan dari hasil praktikum dan tugas analisa video hash table yang telah saya kerjakan, saya dapat mengambil kesimpulan hashing digunakan sebagai metode untuk

Untuk sterilisasi dengan menggunakan pemanasan, biasanya yang digunakan adalah pemanasan kering yaitu menggunakan oven sebagai alat sterilisasinya, dimana dengan menggunakan

Program PUSH dan POP ini digunakan untuk mengakses data yang ada pada stack dan mengeluarkannya sesuai dengan urutan terakhir yang dimasukkan. Stack ini berguna untuk

Analisis Data Spasial Eksploratori (ADSE) digunakan untuk menganalisis sifat-sifat statistik dari data sampel yang digunakan untuk membuat permukaan prediksi seperti :

Berdasarkan hasil pengamatan data kelompok kami, tipe pola sulur dapat diketahui bahwa dari 4 anggota praktikan terdapat 22 bertipe loop, 18 bertipe whorl dan

Program di atas terdiri dari beberapa fungsi atau subprogram yakni fungsi enqueue/tambah data (berfungsi untuk  memasukkan/menambahkan data ke dalam antrian), fungsi

Algoritma ini digunakan untuk membaca Nomor BP yang diberikan (diinput dari keyboard), sehingga bila algoritma ini dijalankan nama mahasiswa akan langsung

Dalam ragam pengalamatan ini dipergunakan register umum 16 bit sebagai penunjuk alamat tempat tujuan data, register yang biasa digunakan adalah register HL,