.

20130719

Array Static 2D

ALGORITMA DAN PEMROGRAMAN
-------------------------------------------

#include
#include
#include

int main ()
{
/* Kamus */
#define true 1
#define false 0
int data[3][99], dataS[99];
int i, j, k, n, modus, quit, mins, frek[101];
int max = -999;
int temp = 0;
float median, rata;
float sum = 0;


/* Algoritma */
    do
{
 system ("cls");
 printf ("\t============================\n");
 printf ("\t: ARRAY STATIK DUA DIMENSI :\n\n");
 printf ("+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+\n");
 printf ("+. Pilih salah satu :\t\t\t .+ +\n");
 printf ("+. (1) Input Data\t\t\t .+ + +\n");
 printf ("+. (2) Cari Nilai Rerata (Mean)\t\t .+ + + +\n");
 printf ("+. (3) Cari Nilai Tengah (Median)\t .+ + + + +\n");
 printf ("+. (4) Cari Nilai Modus \t\t .+ + + +\n");
 printf ("+. (5) Display Data\t\t\t .+ + +\n");
 printf ("+. (0) Keluar Program\t\t\t .+ +\n");
 printf ("+.+++++++++++++++++++++++++++++++++++++++.+\n");
 printf ("Pilihan anda        : ");
 switch (getchar())
 {
     case '1' :
     {
     printf ("Masukkan banyaknya data (integer & <= 99 ) : ");
     scanf ("%d", &n);

/* Input Data */
 data[1][0] = -1;
 for (j=1; j<=n; j++)
 {
   printf ("Masukkan NIM ke-%d (5 digit terakhir)       : ", j);
   scanf ("%d", &data[1][j]);
          /* Validasi NIM harus 5 digit */
   while ((data[1][j] < 10000) || (data[1][j] > 99999))
   {
     printf ("Maaf, NIM yang anda inputkan tidak sesuai, tolong inputkan NIM kembali.\n");
     printf ("Masukkan NIM ke-%d (5 digit terakhir)       : ", j);
     scanf ("%d", &data[1][j]);
     }
          /* Validasi NIM unique */
       if (j > 1)
            {
              for (k=1; k             {
                while (data[1][k] == data[1][j])
                {
                  printf ("Maaf, NIM %d yang anda inputkan sudah diinputkan sebelumnya, tolong inputkan NIM kembali.\n", data[1][j]);
                  printf ("Masukkan 5 digit NIM akhir untuk data ke-%d =", j);scanf("%d", &data[1][j]);
                }
           }
   }
   printf ("Masukkan nilai : ");
            scanf ("%d", &data[2][j]);

          /* Jumlah Nilai (sum) */
            sum = sum + data[2][j];
          };
          printf ("Jumlah nilai (sum) = %0.2f\n", sum);
 printf ("Press any key to continue...");
          getch ();
          break;
}
case '2' :
{
   /* Rerata (Mean) */
          rata=sum / n;
          printf ("Rerata Nilai (Mean) = %.2f\n", rata);
          printf ("Press any key to continue...");
 getch ();
 break;
}
case '3' :
/* Mengurutkan data */
/* Mengisi array dataS dengan nilai(data[1]) dari array data */
        {
 for (j=1; j<=n; j++)
          {
            dataS[j] = data[2][j];
          }
          /* Mulai sorting */
          for (j=1; j<=n; j++)  
          {
            mins = dataS[j];
            for (k=j; k<=n; k++)
            {
              if (dataS[k] < mins)
                mins = dataS[k];
            }
            for (k=j; k<=n; k++)
            {
              if (dataS[k] == mins)
              {
                temp = dataS[k]; /* Menukar data */
                dataS[k] = dataS[j];
                dataS[j] = temp;
              }
            } /* Sorting selesai */
 }
 printf ("Data sebelum diurutkan= \n");
          for (j=1; j<=n; j++)
   {
printf ("\t\t\t%d \n", data[2][j]);
 }
 printf ("\nData setelah diurutkan= \n");
          for (j=1; j<=n; j++)
          {
        printf ("\t\t\t%d \n", dataS[j]);
          }
        /* Cari Nilai Tengah (Median) */
          if (n % 2 == 1)
            median = dataS[(n + 1) / 2];
          else
            median = ((float)dataS[n/2] / 2) + ((float)dataS[n/2 + 1] /2);
          printf ("\nNilai Tengah (Median) = %.2f\n", median);
          printf ("Press any key to continue...");
 getch ();
 break;
}  
   case '4' :
        /* Cari Banyak Nilai Yang Muncul (Modus) */
        {
 for (i=0; i<=99; i++)
          {
            frek[i] = 0;
            for (j=1; j<=n; j++)
            {
              if (data[2][j] == i)
              {
                frek[i] = frek[i] + 1;
              }
            }
            if (frek[i] > max)
            {
              max = frek[i];
              modus = i;
            }
          }
          printf ("Banyak Nilai Yang Muncul (Modus) = %d\n",modus);
          printf ("Press any key to continue.");
 getch ();
          break;
}
        case '5' :
        {
 printf ("Data setelah diurutkan : \n\n");
          for (j=1; j<=n; j++)
          {
            printf ("%d \n",dataS[j], rata, median, modus);
          };
          printf ("Press any key to continue...");
          getch ();
          break;;
}
case '0' :
{
 printf ("\t\t\t\t\nSEMANGATNYA");
 quit=true;
 break;
}
default:
printf ("Maaf, tidak ada pilihan yang anda maksud.\n");
break;
getchar ();
 }
}
while (quit != true);
getch ();
return 0;
}

Tidak ada komentar:

Posting Komentar