/* */
MEDIA PENDIDIKAN dan PEMBELAJARAN Ilmu Mantiq (Logika): Kaidah Berfikir yang Memelihara Akal, agar tidak terjadi Kerancuan dalam Berfikir.

Thursday, December 17, 2020

Struktur Data Stack

Stack adalah tipe data abstrak dengan kapasitas terbatas (standar), dan stack juga merupakan struktur data sederhana yang memungkinkan penambahan dan penghapusan elemen dalam urutan tertentu. Setiap kali sebuah elemen ditambahkan, elemen tersebut akan berada di atas tumpukan dan satu-satunya elemen yang dapat dihapus adalah elemen yang berada di atas tumpukan, seperti tumpukan objek.

Fitur dasar Stack

1. Stack adalah daftar berurutan dari tipe data serupa.

2. Stack adalah struktur LIFO (Last in First out) atau dapat juga dikatakan FILO (First in Last out).

3. fungsi push () digunakan untuk memasukkan elemen baru ke dalam Stack dan fungsi pop () digunakan untuk menghapus elemen dari stack. Baik penyisipan dan penghapusan diperbolehkan hanya di satu ujung Tumpukan yang disebut Top.

4. Stack dikatakan berada dalam status Overflow jika sudah penuh dan dikatakan dalam status Underflow jika benar-benar kosong.

Link Download
  

Wednesday, December 2, 2020

QUEUE dengan Link List


Antrian adalah struktur data linier yang mengikuti FIFO yaitu metode First-In-First-Out.
Kedua ujung antrian disebut Depan dan Belakang, di mana Penyisipan selalu terjadi di Belakang dan elemen diakses atau dihapus dari Depan.
Saat mengimplementasikan antrian menggunakan array:
1.  Kita tidak dapat menambah ukuran array, jika kita memiliki lebih banyak elemen untuk disisipkan daripada kapasitas array.
2.  Jika kita membuat array yang sangat besar, kita akan membuang banyak ruang memori.
Oleh karena itu jika kita mengimplementasikan Queue menggunakan Linked list kita dapat menyelesaikan masalah ini, seperti pada Linked list, Node dibuat secara dinamis sesuai kebutuhan.
Jadi dengan menggunakan link list kita dapat membuat Antrian dengan ukuran variabel dan tergantung pada kebutuhan kita, kita dapat menambah atau mengurangi ukuran antrian.
Jadi, dengan peggunaan pointer head dengan Link List, kita akan menggunakan dua pointer, front dan rear untuk melacak kedua ujung list, sehingga kita dapat melakukan semua operasi di O (1).

#include <iostream>
using namespace std;
// Structure of Node.
struct Node
{
int data;
Node *link;
};
Node *front = NULL;
Node *rear = NULL;
//Function to check
if queue is empty or not
bool isempty()
{
 if(front == NULL && rear == NULL)
 return true;
 else
 return false;
}
//function to enter
elements in queue
void enqueue ( int
value )
{
 Node *ptr = new Node();
 ptr->data= value;
 ptr->link = NULL;
 //If inserting the first element/node
 if( front == NULL )
 {   front = ptr;   rear = ptr;  }  else  {   rear ->link = ptr;   rear = ptr;  } }   //function to
delete/remove element from queue void dequeue ( ) {  if( isempty() )  cout<<"Queue is empty\n";  else  //only one element/node in queue.  if( front == rear)  {   free(front);   front = rear = NULL;  }  else  {   Node *ptr = front;   front = front->link;   free(ptr);  } }   //function to show
the element at front void showfront( ) {  if( isempty())  cout<<"Queue is empty\n";  else  cout<<"element at front is:"<<front->data; }   //function to display
queue void displayQueue() {  if (isempty())
cout<<"Queue is empty\n";
 else
 {
  Node *ptr = front;
  while( ptr !=NULL)
  {
   cout<<ptr->data<<"
";
   ptr= ptr->link;
  }
 }
}
//Main Function
int main()
 int choice, flag=1, value;
 while( flag == 1)
 {
  cout<<"\n1.enqueue 2.dequeue
3.showfront 4.displayQueue 5.exit\n";
cin>>choice;
switch (choice)
  {
  case 1: cout<<"Enter Value:\n";
          cin>>value;
          enqueue(value);
          break;
  case 2: dequeue();       
    break;
  case 3: showfront();
          break;
  case 4: displayQueue();
          break;
  case 5: flag = 0;
          break;
  }
 }
 return 0;
}  

Wednesday, November 18, 2020

Penjadwalan pada Sistem Operasi dan Grid

Sebagian besar aplikasi bersifat interaktif untuk pengguna dalam sistem operasi (OS). OS melakukan penjadwalan level instruksi (CPU) dengan mengeksploitasi interleaving operasi I/O dan operasi CPU. Tujuan utama penjadwalan OS adalah keadilan antar proses. Dalam lingkungan grid, sebagian besar aplikasi bukanlah pengguna interaktif. Penjadwalan grid bekerja pada level task dengan eksploitasi task independen yang dieksekusi secara paralel. Tujuan utama penjadwalan grid adalah menyelesaikan pekerjaan atau aplikasi pada waktu mulai paling awal. Penjadwalan pada OS adalah cara menentukan proses resident yang dialokasikan dan dijalankan di satu CPU. Penjadwalan grid adalah cara mengalokasikan proses ke berbagai sumber daya untuk mengoptimalkan tujuan kinerja sistem yang luas atau memiliki tujuan khususPerangkat lunak yang dikenal sebagai middleware digunakan untuk menangani berbagai variasi dalam aplikasi perangkat lunak dan perangkat keras yang digunakan dalam lingkungan grid dengan berbagai bentuk jaringan grid. Salah satu komponen terpenting middleware adalah manajer sumber daya lokal yang menangani pemilihan sumber daya dan penjadwalan pekerjaan.

SOAL : TEORI BAHASA dan AUTOMATA

1. Jika S = { bab, b}

S*= { Λ dan word bentukan yang berasal dari aba dan b }, maka himpunan string yang terbentuk adalah                                                                                      

2. Jika S = { a, baab }

S* = { Λ dan word bentukan yang berasal dari a dan bab } maka himpunan string yang terbentuk adalah                                                                                      

3. Tentukan bahasa dari masing-masing grammar berikut :

 G1 dengan Q1 = {1. S → AaAa, 2. A → AaAa, 3. A → bc}, Derivasi kalimat terpendek dan umumnya?

Saturday, November 14, 2020

Perbedaan antara Grid, Cluster dan Cloud

Popularitas internet serta ketersediaan komputer yang powerful dengan jaringan berkecepatan tinggi mengubah cara kita menggunakan komputer saat ini. Peluang teknis ini menyebabkan kemungkinan penggunaan sumber daya terdistribusi secara geografis untuk memecahkan masalah berskala besar dalam ilmu pengetahuan, teknik, dan perdagangan. Penelitian terbaru tentang topik ini telah mengarah pada munculnya sebuah paradigma baru yang dikenal sebagai komputasi grid. Komputasi grid adalah infrastruktur perangkat keras dan perangkat lunak yang disediakan dan dapat diandalkan, konsisten, jangkauannya luas, dengan kemampuan komputasi yang tinggi. Penerapan lingkungan bersama melalui penyebaran infrastruktur layanan berbasis standar, yang secara terus-menerus mendukung penciptaan berbagi sumber daya dengan komunitas terdistribusi. Sumber daya dapat berupa komputer, ruang penyimpanan, aplikasi perangkat lunak dan data, semuanya terhubung melalui internet pada lapisan perangkat lunak middleware. Middleware menyediakan layanan dasar untuk keamanan, pemantauan, pengelolaan sumber daya, dan sebagainya. Kepemilikan sumber daya terdiri dari berbagai organisasi administratif yang berbeda, terbagi berdasarkan kebijakan yang ditetapkan secara lokal untuk menentukan apa yang akan dibagikan, siapa yang diizinkan untuk mengakses, dan dalam kondisi bagaimana. Masalah nyata dan spesifik yang mendasari konsep grid adalah pembagian sumber daya yang terkoordinasi dalam pemecahan masalah pada organisasi virtual multi-institusional secara dinamis. Kemajuan teknologi jaringan telah mendorong dan memberikan kesempatan penggunaan komputer yang terhubung dengan jaringan sebagai satu sistem komputasi terpadu tunggal, yang dikenal sebagai komputasi cluster. Cluster dapat digunakan dalam berbagai bentuk dengan keperluan yang berbeda, seperti komputasi kinerja tinggi dengan daya komputasi yang lebih dibandingkan komputer tunggal, sehingga dihasilkan keandalan yang tinggi dan lebih besar. Cluster menghasilkan throughput yang tinggi dengan kemampuan pemrosesan yang lebih lama dan lebih besar. Sebuah cluster memiliki beberapa karakteristik antara lain :
• Terdiri dari beberapa mesin-mesin bertipe sama.
• Tightly-coupled menggunakan koneksi jaringan yang dedicated
• Semua mesin berbagi sumber daya.
• Harus mempunyai software seperti implementasi MPI yang memungkinkan program-program dijalankan pada semua node.
Cluster berbeda dengan cloud dan grid karena cluster adalah sekelompok komputer yang terhubung dengan jaringan lokal, sedangkan cloud dan grid lebih luas dan dapat didistribusikan secara geografis. Cara lain untuk mengatakannya adalah dengan mengatakan bahwa sebuah cluster digabungkan secara tightly-coupled, sedangkan grid atau cloud digabungkan secara loosely-coupled. Cluster terdiri dari kelompok mesin dengan perangkat keras yang serupa, sedangkan cloud dan grid terdiri dari mesin dengan konfigurasi perangkat keras yang mungkin sangat berbeda. Perbedaan antara cloud dan grid dapat dinyatakan sebagai berikut:
• Distribusi sumber daya, komputasi cloud adalah model terpusat sedangkan komputasi grid adalah model terdesentralisasi dimana perhitungan dapat terjadi dibanyak domain administratif.
• Kepemilikan grid adalah kumpulan komputer yang dimiliki oleh banyak pihak dibeberapa lokasi dan terhubung bersama sehingga pengguna dapat berbagi kekuatan gabungan sumber daya. Cloud adalah kumpulan komputer yang biasanya dimiliki oleh satu pihak