Rabu, 21 Juni 2017

Studi Kasus 18



Mobil 13 adalah perusahaa yang menjual mobil bekas, berdagang mobil bekas selama bertahun-tahun ternyata hanya ada 3 merek mobil yang dicari oleh konsumen yaitu, Toyota, Honda dan Suzuki. Mobil 13 saat ini sudah memiliki cabang di 3 kota besar yaitu jakarta, Surabaya dan Medan dengan semaki banyaknya konsumen yang percaya dengan kualitas mobil bekas yang dijual oleh mobil 13  perusahaan membutuhkan program yang dapat mencatat semua penjualan mobile bekas perbulan disetiap cabangnya, selama ini masih d perhitungkan masih bersifat manual dalam bentuk bagan diatas kertas?

Syntax
#include <stdio.h>
#include <conio.h>
#include <windows.h>
using namespace std;

void gotoxy (int x, int y)  //fungsi gotoxy
{
 COORD coord;
 coord.X = x;
 coord.Y = y;
 SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

void judul (char kota[11])  //parameter menampikan tabel penjualan
{
 char merek[3][7] = {"Toyota","Honda","Suzuki"};
 char bulan[13][4] = {"Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des","JML"};

 int i;
 system ("cls");
 printf ("PENJUALAN MOBIL BEKAS\n\n");
 printf ("Kota : %s\n\n\t", kota);
 for (i = 0; i < 13; i++)  //perulangan menampilkan bulan
 {
  printf ("%s ", bulan[i]);
 }
 for (i = 0; i < 3; i++)  //perulangan menampilkan merek mobil
 {
  printf ("\n%s ", merek[i]);
 }
}

void isi_data (int jual[4][13][4])  //parameter pengisian data
{
 char kota[4][11] = {"Jakarta","Surabaya","Medan","Semua Kota"};
 int i_k, i_m, i_b;  //indeks kota, merek, bulan

 for (i_k = 0; i_k < 3; i_k++)  //kota
 {
  judul(kota[i_k]);
  for (i_m = 0; i_m < 3; i_m++)  //pengisian data merk
  {
   for (i_b = 0; i_b < 12; i_b++)  //pengisian data bulan
   {
    gotoxy (8 + i_b * 4, i_m + 5);
    scanf ("%d", &jual[i_m][i_b][i_k]);
    jual [i_m][12][i_k] += jual [i_m][i_b][i_k];  //isi ke samping
    jual [3][i_b][i_k] += jual [i_m][i_b][i_k];  // isi ke bawah
    jual [3][12][i_k] += jual[i_m][i_b][i_k];  //isi ke total
    jual [i_m][i_b][3] += jual[i_m][i_b][i_k];  //isi ke lapis 4
   }
   gotoxy (56, i_m + 5);  //jumlah pertahun
   printf ("%d", jual[i_m][12][i_k]);
  }
  printf ("\n\t");  //menampilkan garis
  for (int z = 0; z <= 50; z++)
  {
  
   printf ("=");
  }
  gotoxy (8, 9); //jumlah perbulan
  for (i_b = 0; i_b < 13; i_b++)
  {
  
   printf ("%-4d", jual[3][i_b][i_k]);
   fflush(stdin);
  }
  getch();
 }
}

void total_jual (int jual[4][13][4])  //parameter hasil
{
 char kota[4][11] = {"Jakarta","Surabaya","Medan","Semua Kota"};
 int i_k, i_m, i_b;

 for (i_m = 0; i_m < 3; i_m++)
 {
  for (i_b = 0; i_b < 12; i_b++)
  {
   jual [i_m][12][3] += jual[i_m][i_b][3];  //tambah ke samping
   jual [3][i_b][3] += jual[i_m][i_b][3];  //tambah ke bawah
   jual [3][12][3] += jual[i_m][i_b][3];  //tambah ke grand total
  }
   
  judul (kota[i_k]);
  for (i_m = 0; i_m < 4; i_m++)
  {
   i_m == 3 ? gotoxy (8, i_m + 6) : gotoxy (8, i_m + 5);
   for (i_b = 0; i_b < 13; i_b++)
   {
    printf ("%-4d", jual[i_m][i_b][3]);
   }
  }
 }
}

int main()
{

 int jual[4][13][4] = {0};  //pemanggilan fungsi tabel merk, bulan, kota
 isi_data (jual);  //pemanggilan fungsi pengisian data
 total_jual (jual);  //pemanggilan fungsi hasil data
 return 0;
}

Running

Penjelasan
 Dalam kasus kali ini, menggunakan fungsi array dimana jika kita memasukan nilai yang diinginkan akan tersimpan dan akan terjadi perhitungan, dimisalkan kita memasukan angka seperti di dalam hasil running. Jika penjelasaannya kurang di mengerti bisa anda berikan keritik dan saran di kolom komentar di bawah. Karena saya masih belum terlalu mengerti dengan fungsi array

0 komentar:

Posting Komentar