Dimas Singgih - Laporan 3 [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

LAPORAN PRAKTIKUM STRUKTUR DATA



MODUL 3 Abstract Data Type TabInt



Nama : Dimas Singgih NIM



: 3411201039



JURUSAN INFORMATIKA FAKULTAS SAINS DAN INFORMATIKA UNIVERSITAS JENDERAL ACHMAD YANI 2020



BAB I PENDAHULUAN 1.1 Latar Belakang Sebuah ADT Tabel integer adalah pembentukan Tabel (array) yang berisi sekumpulan data bertipe integer. ADT tabel integer terdiri dari tempat penyimpanan obyek dalam array yang terdefinisi dengan tipe integer, serta variable pencacah bagi obyek tersebut, sehingga proses akses terhadap obyek dapat dilakukan dengan mudah. Variable pencacah dapat disebut juga sebagai variable yang menyimpan jumlah data/ elemen yang ada pada tabel.



BAB II TUGAS PRAKTIKUM 2.1 File I Boolean.h a. Source Code /* Program Author Kelas Deskripsi Tanggal */ #ifndef #define #define #define #define #endif



: : : : :



boolean.h Dimas Singgih B Membuat tipe boolean 06-04-2021



boolean_H boolean_H true 1 false 0 boolean unsigned char



b. Analisa File I boolean.h merupakan file header dengan ekstensi .h yang berisi deklarasi fungsi C dan definisi makro yang akan digunakan di sebuah program. File ini membandingkan kondisi antara true atau false dalam sebuah program.



2.2 File II tabint.h a. Source Code /* Program Author Kelas Deskripsi Tanggal */



: : : : :



tabint.h 3411201039 Dimas Singgih B Header file dari prototype Tab Integer 06-04-2021



#ifndef _TABINT_H #define _TABINT_H #include "boolean.h" #include #include #define nMax 10 #define IdxUndef -999 #define ElType int /** Definisi ABSTRACT DATA TYPE Tab Integer **/ typedef struct { ElType T1[nMax]; // koleksi bilangan bertipe integer int nEff; // jumlah data atau elemen pada tabel }TabInt;



/* Prototype TabInt */ /* Konstruktor membentuk TabInt */ void CreateTabInt (TabInt *T); /* I.S : T terdefinisi, tidak diketahui nilainya F.S : membentuk sebuah TabInt dengan nEff = 0 */ /* Selektor TabInt **/ int GetJumElmt(TabInt T); // Mengirimkan banyaknya elemen tabel atau mengirimkan nol jika tabel kosong int GetFirstIdx (TabInt T); // Mengirimkan elemen pertama dari tabel int GetLastIdx (TabInt T); // Mengirimkan elemen terakhir dari tabel int GetElmt (TabInt T, int idx); // Mengirimkan elemen pada index ke-idx dari tabel, dengan syarat x 0) (*T).T1[i] = v; else printf("kosong"); } /* Destruktor/Dealokator: tidak perlu */ /** { KELOMPOK OPERASI Cek Elemen kosong atau penuh} **/ boolean IsEmpty(TabInt T){ // mengecek apakah jumlah data pada tabel kosong // mengirimkan true jika tabel kosong atau mengirimkan false jika tidak if(T.nEff==0) return(true); else return(false); } boolean IsFull(TabInt T){ // mengecek apakah jumlah data pada tabel penuh // mengirimkan true jika tabel penuh, mengirimkan false jika tidak if(T.nEff==nMax) return(true); else return(false); } /** { KELOMPOK Interaksi dengan I/O device, BACA/TULIS } **/ void BacaElmt (TabInt *T){ /* I.S : T terdefinisi, mungkin kosong F.S : Mengisi komponen T dengan nilai elemen tabel dari yang dibaca */ int i,x; (*T).nEff = 0; printf("Masukan Nilai : ");scanf("%d",&x); while(x != IdxUndef){ (*T).nEff = (*T).nEff + 1; (*T).T1[(*T).nEff] = x; printf("Masukan Nilai : ");scanf("%d",&x); } } void CetakTabInt(TabInt T){ /* I.S : T terdefinisi, mungkin kosong F.S : menampilkan semua elemen tabel ke layar */



int i,X; if(!IsEmpty(T)){ for(i=1;i