Diktat_Prosedural_13_StudiKasus

1 2011 2012tgl revisi 21 nov 2011 63 draft diktat

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: sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 61 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB procedure ListPegNonKB (input FirstPeg : ListPeg) { Alternatif Pertama } { Membuat daftar pegawai yang mempunyai lebih dari 3 anak } { I.S. List FirstPeg terdefinisi, mungkin kosong } { F.S. Semua pegawai yang anaknya lebih dari 3 orang ditulis informasinya } KAMUS LOKAL PtrPeg : AdrPeg { address untuk traversal, @ sebuah elemen list pegawai } PtrAnak : AdrAnak { address untuk traversal, @ sebuah elemen list anak } JumlahAnak : integer { banyaknya anak pegawai } ALGORITMA { Traversal pegawai } PtrPeg ← FirstPeg { First-Pegawai } if (PtrPeg = Nil) then output ("List kosong, tidak ada pegawai") else { minimal ada satu pegawai } repeat output (Nama(PtrPeg)) { Traversal Anak } JumlahAnak ← 0 { Inisialisasi } PtrAnak ← FirstAnak(PtrPeg) { First Anak} while (PtrAnak ≠ Nil) do JumlahAnak ← JumlahAnak + 1 { Proses } PtrAnak ← NextAnak(PtrAnak) { Next Anak } if (JumlahAnak > 3 ) then output ("Pegawai ybs mempunyai anak lebih dari 3") PtrPeg ← NextPeg(PtrPeg) { Next Pegawai } until (PtrPeg=Nil) Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 62 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB procedure OrTuAnak (input FirstPeg : ListPeg, input NamaAnak : string) { Alternatif I} { 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 dengan nama NamaAnak, tuliskan nama orangtua dari anak yg namanya = NamaAnak } KAMUS LOKAL PtrPeg : AdrPeg { address untuk traversal, @ sebuah elemen list pegawai } PtrAnak : AdrAnak { address untuk traversal, @ sebuah elemen list anak } Found : boolean { hasil pencarian orangtua anak } ALGORITMA { Search } Found ← false PtrPeg ← FirstPeg while (PtrPeg ≠ Nil) and (not Found) do { Search anak dengan NamaAnak yang diberikan pada list anak } PtrAnak ← FirstAnak(PtrPeg) while (PtrAnak ≠ Nil) and (not Found) do if (Nama(PtrAnak) = NamaAnak) then Found ← true else PtrAnak ← NextAnak(PtrAnak) { PtrAnak = Nil or Found } if (not Found) then { eksplore pegawai yg berikutnya } PtrPeg ← NextPeg(PtrPeg) { PtrPeg = Nil or Found } if (Found) then output (Nama(PtrPeg)) Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 63 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB procedure AddAnak (input/output FirstPeg : ListPeg, input NIPPeg : string, input NamaAnak : string, input TglLahirAnak : integer) { Alternatif Pertama } { Mendaftar seorang anak yang baru lahir, insert selalu pada awal list } { I.S. List Pegawai terdefinisi } { F.S. Jika pegawai dengan NIP=NIPPeg ada, alokasi anak, jika berhasil insert seorang anak sebagai elemen p...
View Full Document

Ask a homework question - tutors are online