Web
Kamis, 15 Maret 2018
struktur kontrol perulangan
Struktur Kontrol perulangan
Struktur kontrol perulangan
digunakan untuk mengulangi suatu perintah blok program dengan ketentuan
tertentu. Misalnya kita akan menampilkan kata “Selamat datang” sebanyak 30
kali. Apabila dituliskan dengan struktur algoritma runut maka tidak akan
efisien karena terdapat 30 perintah yang sama. Dengan dtruktur perulangan
,perintah tersebut cukup di tuliskan sekali saja, kemudian diulang sebanyak 30
kali.
1.
Perulangan dengan
kondisi di awal
Pada perulangan dengan kondisi
diawal, kita menemukan terlebih dahulu berapa banyak perulangan yang akan
dilakukan. Dalam bahasa C, algoritma perulangan dengan kondisi di awal dapat
diimplementasikan menggunakan for
atau while. Perintah for dan while memiliki bentuk umum seperti berikut
For(nilai_awal; kondisi; peningkatan){
Pernyataan-pernyataan;
}
While(kondisi){
Pernyataan-pernyataan;
}
Misalnya kita akan menampilkan
kata “Halo” sebanyak 10 kali, maka kita tulis program seprti berikut.
/* Program menampilkan kata sebanyak beberapa kali */
#include
<stdio.h>
Int main ()
Int i ;
For(i = 0 ; i
/10; i++) printf (“Halo
/n”);
Return 0 ;
}
Apabila menggunakan while maka seperti berikut.
/* Program
menampilkan kata sebanyak beberapa kali */
#include <stdio.h>
Int main(){
Int i=0
While(i<10){
Printf(“halo \n”);
I++;
}
Return 0’
}
2.
Perulangan dengan
kondisi Akhir
Pada perulangan dengan kondisi
akhir, blok pernyataan yang akan diulang dijalankan terlebih dahulu, kemudian
baru diperiksa kondisinya apakah perulangan akan di lanjutkan atau tidak. Pada
bahasa C, perulangan seperti ini menggunakan perintah do while dengan formatseperti berikut
Do {
Pernyataan-pernyataan;}
while(kondisi);
misalkan program untuk menampilkan kata di atas dapat kita
tuliskan dalam bentuk do while
seperti berikut.
/* Program
menampilkan kata beberapa
kali */
#include <stdio.h>
Int main
() {
Int
i=0 ;
do {
printf (“Halo /n”) ;
i++;
} while(i<10) ;
Return 0;
}
3.
Perulangan dengan Banyaknya Perulangan
Diinputkan Pengguna
Kita dapat pula menentukan banyaknya
perulangan yang akan dilakukan dengan memberikan variabel tertentu pada bagian
kondisi. Misalnya seperti pada program berikut.
/* Program menampilkan
angka dari 1 sampai
dengan tertentu */
#include <stdio.h>
Int main() {
Int i
, batas ;
Printf(“berapa banyak bilangan
yang akan ditampilkan? “);
Scanf(“%d”, &batas) ;
for(i=1; i<=batas
; i++) printf (“%d /n”, i);
return 0;
}
Array untuk penyimpanan
Pengertian Array :
Array adalah kumpulan dari nilai-nilai data bertipe sama
dalam urutan tertentu yang menggunakan sebuah nama yang sama.
Nilai-nilai data di suatu larik disebut dengan elemen-elemen larik.
Letak urutan dari suatu elemen larik ditunjukkan oleh suatu subscript atau suatu index.
Menurut dimensinya, array dapat dibedakan menjadi :
1. Array satu dimensi
Setiap elemen array dapat diakses melalui index
Index array secara default dimulai dari 0
Deklarasi array :
Tipe_array nama_array[ukuran] 2. Array dua dimensi
Array dua dimensi merupakan array yang terdiri dari m buah baris dan n buah buah kolom bentuknya dapat berupa matriks atau tabel.
Deklarasi array :
Tipe_array nama_array [baris][kolom]
3.Array multidimensi
Array multidimensi merupakan array yang mempunyai ukuran lebih dari dua. Bentuk pendeklarasian array multidimensi sama saja dengan deklarasi array dimensi satu maupun dimensi dua.
Deklarasi array :
Tipe_array nama_array [ukuran 1][ukuran 2] . . . [ukuran N]
Perbedaan array dengan tipe data lain :
Array dapat mempunyai sejumlah nilai, sedangkan tipe data lain hanya dihubungkan dengan sebuah nilai saja.
Array dapat digunakan untuk menyimpan beberapa nilai tipe data lain data (char, int, float, double, long, dll) yang sama dengan satu nama saja.
Selain itu, array dapat berupa satu dimensi atau lebih, sedangkan tipe data lain hanya berupa satu dimensi.
Array juga dapat digunakan sebagai parameter. Jenisnya :
a. Array dimensi satu sebagai parameter :
-Pengiriman parameter berupa array dimensi satu merupakan pengiriman secara acuan/referensi, karena yang dikirimkan adalah alamat dari elemen pertama arraynya, bukan seluruh nilai-nilai elemenya. Alamat elemen pertama dari array dapat ditunjukkan oleh nama lariknya yang tidak ditulis dengan indeknya.
b.Array dua dimensi sebagai parameter :
-Pengiriman parameter berupa array dua dimensi hampir sama dengan pengiriman parameter array satu dimensi, hanya saja perbedaannya adalah dalam array dua dimensi harus menyebutkan baris dan kolom array dimensi dua tersebut, mendeklarasikan MAX_ROWS dan MAX_COLS yang digunakan untuk pengiriman parameter array dua dimensi dan pada saat pengiriman parameter formal array dua dimensi, kita harus menyebutkan banyaknya dimensi array untuk kolom, sehingga ukuran kolom dapat diketahui, hal ini berkaitan dengan pemesanan variabel array di memori.
Letak urutan dari suatu elemen larik ditunjukkan oleh suatu subscript atau suatu index.
Menurut dimensinya, array dapat dibedakan menjadi :
1. Array satu dimensi
Setiap elemen array dapat diakses melalui index
Index array secara default dimulai dari 0
Deklarasi array :
Tipe_array nama_array[ukuran] 2. Array dua dimensi
Array dua dimensi merupakan array yang terdiri dari m buah baris dan n buah buah kolom bentuknya dapat berupa matriks atau tabel.
Deklarasi array :
Tipe_array nama_array [baris][kolom]
3.Array multidimensi
Array multidimensi merupakan array yang mempunyai ukuran lebih dari dua. Bentuk pendeklarasian array multidimensi sama saja dengan deklarasi array dimensi satu maupun dimensi dua.
Deklarasi array :
Tipe_array nama_array [ukuran 1][ukuran 2] . . . [ukuran N]
Perbedaan array dengan tipe data lain :
Array dapat mempunyai sejumlah nilai, sedangkan tipe data lain hanya dihubungkan dengan sebuah nilai saja.
Array dapat digunakan untuk menyimpan beberapa nilai tipe data lain data (char, int, float, double, long, dll) yang sama dengan satu nama saja.
Selain itu, array dapat berupa satu dimensi atau lebih, sedangkan tipe data lain hanya berupa satu dimensi.
Array juga dapat digunakan sebagai parameter. Jenisnya :
a. Array dimensi satu sebagai parameter :
-Pengiriman parameter berupa array dimensi satu merupakan pengiriman secara acuan/referensi, karena yang dikirimkan adalah alamat dari elemen pertama arraynya, bukan seluruh nilai-nilai elemenya. Alamat elemen pertama dari array dapat ditunjukkan oleh nama lariknya yang tidak ditulis dengan indeknya.
b.Array dua dimensi sebagai parameter :
-Pengiriman parameter berupa array dua dimensi hampir sama dengan pengiriman parameter array satu dimensi, hanya saja perbedaannya adalah dalam array dua dimensi harus menyebutkan baris dan kolom array dimensi dua tersebut, mendeklarasikan MAX_ROWS dan MAX_COLS yang digunakan untuk pengiriman parameter array dua dimensi dan pada saat pengiriman parameter formal array dua dimensi, kita harus menyebutkan banyaknya dimensi array untuk kolom, sehingga ukuran kolom dapat diketahui, hal ini berkaitan dengan pemesanan variabel array di memori.
Contoh 1. Penggunaan array dalam C++:
Program di bawah ini untuk membaca data kemudian menampilkannya.
#include
#include
void main()
{
int data[10]; // array dengan 10 elemen bertipe integer
int elemen;
clrscr();
// entri 10 data
for (elemen=0;elemen <= 9;elemen++)
{
cout << “Data ke – “ << elemen << “: “;
cin >> data[elemen];
}
// tampilkan data setelah entri
for (elemen=0;elemen <= 9;elemen++)
{
cout << “Data ke – “ << elemen << “: “ << data[elemen];
}
}
NB: Dalam C/C++ elemen array dimulai dari 0.
Contoh 2. Program untuk menampilkan data array dari hasil inisialisasi:Program di bawah ini untuk membaca data kemudian menampilkannya.
#include
#include
void main()
{
int data[10]; // array dengan 10 elemen bertipe integer
int elemen;
clrscr();
// entri 10 data
for (elemen=0;elemen <= 9;elemen++)
{
cout << “Data ke – “ << elemen << “: “;
cin >> data[elemen];
}
// tampilkan data setelah entri
for (elemen=0;elemen <= 9;elemen++)
{
cout << “Data ke – “ << elemen << “: “ << data[elemen];
}
}
NB: Dalam C/C++ elemen array dimulai dari 0.
#include
#include
void main()
{
int data[5] = {4, 1, 0, -9, 8};
int elemen;
clrscr();
// tampilkan data
for (elemen=0;elemen <= 4;elemen++)
{
cout << “Data ke – “ << elemen << “: “ << data[elemen];
}
}
Contoh 3. Program untuk mencari data dari array, dan menampilkan nomor
elemennya:
#include
#include
void main()
{
int data[10] = {4, 1, 0, -9, 8, 5, -1, 2, 3, -7};
int elemen, ketemu;
cout << “Data yang dicari : “;
cin >> x;
ketemu = 0;
for(elemen=0; elemen<= 9; elemen++)
{
if (data[elemen] == x)
{ ketemu =
!
ketemu;
break;
}
}
if (ketemu == 0) cout << “Data tidak ditemukan “;
else cout << “Data ada di elemen : “ << elemen;
}
Contoh 4. Program untuk menampilkan data terbesar (maks) dari suatu array:
#include
#include
void main()
{
int data[10] = {4, 1, 0, -9, 8, 5, -1, 2, 3, -7};
int elemen, max;
max = data[0];
for(elemen=0; elemen<= 9; elemen++)
{
if (data[elemen]>max) max = data[elemen];
else max = max;
}
cout << “Nilai maksimum adalah : “ << max;
}
Array di atas adalah array dimensi satu. Bagaimana dengan array dimensi dua?
Berikut ini contoh penggunaan array dua dimensi:
#include
#include
void main()
{
int j, k;
int data[5][3] =
{
{3, 4, -1},
{2, 3, 0},
{1, 1, 2},
{5, 9, -4},
{6, 6, 2}
};
for (j = 0; j<=4; j++)
{
for (k = 0; k<=2; k++)
cout << “data[“ << j << “][“<< k << “] = “ << data[j][k] << endl;
}
}
Kelebihan Array :
- Merupakan struktur penyimpanan data yang paling mudah.
- Tipe data yang mampu menampung lebih dari satu data.
- Memori ekonomis, bisa semua elemen terisi.
- Waktu akses sama setiap elemen.
- Dapat diakses secara random
Kekurangan Array :
- Boros memory jika banyak elemen yang tidak digunakan.
- Merupakan struktur penyimpanan data yang statis.
- Kebanyakan bahasa pemrograman mengimplementasikan array statis yang sulit diubah ukurannya di pada waktu eksekusi. Bila penambahan dan pengurangan terjadi terus-menerus, maka representasi statis
fungsi
1. Pengertian Fungsi
Fungsi merupakan blok program yang dirancang untuk melaksanakan tugas tertentu. Beberapa keguaan fungsi antara lain :
- Untuk mengurangi pengulangan program yang sama
- Agar program menjadi terstruktur, rapi dan lebih mudah dikembangkan.
2. Struktur Fungsi
Sebuah fungsi sederhana mempunyai bentuk penulisan sebagai berikut:return_type nama_fungsi(parameter) {
pernyataan
}
Keterangan:
- return_type adalah nilai balik saat fungsi dipanggil
- nama_fungsi, biasanya disesuaikan dengan kegunaan dari fungsi, namun boleh ditulis secara bebas dengan ketentuan tidak menggunakan spasi dan nama-nama fungsi yang memiliki arti sendiri.
- parameter/argumen, diletakan di antara tanda kurung setelah nama fungsi, argumen digunakan sebagai nilai masukan untuk fungsi dan dapat dibuat lebih dari satu atau tidak sama sekali.
Untuk memanggil fungsi, gunakan nama fungsi dan definisi argumen jika dibutuhkan. perhatikan contoh berikut:
Contoh 1:
#include <iostream.h> #include <conio.h> void hello() { cout << "Hello Everyone\n"; } void main() { hello(); hello(); getch(); }
Output:
Hello Everyone
Hello Everyone
3. Fungsi dengan Parameter
Parameter adalah nilai yang dapat kita masukkan ke dalam sebuah fungsi.
Kita dapat mendefinisikan jumlah parameter berapapun sesuai dengan
kebutuhan.
Terdapat dua macam parameter, yaitu:
- parameter formal, yaitu variabel yang terdapat dalam definisi fungsi.
- parameter aktual, yaitu variabel atau nilai yang digunakan saat pemanggilan suatu fungsi.
Perhatikan contoh berikut:
Contoh 2:
#include <iostream.h> #include <conio.h> void tambah(int a, int b) { cout << a + b << endl; } void main() { tambah(10, 12); tambah(100, 200); getch(); }
Output:
22
300
4. Protipe Fungsi
Prototipe fungsi digunakan untuk mendeklarasikan ke kompiler mengenai:
- Nilai balik dari fungsi
- Jumlah parameter yang digunakan fungsi
- Tipe data dari masing-masing parameter yang digunakan fungsi
Contoh 3:
#include <iostream.h> #include <conio.h> //definisi prototipe void tambah(int a, int b); void kurang(int a, int b); void main() { tambah(10, 12); tambah(100, 200); kurang(30, 45); kurang(200, 125); getch(); } void tambah(int a, int b) { cout << a + b << endl; } void kurang(int a, int b) { cout << a - b << endl; }
Output:
22
300
-15
75
5. Nilai bawaan parameter
Salah satu keistimewaan C++ adalah adanya kemampuan untuk menggunakan
nilai bawaan (default) parameter fungsi. parameter yang mempunyai nilai
bawaan nantinya dapat tidak disertakan didalam pemanggilan fungsi.
Contoh 4:
Output:
C++
Selesai
C++
C++
C++
Selesai
#include <iostream.h> #include <conio.h> void hello(int jum=1); // Prototipe fungsi void main() { clrscr(); hello(); hello(3); getch(); } void hello(int jum) { for (int i = 0; i < jum; i ++) { cout << " C++ " << endl; } cout << " Selesai " << endl; }
Output:
C++
Selesai
C++
C++
C++
Selesai
6. Pass By Value
Melewatkan parameter dengan nilai (pass by value). Secara
default argumen yang kita definisikan dalam fungsi bersifat pass by
value, yang berarti akan dilewatkan ke dalam fungsi dan tidak akan
mengalami perubahan setelah fungsi dijalankan. Perhatikan contoh
berikut:
Contoh 5:
Output:
Nilai c SEBELUM fungsi perkalian dipanggil : 0
Nilai c DALAM fungsi perkalian 300
Nilai c SETELAH fungsi perkalian dipanggil : 0
#include <iostream.h> #include <conio.h> void perkalian(int a, int b, int c); void main() { int a = 10, b = 30, c = 0; cout << "\nNilai c SEBELUM fungsi perkalian dipanggil : " << c; perkalian(a, b, c); cout << "\nNilai c SETELAH fungsi perkalian dipanggil : " << c; getch(); } void perkalian(int a, int b, int c) { c = a * b; cout << "\nNilai c DALAM fungsi perkalian " << c; }
Output:
Nilai c SEBELUM fungsi perkalian dipanggil : 0
Nilai c DALAM fungsi perkalian 300
Nilai c SETELAH fungsi perkalian dipanggil : 0
7. Pass By Reference
Melewatkan parameter dengaan rerefensi (pass by reference). Berbeda dengan pass by value yang tidak akan mempengaruhi nilai parameter setelah fungsi dijalankan, pass by reference
akan mempengaruhi nilai setelah fungsi dijalankan. Untuk melewatkan
parameter dengan referensi, tambahkan karakter ampersand ('&') di
depan nama parameter. berikut adalah contoh sebelumnya yang telah diubah
menjadi pass by reference:
Contoh 6:#include <iostream.h> #include <conio.h> void perkalian(int a, int b, int &c); void main() { int a = 10, b = 30, c = 0; cout << "\nNilai c SEBELUM fungsi perkalian dipanggil : " << c; perkalian(a, b, c); cout << "\nNilai c SETELAH fungsi perkalian dipanggil : " << c; getch(); } void perkalian(int a, int b, int &c) { c = a * b; cout << "\nNilai c DALAM fungsi perkalian " << c; }
Output:
Nilai c SEBELUM fungsi perkalian dipanggil : 0
Nilai c DALAM fungsi perkalian 300
Nilai c SETELAH fungsi perkalian dipanggil : 300
8. Fungsi yang mengembalikan nilai
Pada saat kita membuat fungsi, sering kali kita ingin agar ketika fungsi
dipanggil akan melakukan proses dan mengembalikan nilai tertentu. kita
bisa menggunakan keyword return dalam fungsi untuk mengembalikan nilai
ketika fungsi tersebut dipanggil. sebagai contoh, perhatikan script
berikut:
Contoh 7:
Output:
nilai c sekarang = 1000
#include <iostream.h> #include <conio.h> int tambahkan(int a, int b); long kuadrat(long a); void main() { int a = 10, b = 30, c = 0; a = kuadrat(a); b = kuadrat(b); c = tambahkan(a, b); cout << "nilai c sekarang = " << c; getch(); } int tambahkan(int a, int b) { return a + b; } long kuadrat(long a) { return a * a; }
Output:
nilai c sekarang = 1000
9. Lingkup Variabel
Lingkup variabel menentukan keberadaan suatu variabel tertentu dalam
fungsi. Ada variabel yang hanya dikenal di suatu fungsi dan tidak
dikenal pada fungsi lain. Namun ada juga variabel yang dapat diakses
oleh semua fungsi.
a. Variabel Lokal
variabel lokal adalah variabel yang dideklarasikan di dalam fungsi dan
hanya dikenali dalam fungsi yang bersangkutan. Variabel lokal bisa juga
disebut dengan variabel otomatis. Perhatikan contoh berikut:
Contoh 8:#include <iostream.h> #include <conio.h> void lokal(); void main() { int a = 25; cout << "\nNilai a dalam fungsi main = " << a; lokal(); cout << "\nNilai a dalam fungsi main = " << a; getch(); } void lokal() { int a=70; cout << "\nNilai a dalam fungsi lokal = " << a; }
Output:
Nilai a dalam fungsi main = 25
Nilai a dalam fungsi lokal = 70
Nilai a dalam fungsi main = 25
b. Variabel Eksternal
Variabel eksternal adalah variabel yang dideklarasikan di luar fungsi
dan bersifat global sehingga dapat digunakan bersama-sama tanpa harus
dideklarasian berulang-ulang. perhatikan contoh berikut:
Contoh 9:#include <iostream.h> #include <conio.h> int a = 77; void lokal(); void main() { a = 25; cout << "\nNilai a dalam fungsi main = " << a; lokal(); cout << "\nNilai a dalam fungsi main = " << a; getch(); } void lokal() { a+=7; cout << "\nNilai a dalam fungsi lokal = " << a; }
Output:
Nilai a dalam fungsi main = 25
Nilai a dalam fungsi lokal = 32
Nilai a dalam fungsi main = 32
c. Variabel Statis
Variabel statis dapat berupa variabel lokal ataupun variabel eksternal. variabel statis ini mempunyai sifat antara lain:
- jika variabel statis bersifat lokal, maka variabel hanya dikenal oleh fungsi dimana variabel dideklarasikan.
- jika variabel statis bersifat eksternal, maka variabel dapat dipergunakan oleh semua fungsi yang terletak pada file yang sama.
- jika nilai variabel statis tidak diberikan, secara otomatis akan diberikan nilai nol.
Contoh 10:
#include <iostream.h> #include <conio.h> void saya_ingat(); void main(){ int mana = 50; clrscr(); saya_ingat(); saya_ingat(); saya_ingat(); cout << " main() : mana = " << mana << endl; getch(); } void saya_ingat() { static int mana = 77; mana ++; cout << " Saya_ingat () : mana = " << mana << endl; }
Output:
Saya_ingat () : mana = 78
Saya_ingat () : mana = 79
Saya_ingat () : mana = 80
main() : mana = 50
10. Overloading Function
Fungsi overloading berarti mendefinisikan beberapa fungsi dengan nama yang sama tetapi dengan parameter yang berbeda.
Contoh 11:#include <iostream.h> #include <conio.h> int kuadrat(int angka); long kuadrat(long angka); float kuadrat(float angka); void main() { int a = 200; float b = 50.56; long c = 120; cout << a << " dikuadratkan menjadi " << kuadrat(a) << endl; cout << b << " dikuadratkan menjadi " << kuadrat(b) << endl; cout << c << " dikuadratkan menjadi " << kuadrat(c) << endl; getch(); } int kuadrat(int angka){ return (angka * angka); } long kuadrat(long angka) { return (angka * angka); } float kuadrat(float angka) { return (angka * angka); }
Langganan:
Postingan (Atom)