Wednesday 27 May 2015

TRANSMITTER DAN RECEIVER MENGGUNAKAN SIMULASI PROTEUS ISIS 8 PROFESSIONAL

TRANSMITTER DAN RECEIVER MENGGUNAKAN SIMULASI PROTEUS ISIS 8 PROFESSIONAL.

Simulasi ini menggunakan 2 microcontroller sebagai transmitter dan receiver data.







Menggunakan saklar untuk menghidupkan lampu...
Direkomendasikan untuk final project komunkasi data..


Download Proteus file ~~~~~>Di Sini


Monday 25 May 2015

Program Queue Menggunakan Struct

WAH GAN!!! TERNYATA TUGASNYA PROGRAM QUEUE MENGGUNAKAN CLASS, BUKAN STRUCT!!

Coba yang ini gan!!!!!

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

struct queue
{
 int info;
 queue *next;
};

queue *head;
queue *tail;
queue *p;

void buat_queue()
{
    head = NULL;
    tail = NULL;
    cout<<"Queue Telah di buat ! "<<endl;
}

void enqueue(int temp)
{
 if(head==NULL && tail == NULL)
 {
    p=(queue *)malloc(sizeof(queue));
    p->info=temp;
    p->next=NULL;
    head=p;
    tail=p;
 }
 else
 {
    p=(queue *)malloc(sizeof(queue));
    p->info=temp;
    p->next=NULL;
    tail->next=p;
    tail=p;
 }
}

void tampilkan()
{
 p=head;
 while(p!=NULL)
 {
    cout<<p->info<<endl;
    p=p->next;


 }
}

void dequeue()
{
  if(head == tail)
  {
     p=head;
     head=NULL;
     tail=NULL;
     free(p);
  }
  else
  {
    p=head;
    head=head->next;
    p->next=NULL;
   free(p);
  }
}

void main()
{
    int menu,temp;
  do
  {

      cout<<"1. Buat Queue "<<endl;
      cout<<"2. Enqueue "<<endl;
      cout<<"3. Dequeue "<<endl;
      cout<<"4. Tampilkan "<<endl;
      cout<<"5. Keluar "<<endl;
      cout<<"Masukkan Menu : ";
      cin>>menu;

      switch(menu)
      {
        case 1 :
            buat_queue();
        break;

        case 2 :
            cout<<"Masukkan Nilai : ";
            cin>>temp;
            enqueue(temp);
        break;

        case 3 :
          dequeue();
        break;

        case 4 :
            tampilkan();
        break;

        case 5 :
        break;

        default :
        cout<<"Pilihan Tidak Ada ! "<<endl;
        break;
      }
     getch();
      clrscr();
  }while(menu!=5);


}


=============================0000===================================

Program Queue Menggunakan Struct

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

struct tumpukan
{
 char data;
 tumpukan*next;
};
tumpukan*atas;
tumpukan*bawah;
tumpukan*baru;
tumpukan*hapus;
tumpukan*bantu; 

void push()
{
baru=new tumpukan;
fflush(stdin);
printf("Data yg ingin dimasukkan -> ");
scanf("%c",&baru->data);
baru->next=NULL;
if(atas==NULL)
{
atas=baru;
bawah=baru;
}
else
{
baru->next=atas;
atas=baru;
}
}

void pop()
{
if(atas!=NULL) 
{
if(atas==bawah)
{
delete atas;
atas=NULL;
}else{
hapus=atas;
atas=atas->next;
delete hapus;
}
 
}else{
printf("tumpukan kosong\nTekan enter untuk melanjutkan...");
getch();
}
}


void show()
{
bantu=atas;
while(bantu!=NULL)
{
printf("| %c |\n",bantu->data);
bantu=bantu->next;
}
printf("\ntekan enter untuk melanjutkan...\n");
getch();
}


void main()
{
int clrscr();
int pil;
do
{
clrscr();
printf("program tumpukan\n");
printf("==================\n");
printf("1.push\n");
printf("2.pop\n");
printf("3.tampil\n");
printf("4.keluar\n");
printf("Masukkan pilihan : ");scanf("%i",&pil);
switch(pil)
{
case 1:
push();
break;
case 2:
pop();
break;
case 3:
show();
break;
}
}
while(pil!=4);
}



Hasil Compile
yang di harapkan 


Kenyataan



Sunday 24 May 2015

Contoh Program C++ Linked List

PENGERTIAN LINKED LIST

Linked list adalah sejumlah simpul (node) yang dikaitkan dengan simpul yang lain dengan bantuan pointer dalam suatu urutan tertentu. Suatu linked list dikatakan single linked list apabila hanya ada satu pointer yang menghubungkan setiap node (satu arah “next”).


ATURAN LINKED LIST

Linked list mempunyai aturan:
1.      Data harus memiliki hubungan dengan yang lain.
2.      Data yang terhubung tidak boleh bercabang.


PERANCANGAN LINKED LIST

1.      Single Linked List
Tahapan pertama ialah membuat struct (karena setiap node akan berbentuk struct) Dan memiliki satu buah fungsi pointer juga bertype struct yang akan menghubungkan setiap node .

2.      Double Linked List
Lain Halnya dengan single List, double Linked List adalah suatu linked list yang mempunyai 2 penunjuk ke data sebelumnya dan berikutnya, memiliki 2 buah pointer, setiap node akan terhubung dengan pointer kanan dan kiri.



PENJELASAN MENYIMPAN DATA PADA LINKED LIST

1 → 3 → 5 → 6 → 2 → 7

Pada linked list di atas, masing-masing data mempunyai hubungan dengan data lain. Untuk bisa benar-benar menggunakan metode linked list, kita harus mematuhi peraturan linked list. Setelah itu, kita harus menetapkan di mana posisi head dan null berada. Head merupakan data yang tidak memiliki hubungan di belakang, sedangkan null merupakan data yang paling terakhir atau yang tidak memiliki hubungan di depannya. Setiap data harus memiliki hubungan dengan data yang lain.

struct node        
{
      int data;
      node* next;
};



PENJELASAN MENYISIPAKAN DATA PADA LINKED LIST

1 → 3 → 5 → 6 → 2 → 7

Melakukan penyisipan data pada linked list di atas, dilakukan dengan cara menghapus rantai hubungan terlebih dahulu lalu memberikan angka baru dan selanjutnya memberikan rantai hubungan baru.


 Jika data di tambahkan di tengah.
Misal kita akan memberi angka 2 di antara angka 1 dan 3. Maka mula-mula kita harus memutus rantai hubungan antara angka 1 dan 3. Setelah itu kita memberikan rantai hubungan baru dari angka satu menuju angka 2, dan dari angka 2 menuju angka 3.

1è 2 è 3 → 5 → 6 → 2 → 7


 Jika data di tambahkan di awal.
Misal kita akan memberi angka 8 di awal. Maka mula-mula kita harus menambahkan angka 8 di awal. Lalu setelah itu memindah posisi head ke angka 8 karena angka 8 merupakan data yang pertama. Selanjutnya kita harus menghubungkan angka 8 dengan angka 1 dengan menambahkan rantai hubungan antara angka 8 dan angka 1. 

8 è  1 → 3 → 5 → 6 → 2 → 7


 Jika data di tambahkan di akhir.
Misal kita akan memberi angka 9 di akhir. Maka kita perlu melakukan pemindahan null, karena null merupakan penanda akhir data.

Jadi mula-mula kita harus memberikan angka 9 setelah angka 7. Lalu menggeser posisi null ke posisi 9. Terakhir kita harus menghubungkan angka 9 dengan angka 7 dengan memberikan rantai hubungan antara angka 9 dan angka 7. 

1 → 3 → 5 → 6 → 2 → 7è 9



MENGHAPUS DATA PADA LINKED LIST


4 → 1 → 3 → 5 → 6 → 8 → 10 → 2 → 7 → 0 → 11

Misal kita akan pelakukan penghapusan pada angka 5, angka 4, dan angka 11. Maka yang kita lakukan tidaklah menghapus angka-angka tersebut secara fisik, melainkan hanya melakukan pembelokkan arah sehingga angka-angka tersebut tidak memiliki hubungan dengan angka sebelum atau sesudahnya.

Pertama kita akan menghapus angka 5. Jadi yang kita lakukan cukup melakukan pembelokkan arah pada angka 5. Maksudnya, rantai hubungan yang menuju angka 5 ( setelah angka 3 ) di buat berbelok dan tidak menuju angka 5. Kita buat rantai tersebut menuju langsung ke angka setelah 5 yaitu angka 6. Lalu rantai hubungan setelah angka 5 kita hapus.

Dengan begitu angka 5 masih ada secara fisik, tetapi tidak ada secara tampilan. Karena memang angka 5 berubah sifatnya menjadi hidden atau tersembunyi. Itu disebabkan angka 5 tidak di deklarasikan oleh rantai hubungan.

Kedua kita akan menghapus angka 4. Untuk menghapus angka 4, caranya masih sama seperti menghilangkan angka 5. Tetapi pada angka 4 kita mempunyai tambahan langkah. Yakni memindah posisi head ke angka selanjutnya yaitu angka 1.

Setelah memindah head, kita cukup menghilangkan rantai penghubung setelah angka 4 yang menuju angka 1. Dengan begitu angka 4 kini sama dengan angka 5, yaitu tersembunyi dan tidak di deklarasikan.

Ketiga kita akan menghapus angka 11. Untuk menghapus angka 11, caranya mirip dengan menghapus angka 4. Tetapi yang kita pindah bukanlah head tapi null yang berada di angka 11. Itu dikarenakan angka 11 merupakan angka terakhir dan mempunyai null sebagai penanda.

Setelah memindah null ke angka sebelumnya yakni 0. Maka kita harus menghapus rantai penghubung sebelum angka 11 yaitu setelah angka 0. Dengan begitu angka 11 menjadi tidak terdeklarasikan dan tersembunyi.

Begitulah bagaimana cara menghapus angka yang berada di awal, tengah, dan juga akhir. Secara fisik angka-angka tersebut tidak terhapus, hanya saja angka tersebut dibuat tersembunyi dan tidak dideklarasikan.


MENGHAPUS DATA PADA LINKED LIST

3 → 5 → 10 → 7 → 0

Misal kita akan melakukan pembelokkan pada data di atas. Maka kita harus melakukan proses 

menghapus / memutuskan node 10 ke 7 dan 7 ke 0.
Kemudian membelokan node dari 10 ke 0.
Kemudian membelokan node 0 ke 7, blok 7 menjadi NULL karena data terakhir.


PROGRAM C++ LINKED LIST 

#include <iostream>
#include <conio.h>
#include <iomanip> 
using namespace std;

struct node
{
      int data;
      node* next; 
};


/* 

NAMA: Irfan Fahrurrozi
NIM : 14.11.7986
KELAS: 14-S1TI-06

 */

node* head;
node* tail;
node* curr;
node* entry;
node* del;

void inisialisasi()
{
      head = NULL;
      tail = NULL;
}

/* 

INI MERUPAKAN IMPLEMENTASI PROGRAM
MENGGUNAKAN LINKED LIST.
© IRFAN FAHRURROZI

 */

void input(int dt)
{
      entry = (node* )malloc(sizeof(node)); 
      entry->data = dt;
      entry->next = NULL;
      if(head==NULL)
      {
            head = entry;
            tail = head;
      }
      else
      {
            tail->next = entry;
            tail = entry;
      }
}

void hapus()
{
      int simpan;
      if(head==NULL)
      {
            cout<<"\nlinked list kosong, penghapusan tidak bisa dilakukan"<<endl;
      }
      else
      {
            simpan  = head ->data;
            cout<<"\ndata yang dihapus adalah "<<simpan<<endl;
           
            del = head;
            head = head->next;
            delete del;
      }
}

void cetak()
{
      curr = head;
      if(head == NULL)
            cout<<"\ntidak ada data dalam linked list"<<endl;
      else
      {
            cout<<"\nData yang ada dalam linked list adalah"<<endl;
            cout<<setw(6);
            while(curr!=NULL)
            {
                  cout<<curr->data<<"->";
                  curr = curr->next;
            }
            cout<<endl;
      }

}

void menu()
{
      char pilih, ulang;
      int data;

      do
      {
      system("cls");
      cout<<"SINGLE LINKED LIST NON CIRCULAR"<<endl;
      cout<<"-------------------------------"<<endl;
      cout<<"Menu : "<<endl;
      cout<<"1. Input data"<<endl;
      cout<<"2. Hapus data"<<endl;
      cout<<"3. Cetak Data"<<endl;
      cout<<"4. Exit"<<endl;
      cout<<"Masukkan pilihan Anda : ";
      cin>>pilih;

      switch(pilih)
      {
      case '1' :
            cout<<"\nMasukkan data : ";
            cin>>data;
            input(data);
            break;
      case '2' :
            hapus();
            break;
      case '3' :
            cetak();
            break;
      case '4' :
            exit(0);
            break;
      default :
            cout<<"\nPilih ulang"<<endl;
      }
      cout<<"\nKembali ke menu?(y/n)";
      cin>>ulang;
      }while(ulang=='y' || ulang=='Y');
}


int main()
{

      inisialisasi();
      menu();

      return EXIT_SUCCESS;
}


Contoh Program C++ Menggunakan Struct

1.     Deskripsi data
Program yang saya buat ini merupakan sebuah program yang bertujuan untuk menyimpan data dari para peminjam alat musik dari Mbah Mangil.

Data yang saya buat pada program ini, menggunakan beberapa struct. Fungsinya agar memudahkan dalam melakukan pengisian data. Hal ini akan membuat efektifitas program menjadi lebih baik.  

Struct yang  saya gunakan :
v  struct jenisInstrumen
v  struct merk
v  struct perangkatInstrumen

Disitu saya membuat tiga buah struct. Yakni Struct perangkatInstrumen, jenisInstrumen dan merk. Ketiga ini mempunyai kaitan, di mana struct perangkatInstrumen menjadi struct pokok pada program ini.
Sedangkan kedua struct yang lain (jenisInstrumen dan merk) menjadi substruct dari struct pokok perangkatIstrumen. Substruct ini berfungsi untuk memberikan informasi mengenai jenis instrumen yang di pinjam dan juga merk dari instrumennya. Pada masing-masing subsctruct terdapat elemen-elemen.
Dari struct-struct di atas, saya bisa memberikan informasi tentang perangkat musik yang dipinjam. Informasi tersebut meliputi aliran musik hingga nama penanggung jawab.



3.     Implementasi Pada Program
Kode Program

/*
     PROGRAM DATABASE TEMPAT PENYEWAAN ALAT MUSIK
     DIBUAT OLEH : IRFAN FAHRURROZI cucunya Mbah Mangil.

 */

#include <iostream>
#include <string>
using namespace std;

struct jenisInstrumen{
     string jenisInstrumen;
};

struct merk{
     string vendor;
     string tipe;
     string negara;
};

struct perangkatInstrumen{
     struct jenisInstrumen jns;
     struct merk asal;
     int jumlahMeminjam;
     int jumlahAlat;
     string penanggungJawab;
};

int main(){

     perangkatInstrumen mangil;
    
     //Memasukkan Data
     cout << "       ====Tempat Rental Alat Musik Mbah Mangil====         " <<endl;
     cout <<"     Mbah Mangil, menyewakan alat musik seikhlasnya"<<endl;
     cout << endl;

     cout << "Jenis Alat Musik : ";cin >> mangil.jns.jenisInstrumen;
     cout << "Merk Alat Musik        : ";cin >> mangil.asal.vendor;
     cout << "Tipe Alat Musik   : ";cin >> mangil.asal.tipe;
     cout << "Negara Produsen   : "; cin >> mangil.asal.negara;
    
     cout << "Jumlah Hari       : "; cin >> mangil.jumlahMeminjam;
     cout << "Jumlah Alat       : "; cin >> mangil.jumlahAlat;
     cout << "Penanggung Jawab  : "; cin >> mangil.penanggungJawab;
     cout << endl;
     cout << endl;
     //Menampilkan Data
     cout << "====Rekapitulasi Data by Mbah Mangil====" <<endl;
    
     cout << "Jenis Alat Musik : " << mangil.jns.jenisInstrumen<< endl;
     cout << "Merk Alat Musik   : "<< mangil.asal.vendor<< endl;
     cout << "Tipe Alat Musik   : "<< mangil.asal.tipe<< endl;
     cout << "Negara Produsen   : "<<mangil.asal.negara<<endl;;
    
     cout << "Jumlah Hari       : "<< mangil.jumlahMeminjam<< endl;
     cout << "Jumlah Alat       : "<<mangil.jumlahAlat<<endl;
     cout << "Penanggung Jawab  : "<< mangil.penanggungJawab<< endl;
     cout << endl;
     cout << endl;
     cout << endl;
    
     cout << "========Harap kembalikan Alat Musik sesuai dengan jumlah hari meminjam======="<<endl;
     cout << "====================Kalau rusak tak santet njenengan=========================";
     cout << endl;
     cout << endl;
     return 0;

}

Hasil Capture


1.     Kesimpulan
Penggunaan struct di tujukan untuk memberikan informasi-informasi terhadap sebuah objek. Hal ini memudahkan kita untuk mengetahui atau memberi tahu sebuah informasi sebuah objek. Informasi pada struct biasanya memiliki tipe mendeskripsikan objek tersebut.

Karena fungsinya ini, struct bisa dibuat sebagai pengolah penyimpanan data bermacam-macam bidang. Bisa digunakan untuk keperluan sehari-hari atau keperluan tugas kuliah.

Friday 22 May 2015

ORGANISASI DAN ARSITEKTUR KOMPUTER - MEMORY

TUGAS KELOMPOK
ORGANISASI DAN ARSITEKTUR KOMPUTER




 SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
AMIKOM YOGYAKARTA
2015


1.    Pengertian Memory
Memory adalah bagian dari komputer tempat program dan data tersimpan. Istilah store atau storrage untuk memory. Memory adalah tempat untuk menyimpan informasi yang dapat dibaca dan ditulis.

2.    Jenis memory

a.     Memory Internal
Memory internal adalah memory yang  dapat diakses langsung oleh processor.
Seperti : Register yang terdapat didalam processor, cache memory dan memori utama berada di luar processor.

b.     Memory Eksternal
Memory eksternal adalah memory yang diakses processor melalui piranti i/o.
Seperti :  Disket dan harddisk.

3.    Sifat sel memory
·         Sel memory memiliki dua keadaan stabil atau semi stabil , yang dapat digunakan untuk merepresentasikan bilangan biner 1 atau 0.
·         Sel memory mempuyai kemampuan untuk ditulisi (sedikitnya satu kali).
·         Sel memory mempuyai kemampuan untuk dibaca.
  

4.    Terminal fungsi sel memory


5.    Karakteristik sistem memory


6.    Lokasi memory

a.     Register
Berada di dalam chip processor.
Diakses langsung oleh processor dalam menjalankan operasinya.
Register digunakan sebagai memory sementaradalam perhitungan maupun pengolahan data dalam processor.

b.     Memory internal
Berada diluar chip processor.
Mengaksesnya langsung processor.
Dibedakan menjadi memory utama dan cache memory.

c.      Memory ekstenal
Diakses oleh processor memlalui piranti i/o.
Dapat berupa disk maupun pita.

7.    Kapasitas memory
Kapasitas memory internal maupun eksternal biasanya di nyatakan dalam bentuk byte ( 1 byte 8 bit) word. Panjang word umumnya 8,16,32 bit.

Memory eksternal biasanya lebih besar kapasitasnya daripada memory internal, hal ini disebabkan karena teknologi dan sifat penggunaannya yang berbeda
  

8.    Satuan transfer memory
Memory internal
Satuan transfer sama dengan jumlah saluran data yang masuk ke dan keluar dari modul memory.
Jumlah saluran ini sering kali sama dengan panjang word, tapi di mungkingkan juga tidak sama


9.    Konsep satuan transfer
Word merupakan satuan alami organisasi memory. Ukuran word biasanya sama dengan jumlah bit yang digunakan untuk repsentasi bilangan dan panjang instruksi.

Addressable units, pada sejumlah sistem, addressable unit adalah word. Namun terdapat sistem dengan pengalamatan pada tingkatan byte. Pada semua kasus hubungan antara panjang A suatu alamat dan jumlah N addressable unit adalah 2A =N.

Unit of transfer, adalah jumlah bit yang dibaca atau dituliskan ke dalam memory pada suatu saat. Pada memory eksternal, transfer data biasanya lebih besar dari suatu word, yang di sebut block.


10.    Metode Akses

a.     Sequential Access
·         Memory diorganisasi menjadi unit – unit data yg disebut record
·         Akses harus dibuat dalam bentuk urutan linier yang spesifik
·         Informasi pengalamatan yang disimpan dipakai untuk memisahkan record – record dan untuk membantu proses pencarian
·         Tedapat shared read/write mechanism untuk penulisan/pembacaan memorinya
·         Pita magnetik merupakan memory yang menggunakan metode sequential access
b.     Direct Access
·         Sama sequential acceess tedapat shared read/write mechnism.
·         Setiap blok dan record memiliki alamat unik berdasarkan lokasi fisiknya
·         Akses dilakukan langsung pada alamat memori
·         Disk adalah memori direct access

c.      Random Access
·         Setiap lokasi memori dipilih secara random dan diakses serta dialamati secara langsung.
·         Contohnya adalah memory utama

d.     Asscociate access
·         Jenis random akses yang memungkinkan pembandingan lokasi bit yang diinginkan untuk pencocokan
·         Data dicari berdasarkan isinya bukan alamatnya dalam memori
·         Contoh memori ini adalah cache momori


11.    Parameter Utama untuk Kerja

a.     Access Time

·         Bagi random access memory waktu akses adalah waktu yang dibutuhkan untuk melakukan operasi baca atau tulis
·         Memori non-random akses merupakan waktu yang dibutuhkan dalam mekanisme baca atau tulis pada lokasi tertentu

b.     Memory cycle time
·         Konsep ini digunakan pada random access memory
·         Terdiri dari access time ditambah dengan waktu yang diperlukan transient agar hilang pada saluran sinyal

c.      Transfer rate
             Kecepatan data transfer ke unit memory atau dari unit memory
1.      Random access memory sama dengan I/(cycle time)
2.      Non-random access memory dengan perumuusan:
TN = T A + (N/R)
          TN = waktu rata –rata untuk membaca atau menulis N bit
          TA = waktu akses rata-rata
          N = jumlah bit
          R = kecepatan transfer dalam bit per detik (bps)

   
12.    Bentuk Fisik
a.     Media penyimpanan volatile dan non-volatile
·         Volatile memory, informasi akan hilang apabila daya listriknya dimatikan
·         Non-volatile memory tidak hilang walau daya listriknya hilang.
·         Memory permukaan magnetick adalah contoh non volatile memory, sedangkan semikonduktor ada yang volatile dan non volatile

b.     Media erasable dan non erasable
·         Ada jenis memory semikonduktor yang bisa dihapus kecuali dengan menghancurkan unit storagenya, memory ini dikenal dengan ROM(read only memory)


13.    Keandalan/Kehandalan memory

Berapa banyak ?
a.      Sesuatu yang sulit dijawab karena berapapun kapasitas memory tentu aplikasi akan menggunakanannya.

Berapa cepat ?
b.      Memory harus mampu mengikuti kecepatan cpu sehingga terjadi sinkronisasi kerja antar CPU dan memory tanpa adanya waktu tunggu karena komponen lain belum selesai prosesnya.

Berapa mahal ?
c.       Relatif. Bagi produsen selalu mencari harga produksi paling murah tanpa mengorbankan kualitasnya untuk mengurangi daya saing dipasaran.

·         Semakin kecil waktu akses, semakin besar harga perbitnya
·         Semakin besar kapasitasnya , semakil kecil harga perbitnya
·         Semakin besar kapasitasnya, semakin besar waktu aksesnya

14.   Hirarki Memory


Menurunnya hirarki mengakibatkan:
a.      Penurunan harga/bit
b.      Penigkatan kapasitas
c.       Peningkatan waktu akses
d.      Penurunan frekuensi akses memory oleh CPU
Kunci keberhasilan sistem komputer akan tetap cepat namun kebutuhan kapasitas memory besar terpenuhi


16.    Satuan memory

a.      Satuan pokok memory adalah digit biner yang disebut dengan bit
b.      Bit dapat berisi sebuah angka 0 atau 1
c.       Memory juga dinyatakan dalam byte
·         1 byte = 8byte
·         Kumpulan byte dinyatakan dalam word
·         Panjang word yang umum adalah 8, 16, 32bit