Politeknik Tanah Laut Teknik Informatika Semester 2

Senin, 11 Maret 2019

CodeBlocks C++ : Contoh Program Besar

By Maret 11, 2019
“Contoh Program Tugas Besar”
Dalam pembuatan program, adakalanya kita ingin membuat sesuai yang berguna dalam kehidupan sehari-hari, misalnya membuat program dari toko yang kita punyai atau program yang bisa mempermudah kita dalam mengerjakan tugas. dari beberapa contoh diatas maka kita perlu belajar yang namanya "Proyek/Program Besar".

Dalam hal ini tetu kita pasti kesulitan untuk membuat program tersebut, pasalnya karena banyaknya baris yang telah dibuat, lupa untuk mendeklarasikan, banyak yang harus diatur, dan lain-lain. oleh karena itu sobat perlu belajar dengan namanya "Rancangan Fungsi", nah rancangan ini akan membantu dalam membuat program yang diinginkan sobat beserta kemudahan dalam mengatur apa yang dibuat/dibangun sobat ke program yang sobat buat. 
  • Contoh Program
Dalam program ini, terdapat berbagai macam souce code yang dibuat dengan tujuan membangun program yang terorganisir, seperti:
  • Penyeleksian kondisi
  • Perulangan
  • Array
  • Manipulasi String
  • Fungsi
  • Akses File
  • Struktur/Struct Array
  • Pointer
Pada alur program ini, dimulai dari:
  1. Menginputkan jumlah client.
  2. Memasukan nama lengkap.
  3. Menginputkan jumlah penumpang.
  4. Memilih pesawat.
  5. Memilih tujuan keberangkatan.
  6. Memilih jenis/kelas pesawat yang ditumpangi.
  7. Hasil dari inputan yang telah dilakukan.
  8. Memunculkan tabel pembayaran.
  9. Menginputkan bayaran.
  10. Melakukan akses file dari program yang telah di-running.

#include <iostream> //header input output
#include <conio.h> //header getch
#include <windows.h> //header system cls
#include <fstream> //header membuka dan menutup file
#include <string.h> //header operasi string
#include <string> //header fungsi string
#include <iomanip> //header pemerataan io set flags
/*      Nama  : Muhammad Ausha Nuryan
        Kelas : 1C
        Kelompok : 4 (Tiket Pesawat)
        Anggota  : Muhammad Suriyadi
                   Cucu Sulaiman
                   Agung Laksana
                   Muhammad Ausha Nuryan*/

using namespace std; //pengganti std::

int a, b, c, d, jml, jum;
int byr, kembalian;
int totPem = 0;

struct client
{
  string nama[30];
  string *org;
}cl;

struct atasNama
{
    string nama[30][30];
    int umur[10][10];
}an;

struct pesawat
{
    int tiket[10];
    float diskon[10];
    string tujuan[15][15], kelas, kPenerbangan;
    char pswt[10], pil[10][10], pil2[10][10];
}t;

void tampilanAwal () //membuat garis tabel awal tampilan
{
    cout << "========================================================================================================================" << endl;
    cout << "                                          TIKET ONLINE PENERBANGAN BANJARMASIN                                          " << endl;
    cout << "========================================================================================================================" << endl;
}

void tampilanPesawat () //tabel pesawat yang tersedia
{
    cout << endl;
    cout << "=================================================================" << endl;
    cout << "| No.|       Pesawat                     Harga Tiket             " << endl;
    cout << "=================================================================" << endl;
    cout << "| 1. |   Sulaiman Indonesia             Rp. 1.600.000,-          " << endl;
    cout << "| 2. |   Yadi Airlines                  Rp. 1.700.000,-          " << endl;
    cout << "| 3. |   Sriwijaya Agung                Rp. 1.400.000,-          " << endl;
    cout << "| 4. |   Lion Ausha                     Rp. 1.500.000,-          " << endl;
    cout << "=================================================================" << endl;
}

void orang () //pemasukan nama pembeli tiket
{
    cin.ignore();
    cout << "\n   Client " << a << endl;
    cout << "   Nama Lengkap     : "; getline(cin, cl.nama[a]);
    cl.org = &cl.nama[a];
    cout << "   Alamat dari nama client : " << cl.org << endl;
    cout << "   Jumlah Penumpang : "; cin >> jum;
    if (jum > 1)
    {
        for (d = 1; d < jum; d++)
        {
            cin.ignore();
            cout << "   Nama Lengkap     : "; getline(cin, an.nama[a][d]);
            cout << "   Umur" << endl;
            cout << " 1. Dewasa (Lebih dari 14 Tahun)" << endl;
            cout << " 2. Anak-Remaja   (7 Tahun sampai 14 Tahun)" << endl;
            cout << " 3. Balita (Kurang dari 7 Tahun)" << endl;
            cout << "   Pilihan Umur : "; cin >> an.umur[a][d];
        }
    }
}

void pilihanTujuan () //menampilkan list Tujuan tujuan
{
    cout << "   Tujuan Keberangkatan:\n";
    cout << " 1. BANJARMASIN-JAKARTA\n";
    cout << " 2. BANJARMASIN-MAKAASAR\n";
    cout << " 3. BANJARMASIN-BALI\n";
    cout << " 4. BANJARMASIN-SURABAYA\n";
    cout << " 5. BANJARMASIN-PONTIANAK\n";
}

string Tujuan () //untuk pengeluan output hasil dari pemilihan tujuan
{
    if (t.pil[a][b] == '1')
    {
        t.tujuan[a][b] = "BANJARMASIN-JAKARTA";
    }
    else if (t.pil[a][b] == '2')
    {
        t.tujuan[a][b] = "BANJARMASIN-MAKAASAR";
    }
    else if (t.pil[a][b] == '3')
    {
        t.tujuan[a][b] = "BANJARMASIN-BALI";
    }
    else if (t.pil[a][b] == '4')
    {
        t.tujuan[a][b] = "BANJARMASIN-SURABAYA";
    }
    else if (t.pil[a][b] == '5')
    {
        t.tujuan[a][b] = "BANJARMASIN-PONTIANAK";
    }

    return t.tujuan[a][b];
}

string kode () //kode penerbangan saat diprint out di teks
{
    if (t.pswt[a] == '1')
    {
        if (t.pil[a][b] == '1')
        {
            t.kPenerbangan = "SI-BJ";
        }
        else if (t.pil[a][b] == '2')
        {
            t.kPenerbangan = "SI-BM";
        }
        else if (t.pil[a][b] == '3')
        {
            t.kPenerbangan = "SI-BB";
        }
        else if (t.pil[a][b] == '4')
        {
            t.kPenerbangan = "SI-BS";
        }
        else if (t.pil[a][b] == '5')
        {
            t.kPenerbangan = "SI-BP";
        }
    }
    else if (t.pswt[a] == '2')
    {
        if (t.pil[a][b] == '1')
        {
            t.kPenerbangan = "YA-BJ";
        }
        else if (t.pil[a][b] == '2')
        {
            t.kPenerbangan = "YA-BM";
        }
        else if (t.pil[a][b] == '3')
        {
            t.kPenerbangan = "YA-BB";
        }
        else if (t.pil[a][b] == '4')
        {
            t.kPenerbangan = "YA-BS";
        }
        else if (t.pil[a][b] == '5')
        {
            t.kPenerbangan = "YA-BP";
        }
    }
    else if (t.pswt[a] == '3')
    {
        if (t.pil[a][b] == '1')
        {
            t.kPenerbangan = "SA-BJ";
        }
        else if (t.pil[a][b] == '2')
        {
            t.kPenerbangan = "SA-BM";
        }
        else if (t.pil[a][b] == '3')
        {
            t.kPenerbangan = "SA-BB";
        }
        else if (t.pil[a][b] == '4')
        {
            t.kPenerbangan = "SA-BS";
        }
        else if (t.pil[a][b] == '5')
        {
            t.kPenerbangan = "SA-BP";
        }
    }
    else if (t.pswt[a] == '4')
    {
        if (t.pil[a][b] == '1')
        {
            t.kPenerbangan = "LA-BJ";
        }
        else if (t.pil[a][b] == '2')
        {
            t.kPenerbangan = "LA-BM";
        }
        else if (t.pil[a][b] == '3')
        {
            t.kPenerbangan = "LA-BB";
        }
        else if (t.pil[a][b] == '4')
        {
            t.kPenerbangan = "LA-BS";
        }
        else if (t.pil[a][b] == '5')
        {
            t.kPenerbangan = "LA-BP";
        }
    }
    return t.kPenerbangan;
}

string tipe () //kelas pesawat
{
    if (t.pil2[a][b] == '1')
    {
        t.kelas = "Ekonomi";
    }
    else if (t.pil2[a][b] == '2')
    {
        t.kelas = "Bisnis";
    }
    return t.kelas;
}

void pilihanKelas () //tabel pilihan kelas pesawat ekonomi atau ekslusif
{
    cout << endl;
    cout << "   Kelas Pesawat\n 1. Ekonomi\n 2. Bisnis\n";
}

void dataTiket () // pemasukan data pilihan tujuan penerbangan
{
    ulang:
    cout << "   Pilihan : "; cin >> t.pil2[a][b];
    if (t.pil2[a][b] == '1')
        {
            cout << "   Tiket Regular, tidak ada tambahan biaya" << endl;
        }
    else if (t.pil2[a][b] == '2')
        {
            cout << "   Tambahan biaya Rp. 500.000,-" << endl;
        }
    else
        {
            cout << "   Salah Input\n";
            goto ulang;
        }
}

int hargaTiket () //harga tiket
{
    if (t.pswt[a] == '1')
    {
        if (t.pil2[a][b] == '1')
        {
            t.tiket[a] = 1600000 * jum;
        }
        else if (t.pil2[a][b] == '2')
        {
            t.tiket[a] = 1600000 * jum + 500000;
        }
    }
    if (t.pswt[a] == '2')
    {
        if (t.pil2[a][b] == '1')
        {
            t.tiket[a] = 1700000 * jum;
        }
        else if (t.pil2[a][b] == '2')
        {
            t.tiket[a] = 1700000 * jum + 500000;
        }
    }
    if (t.pswt[a] == '3')
    {
        if (t.pil2[a][b] == '1')
        {
            t.tiket[a] = 1400000 * jum;
        }
        else if (t.pil2[a][b] == '2')
        {
            t.tiket[a] = 1400000 * jum + 500000;
        }
    }
    if (t.pswt[a] == '4')
    {
        if (t.pil2[a][b] == '1')
        {
            t.tiket[a] = 1500000 * jum;
        }
        else if (t.pil2[a][b] == '2')
        {
            t.tiket[a] = 1500000 * jum + 500000;
        }
    }
    return t.tiket[a];
}

float diskon()
{
    if (hargaTiket() > 15000000)
    {
        t.diskon[a] = hargaTiket() * 0.4;
    }
    else if (hargaTiket() > 7500000 && hargaTiket() <= 15000000)
    {
        t.diskon[a] = hargaTiket() * 0.25;
    }
    else if (hargaTiket() > 5000000 && hargaTiket() <= 7500000)
    {
        t.diskon[a] = hargaTiket() * 0.15;
    }
    else
    {
        t.diskon[a] = 0;
    }
    return t.diskon[a];
}

int hTiket() //rumus total harga tiket
{
    totPem = hargaTiket() - diskon();
    return totPem;
}

void tampilanAkhir () //menampilkan hasil dari proses
{
    for (a = 1; a <= jml; a++)
    {
        for (b = 1; b <= 1; b++)
        {
            cout << "   Client " << cl.nama[a] <<  " Membeli tiket " << Tujuan() << " dengan pesawat " << kode();
            cout << " kelas " << tipe() <<  "\n   seharga Rp. " << hTiket() << ",-" << endl;
        }
    }
}

void printTabel () //print hasil proses
{
    ofstream file ("Retail.txt");
    cout << endl;
    if (!file.is_open()){
        cout << "TIdak bisa membuka file";
    }
    else {
            cout << endl;
            cout << "================================================================================================================================" << endl;
            file << "================================================================================================================================" << endl;
            cout << " No. |          Nama Client           |        Tujuan       |      Pesawat      |     Kelas     |             Harga            |" << endl;
            file << " No. |          Nama Client           |        Tujuan       |      Pesawat      |     Kelas     |             Harga            |" << endl;
            cout << endl;

            for (a = 1; a <= jml; a++)
            {
                cout << endl;
                cout << setiosflags(ios::right) << setw(2) << a << setiosflags(ios::right) << setw(26) << cl.nama[a];
                file << setiosflags(ios::right) << setw(2) << a << setiosflags(ios::right) << setw(26) << cl.nama[a];
                for (b = 1; b <= 1; b++)
                {
                    totPem = totPem + hTiket();
                    cout << setiosflags(ios::left) << setw(31) << Tujuan() << setiosflags(ios::left) << setw(13) << kode();
                    file << setiosflags(ios::left) << setw(31) << Tujuan() << setiosflags(ios::left) << setw(13) << kode();
                    cout << setiosflags(ios::left) << setw(20) << tipe() << setiosflags(ios::left) << setw(16) << "Rp. " << hTiket() << ",-" << setiosflags(ios::left) << setw(11) << "|" << endl;
                    file << setiosflags(ios::left) << setw(20) << tipe() << setiosflags(ios::left) << setw(16) << "Rp. " << hTiket() << ",-" << setiosflags(ios::left) << setw(11) << "|" << endl;
                }
                cout << "================================================================================================================================" << endl;
                file << "================================================================================================================================" << endl;
                cout << setiosflags(ios::right) << setw(102) << "Total" << setiosflags(ios::left) << setw(6) << "Rp. " << totPem << ",-" << endl;
                file << setiosflags(ios::right) << setw(102) << "Total" << setiosflags(ios::left) << setw(6) << "Rp. " << totPem << ",-" << endl;
                cout << setiosflags(ios::right) << setw(102) << "Bayar" << setiosflags(ios::left) << setw(6) << "Rp. "; cin >> byr;
                file << setiosflags(ios::right) << setw(102) << "Bayar" << setiosflags(ios::left) << setw(6) << "Rp. " << byr << ",-" << endl;
                kembalian = byr - totPem;
                cout << setiosflags(ios::right) << setw(102) << "Kembalian" << setiosflags(ios::left) << setw(6) << "Rp. " << kembalian << ",-" << endl;
                file << setiosflags(ios::right) << setw(102) << "Kembalian" << setiosflags(ios::left) << setw(6) << "Rp. " << kembalian << ",-" << endl;
            }
            file.close();
            cout << endl << "   Rekap data sudah ditulis dan dikirim ke pusat. Terima kasih telah memakai jasa kami" << endl;
    }
}

void printTiket ()
{
    ofstream file ("Tiket.txt");
    cout << endl;
    if (!file.is_open()) {
            cout << "TIdak bisa membuka file";
    }
    else {
        for (a = 1; a <= jml; a++)
        {
            for (b = 1; b <= 1; b++)
            {
                file << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  " << endl << endl;
                file << "   Kelas " << tipe() << endl << endl;
                file << "   Nama" << endl;
                file << "   " << cl.nama[a] << endl << endl;
                file << "   Penerbangan          Kelas" << endl;
                file << "      " << kode() << setiosflags(ios::right) << setw(19) << tipe() << endl << endl;
                file << "            Dari  -   Ke" << endl;
                file << "          " << Tujuan() << endl;
                file << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  " << endl;

                if (jum > 1)
                {
                    for (d = 1; d < jum; d++)
                    {
                        file << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  " << endl << endl;
                        file << "   Kelas " << tipe() << endl << endl;
                        file << "   Nama" << endl;
                        file << "   " << an.nama[a][d] << endl << endl;
                        file << "   Penerbangan          Kelas" << endl;
                        file << "      " << kode() << setiosflags(ios::right) << setw(19) << tipe() << endl << endl;
                        file << "            Dari  -   Ke" << endl;
                        file << "          " << Tujuan() << endl;
                        file << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  " << endl;
                    }
                }
            }
            cout << endl;
        }
    }
}

main ()
{
    system("cls");
    tampilanAwal();
    tampilanPesawat();
    cout << endl;
    cout << "   Jumlah Client : "; cin >> jml; //untuk perulangan jumlah client yang membeli tiket pesawat

    for (a = 1; a <= jml; a++) //perulangan jumlah client
    {
        orang();
        ulang1:
        cout << "   Pesawat : "; cin >> t.pswt[a]; //inputan pilihan pesawat

        for (b = 1; b <= 1; b++) //perulangan data pesawat client
        {
            switch (t.pswt[a]) //penyeleksian kondisi pemilihan pesawat
            {
            case '1':
                {
                    cout << endl;
                    pilihanTujuan();
                    kembali1:
                    cout << "   Tujuan Pilihan : "; cin >> t.pil[a][b];

                    switch (t.pil[a][b])
                    {
                        case '1':
                        {

                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        case '2':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        case '3':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        case '4':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        case '5':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        default:
                        {
                            cout << "   Salah Inputan\n";
                            cout << "   Tekan ENTER untuk kembali\n";
                            getch();
                            goto kembali1;
                            break;
                        }
                    }
                    break;
                }
            case '2':
                {
                    cout << endl;
                    pilihanTujuan();
                    kembali2:
                    cout << "   Tujuan Pilihan : "; cin >> t.pil[a][b];

                    switch (t.pil[a][b])
                    {
                        case '1':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        case '2':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        case '3':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        case '4':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        case '5':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        default:
                        {
                            cout << "   Salah Inputan\n";
                            cout << "   Tekan ENTER untuk kembali\n";
                            getch();
                            goto kembali2;
                            break;
                        }
                    }
                    break;
                }
            case '3':
                {
                    cout << endl;
                    pilihanTujuan();
                    kembali3:
                    cout << "   Tujuan Pilihan : "; cin >> t.pil[a][b];

                    switch (t.pil[a][b])
                    {
                        case '1':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        case '2':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        case '3':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        case '4':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        case '5':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        default:
                        {
                            cout << "   Salah Inputan\n";
                            cout << "   Tekan ENTER untuk kembali\n";
                            getch();
                            goto kembali3;
                            break;
                        }
                    }
                    break;
                }
            case '4':
                {
                    cout << endl;
                    pilihanTujuan();
                    kembali4:
                    cout << "   Tujuan Pilihan : "; cin >> t.pil[a][b];

                    switch (t.pil[a][b])
                    {
                        case '1':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        case '2':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        case '3':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        case '4':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        case '5':
                        {
                            cout << endl << "   Tujuan : " << Tujuan () << endl;
                            pilihanKelas();
                            dataTiket();
                            break;
                        }
                        default:
                        {
                            cout << "   Salah Inputan\n";
                            cout << "   Tekan ENTER untuk kembali\n";
                            getch();
                            goto kembali4;
                            break;
                        }
                    }
                    break;
                }
            default: //jika penginputan salah, maka akan langsung mengarah ke default untuk menyatakan kondisi salah
                {
                    cout << "Salah memasukan pilihan\n";
                    goto ulang1;
                    break;
                }
            }
        }
        cout << endl;

    }
    tampilanAkhir(); //menampilkan hasil dari proses dalam main
    cout << endl;
    getch();
    system("cls"); //menghapus tampilan program
    printTabel(); //menampilkan tabel rekap data pelanggan yang membeli tiket
    printTiket (); //menampilkan boarding pass
    cout << endl;

    return 0; //mengembalikan seluruhnya
}
  • Hasil Running



Sobat bisa mencoba kodingan diatas dan memahaminya. Contoh programnya sendiri memiliki banyak variasi tergantung dari kreativitas oleh penulis program.


Sekian dari postingan blog kali ini. Semoga artikel ini dapat bermanfaat bagi sobat baik untuk mengerjakan tugas, menambah ilmu, maupun untuk sekedar menambah wawasan untuk media pembelajaran koding.
Read More...

CodeBlocks C++ : Queue

By Maret 11, 2019
“Queue”
Yo sobat Mahasiswa, mari kita lanjutkan materi koding yaitu "Queue". Silahkan juga lihat Stacks pada postingan sebelumnya.

  • Queue
Antrian adalah struktur data yang dirancang untuk beroperasi dalam konteks FIFO (First in First out). Elemen antrian dimasukkan dari ujung belakang dan dikeluarkan dari ujung depan. Kelas antrian adalah wadah aktif. Wadah adalah objek yang menyimpan data dari jenis yang sama. Antrian dapat dibuat dari wadah urutan yang berbeda. Wadah aktif tidak mendukung iterator karena itu kita tidak dapat menggunakannya untuk manipulasi data. Namun mereka mendukung fungsi anggota push () dan pop () untuk memasukkan dan menghapus data masing-masing.
  • Operasional Queue
Fungsi yang terkait dengan antrian adalah:
  1. Clear() - Mengembalikan antrian menjadi kosong Contoh:
    void Clear()
    {
        antrian.head = antrian.tail = -1;
        printf("Data Clear");
    }
  2. Tampil() - Menampilkan antrian Contoh:
    void Tampil()
    {
        if (IsEmpty()==0)
        {
            for (int i=antrian.head;i<=antrian.tail; i++)
            {
                printf("%d ",antrian.data[i]);
            }
        }
        else
        {
            printf("Data Kosong\n");
        }
    }
  3. Enqueue() - Menambahkan elemen Contoh:
    void Enqueue(int data)//menginput sebah dta
    {
        if(IsEmpty() == 1)
        {
            antrian.head = antrian.tail = 0;
            antrian.data[antrian.tail] = data;
            printf("%d Data Telah Masuk !", antrian.data[antrian.tail]);
        }
        else if(IsFull() == 0)
        {
            antrian.tail = antrian.tail + 1;
            antrian.data[antrian.tail] = data;
            printf("%d masuk !", antrian.data[antrian.tail]);
        }
    }
  4. Dequeue() - Menghapus elemen terakhir dari antrian Contoh:
    int Dequeue()
    {
        int i;
        int e = antrian.data[antrian.head];
    
        for(i=antrian.head;i<=antrian.tail-1;i++)
        {
            antrian.data[i] = antrian.data[i+1];
        }
        antrian.tail--;
        return e;
    }
  • Contoh Program
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define MAX 5
#include <iostream>

using namespace std;

typedef struct
{
    int data [MAX];
    int head;
    int tail;
}Queue;

Queue antrian;

void Create()
{
    antrian.head = antrian.tail = -1;
}

int IsEmpty()
{
    if(antrian.tail == -1)
        return 1;
    else
        return 0;
}

int IsFull()
{
    if(antrian.tail == MAX-1)
        return 1;
    else
        return 0;
}

void Enqueue(int data)//menginput sebah dta
{
    if(IsEmpty() == 1)
    {
        antrian.head = antrian.tail = 0;
        antrian.data[antrian.tail] = data;
        printf("%d Data Telah Masuk !", antrian.data[antrian.tail]);
    }
    else if(IsFull() == 0)
    {
        antrian.tail = antrian.tail + 1;
        antrian.data[antrian.tail] = data;
        printf("%d masuk !", antrian.data[antrian.tail]);
    }
}

int Dequeue()
{
    int i;
    int e = antrian.data[antrian.head];

    for(i=antrian.head;i<=antrian.tail-1;i++)
    {
        antrian.data[i] = antrian.data[i+1];
    }
    antrian.tail--;
    return e;
}

void Clear()
{
    antrian.head = antrian.tail = -1;
    printf("Data Clear");
}

void Tampil()
{
    if (IsEmpty()==0)
    {
        for (int i=antrian.head;i<=antrian.tail; i++)
        {
            printf("%d ",antrian.data[i]);
        }
    }
    else
    {
        printf("Data Kosong\n");
    }
}

int main()
{
    int pil;
    int data;
    Create();

    do
    {
        system("cls");
        printf ("\n MENU PILIHAN PROGRAM QUEUE\n");
        printf ("1. Enqueue\n");
        printf ("2. Dequeue\n");
        printf ("3. Tampil\n");
        printf ("4. Clear\n");
        printf ("5. Keluar\n");
        printf ("Masukkan Pilihan Anda : ");
        scanf("%d",&pil);

    switch(pil)
    {
        case 1:
            printf("Data : ");
            scanf("%d",&data);
            Enqueue(data);
            break;

        case 2:
            printf("Elemen yang keluar : %d", Dequeue());
            break;

        case 3:
            Tampil();
            break;

        case 4:
            Clear();
            break;
        case 5:
            return 0;
            break;
    }
    getch();
    } while(pil!=5);
}


Sobat bisa mencoba kodingan diatas dan memahaminya. Contoh programnya sendiri memiliki banyak variasi tergantung dari kreativitas oleh penulis program.


Sekian dari postingan blog kali ini. Semoga artikel ini dapat bermanfaat bagi sobat baik untuk mengerjakan tugas, menambah ilmu, maupun untuk sekedar menambah wawasan untuk media pembelajaran koding.
Read More...

CodeBlocks C++ : Stacks

By Maret 11, 2019
“Stacks”
Yo sobat Mahasiswa, mari kita lanjutkan materi koding yaitu "Stacks". Silahkan juga lihat Pointer pada postingan sebelumnya.

  • Stacks
Tumpukan adalah jenis wadah yang dirancang khusus untuk beroperasi dalam konteks LIFO (last-in first-out), di mana elemen baru ditambahkan di satu ujung dan (atas) elemen dihapus dari ujung itu saja.
tumpukan diimplementasikan sebagai interaksi wadah, yang merupakan kelas dimana digunakan objek yang diletakkan dari kelas kosong tertentu sebagai wadah yang mendasarinya, menyediakan serangkaian fungsi anggota khusus untuk mengakses elemen-elemennya. Elemen didorong/muncul dari "belakang" wadah tertentu, yang dikenal sebagai bagian atas tumpukan.
  • Operasional Stack
Fungsi yang terkait dengan tumpukan adalah:
  1. bersih() - Mengembalikan tumpukan menjadi kosong Contoh:
    void bersih()
    {
        if (s.top == -1)
        {
            cout << "\nTumpukan masih kosong!\n";
            getch();
        }
        else
        {
            s.top = -1;
            cout << "\nTumpukan berhasil dibersihkan!\n";
            getch();
        }
    }
  2. tampil() - Menampilkan tumpukan yang ada Contoh:
    void tampil()
    {
        if (s.top == -1)
        {
            cout << "\nTidak ada tumpukan!\n";
            getch();
        }
        else
        {
            for (int a = s.top; a >= 0; a--)
            {
                cout << "\nTumpukan ke " << a+1 << " " << "= " << s.bot[a];
            }
            getch();
        }
    }
  3. nambah() - Menambahkan elemen Contoh:
    void nambah(int x)
    {
        if (s.top == max)
        {
            cout << "\nTumpukan penuh!\n";
            getch();
        }
        else
        {
            s.top++;
            s.bot[s.top] = x;
            cout << "\nTumpukan berhasil diisi!\n";
            getch();
        }
    }
  4. kurang() - Menghapus elemen paling atas tumpukan Contoh:
    void kurang()
    {
        if (s.top == -1)
        {
            cout << "\nTumpukan kosong!\n";
            getch();
        }
        else
        {
            s.top-1;
            cout << "\nTumpukan berhasil dihapus!\n";
            getch();
        }
    }
  • Contoh Program
#include <iostream>
#include <conio.h>
#include <windows.h>
#define max 4 // 0 -> 4 = 5 buah tempat stack

using namespace std;

struct numpuk
{
    int top;
    int bot[max];
}s;

void start()
{
    s.top = -1;
}

void nambah(int x)
{
    if (s.top == max)
    {
        cout << "\nTumpukan penuh!\n";
        getch();
    }
    else
    {
        s.top++;
        s.bot[s.top] = x;
        cout << "\nTumpukan berhasil diisi!\n";
        getch();
    }
}

void kurang()
{
    if (s.top == -1)
    {
        cout << "\nTumpukan kosong!\n";
        getch();
    }
    else
    {
        s.top-1;
        cout << "\nTumpukan berhasil dihapus!\n";
        getch();
    }
}

void tampil()
{
    if (s.top == -1)
    {
        cout << "\nTidak ada tumpukan!\n";
        getch();
    }
    else
    {
        for (int a = s.top; a >= 0; a--)
        {
            cout << "\nTumpukan ke " << a+1 << " " << "= " << s.bot[a];
        }
        getch();
    }
}

void bersih()
{
    if (s.top == -1)
    {
        cout << "\nTumpukan masih kosong!\n";
        getch();
    }
    else
    {
        s.top = -1;
        cout << "\nTumpukan berhasil dibersihkan!\n";
        getch();
    }
}

main ()
{
    int x;
    char pil;

    start();
    ulang:
    system("cls");
    cout << "1. Tambah\n2. Kurang\n3. Tampil\n4. Format\n5. Keluar\nPilihan : ";
    cin >> pil;

    switch (pil)
    {
    case '1':
        cout << "\nMasukan Value : ";
        cin >> x;
        nambah(x);
        break;
    case '2':
        kurang();
        break;
    case '3':
        tampil();
        break;
    case '4':
        bersih();
        break;
    case '5':
        return 0;
        break;
    default:
        cout << "\nSalah input!\n";
        getch();
        goto ulang;
        break;
    }
}

Sobat bisa mencoba kodingan diatas dan memahaminya. Contoh programnya sendiri memiliki banyak variasi tergantung dari kreativitas oleh penulis program.


Sekian dari postingan blog kali ini. Semoga artikel ini dapat bermanfaat bagi sobat baik untuk mengerjakan tugas, menambah ilmu, maupun untuk sekedar menambah wawasan untuk media pembelajaran koding.
Read More...

Minggu, 03 Maret 2019

CodeBlocks C++ : Pointer

By Maret 03, 2019
“Pointer”
Yo sobat Mahasiswa, mari kita lanjutkan materi koding yaitu "Pointer". Silahkan juga lihat Struct/Stuktur Data Array pada postingan sebelumnya.

  • Pointer
Pointer adalah fitur yang ada dari C++, yang membedakannya dari bahasa pemrograman lain seperti Java dan Python. Pointer digunakan dalam program C++ untuk mengakses memori dan memanipulasi alamat.

Untuk memahami pointer, sobat harus terlebih dahulu tahu bagaimana data disimpan di komputer. Setiap variabel yang sobat buat dalam program sobat diberikan lokasi dalam memori komputer. Nilai awal variabel sebenarnya disimpan di lokasi yang ditetapkan.

Contoh:

#include <iostream>
using namespace std;


int main()

int var1 = 3;
int var2 = 24;
int var3 = 17;


cout << &var1 << endl;
cout << &var2 << endl;
cout << &var3 << endl;
}
Dari contoh program diatas, sobat bisa melihat outputnya:
0x7fff5fbff8ac
0x7fff5fbff8a8
0x7fff5fbff8a4
0x di awal mewakili alamat dalam bentuk heksadesimal. Perhatikan bahwa alamat pertama berbeda dari yang kedua dengan 4-byte dan alamat kedua berbeda dari yang ketiga dengan 4-byte. Ini karena ukuran integer (variabel tipe int) adalah 4 byte dalam sistem 64-bit.

  • Variabel Pointer
C ++ memberi sobat untuk memanipulasi data dalam memori komputer secara langsung. Sobat dapat menetapkan dan membatalkan penetapan ruang di memori sesuai keinginan. Ini dilakukan dengan menggunakan variabel Pointer. Variabel pointer adalah variabel yang menunjuk ke alamat tertentu dalam memori yang ditunjukkan oleh variabel lain.

Contoh:

int *p;
  atau  
int* p;
Pernyataan di atas mendefinisikan variabel pointer p, itu memegang alamat memori. Tanda bintang adalah operator dereferensi yang berarti penunjuk ke. Di sini, pointer p adalah pointer ke int, misal, menunjuk ke nilai integer di alamat memori.


  • Operator Pointer
Operator referensi (&) seperti yang dibahas di atas memberikan alamat variabel. Untuk mendapatkan nilai yang tersimpan di alamat memori, kami menggunakan operator dereference (*). Misalnya: Jika variabel angka disimpan dalam alamat memori 0x123, dan itu berisi nilai 5. Operator referensi (&) memberikan nilai 0x123, sedangkan operator dereferensi (*) memberikan nilai 5.
  • Contoh Program
Buatlah program untuk mengetahui suatu nilai dan alamat deklarasi yang digunakan oleh program menggunakan pointer dan array sebagai tambahan!


//header
#include <iostream>
using namespace std; //pengganti std::
//main program yang berjalan
main()
{
    //deklarasi
    int a[10]= {6, 5, 4, 3, 2};
    cout << "nilai angka " << a[0] << endl;

    //buat pointer
    int *aptr
    aptr = a;
    cout <<"nilai alamat " << &aptr << endl;
    cout << "\nmasuk perulangan" << endl;

    //perulangan
    for (int i = 0; i < 5; i++)
    {
    //keluaran hasil pointer    cout << "nilai " << i+1 << " adalah " << *(aptr+i) << endl;
    cout << "alamat " << i+1 << " adalah " << &aptr+i << endl;
    cout << endl;
    }

    return 0;

}
Sobat bisa mencoba kodingan diatas dan memahaminya. Contoh programnya sendiri memiliki banyak variasi tergantung dari kreativitas oleh penulis program.


Sekian dari postingan blog kali ini. Semoga artikel ini dapat bermanfaat bagi sobat baik untuk mengerjakan tugas, menambah ilmu, maupun untuk sekedar menambah wawasan untuk media pembelajaran koding.
Read More...