Monday, September 21, 2015

Apa itu Queue ?

Nah, jika pada postingan sebelumnya saya sudah membahas mengenai apa itu stack ?, sekarang saya akan membahas mengenai apa yang dimaksud dengan queue.

Secara pengertian queue adalah antrian. Pengertian secara teknis nya queue adalah suatu kumpulan data yang mana penambahan elemen hanya bisa dilakukan pada satu ujung (dari tail) dan pengambilan data dilakukan dari ujung lainnya (head).

Berbeda dengan stack yang menggunakan prinsip LIFO (Last in First out), pada queue menggunakan prinsip FIFO
(First in First out).

Contoh penggunaannya dalam kehidupan nyata adalah misalnya kita sedang mengantri di rumah sakit / puskesmas untuk mendapatkan pelayanan medis, maka orang yang datang terlebih dahulu akan dilayani lebih dahulu dari pada yang datang setelahnya.



Contoh source code program queue:
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#define MAX 10

typedef struct
{
char data[MAX];
char head;
char tail;
} Queue;
Queue antrian;
void Create()
{
antrian.head=antrian.tail=-1;
}
char IsEmpty()
{
if(antrian.tail==-1)
return 1;
else
return 0;
}
char IsFull()
{
if(antrian.tail==MAX-1) return 1;
else return 0;
}
void Enqueue(int data)
{
if(IsEmpty()==1)
{
antrian.head=antrian.tail=0;
antrian.data[antrian.tail]=data;
cout<<"Data "<<antrian.data[antrian.tail]<<" Masuk!!";
}
else if(IsFull()==0)
{
antrian.tail++;
antrian.data[antrian.tail]=data;
cout<<"Data "<<antrian.data[antrian.tail]<<" Masuk!!";
}
else if (IsFull() == 1)
{
cout<<"Maaf, penuh"<<endl;
cout<<data<<" Data tidak masuk";
}
}

void Dequeue()
{
char i;
char e = antrian.data[antrian.head];
if (antrian.tail == -1)
{
cout<<"Data Kosong"<<endl;
}
else
{
for(i=antrian.head;i<=antrian.tail-1;i++)
{
antrian.data[i] = antrian.data[i+1];
}
antrian.tail--;
cout<<"Data yang Keluar lebih dulu = "<<e<<endl;
}
}
void Clear()
{
antrian.head=antrian.tail=-1;
cout<<"Data dihapus"<<endl;

}
void Tampil()
{
if(IsEmpty()==0)
{
cout<<"Data Dalam Antrian"<<endl;
cout<<"==========================="<<endl;
cout<<endl;
for(char i=antrian.head;i<=antrian.tail;i++)
{
cout<<"| "<<antrian.data[i]<<" |";
}
}
else cout<<"Data Kosong";
}
void main()
{
int pil;
char data;
Create();
do
{
clrscr();
cout<<"Queue data berupa String"<<endl;
cout<<"=================================="<<endl;
cout<<endl;

cout<<"1. Masukkan data"<<endl;
cout<<"2. Hapus data"<<endl;
cout<<"3. Cetak"<<endl;
cout<<"4. Hapus semua"<<endl;
cout<<"5. Keluar"<<endl;
cout<<"Pilihan Anda= "; cin>>pil;
switch(pil)
{
case 1:
{
cout<<endl;
cout<<"Data = "; cin>>data;
Enqueue(data);
break;
}
case 2:
{
cout<<endl;
Dequeue();
break;
}
case 3:
{
cout<<endl;
Tampil();
break;
}
case 4:
{
cout<<endl;
Clear();
break;
}
}
getch();
} while(pil!=5);
}


Eksekusi / Menjalankan Program Kursi Bioskop

Di postingan saya kali ini saya akan share cara menjalankan program perl yang sudah disimpan di notepad sebelumnya. Bagi yang belum punya programnya bisa di download di sini

Untuk mengeksekusi program ada 2 cara, silakan agan simak video saya berikut ini:

Thanks for Watching, semoga agan terbantu dengan video saya.... :)

Tuesday, September 15, 2015

Linklist in Perl

Haloo, kali ini saya akan menyambung postingan mengenai link list dari postingan sebelumnya di sini http://ngeblogapik.blogspot.co.id/2015/09/konsep-dasar-algoritma-link-list.html bagi yang belum tahu apa itu link list silakan dibuka dulu url di atas. Mohon agan baca dulu postingan saya yang sebelumnya supaya bisa nyambung sama yang sekarang ini gan :)

Kali ini akan saya share source code nya, monggo ....

$list = $tail = undef;

foreach (1..5) {
    my $node = [ undef, $_ * $_ ];
    $list = undef;
    $tail = \$list; #tail linklist nya
    foreach (1..5) {
my $node = [ undef, $_ * $_ ];
$$tail = $node; #tail = node setelah linklist terisi
$tail = \$node->[NEXT]; #isi linklist berikutnya
    }
}


nah, terima kasih, semoga bermanfaat :)

Monday, September 14, 2015

Program Kursi Bioskop menggunakan Perl

http://images.solopos.com/2012/03/the-raid.jpg
Yo frenss, siapa yang di sini belum pernah nonton di bioskop ? Pasti sudah pernahkan... Sebelum agan masuk ke bioskop kan pasti harus beli tiket dulu di mbak-mbak kasir yang jaga, nah pada saat beli karcis pasti mbaknya yang cantik bilang "mau duduk di kursi yang mana mas ?" jangan sampai agan jawab "mau duduk di pelaminan sama kamuuhhh ...." :') pasti langsung dipanggilin security nya entar.

Kalau agan jeli, sebenarnya nomor-nomor yang ada pada kursi biskop itu merupakan sebuah array 2 dimensi yang disusun sedemikian rupa agar
mudah dipanggil.

Pengertian array adalah sekumpulan variabel yang memiliki tipe data yang sama dan dinyatakan dengan nama yang sama.

Nah, pada kesempatan kali ini saya akan membagikan tutorial bagaimana cara membuat program sederhana untuk pemesanan kursi bioskop menggunakan bahasa pemrograman Perl, silakan disimak caranya :

1. Pertama, buka notepad
2. Kedua, silakan copy dan paste source code saya di bawah ini ke dalam notepad

@nomor = ([1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25],[26,27,28,29,30]); #ini adalah deklarasi isi arraynya
for(;;){ #ini adalah fungsi untuk melakukan infinite loop
for($a=0;$a<6;$a=$a+1){  #dan ini adalah kondisi yang ingin diulang
for($b=0;$b<5;$b=$b+1){
print " [$nomor[$a][$b]] "; #hasil perulangan yang ingin ditampilkan (sampai bawah)

}print "\n";}
print "pesan nomor berapa ?\n"; #di sini untuk input mau pesan nomor berapa
$x = <>;  #input dan deklarasi variabel
chomp($x);
if($x<=30 and $x>=1){ print "\n"; #pada program ini jumlah kursinya 30 jadi if nya seperti ini
if($x>=1 and $x<=5)
{
if($nomor[0][$x-1] == "X" ){print "SUDAH DIPESAN \n\n"} #apabila kursi sudah dipesan
$nomor[0][$x-1] = "X" ; #setelah kursi dipesan maka nomor akan berubah menjadi X
}
if($x>=6 and $x<=10)
{
if($nomor[1][$x-6] == "X" ){print "SUDAH DIPESAN \n\n"}
$nomor[1][$x-6]="X";

}
if($x>=11 and $x<=15)
{
if($nomor[2][$x-11] == "X" ){print "SUDAH DIPESAN \n\n"}
$nomor[2][$x-11]="X";

}
if($x>=16 and $x<=20)
{
if($nomor[3][$x-16] == "X" ){print "SUDAH DIPESAN \n\n"}
$nomor[3][$x-16]="X";

}
if($x>=21 and $x<=25)
{
if($nomor[4][$x-21] == "X" ){print "SUDAH DIPESAN \n\n"}
$nomor[4][$x-21]="X";

}
if($x>=26 and $x<=30)
{
if($nomor[5][$x-26] == "X" ){print "SUDAH DIPESAN \n\n"}
$nomor[5][$x-26]="X";

}}
else {print "\nKURSI TIDAK ADA \n\n";} #output apabila ada inputan yang bukan merupakan nomor kursi

}

3. Setelah disalin maka simpan file ini dalam bentuk .pl .mis: bioskop.pl dan save type as :all files
4. Untuk menjalankannya bisa lewat cmd dulu (win+R) ketik "cmd" tanpa tanda petik <enter>
masuk ke dalam direktori penyimpanan misal: saya simpan di data D dalam folder perl
D:
cd perl
bioskop.pl
atau agan bisa double click pada file bioskop yang sudah agan buat.

Kalau berhasil tampilannya akan seperti ini:





Apa itu Stack ?

Stack adalah sebuah kumpulan data yang diletakkan di atas data lain. Dengan begitu stack bisa diartikan juga sebagai LIFO (Last in First out), jadi data yang terakhir masuk akan keluar pertama (lebih awal).


Pada stack kegiatan menginputkan data dapat disebut push, dan
mengambil data disebut pop.
Pada saat sebuah stack masih kosong maka stack tersebut adalah top sekaligus bottom. Dan saat dilakukan push maka data yang pertama adalah top, dan jika kemudian dilakukan push lagi maka data yang kedua adalah top begitu pula seterusnya.

Pada stack top merupakan data yang keluar pertama, karena letaknya berada di paling atas.

Berikut ini adalah contoh push pada stack:
Dan ini proses pop :


Sunday, September 13, 2015

Cara Mematikan / Menghilangkan Iklan Sponsor di BBM Feeds atau Umpan BBM

Kalau ada iklan sponsor di BBM Feeds / Umpan BBM pasti sangat mengganggu kan? Tapi bisa kok di hilangin

caranya :

1. buka BBM
2. buka tab BBM Feeds / Umpan BBM
3. Klik contacts

nah, udah hilang kan ??? selamat mencoba :)

Wednesday, September 9, 2015

Konsep Dasar Algoritma Link List

Pengertian Link List

Sudah pernah dengar tentang Link List ? Bagi yang belum tahu apa itu link list, secara pengertian link list merupakan salah satu bentuk struktur data yang berisi kumpulan data (node) yang tersusun secara continue dan saling sambung menyambung antara data yang satu dengan data yang lainnya.

Link list bisa juga disebut dengan variabel berantai, dan setiap node pada link list menempati alokasi memori secara dinamis.

Bedasarkan tipe link list dibedakan menjadi 3 jenis link list:

1. Single Link List
Single link list adalah link list yang hanya
menggunakan satu variabel pointer saja (maksudnya arah panahnya hanya satu arah saja).



2. Double Link List
Double link list adalah sekumpulan elemen-elemen yang saling berhubungan yang dihubungkan oleh dua pointer baik depan atau belakang (next and previous).


3. Circular Link List
Circular link list adalah kumpulan dari elemen elemen yang saling berhubungan antara yang saru dan yang lainnya, termasuk head dan tail pada link list ini saling berhuungan.

Konsep Kerja Link List

Pada intinya konsep kerja link list menurut saya agak mirip dengan array gan,  jadi pada mulanya adalah sebuah data yang kosong yang pada mulanya adalah " head=tail ". Biar lebih jelas saya sertakan gambar berikut:
Jadi pada saat link list belum terisi maka posisi head = posisi tail, bisa disebut juga belum memiliki ujung.

Kemudian pada saat data tersebut diberi nilai maka posisi tail akan bergeser, untuk lebih jelasnya saya sertakan gambar berikut:
head = tail
new_tail = tail
Begitu pula proses selanjutnya berlangsung.

Apabila agan masih belum jelas dengan penjelasan saya di atas, berikut saya sertakan video yang menjadi referensi saya:


Terima kasih atas kunjungannya, semoga atikel yang saya tulis dapat bermanfaat dan mudah dipahami.



Thursday, September 3, 2015

Membuat Kalkulator Bilangan Pecahan menggunakan Perl

Di zaman teknologi yang berkembang pesat saat ini, kita tidaklah terlepas dari bentuan komputer dalam melakukan pekerjaan kita sehari-hari. Tanpa kita sadari ternyata teknologi yang kita gunakan saat ini adalah serangkaian program-program yang telah dibuat oleh seorang programmer agar berjalan sesuai dengan fungsi dan kebutuhan user. Nah, untuk menjadi seorang programmer
tidaklah semudah membalikkan telapak tangan, namun harus dilalui dengan kerja keras dan logika yang kuat.

Maka dari itu pada kesempatan kali ini, saya akan membagikan bagaimana cara membuat kalkulator yang dapat menghitung bilangan pecahan dengan menggunakan bahasa pemrograman Perl.

Perl merupakan singkatan dari Practical Extraction and Report Language, dibuat oleh Larry Wall.
Perl adalah bahasa interpreter sekaligus kompiler, artinya Perl akan mendeteksi setiap baris untuk mencari syntax error sebelum program dijalankan.
Ketentuan-ketentuan: 
  • Perl memiliki tiga tipe data: skalar, array, dan hash.
  • Skalar menyimpan nilai tunggal, array menyimpan kumpulan skalar dengan urutan tertentu, sedangkan hash menyimpan kumpulan skalar berpasangan.
  • Sebuah variabel dinyatakan dengan tanda awalan tertentu yang merujuk pada tipe data yang dikandungnya, serta nama yang berfungsi sebagai pengenal.
  • Tanda pengenal adalah $ untuk skalar, @ untuk array, dan % untuk hash.
  • Nama variabel terdiri atas huruf dan angka, disebut juga alfanumerik (karakter “_” dihitung sebagai huruf).
  • Nama variabel tidak boleh dimulai dengan angka.
  • Tidak ada ketentuan mengikat mengenai berapa panjang nama variabel yang boleh digunakan

Semoga artikel yang saya tulis ini dapat bermanfaat dan mudah dimengerti, silakan disimak ...

pertama silakan buka notepad dan copy script di bawah ini

Source Code

print " What is the first number?\n";
        $a = <>; #mendeklarasikan tipe data
        chomp($a);  #fungsi ini untuk menyimpan inputan user ke dalam variabel
        print "__ \n";
        $b = <>;
        chomp($b);

print " What is the second number?\n";
        $c = <>;
        chomp($c);
        print "__\n";
        $d = <>;
        chomp($d);

$pembilang = $b * $d;

$atas_kiri = ($pembilang / $b) ; #melakukan proses perhitungan
$atas_kiri2 = $atas_kiri * $a ;
$atas_kanan = ($pembilang / $d)  ;
$atas_kanan2 = $atas_kanan * $c;


print "\n1. + \n2. -\n3. x\n4. /\n"; #menampilkan output
print "What is operator u want?\n";
        $z = <>;
        chomp($z);

if ($z == 1){       #fungsi if
print "\n".$atas_kiri2 ." + ".$atas_kanan2 ;
print "\n_______\n";
print $pembilang . "\n\n";
$asd = $atas_kiri2 + $atas_kanan2;
print $asd;
print "\n_______\n";
print $pembilang . "\n\n";
print $asd / $pembilang;
}

if ($z == 2){
print "\n".$atas_kiri2 ." - ".$atas_kanan2 ;
print "\n_______\n";
print $pembilang . "\n\n";
$asd = $atas_kiri2 - $atas_kanan2;
print $asd;
print "\n_______\n";
print $pembilang . "\n\n";
print $asd / $pembilang;
}

if ($z == 3){
print "\n".$a ." x ".$c ;
print "\n_______\n";
print "\n".$b ." x ".$d ." \n \n" ;
print $a * $c ;
print "\n_______\n";
print $b * $d;
$jkl = $a * $c;
$iop = $b * $d;
print "\n" . $jkl / $iop ;
}

if ($z == 4){
print "\n".$a ." x ".$d ;
print "\n_______\n";
print "\n".$b ." x ".$c ." \n \n" ;
print $a * $d ;
print "\n_______\n";
print $b * $c;
$jkl = $a * $d;
$iop = $b * $c;
print "\n" . $jkl / $iop ;
}

nah kalau sudah agan catat silakan disimpan dan berikan akhiran .pl mis: kalkulator.pl , save as type : all files

Untuk mengeksekusi program tersebut silakan buka direktori tempat penyimpanan program tersebut dati CMD, lalu ketikkan nama file nya mis:calculator.py kemudian tekan enter
Jika berhasil maka akan muncul tampilan seperti berikut :