Tugas Besar Algoritma Pemrograman

source code dalam bahasa c.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max 100

 typedef struct
 {
    char krmk[30];
     char ruang[30]; //type bentukan untuk nama ruang dan nama keramik
 }Nama;

 typedef struct
 {
    float p[max],l[max];
    float L[max]; //type bentukan untuk luas ruangan
    Nama R[max];
 }Luas;

void Isi_Ruang(Luas *name, int batas);
void ruangan(Luas *luasruang,int batas);
void Isi_Kra(Luas *name, int batas);
void keramik(Luas *luaskeramik, int batas,Luas name); //define prosedur
void bubble_sort(Luas *luasruang, int batas);
void krmkperruang(Luas luasruang,Luas luaskeramik,int batas,Luas name);
void searchp(Luas luasruang,Luas name,int batas);
void searchl(Luas luasruang,Luas name,int batas);

/*MAIN PROGRAM*/
int main()
{
   Luas LRumah;
   int Jml,JmlKra;
   int Pilih;
   Luas luasruang;
   float tampung[max];
   int i,l;
   Luas LuasKra;
   Luas name;
   int KeramikBesar;
   float TotalKraRuang[max];
   float TotalKraDus[max];


   printf("Program Menghitung Keramik\n");
   printf("=================================\n");
   printf("\nPanjang Rumah = ");scanf("%f",&LRumah.p[0]);
   printf("Lebar Rumah = ");scanf("%f",&LRumah.l[0]);
   LRumah.L[0] = LRumah.p[0] * LRumah.l[0];

   printf("Luas Rumah Anda = %0.0f\n",LRumah.L[0]);
   printf("------------------------------------------");
   printf("\nJumlah Ruangan = ");scanf("%d",&Jml);
   printf("\nRuangan apa saja ? (Mohon Isi Tanpa Spasi)\n");
   Isi_Ruang(&name,Jml);
   ruangan(&luasruang,Jml);

   printf("\nJumlah Jenis Keramik yg akan anda gunakan = ");scanf("%d",&JmlKra);
   printf("Jenisnya apa saja ? (Mohon Isi Tanpa Spasi)\n");
   Isi_Kra(&name,JmlKra);
   printf("\nSekarang Ukuran Keramik berapa?\n");
   keramik(&LuasKra,JmlKra,name);

   printf("\n--------------------------------------------------------");
   printf("\nList daftar ruangan dari luas terkecil ke luas terbesar\n");
   bubble_sort(&luasruang,Jml);
   for(i=0;i<Jml;i++)
   {
     printf("%d. Luas %s \t= %0.0f \n",i+1,name.R[i].ruang,luasruang.L[i]);
   }


 /*Tentang pilihan algoritmanya bingung aseli*/
 /*SKIP SKIP*/
 /*Ini Misalkan udah di set default ruangan sama keramik yang dipakai*/
 //krmkperruang(luasruang,LuasKra,JmlKra,name);
 
   searchp(luasruang,name,Jml);
   searchl(luasruang,name,Jml);

   return 0;
}

/*PROCEDURE AND FUNGSI*/
void Isi_Ruang(Luas *name, int batas)
{
   int i = 0;
   while (i < batas)
 {
   printf("Ruang %d = ",i+1);scanf("%s",&(*name).R[i].ruang);
   i = i+1;
 };
   printf("\nSekarang Ukurannya Berapa?\n");
};

void ruangan(Luas *luasruang,int batas)
 {
   int i = 0;
   float jumlahp = 0;
   float jumlahl = 0;

   while (i < batas)
   {
     printf("Panjang Ruang %d = ",i+1);scanf("%f",&(*luasruang).p[i]);
     printf("Lebar Ruang %d = ",i+1);scanf("%f",&(*luasruang).l[i]);
     (*luasruang).L[i] = (*luasruang).p[i] * (*luasruang).l[i];
     jumlahp = jumlahp + (*luasruang).p[i];
     jumlahl = jumlahl + (*luasruang).l[i];
     i = i+1;
    };
     printf("\nKeterangan Jumlah Panjang dan Lebar");
     printf("\nJumlah Panjang = %0.0f", jumlahp);
     printf("\nJumlah Lebar = %0.0f\n", jumlahl);
};

void Isi_Kra(Luas *name, int batas)
{
  int i = 0;
  while (i < batas)
  {
    printf("Keramik %d merupakan keramik jenis = ",i+1);scanf("%s",&(*name).R[i].krmk);
    i = i+1;
  };
};

void keramik (Luas *luaskeramik, int batas,Luas name)
{
   int i = 0;
   while (i < batas)
 {
   printf("Panjang Keramik %d = ",i+1);scanf("%f",&(*luaskeramik).p[i]);
   printf("Lebar Keramik %d = ",i+1);scanf("%f",&(*luaskeramik).l[i]);
   (*luaskeramik).L[i] = (*luaskeramik).p[i] * (*luaskeramik).l[i];
   printf("Luas Keramik %s sebesar = %0.0f\n\n",name.R[i].krmk,(*luaskeramik).L[i]);
   i = i+1;
 };
}

void bubble_sort(Luas *luasruang, int batas)
{
   int i,j;
   float temp;
   for(i=1;i<batas;i++)
   {
     for(j=0;j<batas-i;j++)
     {
       if((*luasruang).L[j] > (*luasruang).L[j+1])
       {
         temp=(*luasruang).L[j];
         (*luasruang).L[j]=(*luasruang).L[j+1];
         (*luasruang).L[j+1]= temp;
       }
      }
    }
}

void krmkperruang(Luas luasruang,Luas luaskeramik,int batas,Luas name)
{
   int j,k,l,m;
   float totalkrmk[max],total;
   if(batas <= 2 && batas >=0)
   {
    for (j=0;j<=2;j++)
    {
      totalkrmk[0] = ceil(luasruang.L[j] / luaskeramik.L[0]);
      printf("\nJumlah Keramik %s yang dibutuhkan = %0.0f",name.R[0].krmk,totalkrmk[0]);
    }
   }
   if(batas <= 5 && batas >=3)
   {
     for (k=3;k<=5;k++)
     {
     totalkrmk[1] = ceil(luasruang.L[k] / luaskeramik.L[1]);
     printf("\nJumlah Keramik %s yang dibutuhkan = %0.0f",name.R[1].krmk,totalkrmk[1]);
     }
   }
   if(batas <= 7 && batas >=6)
   {
     for (l=6;l<=7;l++)
     {
      totalkrmk[2] = ceil(luasruang.L[l] / luaskeramik.L[2]);
      printf("\nJumlah Keramik %s yang dibutuhkan = %0.0f",name.R[2].krmk,totalkrmk[2]);
     }
   }
   if(batas <= 10 && batas >=8)
   {
     for (m=8;m<=10;m++)
     {
      totalkrmk[3] = ceil(luasruang.L[m] / luaskeramik.L[3]);
      printf("\nJumlah Keramik %s yang dibutuhkan = %0.0f",name.R[3].krmk,totalkrmk[3]);
     }
   }
}

void searchp(Luas luasruang,Luas name,int batas)
{
   float angkap;
   int index[max];
   int i,j;
   printf("\n\n----------------------------------------");
   printf("\nMasukkan panjang yang ingin anda cari : ");scanf("%f",&angkap);
    //proses pencarian data
   j=0;
   for(i=0;i<batas;i++)
   {
    if(angkap==luasruang.p[i])
    {
       name.R[j].ruang;
       index[j]=i;
       j = j+1;
    }
   }
    //jika data ditemukan
    if (j>0)
   {
    printf("\nData %0.0f yang dicari ada %d buah\n",angkap,j);
    printf("Panjang tersebut ada didalam ruang : ");
    for(i=0;i<j;i++)
    {
      printf(" %s ,",name.R[i].ruang);
    }
      printf("\n");
 }
   //jika tidak ditemukan
   else
   {
     printf("-----------------------\n");
     printf(" Data tidak Ditemukan\n");
   }
}

void searchl(Luas luasruang,Luas name,int batas)
{
   float angkal;
   int index[max];
   int i,j;
   printf("\n\n----------------------------------------");
   printf("\nMasukkan lebar yang ingin anda cari : ");scanf("%f",&angkal);
   //proses pencarian data
   j=0;
   for(i=0;i<batas;i++)
   {
     if(angkal==luasruang.l[i])
     {
       name.R[j].ruang;
       index[j]=i;
       j = j+1;
     }
   }
   //jika data ditemukan
   if (j>0)
   {
     printf("\nData %0.0f yang dicari ada %d buah\n",angkal,j);
     printf("Lebar tersebut ada didalam ruang : ");
     for(i=0;i<j;i++)
     {
       printf(" %s ,",name.R[i].ruang);
     }
       printf("\n");
     }
 //jika tidak ditemukan
     else
     {
       printf("-----------------------\n");
       printf(" Data tidak Ditemukan\n");
     }
  }

Hasilnya kayak di bawah ini nih :

Capture.JPG

atau monggo di copas aja terus di compile. hehe..

 

Bonus biar ga mumet 🙂 :

______458311163
Bonus 1
1.jpg
Bonus 2 
ob-1
Bonus 3
selfie jilbab cute.jpg
Cukup sekian dan terima kasih 🙂