MODUL 3
Abstract Data Type TabInt
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 : boolean.h
Author : Dimas Singgih
Kelas : B
Deskripsi : Membuat tipe boolean
Tanggal : 06-04-2021
*/
#ifndef boolean_H
#define boolean_H
#define true 1
#define false 0
#define boolean unsigned char
#endif
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.
#ifndef _TABINT_H
#define _TABINT_H
#include "boolean.h"
#include <stdio.h>
#include <conio.h>
#define nMax 10
#define IdxUndef -999
#define ElType int
b. Analisa
File II tabint.h (file library) adalah file header baru dengan ekstensi .h yang berisi
deklarasi, tipe bentukan TabInt(ElType T1[nMax] : integer , nEff : integer) dan dalam file
ini berisi prototype type program yang nantinya akan di realisasikan serta tidak boleh ada
deklarasi variabel. Dalam file ini, memiliki 6 procedure dan 12 function.
2.3 File III tabint.c
a. Source Code
/* Program : tabint.c
Author : 3411201039 Dimas Singgih
Kelas : B
Deskripsi : Realisasi dari prototype Tab Integer
Tanggal : 06-04-2021
*/
#include "boolean.h"
#include "tabint.h"
#include <stdio.h>
#include <conio.h>
/* Prototype TabInt */
(*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);
}
}
T3.nEff = T1.nEff;
if(T1.nEff == T2.nEff){
for(i = 1 ; i <= T1.nEff ;i++){
T3.T1[i] = T1.T1[i] * T2.T1[i];
}
}
else{
printf("\n Jumlah Elemen pada T1 tidak sama dengan T2");
for(i = 1 ; i <= T3.nEff ;i++){
T3.T1[i] = 0;
}
}
return T3;
}
TabInt KaliKons (TabInt T, int c){
// Prekondisi T tidak kosong,
// Mengirimkan Tabel baru dengan setiap elemen tabel dikalikan c
// Contoh : Nilai T1 (5, 2, 10) dan C = 2
// nilai Tabel baru = 10, 4, 20
int i;
TabInt T3;
for(i = 1 ; i <= T.nEff ;i++){
T3.T1[i] = T.T1[i] * c;
}
return T3;
}
/** Kelompok operasi relasional terhadap TabInt **/
boolean IsEQTab(TabInt T1, TabInt T2){
// Prekondisi T1 dan T2 harus berukuran sama dan tidak kosong
// mengirimkan true jika ukuran T1 = T2: semua elemennya sama,
// dan jika tidak mengirimkan false
int i;
boolean cek;
cek = true;
if(T1.nEff == T2.nEff){
for(i = 1 ; i <= T1.nEff ;i++){
if(T1.T1[i] != T2.T1[i]){
cek = false;
}
}
if(cek)
return true;
else
return false;
}
else
printf("jumlah elemen tabel tidak sama");
}
if(Tin.nEff != 0){
for(i = 1 ; i <= Tin.nEff ;i++ ){
(*Tout).T1[i] = Tin.T1[i];
}
}
else
printf("Tin kosong");
}
TabInt InverseTab(TabInt T){
// Menghasilkan tabel dengan urutan tempat yang terbalik, yaitu:
// elemen pertama rnenjadi terakhir,
// elemen kedua menjadi elemen sebelum terakhir, dst..
// Tabel kosong menghasilkan tabel kosong
// Contoh : Nilai T (5, 2, 10)
// nilai Tabel baru = 10, 2, 5
int i,j;
TabInt T2;
cek = 999;
for(i = 1 ; i <= T.nEff ;i++){
if(T.T1[i] == X){
cek = i;
}
}
if(cek != 999)
return cek;
else
return -999;
}
b. Analisa
File III tabint.c adalah bagian body dari sebuah program Tabel. File ini disebut
sebagai file realisasi dari prototype yang didefinisikan pada tabint.h dan berupa kode
program dalam bahasa C yang memiliki deklarasi variabel. Dalam file ini, memiliki 6
procedure dan 12 function.
2.4 File IV mtabint.c
a. Source Code
/* Program : mtabint.c
Author : 3411201039 Dimas Singgih
Kelas : B
Deskripsi : main driver dari Tab Integer
Tanggal : 06-04-2021
*/
#include "boolean.h"
#include "tabint.h"
#include <stdio.h>
#include <conio.h>
int main(){
TabInt T1,T2,T3,T4;
int N,First,JUM,Last,Elm,indeks,j,w, set,Empty,cari;
printf("\n|==================================================|\n
");
printf("\n| |\n");
printf("\n|==================ADT
TabInt======================|\n");
printf("\n| |\n");
printf("\n|==================================================|\n
");
printf("\n");
CreateTabInt(&T4);
printf("\n====================Konstruktor=====================\n
");
CreateTabInt(&T1);
printf("\nTabel T1 : ");
CetakTabInt(T1);
CreateTabInt(&T2);
printf("\nTabel T2 : ");
CetakTabInt(T2);
printf("\n================Mengisi Elemen
Tabel===============\n");
printf("\n IdxUndef -999\n");
BacaElmt(&T1);
CetakTabInt(T1);
printf("\n=====================Selektor======================\n"
);
JUM=GetJumElmt(T1);
printf("\nJumlah Elemen= %d", JUM);
First=GetFirstIdx(T1);
printf("\nNilai Elemen pertama= %d", First);
Last=GetLastIdx(T1);
printf("\nNilai Elemen terakhir= %d", Last);
Elm=GetElmt(T1,2);
printf("\nNilai Elemen ke-2= %d", Elm);
printf("\n===============Operator Nilai
TabInt===============\n");
printf("\n=======Perkalian Tabel===========\n");
printf("\n IdxUndef -999\n");
BacaElmt(&T2);
printf("\nnilai T1 : ");
CetakTabInt(T1);
printf("\nnilai T2 : ");
CetakTabInt(T2);
T3 = KaliTab(T1,T2);
printf("\nHasil Perkalian T1 dan T2 : ");
CetakTabInt(T3);
printf("\n=============Kali Konstanta==========");
printf("\n Masukan nilai pengali : ");scanf("%d",&N);
T4 = KaliKons(T1,N);
T4.nEff = T1.nEff;
printf("Hasil perkalian dengan Konstanta %d : ",
N);CetakTabInt(T4);
b. Analisa
File IV mtabint.c merupakan main driver yang digunakan untuk menguji ADT dan
sebagai jawaban atas persoalan yang diberikan. Pada file ini program dijalankan.
2.5 Hasil Screenshoot
BAB III
KESIMPULAN
Pada Modul 3 membahas mengenai Abstract Data Type TabInt yang dimana memerlukan
spesifikasi type primitif yang berhubungan dengan TabInt. Type dalam bahasa C misalnya menjadi
struct, dalam ADT TabInt ini terdapat type struct yang berbentuk TabInt yang terdiri dari
T1[nMax] yang berbentuk Eltype dan nEff untuk menunjakan indeks di elemen terakhir yang
berbentuk integer.
Dalam program ini, memerlukan header file yang terdiri dari boolean.h yang berisi
deklarasi untuk pemanggilan fungsi true atau false dan tabint.h yang berisi deklarasi, tipe
bentukan, dan prototype. Selain itu terdapat body file yang tersimpan sebagai tabint.c yang berisi
realisasi sebuah prototype dan merupakan isi dari sebuah program TabInt. Serta terdapat main
driver yang tersimpan dalam file mtabint.c yang merupakan induk dari program ADT TabInt. ADT
TabInt memiliki 6 procedure dan 12 function.