bahasa c itu apa sih

26
A. Bahasa C itu apa sih ??? Hmm…..simplenya bahasa C merupakan bahasa level tengah. Dalam bahasa pemrograman itu terbagi 3 yaitu: - Level bawah : assembler atau bahasa mesin - Level tengah : C - Level tinggi : pascal, C++, vb, DKK……hehe.. :p Okey. Sebenernya sih males ngebahas sejarah, itu hal yang membosankan….:D, jadi intinya bahasa C adalah bahasa ajaib yang diciptakan oleh orang yang super hebat. Bahasa ini adalah bahasa yang bisa membuat kita menjadi pencipta benda mati dan pencipta khalayan, kita bebas memberikan perintah pada benda mati tersebut dan khalayan kita……hehe, jadi ini bahasa untuk para boss untuk benda mati dan benda khalayan “^__^ Tidak masuk akal ya,…ya memang, seorang programmer itu menciptakan sesuatu yang tidak mungkin bagi orang biasa. Bisa kita lihat sejarah,,,kehidupan kita yang serba canggih sekarang ini berkat programmer, teknologi sekarang ini, bahkan robot, pesawat tanpa awak, smartphone milik anda dan social media yang ada itu tak lebih dari barisan kode-kode program yang membentuk system teknologi tersebut……..jadi, bersiaplah membangun dunia ini lebih baik lagi, ingat ini yah…..”programmer tak mengenal kata tidak mungkin……”^_^ B. Kenapa harus Bahasa C ??? Sebenarnya selain C, masih banyak bahasa ajaib lainnya, tapi bahasa C ini adalah nenek moyang dari bahasa ajaib2 itu, aduhh…belum ngerti yah ….intinya gini….struktur atau kerangka bahasa C merupakan acuan dari bahasa pemrogaman modern saat ini…..jadi otomatis jika kita menguasai bahasa ini, dengan penyesuaian sedikit bahasa pemrogrman modern sekarang ini bisa kita buat. Dan selain alasan itu coba lihat gambar ini : CORES-IT | C and C++ for dummies 1

Upload: awan-mattawang

Post on 27-Nov-2015

82 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bahasa C Itu Apa Sih

A. Bahasa C itu apa sih ??? “ Hmm…..simplenya bahasa C merupakan bahasa level

tengah. Dalam bahasa pemrograman itu terbagi 3 yaitu:- Level bawah : assembler atau bahasa mesin- Level tengah : C- Level tinggi : pascal, C++, vb, DKK……hehe.. :pOkey. Sebenernya sih males ngebahas sejarah, itu hal yang

membosankan….:D, jadi intinya bahasa C adalah bahasa ajaib yang diciptakan oleh orang yang super hebat. Bahasa ini adalah bahasa yang bisa membuat kita menjadi pencipta benda mati dan pencipta khalayan, kita bebas memberikan perintah pada benda mati tersebut dan khalayan kita……hehe, jadi ini bahasa untuk para boss untuk benda mati dan benda khalayan “^__^

Tidak masuk akal ya,…ya memang, seorang programmer itu menciptakan sesuatu yang tidak mungkin bagi orang biasa. Bisa kita lihat sejarah,,,kehidupan kita yang serba canggih sekarang ini berkat programmer, teknologi sekarang ini, bahkan robot, pesawat tanpa awak, smartphone milik anda dan social media yang ada itu tak lebih dari barisan kode-kode program yang membentuk system teknologi tersebut……..jadi, bersiaplah membangun dunia ini lebih baik lagi, ingat ini yah…..”programmer tak mengenal kata tidak mungkin……”^_^

B. Kenapa harus Bahasa C ???Sebenarnya selain C, masih banyak bahasa ajaib lainnya,

tapi bahasa C ini adalah nenek moyang dari bahasa ajaib2 itu, aduhh…belum ngerti yah ….intinya gini….struktur atau kerangka bahasa C merupakan acuan dari bahasa pemrogaman modern saat ini…..jadi otomatis jika kita menguasai bahasa ini, dengan penyesuaian sedikit bahasa pemrogrman modern sekarang ini bisa kita buat. Dan selain alasan itu coba lihat gambar ini :

CORES-IT | C and C++ for dummies 1

Page 2: Bahasa C Itu Apa Sih

Bahasa C berada di rating tertinggi yakni terbanyak digunakan oleh programmer dunia. …kereen kan :D

C. Persiapan1) Peralatan yang diperlukan

Pada pelatihan dasar ini, peralatan yang diperlukan adalah :

CORES-IT | C and C++ for dummies 2

Page 3: Bahasa C Itu Apa Sih

- Software Borland C ++ / turbo C++/CodeBlokcs (ada di cd)

- Secangkir kopi bagi yg ngopi- Rokok bagi yang perokok - Fisik dan mental yang kuat……:D huftt berlebihan :P

2) Borland C++ / turbo C++/CodeblocksMerupakan compailer bahasa C dan C++ namun berbeda

perusahaan software, nanti kita lihat dimana letak perbedaannya ketika membuat program.

D. Writing Your First C Program

1) Program Hello word

Dengan Borland C++

Dengan Borland C++

CORES-IT | C and C++ for dummies 3

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

int main()

{

printf("Hello world!\n");

getch();

return 0;

}

//definisi getch

//fungsi utama

//mulai fungsi

//cetak ke layar

//mengentikan proses

//mengembalikan nilai 0 pada fungsi

//akhir fungsi utama

//definisi printf

//definisi rand, srand

#include <stdio.h>

#include <stdlib.h>

int main()

{

printf("Hello world!\n");

//conio: bisa ada/nggak

//fungsi utama

//definisi printf

//definisi rand, srand

Page 4: Bahasa C Itu Apa Sih

Dengan Borland C++

Dengan Turbo C++ dan Codeblocks

Nah, sekarang kita sudah tahu perbedaan dari ketiga kompailer kita, jika Borland C++ menggunakan #include<conio.h> pada header program dan getch(); sebelum return 0;.

Ket lebih lanjut : Bagi anda yang sedang belajar C/C++ pasti sering menggunakan fungsi getch() ataupun getche(). Dari pengalaman saya banayak dosen Pemrograman yang kurang detail dalam menjelaskan kegunaan dari fungsi getch() ini. Dari pengalaman saya, kebanyakan dosen pemrograman menjelaskan kegunaan dari fungsi getch() ini hanya digunakan untuk menghentikan suatu proses yang berjalan. Namun kegunaan fungsi getch() sebenarnya lebih dari itu, fungsi getch sebenarnya merupakan fungsi yang digunakan untuk membaca input dari keyboard. getch() ini merupakan kepanjangan dari Get Character. Dan karakter yang diambil oleh fungsi getch ini tidak akan ditampilkan pada console. Adapun karakter yang diambil dari keyboard hanya satu karakter.

Berikut adalah contohnya :

#include <stdio>#include <conio>main(){char a;printf(“Tekan sebuah tombol pada keyboard!”);a=getch();printf(“\nTombol yang baru anda tekan adalah %c”,a);

CORES-IT | C and C++ for dummies 4

#include <stdio.h>

#include <stdlib.h>

int main()

{

printf("Hello world!\n");

//mulai fungsi

//cetak kelayar

//getch: bisa ada/nggak

//mengembalikan nilai 0

//akhir fungsi

Page 5: Bahasa C Itu Apa Sih

getch();}

 pada syntax a=getch(); artinya apapun yang ditekan pada keyboard akan disimpan ke dalam variabel a. salah satu kegunaan fungsi getch() ini adalah untuk masking password.

Lalu apa perbedaan fungsi getch() dan getche()? Seperti yang dijelaskan tadi getch() merupakan kepanjangan dari Get Character, sedangkan untuk getche() merupakan kepanjangan dari Get Character And Echo. Pada fungsi getch() tombol yang kita tekan pada keyboard tidak akan ditampilkan pada console (kecuali kita panggil variabelnya dengan fungsi printf atau fungsi output lainnya), namun untuk getche() tombol yang kita tekan akan langsung ditampilkan pada console. Berikut adalah contohnya:

#include <stdio>#include <conio>main(){char a;printf(“Tekan sebuah tombol pada keyboard!”);a=getche();printf(“\nTombol yang baru anda tekan adalah %c”,a);getch();}

Untuk turbo C++ dan CodeBlocks bisa pake atau tidak menggunakan perintah tersebut. Dikarenakan lebih singkat penulisan kode programnya, saya memutuskan menggunakan codeblocks untuk pembuatan program selanjutnya, kenapa mesti kode blocks? Itu karena tampilannya lebih keren dan lebih mudah dengan GUInya selain itu turbo C++ punya saya sering error….ckckckkk… :D

2) Deklarasi Variabel

CORES-IT | C and C++ for dummies 5

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

int main(){ int a = 20; int b = 10;

//int sum = a + b; //int sum = b - a; int sum = 48 - 7;

printf("%d\n", sum);

Page 6: Bahasa C Itu Apa Sih

3) Fungsi logika dan IF statement

4) Else IF

statement

CORES-IT | C and C++ for dummies 6

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

int main(){ int a = 20; int b = 10;

//int sum = a + b; //int sum = b - a; int sum = 48 - 7;

printf("%d\n", sum);

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

int main(){ int num1; int num2; printf ("Enter 2 numbers"); scanf("%d %d", &num1, &num2);

if (num1 == num2){ printf("they are equal"); } if (num1 < num2){ printf("%d is less than %d", num1, num2); } if (num1 > num2){ printf("%d is greater than %d", num1, num2); } return 0; }

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

int main(){ int age;

printf("enter your age"); scanf("%d", &age);

if(age==60){ printf("easy cougart"); } else if (age==40){ printf("mom?");

Page 7: Bahasa C Itu Apa Sih

IF statement merupaka printah pemilihan sesuai kondisi, jadi simplenya kalau inputan kita sesuai dengan salah satu IF maka jalankan fungsinya, kalau nggak ada yang sesuai baru deh perintah Else dijalankan.

5) Looping while statement

CORES-IT | C and C++ for dummies 7

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

int main(){ int age;

printf("enter your age"); scanf("%d", &age);

if(age==60){ printf("easy cougart"); } else if (age==40){ printf("mom?");

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

int main(){

int loopcount; int hotdogs; int total; int average; total=0; loopcount=0; //nilai awal

while(loopcount < 5){ //cek kondisi

printf("enter number of dogs ate : "); scanf("%d", &hotdogs);

Page 8: Bahasa C Itu Apa Sih

While adalah perintah perulangan (looping), metodenya gini, cek dulu kondisi nilai awal, kemudian kondisi kapan harus ngulang dan kapan harus berhent ngulang, kemudian increment (ulang isi fungsi)

6) Loop Next…..

CORES-IT | C and C++ for dummies 8

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

int main(){

int loopcount; int hotdogs; int total; int average; total=0; loopcount=0; //nilai awal

while(loopcount < 5){ //cek kondisi

printf("enter number of dogs ate : "); scanf("%d", &hotdogs);

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

int main(){ int counter = 1; while(counter < 10){ printf("%d \n", counter); //counter ++; //counter = counter + 1; counter +=3; } return 0;}

Page 9: Bahasa C Itu Apa Sih

7) Looping For

CORES-IT | C and C++ for dummies 9

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

int main(){ int counter = 1; while(counter < 10){ printf("%d \n", counter); //counter ++; //counter = counter + 1; counter +=3; } return 0;}

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

int main(){ int counter = 1; for (counter = 11; counter > 10; counter++){ printf("%d \n", counter); }

return 0;}

Page 10: Bahasa C Itu Apa Sih

For adalah juga salah satu perintah perulangan (looping), metodenya sama, yaitu cek dulu kondisi nilai awal, kemudian kondisi kapan harus ngulang dan kapan harus berhent ngulang, kemudian increment (ulang isi fungsi) hanya saja bedanya dalam penulisannya aja…..hasilnya sama kok :D

8) Switch

Statement

CORES-IT | C and C++ for dummies 10

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

int main(){ int number; scanf("%d", &number);

switch(number){ case 2: printf("you entered 2"); break; case 4:

Page 11: Bahasa C Itu Apa Sih

Switch adalah perintah pemilihan sama dengan IF, simplenya gini….Swicth buat tempat variable yg ingin dikondisikan(dipilih) kemudian case adalah isi/nilai dari variable switch tadi..yang pastinya setiap case berbeda…kan dipilih, jadinya beda donk….terus jika tidak ada yang cocok nilainya dengan case maka printah default lah yang berfungsi (sama halnya else)

9) Looping Do – While

CORES-IT | C and C++ for dummies 11

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

int main(){ int number; scanf("%d", &number);

switch(number){ case 2: printf("you entered 2"); break; case 4:

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

int main(){ int counter = 1; do{ printf("%d\n", counter); counter ++; } while(counter < 10); return 0;}

Page 12: Bahasa C Itu Apa Sih

Do-while adalah juga salah satu perintah perulangan (looping), berbeda dengan while dan for yaitu cek dulu kondisi nilai awal, kemudian kondisi jika diulang, kemudian increment (ulang isi fungsi) jika Do-While berikan dulu nilai awal variable yg akan diulang……kemudian ulang dulu isi fungsi dari DO…..baru deh dicek kondisinya….kapan harus ngulang dan kapan berhenti ngulangnya …hmm ntar deh dipraktek liat bedanya.

10) Logical Operator

CORES-IT | C and C++ for dummies 12

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

int main(){ int eyes; int toes;

printf("Enter number of eyes and toes"); scanf("%d%d", &eyes, &toes); if (eyes == 2 && toes ==10){ printf("you are normal"); }else{ printf("you are weird"); }

Page 13: Bahasa C Itu Apa Sih

Ini jika menggunakan fungsi logika didalam if, sebenarnya di fungsi looping/perulangan jg bisa. Mungkin ini bisa membantu …tabel kebenaran yang akan dibahas berikut ini menggunakan singkatan "B" yang berarti benar dan "S" berarti salah.

tabel kebenaran negasi (not)

negasi adalah menurut buku yang saya baca, negasi berarti menyangkal kebenaran suatu pernyataan. tabel kebenaran negasi dapat dilihat dibawah ini.

tabel kebenaran konjungsi (and)

CORES-IT | C and C++ for dummies 13

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

int main(){ int eyes; int toes;

printf("Enter number of eyes and toes"); scanf("%d%d", &eyes, &toes); if (eyes == 2 && toes ==10){ printf("you are normal"); }else{ printf("you are weird"); }

Page 14: Bahasa C Itu Apa Sih

dalam tabel kebenaran konjungsi suatu pernyataan bernilai benar jika keduanya benar. tabel selengkapnya bisa dilihat dibawah ini. Deprogram simbolnya &&

tabel kebenaran disjungsi (or)

dalam tabel kebenaran disjungsi suatu pernyataan bernilai salah jika keduanya bernialai salah. Di program simbolnya ||

tabel kebenaran implikasi

implikasi iki sulit diterangkan. pokoknya begini.p ⇒ q bernilai salah, jika p benar dan q salah. selain ini benar semuatabel kebenaran implikasi bisa dilihat sendiri pada tabel berikut. Saya sendiri masih bingung bikin ini kalau di program….hehehee.. :D

tabel kebenaran biimplikasi

CORES-IT | C and C++ for dummies 14

Page 15: Bahasa C Itu Apa Sih

biimplikasi bernilai benar jika keduanya bernilai salah atau benar. pemahaman lebih lanjut bisa melihat tabel berikut. Sama….ini butuh logika ektra buat bikin contoh aplikasinya….berhubung logika saya nggak begitu bagus, mungkin teman2 bisa contoh aplikasinya…….dijamin bagus nilainya deh…. ^__^

11) Into The Function

CORES-IT | C and C++ for dummies 15

Page 16: Bahasa C Itu Apa Sih

Ini teknik untuk membagi beberapa fungsi berbeda….jadi pada funsi utama(I nt main() )…… nggak terlalu banyak proses didalamnya kita tinggal memanggil fungsi apa yang kita perlukan….dalam contoh diatas, fungsi tambahannya itu ( int findarea())

12) Random Number Function

CORES-IT | C and C++ for dummies 16

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

int findarea(int x, int y);

int main(){ int one; int two; scanf("%d %d", &one, &two); printf("%d", findarea(one, two));

return 0;}int findarea(int x, int y) { return x * y;

}

Page 17: Bahasa C Itu Apa Sih

Ini teknik merandom atau mengacak……disini diperlukan looping untuk ngulang terus diberikan pada nilai yang diulang diberikan fungsi rand()/mengacak nilainya sesuai kondisi pada fungsi rand()….oh iya,, fungsi ini memerlukan #include <stlib.h> definisi fungsi ini seperti yang saya jelaskan dihalaman 3

13) Seeding Random Numbers

Keterangan lebih detail:

CORES-IT | C and C++ for dummies 17

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

int main(){ int i=0;

while (i<20){ printf("%d\n",1+ rand()%6); i++; } return 0;}

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

int main(){ int i=0; srand(time(NULL)); while (i<15){ printf("%d\n",rand()); i++; } return 0;}

Page 18: Bahasa C Itu Apa Sih

Nah setelah berbasa-basi sedikit mengenai siapa rand(), berikut adalah penerapan nya dalam bentuk code :

Maka beginilah output nya :

Scaling : Apa sih scaling? Lalu buat apa sih?Agar gampang dimengerti, fungsi rand() itu akan mengembalikan sebuah nilai integer. Namun, nilai yang di return itu bervariasi mulai dari 0 sampai sekian sekian sekian (saya sendiri belum tahu pasti max nilai yang di return). Nah, dalam kehidupan sehari-hari, angka yang ingin kita acak memiliki nilai minimal dan maksimal tersendiri.

Contoh : jika kita ingin membuat program mengacak dadu, maka kita hanya perlu mengacak nilai dari 1 sampai 6. Nah disinilah peran Scaling, yaitu membatasi nilai yang akan diacak.

Lalu, apa gunanya % 6 + 1 pada code di atas?Begini, kalian pasti sudah pada tahu apa itu modulus pembagian

CORES-IT | C and C++ for dummies 18

Page 19: Bahasa C Itu Apa Sih

atau yang sering disebut mod (% dalam bahasa C).Buat yang belum tahu, mod itu adalah hasil bagi dari suatu operasi pembagian 2 buah bilangan.Misal:10 % 5 hasilnya adalah 0, karena 10 HABIS dibagi oleh 510 % 4 hasilnya adalah 2, karena 10 TIDAK HABIS dibagi oleh 4 dan menyisakan 2.

Dari penjelasan di atas kita sudah mengerti apa itu modulus dan dengan kata lain, hasil dari operasi mod suatu bilangan PASTI tidak lebih besar dari bilangan pembagi.Misal : X % 3, berapapun nilai X, hasil nya pasti selalu di bawah 3, entah itu 0 atau 1 atau 2Nah dari situ kita bisa tahu apa fungsi dari  + 1  bukan?Benar sekali, karena hasil nya dari 0 sampai angka n-1 (n adalah bilangan pembagi) maka kita perlu menambahkan satu agar range bilangan yang diacak dimulai dari 1 sampai n.

Nah, mudah kan.*Wah, ternyata Random itu gak sesulit seperti yang di bayangkan tohBetul*Thanks ya gan, berarti saya sudah bisa melakukan random donkEits, jangan senang dulu, itu masih kurang lengkap bos*Lho? apanya yang kurang lengkap?Simak baik-baik ya*Oke deh

Coba kalian ulangin program di atas sekali, dua kali, dan seterusnya.Kalian pasti menemukan suatu ke anehan*Wah iya, saya ulang terus menerus, tapi kok angka ke 1 sampai ke 10 nya itu-itu terus ya?

Nah untuk itu kita memerlukan seed.Fungsi rand() itu akan memerlukan seed untuk melakukan random, apa itu seed?Seed itu adalah titik awal dimana random dimulai.

Jika kalian pernah berkumpul di kelas, lalu mengadakan undian dengan cara memutar pulpen, dan jika pulpen tersebut mengarah ke salah satu peserta, maka peserta tersebut akan menang atau dihukum.

Seed itu ibaratnya adalah posisi awal dari sebuah pulpen

CORES-IT | C and C++ for dummies 19

Page 20: Bahasa C Itu Apa Sih

tersebut, jika terdapat 5 orang, yaitu A,B,C,D,E.Jika pada undian yang pertama, posisi awal pulpen menghadap ke arah A, dan setelah putaran dilakukan ternyata yang kena adalah B

*Wah, si B kena hukum donk, apa hukuman nya

Kita tidak akan membahas hal tersebut disini, dan jika undian kedua dilakukan, jika posisi awal tetap menghadap ke A dan jika pulpen di putar ke arah dan tenaga yang sama seperti putaran pertama, pulpen tersebut sudah pasti kembali menghadap ke arah B bukan?

Begitu pula dengan rand(), fungsi ini mempunyai seed default, sehingga setiap kali kita mengulang program tersebut, maka hasil nya akan selalu sama.

*Bagaimana dong supaya hasil nya gak sama terus?

Kita memerlukan fungsi tambahan yang bernama srand().srand() adalah fungsi untuk menentukan seed atau posisi awal dalam sebuah pengacakan.Kita hanya perlu menggunakan srand() sekali saja, yaitu sebelum fungsi rand() dipanggil.

Syntax : srand(seed_number);

seed_number bisa diganti dengan angka yang diinginkan maupun dengan variabel integer yang nilai nya bisa di input sendiri oleh user, namun sama halnya seperti konsep diatas.Jika user memasukan seed_number yang sama, maka hasil pengacakan nya juga memiliki pola yang sama

*Terus saya harus bagaimana?

Nah untuk itu, kita perlu memakai fungsi time(NULL) dari header <time.h>.*Itu fungsi apalagi mas?

Fungsi time(NULL) adalah fungsi yang mengembalikan nilai sesuai dengan banyak nya detik sejak tanggal 1 January 1970 yang artinya bisa dipakai sebagai seed_number. Mengapa? karena jika saya menjalankan program pada jam 7 malam lalu saya akan menjalankan nya kembali pada pukul 7.30 malam, total detik yang dihitung sejak 1 Januari 1970 itu pasti sudah

CORES-IT | C and C++ for dummies 20

Page 21: Bahasa C Itu Apa Sih

berbeda. Oleh karena itu, kemungkinan seed_number sama tidak akan terjadi karena waktu yang terus berjalan sehingga membuat jumlah detik nya menjadi berbeda.

Berikut adalah contoh code nya :

Berikut adalah output nya ketika program dijalankan kembali :

CORES-IT | C and C++ for dummies 21

Page 22: Bahasa C Itu Apa Sih

Sangat berbeda bukan?Sekian tips dari saya seputar melakukan random sederhana pada bahasa C.

14) Into To Array

CORES-IT | C and C++ for dummies 22

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

int main(){ int bucky[]={21,13,133,14,414,89,83,34};

printf("%d\n", bucky[8]);

return 0;}

Page 23: Bahasa C Itu Apa Sih

15) Simple Program Array

Khusus untuk array…sebenernya ini sederhana, tapi mulai dari IF sampai Random bisa diaplikasikan di Array…..jadi inilah klimaks pemrograman C …..Array ini yang digunakan pada proses pemanggilan database pada pemrograman modern….berhubung saya udah cape ngetik seharian….jadi sampe sini dulu…..kalau masih kurang ntar kita praktej aja langsung…..hooamm ngantuk, see U ALL ….”^__^

CORES-IT | C and C++ for dummies 23

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

int main(){ int bucky[5]={21,18,98,88,27}; int i; int total=0;

for (i=0; i<5; i++){ total +=bucky[i]; } printf("the total number is %d", total); return 0;}