Program array dengan menu pilihan

nah yang ini tugas kedua struktur data saya, dari jam 5, sambil nunggu buka shoum senin-kamis maen game PES..cape maen PES mpe jam 10 malem, entah kenapa pengen bangat selesaiin tugas biar bisa pulang ke bekasi dengan tenang. alhamdulillah selesai jam 3 pagi. parah ya, yah begini dech belajar pemrograman..gak kerasa ngulik code, eh taunya udah pagi…

oiya program ini ada pengurutan insertion atau sisipnya dan searching dengan metode sequensial tanpa boolean..

masalah pointer masih muter2 di otak saya, tapi entah kenapa tetap jalan dan benar…

y wis,,silakan lihat codenya….

#include "stdlib.c"
#include "conio2.h"
#include "stdio.h"

#define maks_nama 100
#define panjang_nama 100


//PROTOTYPE MODUL
void create_nama(char *nama);
void destroy_nama(char *nama);
void menu_pilihan(char nama[maks_nama][panjang_nama], int n);
void urut_nama(char nama[maks_nama][panjang_nama], int n);
void search_nama(char nama[maks_nama][panjang_nama], int n);
void isi_nama(char nama[maks_nama][panjang_nama], int *n);
char *nama_terkecil(char nama[maks_nama][panjang_nama], int n);
char *nama_terbesar(char nama[maks_nama][panjang_nama], int n);
void tampil_nama(char nama[maks_nama][panjang_nama], int n);



//PROGRAM UTAMA
int main(int argc, char *argv[])
{
  char nama[maks_nama][panjang_nama];
  int i,n;
  
  create_nama(nama);
  menu_pilihan(nama,n);
  system("PAUSE");	
  return 0;
}



//PROCEDURE CREATE NAMA
void create_nama(char *nama)
{
     int i;
     
     for(i=0; i<=maks_nama; i++)     
     {
          strcpy(&nama[i]," ");        
     }
}



//PROCEDURE DESTROY NAMA
void destroy_nama(char *nama)
{
     int i;
     
     for(i=0; i<=maks_nama; i++)     
     {
          strcpy(&nama[i]," ");        
     }
}

//PROCEDURE MENU PILIHAN
void menu_pilihan(char nama[maks_nama][panjang_nama], int n)
{
    int pilih,ketemu;
    
    ketemu = 0;
    while(pilih!=0)
    {
        clrscr();
        gotoxy(17,4);printf("|-------------------------------------------|\n");
        gotoxy(17,5);printf("|               MENU PILIHAN                |\n");
        gotoxy(17,6);printf("|-------------------------------------------|\n");
        gotoxy(17,7);printf("|         [ 1 ] Input Nama                  |\n");
        gotoxy(17,8);printf("|         [ 2 ] Tampil Nama                 |\n");
        gotoxy(17,9);printf("|         [ 3 ] Cari Nama                   |");
        gotoxy(17,10);printf("|         [ 0 ] Keluar                      |");
        gotoxy(17,11);printf("|-------------------------------------------|");
        gotoxy(17,12);printf("|         Pilihan Anda :                    |");
        gotoxy(17,13);printf("|-------------------------------------------|");
        gotoxy(44,12);scanf("%i",&pilih);
        while(pilih3)
        {
             gotoxy(19,15);printf("Anda salah memasukan nomor menu pilihan");
             getch();
             gotoxy(19,15);clreol();
             gotoxy(44,12);clreol();
             gotoxy(61,12);printf("|");
             gotoxy(44,12);scanf("%i",&pilih);
             
        }
        
        switch(pilih)
        {
           case 1 : clrscr();
                    isi_nama(nama,&amp;n);
                    break;
                    
           case 2 : clrscr();
                    if(n!=0)
                       tampil_nama(nama,n);
                    else{
                       gotoxy(23,12);printf("Anda belum memasukan data, ulangi !!!!");
                       getch();}
                    break;
                    
           case 3 : clrscr();
                    if(n!=0)
                       search_nama(nama,n);
                    else{
						gotoxy(23,12);printf("Anda belum memasukan data, ulangi !!!!");
						getch();
					}
                    break;
           case 0 : destroy_nama(nama);
                    exit(0);
        }
        
    }
}



//PROCEDURE URUT NAMA
void urut_nama(char nama[maks_nama][panjang_nama], int n)
{
    char temp[maks_nama][panjang_nama];
    int i,j;
    
    for(i=1; i=0 && strcmp(nama[j], temp)==1)
         {
             strcpy(nama[j+1],nama[j]);
             j--;
         }
         strcpy(nama[j+1],temp);
    }
}



//PROCEDURE ISI NAMA
void isi_nama(char nama[maks_nama][panjang_nama], int *n)
{
     int i;
     
     gotoxy(17,4);printf("|-------------------------------------------|");
     gotoxy(17,5);printf("|          MENU PILIHAN INPUT NAMA          |");
     gotoxy(17,6);printf("|-------------------------------------------|");
     gotoxy(17,7);printf("|       Berapa banyak nama :                |");
     gotoxy(17,8);printf("|-------------------------------------------|");
     gotoxy(46,7);scanf("%i",n);
     for(i=0; i<*n; i++)
     {
         gotoxy(17,9+i);printf("|  Nama ke-%i                     ",i+1);
         gotoxy(32,9+i);printf(":");
         gotoxy(61,9+i);printf("|");
         gotoxy(35,9+i);fflush(stdin);gets(nama[i]);
         
     }
     gotoxy(17,9+i);printf("|-------------------------------------------|");
     gotoxy(17,9+i+1);printf("|          %i nama telah tersimpan          ",*n);
     gotoxy(61,9+i+1);printf("|");
     gotoxy(17,9+i+2);printf("|-------------------------------------------|");
     getch();
}

//PROCEDURE CARI NAMA
void search_nama(char nama[maks_nama][panjang_nama], int n)
{
     char *nama_cari[maks_nama][panjang_nama];
     int i;
     
     urut_nama(nama,n);
     
     gotoxy(17,4);printf("|-------------------------------------------|");
     gotoxy(17,5);printf("|          MENU PILIHAN CARI NAMA           |");
     gotoxy(17,6);printf("|-------------------------------------------|");
     gotoxy(17,7);printf("|         Masukan Nama Yang Dicari          |");
     gotoxy(17,8);printf("|");
     gotoxy(61,8);printf("|");
     gotoxy(17,9);printf("|-------------------------------------------|\n");
     gotoxy(35,8);fflush(stdin);gets(*nama_cari);
     
     
     i=0;
     while (i<n)
     {  
		if (strcmpi(nama_cari,nama[i])==0){
			gotoxy(17,10);printf("|");
            gotoxy(22,10);printf("   Nama %s ada pada data ke %i  ",nama_cari,i+1);
            gotoxy(61,10);printf("|");
		}
        else{
			gotoxy(17,10);printf("|");
            gotoxy(22,10);printf("    Nama %s tidak ada pada data  ",nama_cari);
            gotoxy(61,10);printf("|");
		}
        i++;
     }         
      
     gotoxy(17,11);printf("|-------------------------------------------|");
     gotoxy(17,12);printf("|     Ada %i nama yang telah tersimpan       |",n);
     gotoxy(17,13);printf("|-------------------------------------------|");
     
     for(i=0; i<n; i++){
       gotoxy(17,14+i);printf("|    Nama ke-%i      ",i+1);
       gotoxy(36,14+i);printf("%s",&nama[i]);
       gotoxy(34,14+i);printf(":");
       gotoxy(61,14+i);printf("|");
     }
     gotoxy(17,14+i);printf("|-------------------------------------------|");
     getch();
}


//FUNGSI NAMA TERKECIL
char *nama_terkecil(char nama[maks_nama][panjang_nama], int n)
{
     int i;
     char *min[maks_nama][panjang_nama];
     
     strcpy(&min[maks_nama][panjang_nama],nama[0]);
     for(i=1; i<n; i++)
     {
         if(strlen(nama[i]) <= strlen(&min[maks_nama][panjang_nama]))
         {
             strcpy(&min[maks_nama][panjang_nama],nama[i]);
         }
     }
     
     return &min[maks_nama][panjang_nama];
}


//FUNGSI NAMA TERBESAR
char *nama_terbesar(char nama[maks_nama][panjang_nama], int n)
{
     int i;
     char *max[maks_nama][panjang_nama];
          
     strcpy(&max[maks_nama][panjang_nama],nama[0]);
     for(i=1; i= strlen(&max[maks_nama][panjang_nama]))
         {
             strcpy(&max[maks_nama][panjang_nama],nama[i]);
         }
     }
     
     return &max[maks_nama][panjang_nama];
}



//PROCEDURE TAMPIL NAMA
void tampil_nama(char nama[maks_nama][panjang_nama], int n)
{
    
    int i;
    char *max[maks_nama][panjang_nama];
    char *min[maks_nama][panjang_nama];
    
    clrscr();
    gotoxy(17,4);printf("|-------------------------------------------|");
    gotoxy(17,5);printf("|        MENU PILIHAN TAMPIL NAMA           |");
    gotoxy(17,6);printf("|-------------------------------------------|");
    urut_nama(nama,n);
    for(i=0; i<n; i++)
    {
       gotoxy(17,7+i);printf("|    Nama ke-%i     %s         ",i+1,&nama[i]);
       gotoxy(33,7+i);printf(":");
       gotoxy(61,7+i);printf("|");
    }
    gotoxy(17,7+i);printf("|-------------------------------------------|");
    gotoxy(17,7+i+1);printf("| Nama Terpanjang : %s             ",nama_terbesar(nama,i));
    gotoxy(61,7+i+1);printf("|");
    gotoxy(17,7+i+2);printf("|-------------------------------------------|");
    gotoxy(17,7+i+3);printf("| Nama Terpendek  : %s             ",nama_terkecil(nama,i));
    gotoxy(61,7+i+3);printf("|");
    gotoxy(17,7+i+4);printf("|-------------------------------------------|");
    getch();
    
}

/*
  programmed by adiputra
*/

ada yg error!!!! saya tunggu commentnya..^_^
oiya hampir seluruh progaram ini saya buat sendiri, namun ada sebagian yang saya kerjakan dengan kelompok saya terutama sama Bimo, buat Bimo..thx y Boz…

Iklan

5 thoughts on “Program array dengan menu pilihan

  1. ade setio : hehe..bukan PS De tapi PES(pro evolution soccer)…kadang kalo lg banyak pikiran..maen dech,,bosen jg cz gak ada yg bs ngalahin the guns arsenalnya gw…

  2. @indra : menu searching bisa insyaAllah, tp kalo pke tombol segala,,beh,,mungkin bisa tapi gak juga kayanya coz masih jalan di dos,,kalo mau pke yg grafis seperti visual C++ ato Delphi(pascal).

Silahkan Komentar...

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s