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