• Tidak ada hasil yang ditemukan

JURUSAN SISTEM INFORMASI

N/A
N/A
Protected

Academic year: 2021

Membagikan "JURUSAN SISTEM INFORMASI"

Copied!
13
0
0

Teks penuh

(1)

LAPORAN PRAKTIKUM RESMI

ALGORITMA & STRUKTUR DATA II

Disusun oleh :

Yonagatha Missyerry Paramitha Putri 201301069

Dosen pengampu :

YosefMurya Kusuma Ardhana.S.T., M.Kom

JURUSAN SISTEM INFORMASI

SEKOLAH TING GI ILMU KOMPUTER YOS

SUDARSO

PURWOKERTO

2014

(2)

BAB I

LANDASAN TEORI

1. PENGANTAR

Tree merupakan struktur data non-linear. Struktur data dalam bentuk pohon (tree) dapat diartikan sebuah struktur data yang secara bentuk menyerupai sebuah pohon , yang terdiri dari serangkaian simpul (node) yang saling berhubungan.

Simpul-simpul atau node tersebut dihubungkan oleh sebuah vektor. Node yang berada di pangkaptree disebut node akar (root) , sedangkan node yang berada paling ujung pada piramida tree disebut node daun (leaf).

2. STRUKTUR TREE

Semua bulatan disebut simpul (node) Node F adalah node induk dari H dan I. Node H , I adalah node anak dari F.

Akar (root) adalah simpul yang tidak memiliki superordinat. Untuk pohon yang di contohkan di atas maka root adalah node A.

Daun (leaf) adalah simpul yang tidak memiliki subordinat. Untuk pohon yang di contohkan di atas maka leaf adalah node D , E , G , H dan I.

Node B merupakan superordinat dari node D dan E.

(3)

3. POHON BINER (BINARY TREE)

Pohon biner adalah sebuah tree yang pada masing-masing simpulnya hanya dapat memiliki maksimum dua simpul anak , tidak boleh lebih. Pada pohon biner , umumnya kedua node anak disebut dengan posisinya , yaitu subordinat kiri dan subordinat kanan.

Striclybinarytree

Striclybinarytree adalah pohon biner yang semua nodenya (kecuali simpul leaf) mempunyai lengkap node subordinat kiri dan node subordinat kanan.

Completelybinarytree

Completelybinarytree dengan depth = d adalah pohon biner striclybinarytree , dimana semua leaf hanya berada pada level d.

Balancedbinarytree

Balancedbinarytree (pohon biner seimbang) atau biasa disebut dengan pohon AVL adalah pohon biner yang ketinggian subtree kiri dan subtree kanan untuk setiap nodesuperordinat paling banyak selisih 1.

4. PENOMORAN NODE POHON BINER

Untuk melakukan konversi telah disepakati cara penomoran setiap node dalam binarytree sebagai berikut :

Jika sebuah node bernomor n , maka subordinat kiri bernomor 2n dan subordinat kanan bernomor 2n + 1.

Noderoot diberi nomor 1.

Dengan mengetahui dari nomor setiap node maka sebuah binarytree dapat direpresentasikan ke dalam sebuah array satu dimensi.

5. PROSES INISIALISASI

Inisialisasi yang dimaksud adalah pemberian nilai awal pada suatu variabel atau kondisi yang dapat digunakan sebagai ciri suatu kondisi.

(4)

Instruksi dasar untuk inisialisasi : Root = NULL;

P=NULL:

Inisialisasi bila ditulis dalam sebuah fungsi : Nama fungsi Inisialiasasi

VoidInisialisasi () {

Root = NULL;

P = NULL;

}

Fungsi ini harus dilaksanakan sebelum operasi yang lain. Pointerroot ketika dideklarasikan isinya sudah ada , tapi nilainya tidak diketahui. Pointerroot perlu diisi dengan NULL karena pointerroot ini akan dijadikan tanda. Bila isinya NULL , beartitree belum ada. Bila isinya bukan NULL beartitree sudah ada , dimananode akar sedang ditunjuk oleh pointerroot.

(5)

BAB II

PENJELASAN PROGRAM

Pada bab Tree ini akan membahas tentang listing program Tree pada program eclipse.

Listing program Tree

* Tree.cpp *

* Created on: Sep 10, 2014

* Author: Yonagatha Missyerry Paramitha Putri */ #include<iostream> Using namespace std; structNode{ int data; Node*kiri; Node*kanan; };

void tambah(Node**root,int databaru) {

if((*root) == NULL) {

Node*baru; baru = newNode; baru->data = databaru;

(6)

baru->kiri = NULL; baru->kanan = NULL; (*root) = baru; (*root)->kiri = NULL; (*root)->kanan = NULL;

cout<<"Data bertambah!\n"; }

Else

if(databaru< (*root)->data) tambah(&(*root)->kiri,databaru); else

if(databaru> (*root)->data) tambah(&(*root)->kanan,databaru); else

if(databaru == (*root)->data) cout<<"Data sudah ada!\n"; }

Void preOrder(Node*root) {

if(root != NULL) {

cout<<root->data; cout<<endl; preOrder(root->kiri); preOrder(root->kanan); } } Void inOrder(Node*root) { if(root != NULL) { inOrder(root->kiri);

cout<<root->data; cout<<endl; inOrder(root->kanan); } } Void postOrder(Node*root) { if(root != NULL) {

(7)

postOrder(root->kiri); postOrder(root->kanan); cout<<root->data; cout<<endl; } } int main() { int pil; Node*pohon; pohon = NULL; do{ int data;

cout<<"Menu"<<endl; cout<<"1. Tambah\n"; cout<<"2. Lihat pre-order\n";

cout<<"3. Lihat in-order\n"; cout<<"4. Lihat post-order\n";

cout<<"5. Exit\n"; cout<<"Pilihan : "; cin>>pil;

switch(pil) {

case 1:

cout<<"Data baru : ";

cin>>data; tambah(&pohon,data); break;

case 2: if(pohon!=NULL) preOrder(pohon); else cout<<"Masih Kosong!\n"; break; case 3: if(pohon!=NULL)

(8)

inOrder(pohon); else cout<<"Masih Kosong!\n"; break; case 4: if(pohon!=NULL) postOrder(pohon); else cout<<"Masih kosong!\n"; break; } }while(pil!=5); return 0; } Hasil Output

(9)

Penjelasan Listing program Tree pada eclipse

1. Include adalah pengarah suatulibrary yang digunakan untuk suatu program. 2. Iostream adalah library untuk input dan output “cin” dan “cout”.

3. Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.

4. Tanda ‘{‘ dan ‘}’ adalah tanda untuk mengawali dan mengakhiri program. 5. Return 0 berfungsi untuk menampilkan program setelah dieksekusi.

6. Cout digunakan untuk menampilkan output program yang sudah dituliskan. 7. Cin digunakan untuk menginputkan data yang dimasukkan oleh user. 8. structNode :untuk tipe

data abstrak struct pada proses pembuatan node.

9. void tambah : Prosedur yang di gunakan untuk menambah Node pada program Tree.

10. if((*root) == NULL) {

Node*baru; baru = newNode;

baru->data = databaru; baru->kiri = NULL; baru->kanan = NULL; (*root) = baru; (*root)->kiri = NULL; (*root)->kanan = NULL; cout<<"Data bertambah!\n"; }

Jika root = NULL maka data bertambah , artinya jika ada data yang di tambahkan maka node baru akan bertambah.

11. Statementif-else itu Digunakan untuk modul perulangan pada program.

12. Else

if(databaru< (*root)->data)tambah(&(*root)->kiri,databaru);

(10)

if(databaru> (*root)->data) tambah(&(*root)->kanan,databaru); else if(databaru == (*root)->data) cout<<"Data sudah ada!\n"; }

Jika data yang sama di tambahkan , maka statement akan menandakan bahwa data yang

sama sudah ada dalam program Tree.

13. Void preOrder untuk menampilkan data yang telah di tambahkan dalam suatuNode akar (root) dan node daun (leaf).

14. if(root != NULL) { cout<<root->data; cout<<endl; preOrder(root->kiri); preOrder(root->kanan);

} :script program untuk mengeksekusi perintah preOrder pada program.

15. Void inOrder untuk menampilkan data yangtelah di tambahkan.

16. if(root != NULL) { inOrder(root->kiri); cout<<root->data; cout<<endl; inOrder(root->kanan);

(11)

17. void postOrder : untuk menampilkan data , tetapidata yang ditampilkan lebih dahulu yaitu data yang paling terakhir ditambahkan pada program Tree.

18. if(root != NULL) { postOrder(root->kiri); postOrder(root->kanan); cout<<root->data; cout<<endl;

} : scrpit program untuk mengeksekusi perintah postOrder pada program.

19. Node*pohon; pohon = NULL; Adalah proses Inisialisasi pada node dalam program Tree.

20. tambah(&pohon,data); adalah Pemanggilan prosedur tambah pada main program 21. preOrder(pohon); adalah Pemanggilan prosedur preOrder pada main program. 22. inOrder(pohon); adalah Pemanggilan prosedur inOrder pada main program. 23. Statement do-while adalah Digunakan untuk modul perulangan pada main program.

(12)

BAB III

KESIMPULAN

1. Tree merupakan struktur data non-linear. Struktur data dalam bentuk pohon (tree) dapat diartikan sebuah struktur data yang secara bentuk menyerupai sebuah pohon , yang terdiri dari serangkaian simpul (node) yang saling berhubungan.

2. Simpul-simpul atau node tersebut dihubungkan oleh sebuah vektor. Node yang berada di pangkaptree disebut node akar (root) , sedangkan node yang berada paling ujung pada piramida tree disebut node daun (leaf).

3. Pohon biner adalah sebuah tree yang pada masing-masing simpulnya hanya dapat memiliki maksimum dua simpul anak , tidak boleh lebih. Pada pohon biner , umumnya kedua node anak disebut dengan posisinya , yaitu subordinat kiri dan subordinat kanan.

Menurut praktikum diatas dapat diambil kesimpulan :

a. void tambah : Prosedur yang di gunakan untuk menambah Node pada program Tree

b. Void preOrder untuk menampilkan data yang telah di tambahkan dalam suatuNode akar (root) dan node daun (leaf).

c. Void inOrder untuk menampilkan data yangtelah di tambahkan.

d. void postOrder : untuk menampilkan data , tetapidata yang ditampilkan lebih dahulu yaitu data yang paling terakhir ditambahkan pada program Tree. e. tambah(&pohon,data); adalah Pemanggilan prosedur tambah pada main

program

f. preOrder(pohon); adalah Pemanggilan prosedur preOrder pada main program.

g. inOrder(pohon); adalah Pemanggilan prosedur inOrder pada main program.

h. Dan pada praktikum diatas getch() , clscr(), dan #include<windows.h> tidak bisa di jalankan di eclips , tetapi bisa dijalankan di borland , karna memiliki format yg berbeda

(13)

BAB V

DAFTAR PUSTAKA

Ardhana. YM Kusuma. 2013. Struktur Data dalam Ilustrasi EclipseIndigo C ++. Yogyakarta: CAPS (Center of AcademicPublishing Service).

Referensi

Dokumen terkait

Busur Kepulauan ini sendiri terbentuk akibat adanya proses magmatisme yang disebabkan oleh tumbukan antara lempeng samudra dengan lempeng samudra yang diikuti oleh

[r]

Kesimpulan dari penelitian ini menunjukkan bahwa pemberian kulit daging buah kopi fermentasi MOL sebagai ransum dalam bentuk pelet terhadap kelinci peranakan rex jantan lepas

Di dalam analisis-analisis tentang perubahan masyarakat, biasanya diterima asumsi, bahwa agama dianggap sebagai unsur yang paling sukar dan

kita harus menebak dan coba-coba dua bilangan yang apabila dijumlahkan akan. menghasilkan nilai koefesien b dan apabila dikalikan akan menghasilkan

Kenaikan arus kas operasi menunjukkan kemampuan kegiatan operasi perusahaan untuk menghasilkan kas makin besar (meningkat) namun menurunnya arus kas operasi pada

• Pertumbuhan (q-to-q) produksi Industri Manufaktur Besar dan Sedang Triwulan I tahun 2014 Provinsi Jawa Tengah turun sebesar (8,93) persen dari produksi industri Triwulan IV

mengajarkan suri tauladan yang berguna bagi kehidupan manusia. Maka dari saat itu sampai saat sekarang tradisi memperingati hari kematian Syech Abdul Rahman selalu