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
Bahasa C berada di rating tertinggi yakni terbanyak digunakan oleh programmer dunia. …kereen kan :D
CORES-IT | C and C++ for dummies
2
C.
Persiapan
1)
Peralatan yang diperlukan Pada pelatihan dasar ini, peralatan yang diperlukan adalah :
2)
-
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
Borland C++ / turbo C++/Codeblocks Merupakan 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
//definisi printf
#include <stdio.h>
//definisi rand, srand
#include <stdlib.h>
//definisi getch
#include
//fungsi utama
int main()
//mulai fungsi
{ printf("Hello world!\n");
//cetak ke layar
getch(); Dengan Borland C++
//mengentikan proses
return 0;
//mengembalikan nilai 0 pada fungsi
}
//akhir fungsi utama
Dengan Borland C++
CORES-IT | C and C++ for dummies
3
//definisi printf
#include <stdio.h>
//definisi rand, srand
#include <stdlib.h>
//conio: bisa ada/nggak //fungsi utama
int main()
//mulai fungsi
{ printf("Hello world!\n");
//cetak kelayar
//getch: bisa ada/nggak
Dengan Borland C++ return 0;
//mengembalikan nilai 0 pada fungsi
}
//akhir fungsi
Dengan Turbo C++ dan Codeblocks
Nah, sekarang kita sudah tahu perbedaan dari ketiga kompailer kita, jika Borland C++ menggunakan #include 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 :
CORES-IT | C and C++ for dummies
4
#include <stdio> #include main() { char a; printf(“Tekan sebuah tombol pada keyboard!”); a=getch(); printf(“\nTombol yang baru anda tekan adalah %c”,a); 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 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 CORES-IT | C and C++ for dummies
5
2)
Deklarasi Variabel #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); return 0; }
3)
Fungsi logika dan IF statement #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; } } CORES-IT | C and C++ for dummies
6
4)
Else IF statement
#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?"); } else if (age==21){ printf("call me"); } else{ printf("jailbait"); } return 0; }
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.
CORES-IT | C and C++ for dummies
7
5)
Looping while statement #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); total = total + hotdogs; loopcount = loopcount + 1;
} average = total / 5; printf("total number of dogs was %d", average); return 0; }
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)
CORES-IT | C and C++ for dummies
8
6)
Loop Next…..
#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; }
CORES-IT | C and C++ for dummies
9
7)
Looping For #include <stdio.h> #include <stdlib.h> int main() { int counter = 1; for (counter = 11; counter > 10; counter++){ printf("%d \n", counter); } return 0; }
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
CORES-IT | C and C++ for dummies
10
8)
Switch Statement
#include <stdio.h> #include <stdlib.h> int main() { int number; scanf("%d", &number); switch(number){ case 2: printf("you entered 2"); break; case 4: printf("you entered 4"); break; case 5: printf("you entered 5"); break; default: printf("I dont know what you enterded"); break; } return 0; }
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)
CORES-IT | C and C++ for dummies
11
9)
Looping Do – While
#include <stdio.h> #include <stdlib.h> int main() { int counter = 1; do{ printf("%d\n", counter); counter ++; } while(counter < 10); return 0; }
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.
CORES-IT | C and C++ for dummies
12
10)
Logical Operator
#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"); } /*if (eyes == 2 || toes ==10){ printf("you are normal"); }else{ printf("you are weird"); }*/ return 0; }
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.
CORES-IT | C and C++ for dummies
13
tabel kebenaran konjungsi (and) 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 semua tabel kebenaran implikasi bisa dilihat sendiri pada tabel berikut. Saya sendiri masih bingung bikin ini kalau di program….hehehee.. :D
CORES-IT | C and C++ for dummies
14
tabel kebenaran biimplikasi 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…. ^__^
CORES-IT | C and C++ for dummies
15
11)
Into The Function
#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;
}
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())
CORES-IT | C and C++ for dummies
16
12)
Random Number Function
#include <stdio.h> #include <stdlib.h> int main() { int i=0; while (i<20){ printf("%d\n",1+ rand()%6); i++; } return 0; }
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
#include <stdio.h> #include <stdlib.h> int main() { int i=0; srand(time(NULL)); while (i<15){ printf("%d\n",rand()); i++; } return 0; }
CORES-IT | C and C++ for dummies
17
Keterangan lebih detail: 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. CORES-IT | C and C++ for dummies
18
Lalu, apa gunanya % 6 + 1 pada code di atas? Begini, kalian pasti sudah pada tahu apa itu modulus pembagian 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 5 10 % 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 2 Nah 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 toh Betul *Thanks ya gan, berarti saya sudah bisa melakukan random donk Eits, 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? CORES-IT | C and C++ for dummies
19
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 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
CORES-IT | C and C++ for dummies
20
*Terus saya harus bagaimana? Nah untuk itu, kita perlu memakai fungsi time(NULL) dari header . *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 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 :
CORES-IT | C and C++ for dummies
21
Berikut adalah output nya ketika program dijalankan kembali :
Sangat berbeda bukan? Sekian tips dari saya seputar melakukan random sederhana pada bahasa C.
CORES-IT | C and C++ for dummies
22
14)
Into To Array
#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; }
15)
Simple Program Array
#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; }
CORES-IT | C and C++ for dummies
23
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
24