Monday, December 26, 2016

Bab 13. Soal & Penyelesaian C++


ALIRAN





Soal & Penyelesaian
1.       Demonstrasikanlah bagaimana cin menangani pelbagai tipe data yang berbeda.
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// cinTipeData.cpp
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
    int intKu;
    long longKu;
    double doubleKu;
    float floatKu;
    unsigned int unsignedKu;

    cout << "Int: ";
    cin >> intKu;
    cout << "Long: ";
    cin >> longKu;

    cout << "Double: ";
    cin >> doubleKu;
    cout << "Float: ";
    cin >> floatKu;

    cout << "Unsigned: ";
    cin >> unsignedKu;

    cout << "\n\nInt:\t" << intKu << endl;
    cout << "Long:\t" << longKu << endl;
    cout << "Double:\t" << doubleKu << endl;
    cout << "Float:\t" << floatKu << endl;
    cout << "Unsigned:\t" << unsignedKu << endl;

    getch();
    return 0;
}

Int: 23
Long: 10000
Double: 987654321
Float: 3.33
Unsigned: 25

Int:    23
Long:   10000
Double: 9.87654e+008
Float:  3.33
Unsigned:       25

2.       Demonstrasikanlah permasalahan string menggunakan cin. Tunjukkan bahwa bila diberikan spasi, cin mengasumsikan bahwa masukan untuk parameter telah cukup.
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// cinMasalahString.cpp
#include <iostream>
#include <conio.h>

int main()
{
    char NamaAnda[50];
    std::cout << "Nama depan Anda: ";
    std::cin >> NamaAnda;

    std::cout << "Berikut adalah: " << NamaAnda << std::endl;

    std::cout << "Keseluruhan nama Anda: ";
    std::cin >> NamaAnda;

    std::cout << "Berikut adalah: " << NamaAnda << std::endl;
   
    getch();
    return 0;
}

Nama depan Anda: Rismon
Berikut adalah: Rismon
Keseluruhan nama Anda: Rismon Sianipar
Berikut adalah: Rismon

3.       Demonstrasikanlah penggunaan fungsi get() tanpa parameter.
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// getTanpaParameter.cpp
#include <iostream>
#include <conio.h>

int main()
{
    char ch;

    while ( (ch = std::cin.get()) != EOF)
    {
        std::cout << "ch: " << ch << std::endl;
    }
    std::cout << "\nSelesai!\n";

    getch();
    return 0;
}

Teknik Informatika
ch: T
ch: e
ch: k
ch: n
ch: i
ch: k
ch:
ch: I
ch: n
ch: f
ch: o
ch: r
ch: m
ch: a
ch: t
ch: i
ch: k
ch: a
ch:

^Z (Ctrl+z)

Selesai!

4.       Demonstrasikanlah penggunaan fungsi get() dengan parameter.
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// getDenganParameter.cpp
#include <iostream>
#include <conio.h>

int main()
{
    char a, b, c;

    std::cout << "Masukkan tiga huruf: ";

    std::cin.get(a).get(b).get(c);

    std::cout << "a: " << a << "\nb: ";
    std::cout << b << "\nc: " << c << std::endl;

    getch();
    return 0;
}

Masukkan tiga huruf: dua
a: d
b: u
c: a

5.       Demonstrasikanlah penggunaan fungsi get() dengan array karakter.
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// getDenganArayKarakter.cpp
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
    char stringSatu[256];
    char stringDua[256];

    cout << "Masukkan string satu: ";
    cin.get(stringSatu,256);
    cout << "stringSatu: " << stringSatu << endl;

    cout << "Masukkan string dua: ";
    cin >> stringDua;
    cout << "stringDua: " << stringDua << endl;

    getch();
    return 0;
}

Masukkan string satu: Sekarang waktunya bersatu
stringSatu: Sekarang waktunya bersatu
Masukkan string dua: Setelah pilpres 2014 yang melelahkan
stringDua: Setelah

6.       Demonstrasikanlah penggunaan fungsi getline().
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// getlineGunakan.cpp
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
    char stringSatu[256];
    char stringDua[256];
    char stringTiga[256];

    cout << "Masukkan string satu: ";
    cin.getline(stringSatu, 256);
    cout << "stringSatu: " << stringSatu << endl;

    cout << "Masukkan string dua: ";
    cin.getline(stringDua, 256);
    cout << "stringDua: " << stringDua << endl;

    cout << "Masukkan string tiga: ";
    cin.getline(stringTiga, 256);
    cout << "stringTiga: " << stringTiga << endl;

    getch();
    return 0;
}

Masukkan string satu: Satu Nusa
stringSatu: Satu Nusa
Masukkan string dua: Satu Bangsa
stringDua: Satu Bangsa
Masukkan string tiga: Satu Bahasa Kita
stringTiga: Satu Bahasa Kita

7.       Demonstrasikanlah penggunaan fungsi ignore().
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// ignoreGunakan.cpp
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
    char stringSatu[255];
    char stringDua[255];

    cout << "Masukkan string satu: ";
    cin.get(stringSatu,255);
    cout << "String satu: " << stringSatu << endl;

    cout << "Masukkan string dua: ";
    cin.getline(stringDua,255);
    cout << "String dua: " << stringDua << endl;

    cout << "\n\nSekarang coba lagi...\n";

    cout << "Masukkan string satu: ";
    cin.get(stringSatu,255);
    cout << "String satu: " << stringSatu<< endl;

    cin.ignore(255,'\n');

    cout << "Masukkan string dua: ";
    cin.getline(stringDua,255);
    cout << "String dua: " << stringDua<< endl;

    getch();
    return 0;
}

Masukkan string satu:Teknik Informatika
String satu: Teknik Informatika
Masukkan string dua: String dua:

Sekarang coba lagi...
Masukkan string satu: Teknik Informatika
String satu: Teknik Informatika
Masukkan string dua:

8.       Demonstrasikanlah penggunaan fungsi peek() dan putback().
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// peakDanPutback.cpp
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
    char ch;
    cout << "Masukkan sebuah frase: ";

    while ( cin.get(ch) != 0 )
    {
        if (ch == '!')
            cin.putback('$');
        else
            cout << ch;

        while (cin.peek() == '#')
            cin.ignore(1,'#');
    }

    getch();
    return 0;
}

Masukkan sebuah frase: asjasbka$$$asansal###assanla#salsnal!!jksak!
asjasbka$$$asansalassanlasalsnal$$jksak$

9.       Demonstrasikanlah penggunaan fungsi write().
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// writeGunakan.cpp
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;

int main()
{
    char Satu[] = "Satu Nusa Satu Bangsa";

    int panjangPenuh = strlen(Satu);
    int terlaluPendek = panjangPenuh -4;
    int terlaluPanjang = panjangPenuh + 6;

    cout.write(Satu,panjangPenuh) << endl;
    cout.write(Satu,terlaluPendek) << endl;
    cout.write(Satu,terlaluPanjang) << endl;

    getch();
    return 0;
}

Satu Nusa Satu Bangsa
Satu Nusa Satu Ba
Satu Nusa Satu Bangsa ╠╠╠╠╠

10.    Demonstrasikanlah penggunaan fungsi cout.width().
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// coutWidth.cpp
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
    cout << "Mulai >";
    cout.width(25);
    cout << 123 << "< Akhir\n";

    cout << "Mulai >";
    cout.width(25);
    cout << 123<< "< Selanjutnya >";
    cout << 456 << "< Akhir\n";

    cout << "Mulai >";
    cout.width(4);
    cout << 123456 << "< Akhir\n";

    getch();
    return 0;
}

Mulai >                      123< Akhir
Mulai >                      123< Selanjutnya >456< Akhir
Mulai >123456< Akhir

11.    Demonstrasikanlah penggunaan fungsi cout.fill().
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// coutFill.cpp
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
    cout << "Awal >";
    cout.width(25);
    cout << 123 << "< Akhir\n";

    cout << "Awal >";
    cout.width(25);
    cout.fill('*');
    cout << 123 << "< Akhir\n";

    cout << "Awal >";
    cout.width(25);
    cout << 456 << "< Akhir\n";

    getch();
    return 0;
}

Awal >                      123< Akhir
Awal >**********************123< Akhir
Awal >**********************456< Akhir

12.    Demonstrasikanlah penggunaan fungsi cout.setf().
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// coutSetf.cpp
#include <iostream>
#include <iomanip>
#include <conio.h>
using namespace std;

int main()
{
    const int angka = 185;
    cout << "Angka adalah " << angka << endl;

    cout << "Angka adalah " << hex << angka << endl;

    cout.setf(ios::showbase);
    cout << "Angka adalah " << hex << angka << endl;

    cout << "Angka adalah " ;
    cout.width(10);
    cout << hex << angka << endl;

    cout << "Angka adalah " ;
    cout.width(10);
    cout.setf(ios::left);
    cout << hex << angka << endl;

    cout << "Angka adalah " ;
    cout.width(10);
    cout.setf(ios::internal);
    cout << hex << angka << endl;

    cout << "Angka adalah " << setw(10) << hex << angka << endl;

    getch();  
    return 0;
}

Angka adalah 185
Angka adalah b9
Angka adalah 0xb9
Angka adalah       0xb9
Angka adalah 0xb9
Angka adalah       0xb9
Angka adalah       0xb9

13.    Demonstrasikanlah pembukaan file untuk operasi pembacaan dan penulisan.
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// pembacaanDanPenulisanFile.cpp
#include <fstream>
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
    char namaFile[80];
    char penyangga[255]; // untuk masukan pengguna
    cout << "Nama file: ";
    cin >> namaFile;

    // membuka file untuk operasi penulisan
    ofstream fout(namaFile);
    fout << "Baris ini ditulis langsung ke dalam file...\n";
    cout << "Masukkan teks untuk file: ";
    cin.ignore(1,'\n'); // menghapus newline setelah nama file
    cin.getline(penyangga,255); // membaca masukan pengguna
    fout << penyangga << "\n"; // dan menulisnya ke dalam file
    fout.close(); // menutup file

    // membuka kembali file untuk operasi pembacaan
    ifstream fin(namaFile);
    cout << "Ini adalah isi file:\n";
    char ch;
    while (fin.get(ch))
        cout << ch;

    cout << "\n***Akhir dari isi file.***\n";

    fin.close(); // menutup file kembali
   
    getch();
    return 0;
}

Nama file: uji1
Masukkan teks untuk file: Teks ini dituliskan langsung ke dalam file
Ini adalah isi file:
Baris ini ditulis langsung ke dalam file...
Teks ini dituliskan langsung ke dalam file

***Akhir dari isi file.***

14.    Demonstrasikanlah penulisan data ke dalam file dan menempatkan data tersebut ke akhir file sehingga isi file semula tidak terhapus.
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// penulisanDiAkhirFile.cpp
#include <fstream>
#include <iostream>
#include <conio.h>
using namespace std;

int main() // menghasilkan 1 jika error
{
    char namaFile[80];
    char penyangga[255];
    cout << "Masukkan nama file: ";
    cin >> namaFile;

    ifstream fin(namaFile);
    if (fin) // sudah ada?
    {
        cout << "Isi file sekarang:\n";
        char ch;
        while (fin.get(ch))
            cout << ch;
            cout << "\n***Akhir dari isi file***\n";
    }
    fin.close();

    cout << "\nPembukaan file " << namaFile << " dengan mode append...\n";

    ofstream fout(namaFile,ios::app);
    if (!fout)
    {
        cout << "Tidak bisa membuka file " << namaFile << " untuk menempelkan data.\n";
        return(1);
    }

    cout << "\nMasukkan teks untuk file: ";
    cin.ignore(1,'\n');
    cin.getline(penyangga,255);
    fout << penyangga << "\n";
    fout.close();

    fin.open(namaFile); // menugaskan-ulang objek fin!
    if (!fin)
    {
        cout << "Tidak bisa membuka " << namaFile << " untuk operasi pembacaan.\n";
        return(1);
    }
    cout << "\nBerikut adalah isi dari file: \n";
    char ch;
    while (fin.get(ch))
    cout << ch;
    cout << "\n***Akhir dari isi file***\n";
    fin.close();

    getch();
    return 0;
}




No comments:

Post a Comment