Jumat, 30 November 2012

Dobel Link List


#include<stdio.h>
#include<conio.h>
#include<iostream>

struct node{
       int data;
       struct node *prev,*next,*info;
       };
       typedef struct node node;
       node *head,*last,*temp,*t,*p,search,item;
       int d;
       void addhead();
       void addmiddle();
       void addtail();
       void delhead();
       void delmiddle();
       void deltail();
       int Search();
       void disp();
int main(){
            int ch;
            while(1){
                     printf("\n1. add to head ");
                     printf("\n2. add to Middle ");
                     printf("\n3. add to tail ");
                     printf("\n4. Delete from head ");
                     printf("\n5. Delete from Middle ");
                     printf("\n6. Delete from tail ");
                     printf("\n7.earch");
                     printf("\n8. Exit");
                     printf("\nEnter your Choice : ");
                     scanf("%d",&ch);
            switch(ch){
                       case 1:
                            addhead();
                            disp();
                            break;
                       case 2:
                            addmiddle();
                            disp();
                            break;
                       case 3:
                            addtail();
                            disp();
                            break;
                       case 4:
                            delhead();
                            disp();
break;
case 5:
delmiddle();
disp();
break;
case 6:
deltail();
disp();
break;
case 7:
Search();
disp();
break;
case 8:
exit(0);
default:
printf("\nInvalid Choice");
}
getch();
}
}

void addhead()
{
temp=(node*)malloc(sizeof(node));
printf("\nEneter the Data : ");
scanf("%d",&temp->data);
temp->next=temp->prev=NULL;
if(head==NULL)
head=temp;
else
{
temp->next=head;
head->prev=temp;
head=temp;
}
}


void addmiddle()
{
int d;
temp=(node*)malloc(sizeof(node));
printf("\nEneter the Data : ");
scanf("%d",&temp->data);
temp->next=temp->prev=NULL;
if(head==NULL)
head=temp;
else
{
t=head;
printf("\nEnter the node after which insertion to be made : ");
scanf("%d",&d);
while(t!=NULL)
{
if(t->data==d)
{
temp->next=t->next;
temp->prev=t;
t->next=temp;
return;}
else
t=t->next;
}
printf("\nadd node not found");
}
}
void addtail()
{
node *t;
temp=(node*)malloc(sizeof(node));
printf("\nEneter the Data : ");
scanf("%d",&temp->data);
temp->next=temp->prev=NULL;
if(head==NULL)
head=temp;
else
{
t=head;
while(t->next!=NULL)
t=t->next;
t->next=temp;
temp->prev=t;
}
}
void delhaed()
{
if(head==NULL)
printf("\nList is Empty");
else
{
t=head;
printf("\nDeleted node is %d\n",t->data);
head=head->next;
head->prev=NULL;
free(t);
}
}
void delmiddle()
{
int d;
node *s,*n;
if(head==NULL)
printf("\nList is Empty");
else
{
printf("\nEnter  the node data to be deleted : ");
scanf("%d",&d);
if(head->data==d)
{
t=head;
head=head->next;
head->prev=NULL;
printf("\nDeleted node is %d\n",t->data);
free(t);
}
else
{
t=head;
while(t->next!=NULL)
{
if(t->data==d){
s=t;
printf("\nDeleted node is %d\n",s->data);
p=t->prev;
n=t->next;
p->next=t->next;
n->prev=p;
free(s);
}
else
{
p=p->next;
t=t->next;
}
}
}
} }
void deltail()
{
if(head==NULL)
printf("\nList is Empty");
else if(head->next==NULL)
{
t=head;
printf("\nDeleted node is %d\n",t->data);
head=NULL;
}
else
{
t=head;
while(t->next!=NULL)
{
t=t->next;
}
p=t->prev;
p->next=NULL;
printf("\nDeleted node is %d\n",t->data);
free(t);
}
}


int Search()
{
    while(head!=NULL)
    {
        if(head->info=item){ // if the values match,
            //return head; // return the matching node.
        head=head->next; }// otherwise, move on
    }
    system("pause");
    return 0;
}

Program Memecah Stack


#include <iostream>;
using namespace std;
                class stack
                {
                 
public :
                void input();
                void gabung();
                void output();
                 
private:
                char b[10], c[10], a[10];
                int k,l;
                };
                 
                void stack::input()
                {
                cout << "massukkan banyaknya tumpukan 1 : "; cin >> k;
                for (int i=0; i<k; i++)
                {cout << "masukkan elemen : "; cin >> b[i];}
                 
                cout << "massukkan banyaknya tumpukan 2 : "; cin >> l;
                for (int j=0; j<l; j++)
                {cout << "masukkan elemen : "; cin >> c[j];}
                }
                 void stack::gabung()
                {
                int j=k-1;
                int g=l;
                 for(int i=(k+l); i>=0; i--)
                {                  
                if(i<k)
                {a[i]=b[j];
                j--;}
                else
                {a[i]=c[g];
                g--;}
                }
                cout << "isi elemen tumpukan adalah"<<endl;
                for (int j =0; j< k+l; j++)
                {cout << a[j]<<" ";}
                 }
                 int main ()
                {
                 stack x;
                x.input();
                x.gabung();
                     system("PAUSE");
                    return EXIT_SUCCESS;
                }

Selasa, 27 November 2012

Program Tumpukan (Stack)


#include <iostream>;
using namespace std;
                class stack
                {
                 
public :
                void input();
                void gabung();
                void output();
                 
private:
                char b[10], c[10], a[10];
                int k,l;
                };
                 
                void stack::input()
                {
                cout << "massukkan banyaknya tumpukan 1 : "; cin >> k;
                for (int i=0; i<k; i++)
                {cout << "masukkan elemen : "; cin >> b[i];}
                 
                cout << "massukkan banyaknya tumpukan 2 : "; cin >> l;
                for (int j=0; j<l; j++)
                {cout << "masukkan elemen : "; cin >> c[j];}
                }
                 
                void stack::gabung()
                {
                int j=k-1;
                int g=l;
                 
                for(int i=(k+l); i>=0; i--)
                {                  
                if(i<k)
                {a[i]=b[j];
                j--;}
                else
                {a[i]=c[g];
                g--;}
                }
                cout << "isi elemen tumpukan adalah"<<endl;
                for (int j =0; j< k+l; j++)
                {cout << a[j]<<" ";}
                 
                }
                 
                int main ()
                {
                 
                stack x;
                x.input();
                x.gabung();
                 
                    system("PAUSE");
                    return EXIT_SUCCESS;
                }

Program Antrian Bioskop


#include <iostream>


using namespace std;

int main(){
    int antrian[]={0,0,0,0,0};
    int menu, properties;
    char konfirmasi;

    cout << "================== MENU PILIHAN ANTRIAN BIOSKOP ==================" << endl;
    cout << "== 1. Push / Masukkan Data                                   ==" << endl;
    cout << "== 2. Pop / Keluarkan Data                                   ==" << endl;
    cout << "== 3. Tampilkan Data                                         ==" << endl;
    cout << "== 4. Bersihkan Data                                         ==" << endl;
    cout << "== 5. Keluar Program                                         ==" << endl;
    cout << "===============================================================" << endl;
    cout << "Syarat dan Ketentuan Berlaku : " << endl;
    cout << "- Data Maksimal 5 " << endl;
    cout << "- Data Masukan Harus Berupa Angka selain 0 (nol) " << endl;
    cout << "===============================================================" << endl;

    properties = 0;

    while (properties == 0){
        cout << "pilihan menu = ";
        cin >> menu;
        switch (menu) {
            case 1 :    if(antrian[0] != 0){
                            cout << "Maaf data antrian penuh, Anda tidak bisa melakukan PUSH" << endl;
                            cout << "==========================================================" <<endl;
                        } else {
                            for (int an=4 ; an>=0 ; an--){
                                if (antrian[an] == 0){
                                    cout << "Masukkan Angka = ";
                                    cin >> antrian[an];
                                    cout << "==========================================================" <<endl;
                                    break;
                                }
                            }
                        }
                        break;
            case 2 :    if(antrian[4] == 0){
                            cout << "Maaf data antrian kosong, Anda tidak bisa melakukan POP" << endl;
                            cout << "==========================================================" <<endl;
                        } else {
                            int dataAkhir;
                            dataAkhir = antrian[4];
                            for (int an=4 ; an>=1 ; an--){
                                antrian[an] = antrian[an-1];
                            }
                            antrian[0] = 0;
                            cout << "Data yang dikeluarkan adalah = " << dataAkhir <<endl;
                            cout << "==========================================================" <<endl;
                        }
                        break;
            case 3 :    cout << "Data yang ada dalam antrian adalah = " << endl;
                        for(int as=0 ; as<=4 ; as++){
                            cout << "Data ke-" << as;
                            cout << " adalah = " << antrian[as] << endl;
                        }
                        cout << "==========================================================" <<endl;
                        break;
            case 4 :    if(antrian[4] == 0){
                            cout << "Maaf data antrian kosong, Tidak ada data yang akan dihapus" << endl;
                            cout << "==========================================================" <<endl;
                        } else {
                            cout << "Data yang ada dalam antrian akan dihapus, Apakah yakin (Y/N) = " << endl;
                            cin >> konfirmasi;

                            if (konfirmasi == 'Y' || konfirmasi == 'y'){
                                for(int as=0 ; as<=4 ; as++){
                                    antrian[as] = 0;
                                }
                                cout << "Data telah terhapus !" << endl;
                                cout << "==========================================================" <<endl;
                            }
                        }
                        break;
            case 5 :    properties = 1;
                        cout << "" << endl;
                        cout << "      ========= $$$$$$$$$$$$$$$$$$$$$$$$$$ =========" << endl;
                        cout << "   ===                                              ===" << endl;
                        cout << "===    Anda telah keluar dari program antrian FIFO     ===" << endl;
                        cout << "===                    Terima Kasih                    ===" << endl;
                        cout << "   ===                                              ===" << endl;
                        cout << "      ========= ^^^^^^^^^^^^^^^^^^^^^^^^^^^ =========" << endl;
                        break;
            default :   cout << "Maaf pilihan Anda tidak ada dalam Menu" <<endl;
                        break;
        }
    }
    return 0;
}

Rabu, 26 September 2012

Refleksi minggu ke-2

Pada minggu ke 2 ini membahas masalah tentang struct dan class. Dimana dibentuk 2 kelompok TP masing-masing kelompok mencari program yang ada struct dan class di internet kemudian mempelajari karakteristik struct, yg lain mempelajari karakteristik clas. Lalu ,endiskusikan kapan struct dan class digunakan dan mencari persamaan dan perbedaan. Kemudian di presentasikan ke depan materi yang dipelajari tersebut. Seelah itu dosen menutup dengan menarik kesimpilan dari semua materi tersebut.

Senin, 10 September 2012

Refleksi Minggu 1 Sdata

Di pertemuan pertama mata kuliah Sdata kali ini membahas tentang dasar-dasar pemrogaman. Kita kembali lagi pada pelajaran semester 1. Selain itu juga membahas latian soal yang sudah di download di grup facebook. Di antaranya membahas masalah parameter, method dimana juga sudah dipelajari di mata kuliah alpro lalu. Karena kemaren libur panjang dan kurang latian saya lupa mengenai materi tersebut. Sempet juga bahwa di bentuk kelompok untuk tugas proyek karena di mata kuliah ini juga ada tugas proyek lagi. Tugas proyek ini boleh memakai bahsa pemrogaman apa saja. Semoga saja besok bisa maksimal hasilnya.