Ini adalah alasan mengapa mahasiswa demo lagi di tahun 1999:
1. Kuliah nggak menarik.
2. Mau eksperimen gimana kalo Habibie turun, trus diganti Harmoko.
3. Secara sukarela mau jadi pahlawan reformasi berikutnya (mumpung TAP MPR tentang Pahlawan Reformasi Belum ditetapkan).
4. Susah milih masuk partai mana.
5. Berharap masuk CNN (Lagi?)
6. Lagi megang Dollar dalam jumlah besar (berharap supaya nilai Dollar naik lagi).
7. Cari jodoh.
8. Berharap makan gratisan lagi (dari Ariifin Panigoro).
9. Takut cepet lulus, karena nggak ada kerjaan.
10. Kuliah Kerja Nyata untuk Jurusan Politik (kalo sampai menginap, dapat 6 SKS)
11. Udah kangen sama ABRI dan Polisi.
12. Salah masuk jurusan.
13. IBM (Intel Belagak Mahasiswa).
14. Benci sama Bob Hasan tapi nggak tau harus bagaimana.
15. Mau tahu reaksi Jendral Wiranto akan bagaimana.
16. Benci sama Beddu Amang tapi nggak tau harus bagaimana.
17. Menuntut digantinya pasal 2 UUD'45 menjadi "Kedaulatan berada ditangan Demonstran,dan dilakukan sepenuhnya di Gedung MPR ".
18. Berharap difoto wartawan.
19. Kangen sama Harmoko Cs.
20. Study Perbandingan Antara Bayonet dan Peluru Karet.
21. bisa pacaran gratis di DPR, nginep lagii... :-)
Tanggal tujuah baleh Agustus 2002, diadokan upacaro bandero di Kampuang Nareh Pariaman. Kapala Kampuang kabatulan pai dipanggil Camat, lalu inspektur upacaro diganti samo Pak Datuak ( ketua adat ). Singkek carito,mako tibolah saat pembacaan PANCASILO. Tanpa raso gugup Pak Datuak narimo teks pancasilo dari ajudannyo lalu dengan lantang pak datuak baco:
PANCASILO
Ciek...!! BINTANG BASAGI LIMO........ ( gambar bintang )
Duo...!! RANTAI PANGIKEK JAWI ( SAPI ).......(rantai pengikat sapi, yakni gambar rantai )
Tigo...!! POHON TAMPEK BATADUAH ...... (pohon tempat berteduh = gambar pohon beringin)
Ampek...!! SANTAPAN DIHARI RAYO ...... (hidangan lezat dihari-raya=kepala banteng)
Limo...!! MAKANAN JO PAMBALUIK LUKO .....( makanan dan pembalut luka alias gambar padi dan kapas )...
Mako tabalalaklah para pasarto upacaro sambil binguang. Tabukaklah rahasio pak datuak, ternyato pak datuak hanya baco gambar sajo, pak datuak rupanyo indak biso baco.. he he he.
Label: Pancasilo (Humor Padang)
Agar Website/Blog dapat diakses dan dikunjungi oleh banyak pengguna internet, perlu dilakukan upaya publikasi secara intensif. Salah satunya adalah dengan menambahkan URL Website/Blog kita ke database Search Engine.
Caranya sbb:
>> Menambahkan URL kita ke Google
- Ketik www.google.com/addurl di bagian Address (lalu ENTER)
- Tampil jendela "Add your URL to Google"
- Masukkan alamat Website/Blog Anda pada baris URL
- Isilah hal2 yang terkait dengan Website/Blog Anda pada baris isian Comments
(Contoh comments: "This blog is all about woman. You can get any topics about carreer, family and lifestyle")
- Ketikkan kode yang sesuai pada kotak "Squiggly Letters" (huruf/angka berbentuk unik) yang disediakan
- Klik tombol "Add URL"
- Akan tampil jendela konfirmasi pertanda alamat Website/Blog Anda telah masuk ke database Google.com
Anda dapat memeriksa hasilnya beberapa menit kemudian melalui pencarian pada kotak Google Search Engine.
>> Menambahkan URL kita ke Yahoo!
- Sebelum menambahkan URL kita ke Yahoo!, sebaiknya Anda sudah memiliki account di Yahoo! Bila belum, lakukan registrasi dengan cara sbb:
> Buka www.yahoo.com. Cari dan klik kotak "Mail"
Selanjutnya:
- Tampil jendela "Submit Your Site"
- Klik "Submit Your Site For Free"
- Masukkan Yahoo! ID dan password Anda
- Klik "Sign In"
- Jendela "Submit Your Site" akan muncul
- Isi URL Website/Blog Anda pada baris "Submit URL"
- Klik "Submit URL"
- Akan tampil jendela konfirmasi pertanda alamat Website/Blog Anda telah masuk ke database Yahoo.com
Anda dapat memeriksa hasilnya beberapa menit kemudian melalui pencarian pada kotak Yahoo! Search Engine.
Label: Publikasaikan Blog mu....
Struktur Bahasa PASCAL secara umum
Pascal mempunyai struktur sebagai berikut:
1. Bagian Judul Program
2. Bagian Deklarasi
a. Deklarasi tipe data (TYPE)
b. Deklarasi variabel (VAR)
c. Deklarasi konstanta (CONST)
d. Deklarasi label (LABEL)
e. Deklarasi sub-program (PROCEDURE dan FUNCTION)
3. Bagian Program Utama Perintah-perintah.
Teks Pascal setidaknya memiliki bagian Judul Program, bagian Deklarasi, dan Bagian Program Utama yang berupa perintah-perintah. Sedangkan untuk bagian deklarasi menyesuaikan dengan isi dari program itu sendiri. Contoh program PASCAL:
program TAMBAH_00; { Menjumlahkan dua bilangan yang nilainya diberikan dalam perintah}
var X, Y, Z: integer; { Deklarasi variabel X,Y dan Z sebagai bilangan bulat }
BEGIN { Program Utama Mulai }
X := 50; { Perintah memberikan nilai 50 pada var. X }
Y := 25; { Perintah memberikan nilai 25 pada var. Y }
Z := X + Y; { Perintah menjumlahkan X dan Y serta menyimpan hasilnya ke Z}
END. { Akhir Program Utama }
Pada contoh ini nilai X dan Y tidak bisa sembarang, karena didefiniskan tertentu. Agar nilai X dan Y bisa bebas ditentukan, nilai X dan Y dibaca dari default input.
program TAMBAH_01; { Menjumlahlan dua buah bilangan yang dibaca dari default input }
var X, Y, Z: integer; { Deklarasi variabel X,Y dan Z sebagai bilangan bulat }
BEGIN { Program Utama Mulai }
read(X); { Membaca nilai X lewat key-board }
read(Y); { Membaca nilai Y lewat key-board }
Z := X + Y; { Menjumlahkan X dan Y serta menyimpan hasilnya ke Z }
write(Z); { Menyajikan Z ke layar monitor }
END. { Akhir Program Utama }
Dasar Bahasa PASCAL
Unsur-unsur Pemrograman
a. Mendapatkan data dengan membaca data dari default input (key board, file atau sumber data lainnya).
b. Menyimpan data ke dalam memori dengan struktur data yang sesuai,
c. Memproses data dengan instruksi yang tepat.
d. Menyajikan atau mengirimkan hasil olahan data ke default output (monitor, file atau tujuan lainnya).
Jenis identifier
a. Identifier umum
Merupakan identifier yang didefinisikan sendiri oleh pemrogram. Pemrogram mempunyai kebebasan untuk menentukan nama identifiernya, dengan syarat nama tersebut tidak sama dengan identifier standar dan reserved word yang akan dibahas lebih lanjut. Hal ini untuk mencegah kesalahan yang bisa timbul akibat tumpang tindih identifier dalam program.
b. Identifier Standar (Baku)
Merupakan identifier yang didefinisikan oleh pembuat kompiler Pascal. Biasanya pembuat kompiler menyediakan suatu library yang sudah ada didalam kompiler. Library berisi berbagai procedure, fungsi atau unit yang sudah siap pakai. Misalnya Turbo Pascal Windows 1.5 memiliki suatu unit untuk memproses output yaitu wincrt, gotoxy, yang dengan mudah bisa dipakai oleh programmer di dalam menuliskan kode-kode programnya. Dinamai Identifier Standar karena suatu kompiler tidak harus memilikinya, masing-masing kompiler dimungkinkan mempunyai identifier yang berbeda untuk suatu tugas yang hampir sama. Misalnya Turbo Pascal versi DOS menggunakan crt untuk melakukan fungsi yang sama dengan wincrt (TPW 1.5). Beberapa Identifier Standar yang dimiliki oleh kompiler-kompiler Pascal antara lain:
abs arctan boolean char cos dispose eof eoln exp false input integer ln maxint new odd ord output pack page pred read readln real reset rewrite round sin sqr sqrt succ text true trunc write writeln
c. Identifier "reserved word", yaitu yang sudah didefinisikan dan digunakan oleh bahasa PASCAL sendiri (Kita tidak bisa menamai identifier kita dengan ini).
and array begin case const div do downto else end file for forward function goto if in label mod nil not of or packed procedure program record repeat set then to type until var while with
Deklarasi Variable:
Mendeklarasikan varibel adalah:
a. Memberikan nama variabel sebagai identitas pengenal
b. Menentukan tipe data variabel
Contoh deklarasi variabel:
var K : integer;
R : real;
C : char;
T : boolean;
Beberapa identifier yang sejenis bisa dideklarasikan bersamaan.
var i, j, k : integer;{Variabel i, j dan k sebagai integer}
namaMHS, alamatMHS : char; {Nama dan alamat mahasiswa }
Deklarasi Konstanta:
Mendeklarasikan konstanta adalah:
a. Memberikan nama konstanta sebagai identitas pengenal
b. Menentukan nilai konstanta
Contoh deklarasi konstanta:
const MaximumSize = 100; {integer }
ExitCommand = 'Q'; {char }
Tipe Data
Tipe data yang disediakan oleh PASCAL meliputi:
1. Tipe Data Sederhana
merupakan tipe data dasar yang sering dipakai oleh program, meliputi: integer (bilangan bulat), real (bilangan pecahan), char (alphanumerik dan tanda baca), dan boolean (logika). Untuk data integer dan real masing-masing terbagi menjadi beberapa kategori
a. Bilangan Integer
merupakan tipe data berupa bilangan bulat, terbagi atas beberapa kategori seperti terlihat dalam tabel 1. tabel 1 menunjukkan jenis data, ukuran dalam memori dan rentang nilainya.
tabel 1. Tipe Data Bilangan Integer
Tipe Data | Ukuran Tempat | Rentang Nilai |
Byte | 1 byte | 0 s/d +255 |
Shortint | 1 byte | -28 s/d +127 |
integer | 2 bytes | -32768 s/d 32767 |
Word | 2 bytes | 0 s/d 65535 |
Longint | 4 bytes | 2147483648 s/d 2147483647 |
Contoh bilangan integer adalah: 34 6458 -90 0 1112 Penggolongan tipe data integer tersebut dimaksudkan untuk membatasi alokasi memori yang dibutuhkan misalkan untuk suatu perhitungan dari suatu variabel bilangan diperkirakan nilai maksimumnya 32767 kita cukup mendeklarasikan variabel bilangan sebagai integer (2 byte), daripada sebagai longint(4 byte). Di dalam kompilernya, Pascal menyediakan konstanta untuk bilangan Integer yaitu: MaxInt and MaxLongInt, pemrogram bisa menggunakannya di dalam programnya tanpa harus terlebih dahulu mendefinisikannya.
-MaxInt bernilai 32.767
-MaxLongint bernilai 2.147.483.647.
contoh:
Program display_maxint;
uses wincrt;
begin writeln (maxint)
end.
Hasilnya: 32.767
b. Bilangan Real
Bilangan real atau nyata merupakan jenis bilangan pecahan, dapat dituliskan secara biasa atau model scientific . Contoh bilangan real: 34.265 -3.55 0.0 35.997E+11, dimana E merupakan simbol perpangkatan 10. Jadi 452.13 mempunyai nilai sama dengan 4.5213e2. Penggolongan tipe data bilangan real dapat dilihat pada tabel 2. Bilangan Real
Tabel 2. Tipe Data Bilangan Real
Tipe Data | Ukuran Tempat | Rentang Nilai |
real | 6 bytes | 2.9 x 10-39 s/d 1.7 x1038 |
single | 4 bytes | 1.5 x 1045 s/d 3.4 x 1038 |
double | 8 bytes | 5.0 x 10-324 s/d 1.7 x 10308 |
extended | 10 bytes | 3.4 x 10-4932 s/d 1.1 x 104932 |
comp | 8 bytes | -9.2x 1018 s/d 9.2x 1018 |
c. Char
Tipe data ini menyimpan karakter yang diketikkan dari keyboard, memiliki 266 macam yang terdapat dalam tabel ASCII (American Standard Code for Information Interchange). Contoh: 'a' 'B' '+', dsb. Yang perlu diingat bahwa dalam menuliskannya harus dengan memakai tanda kutip tunggal. Jenis data ini memerlukan alokasi memori sebesar 1(satu) byte untuk masing-masing data.
d. Tipe Data Boolean
merupakan tipe data logika, yang berisi dua kemungkinan nilai: TRUE (benar) atau FALSE (salah). Turbo Pascal for Windows memiliki tiga macam jenis ini yaitu: Boolean, WordBool, dan LongBool. Tipe boolean memakai memori paling kecil, sedangkan WordBool dan LongBool dipakai untuk menulis program yang sesuai dengan lingkungan Windows.
Tabel 3. Tipe Data Boolean
Tipe Data | Ukuran Tempat |
Boolean | 1 byte |
WordBool | 2 byte |
Longbool | 3 byte |
Sebagai bilangan ordinal boolean true mempunyai nilai 1(satu), sedangkan false nilainya adalah 0(nol).
Contoh: Program display_bool;
uses wincrt;
begin writeln(ord(true));
writeln(ord(false));
end.
Hasilnya: 1 0 3.2.
Tipe Data Terstruktur
tipe ini terdiri atas : array, record, set, dan file. String adalah tipe data jenis array, tetapi karena string memiliki kekhasan tersendiri sebagai array dari karakter maka penulis perlu memberikan penjelasan tersendiri. Sedangkan untuk array, record, dan file perlu dijelaskan dalam bab yang lain karena agak banyak hal-hal yang perlu dibahas.
a. Tipe Data String
merupakan suatu data yang menyimpan array (larik), sebagai contoh 'ABCDEF' merupakan sebuah konstanta string yang berisikan 6 byte karakter. Ukuran Tempat untuk tipe data ini adalah 2 s/d 256 byte, dengan jumlah elemen 1 s/d 255. String dideklarasikan dengan string [ konstanta ] atau string. Bila ukuran string tidak didefinisikan maka akan banyak memakan ruang, karena ukuran string menyesuaikan dengan defaultnya. Misalkan
var kata: string [20]; atau var kata: string; karena string merupakan array dari karakter. Maka kata[1] merupakan karakter pertama dari string, kemudian kata[2], merupakan elemen kedua, dst.
Contoh:
Program hal_string;
Uses wincrt;
var s : string;
begin s:='Hello';
writeln(s);
writeln('panjang dari string adalah: ',ord(s[0]));
end.
Karakter nol merupakan karakter yang menyatakan panjang string. Sehingga ord(s[0]) menyatakan panjang dari string tersebut. Panjang string juga bisa dinyatakan sebagai length(s).
Array Multidimensi Dalam array multidimensi terdiri atas baris (row) dan kolom (column). Index pertama adalah baris dan yang kedua adalah kolom . SYNTAX Type nama_array =ARRAY[bawah..atas, bawah..atas] of tipe_data; var variabel_array : nama_array; atau dengan menggunakan statemen var : SYNTAX var variabel_array : ARRAY[bawah..atas, bawah..atas] of tipe_data; Pernyataan berikut membentuk suatu array integer dengan nama bilangan , 10 x 10 elemen (100). type matriks = ARRAY [1..10, 1..10] of integer; var AKU: matriks; untuk memasukkan tiap elemen maka, diperlukan suatu procedure dengan mempergunakan struktur pengulangan for ...do tersarangseperti berikut: procedure ISI_MATRIK(AKU:matriks; m,n:integer); var i,j: integer; {faktor pengulang} begin for i:=1 to m do begin for j:=1 to n do begin read(A[i,j]); end; readln ;{ini memungkinkan kita menulis tiap baris elemen} end; untuk menampilkan tiap elemen maka, digunakan struktur pengulangan for ...do tersarang seperti berikut procedure TULIS_MATRIK(AKU:matriks; m,n:integer); var i,j: integer; {faktor pengulang} begin for i:=1 to m do begin for j:=1 to n do begin write(A[i,j]:6); end; writeln ; {ini memungkinkan kita menulis elemen dalam baris dan kolom } end; end; 5. Operasi pada Array Sifat masing-masing elemen array mengikuti jenis data yang dimilikinya, untuk array dengan tipe bilangan integer atau real kita bisa melakukan berbagai standar operasi aritmatika seperti penjumlahan, perkalian, pengurangan, dsb. Yang perlu di garis bawahi, bahwa sifat dari array dimanfaatkan untuk operasi matrik. a. Mencari Harga Tertentu pada Array Mencari suatu elemen data di dalam suatu data merupakan suatu kejadian yang sering kita alami, contoh: mencari nama mahasiswa dari daftar presensi. Pencarian beruntun (sequence), merupakan suatu teknik untuk mencari suatu elemen dalam suatu sistim yang lebih besar. Contoh. Misal array A[8], dengan elemen sbb: A 60 12 76 23 11 42 18 42 Untuk mencari apakah bilangan x=11 ada didalam tabel maka dilakukan pemeriksaan terhadap : 60 12 76 23 11 Sehingga ditemukan x pada elemen ke-5, dalam bahasa PASCAL diterjemahkan seperti berikut: type PITA = ARRAY [1..8] of integer; var AKU: PITA; procedure CARI_MATRIK(AKU: PITA); var i: integer; {faktor pengulang} begin for i:=1 to 8 do begin if AKU[i]:= 11 then writeln(‘ terdapat bilangan 11 dalam pita ini ‘); else writeln(‘ tidak ada bilangan 11, pencarian berhenti ‘); end; end; b. Mencari Harga Maksimum pada Array Misal array di atas kita cari harga yang tertinggi, maka kita perlu menentukan nilai tertinggi dahulu sebelum melakukan pencarian ; diawali dengan nilai maksimum=0 procedure CARI_MAKSIMUM(AKU: PITA); var i: integer; {faktor pengulang} MAKS : integer; begin MAKS := AKU[1]; for i:=1 to 8 do begin if AKU[i]> MAKS then MAKS:= AKU[i]; End; Writeln(‘NILAI MAKSIMUM = ’,MAKS); end; b. Mencari Harga Minimum pada Array Misal array di atas kita cari harga yang terendah, maka kita perlu menentukan nilai terendah dahulu sebelum melakukan pencarian ; diawali dengan nilai maksimum=3200 procedure CARI_MINIMUM(AKU: PITA); var i: integer; {faktor pengulang} MIN : integer; begin MIN := 3200; for i:=1 to 8 do begin if AKU[i]< minimum =" ’,MIN);" matrik="array[1..100,1..100]" m="p)" n="q)" m="p)" n="q)" n="p)" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd64Qki-jo4vdMPvCrqJGkUT2Djwo-l0Ys-scrdtokO9kJK-AUtEPeUeomW0_Fg0FQ8P4CE15pvztij9itd2FrVvsLclbJxY9WHdMAJJaAH-OUV1f4e0sMPGnbCrzzFeT8ZTRKjjJWuhw/s1600-h/2.JPG">
Label: Array multi dimensi
-Ã Kumpulan data dimana data masuk dan keluar pada ujung yang berbeda.
-Ã Konsep utama FIFO ( Fisrt In First Out ).
Contoh:
Data nomor 1 datang/masuk dan keluar duluan.
Algoritma:
- Input/tambah data
- Jika ada input maka no antrian yang semula 0 akan tambah 1 demi 1 sampai maksimal antrian.
- Hapus/Pengambilan data
· Jika ada pengambilan data maka data dipindahkan di variabel lain contohnya temp, antrian ke-dua akan maju ke antrian pertama dan seterusnya. Dan jumlah antrian yang semula maksimal akan berkurang 1 demi 1 sampai antrian 0 kembali.
- Deklarasi Queue
Type
Const
Max = 5;
Nama record = Record
Data : type data;
Top : byte;
End;
Nama_array = ARRAY [1..max] of Nama record;
Var
Antri : nama Array;
Nama Array-----Ã Barang
Nama Record---Ã Coba
Nama Variabel--Ã Antri
Contoh Deklarasi dari gambar diatas:
Type
Coba = record
Data :string;
Top : byte;
End;
Barang = ARRAY [1..4] of coba;
Var Antri:barang;
- Operasi pada queue
· CREATE
Membuat antrian baru yang masih kosong.
Procedure create;
Begin
antri.top:=0;
End;
· FULL
Untuk memeriksa apakah antrian sudah penih..
Fuction full:bolean;
Begin
antri.top:=max;
End;
· PUSH
Menambah sebuah elemen ( data ) kedalam antrian.
Syarat: tidak bisa dilakukan jika antrian sudah penuh.
Procedure push ( input:string );
Begin
If not full then
Begin
antri.top:=antri.top;
antri.data:=input;
End;
End;
· EMPTY
Fuction empty: bolean;
Begin
Empty:=false;
If top:=0 then empty:=true;
End;
· POP
Mengambil 1 elemen dari sebuah antrian.
Syarat: antrian tidak boleh kosong.
Procedure Pop ( elemen:string );
Begin
If not empty then
Begin
Elemen:=antri.data;
antri.top:=top – 1;
End;
End;
Contoh:
Program antrian_1;
Uses wincrt;
Type
Data= array [1..3] of string;
Var
D: data;
I, antri: integer;
Temp: string;
Begin
Antri:=0;
{untuk input}
For I:=1 to 3 do
Begin
Writeln(’masukkan nama ke’,’ ’,i);
Readln(d[i]);
Antri:=antri+1;
End;
{untuk Output}
For I:=1 to 3 do
Begin
Temp:=d[i];
Antri:=antri-1;
End;
{lihat output di var temp setelah pengambilan }
Writeln(’hasil var temp=’,temp);
Readln;
End.
Label: QUEUE ( ANTRIAN )
Variabel Pointer
Pada materi sebelumnya telah dijelaskan mengenai variabel bertipe array, suatu tipe data yang bersifat statis (ukuran dan urutannya sudah pasti). Selain itu ruang memori yang dipakai olehnya tidak dapat dihapus bila variabel bertipe array tersebut sudah tidak digunakan lagi pada saat program dijalankan. Untuk memecahkan masalah diatas, kita dapat menggunakan variabel pointer. Tipe data pointer bersifat dinamis, variabel akan dialokasikan hanya pada saat dibutuhkan dan sesudah tidak dibutuhkan dapat dialokasikan kembali.
Array vs Pointer
Berikut tabel di bawah ini diberikan perbedaan antara variabel bertipe array dengan varibel bertipe pointer.
Kriteria | Array | Pointer |
Sifat | Statis | Dinamis |
Ukuran | Pasti | Sesuai kebutuhan |
Alokasi variabel | Saat program dijalankan sampai selesai | Dapat diatur sesuai kebutuhuan |
Deklarasi Variabel Pointer
Bentuk umum :
Var
Contoh :
Var
Jumlahdata : ^integer;
Namasiswa :^string[25];
Nilaisiswa :^real;
Pendeklarasian variabel pointer tidak jauh berbeda dengan pendeklarasian variabel biasa, hanya perlu ditambahan simbol topi (^) sebelum tipe datanya. Simbol topi tersebut menandahkan bahwa variabel tersebut menunjuk ke lokasi tertentu pada memori.
Anda juga dapat membuat variabel pointer bertipe record yang anda definisikan sendiri. Pendeklarasiannya adalah seperti berikut ini.
Bentuk umum :
Tipe
…
end;
Var
contoh :
Type
PointMhs = ^RecMhs;
RecMhs = record
Nama : string[25];
NIM : string[10];
Alm : string[30];
IPK : real;
End;
var
datamahasiswa : pointMhs;
Varibel Biasa vs Variabel Pointer
Variabel Pointer adalah suatu variabel yang menunjuk ke alamat memori yang digunakan untuk menampung data yang akan diproses, seperti digambarkan dibawah ini:
Untuk membedakan antara variabel pointer dengan variabel biasa, perhatikan contoh berikut :
Single Linked List
Apabila setiap kali anda ingin menambahkan data selalu dengan menggunakan variabel pointer yang baru, anda akan membutuhkan banyak sekali variabel pointer(penunjuk).
Oleh karena itu ada baiknya jika anda hanya menggunakan satu variabel pointer saja untuk menyimpan banyak data dengan metode yang kita sebut Linked List. Jika diterjemahkan, maka berarti suatu daftar isi yang saling berhubungan. Untuk lebih jelasnya perhatikan gambar di bawah ini :
Pada gambar diatas tampak bahwa sebuah data terletak pada sebuah lokasi memory area. Tempat yang disediakan pada suatu area memory tertentu untuk menyimpan data dikenal dengan sebutan node/simpul. Pada setiap node memiliki pointer(penunjuk) yang menunjuk ke simpul berikutnya sehingga terbentuk suatu untaian dan dengan demikian hanya diperlukan sebuah variabel pointer. Susunan berupa untaian semacam ini disebut Single Linked List. (ket: Nill tak memiliki nilai apapun. Biasanya linked list pada titik akhirnya akan menunjuk ke Nill).
Dalam pembuatan single linked list dapat menggunakan 2 metode :
v LIFO (Last In First Out), aplikasi : Stack(Tumpukan).
v FIFO (First In First Out), aplikasi : Queue(Antrian).
LIFO (Last In First Out)
LIFO adalah suatu metode pembuatan linked list, dimana data yang masuk paling akhir adalah data yang keluar paling awal. Hal ini dapat dianalogikan (dalam kehidupan sehari-hari) pada saat anda menumpuk barang, seperti digambarkan di bawah ini :
(keadaan mula-mula
adalah kosong)
Pembuatan sebuah simpul dalam suatu linked list seperti digambarkan diatas disebut dengan istilah INSERT. Jika linked list dibuat dengan metode LIFO, maka terjadi penambahan/insert simpul di belakang.
PROSEDURE INSERT
Istilah insert berarti menambahkan sebuah simpul baru ke dalam suatu linked list. Berikut di bawah ini adalah penggalan listing prosecure insert untuk LIFO berserta contoh dan penjelasan cara kerjanya.
Penggalan deklarasi tipe data dan variabel di atas ini akan dipakai pada penjelasan procedure-procedure selanjutnya.
Penggalan procedure INSERT untuk LIFO
Label: Pointer pada struktur data