Tugas C++ - Dian Aditya - 2009/2010
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Tugas C++ - Dian Aditya - 2009/2010

  • 2,137 views
Uploaded on

 

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,137
On Slideshare
2,137
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
33
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Dian Wahyu Aditya3 RPAKasus 1Menampilkan deret angka dengan urutan genap – genap – ganjil – ganjil.Jika user menginputkan nilai 10 maka program akan menulis deret bilangan sepertiberikut : 0 2 1 3 4 6 5 7 8 10Pemecahan MasalahSource : #include <iostream> using namespace std; void jalankan(int input) { int index = 0; for(int i=0;i<input;i++) { index++; switch (index) { case 1 : printf("%d ", i); break; case 2 : printf("%d ", i+1); break; case 3 : printf("%d ", i-1); break; case 4 : printf("%d ", i); index = 0; break; } } } int main() { int input = 0; do { cout << "Input : "; scanf("%d", &input); jalankan(input); cout << "n"; } while (input > 0); return 0; }
  • 2. Penjelasan program : Pertama pada baris function main() terdapat sebuah perulangan yang akanmeminta inputan selama inputan lebih dari (>) 0 (nol). Jika inputan memenuhi syarat,maka program akan melempar inputan ke procedure jalankan(int input). Maka sekaranginputan yang dimasukkan oleh user telah disimpan dalam variable input yang ada dalamprocedure jalankan. Selanjutnya skema penulisan deret bilangan adalah sebagaiberikut : • Terdapat variable index bertipe integer yang bernilai 1. • Selanjutnya dilakukan perulangan, yang menampilkan deret bilangan sebanyak inputan. • Selama i kurang dari (<) inputan maka nilai i akan terus ditambah 1, begitu pula dengan nilai index, akan tetapi yang berbeda adalah nilai maksimum index hanya sampai 4, jika nilai index = 4 maka nilai index akan dikembalikan ke nilai awal yaitu satu, sehingga skema perulanganya jika i dan index ditulis adalah sebagai berikut : i 0 1 2 3 4 5 6 7 8 9 index 1 2 3 4 1 2 3 4 1 2 • Untuk menghasilkan deret bilangan genap – genap – ganjil – ganjil maka skema yang dijalankan disini adalah ketika i berada pada index tertentu maka yang nilai yang dicetak adalah sebagai berikut : o Jika index = 1 maka cetak nilai i. o Jika index = 2 maka cetak nilai i+1. o Jika index = 3 maka cetak nilai i-1. o Jika index = 4 maka cetak nilai i kemudian kembalikan nilai index menjadi 1.
  • 3. Dan hasil outputnya adalah sebagai berikut : i 0 1 2 3 4 5 6 7 8 9 +1 -1 +1 -1 +1 Hasil 0 2 1 3 4 6 5 7 8 10 index 1 2 3 4 1 2 3 4 1 2Screen Capture :Kasus 2Mengkonversi bilangan desimal mulai dari nol hingga inputan menjadi bilangan biner.Kemudian menghitung total angka “nol” yang ada. Contoh jika user menginputkan nilai5 maka proses program adalah sebagai berikut : Desimal Biner Jumlah angka nol 0 0 1 1 1 0 2 10 1 3 11 0 4 100 2 5 101 1 Total 5
  • 4. Pemecahan MasalahSource : #include <iostream> using namespace std; int run(int input){ int hasil = 0; while(input > 1) { if((input % 2) == 0) hasil++; input = input / 2; } return hasil; } int mainx(int input) { int hasil = 0; while(input > 0){ hasil += run(input); cout << input << " : " << run(input) << "n"; input--; } cout << "0 : 1" << "n"; return hasil+1; } int main() { int input = 0; do { cout << "Input : "; scanf("%d", &input); cout << "Hasil : " << mainx(input) << "n"; } while (input > 0); return 0; }Penjelasan program : Dalam baris kode di atas terdapat beberapa function antara lain : • Function run(int input), yaitu function yang mengembalikan nilai integer berupa jumlah karakter ‘0’ dari inputan yang terlebih dahulu dikonversi menjadi bilangan biner. • Function mainx(int input), merupakan procedure yang akan menghitung total karakter ‘0’ dari nol (0) sampai inputan yang tentunya dikonversikan oleh function run.
  • 5. • Function main() merupakan function utama yang akan menjalankan procedure mainx selama inputan lebih dari nol (0). Berikut cara kerja dari masing-masing function :• Function run o Ada variable hasil bertipe integer yang akan menampung jumlah karakter ‘0’ sementara sebelum function mengembalikan nilai. o Selama inputan > 1 maka program akan terus melakukan perulangan. o Jika sisa hasil bagi dari inputan = 0 maka hasil = hasil+1. o Nilai inputan = inputan / 2. Tipe data integer selalu bernilai bulat, contoh: 5/2=2, sehingga semua bilangan jika dibagi 2 secara terus menerus akan berhenti pada nilai 1 yang artinya menghentikan perulangan. o Setelah perulangan berhenti function akan mengembalikan nilai hasil yang berupa jumlah karakter ‘0’.• Function mainx o Function ini juga memiliki variable hasil untuk menyimpan sementara total dari angka nol dari deret nilai 0 hingga n inputan. o Perulangan akan dilakukan mulai dari i yang bernilai nol hingga n inputan. o Selama perulangan, function akan memasukkan nilai i ke dalam function run, kemudian menambahkan variable hasil dengan nilai yang dikembalikan oleh function run. o Setelah perulangan selesai function akan mengembalikan nilai berupa total karakter ‘0’ dari deret bilangan 0 hingga n inputan.• Function main Function ini bertugas meminta inputan selama user menginputkan nilai > 0. Kemudian inputan user tersebut di kirim ke function mainx dan hasil return dari mainx akan dicetak sebagai total karakter ’0’ dari deret bilangan desimal 0 hingga n inputan yang dikonversi menjadi bilangan biner.
  • 6. Screen Capture :Kasus 3Menentukan inputan string kata apakah merupakan Palyndrome atau bukan. Contohkata-kata palyndrome : “katak”, “kasur rusak”.Pemecahan MasalahSource : #include <iostream> #include <string> using namespace std; string check(string kata) { int len = kata.length(); int setengah = len/2; int loop = 0; bool auth = true; while(loop < setengah) { if(kata[loop] != kata[len-1]){ auth = false; break; } loop++; len--; } if(auth) { return "Palyndrome"; } else { return "Bukan Palyndrome"; }
  • 7. } int main() { string a = ""; cout << "Input : "; getline(cin, a); cout << check(a) << "n"; return 0; }Penjelasan program : Program dimulai dari function main(). Pada function ini program akan memintainputan berupa string. Setelah inputan didapatkan inputan akan dikirim ke functioncheck(string kata) dan kemudian program akan mencetak nilai string yangdikembalikan yaitu “Palyndrome” atau “Bukan Palyndrome”. Sebenarnya seluruhproses pemeriksaan kata terdapat pada function check. Berikut cara kerjanya : • Dalam function ini terdapat beberapa variable antara lain : o Integer len, berisi panjang karakter dari string inputan. o Integer setengah, bernilai len/2. o Integer loop, bernilai 0; o Boolean auth, bernilai benar (true). • Proses pengecekan, selama nilai loop < setengah maka lakukan proses berikut : o Jika karakter inputan yang ke loop ≠ karakter yang ke len-1 (karakter yang terakhir) maka auth = false, hentikan perulangan secara paksa karena sudah dapat dipastikan bahwa kata tersebut bukan merupakan palyndrome. o loop = loop + 1. o len = len – 1. • Setelah perulangan selesai sekarang pengecekan dilakukan pada boolean auth. Jika perulangan diatas tidak dihentikan secara paksa (menggunakan break) maka auth akan tetap bernilai default yaitu true yang artinya function akan mengembalikan kata “Palyndrome”. Begitu pula sebaliknya, jika auth bernilai false maka function akan mengembalikan kata “Bukan Palyndrome”.
  • 8. Cara pemeriksaan di atas jika digambarkan secara sederhana adalah sebagaiberikut : Input : “kasur rusak” Len : 11 Setenga : 5 hloop 0 1 2 3 4 5 k a s u r r u s a k 5 6 7 8 9 10 len-1 k a s u r r u s a k
  • 9. Screen Capture :