Senin, 30 Juni 2008

KRISIS BBM SA'AT INI

pada akhir-akhir ini kelangkaan bahan bakar minyak terjadi dimana-mana, pada SPBU-pun sangat susah didapatkan, walaupun bisa didapatkan tapi haruslah terlebih dahulu menunggu lama antrian yang panjangnya sampai berkilo-kilo meter, bukan cuma itu saja, terkadang orang yang sudah mengantri selama beberapa jam, bahkan sampai seharian penuh yang mendapat antrian belakang terkadang tidak dapat juga karena sudah kehabisan bahan bakar minyak tersebut, sedangkan di toko-toko juga sangat susah didapatkan, walaupun ada itu sangatlah jarang dan harganyapun cukup mahal sekali dan berkisaran 10 ribu ke atas harganya.
Function adalah sebuah blok di dalam Turbo C++Bentuk umum :tipe nama_function (deklarasi parameter){pernyataan;pernyataan;{
tipeTipe nilai yang dihasilkan oleh function. Jika tidak dinyatakan, hasil function dianggap bilangan bulat (int)
deklarasi parameterDaftar tipe dan nama variabel yang akan menerima nilai pada saat function tersebut dipanggil. Setiap parameter dipisahkan oleh tanda koma. Jika function tidak mempunyai parameter daftar ini akan kosong. Jadi hanya tanda kurung saja.
Deklarasi parameter agak berebda dengan deklarasi variabel. Pada deklarasi variabel, Anda dapat menyatakan sebuah tipe untuk beberapa variabel yang tipenya sama. Contoh :int a,b,c;
Tetapi pada deklarasi parameter Anda harus menyatakan setiap tipe dari parameter.Bentuk umum :f (tipe nama_var1, tipe nama_var2, …, tipe nama_varn);
Contoh : f (int a, int b, int c);
Pernyataan ReturnPernyataan return menyatakan dua hal :1. Return mengakhiri jalannya function dan kembali ke program pemanggil2. Menghasilkan sebuah nilai
Ada dua cara untuk kembali ke program pemanggil :1. Pada saat pernyataan terakhir dari function dijumpai (dijumpai tanda akhir function “}” )Contoh :main(){clrscr();hai();}hai(){printf(”Hai.. Apa kabar..?”);getch();}
2. Dengan menggunakan pernyataan return. Pernyataan return juga dapat dipakai tanpa menghasilkan sebuah nilai.Contoh :main(){clrscr();hai();}hai(){printf(”Hai.. Apa kabar..?”);return;printf(”\nBaik-baik saja kannn..?”);getch();}
Pernyataan return pada program di atas akan mengakhiri function hai() sehingga program di bawahnya tidak dikerjakan
Function hai() pada program di atas hanya dapat mencetak Hai.. Apa kabar..?. Jika kita menginginkan function tersebut dapat mencetak pesan yang berlainan, kita harus mengubahnya menjadi seperti berikut :main(){clrscr();hai(”Haloo…!”);hai(”Siapa nama kamu..?”);}hai(char pesan[20]){printf(”%s \n”,pesan);getch();}
Pada contoh di atas pemanggilan function hai() menggunakan argumen, yaitu Haloo…! dan Siapa nama kamu..?. Di dalam function hai() harus ada variabel yang menerima argumen tersebut. Dalam hal ini adalah pesan (dinamakan parameter). Sifat-sifat parameter sama seperti variabel lokal yang ada di dalam function. Tipe parameter harus sama dengan tipe argumen.
Untuk menghasilkan sebuah nilai, Anda harus menyatakan return beserta nilai yang dihasilkannya.Contoh :main(){int a,b,c;clrscr();printf(”Masukkan nilai A : “); scanf(”%d”,&a);printf(”Masukkan nilai B : “); scanf(”%d”,&b);c=jumlah(a,b);printf(”\n\nJumlah kedua bilangan tersebut adalah %4d”,c);getch();}
jumlah(int x, int y){return x+y;}
Function jumlah() pada program di atas mempunyai 2 parameter yaitu :• jumlah(a,b)• jumlah(int x, int y)
Isi variabel a dan b dikirimkan ke function jumlah() dan diterima oleh x dan y. Namanya tidak harus sama, tetapi tipenya harus sama. Dalam hal ini semua bertipe int.
Perhatikan program :c=jumlah(a,b)return x+y
Function jumlah() menghasilkan x+y dan hasilnya dimasukkan ke variabel c. Yang penting, variabel penerima dan hasil function harus bertipe sama. Jika tipe tidak dinyatakan secara eksplisit, function tersebut menghasilkan nilai yang bertipe int.
Misalnya kita akan mengubah hasil function menjadi float, maka ada dua cara yang harus diperhatikan :1. Function harus diberi tipe secara eksplisit2. Sebelum function dipanggil untuk pertama kali, compiler harus diberitahu tipe function tersebut.
Cara mendeklarasikan function dengan suatu tipe, sama dengan deklarasi variabel, yaitu tipe mendahului nama function.Contoh :float jumlah(float x, float y);main(){float a,b,c;clrscr();printf(”Masukkan nilai A : “); scanf(”%f”,&a);printf(”Masukkan nilai B : “); scanf(”%f”,&b);c=jumlah(a,b);printf(”\n\nJumlah kedua bilangan tersebut adalah %4.1f”,c);getch();}
float jumlah(float x, float y){return x+y;}
PROTOTIPE FUNCTIONPrototipe function menyatakan 2 hal :1. Tipe dari nilai yang dihasilkan function, agar compiler dapat menghasilkan kode yang benar untuk tipe nilai yang dihasilkan2. Tipe dan banyaknya argumen yang dipakai oleh function.
Bentuk umum :Tipe nama_function(daftar parameter)
Biasanya prototipe diletakkan di awal program, dan harus ditemukan sebelum function tersebut dipanggil untuk pertama kalinya. Perhatikan baris 1 pada program di atas. Pernyataan tersebut adalah prototipe function. Pemanggilan function jumlah() ada di program c=jumlah(a,b) , jadi prototipe berada sebelum pemanggilannya.
FUNCTION DENGAN TIPE VOIDFunction yang tidak menghasilkan nilai dapat dideklarasikan sebagai tipe void. Hal ini dapat mencegah kesalahan yang tidak disengaja.
Contoh :void hai();main(){clrscr();hai();getch();}
void hai(){printf(”Hai… Apa kabar?”);}
Jika Anda tidak menyatakan tipe void, Turbo C++ menganggap function tersebut menghasilkan nilai bilangan bulat.
VARIABEL LOKALVariabel yang dideklarasikan di dalam function dinamakan variabel lokal. Di dalam Turbo C++, sebuah variabel bersifat lokal terhadap sebuah blok, jadi lebih sempit dibandingkan dengan sebuah function. Sebenarnya sebuah function juga merupakan sebuah blok dan blok tersebut dapat memiliki blok yang lebih kecil lagi.
Variabel lokal hanya dapat dipakai di dalam blok dimana variabel tersebut di deklarasikan. Sebuah blok dimulai dengan tanda { dan diakhiri dengan tanda }. Variabel lokal dibuat pada saat blok tempat deklarasi variabel tersebut dijalankan. Jika blok tersebut sudah selesai dikerjakan, variabel lokal akan dibuang.
Contoh :#includefloat akar (float x);main(){float a,b;clrscr();printf(”Masukkan sebuah bilangan : “); scanf(”%f”,&a);b=akar(a);printf(”\n\nAkar dari bilangan tersebut adalah %6.2f”,b);getch();}float akar(float x){float y;if (x>=0){y=sqrt(x);return y;}else return 0;}
VARIABEL GLOBALVariabel global dikenal di setiap bagian program. Variabel global akan menyimpan nilai yang ada di dalamnya, selama program dijalankan. Variabel global di deklarasikan di luar semua function.
Contoh :#includeint a;void f1(void);main(){clrscr();printf(”Masukkan nilai A adalah “); scanf(”%d”,&a);f1();printf(”\n\nNilai A sesudah pemanggilan function adalah %3d”,a);getch();}void f1(void){printf(”\n\nNilai A di dalam function sebelum dijumlah adalah %3d”,a);a+=5;printf(”\n\nNilai A di dalam function sesudah dijumlah adalah %3d”,a);}
perhatikan baris 2, variabel a di deklarasikan sebelum function main(). Sebenarnya variabel global boleh diletakkan disetiap tempat, sebelum pemakainnya yang pertama. Variabel global sebaiknya diletakkan di awal program.
REKURSIFungsi dalam Bahasa C dapat dipakai secara rekursi, dalam artian suatu fungsi dapat memanggil dirinya sendiri. Rekursi jarang dipakai, diantaranya disebabkan :• Membuat fungsi sulit untuk dipahami• Hanya cocok untuk persoalan tertentu saja• Memerlukan stack dengan ukuran yang lebih besar.
Contoh :#includeint faktorial(int);main(){clrscr();int x;puts(”Mencari Nilai Faktorial”);printf(”Masukkan sebuah bilangan bulat positif : “);scanf(”%d”,&x);printf(”Nilai faktorial dari %d = %d\n”, x, faktorial (x));getch();}int faktorial(int m){if (m==1)return(1);elsereturn(m*faktorial(m-1));}
LATIHAN1. . Buat program untuk menghitung gaji harian PT. JAYA dengan ketentuan : Gaji pokok karyawan Rp. 2000/jam§ Bila karyawan bekerja§ lebih dari 7 jam/hari maka kelebihannya dihitung lembur yang besarnya 1.5 dari gaji pokok Untuk karyawan yang bekerja 8 jam/hari atau lebih akan mendapat§ tambahan uang makan sebesar Rp. 3500 Karyawan yang bekerja 9 jam/hari atau§ lebih akan mendapat uang transport lembur sebesar Rp. 4000
Program ini akan terdiri dari 5 buah fungsi : main(), pokok(), lembur(), makan() dan jasa()
Input : NIP, Nama, Jumlah jam kerjaOutput : NIP, Nama, Gaji pokok, Lembur, Uang makan, Transport lembur