Tampilkan postingan dengan label Pemrograman C. Tampilkan semua postingan
Tampilkan postingan dengan label Pemrograman C. Tampilkan semua postingan

Minggu, 24 Juli 2016

TMD02, Pemrograman C, Array 1 Dimensi, Char, String

Array dan fungsi If


program ini digunakan untuk menebak nama binatang maksimal 9 huruf . dimana huruf yang dikeluarkan sesuai dengan posisinya. jika salah sebanyak 5 x maka program akan berakhir.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char kata_kunci[8]="beruang",jawaban[8]= ".......";
int batas_kesalahan=5,i;

int main(void)

{
char karakter;
int betul;
while(batas_kesalahan!=0)
{
betul=0;
printf("tebak nama binatang\n");
printf("masukan karakter > ");
karakter= getchar();
fflush(stdin);/*fflush mean menghapus/mengosongkan
 berarti melakukan flush (penghapusan)
 data pada buffer output yang tidak di perlukan
 Jika terdapat beberapa proses input (memasukkan data) sekaligus
 maka sebaiknya ditambahkan fungsi fflush(stdin)
 Fungsi fflush(stdin) berfungsi menghapus buffer di dalam alat I/O. */
for(i=0;i<strlen(kata_kunci);i++)
{
if (kata_kunci[i]==karakter)
{
jawaban[i]=karakter;
betul=1;
}
}
if(betul==0)
{
printf("karakter salah (kesempatan: %d\n",i);
batas_kesalahan--;
}
printf("%s \n",jawaban);
batas_kesalahan=cek_selesai();
}

system("pause");
return(0);
}
int cek_selesai()
{
int selesai=0;
for(i=0;i<strlen(jawaban);i++)
{
if(jawaban[i]== '.')
{
selesai=batas_kesalahan;
}
}

return selesai;

}

penggalan program dibawah ini

printf("masukan karakter > ");
karakter= getchar();
fflush(stdin);/*fflush mean menghapus/mengosongkan
  berarti melakukan flush (penghapusan)
  data pada buffer output yang tidak di perlukan
  Jika terdapat beberapa proses input (memasukkan data) sekaligus
  maka sebaiknya ditambahkan fungsi fflush(stdin)
  Fungsi fflush(stdin) berfungsi menghapus buffer di dalam alat I/O. */
for(i=0;i<strlen(kata_kunci);i++)
adalah bagian program yang digunakan untuk memasukkan karakter, kemudian dibaca dengan fungsi getchar untuk dibandingkan dengan karakter yang telah ditentukan sebelumnya yaitu karakter pada kata "beruang"

Pada bagian program dibawah jika kata yang dimasukkan salah
for(i=0;i<strlen(kata_kunci);i++)
              {
                     if (kata_kunci[i]==karakter)
                     {
                           jawaban[i]=karakter;
                           betul=1;
                     }
              }
Akan terjadi pengulangan (looping) sebanyak i<strlen(kata_kunci) yaitu 7 kali. Setelah itu program akan mengeksekusi ke bawah, yaitu mengeluarkan karakter salah. Dan program akan kembali ke atas karena ada while(batas_kesalahan!=0).dan jika kata yang dimasukkan maka kata tersebut akan di cek oleh perintah
if(betul==0)
              {
                     printf("karakter salah (kesempatan: %d\n",i);
                     batas_kesalahan--;
              }
              printf("%s \n",jawaban);
              batas_kesalahan=cek_selesai();
              }
if(betul==0 berati jika kondisi pengecekan salah (0), maka akan dicetak “karakter salah” dan akan terus terjadi proses tersebut sampai dengan batas kesalahan 9 kali. Jika talah 9 kali salah maka program akan berhenti.
Yang membatasi proses pengulangan sampai 9 kali adalah pernyataan dari variabel program batas_kesalahan=9

CLICK TO VIEW THE VIDEO TUTORIAL


Sabtu, 27 April 2013

TMD02, Pemrograman C, Rekrusi

REKRUSI


Rekrusi merupakan teknik pemrograman yang menyebabkan suatu fungsi/prosedur memanggil dirinya sendiri. Pemanggilan diri sendiri ini berlangsung terus menerus sampai batas terkecil yang nilai dari fungsi tersebut disebutkan secara eksplisit. Salah satu contoh dari penerapan rekursi adalah perhitungan faktorial. Dalam faktorial, n! = n*(n-1)! dengan pengecualian 0! = 1. Berikut contoh perhitungannya:
0! = 1
1! = 1 = 1*(0!) = 1
2! = 2*1 = 2*(1!) = 2
3! = 3*2*1 = 3*(2!) = 6
4! = 4*3*2*1 = 4*(3!) = 24
dan seterusnya...
Dalam matematika, faktorial dari bilangan asli n adalah hasil perkalian antara bilangan bulat positif yang kurang dari atau sama dengan n. Faktorial ditulis sebagai n! dan disebut n faktorial.
Sebagai contoh, 7! adalah bernilai 7×6×5×4×3×2×1 = 5040. Berikut ini adalah daftar sejumlah faktorial
Dengan menggunakan pendekatan bahasa pemrograman, contoh perhitungan diatas dapat juga ditulis seperti berikut ini:
faktorial(0) = 1
faktorial(1) = 1 * faktorial(0)
faktorial(2) = 2 * faktorial(1)
faktorial(3) = 3 * faktorial(2)
faktorial(4) = 4 * faktorial(3)
Atau lebih singkatnya yaitu:
if (n == 0)
faktorial(n) = 1;
else
faktorial(n) = n * faktorial(n-1);

berikut adalah listing programnya yang telah di beri comment

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

int main(void)
{
int m; //deklarasi variabel m dengan tipe data integer
int Faktorial(int k); //deklarasi faktorial (int k) dengan tipe data integer
printf("Masukan sebarang bilangan bulat positif>"); //untuk mencetak string
scanf("%d",&m);//untuk membaca dengan konversi data %d &m untuk memanggil variabel m
printf("\nMelalui perhitungan rekursif, %d!=%d\n", m,faktorial(m));
/*untuk mencetak string nilai dari variabel m dalam bentuk 
faktorial (%d!) dengan cara memanggil variabel m
variabel faktorial (m)) adalah memasukan nilai m ke fungsi faktorial (int k)*/
system("pause");
return 0;

}
  /* fungsi faktorial */
int faktorial(int k)
{
if (k==0)//jika variabel k samadengan nol (0)
return 1; 
else
return k*faktorial (k-1);/*Perhatikan bahwa fungsi faktorial() memanggil dirinya
jika diisi faktorial 4, maka perhitungannya
    I = 4xfaktorial 3*
II= 4x faktorial 2 ...dst*/
}

saya akan sangat berterimakasih jika ada saran atas kekurangan atau kesalahan pada  penjelasan yang telah saya tuliskan diblog saya ini



Kamis, 25 April 2013

TMD02, Pemrograman C, Array Multidimensi, Pointer, Struct

MATRIX ORDE 2


Matriks adalah susunan bilangan dalam suatu persegi panjang yang diatur berdasarkan
baris dan kolom. Ordo atau ukuran dari suatu matriks adalah banyak baris dan kolom dari suatu matriks
Susunan horizontal disebut dengan baris susunan vertical disebut dengan kolom
Ket : Matriks A berordo m x n (m baris,
n kolom)
Definisi
A 2 x 3 =
Matriks A berodo 2 x 3 ( 2 baris, 3
kolom)
Elemen baris 1 kolom 1 = 2
Elemen baris 1 kolom 2 = 4
Elemen baris 2 kolom 3 = 0

Buatlah program untuk menghitung penjumlahan, pengurangan, perkalian
dua buah matrix ordo 2 dengan bilangan yang dapat diinput

berikut adalah program yang telah dicoba

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

int main(void)
{
int A[2][2], B[2][2], X[2][2], i, j;
int pilih_operasi;

printf("OPERASI  PERHITUNGAN\n");
printf("1.Penjumlahan\n");
printf("2.Pengurangan\n");
printf("3.Perkalian\n");
printf("4.keluar\n");


printf("Masukkan Matriks A\n");
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
{
printf("Baris %i, Kolom %i : ",i+1,j+1);
fflush(stdin);scanf("%i",&A[i][j]);
 
}
}
printf(" a: %d",A[0][0]);
printf(" b: %d \n",A[0][1]);
printf(" c: %d",A[1][0]);
printf(" d: %d \n",A[1][1]);

 //---------------------------------------------------------
printf("Masukkan Matriks B\n");
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
{
printf("Baris %i, Kolom %i : ",i+1,j+1);
fflush(stdin);scanf("%i",&B[i][j]);
}
}
printf(" e: %d",B[0][0]);
printf(" f: %d \n",B[0][1]);
printf(" g: %d",B[1][0]);
printf(" h: %d \n",B[1][1]);

printf("Masukkan Pilihan Operasi : ");
scanf("%i",&pilih_operasi);
printf("\n\n");

switch(pilih_operasi)
{
case 1     : printf ("Penjumlahan Matriks \n");
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
{
                X[i][j]=(A[i][j]+B[i][j]);
            }
        }
printf("Hasil penjumlahan matriks A dan B: \n");  
        for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
            printf("%6i",X[i][j]);
            printf("\n");
        }
break;
   
case 2     : printf ("Pengurangan Matriks \n");
             for(i=0;i<2;i++)
             {
for(j=0;j<2;j++)
               {
                X[i][j]=(A[i][j]-B[i][j]);
               }
             }
             printf("Hasil pengurangan matriks A dan B: \n");  
for(i=0;i<2;i++)
             {
for(j=0;j<2;j++)
printf("%6i",X[i][j]);
printf("\n");
              }
             break;
     
case 3     : printf ("Perkalian Matriks \n");
             for(i=0;i<2;i++)
             {
for(j=0;j<2;j++)
             {
X[i][j]=(A[i][0]*B[0][j])+(A[i][1]*B[1][j]);
             }
}
printf("Hasil perkalian matriks A dan B: \n");  
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
printf("%6i",X[i][j]);
printf("\n");
}
break;
     
 
     
case   4    : printf("KELUAR \n");
              system("cls");
              break;
getch();
}

system("pause");
return(0);
}

CLICK TO VIEW THE VIDEO TUTORIAL



Kamis, 18 April 2013

Penentuan Bulan Kabisat Dengan Pemograman Bahasa C

Penentuan Bulan Kabisat 

Dengan Pemograman Bahasa C



Tahun kabisadalah sebuah tahun Syamsiah. dimana tahun tersebut jumlah hari tidak terdiri dari 365 hari, malainkan 366 hari. untuk mengetahui tahun yang bukan tahun kabisat adalah tahun yang tidak habis dibagi 100 kecuali habis dibagi 400 maka disebut tahun kabisat CLICK TO VIEW THE VIDEO TUTORIAL
Pada program diatas menggunakan fungsi percabangan if, else if dan fungsi logika not dan and. Jadi sebetulnya program diatas digunakan untuk menyeleksi keadaan logika apakah 0 atau 1. Jika keadaan sesuai dengan kondisi maka pernyataan dari kondisi tersebut yang akan di eksekusi.

untuk penulisan


if (kondisi..................)


(pernyataan............)



penjelasan dari perintah ini ((tahun%400!=0)&&(tahun%100!=0)&&(tahun%4!=0)) jika tahun tidak habis dibagi 400 dan tidak habis dibagi 100 dan tidak habis dibagi 4
sedangkan penjelasan dari perintah ini ((tahun%400!=0)&&(tahun%100!=0)&&(tahun%4==0)) jika tahun tidak habis dibagi 400 dan tidak habis dibagi 100 tetapi habis dibagi 4.
yang membedakan dari kedua kondisi diatas adalah adanya tanda "=" dan "=="

Kamis, 11 April 2013

Menampilakan Deret Bilangan Dengan Fungsi Do...While dan For


 Menampilakan Deret Bilangan Dengan Fungsi Do...While


Dalam buku SCHAUM’S OUTLINE OF THEORY AND PROBLEMS OF PROGRAMMING WITH C Second Edition Problems 6.45 hlaman164 dituliskan :


"Write a loop that will calculate the sum of every third integer, beginning with i=2 (icy calculate the sum 2 + 5 +8 + 11 + - ) for all values of ithat are less than 100. Write the loop three different ways.
(a) Using a while statement.

(6) Using a do - while statement.

(c) Using a f o r statement."

berdasarkan pernyataan di atas, maka kita dapat menampilkan deret bilangan dari 2 +3 + 8 + ...+ n . tetapi kurang dari seratus, kemudian dijumlahkan
pada program dibawah bagaian (a) #include <stdio.h> #include <stdlib.h> merupakan header, diamana pada masing-masing header tersebut terdapat kumpulan fungsi-fungsi seperti printf, while, system(“pause”),return(0) dan sebagainya. Int i= 2 adalah pendeklarasian bahwa I adalah integer dengan nilai samadengan 2 dan sum samadengan null (0).while fungsi looping (i<100) adalah sebagai batas atas dari bilangan yang akan dicetak. Saat sum=sum+1 dieksekusi, maka proses yang trjadi adalah sum=0+2=2, kemudian printf("%d\n",i) dieksekusi sehingga akan keluar juga nilai 2. Tetapi nilai 2 ini merupakan nilai variable awal yang telah didekklarasikan sebelumnya pada int i=2.kemudian nilai 2 tersebut akan ditambahkan dengan nilai 3 melalui persamaan i+=3 dan akan terus berulang sampai mendapatkan nilai maksimum yaitu <100=nilai yang paling dekat dengan 100. Setelah itu baru printf("%d",sum); akan dieksekusi unutk mengeluarkan nilai penjumlahan 2+5+8+11+14+17+20+. . .+98=1650

(a)

#include <stdio.h>
#include <stdlib.h>
int main()
{
       int i=2,sum=0;
       while(i<100)
              {
                     sum=sum+i;
                     printf("%d\n",i);
                     i+=3;        
              }
       printf("%d",sum);
       system("pause");
       return(0);
}

CLICK TO VIEW THE VIDEO TUTORIAL



Perbedaan dari program diatas adalah adnya do. jadi pada saat do mulai dieksekusi maka ada perintah untuk menjalankan atau eksekusi sum=sum+i, maka proses yang trjadi adalah sum=0+2=2, kemudian printf("%d\n",i) dieksekusi sehingga akan keluar juga nilai 2. Tetapi nilai 2 ini merupakan nilai variable awal yang telah didekklarasikan sebelumnya pada int i=2.kemudian nilai 2 tersebut akan ditambahkan dengan nilai 3 melalui persamaan i+=3 dan akan terus berulang sampai mendapatkan nilai maksimum yaitu <100=nilai yang paling dekat dengan 100 Setelah itu baru printf("%d",sum); akan dieksekusi unutk mengeluarkan nilai penjumlahan 2+5+8+11+14+17+20+. . .+98=1650

(b)

   /*Control Flow dengan Do */

#include <stdio.h>

#include <stdlib.h>


int main()
{
       int i=2,sum=0;
       do
              {
                     sum=sum+i; /*sum = 0+2+5+8...*/           
                     printf("%d\n",i); /*2,5,8...*/
                     i+=3; /*i=i+3 == 2+3=5 ==5+3=8.. */
                          
              } while (i<100); /* suatu batas nilai, dimana nilai yang
                                  keluar adalah nilai max yg mendekati 100 dgn catatan
                           nilai sebelumnya merupakan nilai dengan interval 3*/

       printf("%d",sum);
       system("pause");
       return(0);
}


(C)

Ini juga pada bagian (c) sama seperti diatas, tetapi perbedaanya seolah-olah telah ditentukan terlebih dahulu bahwa i=2 , berarti mulai dari 2 dengan batas atas i<100, berarti 100 dan dengan penjumlahan i=i+3= i+3 untuk nantinya hasil dikeluarkan. Proses loopnig akan terus terjadi jika penghitungan belum mencapai nilai <100 (nilai paling mendekati dari 100)

/*control flow dengan for*/
#include <stdio.h>
#include <stdlib.h>

int main()

{
       int i,sum=0;

       for (i=2;i<100;i=i+3)
       {     
       sum=sum+i;
              printf("%d\n",i);
       }
              printf("%d\n",sum); 
                          
       system("pause");
       return(0);
}



CLICK TO VIEW THE VIDEO TUTORIAL

Selasa, 09 April 2013

Pemrograman C, Operator


OPERATOR



operator pada bahasa C terdiri dari
operat0r aritmatik
operator logic
operator relasi
operator unary


Operator aritmatik terdiri dari
+ Pertambahan
- Pengurangan
* Perkalian
/ Pembagian
% Modulus atau sisa dari pembagian dgn bil. bulat

operator logic and (&&),  or( | | ). not ( !)

opertor relasi

>= Lebih besar dari atau samadengan
< Lebih kecil dari
<= Lebh kecil dari atau samadengan
== Samadengan
!= Tidak samadengan

berikut adalah sepenggal program dengan menggunakan fungsi arimatik :

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

  int main()
      
  {
       int i =8, j=5, k;
       //float x= 0.005, y=-0.01,z;
       k = 2*((i/5)+(4*(j-3))%(i+j-2)) ; /* 2x((8/5)+4(5-3))%(8+5-2))
       printf("%i\n",k);
      
       system("pause");

}

alur pengerjaan soal diatas adalah karena pada operasi aritmatik perkalian yang pertama baru penjumlahan atau pengurangan dan yang terakhir baru mod*/

untuk lebih jelas silahakan lihat video CLICK TO VIEW THE VIDEO TUTORIAL 
berikut adalah sepenggal program dengan menggunakan fungsi logic dan relasi :

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

int main()

{
int i= 8, j = 5,k;
float x= 0.005,y=-0.001,z;
printf("apakah x > y dan i > 0 atau j < 5 (ket:1 = ya, 0 = tidak):\n%d\n",k= (x>y)&&(i>0)||(j<5));
system ("pause");
return (0);
}
and = perkalian 
or = penambahan.
untuk lebih jelas silahakan lihat video CLICK TO VIEW THE VIDEO TUTORIAL


Senin, 08 April 2013

Konversi Bilngan Basis Dengan Pemograman Bahasa C



Konversi Bilngan Basis

bilangan basis terdiri dari
basis 2 = biner = 0,1
basis 8 = octal = 0,1,2,3,4,5,6,7
basis 10 = desimal = 0,1,2,3,4,5,6,7,8,9
basis 16 = hexadesimal = 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
bilangan basis digunakan untuk sistem mikroprocessor
http://kuliahfreddy.files.wordpress.com/2013/01/sistem-bilangan.pdf

dibawah ini adalah source code konversi bilangan basis dengan mengunakan bahasa C

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


int main(void)
{
int a;

FILE *file;
file =  fopen("hasil konversi.txt","w");
printf("(A) masukan bilangan hexa =");
scanf_s("%x",&a);
         printf("hasil konversi hexa ke desimal=%i\n\n",a);

printf("(B) masukan bilangan desimal =");
         scanf_s("%i",&a);
printf("hasil konversi desimal ke hexa =%x\n\n",a);

printf("(C) masukan bilangan hexa =");
scanf_s("%x",&a);
printf("hasil konversi hexa ke octal = %o\n\n",a);

printf("(D) masukan bilangan octal =");
scanf_s("%o",&a);
printf("hasil konversi octal ke hexa = %x\n\n",a);

printf("(E) masukan bilangan desimal =");
scanf_s("%i",&a);
printf("hasil konversi desimal ke octal = %o\n\n",a);

printf("(F) masukan bilangan octal =");
scanf_s("%o",&a);
printf("hasil konversi octal ke desimal = %i\n\n",a);

        fprintf(file,"A hasil konversi hexa ke desimal  = %i\n",a);
fprintf(file,"B hasil konversi desimal ke hexa = %x\n",a);
fprintf(file,"C hasil konversi hexa ke octal = %o,\n",a);
fprintf(file,"D hasil konversi octal ke hexa = %x\n",a);
fprintf(file,"E hasil konversi desimal ke octal = %o\n",a);
fprintf(file,"F hasil konversi octal ke desimal = %i\n",a);
system ("pause");
}


  #include <stdio.h> dan  #include <stdlib.h> merupakan bagian header. Header merupakan kumpulan dari fungsi-fungsi yang nantinya akan dipakai. stdio.h yaitu standar input output. Pada syntax dibawahnya terdapat perintah seperti printf yang berfungsi untuk mencetak karakter (input), scanf untuk membaca karakter yang diinputkan kemudian printf juga digunakan untuk mencetak karakter sebagai output. Begitu juga dengan stdlib.h merupakan standar library. Dan salah satu standar library yang dipakai pada coding diatas adalah system (“pause”) yang digunakan untuk menahan atau mem-pause tampilan CMD agar tidak langsung tertutup kembali sebelum urutan program selesai saat di-run tertutup.
int a; merupakan pendefinisian tipe data untuk variabel a yaitu tipe data integer.


FILE merupakan fungsi untuk mendefinisikan variable file. Dimana variable file tersebut akan disimpan dalam suatu file dengan nama nilai.txt. karena variable maka file bisa diganti  seperti contoh dibawah :

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

int main(void)

{                   
        tipe data variabe;
     FILE *note;
     note =  fopen(“nama file.txt”,”w”);
                                       
                 perintah

                 perintah

     fprintf(note,”….”
         system("pause");
}

Fprintf adalah perintah untuk mencetak hasil yang nantinya akan diisikan pada file nama nilai.txt
Konversikcarakter yang digunakan adalah
  • %o adalah konversi karakter untuk data octal
  • %x adalah konversi karakter untuk data hexa 
  • %i adalah konversi data untuk tipe data decimal integer