PERCOBAAN I DASAR PEMROGRAMAN BAHASA C
A. TUJUAN : Mahasiswa memahami struktur dasar program C B. PERALATAN : Komputer Software
: 1 set : Software IDE C/C++
C. TEORI DASAR : Pada umumnya, setiap program C memiliki bentuk dasar sebagai berikut : # prepocessor directive tipedata main() { // Batang Tubuh Program Utama }
Preprosesor merupakan bagian dari program C yang selalu diawali dengan tanda ‘#’ (pound) dan menghasilkan file yang akan dilewatkan kedalam kompilator. Preprosesor tersebut adalah : #include #define #ifdef Dan masih banyak lagi yang lainnya. Fungsi main() merupakan bagian utama dari program C digunakan sebagai implementasi akhir dari sebuah program atau bisa dikatakan sebagai eksekutor utama. Fungsi ini bertipe data dan biasanya tipe data yang digunakan adalah void. Tipe void digunakan agar suatu fungsi tidak memiliki nilai balik. Kemudian ada tanda penulisan braces “{ }“ yang digunakan untuk mengapit bodi program. Terdapat pula baris komentar yang selalu diawali dengan tanda double slash “//” atau yang berada diantara tanda “/*” dan “*/”. Baris komentar ini tidak diikutsertakan didalam proses kompilasi program, karena hanya digunakan sebagai pemberi keterangan program. Berikut adalah contoh sebuah program C.
//Program mencetak pesan #include
void main() { cout<<”Selamat belajar C, semoga meng-asyikkan “; }
Bahasa C memiliki beberapa eleman dasar antara lain : a. Karakter Mengacu dari sistem stardard kode internasional ANSI, karakter yang dikenal didalam bahasa C adalah karakter abjad/huruf, angka, dan simbol-simbol khusus. b. Keyword Seperti bahasa program lainnya,bahasa C memiliki keyword atau dalam istilah lainnya adalah reserverd word. Keyword adalah suatu kata yang memiliki makna dan fungsi tertentu. Hampir semua keyword didalam C dituliskan dalam dalam format huruf kecil. c. Identifier Merupakan pengenal baru yang digunakan secara bebas untuk penamaan variabel, konstanta, fungsi, kelas, template, dan namespace. d. Tipe data Merupakan pengelompokan data yang digunakan untuk merepresentasikan jenis sebuah nilai yang terdapat pada program. Sebuah tipe data dikelompokkan berdasarkan nilai jangkauan, penggunaan sejumlah memori (RAM), dan faktor ketelitian. Bahasa C mengelompokkan 1. Tipe data dasar Berikut adalah tipe data dasar Tipe data
Nama
Memory (bit)
Bilangan bulat
int
16 atau 32
Bilangan Riil
float double
Karakter Enumerasi
long double char enum
32 64 80 8 16
Jangkauan nilai -32768 s/d 32767 Atau -2147483648 s/d 2147483647 1.2E-38 s/d 3.4E+38 2.3E-308 s/d 1.7E+308 3.4E-4932 s/d 1.1E+4932 -128 s/d 127 -32768 s/d 32767
Presisi (digit) -
6 15 19 -
2. Tipe data pemodif Terdiri dari long, short, signed, unsigned. Keempat tipe tersebut digunakan untuk memodifikasi tipe data dasar yang ada. Seperti contoh berikut ini :
3. Operator Bit OPERATOR Geser kiri Geser kanan Operator AND
OPERATOR
SIMBOL
Penugasan
=
Penugasan Hasil bagi Penugasan penjumlahan Penugasan geser kiri Penugasan operasi AND Penugasan operasi OR
/= += <<= &=
OPERATOR Penugasan perkalian Penugasan sisa bagi Penugasan pengurangan Penugasan geser kanan Penugasan operasi XOR
SIMBOL *= %= -=
OPERATOR Operator AND Operator OR Operator NOT
SIMBOL && || !
5. Operator relasi OPERATOR kurang dari lebih dari sama dengan
SIMBOL < > ==
OPERATOR tidak sama dengan kurang sama dengan lebih sama dengan
SIMBOL != <= >=
6. Operator pointer OPERATOR Mengambil data alamat memori Mengambil data dari alamat memori
f.
SIMBOL & *
Punctuator Punctuator adalah simbol-simbol yang berkenaan sebagai tanda baca pada struktur penulisan bahasa C. Punctuator tersebut adalah sebagai berikut : [] () {} #
Bracket Parentheses Braces Pound Sign
, : ;
Comma Colon Semicolon
… * =
Ellipsis Asterisk Equal Sign
g. Variable dan Konstanta Variabel dan konstanta identik dengan penamaan identifier. Identifier untuk variabel digunakan nilai yang dinamis, sedangkan konstanta untuk nilai tetapan. Sebagai contoh :
>>= ^=
|= SIMBOL + * /
SIMBOL | ^ ~
int angka=10; //identifier angka digunakan sebagai konstanta char ch; // indentifier ch digunakan sebagai variabel
2. Operator Arithmatika OPERATOR Penjumlahan Pengurangan Perkalian Pembagian
OPERATOR Operator OR Operator XOR Operator komplemen
4. Operator logika
void main() { /*variabel angka bertipe int dengan jangkauan antara 2147483648 s/d 2147483647*/ long int angka; /*variabel nilai bertipe int dengan jangkauan antara 0 s/d 65,535*/ unsigned int nilai; }
3. Tipe data terstruktur Terdiri dari tipe array dan struktur 4. Tipe data pointer Yaitu tipe yang digunakan untuk membuat varibel memory yang dinamis, bisa digunakan untuk menyimpan alamat memori ataupun data. e. Operator Operator berkaitan erat dengan kata operasi. Operator ditandai dengan sebuah atau beberapa simbol dan kata. Bahasa C memiliki beragam jenis operator dengan kelompok operator BINARY sebagai berikut : 1. Operator assigment
SIMBOL << >> &
OPERATOR Sisa bagi Penambahan dengan nilai Pengurangan dengan nilai
SIMBOL % ++ --
OPERASI I/O DALAM C/C++ Bahasa C mengenalkan banyak ragam jenis operasi I/O (input/output). Hal ini dipengaruhi oleh file header yang digunakan. Misalkan pada bahasa C, diperkenalkan operasi I/O printf dan scanf, dimana perintah I/O ini berada didalam file header stdio.h. Lalu kemudian bahasa C++ mengembangkannya pada file header lainnya yaitu iostream.h,
dimana didalamnya diperkenalkan standart I/O lainnya, salah satunya adalah cout dan cin. Perhatikan contoh berikut ini : #include <stdio.h> #include void main() { int no_absen; char nama[15]; printf(“hallo, selamat datang di lab pemrograman komputer\n”); cout<<”selamat menikmati pemrograman C”<<endl; printf(“Masukkan nama anda : “); scanf(“%s”,&nama); cout<<”Masukkan no absen anda : “; cin<<no_absen; }
dari contoh diatas, file header yang digunakan adalah stdio.h dan iostream.h. D. LANGKAH-LANGKAH PERCOBAAN 1. Menyalakan komputer 2. Mengaktifkan software IDE C/C++ ( gunakan TURBO C++). 3. Tuliskan listing program dari program yang diminta oleh asisten 4. Jalankan program anda dan perhatikan apakah sudah sesuai dengan output yang diinginkan 5. Lakukan langkah 4, hingga program dinyatakan benar oleh asisten 6. Dari langkah 1 hingga 4, tuliskan laporan mengenai tugas yang anda lakukan berikut kesalahan yang terjadi saat anda melakukan prosedur 1 hingga 4. E. TUGAS PENDAHULUAN 1. Buatlah program untuk menampilkan identitas anda seperti contoh berikut ini. LABORATORIUM SIMULASI NIM : 02.2003.190088 NAMA : SUDIRO FAKULTAS : TEKNOLOGI INDUSTRI JURUSAN : TEKNIK ELEKTRO
2. Kembangkan tugas no. 1 dengan ditambahkan proses I/O dan ditampilkan seperti contoh berikut ini. LABORATORIUM SIMULASI INSTITUT ADHI TAMA SURABAYA NIM NAMA FAKULTAS JURUSAN
: : : :
IDENTITAS ANDA : NIM NAMA
PERCOBAAN II PERNYATAAN KENDALI – PENGUJIAN
Jadi, dari bentuk dasar sebelumnya bisa dikembangkan lagi menjadi bentuk diagram alir dibawah ini.
A. TUJUAN : Mahasiswa memahami proses kendali uji suatu keadaan B. PERALATAN : Komputer Software
: 1 set : Software IDE C/C++
C. TEORI DASAR : Pada suatu pemecahan masalah, biasanya sering ditemui kondisi melakukan perbandingan untuk mendapatkan suatu keputusan. Hal ini juga terjadi pada teknik pemrograman. Bahasa C memiliki beberapa pernyataan kendali yang digunakan untuk menguji suatu kondisi. Pernyataan kendali penguji tersebut adalah sebagai berikut : 1. Pernyataan kendali if Sintaks penulisan : if (ekspresi){pernyataan_1;} Secara diagram alir, proses if digambarkan sebagai berikut :
ungkapan
(Y )
P e rn y a ta a n B e n a r
(T )
Namun jika jumlah kondisi lebih dari 2 keadaan maka penyusunannya bisa dituliskan seperti sintaks berikut ini : if (ekspresi_1){pernyataan _1;} else if (ekspresi_2){pernyataan _2;} … … else if (ekspresi_N){pernyataan _N;} else {pernyataan_lain;} Pada kondisi tertentu, terkadang terdapat kasus berantai, dimana didalam proses seleksi terdapat proses seleksi juga. Hal ini dapat dilakukan oleh if. Kasus ini disebut oleh if sebagai nested if (if bersarang) dan digambarkan seperti gambar berikut :
If (ekspresi) Pengembangan dari bentuk dasar diatas apabila ada pernyataan lainnya adalah sebagai berikut : if (ekspresi){pernyataan_benar;} else {pernyataan_salah;}
If (ekspresi){pernyataan;} Perhatikan contoh berikut ini :
#include int main() { float nilai; cout<<”Masukkan nilai anda : “; cin>>nilai; if (nilai<70) {cout<<”Maaf, nilai anda kurang dari standar lulus”;} else {cout<<”Selamat anda lulus kompetensi”;} }
Contoh diatas dinyatakan bahwa ada 2 pernyataan untuk menerangkan suatu kondisi dari variabel nilai. 2. Pernyataan kendali switch Selain if, ada juga alternatif pemilih kondisi yaitu menggunakan pernyataan kendali switch. Sedikit berbeda dengan if, switch digunakan untuk menguji nilai konstanta atau tetapan, sedangkan if bisa bervariasi. Bentuk umum switch adalah berikut : switch (ungkapan) { case nilai_1: pernyataan_1;break; case nilai_2: pernyataan_2;break; … default pernyataan_lain; }
Seperti halnya if, switch juga bisa dituliskan secara bersarang (nested switch). swicth (ungkapan_1) { case nilai_1: { switch (ungkapan_2) { case nilai_11: pernyataan_11;break; case nilai_22: pernyataan_22;break; … default pernyataan_lain; } break; } case nilai_2: pernyataan_2; break; … default pernyataan_lain; }
Perhatikan contoh penggunaan switch pada sebuah kasus berikut ini : Pada suatu toko terdapat beberapa jenis produk susu dan beberapa ukuran seperti tampak pada tabel harga berikut : Produk Susu Ukuran 400gr (k) Ukuran 900gr(b) NUTRILON Rp. 77.000 Rp. 145.000 PROMIL Rp. 77.600 Rp. 150.000 SIMILAC Rp. 68.350 Rp. 135.500 Buatlah program untuk menampilkan harga disesuaikan dengan nama produk dan ukurannya. Maka pemecahan kasus diatas dapat diselesaikan dengan contoh listing program C sebagai berikut : #include int main() { int j_susu char uk_susu; cout<<”Masukan jenis produk susu : “; cin>>j_susu; cout<<”Masukan ukuran produk susu : “; cin>>uk_susu; switch (j_susu) { case 1: { cout<<”Susu NUTRILON ”; switch(uk_susu){ case ‘k’: cout<<”Harganya Rp. 77.000”;break; case ‘b’: cout<<”Harganya Rp. 145.000”;break; default cout<<”maaf ukuran tidak ada”; }break; } case 2: { cout<<”Susu PROMIL ”; switch(uk_susu){ case ‘k’: cout<<”Harganya Rp. 77.600”;break; case ‘b’: cout<<”Harganya Rp. 150.000”;break; default cout<<”maaf ukuran tidak ada”; }break; } case 3: { cout<<”Susu SIMILAC ”; switch(uk_susu){ case ‘k’: cout<<”Harganya Rp. 68.350”;break; case ‘b’: cout<<”Harganya Rp. 135.500”;break; default cout<<”maaf ukuran tidak ada”; }break; } default cout<<”Maaf, jenis produk susu anda tidak ada…” } }
Listing program diatas merupakan contoh penggunaan switch pada kasus nested switch. Jika dijalankan program diatas adalah sebagai berikut : Masukan jenis produk susu : 1 Masukan ukuran produk susu : k Susu NUTRILON Harganya Rp. 77.000
D. LANGKAH-LANGKAH PERCOBAAN 1. Menyalakan komputer 2. Mengaktifkan software IDE C/C++ ( gunakan TURBO C++). 3. Tuliskan listing program dari program yang diminta oleh asisten 4. Jalankan program anda dan perhatikan apakah sudah sesuai dengan output yang diinginkan 5. Lakukan langkah 4, hingga program dinyatakan benar oleh asisten 6. Dari langkah 1 hingga 4, tuliskan laporan mengenai tugas yang anda lakukan berikut kesalahan yang terjadi saat anda melakukan prosedur 1 hingga 4. E. TUGAS PENDAHULUAN 1. Buatlah program yang digunakan untuk mengetahui status sebuah bilangan, apakah termasuk bilangan genap atau ganjil! 2. Buatlah program menentukan nilai huruf sebuah materi kuliah seorang mahasiswa dengan input berupa nilai angka dan ketentuan sebagai berikut : Nilai Nilai Angka Huruf 8.00 s/d 10.00 A 7.00 s/d 7.99 B 6.00 s/d 6.99 C 4.00 s/d 5.99 D 0.00 s/d 3.99 E
PERCOBAAN III PERNYATAAN KENDALI – LOOPING
A. TUJUAN : Mahasiswa memahami proses kendali perulangan (looping) pada suatu keadaan B. PERALATAN : Komputer Software
: 1 set : Software IDE C/C++
C. TEORI DASAR : Looping adalah pengulangan perintah-perintah sampai mencapai keadaan tertentu. Struktur perulangan terdiri atas dua bagian : 1. Kondisi pengulangan yaitu ekspresi boolean yang harus dipenuhi untuk melaksanakan perulangan 2. Isi atau badan perulangan yaitu satu atau lebih pernyataan (aksi) yang akan diulang. Pada dasarnya sebuah proses looping berkaitan erat dengan kendali uji. Dimana kendali uji digunakan untuk menghentikan segala aktifitas berulang jika memenuhi suatu persyaratan tertentu. Pada umumnya proses looping bisa digambarkan pada diagram alir berikut ini :
INISIALISASI
PERUBAHAN
KONDISI
Y PERNYATAAN
T
Bahasa C memiliki beberapa perintah atau notasi dalam struktur pengulangan antara lain : 1. Pernyataan for Pernyataan for digunakan untuk menghasilkan pengulangan (looping) beberapa kali tanpa penggunaan kondisi apapun. Pada umumnya looping yang dilakukan oleh for telah diketahui batas awal, syarat looping dan perubahannya. Selama kondisi terpenuhi, maka pernyataan akan terus dieksekusi. Bentuk Umumnya : for (inisialisasi ; kondisi ; perubahan) { Statement; }
contoh sebagai berikut : #include void main() { int i; for (i=1; i<100; i++) cout<<<” ”<<endl; }
Penjelasan bagian-bagian for : Bagian inisialisasi wajib diberikan sebagai batas awal sebuah perulangan. Bagian kondisi bersifat optional, yaitu jika diberikan maka proses looping akan berlangsung selama syarat memenuhi kondisi. Namun jika tidak, maka proses looping akan dilakukan tanpa batas. Bagian perubahan juga bersifat optional, yaitu jika diberikan maka proses looping akan berlangsung seiring dengan proses perubahan variabel peubah. Sebaliknya proses looping akan berlangsung dengan isi variabel peubah konstan/tetap. Contoh lain : #include void main() { int i; for (i=1; ; i++) cout<<<” ”<<endl; }
Program diatas akan menampilkan bilangan yang banyaknya tak terhingga sehingga dapat membuat komputer anda berhenti bekerja. Contoh diatas juga merupakan prinsip membuat bom program ( contohnya : bom mail ) Pernyataan for juga mengenal pernyataan bersarang, yaitu for didalam for, lainnya atau yang biasa disebut nested for 2. Pernyataan while Pernyataan while merupakan salah satu pernyataan yang berguna untuk memproses suatu pernyataan atau beberapa pernyataan beberapa kali. Pernyataan while memungkinkan statemen-statemen yang ada didalamnya tidak diakukan sama sekali. Bentuk Umumnya : while (kondisi) { Pernyataan ; }
Contoh : #include void main() { int i; i=0; while (i<10) { cout<<”C++; i++; } }
Program diatas digunakan untuk mengulangan tulisan “C++” sebanyak 10 kali 3. Pernyataan do..while Pernyataan do…while mirip seperti pernyataan while, hanya saja pada do…while, pernyataan yang terdapat didalamnya minimal akan sekali dieksekusi. Bentuk Umumnya : do { pernyatan ; } while(kondisi);
Contoh : #include void main() { int i; i=0; do { cout<<”C++; i++; } while (i<10); }
4. Pernyataan continue dan break Pernyataan break akan selalu terlihat digunakan bila menggunakan pernyataan switch. Pernyataan ini juga digunakan dalam loop. Bila pernyataan ini dieksekusi, maka akan mengakhiri loop dan akan menghentikan iterasi pada saat tersebut. Pernyataan continue digunakan untuk pergi ke bagian awal dari blok loop untuk memulai iterasi berikutnya. Contoh : #include void main() { int i; i=0; for ( i=0; i<10; i++) { if (i==4) continue; cout<<”Bilangan “<<<endl; if ( i==6 ) break; } }
Dari program diatas, dapat dilihat perulangan dari suatu bilangan sebanyak 10 kali. Tetapi, pada perulangan i=4, ada perintah continue. Dengan perintah ini, maka program langsung meloncat ke loop berikutnya dan ketika sampai perulangan i = 6, ada perintah break. Otomatis program akan berhenti dan tidak sampai ke i=10. Dan program akan mencetak bilangan 0, bilangan 1, bilangan 2, bilangan 3, bilangan 5, bilangan 6.
5. Pernyataan goto Pernyataan goto, diperlukan untuk melakukan suatu lompatan ke suatu pernyataan berlabel yang ditandai dengan tanda “ : “. Bentuk Umumnya : goto bawah; pernyataan1; pernyataan2; bawah : pernyataan 3;
Pada contoh diatas, pada saat goto ditemukan maka program akan melompat pernyataan berlabel bawah dan melakukan pernyataan 3. Contoh : #include void main() { cout<<”tes go to “ <<endl; goto selesai; cout<<”Hai, kok saya gak disapa “ <<endl; selesai : cout<<”Selesai, deh… “ <<endl; }
Outputnya : Test go to Selesai, deh…
D. LANGKAH-LANGKAH PERCOBAAN 1. Menyalakan komputer 2. Mengaktifkan software IDE C/C++ ( gunakan TURBO C++). 3. Tuliskan listing program dari program yang diminta oleh asisten 4. Jalankan program anda dan perhatikan apakah sudah sesuai dengan output yang diinginkan 5. Lakukan langkah 4, hingga program dinyatakan benar oleh asisten 6. Dari langkah 1 hingga 4, tuliskan laporan mengenai tugas yang anda lakukan berikut kesalahan yang terjadi saat anda melakukan prosedur 1 hingga 4.
E. TUGAS PENDAHULUAN 1. Buatlah program untuk mencetak deret 10 9 8 7 6 5 4 3 2 1 2. Buatlah program untuk mencetak (gunakan perulangan while atau for) **** *** ** * 3. Buatlah program yang menampilkan 5 buah bilangan, yaitu mulai dari bilangan ke 5 sampai bilangan ke 1 dengan nilai awal bilangan 8. Tampilan bilangan tersebut adalah menurun dan contohnya adalah : bilangan ke 5, i=3 (diperoleh dari 85) dan seterusnya sampai bilangan 1, i=7 (diperoleh dari 81=7).
PERCOBAAN IV FUNGSI
A. TUJUAN : Mahasiswa memahami pemrograman secara modular (tersubprogram) B. PERALATAN : Komputer Software
: 1 set : Software IDE C/C++
C. TEORI DASAR : Secara harfiah, struktur penulisan didalam bahasa C disusun secara modular ( ter-subprogram). Bahkan pada program utamanya juga berbentuk modul. Secara umum bentuk fungsi didalam C adalah sebagai berikut : Tipe_data Nama_fungsi(Daftar_parameter) { Tubuh_fungsi; }
Setiap fungsi harus didefinisikan tipe datanya, hal ini dikarenakan bahwa fungsi memiliki return value (nilai balik) dan setiap nilai balik harus diketahui tipe datanya. Bahasa C memiliki built-in function (fungsi internal), namun fungsi dapat juga diciptakan sendiri oleh pemrogram. Setiap fungsi yang diciptakan harus memiliki nama yang unik atau berbeda antara satu dengan yang lain. Pada bagian lain dari fungsi, terdapat daftar parameter. Parameter adalah nama-nama peubah yang dideklarasikan pada bagian header fungsi. Daftar parameter dipisahkan oleh tanda koma, dan setiap parameter harus bertipe data. Terkadang fungsi tidak memiliki daftar parameter, namun merupakan keharusan menempatkan tanda parentheses ‘()’ pada fungsi tersebut. DEKLARASI FUNGSI Untuk mendeklarasikan suatu fungsi ada 2 cara, antara lain : 1. Secara langsung Yaitu dengan menempatkan fungsi diatas fungsi main(), seperti contoh berikut ini :
int kali( int angka_1, int angka_2) { return angka_1*angka_2 } void main(); { cout << “Hasil kali antara 2 dan 3 adalah ”<
2. Secara tak langsung Yaitu dengan menempatkan nama prototype fungsi diatas fungsi main() dan implementasi prototype fungsi dibawahnya Seperti contoh berikut ini : int kali( int angka_1, int angka_2); //Prototype fungsi void main(); { cout << “Hasil kali antara 2 dan 3 adalah ”<
PARAMETER Seperti yang telah dijelaskan sebelumnya, bahwa parameter merupakan sebuah peubah. Dari penggunaannya, parameter bisa dilewatkan kedalam sebuah fungsi dengan 2 cara, antara lain : 1. Call by value Adalah suatu cara melewatkan sebuah nilai pada parameter. Perhatikan contoh sebelumnya yaitu pada fungsi kali saat dijalankan di program utama. 2. Call by reference Adalah suatu cara melewatkan alamat sebuah variabel pada sebuah parameter. Untuk jenis parameter ini, perlu ditambahkan operator pointer yaitu & atau * didepannya. Perhatikan contoh berikut ini
int kali( int &angka_1, int angka_2); //Prototype fungsi int jumlah( int *angka_1, int angka_2); //Prototype fungsi void main(); { int a, b; a=10; b=10 cout << “nilai awal a= ”<
REKURSIF Rekusif adalah pemanggilan oleh dirinya sendiri. Oleh karena fungsi bisa menghasilkan nilai balik, maka fungsi bisa juga bisa memanggil dirinya sendiri. Contohnya adalah sebagai berikut : int faktorial( int angka_1); //Prototype fungsi void main(); { cout<
D. LANGKAH-LANGKAH PERCOBAAN 1. Menyalakan komputer 2. Mengaktifkan software IDE C/C++ ( gunakan TURBO C++).
3. Tuliskan listing program dari program yang diminta oleh asisten 4. Jalankan program anda dan perhatikan apakah sudah sesuai dengan output yang diinginkan 5. Lakukan langkah 4, hingga program dinyatakan benar oleh asisten 6. Dari langkah 1 hingga 4, tuliskan laporan mengenai tugas yang anda lakukan berikut kesalahan yang terjadi saat anda melakukan prosedur 1 hingga 4. E. TUGAS PENDAHULUAN 1. Buatlah fungsi untuk menghitung luas suatu bangun? 2. Buatlah fungsi untuk menghitung hasil pangkat bilangan misalkan 2 pangkat 3 hasilnya adalah 8.
PERCOBAAN V ARRAY
A. TUJUAN : Mahasiswa memahami penggunaan tipe data array (larik). B. PERALATAN : Komputer Software
: 1 set : Software IDE C/C++
C. TEORI DASAR : Array atau larik merupakan sekumpulan data yang mempunyai nama dan tipe yang sama. Array sering disebut juga sebagai variabel berindeks. Nilai suatu data dalam array ditentukan oleh nama dan indeks. Array banyak digunakan pada operasi yang melibatkan indeks seperti pada statistik dan matriks. Tipe data array dapat berupa array satu dimensi, dua dimensi, tiga dimensi atau banyak dimensi. Secara umum bentuk array didalam C adalah sebagai berikut : Tipe_data Nama_array[ukuran];
Untuk bentuk array lebih dari 1 dimensi, digambarkan bentuknya seperti berikut : Tipe_data Nama_array[ukuran_1] [ukuran_2] …[ukuran_n];
Contoh : char nama[10];
Array diatas menjelaskan bahwa array nama merupakan array berdimensi satu dengan ukuran 10 kali jumlah memori tipe char. Posisi awal hitung array dimulai dari posisi 0 bukannya 1, sehingga jika nama dideklarasikan seperti contoh diatas, maka berarti bahwa posisi awal array nama adalah 0 dan yang terakhir adalah 9 (bukanlah 10). REPRESENTASI ARRAY Untuk bisa menggunakan tipe array didalam program maka perlu mendeklarasikan seperti contoh sebelumnya. Sedangkan untuk
pengisian nilai pada array dilakukan secara satu persatu bersesuaian dengan nomor indeksnya misalkan : double nilai[5]; nilai[0]=7.5; nilai[1]=10; nilai[2]=5.5; nilai[3]=6.75; nilai[4]=8.25;
Atau dengan mendeklaraksikannya sebagai konstanta array, seperti contoh berikut : double nilai[5]={7.5,10,5.5,6.75,8.25};
Khusus untuk tipe char sebagai string bisa langsung dituliskan semua karakter didalam tanda petik dua seperti contoh berikut : char nama[15]=”Marlena”;
D. LANGKAH-LANGKAH PERCOBAAN 1. Menyalakan komputer 2. Mengaktifkan software IDE C/C++ ( gunakan TURBO C++). 3. Tuliskan listing program dari program yang diminta oleh asisten 4. Jalankan program anda dan perhatikan apakah sudah sesuai dengan output yang diinginkan 5. Lakukan langkah 4, hingga program dinyatakan benar oleh asisten 6. Dari langkah 1 hingga 4, tuliskan laporan mengenai tugas yang anda lakukan berikut kesalahan yang terjadi saat anda melakukan prosedur 1 hingga 4. E. TUGAS PENDAHULUAN 1. Buatlah program yang menghitung jumlah elemen dalam suatu array (larik) dengan array (larik) 1 dimensi {1,3,5,4,7,2,99,16,45,67,89,45} 2. Buatlah program perkalian 2 buah matrik berordo m x n
PERCOBAAN VI POINTER
A. TUJUAN : Mahasiswa memahami penggunaan tipe data pointer. B. PERALATAN : Komputer Software
: 1 set : Software IDE C/C++
C. TEORI DASAR : Pointer adalah sebuah variabel yang menyimpan alamat memori. Alamat ini merupakan lokasi dari obyek lain (dalam hal ini variabel lain ) didalam memori. Sebagai contoh, jika suatu variabel berisi alamat variabel lain, variabel pertama dikatakan menunjuk variabel kedua. Hal ini digambarkan sebagai berikut : Alamat memori
Variabel dalam memori
1000
1003
1001 1002 1003 1004 1005
Tipe_data * nama_variabel
m=&count;
q=*m;
Maka variabel q akan berisi nilai kandungan yang sama dengan variabel count. Berikut adalah contoh yang selengkapnya : #include void main(); { int count,q; int * m; count=100; m=&count; q=*m; cout<<”isi variabel count adalah “<
Maka hasilnya adalah :
Untuk membuat variabel menjadi variabel bertipe pointer, maka perlu dideklarasikan. Bentuk umum dari deklarasi tersebut adalah sebagai berikut :
Tipe data yang digunakan adalah yang ada atau beberapa type lain misalnya). OPERATOR POINTER Ada dua pointer khusus yakni * operator pointer yang digunakan memori. Sebagai contoh :
Variabel m akan berisi alamat memori dari variabel count. Sedangkan operator * digunakan untuk disertakan pada saat mendeklarasikan suatu variabel bertipe pointer dan merupakan komplemen dari operator & saat proses (digunakan untuk mendapatkan data yang dikandung oleh alamat memori) . Dapat dicontohkan dari contoh diatas, anggap saja variabel count berada dilokasi memori 0x2000 dan mempunyai nilai kandungan didalam sebesar 100. Maka setelah proses diatas, variabel m akan berisi alamat count yaitu 0x2000. Lalu melalui variabel yang lain (misalkan q) mendapatkan proses sebagai berikut :
berasal dari tipe data dasar yang berlaku (tipe bentukan
dan &. Operator & adalah untuk mendapatkan alamat
isi variabel count adalah 100 isi variabel m adalah 0x2000 isi variabel q adalah 100
OPERASI PADA POINTER Operasi aritmatika pada pointer hanya ada 2, yaitu penambahan dan pengurangan. Baik proses penambahan ataupun pengurangan, akan menyebabkan variabel pointer akan berubah bertambah atau berkurang sebanyak n kali ukuran memori tipe data dasar yang digunakan. Seperti contoh diatas, bahwa variabel m adalah variabel pointer bertipe int (int berukuran 2 byte), maka apabila ada proses penambahan atau pengurangan akan berubah menjadi 2 kali angka peubah, misalkan : m++;
Maka misalkan m beralamatkan memori 0x2000 setelah proses diatas akan beralamatkan memori 0x2002. Begitu juga pada proses pengurangan. POINTER & ARRAY Terdapat hubungan dekat antara pointer dan array. Perhatikan contoh berikut ini : char p2,str[80], *p1; p1=str;
Disini, p1 diatur untuk beralamat pertama dari elemen array str, yaitu str[0]. Untuk mengakses elemen ke-5, anda dapat menuliskan : p2=str[4] atau p2=*(p1+4)
Kedua cara diatas akan menunjukkan alamat element yang kelima. Dalam aplikasinya bisa anda lihat contoh berikut : #include void main() { int a; char str[80]={"Hallo masdul"}, *p1; p1=str; a=0; while (*p1){p1++;a++;} cout<<"panjang teks str : "<
Baris program digunakan untuk menampilkan panjang sebuah kalimat pada suatu variabel. D. LANGKAH-LANGKAH PERCOBAAN 1. Menyalakan komputer 2. Mengaktifkan software IDE C/C++ ( gunakan TURBO C++). 3. Tuliskan listing program dari program yang diminta oleh asisten 4. Jalankan program anda dan perhatikan apakah sudah sesuai dengan output yang diinginkan 5. Lakukan langkah 4, hingga program dinyatakan benar oleh asisten 6. Dari langkah 1 hingga 4, tuliskan laporan mengenai tugas yang anda lakukan berikut kesalahan yang terjadi saat anda melakukan prosedur 1 hingga 4.
E. TUGAS PENDAHULUAN 1. Buatlah program untuk merubah semua huruf pada kalimat menjadi huruf besar seluruhnya dengan pointer. 2. Buatlah program untuk membalik kata atau kalimat dengan pointer.