Switch-Case Bahasa C
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]
