Thursday, December 5, 2019

Contoh stack menggunakan array bahasa c

gambar dari contoh stack menggunakan array bahasa c dengan kasus menyimpan tumpukkan baju

Contoh stack menggunakan array bahasa c

Kasus : Menyimpan tumpukkan baju


#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <windows.h>
#include<conio.h>

using namespace std;

struct {
    int top;
    char baju[5][20];
}tumpukan;

void push(char tempBaju[20]);
void pop();
void awal();
int isEmpty();
int isFull();

int main(){
    int pilih,doHapus;
    char data[20];
    string i;
    awal();
    do{
        system("cls");
        cout<<"================================================="<<endl;
        cout<<"============= Program Tumpukan Baju ============="<<endl;
        cout<<" 1. PUSH (Untuk memasukkan baju ke tumpukkan)    "<<endl;
        cout<<" 2. POP  (Untuk mengeluarkan baju dari tumpukkan)"<<endl;
        cout<<" 3. EXIT                                         "<<endl;
        cout<<"================================================="<<endl;
        cout<<"=========== maximal hanya 5 tumpukan ============"<<endl;
     
        if(!isEmpty()){
            for(int i = tumpukan.top; i >= 0; i--){
                cout<<"["<<tumpukan.baju[i]<<"]"<<endl;
            }
        } else {
            cout<<"[tumpukan baju dalam kondisi kosong]";
        }
        cout<<"\nMasukkan Pilihan : ";cin>>pilih;
        switch(pilih){
            case 1:
                cout<<"Masukkan Baju kedalam tumpukkan [contoh: kemeja] : ";cin>>data;
                push(data);
                break;
            case 2:
                cout<<"Yakin akan mengeluarkan tumpukkan ? (input 1 for yes) : ";cin>>doHapus;
                if(doHapus == 1){
                    pop();
                } else {
                    main();
                }
                break;
            case 3:
                cout<<"Tekan enter untuk keluar :";
                break;
            default:
                cout<<"ERROR!";
                break;
        }
        printf("\nPress any key to continue...");
        getch();
    } while(pilih != 3);
}

void push(char data[5]){
    if (!isFull()){
        tumpukan.top = tumpukan.top + 1;
        strcpy(tumpukan.baju[tumpukan.top],data);
        cout<<"Baju berhasil masuk kedalam tumpukkan";
    } else {
        cout<<"Baju dalam tumpukan penuh";
    }
}

void pop(){
    if(!isEmpty()){
        tumpukan.top--;
        cout<<"Baju pada tumpukan ke-"<<tumpukan.top+2<<" sudah diambil";
    } else {
        cout<<"Baju dalam tumpukan kosong";
    }
}

void awal(){
    tumpukan.top = -1;
}

int isEmpty(){
    if(tumpukan.top == -1){
        return 1;
    } else {
        return 0;
    }
}

int isFull(){
    if(tumpukan.top==5-1){
        return 1;
    } else {
        return 0;
    }
}

link terkait :
contoh queue menggunakan linked list bahasa c
contoh stack menggunakan linked list bahasa c
contoh queue menggunakan array bahasa c 
Share:

Wednesday, December 4, 2019

Contoh stack menggunakan linked list bahasa c

gambar dari contoh stack menggunakan linked list bahasa c

Contoh stack menggunakan linked list Bahasa c

#include <stdio.h>
#include <stdlib.h>

typedef struct Data {
    int value;
} Data;

typedef struct Elemen {
    struct Data Data;
    struct Elemen *next;
} Elemen;

typedef struct Stack {
    struct Elemen *top;
} Stack;

void display(Stack);
void push(int value, Stack *Stack);
void pop(Stack *Stack);

int main(){
    Elemen *current = (Elemen*) malloc(sizeof(Elemen));;
    int menu;
    char opsi;
    int value;
    Stack Stack;
    Stack.top = NULL;

    do {
        printf("===============menu===============\n");
        printf("1. Push\n");
        printf("2. Pop\n");
        printf("3. Display\n");
        printf("4. Exit\n");
        printf("==================================\n");


        printf("Pilih menu : ");scanf("%d", &menu);
        printf("----------------------------------------\n");

        if (menu == 1){
            printf("Push \n");
            printf("----------------------------------------\n");
            do {
                printf("Value  : ");
                scanf("%d", &value);fflush(stdin);
                push(value, &Stack);
                printf("berhasil !\n");
                printf("Push again ? [Y/N] : ");
                scanf("%c", &opsi);fflush(stdin);
                printf("\n");
            } while (opsi == 'Y' || opsi == 'y');
        } else if (menu == 2){
            printf("Pop \n");
            printf("----------------------------------------\n");
            if (Stack.top == NULL){
                printf("\nData belum ada !\n");
            } else {
                pop(&Stack);
                printf("\n berhasil !\n");
            }
        } else if (menu == 3){
            display(Stack);
        } else if (menu == 4){
            printf("Keluar\n");
        } else {
            printf("Menu tidak tersedia !\n");
        }
    } while (menu != 4);
}

void display(Stack Stack){
    if(Stack.top == NULL){
        printf("\nData Kosong !\n");
    } else {
                printf("-> Isi Data : \n");
                Elemen *current = Stack.top;
                while(current != NULL){
               printf("%d \n",current->Data.value);
               current = current->next;
                                }
    }
}

void push(int value, Stack *Stack){
    Elemen *current = (Elemen*) malloc(sizeof(Elemen));
    current->Data.value = value;

    if(Stack->top == NULL){
        Stack->top = current;
        current->next = NULL;
        current = NULL;
    } else {
        current->next = Stack->top;
        Stack->top = current;
                                current = NULL;
    }
}

void pop(Stack *Stack){
    Elemen *current = (Elemen*) malloc(sizeof(Elemen));
    if(Stack->top->next != NULL){
                    current = Stack->top;
                    Stack->top = current->next;
                } else {
                                Stack->top = NULL;
                }
                free(current);
    current = NULL;
}

link terkait:
contoh queue menggunakan linked list bahasa c
contoh queue menggunakan array bahasa c
contoh stack menggunakan array bahasa c

Share:

Contoh queue menggunakan linked list bahasa c

gambar dari contoh queue menggunakan linked list bahasa c

Contoh queue menggunakan linked list Bahasa c


#include <stdio.h>
#include <stdlib.h>

typedef struct Data {
    int value;
} Data;

typedef struct Elemen {
    struct Data Data;
    struct Elemen *next;
} Elemen;

typedef struct Queue {
    struct Elemen *front;
    struct Elemen *rear;
} Queue;

void display(Queue);
void insert(int value, Queue *Queue);
void deleteQueue(Queue *Queue);

int main(){
    Elemen *current = (Elemen*) malloc(sizeof(Elemen));;
    int menu;
    char opsi;
    int value;
    Queue Queue;
    Queue.front = NULL;

    do {
        printf("===============menu===============\n");
        printf("1. Insert\n");
        printf("2. Delete\n");
        printf("3. Display\n");
        printf("4. Exit\n");
        printf("==================================\n");


        printf("Pilih menu : ");scanf("%d", &menu);
        printf("----------------------------------------\n");

        if (menu == 1){
            printf("Insert \n");
            printf("----------------------------------------\n");
            do {
                printf("Value  : ");
                scanf("%d", &value);fflush(stdin);
                insert(value, &Queue);
                printf("berhasil !\n");
                printf("Insert again ? [Y/N] : ");
                scanf("%c", &opsi);fflush(stdin);
                printf("\n");
            } while (opsi == 'Y' || opsi == 'y');
        } else if (menu == 2){
            printf("Delete \n");
            printf("----------------------------------------\n");
            if (Queue.front == NULL){
                printf("\nData belum ada !\n");
            } else {
                deleteQueue(&Queue);
                printf("\n berhasil !\n");
            }
        } else if (menu == 3){
            display(Queue);
        } else if (menu == 4){
            printf("Keluar\n");
        } else {
            printf("Menu tidak tersedia !\n");
        }
    } while (menu != 4);
}

void display(Queue Queue){
    if(Queue.front == NULL){
        printf("\nData Kosong !\n");
    } else {
        printf("-> Isi Data : \n");
        Elemen *current = Queue.front;
        while(current != NULL){
            printf("%d \n",current->Data.value);
            current = current->next;
        }
    }
}

void insert(int value, Queue *Queue){
    Elemen *current = (Elemen*) malloc(sizeof(Elemen));
    current->Data.value = value;

    if(Queue->front == NULL){
        Queue->front = current;
        Queue->rear = current;
        current->next = NULL;
        current = NULL;
    } else {
        Queue->rear->next = current;
        Queue->rear = current;
        current->next = NULL;
        current = NULL;
    }
}

void deleteQueue(Queue *Queue){
    Elemen *current = (Elemen*) malloc(sizeof(Elemen));
    if(Queue->front->next != NULL){
        current = Queue->front;
        Queue->front = current->next;
    } else {
        Queue->front = NULL;
    }
    free(current);
    current = NULL;
}

link terkait:
contoh stack menggunakan array bahasa c
contoh stack menggunakan linked list bahasa c
contoh queue menggunakan array bahasa c 
Share:

Tuesday, December 3, 2019

Contoh queue menggunakan array bahasa c

tampilan awal dari contoh queue menggunakan array bahasa c dengan kasus antrian mobil di gerbang tol

Contoh queue menggunakan array bahasa c

Kasus : antrian mobil di gerbang tol

== program ==
#include <iostream>
#include <string.h>
#include <string>
#include<conio.h>
#define MAX 5
using namespace std;
struct Queue{
    int front, rear, gerbang[MAX];
} Q;

struct Queue1{
    int front, rear, gerbang[MAX];
} Q1;
int label;

bool isFull(int a){
    if(a == 1){
        return Q.rear == MAX;
    } else if(a == 2){
        return Q1.rear == MAX;
    } else {
        return false;
    }
}

bool isEmpty(int a){
    if(a == 1){
        return Q.rear == 0;
    } else if(a == 2){
        return Q1.rear == 0;
    } else {
        return false;
    }
}

void printQueue(){
    cout << "+--------------------------------------+"<<endl;
    cout << "|   Gerbang Tol 1 Tersedia "<< MAX - Q.rear <<" Antrian   |"<<endl;
    cout << "+======================================+"<<endl;
    if(isEmpty(1)){
        cout << "          Antrian kosong              "<<endl;
    } else {
        for (int i = Q.front; i < Q.rear; i++){
            cout<<"+----+  ";
        }
        cout<<endl;
        for (int i = Q.front; i < Q.rear; i++){
            cout<<"| "<<Q.gerbang[i]<<((Q.gerbang[i] < 10) ? " " : "")<<" |  ";
        }
        cout <<endl;
        for (int i = Q.front; i < Q.rear; i++){
            cout<<"+----+  ";
        }
        cout<< endl;
    }
    cout << "+======================================+"<<endl<<endl;
  
    cout << "+--------------------------------------+"<<endl;
    cout << "|   Gerbang Tol 2 Tersedia "<< MAX - Q1.rear <<" Antrian   |"<<endl;
    cout << "+======================================+"<<endl;
    if(isEmpty(2)){
        cout << "          Antrian kosong              "<<endl;
    } else {
        for (int i = Q1.front; i < Q1.rear; i++){
            cout<<"+----+  ";
        }
        cout<<endl;
        for (int i = Q1.front; i < Q1.rear; i++){
            cout<<"| "<<Q1.gerbang[i]<<((Q1.gerbang[i] < 10) ? " " : "")<<" |  ";
        }
        cout <<endl;
        for (int i = Q1.front; i < Q1.rear; i++){
            cout<<"+----+  ";
        }
        cout<< endl;
    }
    cout << "+======================================+"<<endl;
}

void enqueue(){
    int pilihGerbang;
    cout<<"----------------------\n"
        <<"1. Gerbang Tol 1      \n"
        <<"2. Gerbang Tol 2      \n"
        <<"----------------------\n";
    cout<<"Pilih Gerbang Tol : ";cin>>pilihGerbang;
    switch(pilihGerbang){
        case 1:
            if(isFull(1)){
                cout<<"----------------------\n"
                    <<" Gerbang Tol 1 Penuh  \n"
                    <<"----------------------\n";
            } else {
                label = label + 1;
                Q.gerbang[Q.rear] = label;
                Q.rear++;
                cout<<"----------------------------------\n"
                    <<"Mobil telah masuk ke gerbang tol 1\n"
                    <<"----------------------------------\n";
            }
            break;
        case 2:
            if(isFull(2)){
                cout<<"----------------------\n"
                    <<" Gerbang Tol 2 Penuh  \n"
                    <<"----------------------\n";
            } else {
                label = label + 1;
                Q1.gerbang[Q1.rear] = label;
                Q1.rear++;
                cout<<"----------------------------------\n"
                    <<"Mobil telah masuk ke gerbang tol 2\n"
                    <<"----------------------------------\n";
            }
            break;
        default:
            cout<<"--------------------------\n"
                <<"Gerbang Tol tidak tersedia\n"
                <<"--------------------------\n";
            break;
    }
}

void dequeue(){
    int pilihGerbang;
    cout<<"----------------------\n"
        <<"1. Gerbang Tol 1      \n"
        <<"2. Gerbang Tol 2      \n"
        <<"----------------------\n";
    cout<<"Pilih Gerbang Tol : ";cin>>pilihGerbang;
    switch(pilihGerbang){
        case 1:
            if(isEmpty(1)){
                cout<<"------------------------------------\n"
                    <<" Antrian Gerbang Tol 1 Masih Kosong \n"
                    <<"------------------------------------\n";
            } else {
                cout<<"-------------------------------------------------\n"
                    <<" Mobil Nomor '"<< Q.gerbang[Q.front]<<"' telah selesai dari Gerbang Tol 1\n"
                    <<"-------------------------------------------------\n";
                for(int i = Q.front; i < Q.rear; i++){
                    Q.gerbang[i] = Q.gerbang[i+1];
                }
                Q.rear--;
            }
            break;
        case 2:
            if(isEmpty(2)){
                cout<<"------------------------------------\n"
                    <<" Antrian Gerbang Tol 2 Masih Kosong \n"
                    <<"------------------------------------\n";
            } else {
                cout<<"-------------------------------------------------\n"
                    <<" Mobil Nomor '"<< Q1.gerbang[Q1.front]<<"' telah selesai dari Gerbang Tol 2\n"
                    <<"-------------------------------------------------\n";
                for(int i = Q1.front; i < Q1.rear; i++){
                    Q1.gerbang[i] = Q1.gerbang[i+1];
                }
                Q1.rear--;
            }
            break;
        default:
            cout<<"--------------------------\n"
                <<"Gerbang Tol tidak tersedia\n"
                <<"--------------------------\n";
            break;
    }
}

int main(){
    int choose;
    do{
        system("cls");
        cout<<"----------------------\n"
            <<"     Menu Pilihan     \n"
            <<"----------------------\n"
            <<" [1] Enqueue \n"
            <<" [2] Dequeue \n"
            <<" [3] Keluar \n"
            <<"----------------------\n\n";
            printQueue();
        cout<<"Masukkan pilihan : "; cin >> choose;
     
        switch(choose){
            case 1:
                enqueue();
                break;
            case 2:
                dequeue();
                break;
            case 3:
                cout<<"Keluar...";
                break;
            default:
                cout<<"----------------------\n"
                    <<"Pilihan tidak tersedia\n"
                    <<"----------------------\n";
                break;
        }
        printf("\nPress any key to continue...");
        getch();
    } while(choose != 3);
    return 0;
}

link terkait :
contoh queue menggunakan linked list bahasa c
contoh stack menggunakan linked list bahasa c
contoh stack menggunakan array bahasa c 
Share:

Tuesday, November 12, 2019

C Program For Greedy Algorithm (knapsack problem)

C Program for greedy algorithm
case : knapsack



#include <stdio.h>
#include <string.h>

int amount = 0;
int capacity;

int weightIn[20];
char nameIn[20][20];
int amountIn = 0;
void freightCar(char name[20], int weight, int index){
            capacity = capacity - weight;
            strcpy(nameIn[index],name);
            weightIn[index] = weight;
            amountIn = amountIn + 1;
}

int main(){
            printf("input amount of items (max 20): ");scanf("%d",&amount);
            if(amount > 20){
                        printf("max 20 \n");
                        main();
            }
            printf("input capacity : ");scanf("%d",&capacity);
            int weight[amount];
            char name[amount][20];
            for(int i = 0; i < amount;  i++){
                        printf("name : ");scanf("%s",&name[i]);
                        printf("weight : ");scanf("%d",&weight[i]);
            }
         
            //shorting
            for (int i = 0; i < amount; i++) {
                        for (int j = i + 1; j < amount; j++) {
                                     if (weight[i] < weight[j]) {
                                                int temp = weight[j];
                                                weight[j] = weight[i];
                                                weight[i] = temp;
                                                char temp1[20];
                                                strcpy(temp1,name[j]);
                                                strcpy(name[j],name[i]);
                                                strcpy(name[i],temp1);
                                    }
                        }
            }

            //input
            int i = 0;
            while(i < amount && capacity >= weight[i]){
                        freightCar(name[i],weight[i],i);
                        i = i+1;
           }
         
            //printout
            printf("==List Items==\n");
            for(int i = 0; i < amountIn; i++){
                        printf("name : %s \n",nameIn[i]);
                        printf("weight : %d \n",weightIn[i]);
                        printf("----------------\n");
            }
            printf("================\n");
            printf("Remaining capacity : %d",capacity);
}

Share:

Friday, October 4, 2019

Diksi - aspek bentuk dan aspek makna

Pengertian Diksi

Diksi dapat diartikan sebagai pilihan kata. Menurut Kamus Besar Bahasa Indonesia sendiri, pengertian diksi adalah pilihan kata yang tepat dan selaras (dalam penggunaannya) untuk mengungkapkan gagasan sehingga diperoleh efek tertentu (seperti apa yang diharapkan).

Aspek Bentuk

  1. Kata berimbuhan adalah kata yang telah mengalami proses pengimbuhan atau (afiksasi). Imbuhan atau afiksasi adalah morfem terikat yang digunakan dalam bentuk dasar untuk membentuk kata. Hasil dari proses pengimbuhan itu disebut kata berimbuhan atau kata turunan. Contoh : Kami bermain futsal setelah selesai mata kuliah.
  2. Kata gabung adalah gabungan antara satu kata dengan kata lainnya yang menjadi satu arti. Contoh : Tiket Kereta Api Bandung-Solo sudah habis
  3. Kata ulang adalah suatu pengulangan kata atau unsur kata. Contoh : Kupu-kupu di taman sangat indah
  4. Kata gabung berimbuhan adalah kata gabung yang memiliki imbuhan. Contoh : para penonton sepak bola bertepuk tangan ketika menyambut kedua tim.
  5. Kata ulang berimbuhan adalah kata ulang yang memiliki imbuhan. Contoh : Kakek sedang berjalan-jalan di taman.

Aspek Makna

  • Berdasarkan Makna
Denotatif adalah makna yang sebenarnya dari suatu kata atau kalimat. Contoh : Ramdan adalah seorang yang gemar membantu, dia disukai banyak orang.
Konotatif adalah kata atau kalimat yang memiliki arti bukan sebenarnya. Contoh : Riska adalah seorang kutu buku, itu sebabnya ia banyak tahu tentang berbagai hal.
  • Berdasarkan Leksikal
  1. Sinonim
Sinonim adalah kata yang mempunyai arti yang sama dengan kata lain.
Contoh : Matahari = Mentari

  1. Antonim
Antonim adalah kata yang memiliki arti berlawanan dengan kata lain.
Contoh : Tinggi x Rendah

  1. Homonim
Homonim adalah kata yang memiliki lafal dan ejaan yang sama namun artinya berbeda satu sama lain.
Contoh :
- Bulan itu terlihat bulat penuh malam ini
- Semua karyawan mendapatkan gaji setiap bulan

  1. Homofon
Homofon adalah kata yang memiliki ejaan dan makna yang berbeda, namun lafal sama.
Contoh :
- Anton menabung uangnya di Bank secara rutin
- Bang Anton bekerja di perusahaan pembiayaan

  1. Homograf
Homograf adalah kata yang memiliki lafal dan arti yang berbeda, namun ejaannya sama.
Contoh :
- Makanan favorit wanita itu adalah tahu goreng
- Wanita itu tidak tahu kalau hari ini libur

  1. Polisemi
Polisemi adalah kata yang memiliki lebih dari satu arti.
Contoh :
- Para nasabah yang menabung di Bank akan mendapat bunga setiap bulan
- Andini adalah salah satu bunga desa yang paling cantik

  1. Hipernim dan Hiponim
Hipernim adalah kata yang dapat mewakili banyak kata lainnya. Sedangkan hiponim adalah kata yang dapat terwakili oleh kata hipernim.
Contoh :
- Di kebun binatang itu terdapat banyak binatang liar, misalnya gajah, singa, buaya, rusa, kuda, dan lain-lain.
Ket :
binatang liar merupakan hipernim. Sedangkan kata hiponim gajah, singa, buaya, rusa, kuda, dan lain-lain.
Sumber :
https://www.maxmanroe.com/vid/umum/pengertian-diksi.html
https://puebi.readthedocs.io/en/latest/kata/bentuk-ulang/
Share:

Monday, September 16, 2019

Data dan Infromasi

Data dan Infromasi

Data adalah fakta mentah yang belum diolah, yang terkadang tidak dapat diterima oleh akal pikiran dari penerima data tersebut. Data juga perlu diolah menjadi informasi untuk dapat diterima oleh penerima.

Informasi adalah hasil pengolahan data yang sudah dapat diterima oleh akal pikiran penerima informasi yang nantinya dapat digunakan untuk pengambilan keputusan.

Perbedaan Data dan Informasi
Data :
  • Data tidak memiliki makna apapun
  • Data dapat berbentuk angka, fakta, rincian, dan juga segala bentuk pengamatan empiris (obsservasi dan wawancara) terhadap suatu hal
  • Bagi orang awam, data tidak dapat dipahami maksudnya
  • Data mempunyai lingkup lebih detail dan bersifat teknis
Informasi :
  • Informasi sudah memiliki suatu makna tertentu
  • Informasi adalah data yang sudah diolah
  • Bagi orang awam, informasi mudah dipahami maksudnya
  • Informasi menghasilkan penjelasan yang dapat dipakai untuk mengambil keputusan
Contoh Data dan Informasi
Data :
  • Seorang siswa bernama A hanya masuk selama 20 hari dalam satu bulan
  • Terjadi kecelakaan di jalan
Informasi :
  • Dalam satu bulan ini karyawan bernama Z cuma masuk kerja selama 15 hari. hal tersebut dilakukan karena kondisi orang tuanya sudah tua dan mengalami sakit-sakitan. Dengan begitu, mereka juga harus keluar masuk berobat ke rumah sakit selama satu bulan ini.
Sumber :
https://www.dictio.id/t/apa-perbedaan-antara-data-dan-informasi/13069/2
https://www.ruangguru.co.id/contoh-data-pengertian-perbedaan-data-dan-juga-informasi-secara-lengkap
Share:
Powered by Blogger.

Labels

Pages

Pages

Featured Post

Penulisan Kata dalam Ejaan Bahasa Indonesia

Penulisan Kata dalam Ejaan Bahasa Indonesia Kata Dasar Kata dasar ditulis sebagai satu kesatuan. Contoh: Kantor pajak penuh sesak. Kat...