Program 11 Pointer

{ tutorial pascal / turbo pascal  }
{ 3th my tutorial for my friend   }
{ writen by : m3n_tu4r1           } padang, 24 mei 2003
-------------------------------------------------------

Sebenarnya pada tutorial kedua mengenai FUNCTION dan PROCEDURE sample programnya telah mengunakan pemakain pointer, tinggal menambah sedikit perintah penghapusan sesudah proses penampilan data. Tapi uda cibo agiah N1A program menyusun daftar berantai dengan pointer, untuang-untuang cocok jo tugas yang disuruah dosen N1A.

Mata kuliah yang berhubungan dengan penyusunan data berantai adalah SISTEM BASIS DATA (4 sks lo).

{ tutorial pascal / turbo pascal  }
{ 3th my tutorial for my friend   }
{ writen by : m3n_tu4r1           } 
{ padang, 24 mei 2003             }

PROGRAM POINTER;
USES CRT;
TYPE 
       Stringdata  = STRING[20];
       Ptrdata       =^RECORDDATA;
       Recorddata = RECORD;
                Nama      : STRINGNAMA;
                Jabatan   : STRING [25];
                Ptrkepala : PTRDATA;
        END;
VAR
       Ptrawal_heap : ptrdata;
       Ptrkepala       : ptrdata; 

PROCEDURE BENTUK_DAFTAR (VAR ptrkepala : ptrdata);
{ menyusun daftar berantai dengan variabel PTRKEPALA menunjuk data -}
{ terakhir yang dimasukan melalui keyboard                                          }
VAR
     Ptrbaru   : PTRDATA;
     Jawaban : CHAR;
BEGIN
      REPEAT
     	CLRSCR;
          NEW (ptrbaru);
          WRITE (‘ Nama pegawai        : ‘);
          READLN (ptrbaru^.nama);
          WRITE (‘ Jabatan                  :’); 
	READLN (ptrbaru^.jabatan);
   	Ptrbaru^.lanjutan := ptrkepala;
         Ptrkepala := ptrbaru;
         WRITE (‘ Masukan data lagi (Y/T) ? : ‘);
         REPEAT
              Jawaban  := UPCASE (READKEY)
         UNTIL jawaban IN [‘Y’,’T’];
         WRITELN (jawaban);
         UNTIL jawaban =’T’;
END;

PROCEDURE CETAK_DAFTAR ( ptrkepala:ptrdata);
{ mencetak isi daftar berantai }
VAR
      Ptrsementara:ptrdata;
BEGIN
      CLRSCR;
      WRITELN (‘ ISI DAFTAR BERANTAI : ‘);WRITELN;
      WRITELN (‘-----------------------------------------------------------------------------‘);
      WRITELN (‘ N A M A ’:20,’J A B A T A N’:16);
      WRITELN (‘-----------------------------------------------------------------------------‘);
      Ptrsementara :=ptrkepala;  
      {ptrsementara menunjuk pada lokasi yg sama dng ptrkepala}
      WHILE ptrsementara <> NIL Do
      WITH ptrsementara^DO
          BEGIN 
                 WRITELN (nama:20,jabatan:16);
                 Ptrsementara := lanjutan;
          END;  
      WRITELN (‘-----------------------------------------------------------------------------‘);
      WRITE (‘ tekan Return ‘); READLN;
END; 

PROCEDURE CARI DATA (ptrkepala:ptrdata;namadicari:stringnama;
                                     VAR ptrpraposisidata,ptrposisidata:ptrdata);

{untuk mencari data nama dicari pada daftar berantai, hasil                        }
{- jika data ketemu, maka						     }
{     1. ptrposisidata menunjuk simpul dari data yang dicari		     }
{     2. ptrpraposisidata menunjuk simpul sebelum simpul data yang dicari    }
{         atau sama dengan NIL, jika ptrposisidata menunjuk yang juga ditun- }
{	 juk oleh ptrkepala						     }
{- jika tidak diketemukan, maka ptrposisidata sama dengan NIL 		    }

VAR
     Ketemu : BOOLEAN;
BEGIN
     PTRPRAPOSISIDATA :=NIL;
     PTRPOSISIDATA :=ptrkepala;
     Ketemu := FALSE;
     WHILE (NOT ketemu AND (ptrposisidata <>NIL)) DO
     IF ptrposisidata^.nama <> namadicari THEN
          BEGIN
                 Ptrposisidata :=ptrposisidata;
                 Ptrposisidata :=ptrposisidata^.lanjutan
          END
     ELSE
          Ketemu :=TRUE;
END;

PROCEDURE HAPUSISIDAFTAR (VAR ptrkepala:ptrdata);
{untuk menghapus sebuah simpul data daftar berantai}
CONST
     String_kosong=’ ‘;
VAR
     Namadicari : stringnama;
     Prtposisidata,
     Ptrpraposisidata : ptrdata;
BEGIN
     CLRSCR;
     WRITELN (‘Masukan nama pegawai dari data yang akan dihapus:’);
     READLN (namadicari);
     IF namadicari = string_kosong THEN
         EXIT;
     Cari_data (ptrkepala, namadicari, ptrpraposisidata, ptrposisidata);
     IF ptrposisidata = NIL THEN 
         BEGIN
            WRITELN (‘ data tak diketemukan, tekan enter untuk melanjutkan’);
             READLN;
         END;
      BEGIN   
      { proses penghapusan }
          IF ptrpraposisidata = NIL THEN
          { simpul yang ditunjukan ptrkepala dihapus }
           ptrkepala :=ptrkepala^.lanjutan
          ELSE
          { bukan simpul yang ditunjuk ptrkepala dihapus }
          WRITELN (‘ Ok………data sudah dihapus. Tekan enter ‘);
        END;
END;   { akhir procedure hapusisidaftar }

PROCEDURE PROSESPILIHAN (VAR ptrkepala : ptrdata);
{ digunakan untuk memilih proses ; memasukan data, menampilkan data }
{ menghapus data							 }
VAR
     Pilihan : CHAR;
BEGIN
     REPEAT
            CLRSCR;
            TEXTATTR :=$70; { video terbalik }
 	   GOTOXY(20,2); WRITE (‘                   PILIHAN PROSES                 ‘);
	   TEXTATTR :=$70; { video normal kembali } 
             GOTOXY(20,4); WRITE (‘ [1] Memasukan / menambah data’);             	
             GOTOXY(20,5); WRITE (‘ [2] Menampilkan isi daftar berantai’);
	   GOTOXY(20,6); WRITE (‘ [3] Menghapus data pada daftar berantai’);
             GOTOXY(20,7); WRITE (‘ [4] Selesai’);
             GOTOXY(20,8); WRITE (‘ --------------------------------------------------‘);
             GOTOXY(20,9); WRITE (‘ Masukan kode pilihan [1…4]’);
             REPEAT
		Pilihan := UPCASE (READKEY)
             UNTIL pilihan IN [‘1’..’4’];
             WRITE (pilihan);
             CASE pilihan OF
                ‘1’ : bentuk_daftar(ptrkepala);
                ‘2’ : catak_daftar(ptrkepala);
                ‘3’ : hapusisidata(ptrkepala);
             END;
     UNTIL pilihan = ‘4’
END;

BEGIN
     MARK(ptrawal_heap);     {penandaan terhadap awalheap}
     Ptrkepala :=NIL ;           {keadaan awal ptr kepala          }
     Prosespilihan(ptrkepala); {pelaksanaan pemilihan proses }
     RELEASE(ptrawal_heap); {membebaskan heap yg digunakan u/ alokasi dynamic  }
END.

------------------------------------------------------------------------------------------------

padang , 12.21 wibb.

Ditemani tembang Avril lavigne (biar suasana tambah panas)

Regards,

m3n_tu4r1

??? ???????????

???? ? ?????????? ?? ? ????, ???? ? ????? ??? ???? ))

KpICmBdRImlYOibPo

pzZepT propecia qkibki buy phentermine online 26345 order phentermine tfxije aciphex 8PP acomplia 6701 carisoprodol 550937 prednisone 990301

symptoms for hepatitis a

When we open our mouths, the rounded ends of the lower jaw, called condyles, glide along the joint socket of the temporal bone.
pill vault phentermine diet ingredient phentermine pill diet non phentermine pill prescription overnight delivery and phentermine phentermine hcl without prescriptions dhl phentermine prolonged use of phentermine phentermine no script fedex overnight having trouble finding phentermine information phentermine us based no script phentermine rxdrug phentermine us online consultation canadian phentermine cheap my generic and phentermine and scam phentermine hcl online pharmacy phentermine unethical prescribing phentermine drug store more cheap phentermine offer cash on delivery quality phentermine phentermine tecate
Cigarette smoking increases the risk of serious cardiovascular side effects from oral contraceptive use.
tramadol 100 sr killer pain tramadol veterinary dosage for tramadol pregnant and taking tramadol effects of long term tramadol abuse tramadol cod 180 prescription tramadol and celexa interaction dog tramadol pain relief veterinary dose of tramadol tramadol online us pharmacy tramadol recreational drug use tramadol for dogs arthritis relafin versus tramadol tramadol used for headaches tramadol dog natural tramadol hydrochloride contraindications loratadine is tramadol for dogs the same as for humans tramadol withdrawal how long info on tramadol immovable tramadol long acting
Any of these conditions can cause death or serious disability.
pictures of generic adipex order adipex no prescription what is stronger fastin phentermine adipex adipex weight loss stories adipex michigan adipex danger pharmacy online adipex tenuate adipex user adipex online medication
Last Editorial Review: 8/10/20051234567891011« Previous PageGlossary Printer-Friendly Format |  Email to a Friend Privacy Policy Women's Health Find out what women really need.
contraindications to viagra get free samples of viagra viagra prices australia nu virgos viagra viagra online asap safe sites for viagra buy viagra $8 per pill viagra vs generic viagra
Appropriate diagnostic and therapeutic measures should be undertaken immediately.
moteurs de recherche sp cialis buy cheap generic cialis usa cialis cialis free prescription sample pak cialis once daily cialis cost cialis once a day cost buying cialis blog order cialis online not fake cialis versand pharmacy weight loss cialis silagra cumwithuscom effectiveness viagra levitra cialis
In some cases, reduced levels of circulating 25-hydroxy vitamin D and 1,25-dihydroxy vitamin D have been accompanied by reduced serum calcium and phosphate, and elevated parathyroid hormone.
1buy soma buy cheap soma cod no rx
Further studies in rats at doses up to and including 80 mg/kg/day did not reveal teratological effects on the offspring.
xanax causing depression xanax pancreatitis xanax and suboxone detox xanax and labetalol can you use slimquick and xanax benzodiazepines valium klonopin xanax what color are xanax pills buy prescription drugs xanax xanax at school peach colored xanax xanax gg 249 does xanax interact with nitrous oxide
Although there is no cure for Beh?§et's disease, people usually can control symptoms with proper medication, rest, exercise, and a healthy lifestyle.
paxil and valium valium xanax difference cat valium dosage valium the drug voorschrift valium clysma valium buy on line
But they do protect many people who might become sick if they didn't get the vaccine.
yahoo