Untuk include-nya yang digunakan yaitu stdio.h,stdlib.h,conio.h,dan string.h.
typedef int infotype; typedef struct tNode *address; typedef struct tNode { char nama[20]; long int JumlahPenduduk; address Next; }Negara; typedef struct { address First; }List; void CreateEmpty(List *L); int IsEmpty(List L); address Alokasi(Negara N); void InsertFirst(List *L, address P); void InsertVFirst(List *L, Negara N); void PrintInfo(List L); void DelLast(List *L); void DelFirst(List *L); void InsertLast(List *L, address P); void InsertVLast(List *L, Negara N); void JumlahTerbanyak(List L); void PrintNegaraJumlahGanjil(List L); void PrintNegaraHurufA(List L); int JmlhNegaraHurufA(List L); void CreateEmpty(List *L) { (*L).First=NULL; } int IsEmpty(List L) { if(L.First==NULL) return 1; else return 0; } address Alokasi(Negara N) { address P=(Negara*)malloc(sizeof(Negara)); if(P!=NULL) { strcpy(P->nama,N.nama); P->JumlahPenduduk=N.JumlahPenduduk; P->Next=NULL; } return P; } void InsertFirst(List *L, address P) { P->Next=(*L).First; (*L).First=P; } void InsertVFirst(List *L, Negara N) { address P=Alokasi(N); InsertFirst(L,P); printf("inputan berhasil..."); } void InsertLast(List *L, address P) { address R; R=(*L).First; while(R!=NULL) { if(R->Next==NULL) { R->Next=P; P->Next=NULL; } R=R->Next; } } void InsertVLast(List *L, Negara N) { address P=Alokasi(N); InsertLast(L,P); printf("inputan berhasil..."); } void PrintInfo(List L) { address P; P=L.First; if(!IsEmpty(L)) { do { printf("\nNama Negara :%s\n",P->nama); printf("Jumlah Penduduk :%d\n",P->JumlahPenduduk); P=P->Next; }while(P!=NULL); } else printf("List Kosong..."); getch(); } void DelFirst(List *L) { address P; if(IsEmpty(*L)==1) printf("list kosong"); else { P=(*L).First; (*L).First=(*L).First->Next; free(P); printf("list negara berhasil dihapus!!!"); } } void JumlahTerbanyak(List L) { address P,R; P=L.First; R=L.First; if(!IsEmpty(L)) { do { if(P->JumlahPenduduk>R->JumlahPenduduk) { R=P; } else { } P=P->Next; }while(P!=NULL); printf("\nNama negara dengan jumlah terbesar %s",R->nama); } else printf("List Kosong..."); getch(); } void PrintNegaraJumlahGanjil(List L) { address P; P=L.First; if(!IsEmpty(L)) { do { if(P->JumlahPenduduk>500000&&P->JumlahPenduduk%2==1) { printf("\nNama Negara :%s\n",P->nama); printf("Jumlah Penduduk :%d\n",P->JumlahPenduduk); } P=P->Next; }while(P!=NULL); } else printf("List Kosong..."); getch(); } void PrintNegaraHurufA(List L) { address P; P=L.First; if(!IsEmpty(L)) { do { if(P->nama[0]=='A') { printf("\nNama Negara :%s\n",P->nama); printf("Jumlah Penduduk :%d\n",P->JumlahPenduduk); } P=P->Next; }while(P!=NULL); } else printf("List Kosong..."); getch(); } JmlhNegaraHurufA(List L) { address P; int a=0; P=L.First; if(!IsEmpty(L)) { do { if(P->nama[0]=='A') { a++; } P=P->Next; }while(P!=NULL); } return a; } void main() { int pil; List myList; Negara N; CreateEmpty(&myList); do { system("cls"); printf("=========================== MENU =========================\n"); printf("1. insert data negera\n"); printf("2. show data negara\n"); printf("3. delete data pertama\n"); printf("4. insert last\n"); printf("5. negara dengan jumlah terbanyak\n"); printf("6. show data negara dengan penduduk ganjil lebih dari 500.000\n"); printf("7. tugas - jumlah negara yang berawalan dengan huruf A\n"); printf("0. exit\n\n"); printf("========================== MENU ==========================\n"); printf("masukkan pilihan:");scanf("%d",&pil); switch(pil) { case 1: printf("masukkan nama negara:");scanf("%s",&N.nama); do{ printf("masukkan jumlah penduduk:");scanf("%d",&N.JumlahPenduduk); }while(N.JumlahPenduduk<100000); InsertVFirst(&myList, N); getch(); break; case 2: printf("isi data\n"); PrintInfo(myList); getch(); break; case 3: DelFirst(&myList); getch(); break; case 4: printf("masukkan nama negara:");scanf("%s",&N.nama); do{ printf("masukkan jumlah penduduk:");scanf("%d",&N.JumlahPenduduk); }while(N.JumlahPenduduk<100000); InsertVLast(&myList, N); getch(); break; case 5: JumlahTerbanyak(myList); getch(); break; case 6: PrintNegaraJumlahGanjil(myList); getch(); break; case 7: //PrintNegaraHurufA(myList); printf("Jumlah negara yang berawalan huruf a :%d",JmlhNegaraHurufA(myList)); getch(); break; } }while(pil!=0); printf("\t\t\t\t\t\t\tdenata25\n"); getch(); }
Tidak ada komentar:
Posting Komentar