Linked List Pegawai Anak Header Version 1.0


  1. /* file     : PegawaiAnak.h */
  2. /* ADT Pegawai Anak  */
  3.  
  4. #ifndef PegawaiAnak_h
  5. #define PegawaiAnak_h
  6. #include "boolean.h"
  7. #include <stdio.h>
  8. #include <string.h>
  9. #include <stdlib.h>
  10. #define nil NULL
  11.  
  12. //DEFINISI TYPE LIST
  13.  
  14. typedef struct tElmtPeg *adrPeg;
  15. typedef struct tElmtAnak *adrAnak;
  16. typedef struct Peg infoPeg;
  17. typedef struct Anak infoAnak;
  18. //definisi info dan elemen pegawai
  19. typedef struct Peg
  20. {
  21.     char Nama[15];
  22.     int ID;
  23.     char jabatan[10];
  24.     float gajiPokok;
  25. }Peg;
  26.  
  27. typedef struct tElmtPeg
  28. {
  29.   infoPeg info;
  30.   adrAnak firstAnak;
  31.   adrPeg  next;
  32. }ElmtPeg;
  33. //definisi info dan elemen anak
  34. typedef struct Anak
  35. {
  36.   char Nama[15];
  37.   char gender[1];
  38.   int umur;
  39. }Anak;
  40.  
  41. typedef struct tElmtAnak
  42. {
  43.   infoAnak infoA;
  44.   adrAnak next;
  45. }ElmtAnak;
  46. //definisi variabel list
  47. typedef struct
  48. {
  49.      adrPeg first;
  50. }LP;
  51.  
  52.  
  53. void createList(LP *lpeg);
  54. /* I.S : sembarang */
  55. /* F.S : Membuat sebuah list baru */
  56.  
  57. adrPeg alokasiPeg(infoPeg x);
  58. /* I.S : sembarang */
  59. /* F.S : Membuat sebuah "gerbong" baru sebagai elemen list pegawai*/
  60.  
  61. adrAnak alokasiAnak(infoAnak a);
  62. /* I.S : sembarang */
  63. /* F.S : Membuat sebuah gerbong baru sebagai elemen data anak pegawai */
  64.  
  65.  
  66. void inputVPeg(LP *l, infoPeg x);
  67. /* I.S : list mungkin kosong mungkin berisi*/
  68. /* F.S : Menyambungkan rangkaian element pegawai ke dalam list */
  69.  
  70. void inputVAnak(LP *l, infoAnak y, int pegID);
  71. /* I.S : list pegawai sudah ada. ID bapak dikatahui */
  72. /* F.S : Data anak diinputkan menurut ID bapak */
  73.  
  74. infoPeg inputPeg();
  75. /* I.S : sembarang */
  76. /* F.S : data, nama, id pegawai, jabatan dan gaji pokok berhasil dimasukkan */
  77.  
  78. infoAnak inputAnak();
  79. /* I.S : sembarang */
  80. /* F.S : data nama, gender, dan umur anak yang valid berhasil dimasukkan */
  81.  
  82. void ListDataPeg(infoPeg x);
  83. /*I.S : list minimal satu elemen*/
  84. /*F.S : informasi dari suatu infotype akan dioutputkan*/
  85.  
  86. void ListPegLengkap(LP l);
  87. /* I.S : FirstPeg terdefinisi, mungkin kosong */
  88. /* F.S : List ditulis semua informasinya */
  89. /* menulis daftar pegawai, untuk setiap pegawai dilist anaknya jika ada */
  90. /* menulis "List kosong, tidak ada pegawai" jika kosong */
  91.  
  92. void ListTunjAnak (LP l);
  93. /* I.S : FirstPeg terdefinisi, mungkin kosong */
  94. /* F.S : Untuk setiap pegawai, anaknya yang berumur < 18 tahun ditulis */
  95. /* Jika pegawai tidak mempunyai anak, tulis "Pegawai Tidak mempunyai anak" */
  96.  
  97. void ListPegNonKB(LP l);
  98. /* Membuat daftar pegawai yang mempunyai lebih dari 3 anak */
  99. /* I.S : FirstPeg terdefinisi, mungkin kosong */
  100. /* F.S : Semua pegawai yang mempunyai anak > 3 ditulis semua informasinya */
  101.  
  102. void OrtuAnak(LP l, char nama[15]);
  103. /* I.S : List pegawai terdefinisi */
  104. /* F.S : Jika ada anak yang sesuai dengan nama anak yang dicari, nama pegawai ditulis */
  105. /* Jika tidak ada yang sesuai, tidak menuliskan apa-apa */
  106.  
  107. void AddAnak (LP *l, infoAnak x, char ayah[15]);
  108. /* mendaftar seorang anak yang baru lahir, insert selalu pada awal list */
  109. /* I.S : List pegawai terdefinisi */
  110. /* F.S : Jika ada pegawai dengan NIP=NIPeg, alokasi anak, insert anak pada
  111. elemen pertama list */
  112.  
  113.  
  114. #endif
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  

FOR THE BOOLEAN HEADER

SHOW HERE

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s