• Tidak ada hasil yang ditemukan

Struktur Data Modul 01 ADT

N/A
N/A
Protected

Academic year: 2018

Membagikan "Struktur Data Modul 01 ADT"

Copied!
5
0
0

Teks penuh

(1)

MODULI–ADT(AbstractDataType)

I. TUJUAN

1. MemahamikonsepdanimplementasiADTdalambahasaC.

2. MemahamipenggunaanADTsederhanadan majemuk dalamaplikasisehari-hari.

II. DASARTEORI

Tipe datamerupakan sebuahabstraksiyang digunakansebagaitemplateuntuktipe data

yang akandisimpan. Tipe data digunakan untuk memodelkan sekumpulan data tertentu. Tipe

data dibedakan menjadi 2 jenis, yaitu: tipe data dasar dan tipe data bentukan.

• Tipe datadasaradalahtipedatayang sudahadapadabahasapemrograman yang digunakan,seperti:bilanganbulat(integer), bilanganrealpresisitunggal(float),

bilanganrealpresisiganda(double), karakter(char),dankosong(void).

• Tipe data bentukan adalah suatu tipe data yang didefinisikan sendiri oleh Programmer misalnya saat menemui kebutuhan tertentu yang tidak dapat hanya

diwakilkan oleh 1 tipe data dasar, misalnya kebutuhan untuk mengakses buku atau

mahasiswa. Tipe data bentukan merupakan gabungan dari 1 atau lebih tipe data dasar.

Tipe data bentukan memiliki 2 struktur utama, yaitu : nama tipe data baru dan record

(satu atau lebih tipe data dasar yang didefinisikan )

Tipedataabstract(ADT)adalahsebuahentitasdengansejumlahatributdansekumpulan

operasiyangdidefinisikanpadaatribut-atributtersebut.

ADTterdiriatas2bagian:

1. Spesifikasi(WHAT)

Terdiri darinama ADT,deskripsi domaintipe data, dandaftar operasi-operasiyang

diterapkanpadacontohtipedata.

2. Implementasi(HOW)

Berisibadandarisetiapoperasiyangdisediakan.

ADTdapat berupa tipe data dasar namun diberi nama baru atau berupa kumpulan tipe

databerbeda yang diberinama baru. Kumpulan data penyusun ADT dapat berupa tipe data

dasar maupun ADT lain. Untuk pembuatanADTpada bahasaC menggunakan

keywordtypedef. Contoh pendefinisian ADT yang merupakan tipe data dasar namun diberi

(2)

typedef struct

{

int jumlah;

}Quantity;

Quantity adalah ADT yang memiliki 1 tipe data dasar, yaitu integer (bilangan bulat).

Contoh ADT yang mengandung beberapa tipe data dasar adalah titip (Point) yang tergambar

pada digram Cartesius. Terdapat 2 tipe data dasar, yaitu bilangan bulat (integer). Bilangan

pertama digunakan untuk menunjukkan posiis absis (sumbu x) dan bilangan kedua untuk

menunjukkan posisi ordinat (sumbu y).

Dapatdidefinisikansebagaiberikut:

typedef struct {

int Absis; int Ordinat; }Point;

Selain kedua jenis ADT di atas, terdapat pula ADT yang terdiri dari ADT lain. Misalnya ADT

Line yang mengandung ADT lain, yaitu Point. Garis (Line) terbentuk dari beberapa titik

(Point).

Sehingga ADT Line dapat didefinisikan sebagai berikut:

typedef struct {

Point Start; Point End; }Line;

SetelahADTdidefinisikan, laludibuat pendeklarasianvariabelnya, misalnyapada ADT

Pointyangtelahdibuat,makadapatdibuatvariabelPdengancara:

Point P;

Cara membaca pendeklarasian variabel di atas : Point adalah tipe data dan P adalah

variabeldaritipedataPoint.

Variabel di dalam ADT dapat diakses dengan tanda titik (.) misalnya pengaksesan nilai

absispadatitikkoordinat,makasyntaxyangdigunakanadalahP.Absisataupengaksesan nilaiordinatpadatitikkoordinatmakasyntaxyangdigunakanadalahP.Ordinat.

Pendeklarasian variabel Line, misalnya Line L;

Contoh cara pengaksesan nilai ordinat titik awal pada Line dengan L.Start.Ordinat

L adalah nama variabel dari tipe data Line diikuti tanda titik (.) kemudian variabel dari tipe data

(3)

Point (Absis/Ordinat).

III.DEMO

//file point.h

#include <stdio.h> #include <conio.h> #include <math.h>

//mendefinisikan tipe data baru dengan nama tipe data “Point” typedef struct

{

int Absis; int Ordinat; }Point;

// Inisialisasi prosedur/fungsi yang akan digunakan :

void InitPoint(Point *P, int x, int y); void PrintPoint(Point P);

int IsSame(Point P1, Point P2); float Jarak(Point P1, Point P2);

//file point.c

#include "point.h"

void InitPoint(Point *P, int x, int y) {

(4)

void PrintPoint(Point P); {

printf("[%d,%d]", P.Absis, P.Ordinat); }

int IsSame(Point P1, Point P2) {

return P1.Absis==P2.Absis && P1.Ordinat==P2.Ordinat; }

float Jarak(Point P1, Point P2) {

float deltaX, deltaY; deltaX=P2.Absis-P1.Absis; deltaY=P2.Ordinat-P1.Ordinat; return(sqrt(deltaX*deltaX+deltaY*deltaY));//rumus phytagoras } //file mainPoint.c #include "point.h" void main() { int x1,y1,x2,y2;

Point koordinat1, koordinat2;

printf("Masukkan koordinat titik pertama sumbu x : "); scanf("%d",&x1);

printf("Masukkan koordinat titik pertama sumbu y : "); scanf("%d",&y1);

printf("Masukkan koordinat titik kedua sumbu x : "); scanf("%d",&x2);

printf("Masukkan koordinat titik kedua sumbu y : "); scanf("%d",&y2);

InitPoint(&koordinat1,x1,y1); InitPoint(&koordinat2,x2,y2);

printf("\n\nKoordinat titik pertama : "); PrintPoint(koordinat1);

printf("\nKoordinat titik kedua : "); PrintPoint(koordinat2);

if(IsSame(koordinat1, koordinat2))

printf("\nKedua titik koordinatnya sama…"); else

printf("\nKedua titik koordinatnya berbeda…");

printf("\nJarak kedua titik : %5.2f",Jarak(koordinat1,koordinat2));

(5)

Referensi

Dokumen terkait

Surat Pemberitahuan Retribusi Daerah yang selanjutnya dapat disingkat SPTRD adalah surat yang digunakan oleh Wajib Retribusi untuk melaporkan objek retribusi dan wajib

Melaui model pembelajaran Kooperatif (Cooperative Learning) tipe Number Head Together (NHT) dan Student Team Achievment Division (STAD), siswa diharapkan dapat

Yang dimaksud dengan Pejabat Fungsional Perekayasa yang disesuaikan Penetapan Angka Kreditnya dengan Peraturan Kepala Badan Pengkajian dan Penerapan Teknologi ini adalah

Yoghurt kacang merah dibuat dengan menggunakan metode Illinois yang dimodifikasi. Komponen dalam yoghurt kacang merah dapat saling bersinergi sehingga dapat

Air kumbahan dari loji kumbahan Syarikat Indah Water yang dilepaskan ke dalam longkang di kawasan Taman Nenas dua kali sehari iaitu pada waktu pagi dan waktu

Berdasarkan pengujian hipotesis pertama menunjukkan bahwa, Ada perbedaan pengaruh yang signifikan pendekatan bermain dan drill terhadap kemampuan dribbling bola dalam

Evaluasi adalah proses untuk melihat apakah sistem pembelajaran yang sedang dibangun berhasil, sesuai dengan harapan awal atau tidak. Sebenarnya tahap evaluasi

Jika nyamuk tersebut menggigit anak yang sedang mengandung virus demam berdarah di darahnya, nyamuk itu akan dapat menyebarkannya kepada anak yang lain..