Diktat_Prosedural_13_StudiKasus

S list pegawai terdefinisi fs list firstpeg

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: yang anaknya > 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 list Pegawai, Skema proses sekuensial dg penanganan kasus kosong } { Untuk setiap pegawai, traversal list anaknya untuk mencacah banyaknya elemen list anak. Jika jumlah elemen list anak lebih dari tiga maka nama pegawai ditulis} { Traversal pegawai } PtrPeg ← FirstPeg { First Pegawai } if (PtrPeg = Nil) then output ("List pegawai kosong") else repeat { Proses } JumlahAnak ← 0 { Traversal Anak } PtrAnak ← FirstAnak { First Anak } while (PtrAnak ≠Nil) do if (Father(PtrAnak) = PtrPeg) then { Proses Anak } JumlahAnak ← JumlahAnak + 1 PtrAnak ← NextAnak(PtrAnak) { Next Anak } { PtrAnak = Nil) } if (JumlahAnak > 3) then output (Nama(PtrPeg), " mempunyai anak lebih dari 3") PtrPeg ← NextPeg(PtrPeg) { Next Pegawai } until (PtrPeg = Nil) { semua elemen list pegawai selesai diproses } Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 68 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB procedure OrTuAnak (input FirstAnak : ListAnak, input NamaAnak : string) { Alternatif Kedua } { 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 } 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 pada list Anak berdasarkan nama. Jika ketemu, akses Bapaknya } PtrAnak ← FirstAnak; Found ← false while (PtrAnak ≠ Nil) and (not Found) do if (Nama(PtrAnak) = NamaAnak) then Found ← true else PtrAnak ← NextAnak(PtrAnak) { PtrAnak = Nil or Found } if (Found) then output (Nama(Father(PtrAnak))) Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 69 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB procedure AddAnak (input/output FirstPeg : ListPeg, input NIPPeg : integer, input/output FirstAnak : ListAnak, input NamaAnak : string, input TglLahirAnak : integer) { Alternatif Kedua } { 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=NIPPeg ada, alokasi anak. Jika alokasi berhasil, insert seorang anak sebagai elemen pertama list anak, tentukan Bapak. Jika alokasi gagal atau NIPPeg tidak ada, hanya menulis pesan. } KAMUS LOKAL PtrPeg : AdrPeg { address untuk traversal, @ sebuah elemen list pegawai } PtrAnak : AdrAnak { addres...
View Full Document

Ask a homework question - tutors are online