Oleh :
3411171112
Kelas : D
2018
KESIMPULAN DAN ANALISIS DARI SOURCE CODE ADT LINE
Sebuah program dalam bahasa C yang utuh, seringkali terdiri dari beberapa modul
program. Sebuah modul mungkin mewakili sekumpulan rutin sejenis, ADT (Abstract Data Type:
definisi type dan primitifnya).
Pada hakikatnya sebuah program utuh terdiri dari kelompok file karena ADT ini menggunakan
ADT POINT maka file nya pun menggunakan ADT POINT yang terdiri dari beberapa file
sebagai berikut.
1. File Header, dengan nama boolean.h. Untuk setiap type dan primitifnya, ada sebuah file point.h.
Contohnya jika anda memerlukan ADT LINE, maka ada 1 buah file header yaitu point.h.
2. File yang berisi Body dari file header yang bersangkutan jam.c . File ini disebut sebagai file
realisasi dari prototype yang didefinisikan pada jam.h. Akan ada sebuah mjam.c untuk setiap
jam.h. Contohnya mjam.c. File yang berisi main program (dari prosedur/fungsi lain yang hanya
dibutuhkan oleh main), misalnya untuk manipulasi jam.
Contoh program dalam beberapa file atau biasa disebut dengan modul. Modul berikut adalah
untuk memanipulasi jam.
Setelah mempelajari dari hasil praktikum ini jadi lebih mengetahui fungsi-fungsi dari
header yang terdapat di dalam source tersebut.
Keuntungan kita menggunkan Abstract Data Type (ADT) adalah:
1. Struktur data dapat di modifikasi.
2. User tidak perlu secara langsung mengakses objek data tersebut.
3. Kompilasi yang terpisah.
File boolean.h
Fungsi dari file ini yaitu untuk menjalankan source boolean yang tidak ada
dalam bahasa C jadi menggunakan tipe bentukan lagi yaitu boolean.h
/* program :boolean. h
Author :(3411171112,Devi Fajar Wati)
Kelas :D
Deskripsi : Header file dari prototype jam
Tanggal :21 Februari 2018
*/
#ifndef boolean_H
#define boolean_H
#include "boolean.h"
#define true 1
#define false 0
#define boolean unsigned char
#endif
File jam.h
File ini berisi deskripsi-deskripsi untuk membuat body dari jam.c .
Didalamnya terdapat Konstruktor membentuk ADT Jam untuk membentuk nilai type.
Semua objek (variabel) ber-type tersebut melalui konstruktor. Biasanya namanya diawali
Make.
/* program :jam. h
Author :(3411171112,Devi Fajar Wati)
Kelas :D
Deskripsi : Header file dari prototype jam
Tanggal :21 Februari 2018
*/
#ifndef JAM_H
#define JAM_H
#include "boolean.h"
#define true 1
#define false 0
#define boolean unsigned char
#endif
typedef struct {
int Hour ; /* Hour [0..23] */
int Minute; /*minute [0..59] */
int second; /* second [0..59]*/
} JAM ;
/* Destruktor/Dealokator:tidak perlu */
*/
File jam.c
Pada file ini disebut juga bagian body, dikatakan body karena isi dari function dan
procedure yang telah dideklarasikan sebelumnya. Isi dari function dan procedure
membutuhkan logika dari pemikiran setiap program designer. Body ini digunakan untuk
menguji definisi atau deklarasi yang sudah dibuat itu sudah benar atau belum.
/* program :jam. c
Author :(3411171112,Devi Fajar Wati)
Kelas :D
Deskripsi : body file dari prototype jam
Tanggal :21 Februari 2018
*/
#include "jam.h"
#include <stdio.h>
#include <conio.h>
return (jamBaru);
}
JAM NextNDetik (JAM J, int N){
/*menambahkan nilai N detik pada jam, dan mengirimkan nilai jam
baru */
int i;
JAM jamBaru;
jamBaru = J;
if (N>0 && N <=86400){ // menambahkan detik hanya samapai 24 jam
for (i=1; i<=N; i++){
jamBaru = NextDetik (jamBaru);
}
}
return (jamBaru);
}
long int Durasi ( JAM Jaw , JAM JAkh){
/*menghitung selisih dari dua buah jam dalam bentuk detik
proses : mengirimkan JAkh - JAw dlm Detik,
Hasilnya negatif jika Jaw > JAkhir
jika hasilnya negatif maka ubahlah menjadi nilai positif
*/
long int detikAwl, detikAkh,result;
detikAwl = JamToDetik (Jaw);
detikAkh = JamToDetik (JAkh);
result = detikAwl - detikAkh;
if (result < 0){
result = result * (-1);
}
return (result);
}
/** { Kelompok Konversi Terhadap Type }**/
long int JamToDetik (JAM J){
/*melakukan konversi jam menjadi Detik
Rumus : detik =3600*hour+menit*60+detik
nilai maksimum = 3600*23+59*60+59*60
*/
long int detik;
detik = (J.Hour*3600)+(J.Minute*60)+J.second;
return (detik);
}
File m.jam
Pada file ini adalah isi dari fungsi utama atau program utama yang khusus dibuat,
fungsinya ialah untuk mengetes ulang kebenaran dari ADT dan sebagai contoh atau
implementasi dari penggunaan ADT yang telah dibuat.
/* program :mjam.c
Author :(3411171112,Devi Fajar Wati)
Kelas :D
Deskripsi : Contoh main driver dari ADT Jam
Tanggal :21 Februari 2018
*/
#include "jam.h"
#include <stdio.h>
#include <conio.h>
int main() {
// Kamus Data
JAM J1,J2,J3,J4;
int tambahanDetik;
//Algoritma
ReadJam (&J1);
printf("Nilai J1 = ");
PrintJam(J1);
printf("\n");
J2=NextDetik(J1);
printf("Nilai J2 = ");PrintJam (J2);printf("\n");
if (JEQ(J3,J1))
printf("nilai J3 sama dengan J1\n");
if (JLT(J3,J1))
printf("nilai J3 lebih kecil dari J1\n");
if (JGT(J3,J1))
printf("nilai J3 lebih besar dari J1\n");
if (JEQ(J1,J4))
printf("nilai J1 sama dengan J4\n");
if (JLT(J1,J4))
printf("nilai J1 lebih kecil dari J4\n");
if (JGT(J1,J4))
printf("nilai J1 lebih besar dari J4\n");
Reset (&J4);
printf ("Nilai J4 =");PrintJam(J4);Print("\n");
http://natalia18.blog.binusian.org/2016/12/13/abstract-data-type-dalam-bahasa-c/