Minggu, 05 Februari 2012

HTML DINAMIS (PHP)

1. PHP adalah singkatan dari “PHP: Hypertext Preprocessor”, yang merupakan sebuah bahasa scripting yang terpasang pada HTML. Sebagian besar sintaks mirip dengan bahasa C, Java dan Perl, ditambah beberapa fungsi PHP yang spesifik.Tujuan utama penggunaan bahasa ini adalah untuk memungkinkan perancang web menulis halaman web dinamik dengan cepat.
Hubungan PHP dengan HTML Halaman web biasanya disusun dari kode-kode html yang disimpan dalam sebuah file berekstensi .html. File html ini dikirimkan oleh server (atau file) ke browser, kemudian browser menerjemahkan kode-kode tersebut sehinggamenghasilkan suatu tampilan yang indah. Lain halnya dengan program php, program ini harus diterjemahkan oleh web-server sehingga menghasilkan kode html yang dikirim ke browser agar dapat ditampilkan. Program ini dapat berdiri sendiri ataupun disisipkan di antara kode-kode html sehingga dapat langsung ditampilkan bersama  dengan kode-kode html tersebut. Program php dapat ditambahkan dengan mengapit program tersebut di antara tanda . Tanda-tanda tersebut biasanya disebut tanda untuk escaping (kabur) dari kode html. File html yang telah dibubuhi program php harus diganti ekstensi-nya menjadi .php3 atau .php. PHP merupakan bahasa pemograman web yang bersifat server-side HTML=embedded scripting, di mana script-nya menyatu dengan HTML dan berada si server. Artinya adalah sintaks dan perintah-perintah yang kita berikan akan sepenuhnya dijalankan di server tetapi disertakan HTML biasa. PHP dikenal sebgai bahasa scripting yang menyatu dengan tag HTML, dieksekusi di server dan digunakan untuk membuat halaman web yang dinamis seperti ASP (Active Server Pages) dan JSP (Java Server Pages)
2. PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada waktu itu PHP bernama FI (Form Interpreted). Pada saat tersebut PHP adalah sekumpulan script yang digunakan untuk mengolah data form dari web.
Perkembangan selanjutnya adalah Rasmus melepaskan kode sumber tersebut dan menamakannya PHP/FI, pada saat tersebut kepanjangan dari PHP/FI adalah Personal Home Page/Form Interpreter. Dengan pelepasan kode sumber ini menjadi open source, maka banyak programmer yang tertarik untuk ikut mengembangkan PHP.
Pada November 1997, dirilis PHP/FI 2.0. Pada rilis ini interpreter sudah diimplementasikan dalam C. Dalam rilis ini disertakan juga modul-modul ekstensi yang meningkatkan kemampuan PHP/FI secara signifikan.
Pada tahun 1997, sebuah perusahaan bernama Zend, menulis ulang interpreter PHP menjadi lebih bersih, lebih baik dan lebih cepat. Kemudian pada Juni 1998 perusahaan tersebut merilis interpreter baru untuk PHP dan meresmikan nama rilis tersebut menjadi PHP 3.0.
Pada pertengahan tahun 1999, Zend merilis interpreter PHP baru dan rilis tersebut dikenal dengan PHP 4.0. PHP 4.0 adalah versi PHP yang paling banyak dipakai. Versi ini banyak dipakai sebab versi ini mampu dipakai untuk membangun aplikasi web kompleks tetapi tetap memiliki kecepatan proses dan stabilitas yang tinggi.
Pada Juni 2004, Zend merilis PHP 5.0. Versi ini adalah versi mutakhir dari PHP. Dalam versi ini, inti dari interpreter PHP mengalami perubahan besar. Dalam versi ini juga dikenalkan model pemrograman berorientasi objek baru untuk menjawab perkembangan bahas pemrograman kearah pemrograman berorientasi objek.
PHP grup kini merilis versi PHP terbaru yaitu 5.1.6 [ sumber : wikipedia ]
Kelebihan PHP antara lain…
  • Bahasa pemograman php adalah sebuah bahasa script yang tidak melakukan sebuah   kompilasi dalam penggunaanya.
  • Web Server yang mendukung php dapat ditemukan dimana – mana dari mulai IIS sampai dengan apache, dengan configurasi yang relatif mudah.
  • Dalam sisi pengembangan lebih mudah, karena banyaknya milis – milis dan developer yang siap membantu dalam pengembangan.
  • Dalam sisi pemahamanan, php adalah bahasa scripting yang paling mudah karena referensi yang banyak.
  • PHP adalah bahasa open source yang dapat digunakan di berbagai mesin (linux, unix, windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah-perintah system.
  • PHP adalah termasuk bahasa embedded ( bisa diletakkan dalam tag HTML )
  • PHP diterbitkan secara gratis
3.Web server adalah software yang menjadi tulang belakang dari world wide web (www). Web server menunggu permintaan  dari client yang menggunakan browser.
Jika ada permintaan dari browser, maka web server akan memproses permintaan itu kemudian memberikan hasil prosesnya berupa data yang diinginkan kembali ke browser.
Web client adalah Tugas browser adalah menyediakan user sebuah interface dimana akan meminta server dan menampilkan respon dari server.
Ketika user meminta server (sebagai contoh, mendapatkan dokumen, atau mungkin mengirim (submit) sebuah form), browserlah yang memformat permintaan tersebut ke dalam sesuatu yang server dapat mengerti. Begitu server telah selesai memproses permintaan dan kemudian mengirim respon, browser mengambil data yang diperlukan dari respon yang diberikan server dan kemudian merendernya untuk ditampilkan ke user.
4. Script PHP nya

<span style="color:#339966;">Modul 3 Menampilkan Nama</span>


echo “ nama : nama lengkap anda “;
echo “ npm : npm anda “;
?>

Membuat Suatu Komentar Sederhana Dengan PHP

membuat tampilan kotak komentar seperti di web kini semakin mudah karena kali ini saya akan membantu anda untuk membuat sebuah komentar sederhana dengan PHP , dengan alat dan bahan yang kalian perlukan adalah sebagai berikut :
1. XAMPP ( sebagai localhost dan MySQL )
2. PHP editor ( Notepad++ , PHP Designer , Dreamweaver , serta apps lainnya )
langkah pertama kita harus membuat databasenya dengan rincian sperti berikut :

CREATE TABLE comment (induk int(5), nama varchar(30), email varchar(50),komentar varchar(130))

langkah kedua buka PHP editor , buat file sambung.php dengan script dibawah ini :

$host = “localhost”;
$user = “root”;
$pwd = “”;
//koneksi databse
$koneksi = mysql_connect($host, $user, $pwd);
//di buat oleh enterprise2605
//afian2605@ymail.com
//buat database
$db = mysql_query(“CREATE DATABASE gbook”);
if ($db) echo “
Database berhasil dibuat”;
else echo “
Database gagal dibuat”;
//di buat oleh enterprise2605
//afian2605@ymail.com
//buat table
mysql_select_db(“gbook”);
$table = mysql_query(“CREATE TABLE comment (induk int(5), nama varchar(30), email varchar(50),komentar varchar(130))”);
if ($table) echo “
Table berhasil dibuat”;
else echo “
Table gagal dibuat”;
?>
selanjutnya langkah ketiga kita buat form inputnya dengan nama form.php scriptnya dibawah ini :


Untitled Document










no.induk
nama anda
email anda
komentar


//di buat oleh enterprise2605
//afian2605@ymail.com

selanjutnya untuk menyambungkan form.php dan database kita perlu buat file pembawa (action) dengan nama input.php lihat kode scriptnya dibawah ini :

include (‘sambung.php’);
$induk    = $_POST['induk'];
$nama  = $_POST['nama'];
$email = $_POST['email'];
$komentar = $_POST['komentar'];
$input = mysql_query (“INSERT INTO comment (induk , nama , email, komentar)
VALUES (‘$induk’,'$nama’,'$email’,'$komentar’)”);
if ($input) echo “DATA berhasil disimpan

INPUT DATA LAGI | lihat”;
else echo “DATA GAGAL”;
//di buat oleh enterprise2605
//afian2605@ymail.com
?>
setelah file ketiga berhasil maka kali ini kita perlu menampilkan data yang telah tersimpan pada database tersebut. buat file dengan nama tampil.php

include(‘sambung.php’);
//di buat oleh enterprise2605
//afian2605@ymail.com
if($_GET['action']== ‘delete’){
mysql_query(“delete from comment where induk=’”.mysql_real_escape_string($_GET['DEL']).”‘”);
}
$tampil = mysql_query(“SELECT * FROM comment WHERE 1″);
echo “

”;
while ($tampil2 = mysql_fetch_array($tampil)){
echo ‘
’;
echo ‘’;
echo ‘’;
echo  ‘’;
echo ‘’;
}
echo “
INDUKNAMA LENGKAPEMAILKOMENTARAKSI
’.$tampil2['induk'].’’.$tampil2['nama'].’’.$tampil2['email'].’’.$tampil2['komentar'].’hapus
”;
?>
selamat mencoba dan semoga bermanfaat . . .. .

Rabu, 18 Januari 2012

STRUKTUR

11.1. Tujuan Pembahasan Materi
1.    Menjelaskan cara mendeklarasikan struktur.
2.    Menjelaskan cara menginisialisasi struktur.
3.    Menjelaskan cara mengakses elemen stuktur.
4.    Menjelaskan pembentukan array dari strukrur.
5.    Menjelaskan hubungan antara fungsi dan struktur.
11.2. Pokok Pembahasan
    Struktur merupakan pengelompokan dari varibel-variabel yang bernaung dalam satu nama yang sama. Berbeda dengan array, struktur dapat terdiri atas variable-variabel yang berbeda tipenya dalam satu nama struktur. Struktur biasa digunakan  untuk mengelompokkan beberapa informasi yang berkaitan menjadi sebuah kesatuan (dalam bahasa PASCAL, struktur disebut dengan record).
    Struktur memiliki variable-variabel dalam pembentukannya, selanjutnya disebut sebagai elemen dari struktur atau field. Dengan demikian, dimungkinkan suatu struktur dapat berisi elemen data berbeda tipe seperti char, int, float, double,  dan lain-lain.
11.3. Dasar Teori
    Structure (struktur) adalah kumpulan elemen-elemen data yang digabungkan menjadi satu kesatuan. Masing-masing elemen data tersebut dikenal dengan sebutan field. Field data tersebut dapat memiliki tipe data yang sama ataupun berbeda. Walaupun fieldfield tersebut berada dalam satu kesatuan, masing-masing field tersebut tetap dapat diakses secara individual.
 Field-field tersebut digabungkan menjadi satu dengan tujuan untuk kemudahan dalam operasinya. Misalnya Anda ingin mencatat data-data mahasiswa dan pelajar dalam sebuah program, Untuk membedakannya Anda dapat membuat sebuah record mahasiswa yang terdiri dari field nim, nama, alamat dan ipk serta sebuah record pelajar yang terdiri dari field-field nama, nonurut, alamat dan jumnilai. Dengan demikian akan lebih mudah untuk membedakan keduanya.
Bentuk umum:
Struct nama struct
{
nama field1
nama field1
nama field1
};   
Contoh :
Struct mahasiswa
{
Char nim [30];
Char nama [25];
Char alamat [50];
};
11.3.1. Mendefinisikan variabel struktur
Apabila suatu struktur telah dideklarasikan, struktur ini dapat digunakan untuk mendefinisikan suatu variabel. Misalnya,
data_tanggal tanggal_lahir;
Merupakan pendefinisian variabel struktur bertipe struktur tanggal lahir. Dengan adanya pendefinisian ini, tanggal_lahir memiliki tiga buah anggota yaitu :
Tahun
bulan
tanggal
11.3.2. Struktur di dalam struktur
Suatu struktur juga bisa mengandung struktur yang lain. Sebagai gambaran ditunjukkan di bawah ini.
struct data_pegawai
{
int nip;
char nama[25];
data_tanggal tanggal_lahir;
} rec_peg;
11.3.3. Mengakses Anggota Struktur
Anggota struktur diakses dengan menggunakan bentuk :
variabel_struktur.nama_anggota
Tanda titik diberikan diantara nama variabel struktur dan nama anggota. Misalnya:
tanggal_lahir.tanggal = 1;
merupakan pernyataan penugasan untuk memberikan nilai1 ke anggota tanggal pada variabel struktur tanggal_lahir. Bagaimana halnya untuk mengakses anggota bernama bulan pada variabel struktur rec_peg seperti pada contoh di depan ?
Misalnya
rec_peg.tanggal_lahir.bulan = 9;
Merupakan contoh untuk memberikan nilai terhadap anggota bulan pada variabel struktur rec_peg.
Contoh program :
//Program pendeklarasian, pendefinisian dan
//pengaksesan struktur
//Nama File struk1.cpp
#include
#include
void main()
{
struct data_tanggal //pendeklarasian
{
int tahun;
int bulan;
int tanggal;
};
data_tanggal tanggal_lahir; //pendefinisian struktur
//pengaksesan anggota struktur
tanggal_lahir.tanggal = 1;
tanggal_lahir.bulan = 9;
tanggal_lahir.tahun = 1964;
cout<<<}

11.3.4. Penugasan struktur
Pemberian nilai terhadap suatu struktur dapat dilakukan dengan bentuk :
var1 = var2;
Sepanjang kedua variabel adalah variabel struktur bertipe sama. Misalnya terdapat
pendefinisian :
data_tanggal tgl1 tgl2;
Penugasan seperti berikut :
tgl2 = tgl1;
Diperkenankan. Dalam hal ini, seluruh anggota pada variabel tgl2 diisi dengan anggota terkait yang ada pada tgl1. Pernyataan di atas merupakan penyederhanaan dari tiga pernyataan berikut :
tgl2.bulan = tgl1.bulan;
tgl2.tahun = tgl1.tahun;
tgl2.tanggal = tgl1.tanggal;
Contoh program :
//Program penugasan struktur
//Nama File Struk2.cpp
#include
#include
void main()
{
struct data_tanggal //pendeklarasian
{
int tahun;
int bulan;
int tanggal;
};
data_tanggal tgl1, tgl2; //pendefinisian struktur
//penugasan per anggota
tgl1.tanggal = 1;
tgl1.bulan = 9;
tgl1.tahun = 1964;
//penugasan antarvariabel struktur
tgl2 = tgl1;
cout<<<}
11.3.5. Array dan Struktur
    Elemen-elemen dari suatu array juga dapat berbentuk sebuah struktur. Misalnya array yang dipakai untuk menyimpan sejumlah data siswa (struct student). Array struktur berdimensi satu ini membentuk suatu table, dengan barisnya menunjukkan elemen dari array-nya dan kolomnya menunjukkan elemen dari struktur. Dalam hal ini maka deklarasi yang dibutuhkan adalah sebagai berikut :
#define MAKS 20
-
-
-
struct date {        /*definisi dari tipe data/*
Int month;
Int day;
Int year;
};
Struct person {        /* definisi dari tipe person/*
Char name [30];
Struct date birthday ;
};
/* deklarasi dari variable array student/*
Struct person student [MAKS];
Yang artinya, mendeklarasikan array student yang memiliki elemen yang bertipe struct person sebanyak MAKS. 
    Disamping cara pendeklarasian diatas, struktur juga dapat dideklarasikan dalam erbagai bentuk yang lain, diantaranya sebagai berikut :
Struct date {
    Int month, day, year; } today, tomorrow;
struct person {
    char name [30];
    struct date birthday ;
} student [MAKS};
Yaitu mendefinisikan struktur date, sekaligus mendeklarasikan variable today dan tomorrow dengan tipe struktur date. Demikian juga mendifinisikan struktur person, sekaligus mendeklarasikan variable array student sebanyak MAKS elemen dengan tipe struktur person. Atau cara lainnya mendefinisikan, mendeklarasikan sekaliggus menginisialisasi struktur, sebagai berikut :
Struct date {
    Int month, day, year;
} today = { 15,14,2001}.

11.3.6. Struktur dan Fungsi
    Melewatkan sebuah struktur untuk menjadi parameter sebuah fungsi dapat dilakukan sama dengan pengiriman parameter berupa variable biasa. Fungsi yang mendapat kiriman parameter tersebut juga bisa mengirimkan hasil baliknya yang juga berupa sebuah struktur (pass by reference).

11.3.6.1. Melewatkan Elemen Struktur ke dalam Fungsi
    Melewatkan parameter berupa sebuah elemen struktur dapat dilakukan sebagaimana pengirimannparameter berupa variable biasa, dapat dilakukan baik secara nilai (pass by value) maupun secara acuan (pass by reference).
    Apabila nilai suatu elemen struktur diharapkan akan diuah oleh fungsi, maka yang dilewatkan haruslah berupa alamat dari elemen struktur (pass by reference). Untuk keperluan ini, operator alamat ditempatkan didepan nama variable (bukan di depan nama elemen struktur).


11.3.6.2. Melewatkan Struktur kedalam Fungsi
    Pada program cetak1.c diatas misalnya, semua elemen dari struktur  dikirimkan ke fungsi cetak_tanggal(), dengan maksud nilai elemen dari struktur akan ditampilkan dilayar. Untuk keadaan seperti ini, lebih baik kalau parameter fungsi diubah menjadi bentuk struktur, sehingga parameter fungsi tidak lagi sebanyak tiga buah, melainkan hanya satu.
11.3.7. Struktur dan Pointer (Pointer ke Struktur)
    Jika sebuah struktur mengandung banyak field dan diputuskan bahwa keseluruhan field-nya akan diubah oleh fungsi, maka cara yang efisien adalah dengan melewatkan (passing) alamat dari struktur. Dengan demikian pada pendefinisian fungsi, parameter formalnya berupa pointer yang menunjuk ke pointer.
    Masalah pointer ke struktur dapat diterapkan dalam program posisil.c. argument dari fungsi tukar_xy() dapat disederhanakan menjadi satu argument saja, yakni sebagai berikut :
Void tukar_xy(struct koordinat pos_xy)
{
    Int z;
    z = (*pos_xy). x;
    (*pos_xy). x = (*pos_xy). y;
    (*pos_xy). y = z;
}
Pada definisi fungsi diatas,
    Struct koordinat *pos_xy
Menyatakan bahwa pos_xy adalah pointer yang menunjuk ke obyek bertipe struktur koordinat.
Adapun penulisan :
    (*pos_xy). x;
Menyatakan : elemen bernama x yang ditunjuk oleh pointer pos_xy.
    Perlu diperhatikan bahwa penulisan tanda kurung seperti pada contoh (*pos_xy). x merupakan suatu keharusan. Sebab
    *pos_xy. x;
Mempunyai makna yang berbeda dari :
    (*pos_xy). x;
Ungkapan *pos_xy.x mempunyai makna yaitu “yang ditunjuk oleh *pos_xy.x” (sebab operator titik mempunyi prioritas yang lebih tinggi daripada operato*).
11.4. Percobaan Praktikum
11.4.1. Contoh Program Pemakaian String
 




Out Put :




STRING

10.1 Tujuan Pembahasan materi
1.    Mengenal dan memahami konsep string.
2.    Dapat menggunakan I/O pada string.
3.    Bisa menjelaskan berbagai fungsi mengenai string.
4.    Menjelaskan cara mengakses elemen string
10.2.  Pokok Pembahasan
    String merupakan suatu bentuk data yang biasa dipakai dalam sebuah bahasa pemrograman untuk keperluan menampung dan memanipulasi data teks, mxisalnya untuk menampung ( menyimpan) suatu kalimat. Pada bahasa C, string bukanlah merupakan suatu tipe data tersendiri, melainkan hanyalah kumpulan dari nilai-nilai karakter yang berurutan dalm bentuk array berdimensi satu.
10.3. Dasar Teori
10.3.1.Konstanta String
Suatu konstanta string ditulis dengan diawali dan diakhiri tanda petik ganda, misalnya: “ABCDE”. Nilai string ini disimpan dalam memori secara berurutan dengan komposisi sebagai berikut: 
Setiap karakter akan menempati memori sebesar 1 byte. Byte terakhir otomatis akan berisi karakter NULL (\0), dengan demikian maka akhir dari nilai suatu string akan dapat dideteksi. Sebagai sebuah array of char, karakter pertama dari nilai string mempunyai indeks ke-0, karakter kedua mempunyai indeks ke-1,
dan seterusnya.
10.3.2. Variabel String
Variabel string adalah variabel yang dipakai untuk menyimpan nilai string. Misalnya :
char name[15];
merupakan instruksi untuk mendeklarasikan variabel string dengan panjang maksimal 15 karakter (termasuk karakter NULL). Deklarasi tersebut sebenarnya tidak lain merupakan deklarasi array bertipe char.
10.3.3.Inisialiasi String
Suatu variabel string dapat diinisialisasi seperti halnya array yang lain (dalam kurung kurawal dipisahkan koma). Namun tentu saja elemen terakhirnya haruslah berupa karakter NULL. Sebagai contoh :
char name[] = {'R','I','N', 'I',’\0’};
yang menyatakan bahwa name adalah variabel string dengan nilai awal berupa string : “RINI” .
Bentuk inisialisasi yang lebih singkat :
char name[] = “RINI”;
pada bentuk ini, karakter NULL tidak perlu ditulis. Secara IMPLISIT akan disisipkan oleh kompiler.
10.3.4. Input Output Data String
Untuk memasukkan atau menampilkan data Stringdigunakan bisa beberapa fungsi standar yang ada di stdio.h.
Untuk operasi input :
– scanf()
– gets()
– fgets()
Untuk operasi output :
– puts()
– printf()
10.3.4.1. Memasukkan Data String
Pemasukan data string ke dalam suatu variabel biasa dilakukan dengan fungsi gets() atau scanf(). Bentuk umum pemakaiannya adalah sebagai berikut :
#include
gets(nama_array);
atau
#include
scanf(“%s”, nama_array);
Perhatikan :
• nama_array adalah variabel bertipe array of char yang akan digunakan untuk menyimpan string masukan.
• Di depan nama_array tidak perlu ada operator & (operator alamat), karena nama_array tanpa kurung siku sudah menyatakan alamat yang ditempati oleh
elemen pertama dari array tsb.
• Kalau memakai scanf(), data string masukan tidak boleh mengandung spasi
main()
{
char name[15];
printf("Masukkan nama Anda : ");
gets(name);
printf("\nHalo, %s. Selamat belajar string.\n", name);
}
Contoh eksekusi :
masukkan nama anda : SAIFUDDIN
Halo, SAIFUDDIN. Selamat belajar string.


Perlu diketahui, fungsi gets() akan membaca seluruh karakter yang diketik
melalui keyboard sampai tombol ENTER ditekan dengan tanpa mengecek batasan panjang array yang merupakan argumennya. Jika string yang dimasukkan melebihi ukuran array, maka sisa string (panjang string masukan dikurangi ukuran array plus karakter NULL) akan ditempatkan di lokasi sesudah bagian akhir dari array tersebut. Tentu saja kejadian seperti ini bisa menimbulkan hal yang tidak diinginkan, misalnya berubahnya isi variabel yang dideklarasikan sesudah array tersebut karena tertumpuki oleh string yang dimasukkan (overwrite), atau perilaku program yang sama sekali berbeda dengan kemauan user yang dalam hal ini pelacakan kesalahannya (debugging) sangat sulit dilakukan, atau bahkan terjadi penghentian program secara tidak normal. Untuk mengatasi hal itu, disarankan untuk menggunakan fungsi fgets() untuk menggantikan fungsi gets() dalam memasukkan data string. Bentuk umum pemakaian fgets() adalah :
#include
fgets(nama_array, sizeof nama_array, stdin);
contoh eksekusi dengan gets ( ) :
#include
#define MAKS 5
main(){
char kar = 'A';
char nama[MAKS];
printf("Karakternya = %c\n", kar);
printf("Masukkan nama Anda : ");
gets(nama);
printf("\nNama Anda = %s\n", nama);
printf("Karakternya = %c\n", kar);
}

10.3.4.2. Menampilkan Data String
Untuk menampilkan isi variabel string, fungsi yang digunakan adalah puts()atau printf(). Bentuk umum pemakaiannya adalah sebagai berikut :
#include
puts(var_string);
atau
printf("%s",var_string);
Dalam hal ini var_string adalah sebuah variabel yang berupa sebuah
array of char.  Fungsi puts() akan menampilkan isi dari var_string dan secara otomatis menambahkan karakter '\n' di akhir string. Sedangkan fungsi printf() akan menampilkan isi variabel string tanpa memberikan tambahan '\n'. Sehingga, agar kedua pernyataan di atas memberikan keluaran yang sama, maka pada pernyataan printf() dirubah menjadi :
printf("%s\n", var_string); 

10.3.4.3. Mengakses Elemen String
Variabel string merupakan bentuk khusus dari array bertipe char. Oleh karena itu, elemen dari variable string dapat diakses seperti halnya pengaksesan
elemen pada array. Perhitungan jumlah karakter dari string teks dapat dilakukan dengan memeriksa elemen dari string dimulai dari posisi yang pertama (indeks ke-0) sampai ditemukannya karakter NULL. Program berikut menunjukkan cara mengakses elemen array untuk menghitung total karakter dari string yang dimasukkan melalui keyboard.
Contoh mengakses elemen string :
#include
#define MAKS 256
main() {
int i, jumkar = 0;
char teks[MAKS];
puts("Masukkan suatu kalimat (maks 255 karakter).");
puts("Saya akan menghitung jumlah karakternya.\n");
fgets(teks, sizeof teks, stdin);
for(i=0; teks[i]!=’\0’; i++)
jumkar++;
printf("\nJumlah karakter = %d\n", jumkar);
}
10.3.5. Built-in Functions(fungsi-fungsi) untuk manipulasi String
Untuk manipulasi string, bahasa C telah menyediakan beberapa fungsi standar yang ada pada string.h.  Beberapa yang akan dibahas kali ini adalah :
– Fungsi strcpy()
– Fungsi strlen()
– Fungsi strrev()
– Fungsi strcmp()
– Fungsi strcmpi()
10.3.5.1. Fungsi strcpy()
Bentuk pemakaian :
#include
strcpy(tujuan, asal);
Fungsi ini dipakai untuk mengcopy string asal ke variabel string tujuan termasuk karakter '\0'. Dalam hal ini, variabel tujuan haruslah mempunyai ukuran yang dapat digunakan untuk menampung seluruh karakter dari string asal. Contoh penggunaan fungsi strcpy () adalah :
#include
#include
#define MAKS 80
main()
{
char str1[MAKS];
char str2[]="ABCDE";
strcpy(str1, str2); //menyalin isi str2 ke str1
printf("String pertama adalah : %s\n", str1);
printf("String kedua adalah : %s\n", str2);
}
10.3.5.2. Fungsi strlen()
Bentuk pemakaian :
#include
strlen(var_string);
Fungsi ini digunakan untuk memperoleh banyaknya karakter di dalam string yang menjadi argumennya (var_string). Keluaran dari fungsi ini adalah panjang dari var_string(karakter NULL tidak ikut dihitung).
Contoh :
#include
#include
main(){
char salam[] = "Halo";
printf("Panjang string %s = %d
karakter\n", salam,strlen(salam));
}
10.3.5.3. Fungsi strcmp() (case sensitive)
Membandingkan dua nilai string juga tidak dapat digunakan dengan operator hubungan, karena operator tersebut tidak untuk operasi string. Membandingkan dua buah nilai string secara case sensitive dapat dilakukan dengan fungsi strcmp(). Contoh bentuk pemakaian fungsi :
#include
strcmp(str1, str2);
Fungsi ini dipakai untuk membandingkan string str1 dengan string str2. Keluaran dari fungsi ini bertipe int yang berupa nilai :
– -1, jika str1 kurang dari str2
– 0, jika str1 sama dengan str2
– 1, jika str1 lebih dari str2
Pembandingan dilakukan untuk karakter pada posisi yang sama dari str1 dan str2, dimulai dari karakter terkiri yang didasarkan oleh nilai ASCIInya. Misal, karakter ‘A’ lebih kecil daripada ‘B’ dan karakter ‘B lebih kecil daripada ‘C’.
Contoh penggunaannya adalah :
#include
#include
main(){
char str1[]="HALO”;
char str2[]="Halo";
char str3[]="HALO”;
printf(“Hasil pembandingan %s dengan %s --> %d\n”,
str1, str2, strcmp(str1, str2));
printf(“Hasil pembandingan %s dengan %s --> %d\n”,
str2, str1, strcmp(str2, str1));
printf(“Hasil pembandingan %s dengan %s --> %d\n”,
str1, str3, strcmp(str1, str3));
}
10.3.5.4.Fungsi strcmpi() (non case sensitive)
Membandingkan dua buah nilai string secara non case sensitive dapat dilakukan dengan fungsi strcmpi(). Contoh bentuk pemakaian fungsi :
#include
strcmpi(str1, str2);
Fungsi ini dipakai untuk membandingkan string str1 dengan string str2. Keluaran dari fungsi ini bertipe int yang berupa nilai :
– -1, jika str1 kurang dari str2
– 0, jika str1 sama dengan str2
– 1, jika str1 lebih dari str2
Contoh pemakaiannya :
#include
#include
main(){
char str1[]="HALO";
char str2[]="harimau";
char str3[]="halo";
printf("Hasil pembandingan %s dengan %s --> %d\n",
str1, str2, strcmpi(str1, str2));
printf("Hasil pembandingan %s dengan %s --> %d\n",
str2, str1, strcmpi(str2, str1));
printf("Hasil pembandingan %s dengan %s --> %d\n",
str1, str3, strcmpi(str1, str3));
}
10.4. Percobaan-percobaan/Latihan-latihan
10.4.1. Contoh Program Praktikum Pemakaian String
 


Out Put :





ARRAY

9.1. Tujuan Pembahasan Materi
1.    Mengenal dan memahami konsep array.
2.    Dapat menjelskan array sebagai parameter fungsi
3.    Mengenal dan memahami fungsi parametrik dan non-parametrik
4.    .dapat menggunakan fungsi array dalam pemrograman.
9.2. Pokok Pembahasan
    Dalam beberapa literature, array sering disebut (diterjemahkan) sebagai array. Array merupakan kumpulan dari nilai-nilai data yan bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama
    Array memiliki beberapa macam dimensi, ada array berdimensi satu, array berdimensi dua, array berdimensi tiga atau array berdimensi lebih dari tiga. Array berdimensi satu ( one dimensional array ) mewakili bentuk suatu vector. Array berdimensi dua ( two-dimensional array) mewakili bentuk dari uatu matriks atau tabel. Array bedimensi tiga ( three-dimensional array) mewakili bentuk dari suatu ruang.
9.3. Dasar Teori
    Array merupakan kumpulan dari nilai-nilai data yang bertipe sama dalam urutan tertentu yang menggunakan nama yang sama. Letak atau posisi dari elemen array ditunjukkan oleh suatu indeks. Dilihat dari dimensinya array dapat dibagi menjadi Array Dimensi Satu, Array Dimensi Dua, dan Array Multi-Dimensi.
9.3.1. Array Dimensi Satu
Array dimensi satu merupakan tipe data yang sering digunakan pada pendeklarasian variable yang sama tapi memiliki indeks yang berbeda, serta pengisian elemen array dilakukan melalui indeks. Indeks array secara default dimulai dari 0.
Bentuk umum penulisan :
Type_data variabel1[jumlah_elemen];
Contoh :
int data1[7];
int data2[5] = {20,30,10,50,20];
artinya :

               
Data 1 = Elemen kosong

20     30    10     50    20
Data 2 = Elemen tidak kosong

Contoh program :
//Program untuk memasukkan data dan menampilkan data
//Nama File Ini.cpp
#include
#include
Data 1 = Elemen kosong
Data 2 = Elemen tidak kosong
void main()
{
float x[5]; //Deklarasi array dengan lima elemen
int d;
clrscr();
for(int i = 1; i <= 5; i++) //mengisi array
{
cout<<"Isi data ";
cin>>x[i];
}
for( i = 1; i <= 5; i++)
{
cout<<”Tampilkan hasil “<setelah diisi
}
}
//Program menghitung suhu rata-rata
//Nama file suhu.cpp
#include
#include
const int JUM_DATA = 5;
void main()
{
float suhu[JUM_DATA];
float total;
clrscr();
cout<<"Masukkan data suhu "<for (int i = 0; i < JUM_DATA; i++)
{
cout<< i + 1 << " : ";
cin>>suhu[i];
}
total = 0;
for (i = 0 ; i < JUM_DATA; i++)
total += suhu[i];
cout<<"Suhu rata - rata = " <}
9.3.2. Array Dimensi Dua
Array dimensi dua merupakan tipe data yang sering digunakan pada pendeklarasian variabel yang sama tapi memiliki dua indeks yang berbeda, serta pengisian elemen array dilakukan melalui indeks. Indeks array secara default dimulai dari 0,0. Jumlah elemennya adalah indeks1 x indeks 2.
Bentuk umum penulisan :
Type_data variabel1[jumlah_elemen1][jumlah_elemen2];
Contoh :
int y[2][2];
artinya di dalam memori computer terdapat alokasi sebagai berikut :

   
   
Data 1 = Elemen kosong terdapat 2
baris dan 2 kolom

Contoh program :
//Program pemakaian array dimensi dua
//Nama File lulus.cpp
#include
#include
void main()
{
int data_lulus[3][4]; //deklarasi arrayk dimensi dengan tiga
elemen baris dan
int tahun, jurusan; //empat elemen kolom
clrscr();
data_lulus[0][0] = 35; //mengisi array
data_lulus[0][1] = 45;
data_lulus[0][2] = 90;
data_lulus[0][3] = 120;
data_lulus[1][0] = 100;
data_lulus[1][1] = 110;
data_lulus[1][2] = 70;
data_lulus[1][3] = 101;
data_lulus[2][0] = 10;
data_lulus[2][1] = 15;
data_lulus[2][2] = 20;
Data 1 = Elemen kosong terdapat 2
baris dan 2 kolom
data_lulus[2][3] = 17;
while (1)
{
cout<<"Jurusan (0 = T I, 1 = MI, 2 = TK) ";
cin>>jurusan;
if((jurusan == 0) || (jurusan == 1 ) || (jurusan == 2))
break;
}
while (1)
{
cout<< "tahun (1992 - 1995); ";
cin>>tahun;
if((tahun >= 1992) && (tahun <= 1995))
{
tahun -= 1992;
break;
}
}
cout<<"jumlah yang lulus = "
<}
9.3.4. Array Multi Dimensi
Array Multi Dimesi adalah array yang banyak memiliki dimensi tidak terbatas pada satu atau dua dimensi. Array tersesebut memiliki dimensi sesuai dengan kebutuhan, walaupun sebenarnya jarang melebihi dimensi tiga.
Bentuk umum penulisan :
Type_data variabel1[jumlah_elemen1][jumlah_elemen2]…[jumlah_elemenn]
Contoh :
int x[2][2][2];
int y[4][5][8][2];
Contoh program :
//Program array dimensi tiga
//Nama file hurufab.cpp
#include
#include
void main()
{
//pendefinisian array dimensi tiga
//dan pemberian nilai awal
int huruf [2][8][8] =
{
{{0,1,1,1,1,1,0,0},
{0,1,0,0,0,1,0,0},
{0,1,0,0,0,1,1,0},
{1,1,1,1,1,1,1,0},
{1,1,0,0,0,0,1,0},
{1,1,0,0,0,0,1,0},
{1,1,0,0,0,0,1,0},
{0,0,0,0,0,0,0,0},
},
{{1,1,1,1,1,1,0,0},
{1,0,0,0,0,1,0,0},
{1,0,0,0,0,1,0,0},
{1,1,1,1,1,1,1,0},
{1,1,0,0,0,0,1,0},
{1,1,0,0,0,0,1,0},
{1,1,1,1,1,1,1,0},
{0,0,0,0,0,0,0,0},
}
};
int i,j,k;
clrscr();
for (i=0;i<2;i++)
{
for(j=0;j<8;j++)
{
for (k = 0; k <8; k++)
{
if (huruf[i][j][k] == 1)
cout<<'\xDB';
else
cout<<'\x20';
}
cout <}
}
}
9.3.5. Reprentasi Array
Misalkan kita memiliki sekumpulan data ujian seorang siswa, ujian pertama bernilai 90, kemudian 95,78,85. Sekarang kita ingin menyusunnya sebagai suatu data kumpulan ujian seorang siswa. Dalam array kita menyusunnya sebagai berikut :
ujian[0] = 90;
ujian[1] = 95;
ujian[2] = 78;
ujian[3] = 85;
Empat pernyataan diatas memberikan nilai kepada array ujian. Tetapi sebelum kita memberikan nilai kepada array, kita harus mendeklarasikannya terlebih dahulu, yaitu :
int ujian[4];
Perhatikan bahwa nilai 4 yang berada didalam tanda kurung menujukkan jumlah
elemen array, bukan menunjukkan elemen array yang ke-4. Jadi elemen array ujian dimulai dari angka 0 sampai 3.
Pemrogram juga dapat menginisialisasi array sekaligus mendeklarasikannya, sebagai contoh :
int ujian[4] = {90,95,78,85};
Elemen terakhir dari array diisi dengan karakter ‘\0’. Karakter ini memberitahu kompiler bahwa akhir dari elemen array telah dicapai. Walaupun pemrogram tidak dapat melihat karakter ini secara eksplisit, namun kompiler mengetahui dan membutuhkannya. Sekarang kita akan membuat daftar beberapa nama pahlawan di Indonesia
char pahlawan[3][15] ;
char pahlawan[0][15] = “Soekarno”;
char pahlawan[1][15] = “Diponegoro”;
char pahlawan[2][15] = “Soedirman”;
Array diatas terlihat berbeda denga contoh array pertama kita. Perhatikan bahwa pada array pahlawan memilih dua buah tanda kurung [ ][ ]. Array seperti itu disebut array dua dimensi. Tanda kurung pertama menyatakan total elemen yang dapt dimiliki oleh array pahlawan dan tanda kurung kedua menyatakan total elemen yang dapat dimiliki setiap elemen array pahlawan. Dalam contoh diatas, tanda kurung kedua menyatakan karakter yang menyatakan nama pahlawan.
9.3.6. Menghitung Jumlah Elemen Array
Karena fungsi sizeof() mengembalikan jumlah byte yang sesuai dengan argumennya, maka operator tersebut dapat digunakan untuk menemukan jumlah elemen array, misalnya
int array[ ] = {26,7,82,166};
cout<akan mengembalikan nilai 4, yaitu sama dengan jumlah elemen yang dimiliki array.
9.3.7. Melewatkan Array Sebagai Argumen Fungsi
Array dapat dikirim dan dikembalikan oleh fungsi. Pada saat array dikirim ke dalam fungsi, nilai aktualnya dapat dimanipulasi
Contoh :
 
Output
Elemen kedua dari array ujian adalah 100


9.4. Percobaan Praktikum
9.4.1. Contoh Program Penggunaan Fungsi  Array
 


Out Put :







FUNGSI

8.1. Tujuan Pembahasan Materi
1.    Mengenal dan memahami fungsi parametrik dan non-paraametrik.
2.    Dapat menggunakan fungsi pada pemrograman.
3.    Mampu memecah program dalam fungsi-fungsi yang sederhana.
4.    Mengetahui perbedaan antara variable loal, eksternal, statis dan register.
8.2. Pokok Pembahasan
    Fungsi merupakan suatu bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas tertentu dan letaknya terpisah dari program yang memanggilnya. Fungsi merupakan elemen utama dalam bahasa C karena bahasa C
sendiri terbentuk dari kumpulan fungsi-fungsi. Dalam setiap program bahasa C, minimal terdapat satu fungsi yaitu fungsi main(). Fungsi banyak diterapkan dalam
program-program C yang terstruktur. Keuntungan penggunaan fungsi dalam program yaitu program akan memiliki struktur yang jelas (mempunyai readability  yang tinggi) dan juga akan menghindari penulisan bagian program yang sama. Dalam bahasa C fungsi dapat dibagi menjadi dua, yaitu fungsi pustaka atau fungsi yang telah tersedia dalam Turbo C dan fungsi yang didefinisikan atau dibuat oleh programmer.
8.3. Dasar Teori
8.3.1 Definisikan Fungsi
Suatu fungsi secara umum mempunyai dua buah komponen utama, yaitu definisi fungsi dan tubuh fungsi. Definisi fungsi berisi dengan tipe dari fungsi, nama dari fungsi dan argumen-argumennya jika digunakan. Tubuh fungsi berisi dengan statemen-statemen yang akan melakukan tugas yang akan diberikan kepada fungsiyang bersangkutan. Bentuk umum dari fungsi : tipe_fungsi nama-fungsi(argumen1,argumen2,...)

 Definisi fungsi
{
........
........ à Badan fungsi
........
}
Definisi fungsi ditulis sebelum tubuh fungsi tanpa diakhiri dengan titik koma. Tipe di definisi fungsi menunjukkan tipe dari fungsi. Tipe dari fungsi tergantung dari tipe data hasil balik yang akan diberikan oleh fungsi. Misalnya hasil balik dari fungsi berupa nilai numerik pecahan, maka tipe dari fungsi dapat dibuat float atau double atau long double tergantung pada ketepatan yang diinginkan. Jika fungsi tidak memberikan nilai balik, maka tipenya adalah void. Tipe dari fungsi ini tidak dapat ditulis jika tipenya adalah char atau int. Jika suatu fungsi didefinisikan tanpa menggunakan tipenya, maka akan dianggap bertipe integer. Contoh definisi fungsi dengan menggunakan argumen atau parameter :
“int Fungsi_Ku (float A, int B, char C)”
Hal-hal yang perlu diperhatikan dalam penggunaan fungsi:
• Kalau tipe fungsi tidak disebutkan, maka akan dianggap sebagai fungsi dengan nilai keluaran bertipe integer.
• Untuk fungsi yang memiliki keluaran bertipe bukan integer, maka diperlukan pendefinisian penentu tipe fungsi.
• Untuk fungsi yang tidak mempunyai nilai keluaran maka dimasukkan ke dalam tipe void
• Pernyataan yang diberikan untuk memberikan nilai akhir fungsi berupa pernyataan return.
• Suatu fungsi dapat menghasilkan nilai balik bagi fungsi pemanggilnya.
8.3.2 Deklarasi Fungsi
Suatu fungsi yang memberikan hasil balik selain tipe integer perlu dideklarasikan sebelum digunakan. Deklarasi fungsi ditulis sebelum fungsi tersebut digunakan.
Bentuk umum dari deklarasi fungsi :
tipe nama_fungsi( argumen1, argumen2, ... );
Jika bagian dari program yang menggunakan fungsi diletakkan sebelum definisi fungsi, maka deklarasi fungsi diperlukan. Akan tetapi jika bagian program yang menggunakan fungsi terletak setelah definisi dari fungsi, maka deklarasi fungsi boleh tidak dapat dituliskan. Jika suatu fungsi memberikan hasil balik, maka nilai hasil balik yang diberikan oleh fungsi dapat dilakukan oleh statement return yang diikuti oleh nilai hasil baliknya yang ditulis tanda kurung. Contoh : return(F);
Contoh program :
#include < iostream.h >
double Absolut ( double X );/* prototype fungsi Absolut
*/
main()
{
float Nilai;
Nilai = -123.45;
cout << Nilai << “Nilai mutlaknya adalah “ << Absolut (
Nilai );
}
/* --- Fungsi untuk memutlakkan nilai negatif --- */
double Absolut ( double X )/* definisi fungsi */
{
if ( X < 0 ) X = -X;
return ( X );
}
Output :
-123.45 nilai mutlaknya adalah 123.45
8.3.3 Parameter Formal dan Parameter Aktual
• Parameter Formal adalah variabel yang ada pada daftar parameter dalam definisi fungsi.
• Parameter Aktual adalah variabel (parameter) yang dipakai dalam pemanggilan fungsi.
• Dalam contoh program pertambahan di atas parameter formal terdapat pada
pendefinisian fungsi :
float tambah(float x, float y) //parameter
formal
{ return (a+b);
}
Sedangkan parameter aktual terdapat pada
pemanggilan fungsi :
void main()
{ ...............
..............
c = tambah(a, b); //parameter aktual
..............
}
8.3.4 Ruang Lingkup Variabel
Terdapat tiga macam bentuk variabel yang mempunyai ruang lingkup berbeda, yaitu variabel lokal, variabel global, dan variabel statik.
8.3.4.1 Variabel Lokal
Merupakan variabel yang namanya dan nilainya hanya dikenal di suatu blok statemen tertentu saja atau di dalam suatu fungsi. Variabel lokal akan dihapus dari memori jika proses sudah meninggalkan blok statemen letak variabel lokalnya.
Sifat-sifat variabel lokal :
§ Secara otomatis akan diciptakan ketika fungsi dipanggil dan akan lenyap ketika proses eksekusi terhadap fungsi berakhir.
§ Hanya dikenal oleh fungsi tempat variabel dideklarasikan
§ Tidak ada inisialisasi secara otomatis (saat variabel diciptakan nilainya random).
§ Dideklarasikan dengan menambahkan kata “auto” (opsional).
Contoh program :
#include
float Tambah(float A, float B);
main()
{
float Hasil;
Hasil=Tambah(2,3);
printf(“%f\n”,Hasil);
}
/*-------Fungsi menghitung pertambahan -------------
*/
float Tambah(float A,float B)
{
float C;
C = 1000;
}
return(C);
}
Output :
5.000000
Fungsi Tambah( ) akan menghasilkan nilai 5, yaitu hasil dari nilai 2 ditambah dengan nilai 3. Di dalam fungsi ini, terdapat suatu blok statemen yang merubah nilai variabel C dengan nilai 1000. Karena variabel C ini juga dideklarasikan sendiri, maka juga bersifat lokal untuk blok statemen tersebut dan dianggap berbeda dengan variabel C yang dideklarasikan di luar blok statemennya.
8.3.4.2 Variabel Global
Variabel global (eksternal) adalah variabel yang dideklarasikan di luar fungsi.
Sifat-sifat variabel global :
§ Dikenal (dapat diakses) oleh semua fungsi.
§ Jika tidak diberi nilai awal secara otomatis berisi nilai nol.
§ Dideklarasikan dengan menambahkan kata “extern” (opsional).
Contoh Program :
#include “stdio.h”
#include “conio.h”
void tampil(void);
int i = 25; /* variabel global */
void main()
{ clrscr();
printf(“Nilai variabel i dalam fungsi main() adalah
%i\n\n”, i);
tampil();
i = i * 4; /* nilai i yang dikali 4 adalah 25
(global) bukan 10 */
printf(“\nNilai variabel i dalam fungsi main()
sekarang adalah %i\n\n”, i);
getch();
}
void tampil(void)
{ int i = 10; /* variabel lokal */
printf(“Nilai variabel i dalam fungsi tampil()
adalah %i\n\n”, i);
}
8.3.4.3 Variabel Register
Variabel Register adalah variabel yang nilainya disimpan dalam resister dan bukan dalam memori RAM.
Sifat-sifat variabel register :
§ Hanya dapat diterapkan pada variabel lokal yang bertipe int dan char.
§ Digunakan untuk mengendalikan proses perulangan (looping).
§ Proses perulangan akan lebih cepat karena variabel register memiliki kecepatan yang lebih tinggi dibandingkan variabel biasa.
§ Dideklarasikan dengan menambahkan kata “register”.
Contoh Program :
#include “stdio.h”
#include “conio.h”
void main()
{ register int x; /* variabel register */
int jumlah;
clrscr();
for(i=1; i<=100; i++)
jumlah = jumlah + I;
printf(“1+2+3+...+100 = %i\n”, jumlah);
getch();
8.3.4.4 Variabel Statik
Variabel statis adalah variabel yang nilainya tetap dan bisa berupa variabel
lokal (internal) dan variabel global (eksternal)
Sifat-sifat variabel statis :
§ Jika bersifat internal (lokal), maka variabel hanya dikenal oleh fungsi tempat variabel dideklarasikan.
§ Jika bersifat eksternal (global), maka variabel dapat dipergunakan oleh semua fungsi yang terletak pada program yang sama.
§ Nilai variabel statis tidak akan hilang walau eksekusi terhadap fungsi telah berakhir.
§ Inisialisasi hanya perlu dilakukan sekali saja, yaitu pada saat fungsi dipanggil pertama kali.
§ Jika tidak diberi nilai awal secara otomatis berisi nilai nol.
§ Dideklarasikan dengan menambahkan kata “static”.
8.3.5 Pengiriman Parameter
8.3.5.1 Pengiriman Parameter Secara Nilai (Call by Value)
§ Yang dikirim adalah nilai dari datanya, bukan alamat memori letak datanya.
§ Perubahan nilai di fungsi tidak akan merubah nilai asli di bagian program yang memanggil fungsi walaupun keduanya menggunakan nama variable yang sama.
§ Merupakan pengiriman searah, yaitu dari bagian program yang memanggil fungsi ke fungsi yang dipanggil.
Contoh program :
#include
void Secara_Nilai(float A, float B, char C);
main()
{
char C='a';
float A = 25, *Alamat_A;
Alamat_A=&A;
Secara_Nilai(A,A/3,C);
printf(“Di fungsi utama setelah memanggil fungsi
Secara_Nilai:\n”);
printf(“Nilai A adalah %f di alamat %p\n”, A,
Alamat_A);
printf(“Nilai A/3 adalah %f\n”, A/3);
printf(“Nilai karakter C adalah %c\n”, C);
}
void Secara_Nilai(float A, float B, char C);
{
float *Alamat_A;
Alamat_A=&A;
A=7;
printf(“Di fungsi Secara_Nilai:\n”);
printf(“Nilai A adalah 5f di alamat
%p\n”,A,Alamat_A);
printf(“Nilai B adalah %f\n”,B);
printf(“Nilai karakter C adalah %c\n\n”,C);
}
Output :
Di fungsi Secara_Nilai:
Nilai A adalah 7.000000 di alamat FFCA
Nilai B adalah 8.333333
Nilai karakter C adalah a
Di fungsi utama setelah memanggil Secara_Nilai;
Nilai A adalah 25.000000 di alamat FFD8
Nilai A/3 adalah 8.333333
Nilai karakter C adalah a
Keterangan :
Ø Parameter-parameter nyata yang dikirimkan adalah datanya, yaitu untuk variabel A, A/3, dan C sebagai berikut :
Secara_Nilai(A, A/3, C);
Ø Variabel A dan C menempati memori yang berbeda untuk fungsi utama yang memanggil fungsi dan yang digunakan di fungsi Secara_Nilai(). Untuk fungsi utama, variabel A disimpan di alamat FFD8, sedangkan di fungsi Secara_Nilai() nilai variabel A disimpan dalam alamat memori FFCA.
Ø Perubahan nilai variabel A di fungsi Secara_Nilai() menjadi bernilai 7 tidak merubah nilai variabel A ini di fungsi utama yang akan tetap bernilai 25.
Ø Pengiriman suatu nilai merupakan pengiriman satu arah sebagai berikut :
Secara_Nilai(A, A/3, C);
void Secara_Nilai(float A,float B, Char C)
Ø Pengiriman secara nilai dapat mengirimkan suatu ungkapan, yaitu A/3.

8.3.5.2 Pengiriman parameter secara acuan (Call by reference)
§ Yang dikirim adalah alamat memori letak datanya, bukan nilai dari datanya.
§ Perubahan nilai di fungsi akan merubah nilai asli di bagian program yang memanggil fungsi.
§ Merupakan pengiriman dua arah, yaitu dari bagian program yang memanggil fungsi ke fungsi yang dipanggil dan sebaliknya.
Contoh di bawah ini akan menunjukkan bahwa perubahan nilai di fungsi untuk parameter yang dikirimkan secara acuan akan merubah juga nilai di bagian program yang memanggilnya. Karena sifat dua arah ini, maka pengiriman parameter secara acuan dapat juga dipakai sebagai pengganti hasil balik dari fungsi. Di contoh ini, parameter nyata C akan mengirimkan alamatnya ke fungsi Tambah( ). Setelah proses di Tambah( ) selesai, alamat ini akan berisi dengan hasil proses fungsi, sehingga dapat digunakan dibagian program yang memanggilnya sebagai hasil yang diperoleh dari fungsi yang dipanggil.
#include
void Tambah(int *A, int *B, int *C);
main()
{
int A=, B=3, C;
Tambah(&A, &B, &C);
printf(“%d ditambah %d adalah %d\n”, A, B, C);
}
/*---------------Fungsi Acuan -----------------*/
void Tambah(int *A, int *B,int *C)
{
C=*A+*B;
return;
}
Output :
2 ditambah 3 adalah 5
8.3.6 Pengiriman Parameter Berupa Array
Pengiriman parameter berupa array (yang dibahas array dimensi satu) sebenarnya merupakan pengiriman secara acuan, karena sebenarnya yang dikirimkan adalah alamat dari elemen pertama arraynya, bukan seluruh nilai- nilai elemennya. Alamat elemen pertama dari array dapat ditunjukkan oleh nama arraynya yang tidak ditulis dalam indeksnya. Bentuk ini akan tampak sebagai argumen di parameter nyatauntuk bagian yang memanggil fungsi.
Contoh :
#include
void Cetak_Mundur(char S[]);
main()
{
char S[]=”Ini string”;
Cetak_Mundur(S);
}
void Cetak_Mundur(char S[])
{
int I,N;
for(N=0; S[N];N++);
for (I=N-1;I>=0;I--) printf(“%c”,S[I]);
printf(“\n”);
}
Output :
gnirtS ialiN inI
8.3.7 Rekursi
Rekursi adalah suatu proses dari fungsi yang memanggil dirinya sendiri secara berulang-ulang.
Contoh program :
#include < stdio.h >
long int Fak_Rekursif ( int N );/* prototype fungsi */
main()
{
int N ;
N = 5;
printf(“%d faktorial = %ld\n”, N, Fak_Rekursif(N));
}
long int Fak_Rekursif ( int N )/* definisi fungsi */
{
long int F;
if ( N <= 1 ) return( 1 ) ;
else
{
F = N * Fak_Rekursif( N – 1);
return(F);
}
}
Output :
5 faktorial = 120
Penjelasan :
Ø Fungsi utama memanggil fungsi Fak_Rekursif dengan mengirimkan nilai 5 untuk parameter nyata N, yang maksudnya akan dilakukan perhitungan sebanyak 5 faktorial.
Ø Jika nilai dari N pertama kali yang diberikan oleh fungsi utama bernilai kurang atau sama dengan satu, maka hasil faktorial yang akan diberikan adalah bernilai 1.
Ø Jika N pertama kali yang diberikan oleh fungsi utama lebih besar dari 1,maka proses rekursi akan dilakukan. Misalnya nilai N adalah 5, maka proses rekursi yang pertama adalah :
F=5*Fak_Rekursif(4);
Proses ini akan memanggil kembali fungsi dirinya sendiri dengan mengirimkan nilai 4 sebagai nilai N yang baru. Karena nilai N masih lebih besar dari 1, maka proses rekursi yang kedua akan dilakukan dengan hasil adalah 4*Fak_Rekursif(3). Begitu selanjutnya sampai nilai N adalah 1. Untuk nilai N =1 ini, statemen return(1) akan mengembalikan proses ke bagian yang memanggilnya, yaitu statemen setelah statemen F=5*Fak_Rekursif(N-1). Statemen return(F) kemudian baru akan mengembalikan proses ke fungsi utama.


8.4. Percobaan Praktikum
8.4.1. Contoh Penggunaan Fungsi(program pemilihan proses) :
 


 


























 

Outputnya :
 

Kamis, 24 November 2011

sEkumpulan emo

Sekumpulan gambar - gambar emo, yang paling disukai banyak orang. semoga terlibur dengan gambar dibawah ini : 

                  
   
   
    
 



 

 

 




   

   

sElamat melihat emo, paling top.