Katenzo

royanrodiana.blogspot.com

Katenzo

royanrodiana.blogspot.com

Katenzo

royanrodiana.blogspot.com

Katenzo

royanrodiana.blogspot.com

Katenzo

royanrodiana.blogspot.com

Tampilkan postingan dengan label PROGRAM C. Tampilkan semua postingan
Tampilkan postingan dengan label PROGRAM C. Tampilkan semua postingan

Kamis, 25 April 2013

PERHITUNGAN MATRIX

         Dalam kegiatan kali ini kita akan membuat sebuah program menggunakan bahasa c untuk menghitung penjumlahan, pengurangan, perkalian, pembagian dua buah matrix ordo 2 dalam bilangan yang dapat diinputkan oleh user.

Disamping ini merupakan video tutorialnya :


Output yang akan dihasilkan :


Source code :

#include <stdio.h>
#include <stdlib.h>
float varA[2][2],varB[2][2],varC[2][2];
int x,y,z;
 //Buat fungsi menu untuk tampilan pemilihan menu
void menu(){
  printf("\n[1] PENJUMLAHAN");    
  printf("\n[2] PENGURANGAN");
  printf("\n[3] PERKALIAN");  
  printf("\n[4] PEMBAGIAN");
  printf("\n[0] KELUAR");
}

//buat fungsi untuk memasukan nilai matrix
void masukkan(){
  int i,j;
  printf("===========Bilangan Matrix A=========\n\n");
  for (i=0; i<2; i++){
    for (j=0; j<2; j++){
    printf("Bilangan Matrix A [%d][%d] : ",i, j);
       //buat inputan user menggunakan fungsi scanf
    scanf("%f",&varA[i][j]);
    }
  }
  printf("\n===========Bilangan Matrix B=========\n\n");
  for (i=0; i<2; i++){
    for (j=0; j<2; j++){
    printf("Bilangan Matrix B [%d][%d] : ",i, j);
       //buat inputan user menggunakan fungsi scanf
    scanf("%f",&varB[i][j]);
    }
  }
}

//buat fungsi untuk menampilkan yang akan dipanggil pada fungsi
//lain seperti penjumlahan
void tampilkan(char opr){
  for (x=0; x<2; x++){
    for (y=0; y<2; y++){
      printf("%2.0f ",varA[x][y]);
    }
    if(x==0) printf("\t%c\t",opr);
    else printf("\t\t");
    for (y=0; y<2; y++){
      printf("%2.0f ",varB[x][y]);
    }
    printf("\n");
  }
  
}
//buat fungsi untuk penjumlahan
void jumlah(){
  masukkan(); //pemanggilan fungsi masukan
  tampilkan('+'); //pemanggilan fungsi untuk menampilkan
  printf("Hasil Penjumlahan:\n");
  for (x=0; x<2; x++){
    for (y=0; y<2; y++){
      printf("%2.0f ",varA[x][y]+varB[x][y]);
    }
    printf("\n");
  }
}

//buat fungsi untuk pengurangan
void kurang(){
  masukkan(); //pemanggilan fungsi masukan
  tampilkan('-'); //pemanggilan fungsi untuk menampilkan
  printf("Hasil Pengurangan:\n");
    for (x=0; x<2; x++){
    for (y=0; y<2; y++){
              //buat rumus penguranganya
      printf("%2.0f ",varA[x][y]-varB[x][y]);
    }
    printf("\n");
  }
}
//buat fungsi perkalian
void kali(){
  masukkan();
  tampilkan('x');
  printf("Hasil Perkalian:\n");
  for (x=0; x<2; x++){
    for (y=0; y<2; y++){
      varC[x][y]=0;
      for (z=0; z<2; z++){
                //buat rumus untuk perkalian
        varC[x][y]+=varA[x][z]*varB[z][y];
             
      }
      printf("%2.0f ",varC[x][y]);
    }
    printf("\n");
  }
}
//buat fungsi pembagian
void bagi(){
  float deterB,temp,vrBinvers[2][2];
  masukkan();
  tampilkan(':');

  deterB = 1/((varB[0][0]*varB[1][1])-(varB[0][1]*varB[1][0]));
  vrBinvers[0][0] = deterB*varB[1][1];
  vrBinvers[0][1] = deterB*(-varB[0][1]);
  vrBinvers[1][0] = deterB*(-varB[1][0]);
  vrBinvers[1][1] = deterB*varB[0][0];

  for (x=0; x<2; x++){
    for (y=0; y<2; y++){
      printf("%2.0f ",varA[x][y]);
    }
    if(x==0) printf("\tx\t");
    else printf("\t \t");
    for (y=0; y<2; y++){
      printf("%6.2f ",vrBinvers[x][y]);
    }
    printf("\n");
  }

  printf("Hasil Pembagian:\n");
  for (x=0; x<2; x++){
    for (y=0; y<2; y++){
      varC[x][y]=0;
      for (z=0; z<2; z++){
        varC[x][y]+=varA[x][z]*vrBinvers[z][y];
      }
      printf("%6.2f ",varC[x][y]);
    }
    printf("\n");
  }
}

//fungsi utama program
int main(void){
  int selesai=1,pilih;
  printf("\n================================================\n");
  printf("=========         PROGRAM C            =========\n");
  printf("=========    PERHITUNGAN MATRIKS       =========\n");
  printf("=========       Royan Rodiana          =========\n");
  printf("================================================\n\n");
  while(selesai==1){
    menu();
    printf("\nMasukkan pilihan >");
           scanf("%d",&pilih);
    switch(pilih){
      case 0 : selesai=0; break;
      case 1 : jumlah(); break;
      case 2 : kurang(); break;
      case 3 : kali(); break;
      case 4 : bagi(); break;
      
                //buat defaultnya jika memilih menu selain diatas ada peringatan dan sistem terhenti
      default :  printf("Maaf nomor yang anda masukan tidak ada di list \n silahkan ulangi !!!\n\n");
                system("pause");
                return 0;
                break;
    }
  }
  system("pause");
  return 0;
}


Jumat, 19 April 2013

ARRAY

Array adalah susunan data dengan jumlah tertentu yang bertipe sama dan bernama sama.Setiap Elemen data yang tersusun dalam array dibedakan dengan nomor index yang selalu dimulai dari 0.




Dalam program array yang akan dibahas kali ini adalah program menyalin isi array A ke dalam aray B dan isi di array B memiliki posisi terbalik sari array A.
Output Program yang dituju adalah sebagai berikut :



Source Code :Nomor 5

#include <stdio.h>  
#include<stdlib.h>  
int main(void)

{
       int nilai = 5, a = 0, b = 0;
       int A[5];
       int B[5];
       printf("=================ROYAN RODIANA=============\n\n");
       printf("=====================    ARRAY    ==============\n\n");

       printf("Masukan nilai Array A \n");
       for(a = 0; a < nilai; a++){
              printf("Masukan nilai array %d : ", a+1);
              scanf("%d", &A[a]);
       }
       printf("\n\nArray : int A[5];\n\n");
       printf("Index : 0 1 2 3 4\n");
       printf("Nilai : ");
       for(a = nilai - 1; a >= 0; a--){
              B[a] = A[b];
              printf("%d ", A[b]);
              b++;
       }
       printf("\n\n=============================================\n");
       printf("Hasil copy dari array A ke array B dengan posisi terbalik adalah\n");
       printf("===============================================\n\n");
       printf("Array : int B[5];\n\n");
       printf("Index : 0 1 2 3 4\n");
       printf("Nilai : ");
       for(a = 0; a < nilai; a++){
              printf("%d ", B[a]); }
       printf("\n\n");

       system("pause");
       return 0;
}


Penjelasan kode program

·       
  #include <stdio.h>   digunakan untuk standar input output

·         #include<stdlib.h>   digunakan untuk untuk mengaktifkan system(“pause”)

·         for(a = 0; a < nilai; a++){  pengulangan menggunakan "for" selama masih kurang dari "nilai" proses akan berjalan

·         scanf("%d", &A[a]); Ã  memasukan nilai array melalui fungsi scanf

·         for(a = nilai - 1; a >= 0; a--){  pengulangan menganbil nilai array yang dimasukan menggunakan for

·         printf("%d ", A[b]);  menampilkan nilai array yang dimasukan

·         for(a = 0; a < nilai; a++){ pengulangan untuk mengambil nilai dari array a secara tebalik

·         printf("%d ", B[a]); fungsi untuk menampilkan array B

·         system("pause"); untuk menahan program supaya tidak langsung keluar

Kamis, 18 April 2013

TAHUN KABISAT C

Tahun Kabisat (Bahasa Inggris: Leap Year) adalah sebuah tahun syamsiah di mana pada tahun tersebut jumlah hari tidak terdiri dari 365 hari tetapi 366 hari.
Satu tahun syamsiah tidak secara persis terdiri dari 365 hari, tetapi 365 hari 5jam 48 menit45,1814 detik. Jika hal ini tidak dihiraukan, maka setiap 4 tahun akan kekurangan hampir1 hari (tepatnya 23 jam 15 menit 0,7256 detik).
Maka untuk mengkompensasi hal ini, setiap 4 tahun sekali (tahun yang bisa dibagi 4), diberi 1 hari ekstra: 29 Februari. Tetapi karena 5 jam 48 menit 45,1814 detik kurang dari 6 jam, maka tahun-tahun yang bisa dibagi 100 (seperti tahun 1900), bukan tahun kabisat, kecuali bisa dibagi dengan 400 (seperti tahun 2000).

Terdapat algoritma mudah untuk menentukan apakah suatu tahun termasuk tahun kabisat atau bukan sebagai berikut:
  1. Jika angka tahun itu habis dibagi 400, maka tahun itu sudah pasti tahun kabisat.
  2. Jika angka tahun itu tidak habis dibagi 400 tetapi habis dibagi 100, maka tahun itu sudah pasti bukan merupakan tahun kabisat.
  3. Jika angka tahun itu tidak habis dibagi 400, tidak habis dibagi 100 akan tetapi habis dibagi 4, maka tahun itu merupakan tahun kabisat.
  4. Jika angka tahun tidak habis dibagi 400, tidak habis dibagi 100, dan tidak habis dibagi 4, maka tahun tersebut bukan merupakan tahun kabisat
Hasil output yang dituju :


Source code dan video program c :




                                                                        Coding 1
Source Code:  Tahun Kabisat

#include <stdio.h>
#include <stdlib.h>

int kabisat(int tahun);//prototype fungsi
int c; // deklarasi variable global

int main(void)
{
       printf("\n\n\n============CEK TAHUN KABISAT by ROYAN RODIANA===========\n\n");
       printf("Masukan tahun yang ingin dicek (yyyy) : ");
       scanf("%d",&c); // fungsi scanf untuk menerima input data dari user
       kabisat(c); // pemanggilan fungsi kabisat
       system("pause");
       return(0);
}

int kabisat(int tahun) //definisi fungsi
{
       //pernyataan dengan menggunakan if else
       //tanda || merupakan operator logical untuk "or"
              if (tahun %4 == 0 || tahun % 100 == 0|| tahun % 400 == 0)
                           printf("Tahun %d Merupakan Tahun Kabisat\n",c);
            else
                           // %d merupakan conversion specifier untuk integer
                printf("Tahun %d Bukan Tahun Kabisat\n",c);
}
      
Deskripsi singkat:
Didalam code diatas terdapat pembuatan fungsi baru yaitu fungsi kabisat.cara penulisan fungsi baru tersebut adalah
  • Prototype fungsi
tipe_return nama_fungsi(tipe_variable nama_variable)
  • Definisi fungsi
tipe_return nama_fungsi(tipe_variable nama_variable)
        {
pernyataan
         }

Kamis, 11 April 2013

CONTROL FLOW C

                Program c yang terdapat pada video dan source code dibawah ini merupakan contoh dari penggunaan bebrapa control flow yaitu 


Pengulangan menggunakan while
  • Bentuk umum
While (kondisi
{
pernyataan
}

  • Contoh penulisanya
       while(i<100) // nilai i akan diproses ketika kurang dari 100 / kondisi
       {
       printf("%d +",i); //pernyataan
       a+=i; //a=a+i
       i+=3;
       }

Pengulangan do/while
  • Bentuk umum
do
{
pernyataan
}while(kondisi);

  • Contoh penulisanya
       do
       {

       printf("%d +",j); //pernyataan
       b+=j; //b=b+j
              j+=3;
       }

       while (j<100); //kondisi
Penggunaan For
  • Bentuk umum
for (ekspresi_1;ekspresi2;ekspresi3)
{
Pernyataan;
}

  • Contoh penulisanya
       for (k=2;k<100;k=k+3) //ekspresi
      
              {
       printf("%d +",k); //pernyataan
       c+=k;
              }







Coding 1
Source Code: Schaum 6.45 (a, b, c),164


#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main (void)
{
       int i = 2,a=0; // varible yang digunakan untuk pengulangan while
       int j = 2,b=0; // varible yang digunakan untuk pengulangan do-while
       int k = 2,c=0; // varible yang digunakan untuk pengulangan for

       printf("================= 49013031 ROYAN RODIANA ==================\n\n\n");
       printf("================= PENGULANGAN WHILE========================\n\n");
      
       //PENGULANGAN WHILE
       while(i<100) // nilai i akan diproses ketika kurang dari 100 / kondisi
       {
       printf("%d +",i); //pernyataan
       a+=i; //a=a+i
       i+=3;
       }
      
       printf("hasil penjumlahan semua nilai  hasil pengulangan while adalah %d\n\n",a);


       printf("============= PENGULANGAN DO WHILE========================\n\n");
       //PENGULANGAN DO-WHILE
       do
       {

       printf("%d +",j); //pernyataan
       b+=j; //b=b+j
              j+=3;
       }

       while (j<100); //kondisi

       printf("Jumlah nilai hasil pengulangan do while adalah = %d\n\n",b);

       printf("=============== PENGULANGAN FOR =========================\n\n");
       //PENGULANGAN FOR

       for (k=2;k<100;k=k+3) //ekspresi
      
              {
       printf("%d +",k); //pernyataan
       c+=k;
              }
       printf("Jumlah nilai hasil pengulangan FOR adalah = %d\n\n",c);
      
       system("pause");//menghentikan output supaya tidak langsung tutup
       return(0);
}