Belajar Bahasa C
-- Part 1
by: Loka Dwiartara Al-k
Prakata : Assalamualaikum wr wb. Salam sejahtera untuk semua. Sebelumnya, saya meminta masukkan dan kritik mengenai tutorial ini apabila terdapat banyak sekali kesalahan dalam penulisan ataupun maksud yang kurang jelas. Sebenarnya saya tidak meniatkan diri dalam penulisan tutorial ini, tetapi berhubung Rasulullah bersabda : “Sampaikanlah dariku[ilmu] walaupun hanya satu ayat”. Oleh karena itu mari kita lakukan penyebaran ilmu secara gratis. Viva Underground. Pesan saya , untuk orang-orang yang memiliki ilmu khususnya dalam bidang IT saya harap bisa dengan senanghati memberikan secara gratis kemampuannya itu dengan cara mendokumentasikan dan disebarkan kepada ummat manusia. [Al-k] Wassalammu’alaikum wr wb
Yang kamu butuhkan untuk belajar bahasa C adalah : • Compiler-nya yang tersedia di Internet secara gratis. Penulis menggunakan Turbo C++ Ide buatan Borland. Compiler sendiri berfungsi untuk merubah file source code C, menjadi self executable. Atau biasa disebut file exe [aplikasi]. • Text Editor, saya menggunakan Notepad -- copy paste source code to C extension -• Penggunaan logika yang banyak. • Sedikit menghafal. • Banyak Mengulang. Sejarah Bahasa C Bahasa C pertama kali ditemukan oleh Bapak. Dennis Ritchie [dmr] di Bell Laboratories sekitar tahun 1972 lalu, yang niat awalnya di disain untuk jalan pada PDP-11 dengan system operasi Unix. Tetapi karena bahasa yang terstruktur rapi, flexible, kompatibel, [ barble, the beatle, :-) ] membuatnya semakin berkembang hingga akhirnya berjalan pada Ms Dos dengan kompie IBM PC, sampai sekarang banyak sekali compiler yang tersedia secara free. Tapi ngomong-ngomong dilihat dari tahun pembuatannya [1972] yang lebih tua 15 tahun dengan penulis, walaupun begitu penulis tetap akan memanggil bahasa C, bukan Pak Bahasa C. Huehuhehue … Chapter 1 Pengenalan Contoh Program 1 1. 2. 3. 4. 5. 6. 7. 8.
// listing hallodunia.c #include<stdio.h> int main() { printf (“Hallo dunia, saya lagi belajar pemrogaman bahasa C gihu lhoooo !!!!”); return 0; } // end of file
____________________ note : untuk yang benar-benar newbie, compile !!!
delete saja nomor-nomor diatas sebelum melakukan
Penulis menggunakan penambahan nomor di sebelah kiri untuk mempermudah pembacaan. Compile lah menggunakan Turbo C++ dengan menekan alt+F9. Kemudian tekan F9, ketika komentar Succes ditampilkan, tekan alt+F5 untuk masuk mode user screen dan melihat hasil yang di tampilkan dari source code diatas. U see it, yang tampil adalah :
Hallo dunia, saya lagi belajar pemrogaman bahasa C githu lhoooo !!!!
Disini akan dijelaskan secara mendetil mengenai source code diatas. hal|
1
Pada baris dibaca oleh kerja suatu pada bahasa
pertama; di tulis // listing hallodunia.c, ini adalah komentar dan tidak compiler. Penggunaan komentar sangat bermanfaat sekali untuk menjelaskan cara program, khususnya bagi programmer/ pengembang source lain. 2 jenis komentar C.
Yakni : /* komentar jenis pertama */
yang bisa di terapkan dengan banyak baris.
dan // komentar jenis kedua || yang hanya bisa diterapkan dalam satu baris saja. Baris kedua : #include<stdio.h> -- ini adalah baris preprosecor berada. Artinya kurang lebih sama dengan orang yang berteriak lantang … “Whoooiiiiiiiii masukkin file ini kedalam source ini… “. Baris 3 - 7 : int main() { printf (“Hallo dunia, saya lagi belajar pemrogaman bahasa C gihu lhoooo !!!!”); return 0; } Baris ini disebut dengan induk program dimana karakter “{“ dan “}” membatasi jalannya sebuah perintah/command. Dengan kata lain, dari sinilah compiler mengenal baris/codingan mana yang akan di jalankan dan mana yang tidak. Bagi anda yang baru pertama kali terjun ke dunia pemrogamman mungkin sedikit bingung. Untuk itulah saya menulis di bagian bawah ini.
Identifier : Apa dan Bagaimana ??? Identifier berguna dalam berbagai penamaan. [ex: fungsi, variable, definisi, label, etc] Dan c language yang terstruktur rapi ini memiliki peraturan tersendiri dalam penamaan. Ada 31 digit yang terbaca oleh compiler lebih dari itu tidak bisa. Huruf pertamanya di awali dengan character alpabhet, Ex : alkcool, alkkeren, alktop, etc. Tidak boleh angka dan tidak boleh menggunakan special karakter seperti +, =, >, ?, dll. Setelah itu, digit kedua terserah anda, bisa menggunakan alphabet, angka, underscore, etc. Ex: a7_k, a-lk, al+k, etc. Dalam C berlaku case sensitive, ex : cool itu tidak sama dengan cOOl, berbeda dengan CooL. Variable = TipeData !! Variable bisa didefinisikan sebagai bagian terkecil dalam sebuah memori yang isinya dispesifikan lagi, dimana variable bisa berfungsi sebagai perantara dalam menyimpan suatu data, ataupun memanggilnya kembali. Adapun beberapa variable yang digunakan dalam bahasa C, antara lain : Nama/Jenis Variable char signed char unsigned char short unsigned short int unsigned int long
Byte Jenis dalam 16 bit 1 1 1 2 2 2 2 4
Jarak -128 to 127 -128 to 127 0 to 255 -32,768 to 32,767 0 to 65,535 -32,768 to 32,767 0 to 65,535 -2,147,483,648 to 2,147,483,647 hal|
2
unsigned long float double long double
4 4 8 10
0 to 4,294,967,295 3.4E+/-38 (7 digits) 1.7E+/-308 (15 digits) 1.2E+/-4932 (19 digits)
Jenis dalam 32 bit 1 1 1 2 2
char signed char unsigned char short unsigned short int
4
unsigned int
4
long
4
unsigned long float double
4 4 8
-128 to 127 -128 to 127 0 to 255 -32,768 to 32,767 0 to 65,535 -2,147,483,648 to 2,147,483,647 0 to 4,294,967,295 -2,147,483,648 to 2,147,483,647 0 to 4,294,967,295 3.4E+/-38 (7 digits) 1.7E+/-308 (15 digits)
10
1.2E+/-4932 (19 digits)
long double
_______________ Perhatian : Mau di hafal ??? Silahkan anda. Tapi saran saya, lebih diutamakan yang tiga tipe variable yaitu, Int [integer], float[numeric], dan char [character]. Saya akan memberikan pemrogamman manapun.
contoh
penggunaan
variable
yang
begitu
penting
dalam
bahasa
// listing gunavar.c // programm mencatat nomor telepon # include<stdio.h> int main() { int notelp ; // ini adalah variable notelp yang bertipe integer. printf(“\nMasukkan nomor telepon anda : “); scanf(“%d”,¬elp); // scanf berfungsi untuk mencatat input dari keyboard. printf(“\nNomor telepon anda : %d”,notelp); // menampilkan nomor yang telah anda return 0; // ketik sebelumnya. }
“Apa lagi ini ??? Banyak karakter aneh lagi nih !!!” Mungkin sekilas seperti itu dalam benak anda. Karena melihat beberapa karakter aneh yang baru anda lihat, itulah gunanya saya disini, entah saya akan membuat anda mengerti atau justru malah membuat anda semakin bingung ??? , hehehe …
Statement & Expression & Constant ??? Saya biasa menyebutnya pernyataan yang didefinisikan, dan di deklarasikan. Sebagai contoh, jika saya menulis ; X ; Mungkin anda akan bingung, dan mengatakan “maksudnya x itu apa???”. Apabila di definisikan dengan lebih jelas : X = a + b ; Ini adalah statement. Sedangkan expresi adalah suatu pernyataan yang memiliki nilai. Constant bisa dibilang pengembangan dari statement, terdapat 2 jenis constant yang dimiliki bahasa C, yaitu Literal Constant dan Numeric Constant. Literal Constant, contoh : Int myage = 10 + 8 ; hal|
3
Itu berarti variable myage yang berjenis integer, yang memiliki constant langsung [ angka ]. Symbolics Constant, contoh : Int myage = oldage + youngage; Lebih kearah perwakilan dalam penggunaan variable. Penggunaan Operator|dalam C language Sebagaimana ilmu hitung lainnya, dalam bahasa C juga terdapat operator matematika yang menangani perhitungan matematis dari sebuah program. Yang di gunakan antara lain : + / * %
: : : : :
Menangani penjumlahan [Addition] Pengurangan Pembagian [Division] Perkalian [Multiplication] Percent
Dan terdapat pula 6 Relational Operator : == <= >= != < >
: : : : : :
sama dengan sama dengan lebih kecil sama dengan lebih besar tidak sama dengan lebih kecil dari lebih besar dari
Dan inilah yang akan kita pelajari selanjutnya dengan lebih mendetil. 32 Keyword yang digunakan nanti : auto break case char const continue default do
double else enum extern float for goto if
int long register return short signed sizeof static
struct switch typedef union unsigned void volatile while
Chapter 2 [ Control Program ] While-Loop While Loop adalah control program dengan fungsi pengulangan. Atau biasa digunakan untuk operator aritmetika. Sederhananya komponen while-loop yaitu : While(batas pengulangan) { pengulangan } Ex : // listing program whileloop.c // pengulangan dari angka 1 – 10. #include<stdio.h> int main() { int yangdiulang = 1; while (yangdiulang < 11) // melakukan pengulangan dari angka 1 - 10 { yangdiulang +=1; // melakukan penambahan 1 angka printf (“Pengulangan telah dilakukan sebanyak %d kali”, yangdiulang); } return 0; hal|
4
} /* hasilnya Pengulangan Pengulangan Pengulangan Pengulangan Pengulangan Pengulangan Pengulangan Pengulangan Pengulangan Pengulangan */
telah telah telah telah telah telah telah telah telah telah
dilakukan dilakukan dilakukan dilakukan dilakukan dilakukan dilakukan dilakukan dilakukan dilakukan
sebanyak sebanyak sebanyak sebanyak sebanyak sebanyak sebanyak sebanyak sebanyak sebanyak
1 2 3 4 5 6 7 8 9 10
Do While|Loop Tidak berbeda dengan while, sama-sama melakukan looping [pengulangan] tetapi dengan letak keyword while di akhir. Simple is : do { pengulangan } while(batas pengulangan) ex : // listing dowhile.c // looping menggunakan do #include <stdio.h> int main() { int yangdiulang = 0; do { printf (“Ini kalimat yang diulang dalam bentuk looping yang berbeda %d”, yangdiulang); yangdiulang +=1 ; // lakukan penambahan 1 setiap satu kali mengulang. } while (yangdiulang < 5); return 0; /* Hasil eksekusinya akan menghasilkan pengulangan sebanyak 5 kali dari angka 0 hingga 4. Ini Ini Ini Ini Ini
kalimat kalimat kalimat kalimat kalimat
yang yang yang yang yang
diulang diulang diulang diulang diulang
dalam dalam dalam dalam dalam
bentuk bentuk bentuk bentuk bentuk
looping looping looping looping looping
yang yang yang yang yang
berbeda, berbeda, berbeda, berbeda, berbeda,
0 1 2 3 4
*/
For|Loop !!! Pengulangan jenis tersendiri.
ini
paling
banyak
di
pakai,
karena
memiliki
pengaturan
looping
Simple is : For(variable yangdiulang; batas pengulangan; jenis pengulangan) { pengulangan hal|
5
} ex : // listing forloop.c #include <stdio.h> int main() { int yangdiulang; for (yangdiulang = 0 ; yangdiulang < 5 ; yangdiulang +=1) printf (“Ini kalimat yang diulang dalam bentuk looping yang berbeda %d”,yangdiulang); return 0;
/* Hasil eksekusinya akan menghasilkan pengulangan sebanyak 5 kali dari angka 0 hingga 4. Ini Ini Ini Ini Ini
kalimat kalimat kalimat kalimat kalimat
yang yang yang yang yang
diulang diulang diulang diulang diulang
dalam dalam dalam dalam dalam
bentuk bentuk bentuk bentuk bentuk
looping looping looping looping looping
yang yang yang yang yang
berbeda, berbeda, berbeda, berbeda, berbeda,
0 1 2 3 4
*/ Bermain angka dengan switch … Pada intinya penggunaan switch adalah sebagai berikut : Switch(apa aja yang dimasukkin dan jadi pilihan) { case 1 : parameter1 break; case 2
:
parameter2 break;
dst … default : parameter default break; } Hoiii… bengong aja loe … !!! shopping sono, or jogging sono, or sanes kirang sono [ kalo gak salah yang ini kan bahasa sunda yah ??? GARIIIINGXXXX ] Eeee… si Gel3 bengong, ngapa loe ??? Liat gwa yang ganteng ??? Huehueuehueuhe … Wueettt si Bruxxx nyampe ngiler-ngiler ngeliat manusia Cyber. Kalo gak salah di artikel buatan gwa yang terakhir disitu gwa buat penjelasan mengenai kondisi perulangan diantaranya : while, do-while, dan for loop. Bagi yang blom baca artikelnya gwa udah kasih copy-annya ke si Levy, dan ke si Jheseecka Simpson, kalo mau minta aja ke mereka berdua, gwa denger sih mereka baru pada gajian, mo traktir makan photocopy-an katanya.. hhuehuehue GOSIP. Nah sekarang bagian penjelasannya … switch, masih ada yang bingung dengan switch ???? Gwa jelasin, kenapa gwa jelasin ??? karena ini berhubungan dengan skill kita di waktu kerja nanti… Deg-deg-deg … Kapan switch digunakan ??? Sehabis makan dan sebelum tidur … [ loe kira Pepsodent ] … yang jelas nggak jelas !!! Terserah loe mo makenya kapan, sayangnya men gwa cuma bisa ngasih tau cara penggunaanya, “The best teacher is Example” gitu kata Gordon Dodrill [ programmer C yang handal, top deuuh ] /* source code simpleswitch1.c */ /* created by me, Minggu, 25 Desember 2005 */ /* at home */ hal|
6
#include<stdio.h> int main() { int pilihan; printf (“\nPilih angka diantara 1 – 5”); scanf (“%d”, &pilihan); /* menginput pilihan dari keyboard */ switch(pilihan) {
/* masukkan pilihan sebagai anggota dari switch */
case 1 : printf (“\nSiapa yang keren ??? Loka Dwiartara.. huheuheuhheuehuehu”); break; /* case 1 : maksudnya ketika someone memasukkan angka 1, maka yang tampil adalah Siapa yang keren ??? Loka Dwiartara.. huheuheuhheuehuehu ... */ case 2 : printf (“\nSiapa yang ancur ??? Sorry yah bagi yang kesinggung !!!, huehuehue”); break; /* begitu juga dengan case 2, 3, 4, dan 5 */ case 3 : printf (“\nTanggal 3 bulan 3 tahun 2013, bakal ada yang kawin ..., yang mati juga ada , yang jualan es campur juga, yang beli baju juga ada .... garingsss”); break; case 4 : printf (“\n4 x 4 = 16, kalo ada umur panjang bolehlah kita bersilaturahmi, ngacooooo, ngawurrr, !&@^!%#!*@ huheuhuehueuueh” break; case 5 : printf(“\nThe last one”); break;
default : printf(“\nNgaco loe, pilihannya kan cuma 1 ampe 5, kenapa loe masukkin %d, dasar GILAAAA !!!! “, pilihan); break; /* Masudnya default itu ... ??? Apaan yah ?? Loe ngerti default gak, suka nonton film kartun gak, Default, Tasmanian Default ... huhhhh ngaco lagi ... hueuhuehhehue, default itu settingan, ketika seseorang memasukkan angka selain 1 – 5 */ } return 0; }
/* hasilnya ... keterangan : yang ditulis tebal itu yang diketik di keyboard
Pilih angka 1 – 5 : 9000 Ngaco loe, pilihannya kan cuma 1 ampe 5, kenapa loe masukkin 9000, dasar GILAAAA !!!!
*/
Ngerti kagak ??? Kalo nggak baca dari awal lagi !!! hueuheuheuhe ...
hal|
7
Chapter 3 [Fungsi, Variable dan Prototypes]
Di sini di jelaskan bagaimana fungsi bekerja bersama-sama dengan variable, terutama penerapan global variable. Dan di rincikan pula mengenai passing by value : ex :
// listing FunGloVar.c // source code program untuk fungsi dan global variable // logikanya sebuah nomor yang di kuadratkan yang hasilnya di jumlahkan #include<stdio.h> /* stdio.h --> ini adalah standar input output data */ int total ; /* --> ini adalah global variable */ int main() { int start, ending, var; start = 0; ending = 9; mulai(); for (var = start; var <= ending; var++) lakukan(var); /* ini adalah contoh dari passing by value */ akhir(); return 0; } mulai() { printf (“\nIni adalah permulaan dari sebuah source code\n”); return 0; }
lakukan(perintah)
/* pernyataan passing by value jadikan semua yang di dalam fungsi itu menjadi perintah */
int perintah; { int kuadrat; kuadrat = perintah * perintah; total += kuadrat ; printf (“\nNo %d bisa di kuadratkan menjadi %d”, perintah, kuadrat); return 0; }
akhir() { printf (“\nNilai akhir dari kesemuanya yaitu %d”, total); return 0; }
hal|
8
/* hasil :
Ini adalah permulaan dari sebuah source code No 0 bisa di kuadratkan menjadi 0 No 1 bisa di kuadratkan menjadi 1 No 2 bisa di kuadratkan menjadi 4 No 3 bisa di kuadratkan menjadi 9 No 4 bisa di kuadratkan menjadi 16 No 5 bisa di kuadratkan menjadi 25 No 6 bisa di kuadratkan menjadi 36 No 7 bisa di kuadratkan menjadi 49 No 8 bisa di kuadratkan menjadi 64 No 9 bisa di kuadratkan menjadi 81 Nilai akhir dari kesemuanya yaitu 285 */
Penjelasan mengenai|passing by value passing by value dalam matematika bisa di ambil contoh seperti fungsi kuadrat misalnya : terdapat sebuah variable a = 5 dan sebuah fungsi f(a) = 2a + 3 ... yang dinamakan passing by value adalah : f(5)= 2(5) + 3 = 13
hal|
9
Artikel mengenai bahasa C /* bacanya pelan-pelan, dihayati ... tapi jangan sampe tidur, nanti ilmunya nggak neurap.. gimana mo neurap, wong tidur kok */ /* Penjelasan mengenai array ... */ /* Aray itu pada dasarnya merupakan kumpulan dari variable yang sama .... kita ambil contoh ------------------int jescool[15]; ------------------ini berarti kumpulan variabel yang bertipe sama sebanyak 16. pada kasus ini arraynya bertipe int ( integer ) mengapa berjumlah 16, karena array itu bermula dari angka 0 (indexnya 0). Dan tentunya sudah dari sononya begono. Dengan kata lain, ndak bisa dirubah, wong udah dari sononya. Nah untuk implementasinya [ asiiikkk .... implementasi apaan tuh ??? ... permen di kasih nasi campur terasi kali yah ??? ] */
#include<stdio.h> #include
int main() { int masukkan, ulang ; int data[40]; for (;;) { printf(“\nBerapa jumlah data yang ingin anda masukkan ?? “); printf(“\nMaksimalnya 40 yahhhhhhhh !!!! “); scanf (“%d”, &masukkan); if ( (masukkan > 0) && (masukkan <=40)) { printf (“\nData yang dimasukkin sebanyak %d, jangan nyesel loe “, masukkan); break; } else { printf (“\nNgaco loe brow, maksimal 40, minimal 1”); } }
printf (“\nSilahkan masukkan datanya !!!!”); printf (“\n-------------------------------”);
for (ulang = 1; ulang <= masukkan; ulang++) { printf (“\nData ke %d : “, ulang); scanf (“%d”, &data[ulang]); }
printf (“\nData yang anda masukkan “); printf (“\n------------------------”); hal| 10
for (ulang = 1; ulang <= masukkan; ulang++) { printf (“\nData ke %d : “, data[ulang]); }
return 0; }
/* sekarang sedikit penjelasannya mengenai kode-kode diatas .... */ /* Tahap 1. --------liat baris yang ada tulisan for (;;) -nya ^^apa maksudnya for(;;) ??? Apa ??? APAAAAAAAAAAAAAA ??? SIAAPAAA KATAKAN SIAPAAA, AKAN KUBUNUH DIA ... Huehuhue kok gwa jadi marah ... Gini, maksudnya for(;;) itu untuk (;;). (;;) itu nama orang, nama yang aneh !!! Huheuhue bcanda lageee. Ayo deuh, ayo deuh, sekarang mah serius deuh. for(;;) itu artinya pengulangan yang tidak bisa berhenti kalo perintah di bawahnya nggak dijalankan sesuai dengan apa yang diperintahin... Logikanya gini... Misalkan si brux's disuruh sama bapaknya beli rokok, merknya jarum pentul. si brux's pergi kewarung, pas balik kerumah, bapak si brux's marah2 dan nyuruh balik lagi karena rokok yang si brux's beli salah. Ngerti kan maksudnya ??? jadi bapaknya si brux's nggak akan pernah berhenti nyuruh balik lagi ke warung sampe rokok yang si brux's beli itu bener, kasian bener si brux's, kayanya dia nggak akan pernah bisa berhenti, wong rokok yang merknya jarum pentul itu ora ono, ono w purbo, huehueuhue. Yang gwa tau sih merk rokok jarum itu, jarum black, jarum coklat, jarum super, Gudang Jarum filter, Dji-jarum-su 234, maksa... huheuuehuhe Sebelah sini udah ngerti kan ?? Nggak usah dibahas lagi... !!! --------------------------------------------------------------for(;;) { printf(“\nBerapa jumlah data yang ingin anda masukkan ?? “); printf(“\nMaksimalnya 40 yahhhhhhhh !!!! “); scanf (“%d”, &masukkan); Tahap 2. --------Nah sekarang bagian yang ini ... ----------------------------------if ( (masukkan > 0) && (masukkan <=40)) { printf (“\nData yang dimasukkin sebanyak %d, jangan nyesel si brux'se “, masukkan); break; } else { printf (“\nNgaco loe brow, maksimal 40, minimal 1”); } } hal| 11
Maksudnya begini ... jika 'masukkan' yang kita ketik di keyboard itu lebih besar dari 0 dan lebih kecil dari 40, maka perintah akan berhenti (break). Tapi jika nilai masukkan yang kita ketik di keyboard itu lebih kecil dari 0, dan lebih besar dari 40. Maka perintahnya akan diulang-ulang terus sampe nilai 'masukkan' itu lebih besar dari 0 dan lebih kecil dari 40. Ngertiiii ??? Tahap 3. --------Nah sekarang yang ini ... ---------------------------for (ulang = 1; ulang <= masukkan; ulang++) { printf (“\nData ke %d : “, ulang); scanf (“%d”, &data[ulang]); } Kok yang ada di dalam scanf bukan ulang tapinya data[ulang] ??? Nah data[ulang] itu yang disebut sebagai array. Array Palday... Arry Paldy itu mah. Gini brow... dari perintah fornya sendiri for (ulang=1; ulang <= masukkan; ulang++) ini artinya ... misalnya masukkan yang kita ketik di keyboard itu 13. berarti ... lakukan pengulangan sebanyak 13 kali dari angka 1, dengan penambahan 1 setiap kali pengulangan.... Masih nggak ngerti, gini .... 1 2 3 4 5 6 7 8 9 10 11 12 13 ... penambahan 1 setiap kali pengulangan itu maksudnya pas ngulang nambah 1, kaya diatas, abis 1 terus 2 terus 3 ... Masih nggak ngerti juga ?? Udah loe mendingan ngambil golok aja deh, kita motong kurban dirumah si Deni, abis itu makan-makan ... huehuheuhuehuhuehhe ... Maksudnya scanf(“%d”, &data[ulang]) itu masukin data (di ketik) urutan ke 'ulang', nilai 'ulang' itu dari satu sampe 13 kalo ngikutin contoh diatas. 13-nya bisa di ganti berapa aja sampe batasnya 40 seperti di perintah sebelumnya yang ini for(;;) { printf(“\nBerapa jumlah data yang ingin anda masukkan ?? “); printf(“\nMaksimalnya 40 yahhhhhhhh !!!! “); scanf (“%d”, &masukkan); if ( (masukkan > 0) && (masukkan <=40)) { printf (“\nData yang dimasukkin sebanyak %d, jangan nyesel si brux'se “, masukkan); break; } else { printf (“\nNgaco loe brow, maksimal 40, minimal 1”); } } Tahap 4. --------Kalo perintah dibawahnya yaitu yang ini .. for (ulang = 1; ulang <= masukkan; ulang++) { printf (“\nData ke %d : “, data[ulang]); hal| 12
} ini digunain untuk nampilin data yang kita masukkin. Misalkan ada 4 data, yaitu 19, 24, 87 dan 1. UDAH NGERTI ??? Berarti outputnya begini ... Berapa jumlah data yang ingin anda masukkan ?? Maksimalnya 40 yahhhhhhhh !!!! 4 Data yang dimasukkin sebanyak 4, jangan nyesel loe Silahkan masukkan datanya !!!! ------------------------------Data Data Data Data
ke ke ke ke
1 2 3 4
: : : :
19 24 87 1
Data yang anda masukkan -------------------------Data ke 1 : 19 Data ke 2 : 24 Data ke 3 : 87 Data ke 4 : 1 */
hal| 13
Pencerahan Algoritma + bahasa C-nya Created by : Al-k [email protected] http://www.ilmuwebsite.com Satu kata yang bisa diucapin tuk ngomentarin pak Purwa dengan Algoritmanya “Pusiiiiiiiiiiiinnnngg .. !!!!”. Kok !!!??? Jelaslah, si brux'ss yang jago maen Pe-eS juga bilang pusing muter tujuh keliling + garing !!! Kok gwa banyak buasa buasinya ya ??? Yang jelas gwa sbagai seorang fren's yg setia, solid, suple, baik hati dan tidak sombong, suka menabung dan suka membantu ibu mencuci piring di dapur ... huehueheuhuehuue ... nglantur deh !!! Gwa insyaAllah bakal ngebantu loe, dengan pembuatan artikel kaya gini.. gwa biasa sebut “C Language Tutorial” Kenapa disebut tutorial ... jelas .. wong asalnya dari kata “Tutor”. Dan pertanyaan yang laen yaitu : “Kenapa harus C, kenapa nggak pascal aja ???” ... Kalo loe semua ngedalemin ilmu kompie lebih jauh lagi, pasti kagum banget dengan kehebatan bahasa C ini, beberapa hal yang bikin jempol tangan, dan jempol kaki di angkat semua tuk ngejagoin bahasa C (kalo jari loe jempol semua, gwa yakin bakal di angkat juga semuanya ... huehueuehueuheuhuehhue , sorry Gerry !!! ...) diantaranya .... Game-game yang biasa loe maenin itu dibuat oleh para programmer dengan ngegunain bahasa C : Quake, FinalFantasy, Comandos, Age Of Empires, Call of Duty, Game RPG yg keren-keren, atawa game first person shooting yang bisa dipake rame-rame sampe 20 orang lebih yaitu Counter Strike, sampe Winning yg suka dimaenin oleh para bruxx mania ... itu dibuat dengan bahasa C. Sistem Operasi yang selama ini kita gunain, seperti Linux, windows itu dibuat juga dengan bahasa C. Bahasa C keren kan ??? Untuk porting, maksudnya integrasi antara 2 sistem operasi … misalnya Film Madagaskar, film ini di buat di lingkungan Linux dengan program 3D yakni Maya buatan Alias Wavefront, padahal kan Maya seharusnya hanya untuk Windows aja tapi kok Linux bisa yah ??? Semua bisa dipecahkan dengan bahasa C. Semua program yang ada di Windows bisa dijalankan ulang dengan membuat kembali source codenya dalam bahasa C yang sesuai dengan lingkungan di Linux. Pusing ??? Sama, gwa juga … Udah deuh, sekarang ke inti aja … penjelasan mengenai bahasa C dan Algoritmanya … kalo gwa jelasin satu persatu nanti takut pada ngebul, mendingan gwa ambil beberapa contoh kasus aja yah … Sebetulnya inti dari suatu pemrogamman dari bahasa C itu Cuma kaya gini doanks : Main() { // isi dari program di taro disini } // kalo sebelah sini bisa dipake untuk function atau perintah tambahan.
Source code, atau kode-kode yang dijalankan itu hanya dari Kurung kurawal terbuka sampai kurung kurawal tertutup ( dari ‘{‘ sampai ???
‘}’ ) Simple kan
Nah sekarang kita akan buat program yang bisa menampilkan beberapa kata. Untuk ngelakuinnya yang kita butuhkan adalah sebuah header file yang bisa menjalankan perintah input dan output. Masih ada yang nanya juga tentang header ??? Gwa jelasin detil tapi dengan cara gwa sendiri … misalnya : Misalnya si Jesika mo buat kue dadar, yang dibutuhinnya itu salah satunya santan. Nggak perlu dong dia cape-cape manjat pohon kelapa, terus diambil kelapanya, kemudian dikupas dulu kelapanya sampe bersih udah gitu diparut dulu kelapanya,di peres, baru di ambil santannya. Kalo dipikir-pikir itu kan lama dan ngabisin waktu. Padahal udah ada kara, santan yang siap dituang. Urusan gosong atau nggak kuenya itu masalah nanti ??? Huheuheuhuehuheuh... Ampunnn mbah Jesika … Nah balik lagi ke header, kara atau santan yang siap dituang itu sama fungsinya dengan header. hal| 14
Udah kepikiran header itu apa ??? Bagus !!! Header standar yang digunain untuk output dan input (biasa disingkat I/O) dalam bahasa C yaitu “stdio.h”(standard input/output), kalo “iostream.h” itu untuk bahasa C++. Ya udah kita mulai aja … // kodenya dari sini // program tampilkan beberapa kata #include <stdio.h>
/* ini artinya masukkan header stdio.h ke dalam program ini */
int main() {
/* inti program dimulai dari sini */ /* kurung kurawal, awal dari program yang akan dijalankan */
printf (“Kita lagi belajar bahasa C gitu lhoooh !!! “); /* printf digunakan untuk menampilkan karakter baik huruf-huruf, maupun angka ... ex : printf (“Loka keren !!!”); yang ditampilkan nantinya adalah Loka keren !!! Terus, kalo yang berada di dalam kurung itu menandakan karakter yang akan ditampilkan nantinya. Dan tanda ; ini berfungsi untuk mengakhiri perintah tersebut, jangan sampe lupa dipake, kalo nggak program loe bakal errororojing (error). */ return 0;
/* menunjukkan program ketika berada dalam kondisi null (nol) maksudnya program telah berhenti/selesai */
}
/* kurung kurawal penutup untuk menjelaskan kalo programnya berakhir sampe disini */ // Programmnya udah selesai.
Hasil ketika ditampilkan di monitor : Kita lagi belajar bahasa C gitu lhoooh !!!
Nah gitu jadinya ... O iya, ada beberapa hal yang lupa di jelasin ... Dalam bahasa C itu ada dua jenis komentar : Jenis satu : /* isi komentar ditaro disini
*/
jenis ini bisa diterapkan untuk banyak baris.
Jenis dua : // isi komentar disini
jenis ini hanya bisa digunain untuk satu baris.
Maksudnya komentar, yaitu kalimat-kalimat yang nantinya jadi petunjuk untuk para programmer lain, tapi nggak akan dianggap sebagai perintah dalam suatu program ... bisa dibilang, komentar dalam bentuk kalimat itu ada tapi nggak dianggap. Ngerti deuuhhh ??? Plissshh, gwa kehabisan kata-kata untuk nerangin lebih jauh !!! >_<; hiks..hiks Ngerti khan ??? hal| 15
Nah sekarang kita ambil kasus tambah-tambahan, dan kurang-kurangan. Misalnya : si DanuBruxx mo pergi kekampus naek Angkot (kalo jalan kaki bisa gempor loe, huehuheuhe, ^_^; sorry rux !!!). Uang yang dibutuhin itu buat ngebayar angkot 09, dan 02 Jurusan Cisarua. Sedangkan para supir 09 ngasih tarif sekitar Rp 2.000,00 dan para pilot 02 jurusan Cisarua ngasih tarif Rp 3.000. Di kantong si brux ada duit tiga lembar Rp 50.000,00 ( maklum malem minggu, banyak duit !!! ). Di jalan sebelum naek angkot si brux ketemu temennya yang biasa ngasih pinjeum duit ( utang ), mau nggak mau dong si Bruxx harus bayar utangnya. Kebetulan total utangnya si bruxx nyampe Rp 140.000. Apes bener loe DanuBruxx, nggak jadi nge-date di resto dong, duitnya cuman Rp 10.000 !!! Mendingan ke rumahnya Jesika aja noh, si jesika lagi buat kue dadar noh ... Huehuheuhuhehe jadi nyambung ama cerita yang pertama nih ... Pertanyaannya berapa sisa uang si brux setelah bayar utang, dan bayar naek angkot pulang pergi dari rumahnya. ???!!! // program tuk nyari sisa duit dikantong si bruxx. // sorry bruxxx !!! #include<stdio.h> #include
/* standar input output */ /* header file untuk console MS Dos input output. Dengan kata laen perintah-perintah di Dos bisa kita jalanin dengan header file ini. Bagi yang udah pernah belajar DOS waktu di SMP dulu pasti udah tau deuh perintah DOS kaya gimana aja. Bagi yang belum !!! Gwa turut berduka cita!! Huheuhuhuehuehuee ... !!! */
int main() { /* program yang bakal dijalanin mulainya dari sini */ /* yang kita butuhin untuk nyari sisa uang si DanuBruxx setelah dipake bayar utang dan ongkos pulang pergi yaitu ... KAMUS : Duit_dikantong = Rp 150.000,00 Tarif_02 Tarif_09
= Rp = Rp
3.000,00 2.000,00
Karena pulang pergi jadi di kali dua tuh ongkos angkotnya ... Tarif_02 * 2 = Rp 6.000,00 Tarif_09 * 2 = Rp 4.000,00 Terakhir UtangDanubruxx = Rp 140.000,00 Anggap aja semua tipenya real, jadi kita musti ngegunain variable Float */
float Tarif_02 , Tarif_09 , UtangDanubruxx, Duit_dikantong ; float sisauang ; /* ini sama artinya dengan jadikan variable Tarif_02 , Tarif_09 , UtangDanubruxx, dan Duit_dikantong, sisauang bertipe float, apa itu float, float itu variable yang bisa koma-komaan ... serius !! Kalo integer kan leumpeung tuhh, misalnya : 9,8 dianggapnya 10, Itu karena integer nggak bisa koma-komaan. Nah sekarang kita masukkin nilai-nilai yang tadi udah dibuat di kamus, inget sisauang belom ada nilainya. Karena yang mau kita cari kan sisauang –nya. Kalo udah ada nilainya mau nyari apa lagi coba ? Mikir atuh De ... */ Tarif_02 = 6000 ; Tarif_09 = 4000 ; UtangDanubruxx = 140000 ; hal| 16
Duit_dikantong = 150000 ; /* Nah sekarang kita buat Algoritma untuk nyari uang sisanya ALGORITMA : Input ( Tarif_02, Tarif_09, UtangDanubruxx, Duit_dikantong ) Penghitungan : Karena sisauang itu dicari dari Jumlah uang dikantongnya si Danu di kurang uang buat bayar utang, dan ongkos pulang pergi, maka : sisauang = Duit_dikantong - ( UtangDanubruxx + Tarif_02 + Tarif_09 )
Output ( sisauang ) */ sisauang =
Duit_dikantong - ( UtangDanubruxx + Tarif_02 + Tarif_09 ) ;
printf ( “Sisa uang si Danu = %f “, sisauang ) ; /* mungkin disini ada sekitar sini ada sedikit pertanyaan, seperti : “Kok pake tanda %f segala ??? “ Gwa bakal jelasin sedikit !!! Tadi kan kita make variable berjenis float maka untuk menampilkan sisauang maka kita tulis %f . Masih bingung juga ???? Oke deh gwa jelasin lagi .... Gwa ambil contoh : Misalnya kita punya 5 variable, kita kasih nama : var1, var2, var3, var4, var5. Masing-masing bernilai 1, 2, 3, 4, 5. var1, var2, itu bertipe integer, sedangkan var3, var4 dan var5 bertipe float ( real ). Misalnya kita mau menampilkan kesemuanya ke layar monitor... Maka perintahnya ... Printf (“Variable 1 = %d, variable 2 = %d, variable 3 = %f , variable 4 = %f , variable 5 = %f “, var1, var2, var3, var4, var5 ); Hasil ketika di tampilin di monitor : Variable 1 = 1, Variable 2 = 2, Variable 3 = 3, Variable 4 = 4, Variable 5 = 5 .
Ngerti yah ??? Jadi kalo untuk tipe file int (integer maka tanda yang dipake untuk nampilin ke layar monitor yaitu %d , sedangkan kalo untuk tipe float (real) yaitu %f */ return 0; }
/* akhir dari progam */
/* /* /* /*
program mencari luas dan volume Bola */ listing vol+luas_bola.c */ Created by : Al-k */ On --- 5:35 AM 11/19/2005 */
#include<stdio.h>
/* Standar Input output bahasa C */ hal| 17
#include<math.h> #include #define vi 3.14 #define satuan 4/3
/* Penggunaan assignment matematika */ /* menjelaskan bahwa nilai vi adalah 3.14 */ /* menjelaskan bahwa nilai vi adalah 4/3 */
int main() { /* kamus == variable r, luas, volume luas, volume = real */
int r; float volume, luas ; clrscr();
/* diambil dari header conio gunanya untuk membersihkan layar, sama dengan perintah cls di dos */
/* Algoritma : Masukkan jari-jarinya : input(r) hitung penjumlahan : luas = satuan * vi * (r * r) volume = 4 * vi * (r * r) hasil: output(luas,volume) */ printf (“\nProgram pencari luas dan volume bola “); printf (“=======================================“); printf (“\nMasukkan nilai jari-jarinya ( r ) : “); scanf (“%d”, &r); if(r == 0) { printf (“\n\nWoalaaahhhh ... kalo nilai r-nya 0 aku males ngitung lho, \n wong sampean udah tau kok !!! Hasilnya kan 0 “); }
else { printf (“\n\nSiiiip !!! ... “): luas = satuan * vi * (r * r); volume = 4 * vi * (r * r); printf (“\n\nInilah hasil akhirnya :\n”); printf (“Luas = %f\nVolume = %f”, luas, volume); } return 0;
/* menandakan kondisi null = keluar dari program */
}
hal| 18
/* /* /* /*
Program untuk mencari luas dan volume tabung dengan tutup */ listing vol+luas_tabungtutup.c */ Created by : Al-k */ On --- 6:21 AM 11/20/2005 */
#include<stdio.h> #define vi 3.14 int main() { /* kamus/variable r = jari-jari : integer t = tinggi : integer luas : real volume : real */ int r, t; float luas, volume ; /* algoritma input (r,t) penghitungan : luas = ( 2 * r * r) + ( 2 * vi * r * t ) volume = ( vi * r * r * t ) output (luas, volume) */ printf (“\n\nMasukkan jari-jarinya : “); scanf (“%d”,&r); printf (“\nMasukkan tingginya : “); scanf (“%d”,&t); luas = ( 2 * r * r) + ( 2 * vi * r * t ) volume = ( vi * r * r * t ) ;
;
printf (“\nHasil akhirnya :”); printf (“\nLuas = %f”, luas); printf (“\nVolume = %f”, volume); return 0; }
/* program PR yang disuruh Pak Purwa, yang bikin kepala pusing ... tapi nambah sedikit nutrisi kedalam otak */ #include<stdio.h> #include int main() { int data, ulang, uas[26], uts[26], absen[26]; int jumlah[26], huruf[26]; int tertinggi = jumlah[1], terendah = jumlah[1]; int ID = 64, IDrd, IDtg; char nhuruf ; hal| 19
/* fungsi DOS untuk hapus layar */ clrscr(); /* definisi untuk label isi */ isi: printf(“\n”); /* Memasukkan data sejumlah n !!! */ for(;;) { printf (“Berapa jumlah data yang akan dimasukkan : “); scanf (“%d”, &data);
/* jika data yang dimasukkan itu lebih besar dari 0, dan kurang dari 26, maka lakukan break, lanjutkan ke line sesudahnya */ if ((data > 0) && (data<=26)) break ; /* Jika bukan, keluarkan komentar dan lompat ke label isi */ else printf(“Ah gila loee... yang bener aja, maksimal itu 26 “); goto isi; } /* bersihkan layar */ clrscr(); /* Memasukkan data untuk absen, sejumlah n data */ printf (“\nData yang akan dimasukkan sejumlah : %3d\n”, data); printf (“\nMasukkan data untuk data Absen \n”); printf (“==============================\n”); for(ulang = 1; ulang <= data; ulang++) { printf(“Data ke %3d: “, ulang); scanf (“%3d”, & absen[ulang]); if ((absen[ulang] <= 100) && (absen[ulang] >= 10)) { printf (““); } else { printf (“\nNgaco loe broww !!!\, dari 10 - 100 “); printf (“\nBalik lagi aja brooww ... !!! \n”); goto udah; } } printf (“\nSilahkan Tekan enter ...”); getche(); printf (“\nPengisian data Absen selesai !!!”); printf (“\n==============================“); clrscr(); hal| 20
/* Memasukkan data untuk uts, sejumlah n data */ printf (“\nMasukkan data untuk UTS : \n”); printf (“==============================\n”); for(ulang = 1; ulang <=data; ulang++) { printf(“Data ke %3d : “, ulang); scanf (“%d”, &uts[ulang]); if ((uts[ulang] <= 100) && (uts[ulang] >= 10)) { printf (““); } else { printf (“\nNgaco loe broww !!!\, dari 10 - 100 “); printf (“\nBalik lagi aja brooww ... !!! \n”); goto udah; } } printf (“\nSilahkan Tekan enter ...”); getche(); printf (“\nPengisian data UTS selesai !!!”); printf (“\n==============================“);
clrscr(); /* Memasukkan data untuk uas, sejumlah n data */ printf (“\nMasukkan data untuk UAS : \n”); printf (“==============================\n”); for(ulang = 1; ulang <=data; ulang++) { printf(“Data ke %3d : “, ulang); scanf (“%d”, &uas[ulang]); if ((uas[ulang] <= 100) && (uas[ulang] >= 10)) { printf (““); } else { printf (“\nNgaco loe broww !!!\, dari 10 - 100 “); printf (“\nBalik lagi aja brooww ... !!! \n”); goto udah; } } printf (“\nSilahkan Tekan enter ...”); getche(); printf (“\nPengisian data UAS selesai !!!”); printf (“\n==============================“); printf (“\nSilahkan Tekan enter sekali lagi ... “); getche(); clrscr(); printf(“\n\n\t\t 2006”);
D a t a
A p a a n
B o a
? ? ? ? ? \n\t\t\t\tAngkatan 2005-hal| 21
printf(“\n\n =========================================================================\n”); printf(“ | ID | Absen | UTS | UAS | Jumlah | Nilai Huruf |\n”); printf(“ =========================================================================\n”); for (ulang = 1; ulang <= data; ulang++) { huruf[ulang] = ID + ulang; jumlah[ulang] = ((0.7 * absen[ulang]) + ( 0.3 * uts[ulang]) + (0.5 * uas[ulang])); if ( jumlah[ulang] < 51 ) nhuruf = 'E'; else if ( jumlah[ulang] < 61 ) nhuruf = 'D'; else if ( jumlah[ulang] < 71 ) nhuruf = 'C'; else if ( jumlah[ulang] < 80 ) nhuruf = 'B'; else if ( jumlah[ulang] > 79 ) nhuruf = 'A'; printf(“
|
%2c
|
%2d
|
%2d
|
%2d
|
%3d
|
%2c
|\n”, huruf[ulang], absen[ulang], uts[ulang], uas[ulang], jumlah[ulang], nhuruf); } printf(“
=========================================================================\n”);
/* definisi untuk nilai tertinggi */ for (ulang = 1; ulang <= data; ulang++) { if (jumlah[ulang] >= tertinggi) { tertinggi = jumlah[ulang]; IDtg = huruf[ulang]; } } /* definisi untuk nilai terendah */ for (ulang = 1; ulang <= data; ulang++) { if (jumlah[ulang] <= terendah) { terendah = jumlah[ulang]; IDrd = huruf[ulang]; } } printf (“\n printf (“\n
Nilai tertinggi = %d || ID-nya = %c”,tertinggi, IDtg); Nilai terendah = %d || ID-nya = %c”,terendah, IDrd);
getch(); udah: printf (“\n\n”); return 0; } hal| 22
/* Output : Pengisian data .... -------------------ABSEN ??? .... UTS ??? .... UAS ??? .... D a t a
A p a a n B o a ? ? ? ? ? Angkatan 2005--2006
========================================================================= | ID | Absen | UTS | UAS | Jumlah | Nilai Huruf | ========================================================================= | A | 30 | 40 | 60 | 62 | C | | B | 40 | 50 | 70 | 77 | B | | C | 50 | 60 | 40 | 72 | B | | D | 60 | 30 | 50 | 75 | B | | E | 70 | 40 | 60 | 90 | A | | F | 30 | 60 | 70 | 73 | B | ========================================================================= Nilai tertinggi = 90 || ID-nya = E Nilai terendah = 62 || ID-nya = A */
ENTAR MO DILANJUT, SABARRR !!!!
hal| 23
Biografi Penulis !!! Loka Dwiartara. Lahir di Bogor, pada tanggal 24 Januari 1987. Jenjang pendidikan SMU di lalui di SMA Negeri 4 Bogor. Dari sinilah dia mulai meniti karir yang berbau open source. Cukup aktif dalam berorganisasi salah satunya sebagai animator menggunakan Macromedia Flash dalam situs milik sekolahnya, http://www.sman4bogor.com. Di lain tempat dia salah satu pendiri Eyes Moslem Corporation yang namanya sampai saat ini belum naik ke permukaan ☺. Selain itu dengan anggota web master yang lain bergabung membuat “Weckerz” suatu perkumpulan maniak computer di sekolahnya yang memiliki planning kedepan menjadi Game Developer Indonesian, http://www.weckerz.cjb.net untuk bersama-sama membangun game dengan standarisasi Internasional, terdiri dari beberapa anggota anak SMU dan Mahasiswa dari berbagai Perguruan Tinggi, dan dari berbagai penjuru nusantara. Lulus SMA dengan hasil yang ala kadarnya ☺.
Tertarik di bidang : •
Web Programming ( Develop dan Design – Java Script, PHP dan MySql )
•
Computer Networking ( Linux Based )
•
Game Programming ( C++ dan Action Script )
hal| 24