Anda di halaman 1dari 11

Algoritma Dan Struktur

03
Modul ke:

Data

Fakultas
Ilmu Komputer Herni Sofiani, MMSI

Program Studi
Sistem
Informasi
Bagian Isi
• Struktur Data Dari Sebuah Record Dan Pointer serta mampu menyusun Alg. Dan
Program Menggunakan Record dan Pointer

A. RECORD
• Sebuah record merupakan koleksi satuan data yang heterogen, yakni terdiri dari
berbagai
• type. Satuan data tersebut sering disebut sebagai field dari record. Field dipanggil
dengan
• menggunakan namanya masing-masing. Suatu field dapat terdiri atas
beberapasubfield.
• Sebagai Contoh, data personalia dari seorang pegawai suatu perusahaan di Amerika
• Serikat, merupakan sebuah record yang dapat terdiri dari berbagai field,
dan subfield
• seperti berikut ini :


1 NOMOR-JAMINAN-SOSIAL
2 NAMA, yang terdiri atas :
NAMA-BELAKANG
NAMA-DEPAN
NAMA-TENGAH
3 ALAMAT, terdiri atas :
JALAN
NOMOR RUMAH
NAMA-JALAN
KOTA
NEGARA-BAGIAN
KODE-POS
}; 4 MENIKAH
Pada record tersebut di atas, satuan data seperti NAMA BELAKANG
ataupun KOTA
merupakan tipe data string, sedangkan data lain seperti GAJI POKOK,
TUNJANGAN
JABATAN dan berbagai data yang akan diolah secara matematis akan
disimpan dengan
tipe data numerik, bisa integer maupun real. Data MENIKAH bisa
digunakan tipe data
boolean atau logikal.
Sebuah record memberi informasi tentang berbagai kondisi dari obyek
pada
permasalahan yang nyata sehari-hari. Setiap field memberi uraian tentang
satu atribut dari
obyeknya. Sebuah record biasanya diberi identifikasi oleh key-
nya. Key atau kunci adalah
salah satu atau lebih field yang dipilih untuk tujuan penyampaian
informasi yang terjadi di
dalam record yang bersangkutan.
Koleksi dari record yang sama struktur fieldnya disebut suatu file atau
berkas. Jadi,
koleksi dari record semua pegawai perusahaan membentuk
sebuah file personalia. Pada
umumnya record disimpan membentuk file, dalam urutan sesuai dengan
nilai darikey
masing-masing. Di dalam suatu file PERSONALIA, field NOMOR JAMINAN
SOSIAL
dari seorang pegawai dapat digunakan sebagai key. Di dalam bahasa
pemrograman tingkat
tinggi, record dapat dinyatakan sebagai struktur data (COBOL dan PL/1)
dapat diadakan spesifikasi tentang nama record, field dan subfield yang
bersangkutan.
Bentuk umum deklarasi Record
Algoritma :
Atau namavar dapat dipisah dari deklarasi tiperecordnya, sehingga
menjadi :

namaVar : record
< namaField1 : tipeField1 ,
namaField2 : tipeField2 ,
……
namaFieldn : tipeFieldn ,
>

Type namaTipeRecord : record


< namaField1 : tipeField1 ,
namaField2 : tipeField2 ,
……
namaFieldn : tipeFieldn ,
>
namaVar : namaTipeRecord
Bahasa C++ :
Bahasa
Atau C++dipisah
namavar dapat : dari deklarasi tiperecordnya, sehingga menjadi :
Atau namavar dapat
Catatan : namaVar bisa lebih dipisah dari deklarasi tiperecordnya,
dari satu sehingga menjadi :
Catatan : namaVar bisa lebih dari satu

typedef struct
{
tipefield1 namafield1;
tipefield2 namafield2;
……
tipefieldn namafieldn;
} namatipestruct;
namatipestruct namavar
;

struct namaTipeStruct
{
tipeField1 namaField1;
tipeField2 namaField2;
……
tipeFieldn namaFieldn;
} namaVar;
Contoh record :
Algoritma :
Deklarasi
Type Mahasiswa : Record < NIM : integer,
Nama : string,
KodeMK : string,
NilaiHuruf : char >
Mhs1,Mhs2 : Mahasiswa
Bahasa C++ :
//deklarasi
typedef struct { int NIM;
char Nama[20];
char KodeMK[10];
char NilaiHuruf;
} Mahasiswa;
Mahasiswa Mhs1,Mhs2;
Cara mengakses elemen record :
namavar.namafield
Salah satu bentuk struktur data yang berisi kumpulan data yang tersusun secara
sekuensial, saling bersambungan, dinamis adalah senarai berkait (linked
list).Suatu senarai berkait (linked list) adalah suatu simpul (node) yang dikaitkan
dengan simpul yang lain dalam suatu urutan tertentu. Suatu simpul dapat
berbentuk suatu struktur atau class. Simpul harus mempunyai satu atau lebih
elemen struktur atau classyang berisi data.
Secara teori, linked list adalah sejumlah node yang dihubungkan secara linier
dengan bantuan pointer. Dikatakan single linked apabila hanya ada satu pointer
yang menghubungkan setiap node single artinya field pointernya hanya satu
buah saja dan satu arah.
Senarai berkait adalah struktur data yang paling dasar. Senarai berkait terdiri atas
sejumlah unsur-unsur dikelompokkan, atau terhubung, bersama-sama di suatu
deret yang spesifik. Senarai berkait bermanfaat di dalam memelihara koleksi-
koleksi data, yang serupa dengan array/larik yang sering digunakan.
Bagaimanapun juga, senarai berkait memberikan keuntungan-keuntungan
penting yang melebihi array/larik dalam banyak hal. Secara rinci, senarai berkait
lebih efisien di dalam melaksanakan penyisipan-penyisipan dan penghapusan-
penghapusan. Senarai berkait juga menggunakan alokasi penyimpanan secara
dinamis, yang merupakan penyimpanan yang dialokasikan pada runtime . Karena
di dalam banyak aplikasi, ukuran dari data itu tidak diketahui pada saat kompile,
hal ini bisa merupakan suatu atributyang baik juga. Setiapnodeakan berbentuk
struct dan memiliki satu buahfield bertipe structyang sama, yang berfungsi
sebagai pointer.
Deklarasi node:
struct node
{
char nama[20]
; int umur;
float tinggi;
node *next; // Pointer menyambung ke node selanjutnya
};

Gambar sebuah node


•Bagian pertama, disebut medan informasi, berisi informasi yang akan disimpan dan diolah.
•Bagian kedua, disebut medan penyambung (link field), berisi alamat simpul berikutnya
Pada gambar di atas, pointer awal menunjuk ke simpul pertama dari senerai
tersebut. Medan penyambung (pointer) dari suatu simpul yang tidak menunjuk
simpul lain disebut pointer kosong, yang nilainya dinyatakan
sebagai null (null adalah kata baku yang berarti bahwa pointer 0 atau bilangan
negatif). Jadi kita bisa melihat bahwa dengan hanya sebuah pointer Awal saja
maka kita bisa membaca semua informasi yang tersimpan dalam senerai

MENAMBAH SIMPUL DI BELAKANG


Sekarang kita akan mempelajari bagaimana menambah simpul baru ke dalam
senerai berantai. Kita anggap bahwa simpul baru yang akan ditambah selalu
menempati posisi setelah posisi yang terakhir dari senerai berantai yang
diketahui. Untuk menjelaskan operasi ini baiklah kita gunakan deklarasi pointer
dan simpul seperti di bawah ini:
struct node
{
char nama[20];
int umur;
float tinggi;
node *next;
};
Terima Kasih
Herni Sofiani MMSI

Anda mungkin juga menyukai