Rabu, 03 Juni 2015

Penulisan Hello World Menggunakan Bahasa Perl Programming

Windows

Untuk Windows, kita akan menggunakan DWIM Perl. Ia merupakan sebuah paket yang mengandung Perl compiler / interpreter, Padre, IDE untuk Perl dan sejumlah ekstensi tambahan dari CPAN.
Untuk memulai silahkan kunjungi DWIM Perl dan ikuti tautan untuk mengunduh DWIM Perl untuk Windows.
Lalu, unduh berkas exe-nya dan instal di komputer Anda. Sebelumnya, pastikan Anda tidak memiliki versi lain dari Perl yang sudah terinstal sebelumnya.
Mereka dapat digunakan secara bersamaan namun akan memerlukan banyak penjelasan mengapa sebaiknya kita menggunakan satu versi Perl saja. Maka dari itu, untuk saat ini gunakan saja satu versi Perl pada komputer Anda.

Linux

Kebanyakan distro Linux saat ini datang membawa Perl versi terkini. Untuk saat ini kita akan menggunakan versi tersebut. Untuk editornya, Anda dapat menginstal Padre-kebanyakan distro Linux menyertakannya pada paket sistem manajemen resminya. Selain itu, Anda juga dapat menggunakan text editor lainnya. Jika Anda merasa familiar dengan vim atau Emacs, gunakanlah salah satunya. Selain itu Gedit juga bisa jadi pilihan.

Apple

Saya percaya bahwa Macs juga datang dengan Perl atau Anda dapat dengan mudah menginstalnya melalui alat bantu instalasi standar.

Editor dan IDE

Meskipun hal tersebut disarankan demikian, Anda tidak harus menggunakan Padre IDE untuk menuliskan kode Perl. Pada bagian selanjutnya saya akan membuat daftar sejumlah editor dan IDE yang dapat Anda gunakan dalam pemrograman Perl. Meskipun Anda memilih editor lain saya merekomendasikan - untuk pengguna Windows - untuk menginstal paket DWIM Perl tersebut di atas.
Ia memiliki banyak paket ekstensi Perl sehingga akan menghemat waktu Anda dalam bekerja.

Video

Jika Anda mau, Anda juga dapat melihat video Hello world dengan Perl yang saya unggah ke YouTube. Anda juga mungkin ingin melihat video pelatihan Perl Maven untuk pemula.

Program pertama

Program pertama Anda akan tampak seperti ini:
  1. use 5.010;
  2. use strict;
  3. use warning;
  4.  
  5. say "Hello World";
Berikut penjelasan langkah demi langkahnya.

Hello world

Setelah Anda menginstal DWIM Perl Anda dapat mengklik pada "Start -> All programs -> DWIM Perl -> Padre" untuk membuka text editor dengan file baru/kosong.
Ketikkan
  1. print."Hello World\n";
Seperti yang Anda lihat bahwa statement pada Perl diakhiri tanda titik koma ;. Tanda \n digunakan sebagai tanda baris baru. String diapit oleh tanda petik ". Fungsi print digunakan untuk mencetak hasil ke layar. Ketika ini dieksekusi Perl akan mencetak teks dan memunculkan baris baru.
Simpan berkas ini dengan nama hello.pl lalu Anda dapat menjalankan kode ini dengan memilih "Run -> Run Script" Anda akan melihat jendela baru yang memunculkan output dari kode tadi.
Demikianlah, skrip Perl Anda yang pertama.
Mari tingkatkan lagi.

Perl pada command line untuk non-pengguna Padre

Jika Anda tidak menggunakan Padre atau salah satu dari IDE yang ada, Anda tidak akan bisa menjalankan skrip Anda dari editor itu sendiri. Setidaknya secara default demikian adanya. Anda harus membuka shell (atau cmd di Windows), arahkan ke direktori di mana Anda menyimpan file hello.pl dan ketikkan:
perl hello.pl
Begitulah cara menjalankan skrip dari command line.

gunakan say() sebagai ganti print()

Mari tambah sedikit baris pada skrip Perl kita:
Pertama mari kita seragamkan versi minimum Perl yang akan kita gunakan:
  1. use 5.010;
  2. print."Hello World\n";
Setelah Anda mengetikkan ini, Anda dapat menjalankan kembali skripnya dengan memilih "Run -> Run Script" atau dengan menekan F5. Aplikasi akan secara otomatis menyimpan file sebelum menjalankannya.
Secara umum ini hal yang tepat untuk mengetahui versi minimum Perl yang dibutuhkan untuk menjalankan kode.
Dalam hal ini, cara ini juga menambahkan sedikit fitur baru pada perl termasuk saysay sangat mirip dengan printnamun lebih pendek dan ia secara otomatis menambahkan baris baru di bagian akhir.
Anda dapat mengubah kode Anda sebagai berikut:
  1. use 5.010;
  2. say "Hello World";
Kita ganti print dengan say serta menghapus \n dari akhir string.
Versi aplikasi Anda saat ini bisa jadi merupakan versi 5.12.3 atau 5.14. Kebanyakan distro Linux saat ini datang membawa Perl versi 5.10 atau yang lebih baru.
Meski demikian, kita masih bisa menggunakan perl versi lama. Hanya saja tidak akan bisa menggunakan say() dan memerlukan beberapa penyesuaian pada contoh-contoh berikutnya. Saya akan memberi tahu Anda ketika saya menggunakan fitur-fitur yang memerlukan versi 5.10.

Safety.net

Di samping itu saya benar-benar merekomendasikan untuk melakukan modifikasi pada Perl. Untuk itu kita tambahkan 2, yang disebut pragmatas, yang mirip dengan compiler flags pada bahasa pemrograman lainnya:
  1. use 5.010;
  2. use strict;
  3. use warning;
  4.  
  5. say "Hello World";
Dalam hal ini kata kunci use memerintahkan perl untuk memuat dan memfungsikan setiap pragma.
strict dan warnings akan membantu Anda menemukan bugs pada kode atau bahkan kadang membantu mencegah Anda membuat kesalahan penulisan kode sejak awal. Keduanya begitu mudah digunakan.

User input

Nah, sekarang kita tingkatkan lagi kode kita dengan meminta user memasukkan namanya dan menyertakannya ke dalam respon aplikasi.
  1. use 5.010;
  2. use strict;
  3. use warning;
  4.  
  5. say "What is your name?";
  6. my $name = <STDIN>;
  7. say "Hello $name, how are you?";
$name disebut variabel skalar.
Variabel dideklarasikan menggunakan kata kunci my. (sebenarnya ini merupakan salah satu syarat strict.)
Variabel skalar selalu diawali dengan tanda $. Sedangkan <STDIN> adalah alat untuk membaca baris dari keyboard.
Tulis skrip di atas dan jalankan dengan menekan tombol F5
Skrip akan menanyakan nama Anda. Tuliskan nama Anda dan tekan ENTER agar perl tahu Anda sudah selesai menuliskan nama Anda.
Anda mungkin akan melihat bahwa outputnya sedikit aneh: tanda koma setelah nama muncul pada baris baru. Hal ini terjadi karena Anda menekan ENTER saat menuliskan nama Anda, masuk ke dalam variabel $name.

Menghapus baris tambahan

  1. use 5.010;
  2. use strict;
  3. use warning;
  4.  
  5. say "What is your name?" ";
  6. my $name = <STDIN>;
  7. chomp $name;
  8. say "Hello $name, how are you?";
Ini merupakan hal wajar di perl, bahwa terdapat fungsi spesial bernama chomp yang digunakan untuk menghapus tambahan baris baru dari string.

Kesimpulan

Pada setiap skrip yang Anda tulis Anda harus selalu menambahkan use strict; dan use warnings; sebagai statement awal. Juga sangat direkomendasikan untuk menambahkan use 5.010;.

Sabtu, 30 Mei 2015

kasus pembayaran rekening listrik


#include<conio.h>
#include<iostream.h>
void main()
{
double total,tagihan,jumlah;
long biaya=0;
int harga;
char lagi='y',kode,*nama,*jenis;
while(lagi=='y' || lagi=='Y'){
clrscr();
cout<<"     PEMBAYARAN REKENING LISTRIK     \n";
cout<<"-------------------------------------------\n";
cout<<"Nama Pelanggan : ";cin>>nama;
cout<<"Kode           : ";cin>>kode;
if(kode=='A')
{
 jenis="Rumah";
 biaya=25000;
 harga=3000;
}
 else if(kode=='B')
{
 jenis="Toko";
 biaya=50000;
 harga=5000;
}
else if(kode=='C')
{
 jenis="Pabrik";
 biaya=100000;
 harga=10000;
}
else if(kode=='D')
{
 jenis="Toko";
 biaya=25000;
 harga=1500;
}
else if(kode=='E')
{
 jenis="Ruko";
 biaya=20000;
 harga=1250;
}
else
{
 jenis="error";
 biaya=0;
 harga=0;
}
cout<<"Jenis Pelanggan : "<<jenis;
cout<<"\nBiaya Beban     : "<<biaya;
cout<<"\nHarga           : "<<harga;
cout<<"\nJumlah Daya Pemakaian : ";cin>>jumlah;
total=harga*jumlah+biaya;
cout<<"Total Harga    : "<<total;
pajak=0.1*total ;
cout<<"\nPajak      : "<<pajak;
tagihan=total+pajak;
cout<<"\nTagihan    : "<<tagihan;
cout<<"\n-------------------------------------------";
cout<<"\ingin hitung lagi ?[Y/T] = ";cin>>lagi;
}

}
semoga bermanfaat ya brader. :)

Rabu, 27 Mei 2015

Pemrograman Linear


LINEAR PROGRAMMING :  
METODE GRAFIK 


PENDAHULUAN 


Linear programming adalah suatu teknis matematika yang dirancang untuk membantu 
manajer dalam merencanakan dan membuat keputusan dalam mengalokasikan sumber  daya 
yang terbatas untuk mencapai tujuan perusahaan.  

Tujuan perusahaan  pada umumnya adalah memaksimalisasi keuntungan, namun karena 
terbatasnya sumber daya, maka dapat juga perusahaan meminimalkan biaya.  
Linear Programming memiliki empat ciri khusus yang melekat, yaitu :  
1.  penyelesaian masalah mengarah pada pencapaian tujuan maksimisasi atau minimisasi 
2.  kendala yang ada membatasi tingkat pencapaian tujuan 
3.  ada beberapa alternatif penyelesaian 
4.  hubungan matematis bersifat linear 
Secara teknis, ada lima syarat tambahan dari permasalahan linear programming yang 
harus diperhatikan yang merupakan asumsi dasar, yaitu: 
1.  certainty (kepastian). Maksudnya adalah fungsi tujuan dan fungsi kendala sudah 
diketahui dengan pasti dan tidak berubah selama periode analisa.  KODE  MK  I  / STEKPI /  BAB 
1.35  2
2.  proportionality (proporsionalitas). Yaitu adanya proporsionalitas dalam fungsi tujuan dan 
fungsi kendala.  
3.  additivity (penambahan). Artinya aktivitas total sama dengan penjumlahan aktivitas 
individu.  
4.  divisibility (bisa dibagi-bagi). Maksudnya solusi tidak harus merupakan bilangan integer 
(bilangan bulat), tetapi bisa juga berupa pecahan.  
5.  non-negative variable (variabel tidak negatif). Artinya bahwa semua nilai jawaban atau 
variabel tidak negatif.  
Dalam menyelesaikan permasalahan dengan menggunakan Linear Programming, ada dua 
pendekatan yang bisa digunakan, yaitu metode grafik dan metode simpleks. Metode grafik hanya 
bisa digunakan untuk menyelesaikan permasalahan dimana variabel keputusan sama dengan dua. 
Sedangkan metode simpleks bisa digunakan untuk menyelesaikan permasalahan dimana variabel 
keputusan dua atau lebih.  
Dalam Bab I ini, akan dibahas Linear Programming dengan metode grafik untuk fungsi 
tujuan baik maksimum maupun minimum. Fungsi tujuan maksimum akan diuraikan pada topik I 
sedang fungsi tujuan minimum akan diuraikan pada topik II.  
Dengan mempelajari modul ini dengan baik dan benar, diharapkan Anda dapat memahami 
permasalahan Linear Programming dengan metode grafik. 
Setelah mempelajari modul ini diharapkan anda dapat: 
1.  Mengenal linear programming sebagai alat pengambilan keputusan 
2.  Merumuskan permasalahan operasi ke dalam bentuk linear programming 
3.  Menyelesaikan permasalahan linear programming dengan grafik/ matematik 
4.  Memahami permasalahan  infeasibility, unboundedness,  alternative optima, dan 
redundancy. 

Linier Programming dengan Metode Grafik : 
Fungsi Tujuan Maksimisasi  

TOPIK 1
A.  FORMULASI PERMASALAHAN 

Metode grafik hanya bisa digunakan untuk menyelesaikan permasalahan dimana hanya 
terdapat dua variabel keputusan. Untuk menyelesaikan permasalahan tersebut, langkah pertama 
yang harus dilakukan adalah memformulasikan permasalahan yang ada ke dalam bentuk Linear 
Programming (LP). Langkah-langkah dalam formulasi permasalahan adalah : 
1.  pahamilah secara menyeluruh permasalahan manajerial yang dihadapi 
2.  identifikasikan tujuan dan kendalanya 
3.  definisikan variabel keputusannya  
4.  gunakan variabel keputusan untuk merumuskan fungsi tujuan dan fungsi kendala secara 
matematis. 
Sebagai contoh dalam memformulasikan permasalahan, berikut ini akan dibahas 
perusahaan Krisna Furniture yang  akan  membuat meja dan kursi. Keuntungan yang diperoleh  
dari  satu unit meja adalah  $7,-  sedang keuntungan yang diperoleh dari satu unit kursi adalah  
$5,-. 
Namun untuk meraih keuntungan tersebut Krisna Furniture menghadapi kendala 
keterbatasan jam kerja. Untuk pembuatan 1 unit meja dia memerlukan 4 jam kerja.  Untuk 
pembuatan 1 unit kursi dia membutuhkan 3 jam kerja. Untuk pengecatan 1 unit meja  dibutuhkan 
2  jam  kerja, dan untuk pengecatan 1 unit kursi dibutuhkan  1 jam  kerja.  Jumlah  jam kerja  
yang  tersedia  untuk  pembuatan meja dan kursi  adalah  240  jam per minggu sedang  jumlah 
jam kerja untuk pengecatan adalah 100 jam per minggu.   Berapa jumlah meja dan kursi yang 
sebaiknya diproduksi agar keuntungan perusahaan maksimum?   
Dari kasus  di atas dapat   diketahui bahwa tujuan perusahaan adalah memaksimumkan 
profit. Sedangkan kendala perusahaan tersebut adalah terbatasnya waktu  yang tersedia untuk KODE  MK  I  / STEKPI /  BAB 
1.35  4
pembuatan dan pengecatan. Apabila permasalahan tersebut diringkas dalam satu tabel akan 
tampak sebagai berikut:  
TABEL 1.1  Informasi Permasalahan Krisna Furniture 

Jam kerja untuk 
membuat 1 unit 
produk 
   Meja  Kursi 
Total waktu 
tersedia per 
minggu 
Pembuatan  4  2  240 
Pengecatan  2  1  100 
Profit per unit  7  5   

Mengingat produk yang akan dihasilkan adalah meja dan kursi, maka dalam rangka 
memaksimumkan profit, perusahaan harus memutuskan berapa jumlah meja dan kursi yang 
sebaiknya diproduksi. Dengan demikian dalam kasus ini, yang merupakan variabel keputusan 
adalah meja (X1) dan kursi (X2).  
Setelah kita mendefinisikan variabel keputusan, maka langkah selanjutnya adalah 
menuliskan secara matematis fungsi tujuan dan fungsi kendala.  
1.  Fungsi Tujuan  
Tujuan perusahaan adalah maksimisasi keuntungan, sehingga  kita dapat menuliskan   
fungsi tujuan sebagai berikut :  




P  =  ($7 x jumlah meja                    +   ($5 x jumlah kursi 
              Yang diproduksi)                      yang diproduksi)     
Atau secara matematis dapat dituliskan : 
Maksimisasi Z = $7X1 + $5X2 
2.  Fungsi kendala  
Berkaitan dengan sumber daya yang digunakan, perusahaan tidak bisa memperkirakan 
secara tepat kebutuhan sumber daya yang digunakan untuk mencapai keuntungan tertentu.  
Biasanya perusahaan menyediakan sumber daya tertentu yang merupakan kebutuhan minimum 
atau maksimum. Kondisi seperti ini secara matematis diungkapkan dengan pertidaksamaan.   KODE  MK  I  / STEKPI /  BAB 
1.35  5
Kendala yang pertama adalah waktu yang tersedia di departemen pembuatan. Total 
waktu yang diperlukan untuk pembuatan X1 (meja) dimana untuk membuat satu unit meja 
diperlukan waktu 4 jam kerja dan untuk pembuatan X2  (kursi) dimana untuk membuat satu unit 
kursi diperlukan waktu 3 jam kerja adalah  240  jam. Kalimat ini bisa dirumuskan dalam 
pertidaksamaan matematis menjadi : 



 Seperti halnya pada kendala yang pertama, maka pada kendala kedua dapat diketahui 
bahwa total waktu yang diperlukan untuk pengecatan  X1 (meja) dimana untuk mengecat satu 
unit meja diperlukan waktu 2 jam kerja dan untuk pembuatan X2 (kursi) dimana untuk mengecat 
satu unit kursi dibutuhkan waktu 1 jam kerja adalah  100  jam. Kalimat ini bisa dirumuskan 
dalam pertidaksamaan matematis menjadi : 



Salah satu syarat yang harus dipenuhi dalam Linear Programming adalah asumsi nilai X1 
dan X2  tidak negatif.  Artinya bahwa  
X1 ≥ 0 (jumlah meja yang diproduksi adalah lebih besar atau sama dengan nol) 
X2 ≥ 0 (jumlah kursi yang diproduksi adalah lebih besar atau sama dengan nol) 
Dari uraian di atas dapat dirumuskan formulasi permasalahan secara lengkap sebagai 
berikut : 
Fungsi tujuan : 
Maksimisasi Z = $7X1 + $5X2. 
Fungsi kendala : 
4 X1 + 3 X2   ≤   240   (kendala departemen pembuatan) 
2X1 + 1 X2   ≤   100    (kendala departemen pengecatan) 
X1 ≥ 0 (kendala non negatif pertama) 

                                               4 X1 + 3 X2   ≤   240   

                                               2X1 + 1 X2   ≤   100   KODE  MK  I  / STEKPI /  BAB 
1.35  6
X2 ≥ 0 (kendala non negatif kedua) 

B.  PENYELESAIAN LINEAR PROGRAMMING SECARA GRAFIK 
Kasus Krisna Furniture tersebut akan kita selesaikan dengan metode grafik. Keterbatasan 
metode grafik adalah bahwa hanya tersedia dua sumbu ordinat, sehingga tidak bisa digunakan 
untuk menyelesaikan kasus yang lebih dari dua variabel keputusan.  
Langkah pertama dalam penyelesaian dengan  metode grafik adalah menggambarkan 
fungsi kendalanya. Untuk menggambarkan kendala pertama secara grafik, kita harus merubah 
tanda pertidaksamaan menjadi tanda persamaan seperti berikut.  
4 X1 + 3 X2   =   240    
Kendala ini akan memotong salah satu atau kedua sumbu.  
Sebagaimana halnya yang sudah kita  pelajari dalam aljabar, bahwa untuk 
menggambarkan fungsi linear yang tidak lain merupakan garis lurus, maka kita akan mencari 
titik potong garis tersebut dengan kedua sumbu. Suatu garis akan memotong salah satu sumbu 
apabila nilai variabel yang lain sama dengan nol. Dengan demikian kendala pertama akan 
memotong X1, pada saat X2 = 0, demikian juga kendala ini akan memotong X2, pada saat X1 = 
0.  
Kendala I: 4 X1 + 3 X2 = 240 
memotong sumbu X1  pada saat  X2 = 0 
4 X1 + 0 = 240 
X1 = 240/4   
X1 = 60.  
memotong sumbu X2 pada saat X1 = 0 
0 + 3 X2 = 240 
X2 = 240/3   
X2 = 80 
Kendala I memotong sumbu X1 pada titik (60, 0) dan memotong sumbu X2 pada titik (0, 
80). 

 KODE  MK  I  / STEKPI /  BAB 
1.35  7
Kendala II:  2 X1 + 1 X2  = 100 
memotong sumbu X1 pada saat X2 = 0 
2 X1 + 0 = 100 
X1 = 100/2   
X1 = 50 
memotong  sumbu X2  pada saat  X1 =0 
0 + X2 = 100   
X2 = 100 
Kendala I memotong sumbu X1 pada titik (50, 0) dan memotong sumbu X2 pada titik (0, 
100). 

Peraga 1.1. Grafik Area Layak  


Titik potong kedua kendala  bisa dicari dengan cara substitusi atau eliminasi 
2 X1 + 1 X2  = 100   KODE  MK  I  / STEKPI /  BAB 
1.35  8
 X2 = 100 - 2 X1 
4 X1 + 3 X2 = 240    
4 X1 + 3 (100 - 2 X1) = 240 
4 X1 + 300 - 6 X1  = 240 
- 2 X1  = 240 - 300   
 - 2 X1 = - 60   
X1 = -60/-2  = 30. 
X2 = 100 - 2 X1 
X2 = 100 - 2 * 30 
X2 = 100 - 60  
X2 = 40 
Sehingga kedua kendala akan saling berpotongan pada titik (30, 40). 

Tanda    ≤ pada kedua kendala ditunjukkan pada area sebelah kiri dari garis kendala. 
Sebagaimana nampak pada Peraga  1. 1,   feasible region (area layak) meliputi daerah sebelah 
kiri dari titik A (0; 80), B (30; 40), dan C (60; 0).  
Untuk menentukan solusi yang optimal, ada dua cara yang bisa digunakan yaitu  
1.  dengan menggunakan garis profit (iso profit line) 
2.  dengan titik sudut (corner point) 
Penyelesaian dengan menggunakan garis profit adalah penyelesaian dengan 
menggambarkan fungsi tujuan. Kemudian fungsi tujuan tersebut digeser ke kanan sampai 
menyinggung titik terjauh dari dari titik nol, tetapi masih berada pada area layak (feasible 
region).  Untuk menggambarkan garis profit, kita mengganti nilai Z dengan sembarang nilai 
yang mudah dibagi oleh koefisien pada fungsi profit. Pada kasus ini angka yang mudah dibagi 
angka 7 (koefisien X1) dan 5 (koefisien X2) adalah 35.  Sehingga fungsi tujuan menjadi 35 = 7 
X1 + 5 X2. Garis ini akan memotong sumbu X1 pada titik (5, 0) dan memotong sumbu X2 pada 
titik (0, 7).  
Dari Peraga 1. 2 dapat dilihat bahwa iso profit line menyinggung titik B yang merupakan 
titik terjauh dari titik nol. Titik B ini merupakan titik optimal. Untuk mengetahui berapa nilai  
X1 dan X2, serta nilai Z pada titik B tersebut,  kita mencari titik potong antara kendala I dan 
kendala II (karena titik B merupakan perpotongan antara kendala I dan kendala II). Dengan 
menggunakan eliminiasi atau subustitusi diperoleh nilai X1 = 30,  X2 = 40. dan Z = 410. Dari KODE  MK  I  / STEKPI /  BAB 
1.35  9
hasil perhitungan tersebut maka dapat disimpulkan bahwa keputusan perusahaan yang akan 
memberikan profit maksimal adalah memproduksi X1 sebanyak 30 unit, X2 sebanyak 40 unit 
dan perusahaan akan memperoleh profit sebesar 410.  

Peraga 1. 2. Iso profit line  


Penyelesaian dengan menggunakan titik sudut (corner point) artinya kita harus mencari 
nilai tertinggi dari titik-titik yang berada pada area layak (feasible region). Dari peraga 1, dapat 
dilihat bahwa ada 4 titik yang membatasi area layak, yaitu titik 0 (0, 0), A (0, 80), B (30, 40), 
dan C (50, 0).  
Keuntungan pada titik O (0, 0) adalah (7 x 0) + (5 x 0) = 0. 
Keuntungan pada titik A (0; 80) adalah  (7 x 0) + (5 x 80) = 400. 
Keuntungan pada titik B (30; 40) adalah (7 x 30) + (5 x 40) = 410. 
Keuntungan pada titik C (50; 0) adalah (7 x 50) + (5 x 0) = 350. KODE  MK  I  / STEKPI /  BAB 
1.35  10
Karena  keuntungan tertinggi jatuh pada  titik B, maka sebaiknya perusahaan 
memproduksi meja sebanyak 30 unit dan kursi sebanyak 40 unit,  dan perusahaan memperoleh  
keuntungan optimal sebesar 410.