25 Jul 2015


Sebelumnya pernah dibahas apa itu pengkondisian. Pengkondisian itu  dalam bahasa c adalah suatu pernyataan atau penugasan yang di kondisikan. Contoh : Jika anda menyentuh aplikasi bbm maka yang keluar/muncul aplikasi bbm jika tidak atau memilih yang lain misal whatsapp maka yang keluar/muncul aplikasi whatsapp. Atau misalnya jika anda menghidupkan TV maka yang hidup TV jika AC maka yang hidup AC.

Kali ini saya akan membagikan source code pengkondisian dengan menggunakan switch-case.



#include <stdio.h>
#include <string.h>
#define max 5 //mendefinisikan bahwa max = 5, jadi jika arr[max] berarti bahwa arr[5] atau jumlahnya 5

main()
{
    int searching;
    char again;
menu:
    printf("\n-----------Searching's Menu------------\n");
    printf("\n1.\tSequential Search\n2.\tBinary Search\n3.\tKeluar\n");
    printf("\n-----Created By : @irfancheinID-------\n");
   
    printf("\nPilih Menu\t\t\t\t\t:\t");scanf("%d", &searching);
    printf("\n");
   
    switch (searching)
    {
        case 1:
        {
            int arr[max],search,i,pos=0;
           
            printf("\n\t\tSequential Search\n\n");
            for(i=0;i<max;i++)
            {
                printf("Masukkan Angka\t\t\t\t\t:\t");
                scanf("%d",&arr[i]);
            }
            cari:
            printf("\nMasukkan angka yang ingin dicari\t\t:\t");
            scanf("%d",&search);
            for(i=0;i<max;i++)
            {
                if(arr[i]==search)
                {
                    pos=i+1;
                    break;
                }
            }
            if(pos!=0)
            {
                printf("\nAngka %d ditemukan dan berada diposisi\t\t:\t%d\n",search,pos);
                printf("\nApakah anda ingin mencobanya lagi ?[Y/N]\t:\t");scanf("%s", &again);
                if(again=='y' || again=='Y')
                {

                    goto cari;
                }
                else
                {
                    goto menu;
                }
            }
            if(pos==0)
            {
                printf("\n\t\tAngka %d Tidak Ditemukan\n",search);
                printf("\nApakah anda ingin mencobanya lagi ?[Y/N]\t:\t");scanf("%s", &again);
                if(again=='y' || again=='Y')
                {
                    goto cari;
                }
                else
                {
                    goto menu;
                }
            }
        }
       
        case 2:
        {
               int i, first, last, mid, search, array[max];
               printf("\t\tBinary Search\n\n"); //hanya bisa secara berurutan [ascending/descending]
                   for (i = 0; i < max; i++)
                   {
                       printf("Masukkan Angka secara Ascending\t\t\t:\t");
                      scanf("%d",&array[i]);
                }
                 cari2:
                   printf("\nMasukkan Angka yang ingin dicari\t\t:\t");
                   scanf("%d", &search);

                   first = 0;
                   last = max - 1;
                   mid = (first+last)/2;

                   while (first <= last) {
                  if (array[mid] < search)
                 first = mid + 1;   
                  else if (array[mid] == search) {
                 printf("\nAngka %d ditemukan dan berada diposisi\t\t:\t%d\n", search, mid+1);
                 printf("\nApakah anda ingin mencobanya lagi ?[Y/N]\t:\t");scanf("%s", &again);
                if(again=='y' || again=='Y')
                {
                    goto cari2;
                }
                else
                {
                    goto menu;
                }
                  }
                  else
                 last = mid - 1;

                  mid = (first + last)/2;
                   }
                   if (first > last)
                  printf("\n\t\tAngka %d Tidak ditemukan\n", search);
                  printf("\nApakah anda ingin mencobanya lagi ?[Y/N]\t:\t");scanf("%s", &again);
                if(again=='y' || again=='Y')
                {
                    goto cari2;
                }
                else
                {
                    goto menu;
                }
        }
       
        case 3:
        {
            return 0;
        }
        default:
        printf("\t\tTidak Ada dalam Pilihan\n\t\t Silahkan Coba Kembali\n\n");
        printf("\nApakah anda ingin mencobanya lagi ?[Y/N]:\t");scanf("%s", &again);
        if(again=='y' || again=='Y')
        {
            goto menu;
        }
        else
        {
            return 0;
        }
    }//End[Switch]
}//End[main]