Diktat_Prosedural_13_StudiKasus

List first peg terdefinisi mungkin kosong fs semua

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: ertama list anak. Jika alokasi gagal atau NIPPeg tidak ada, hanya menulis pesan } KAMUS LOKAL PtrPeg : AdrPeg { address untuk traversal, @ sebuah elemen list pegawai } PtrAnak : AdrAnak { address untuk traversal, @ sebuah elemen list anak } FoundNIP : boolean { hasil pencarian NIP pegawai sebelum insert anak } ALGORITMA { Search Pegawai } FoundNIP ← false PtrPeg ← FirstPeg while (PtrPeg ≠ Nil) and (not FoundNIP) do { search Pegawai dengan NIP yang diberikan } if (NIP(PtrPeg) = NIPPeg) then FoundNIP ← true else PtrPeg ←NextPeg(PtrPeg) { Akhir search pegawai : PtrPeg=Nil or FoundNIP } if (FoundNIP) then { add anak } Alokasi(PtrAnak) if (PtrAnak ≠ Nil) then TglLahir(PtrAnak) ← TglLahirAnak Nama(PtrAnak) ← NamaAnak NextAnak(PtrAnak) ← Nil if (FirstAnak(PtrPeg) = Nil) then { Insert anak pertama } FirstAnak(PtrPeg) ← PtrAnak else { Insert anak sebagai FirstAnak yang baru } NextAnak(PtrAnak) ← FirstAnak(PtrPeg) FirstAnak(PtrPeg) ← PtrAnak else { Alokasi gagal, tidak insert, hanya pesan } output ('Alokasi gagal') else { NIPPeg tidak ada, error } output ("Pegawai tidak ada dalam list") Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 64 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB Program PEGAWAI2 { Representasi BERKAIT, Alternatif Kedua } KAMUS type Pegawai : < NIP : integer, Nama : string, Jabatan : string, GajiPokok : real, NextPeg : AdrPeg > type Anak : < Nama : string, TglLahir : integer, NextAnak : AdrAnak, Father : AdrPeg > AdrPeg : address { alamat sebuah elemen list pegawai } AdrAnak : address { alamat sebuah elemen list anak } FirstPeg : ListPeg FirstAnak : ListAnak procedure ListPegLengkap (input FirstPeg : ListPeg, input FirstAnak : ListAnak) { Menuliskan daftar pegawai, untuk setiap pegawai dilist anaknya jika ada dan informasi semua anaknya jika tidak kosong. Menuliskan "List kosong, tidak ada pegawai" jika kosong } { I.S. FirstPeg terdefinisi, mungkin kosong } { F.S. List FirstPeg ditulis informasinya } procedure ListTunjAnak (input FirstAnak : ListAnak) { Traversal list anak, Menuliskan anak yg masih mendapat tunjangan : berumur < { I.S. FirstPeg dan FirstAnak terdrfinisi, mungkin kosong { F.S. Untuk setiap anak yang umurnya <18 tahun, tuliskan Jika list Anak kosong, tuliskan "List anak kosong" 18 tahun } } informasinya } procedure ListPegNonKB (input FirstPeg : ListPeg) { Membuat daftar pegawai yang mempunyai lebih dari 3 anak } { I.S. List First Peg terdefinisi, mungkin kosong } { F.S. Semua pegawai yang anaknya > 3 orang ditulis informasinya } procedure OrTuAnak (input FirstPeg : ListPeg, input FirstAnak : ListAnak, input NamaAnak : string) { I.S. List Pegawai terdefinisi } { F.S. Jika ada anak yang bernama sesuai dengan NamaAnak, nama Pegawai ditulis. Jika tidak ada NamaAnak, tidak menuliskan apa-apa. } { Cari anak dg nama NamaAnak, tuliskan nama orangtua dari anak yg namanya = NamaAnak } procedure AddAnak (input/output FirstPeg : ListPeg, input NIPPeg : integer, input/output FirstAnak : ListAnak, input NamaAnak : string, input TglLahirAnak : integer) { Mendaftar seorang anak yang baru lahir, Cari Pegawai, insert anak pada list anak selalu pada awal list } { I.S. List Pegawai terdefinisi } { F.S. List FirstPeg terdefinisi. Jika pegawai dengan NIP=NIPeg ada, alokasi anak, insert seorang anak sebagai elemen pertama list anak, tentukan B...
View Full Document

This document was uploaded on 03/15/2014 for the course IF 2030 at Institut Teknologi Bandung.

Ask a homework question - tutors are online