• Tidak ada hasil yang ditemukan

Algoritma dan Struktur Data I 2014

N/A
N/A
Protected

Academic year: 2021

Membagikan "Algoritma dan Struktur Data I 2014"

Copied!
14
0
0

Teks penuh

(1)

Struktur Kendali Dalam C++ Page 1 STRUKTUR PERULANGAN (LOOPING)

Merupakan fasilitas bahasa C++ yang mampu melakukan proses pengulangan karena itu komputer dapat mengerjakan proses berulang-ulang dengan cepat dan tepat.

Konstruksi pengulangan dalam C++ meliputi: - Perintah for

- Perintah do-while - Perintah while

For Loop

C++ memiliki dua jenis pengulangan for-fixed dan conditional. Syntax:

for ( <initialisai variable pengulangan>; <kondisi>; <penambahan/pengurangan variable> ) { <statement> ... <statement> } Contoh :

for (i=0; i<10; i=i+1) cout << i << “\n”; Contoh Program: #include <iostream.h> #include <conio.h> main() { double sum=0; double sumx=0.0; int first,last,temp;

cout << "Enter the first integer : "; cin >> first; cout << "Enter the second integer : "; cin >> last; if (first>last) { temp = first; first = last; last = temp; }

for (int i=first; i<=last; i++) {

(2)

Struktur Kendali Dalam C++ Page 2

sumx += (double) i; }

cout << "Sum of integer from "<< first << " to " << last << " = " << sumx << "\n";

cout << "Avarage value = " << sumx/sum << endl; getch();

}

Hasil Program :

Infinite Loop

C++ mengijinkan pembentukan infinite loop / open loop, dengan menghilangkan ketiga parameter yang ada pada for loop.

Contoh program :

// nama file :infinite-loop-1.cpp #include <iostream.h>

#include <conio.h>

#include <ctype.h> // toupper main() { char ch; double x,y; for (;;) {

cout << "\nEnter a number = "; cin >> x; if (x!=0)

{ y=1/x;

cout << "1/"<<x<<" = " << y << "\n"; cout <<"More calculation? (Y/N)"; cin >> ch; ch=toupper(ch); if (ch!='Y') break; } else

(3)

Struktur Kendali Dalam C++ Page 3

cout << "Error : cannot accept 0\n"; }

getch(); }

Hasil Program :

Do-While Loop

Loop ini dikenal dengan nama conditional loop, dimana kondisi pengulangan diperiksa pada akhir blok loop. Syntax : do { <sequence of statements> } while (condition); Contoh : int i = 2; do { cout << i << “ ^2 = “ << i * i << “\n”; } while ( ++i < 11 ); Contoh Program :

// nama file :infinite-loop-1.cpp #include <iostream.h> #include <conio.h> #include <math.h> main() { char ch; double x,y; do {

cout << "Enter a number = "; cin >> x; if (x!=0)

(4)

Struktur Kendali Dalam C++ Page 4

{

y=sqrt(x);

cout << "sqrt("<<x<<") = " << y << "\n"; }

cout <<"More calculation? (Y/N)"; cin >> ch;

cout << "\n";

} while (ch=='Y' || ch=='y'); }

Hasil Program :

While Loop

Loop ini juga merupakan conditional loop, dimana kondisi pengulangan diuji pada awal blok pengulangan.

Syntax :

while (condition)

statement | { sequence of statement } Contoh : int i = 2; while ( i<11 ) { cout << i << “ ^2 = “ << i * i << “\n”; i++; } Contoh Program :

// Nama file program : while-1.cpp #include <iostream.h> #include <conio.h> main() { double sum=0; double sumx=0.0;

(5)

Struktur Kendali Dalam C++ Page 5

int first,last,temp,i;

cout << "Enter the first integer : "; cin >> first; cout << "Enter the second integer : "; cin >> last; if (first>last) { temp = first; first = last; last = temp; } i=first; while (i<=last) { sum++; sumx += (double) i; i++; }

cout << "Sum of integer from "<< first << " to " << last << " = " << sumx << "\n";

cout << "Avarage value = " << sumx/sum << endl; getch();

}

Hasil Program :

Perulangan Dalam Perulangan (Nested Loop) Didalam perulangan bisa terdapat perulangan lagi. Contoh :

1. Buatlah program C++ untuk melakukan perulangan dalam perulangan dengan tampilan sebagai berikut :

1 : 1 2 3 2 : 1 2 3 3 : 1 2 3 Listing Program : // Nested Loop (while) #include <iostream.h>

(6)

Struktur Kendali Dalam C++ Page 6 #include <conio.h> main() { int a,b; a=1; while (a<=3) { cout << a << " : "; b=1; while( b<=3 ) { cout << b << " "; b++; } cout << endl; a++; } getch(); }

2. Buatlah program C++ untuk menampilkan hasil sebagai berikut : * ** *** **** ***** Listing Program : // Nested Loop (while) #include <iostream.h> #include <conio.h> main() { int a,b; a=1; while (a<=5) { b=1; while( b<=a ) { cout << '*'; b++; } cout << endl; a++;

(7)

Struktur Kendali Dalam C++ Page 7

} getch(); }

3. Buatlah program C++ untuk menampilkan hasil sebagai berikut : +++++ ++++ +++ ++ + Listing Program : // Nested Loop (while) #include <iostream.h> #include <conio.h> main() { int a,b; a=5; while (a>=1) { b=1; while( b<=a ) { cout << '+'; b++; } cout << endl; a--; } getch(); }

4. Buatlah program C++ untuk menampilkan hasil sebagai berikut : * ** *** **** ***** **** *** ** * Listing Program : // Nested Loop (while) #include <iostream.h>

(8)

Struktur Kendali Dalam C++ Page 8 #include <conio.h> main() { int a,b; a=1; while (a<=5) { b=1; while( b<=a ) { cout << '*'; b++; } cout << endl; a++; } a=5; while (a>=1) { b=1; while( b<=a ) { cout << '*'; b++; } cout << endl; a--; } getch(); }

5. Buatlah program C++ untuk melakukan pengolahan data nilai mahasiswa sebanyak 40 mahasiswa dan setiap mahasiswa dapat mengambil 7 matakuliah. Data mahasiswa terdiri dari NPM, nama mahasiswa, kelas dan data matakuliah terdiri dari kode matakuliah, nama matakuliah, sks dan nilai akhir. Keterangan ditentukan dari nilai akhir dimana jika nilai akhir>=55, maka keterangan=”Lulus” jika tidak keterangan=”Gagal”. Adapun format tampilannya adalah sebagai berikut :

Pengolahan Data Nilai Mahasiswa Data Mahasiswa-1 NPM : Nama : Kelas : Data Matakuliah-1 Kode Matakuliah :

(9)

Struktur Kendali Dalam C++ Page 9 Nama Matakuliah : SKS : Nilai Akhir : Keterangan : . dst Data matakuliah-7 . dst Pembahasan :

Variabel yang digunakan :

1. a = untuk perulangan data mahasiswa

2. npm = npm

3. nm = nama mahasiswa

4. kls = kelas

5. b = untuk perulangan data matakuliah

6. kmk = kode matakuliah 7. nmk = nama matakuliah 8. sks = sks 9. na = nilai akhir 10. ket = keterangan Input 1. npm 2. nm 3. kls 4. kmk 5. nmk 6. sks 7. na

Proses: Set Awal :

1. a=a+1 1. a=1

2. b=b+1 2. b=1 (1. awal, 2. setiap pergantian mhs)

3. Jika na>=55, maka ket=”Lulus” Jika na<55, maka ket=”Gagal” Output :

1. ket

Listing Program : // Nested Loop (while)

#include <iostream.h> // cout, cin #include <conio.h> // getch, clrscr #include <stdio.h> // gets

(10)

Struktur Kendali Dalam C++ Page 10

main() {

int a; // perulangan data mahasiswa char npm[10];

char nm[20]; char kls[3];

int b; // perulangan data matakuliah char kmk[8]; char nmk[20]; int sks; float na; char ket[6]; a=1; while (a<=45) { clrscr();

cout << "Pengolahan Data Nilai Mahasiswa\n\n"; cout << "Data Mahasiswa-" << a << endl;

cout << "NPM = "; gets(npm); cout << "Nama = "; gets(nm); cout << "Kelas = "; gets(kls); b=1;

while (b<=7) {

cout << "\nData Matakuliah-" << b << endl; cout << "Kode Matakuliah = "; gets(kmk); cout << "Nama Matakuliah = "; gets(nmk); cout << "SKS = "; cin>>sks; cout << "Nilai Angka = "; cin>>na; if (na>=55)

strcpy(ket,"Lulus"); else

strcpy(ket,"Gagal");

cout << "Keterangan = " << ket << endl; b=b+1;

} // akhir perulangan data matakuliah getch();

a=a+1;

} // akhir perulangan data mahsiswa } // akhir main/program utama

6. Buatlah logika program dan program C++ untuk melakukan pengolahan data nilai beberapa orang mahasiswa. Setiap mahasiswa dapat mengambil beberapa matakuliah. Data mahasiswa terdiri dari NPM, nama mahasiswa, kelas dan data matakuliah terdiri dari kode matakuliah, nama matakuliah, sks dan nilai akhir. Adapun format tampilannya adalah sebagai berikut :

(11)

Struktur Kendali Dalam C++ Page 11

Pengolahan Data Nilai Mahasiswa Data Mahasiswa-1 NPM : Nama : Kelas : Data Matakuliah-1 Kode Matakuliah : Nama Matakuliah : SKS : Nilai Akhir : Keterangan :

Ada data matakuliah lainnya [Y/T] : ... dst

Total SKS :

Jumlah matakuliah yang lulus : Jumlah matakuliah yang gagal : Ada data mahasiswa lainnya [Y/T] : .... dst

Ketentuan proses :

- Perulangan input data mahasiswa dilakukan selama nilai ada data mahasiswa lainnya dijawab ‘Y’.

- Perulangan input data matakuliah dilakukan selama nilai ada data matakuliah lainnya dijawab ‘Y’.

- Keterangan ditentukan dari nilai akhir :

- Jika nilai akhir >=55, maka keterangan=”Lulus” - Jika tidak (nilai akhir <55), maka keterangan=”Gagal”

-- Setelah perulangan input data matakuliah dijawab T maka tampilkan :  Total SKS setiap mahasiswa

 Jumlah matakuliah yang lulus  Jumlah matakuliah yang gagal Pembahasan :

Variabel yang digunakan :

1. a = data mahasiswa ke-

2. npm = npm

3. nm = nama mahasiswa

4. kls = kelas

5. b = data matakuliah ke-

6. kmk = kode matakuliah

7. nmk = nama matakuliah

(12)

Struktur Kendali Dalam C++ Page 12

9. na = nilai akhir 10. ket = keterangan 11. tsks = total sks

12. jml = jumlah matakuliah yang lulus 13. jmg = jumlah matakuliah yang gagal

14. admhs = perulangan ada data mahasiswa lainnya 15. admk = perulangan ada data matakuliah lainnya Input 1. npm 2. nm 3. kls 4. kmk 5. nmk 6. sks 7. na 8. admhs 9. admk

Proses: Set Awal :

1. a=a+1 1. a=1

2. b=b+1 2. b=1

3. tsks=tsks+sks 3. tsks=0

4. Jika na>=55, maka: 4. jml=0

- ket=”Lulus” 5. jmg=0

- jml=jml+1 6. admhs=’Y’n

Jika na<55, maka : 7. admk=’Y’

- ket=”Gagal” - jmg=jmg+1 Output : 1. ket 2. tsks 3. jml 4. jmg Listing Program : // Nested Loop (while)

#include <iostream.h> // cout, cin #include <conio.h> // getch, clrscr #include <stdio.h> // gets

#include <string.h> // strcpy main()

{

int a; // data mahasiswa ke- char npm[10];

char nm[20]; char kls[3];

(13)

Struktur Kendali Dalam C++ Page 13

char admhs; // perulangan data mahasiswa int b; // data matakuliah ke-

char kmk[8]; char nmk[20]; int sks; float na; char ket[6];

char admk; // perulangan data matakuliah int tsks,jml,jmg;

admhs='Y'; a=1;

while (admhs=='Y'||admhs==’y’) {

clrscr();

cout << "Pengolahan Data Nilai Mahasiswa\n\n"; cout << "Data Mahasiswa-" << a << endl;

cout << "NPM = "; gets(npm); cout << "Nama = "; gets(nm); cout << "Kelas = "; gets(kls); admk='Y'; b=1;

while (admk=='Y'||admk==’y’) {

tsks=0; jml=0; jmg=0;

cout << "\nData Matakuliah-" << b << endl; cout << "Kode Matakuliah = "; gets(kmk); cout << "Nama Matakuliah = "; gets(nmk); cout << "SKS = "; cin>>sks; cout << "Nilai Akhir = "; cin>>na; if (na>=55) { strcpy(ket,"Lulus"); jml=jml+1; } else { strcpy(ket,"Gagal"); jmg=jmg+1; } tsks=tsks+sks;

cout << "Keterangan = " << ket << endl; b=b+1;

cout << "Ada Data matakuliah lainnya[Y/y/T/t] = "; cin >> admk;

} // akhir perulangan data matakuliah cout << "\nTotal SKS = " << tsks << endl;

cout << "Jumlah matakuliah yang Lulus = "<< jml << endl; cout << "Jumlah matakuliah yang Gagal = "<< jmg << endl; a=a+1;

(14)

Struktur Kendali Dalam C++ Page 14

cout << "Ada Data mahasiswa lainnya[Y/y/T/t] = "; cin >> admhs;

} // akhir perulangan data mahsiswa } // akhir main/program utama

Referensi

Dokumen terkait

Frisian Flag Indonesia juga memproduksi susu kental manis dengan varian rasa cokelat, maka dari itu salah satu bahan baku yang diperlukan dalam pengolahannya adalah

Dengan ini diberitahukan bahwa setelah diadakan penelitian oleh Kelompok Kerja Konstruksi II (dua) ULP Kabupaten Lampung Tengah menurut ketentuan – ketentuan yang berlaku,

Bermain akan menumbuhkan anak untuk mengeksplorasi, melatih pertumbuhan fisik serta imajinasi, serta memberikan peluang yang luas untuk Elis Reni Komariah, 2013 PERSEPSI ORANG

2. Meningkatkan keterampilan mengganti pembalut pada anak tunagrahita yang sebelumnya belum mampu secara mandiri mengganti pembalut, dan tidak maksimal dalam menjaga

Berdasarkan nilai koefisien regresi sebelum krisis yang lebih besar dari nilai koefisien regresi sesudah krisis, maka pengaruh Nilai Tukar Riil terhadap Indeks Harga Saham Gabungan

Hasil penelitian ini berbeda dengan hasil yang terukur di Kecamatan Padang Barat, Kota Padang yang belum terindikasi intrusi air laut karena secara umum hasil

Grafik ini merupakan sifat profil aliran yang melewati ambang berdasarkan tiga karakteristik aliran; loncat, peralihan, dan tenggelam yang didapat dengan cara mengatur

Menurut Morrison (2008: 156), metode pembelajaran HighScope berdasarkan teori Piaget, konstruktivisme, Dewey dan Vygotsky, yaitu merupakan pendekatan pembelajaran yang