Kamis, 17 April 2014


Salah satu teknik penentuan solusi optimal yang digunakan dalam pemrograman linier adalah metode simpleks.  Penentuan solusi optimal menggunakan metode simpleks didasarkan pada teknik eleminasi Gauss Jordan. Penentuan solusi optimal dilakukan dengan memeriksa titik ekstrim satu per satu dengan cara perhitungan iteratif. Sehingga penentuan solusi optimal dengan simpleks dilakukan tahap demi tahap yang disebut dengan iterasi. Iterasi ke-i hanya tergantung dari iterasi sebelumnya (i-1).
Ada beberapa istilah yang sangat sering digunakan dalam metode simpleks, diantaranya :
  1. Iterasi adalah tahapan perhitungan dimana nilai dalam perhitungan itu tergantung dari nilai tabel sebelumnya.
  2. Variabel non basis adalah variabel yang nilainya diatur menjadi nol pada sembarang iterasi. Dalam terminologi umum, jumlah variabel non basis selalu sama dengan derajat bebas  dalam sistem persamaan.
  3. Variabel basis merupakan variabel yang nilainya bukan nol pada sembarang iterasi. Pada solusi awal, variabel basis merupakan variabel slack (jika fungsi kendala merupakan pertidaksamaan ≤ ) atau variabel buatan (jika fungsi kendala menggunakan  pertidaksamaan ≥ atau =). Secara umum, jumlah variabel basis selalu sama  dengan  jumlah fungsi pembatas (tanpa fungsi non negatif).
  4. Solusi atau nilai kanan merupakan nilai sumber daya pembatas yang masih tersedia. Pada solusi awal, nilai kanan atau solusi sama dengan jumlah sumber daya pembatas  awal yang ada, karena aktivitas belum dilaksanakan.
  5. Variabel slack adalah variabel yang ditambahkan ke model matematik kendala untuk mengkonversikan  pertidaksamaan ≤ menjadi persamaan (=). Penambahan variabel ini terjadi pada tahap inisialisasi. Pada solusi awal, variabel slack akan berfungsi sebagai variabel basis.
  6. Variabel surplus adalah variabel yang dikurangkan  dari model matematik kendala untuk mengkonversikan  pertidaksamaan ≥ menjadi persamaan (=). Penambahan ini terjadi pada tahap inisialisasi. Pada solusi awal, variabel surplus tidak dapat berfungsi sebagai variabel basis.
  7. Variabel buatan adalah variabel yang ditambahkan ke model matematik kendala dengan bentuk ≥ atau = untuk difungsikan sebagai variabel basis awal. Penambahan variabel ini terjadi pada tahap inisialisasi. Variabel ini harus bernilai 0 pada solusi optimal, karena kenyataannya variabel ini tidak ada. Variabel hanya ada di atas kertas.
  8. Kolom pivot (kolom kerja) adalah kolom yang memuat variabel masuk. Koefisien pada kolom ini akn menjadi pembagi nilai kanan untuk menentukan baris pivot (baris kerja).
  9. Baris pivot (baris kerja) adalah salah satu baris dari antara variabel basis yang memuat variabel keluar.
  10. Elemen pivot (elemen kerja) adalah elemen yang terletak pada perpotongan kolom dan baris pivot. Elemen pivot akan menjadi dasar perhitungan untuk tabel simpleks berikutnya.
  11. Variabel masuk adalah variabel yang terpilih untuk menjadi variabel basis pada iterasi berikutnya. Variabel masuk dipilih satu dari antara variabel non basis pada setiap iterasi. Variabel ini pada iterasi berikutnya akan bernilai positif.
  12. Variabel keluar adalah variabel yang keluar dari variabel basis pada iterasi berikutnya dan digantikan oleh variabel masuk. Variabel keluar dipilih satu dari antara variabel basis pada setiap iiterasi. Variabel ini pada iterasi berikutnya akan bernilai nol.

BENTUK BAKU

Sebelum melakukan perhitungan iteratif untuk menentukan solusi optimal, pertama sekali bentuk umum pemrograman linier dirubah ke dalam bentuk baku terlebih dahulu. Bentuk baku dalam metode simpleks tidak hanya mengubah persamaan kendala ke dalam bentuk sama dengan, tetapi setiap fungsi kendala harus diwakili oleh satu variabel basis awal. Variabel basis awal menunjukkan status sumber daya pada kondisi sebelum ada aktivitas yang dilakukan. Dengan kata lain, variabel keputusan semuanya masih bernilai nol. Dengan demikian, meskipun fungsi kendala pada bentuk umum pemrograman linier sudah dalam bentuk persamaan, fungsi kendala tersebut masih harus tetap berubah.

Ada beberapa hal yang harus diperhatikan dalam membuat  bentuk baku, yaitu :
  1. Fungsi kendala dengan pertidaksamaan ≤ dalam bentuk umum, dirubah menjadi persamaan (=) dengan menambahkan satu variabel slack.
  2. Fungsi kendala dengan pertidaksamaan ≥ dalam bentuk umum, dirubah menjadi persamaan (=) dengan mengurangkan satu variabel surplus.
  3. Fungsi kendala dengan persamaan dalam benttuk umum,ditambahkan satu artificial variabel (variabel buatan).

Perhatikan kasus A berikut  :

Fungsi tujuan : minimumkan z = 2 x1 + 5.5 x2
Kendala :
x1 + x2 = 90
0.001 x1 + 0.002 x2 ≤ 0.9
0.09 x1 + 0.6 x2 ≥ 27
0.02 x1 + 0.06 x2 ≤ 4.5
x1, x2 ≥ 0




Bentuk di atas adalah bentuk umum pemrograman liniernya. Kedalam bentuk baku, model matematik tersebut akan berubah menjadi :
Fungsi tujuan : minimumkan z = 2 x1 + 5.5 x2
Kendala :
x1 + x2 + s1 = 90
0.001 x1 + 0.002 x2 + s2 = 0.9
0.09 x1 + 0.6 x2 – s3 + s4 = 27
0.02 x1 + 0.06 x2 + s5 = 4.5
x1, x2 , s1, s2, s3, s4, s5  ≥ 0

Fungsi kendala pertama mendapatkan variable buatan (s1), karena bentuk umumnya sudah menggunakan bentuk persamaan. Fungsi kendala kedua dan keempat  mendapatkan variabel slack (s2 dan s5) karena bentuk umumnya menggunakan  pertidaksamaan ≤, sedangkan fungsi kendala ketiga mendapatkan variabel surplus (s3) dan variabel buatan (s4) karena bentuk umumnya menggunakan pertidaksamaan ≥.

Perhatikan pula kasus B berikut ini :
Maksimumkan z = 2x1 + 3x2
Kendala :
10 x1 + 5 x2 ≤ 600
6 x1 + 20 x2 ≤ 600
8 x1 + 15 x2 ≤ 600
x1, x2

Bentuk di atas juga merupakan bentuk umum. Perubahan ke dalam bentuk baku hanya membutuhkan variabel slack, karena semua fungsi kendala menggunakan bentuk pertidaksamaan ≤ dalam bentuk umumnya. Maka bentuk bakunya adalah sebagai berikut :
Maksimumkan z = 2x1 + 3x2 + 0s1 + 0s2 + 0s3
Kendala :
10 x1 + 5 x2 + s1 = 600
6 x1 + 20 x2 + s2 = 600
8 x1 + 15 x2 + s3 = 600
x1, x2 , s1 , s2 , s3 ≥ 0
s1 , s2 , s3 merupakan  variable slack.

PEMBENTUKAN TABEL SIMPLEKS

Dalam perhitungan iterative, kita akan bekerja menggunakan tabel. Bentuk baku yang sudah diperoleh, harus dibuat ke dalam bentuk tabel.
Semua variabel yang bukan variabel basis mempunyai solusi (nilai kanan) sama dengan nol dan koefisien variabel basis pada baris tujuan harus sama dengan 0. Oleh karena itu kita harus membedakan pembentukan tabel awal berdasarkan variabel basis awal. Dalam sub bab ini kita hanya akan memperhatikan fungsikendala yang menggunakan variabel slack dalam bentuk bakunya, sedangkan yang menggunakan variabel buatan akan dibahas pada sub bab lainnya.

Gunakan kasus B di atas, maka tabel awal simpleksnya adalah :

VB
X1
X2
S1
S2
S3
solusi
Z
-2
-3
0
0
0
0
S1
10
5
1
0
0
600
S2
6
20
0
1
0
600
S3
8
15
0
0
1
600

LANGKAH-LANGKAH PENYELESAIAN

Langkah-langkah penyelesaian adalah sebagai berikut :

  1. Periksa apakah tabel layak atau tidak. Kelayakan tabel simpleks dilihat dari solusi (nilai kanan). Jika solusi ada yang bernilai negatif, maka tabel tidak layak. Tabel yang tidak layak tidak dapat diteruskan untuk dioptimalkan.
  2. Tentukan kolom pivot. Penentuan kolom pivot dilihat dari koefisien fungsi tujuan (nilai di sebelah kanan baris z) dan tergantung dari bentuk tujuan. Jika tujuan maksimisasi, maka kolom pivot  adalah kolom dengan koefisien paling negatif. Jika tujuan minimisasi , maka kolom pivot adalah kolom dengan koefisien positif terbesar. Jika kolom pivot ditandai dan ditarik ke atas, maka kita akan mendapatkan variabel keluar. Jika nilai paling negatif (untuk tujuan maksimisasi) atau positif terbesar (untuk tujuan minimisasi) lebih dari satu, pilih salah satu secara sembarang.
  3. Tentukan baris pivot. Baris pivot ditentukan setelah membagi nilai solusi dengan nilai kolom pivot yang bersesuaian (nilai yang terletak dalam satu baris). Dalam hal ini, nilai negatif dan 0 pada kolom pivot tidak diperhatikan, artinya tidak ikut menjadi pembagi. Baris pivot adalah baris dengan rasio pembagian terkecil. Jika baris pivot ditandai dan ditarik ke kiri, maka kita akan mendapatkan variabl keluar. Jika rasio pembagian terkecil lebih dari satu, pilih salah sau secara sembarang.
  4. Tentukan elemen pivot. Elemen pivot merupakan nilai yang terletak pada perpotongan kolom dan baris pivot.
  5. Bentuk tabel simpleks baru. Tabel simpleks baru dibentuk dengan pertama sekali menghitung nilai baris pivot baru. Baris pivot baru adalah baris pivot lama dibagi dengan elemen pivot. Baris baru lainnya merupakan pengurangan nilai kolom pivot baris yang bersangkutan dikali baris pivot baru dalam satu kolom terhadap baris lamanya yang terletak pada kolom tersebut.
  6. Periksa apakah tabel sudah optimal. Keoptimalan tabel dilihat dari koefisien fungsi tujuan (nilai pada baris z) dan tergantung dari bentuk tujuan. Untuk tujuan maksimisasi, tabel sudah optimal jika semua nilai pada baris z sudah positif atau 0. Pada tujuan minimisasi, tabel sudah optimal jika semua nilai pada baris z sudah negatif atau 0. Jika belum, kembali ke langkah no. 2 , jika sudah optimal baca solusi optimalnya.




Selesaikan kasus berikut ini menggunakan metode simpleks :

Maksimum z = 8 x1 + 9 x2 + 4x3
Kendala :
x1 + x2 + 2x3 ≤ 2
2x1 + 3x2 + 4x3 ≤ 3
7x1 + 6x2 + 2x3 ≤ 8
x1,x2,x3 ≥ 0

Penyelesaian :
Bentuk bakunya adalah :

Maksimum z = 8 x1 + 9 x2 + 4x3 + 0s1 + 0s2 + 0s3 atau
z - 8 x1 - 9 x2 - 4x3 + 0s1 + 0s2 + 0s3 = 0

Kendala :
x1 + x2 + 2x3 + s1  = 2
2x1 + 3x2 + 4x3 + s2 = 3
7x1 + 6x2 + 2x3  + s3 = 8
x1,x2,x3 ,s1 , s2 , s3 ≥ 0

Solusi / table awal simpleks :

VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z
-8
-9
-4
0
0
0
0

S1
1
1
2
1
0
0
2

S2
2
3
4
0
1
0
3

S3
7
6
2
0
0
1
8


Karena nilai negative terbesar  ada pada kolom X2, maka kolom X2 adalah kolom pivot dan X2 adalah variabel masuk. Rasio pembagian nilai kanan  dengan kolom pivot terkecil adalah 1 bersesuaian  dengan  baris s2, maka baris s2 adalah baris pivot dan s2 adalah varisbel keluar. Elemen pivot adalah 3.

VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z
-8
-9
-4
0
0
0
0

S1
1
1
2
1
0
0
2
2
S2
2
3
4
0
1
0
3
1
S3
7
6
2
0
0
1
8
8/6

Iterasi 1

Nilai pertama yang kita miliki adalah nilai baris  pivot baru (baris x2). Semua nilai pada baris s2 pada tabel solusi awal dibagi dengan 3 (elemen pivot).


VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z








S1








x2
2/3
1
4/3
0
1/3
0
1

S3









Perhitungan nilai barisnya :
Baris z :

            -8         -9         -4         0          0          0          0
    -9 (  2/3         1         4/3       0          1/3       0          1 )   -
            -2           0        8         0          3          0          9

Baris s1 :

            1          1          2          1          0          0          2
     1   (2/3        1          4/3       0          1/3       0          1 ) -
            1/3       0          2/3       1          -1/3      0          1

Baris s3 :

            7          6          2          0          0          1          8
      6 ( 2/3        1          4/3       0          1/3       0          1 ) -
            3          0          -6         0          -2         1          2

Maka tabel iterasi 1 ditunjukkan tabel di bawah. Selanjutnya kita periksa apakah tabel sudah optimal atau belum. Karena nilai baris z di bawah variabel x1 masih negatif, maka tabel belum optimal. Kolom dan baris pivotnya ditandai pada tabel di bawah ini :

VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z
-2
0
8
0
3
0
9
-
S1
1/3
0
2/3
1
-1/3
0
1
3
X2
2/3
1
4/3
0
1/3
0
1
3/2
S3
3
0
-6
0
-2
1
2
2/3

Variabel masuk  dengan demikian adalah X1 dan variabel  keluar adalah S3 . Hasil perhitungan iterasi ke 2 adalah sebagai berikut :

Iterasi 2 :

VB
X1
X2
X3
S1
S2
S3
NK
Rasio
Z
0
0
4
0
5/3
2/3
31/3

S1
0
0
4/3
1
-1/9
-1/9
7/9

X2
0
1
8/3
0
7/9
-2/9
5/9

X1
1
0
-2
0
-2/3
1/3
2/3


Tabel sudah optimal, sehingga perhitungan iterasi dihentikan !

Perhitungan dalam simpleks menuntut ketelitian  tinggi, khususnya jika angka yang digunakan adalah pecahan. Pembulatan harus diperhatikan dengan baik. Disarankan jangan menggunakan bentuk bilangan desimal, akan lebih teliti jika menggunakan bilangan pecahan. Pembulatan dapat menyebabkan iterasi lebih panjang atau bahkan tidak selesai karena ketidaktelitian dalam melakukan pembulatan.
Perhitungan iteratif dalam simpleks pada dasarnya merupakan pemeriksaan satu per satu titik-titik ekstrim layak pada daerah penyelesaian. Pemeriksaan dimulai dari kondisi nol (dimana semua aktivitas/variabel keputusan bernilai nol). Jika titik ekstrim berjumlah n, kemungkinan terburuknya kita akan melakukan perhitungan iteratif sebanyak n kali.

MEMBACA TABEL OPTIMAL

Membaca tabel optimal adalah bagian penting bagi pengambil keputusan. Ada beberapa hal yang bisa dibaca dari table optimal :
  1. Solusi optimal variable keputusan
  2. Status sumber daya
  3. harga bayangan (dual/shadow prices).

Menggunakan table optimal :

VB
X1
X2
X3
S1
S2
S3
NK
Z
0
0
4
0
5/3
2/3
31/3
S1
0
0
4/3
1
-1/9
-1/9
7/9
X2
0
1
8/3
0
7/9
-2/9
5/9
X1
1
0
-2
0
-2/3
1/3
2/3

Solusi optimal X1 = 2/3,  X2  = 5/9 , X3 = 0 dan Z = 31/3, artinya untuk mendapatkan keuntungan maksimum sebesar $ 31/3 , maka perusahaan sebaiknya menghasilkan produk 1 sebesar 2/3 unit dan produk 2  sebesar 5/9 unit.

Status sumber daya :
Sumber daya pertama dilihat dari keberadaan variable basis awal dari setiap fungsi kendala pada table optimal. Dalam kasus di atas, untuk fungsi kendala pertama periksa keberadaan S1 pada variable basis table optimal. Periksa keberadaan S2 pada variable basis table optimal untuk fungsi kendala kedua. Periksa keberadaan S3 pada variable basis table optimal untuk fungsi kendala ketiga.

S1 = 7/9.  Sumber  daya ini disebut berlebih (abundant)
S2 = S3 = 0. Kedua sumber daya ini disebut habis terpakai (scarce).




Harga bayangan :
Harga bayangan dilihat dari koefisien variable slack atau surplus pada baris fungsi tujuan.

Koefisien S1 pada baris fungsi tujuan table optimal = 0, dengan demikian harga bayangan sumber daya pertama adalah 0
Koefisien S2 pada baris fungsi tujuan table optimal = 5/3, dengan demikian harga bayangan sumber daya kedua adalah 5/3
Koefisien S3 pada baris fungsi tujuan table optimal = 2/3, dengan demikian harga bayangan sumber daya kedua adalah 2/3.

Link Tutorial  Metoda Simpleks:


Sumber :

Siringoringo, Hotniar. Seri Teknik Riset Operasional. Pemrograman Linear. Penerbit Graha Ilmu. Yogyakarta. 2005.







Posted on 03.38 by Unknown

No comments



Bandung - Ratusan mahasiswa Institut Teknologi Bandung (ITB) menolak kedatangan Gubernur DKI Jakarta Joko Widodo. Rencananya Capres PDIP itu akan memberikan kuliah umum di Aula Timur ITB.


Sebagai bentuk penolakan, ratusan mahasiswa memblokade gerbang pintu masuk kampus ITB. Kericuhan sempat terjadi saat mobil rombongan Jokowi tetap mencoba masuk ke dalam kampus. Akibatnya, mahasiswa mengebrak-gebrak mobil pengawal pribadi Jokowi yang berada di paling depan.


Melihat aksi tersebut, akhirnya mobil yang ditumpangi Jokowi dan Rektor ITB Akhmaloka memilih untuk tidak memaksa masuk dan langsung melaju ke Jalan Ganesca. Mobil pengawal Jokowi juga sempat tidak bisa keluar karena ditahan oleh mahasiswa, namun setelah petugas keamanan turun tangan, akhirnya mobil itu dilepaskan.


Dalam aksinya, selain memblokade pintu masuk, mahasiswa juga membentangkan spanduk bertuliskan "Tolak Politisasi Kampus". Hingga saat ini belum bisa dipastikan kemana Jokowi pergi setelah ditolak oleh mahasiswa ITB. Selain itu juga belum ada kabar, apakah Jokowi jadi memberikan kuliah umum.(nasional.inilah.com)

Posted on 02.41 by Unknown

No comments

Rabu, 16 April 2014

1      Mengenal Bahasa Pemrograman
Bahasa pemrograman adalah suatu kumpulan kata (perintah) yang siap digunakan untuk menulis suatu kode program sehingga kode-kode program yang kita tulis tersebut akan dapat dikenali oleh kompilator yang sesuai. Kata-kata tersebut dalam bahasa pemrograman disebut dengan keyword (reserve word). Untuk mempelajari bahasa pemrograman tertentu kita tidak harus menghafal semua keyword (kata kunci) yang ada di dalamnya, namun yang perlu kita ketahui adalah fungsi dan aturan penggunaannya.
Contoh dari beberapa keyword misalnya : int, main, for, while, do while, dsb.
Pada pembelajaran ini kita akan menggunakan salah satu bahasa pemrograman tingkat tinggi yaitu C / C++.

2      Penerjemah Bahasa Pemrograman
Program yang ditulis dalam bahasa pemrograman seperti C dan C++ sebenarnya tidak dimengerti oleh computer secara langsung. Sebab computer hanya mengenali kode 0 dan 1 (binary digit ). Supaya program dapat dijalankan oleh computer, program tersebut harus diterjemahkan terlebih dahulu ke dalam bahasa mesin (atau biasa disebut kode objek). Proses penerjemahannya dilakukan oleh program yang disebut Translator (penerjemah).
Translator dapat berupa :
  • Interpreter
Interpreter menerjemahkan instruksi selama program diminta untuk dieksekusi. Jika seseorang bermaksud menjalankan program tersebut (agar dapat dijalankan oleh computer, mula-mula kode sumber (source code atau program asli yang diitulis olem pemrogram) ditermahkan dulu ke dalam bentuk kode mesin baris perbaris instruksi. Setelah satu baris instruksi tersebut difahami oleh computer, instruksi tersebut dijalankan. Interpreter kemudian kembali memproses baris instruksi berikutnya.
  • Kompiler
Kompiler menerjemahkan instruksi ke dalam kode objek secara keseluruhan (untuk semua instruksi). Setelah semua instruksi diterjemahkan, instruksi yang dimengerti oleh computer dijalankan. Proses penerjemahan seperti itu disebut kompilasi. Setelah kompilasi berakhir, compiler tidak diperlukan lagi, sebab sesudah kompilasi akan terbentuk program yang dapat dijalankan secara langsung tanpa melalui translator ( executable ).
3      Kerangka Program dalam Bahasa C / C++
Setiap program yang ditulis dengan menggunakan bahasa C harus mempunyai fungsi utama, fungsi tersebut bernama main(). Fungsi inilah yang akan dipanggil pertama kali pada saat eksekusi program. Apabila ada fungsi lain yang dibuat, maka fungsi tersebut akan dijankan ketika dipanggil di fungsi utama. Hal ini karena bahasa C/C++ merupakan bahasa procedural yang menerapkan konsep runtutan (program dieksekusi baris-perbaris dari atas ke bawah secara berurutan).
Ada dua bentuk kerangka fungsi utama yang sering digunakan :
  • Bentuk dengan tanpa pengembalian nilai ke system operasi (dengan menuliskan Void sebelum fungsi utama )
Contoh :
void main(void)
{
            Kode program yang akan ditulis;
}
Kata kunci void dalam kurung bersifat opsional, artinya bias dituliskan atau juga tidak.
  • Bentuk dengan pengembalian nilai 0 ke system operasi (dengan menuliskan tipe data sebelum fungsi utama )
Contoh :
int main(void)
{
            Kode program yang akan ditulis;
            return 0;
}
Kata kunci void dalam kurung bersifat opsional, artinya bias dituliskan atau juga tidak.
Fungsi return 0 pada konsep di atas adalah fungsi main() ini dapat mengembalikan nilai 0 ke system operasi yang menandakan bahwa program tersebut berjalan dengan baik tanpa adanya kesalahan.

4      Mengenal File Header ( *.h )Program dalam Bahasa C / C++
File header adalah file dengan eksetensi h ( *.h ) yaitu file bantuan yang digunakan untuk menyimpan daftar-daftar fungsi yang akan digunakan di dalam program.
File header di dalam C/C++ misalnya adalah <stdio.h> atau <iostream.h> untuk proses masukan dan keluaran (input/output). Tidak hanya dua file header tersebut karena masih banyak file header yang disediakan oleh C/C++ untuk menangani kerword-keyword yang lain.
Di bawah ini akan digambarkan bagaimana cara penulisan file header dengan mengacu pada konsep kerangka yang sudah dijelaskan di atas :
Contoh 1 : Penggunaan input/output dengan bahasa C
#include <stdio.h>
int main()
{
printf(“Selamat Belajar Algortima dan Pemrograman \n”);
return 0;
}

Contoh 2 : Penggunaan input/output dengan bahasa C
#include <stdio.h>
void main()
{
printf(“Selamat Belajar Algortima dan Pemrograman \n”);
}

Contoh 3 : Penggunaan input/output dengan bahasa C++
#include <iostream.h>
int main()
{
cout<<“Selamat Belajar Algortima dan Pemrograman \n”;
return 0;
}

Contoh 4 : Penggunaan input/output dengan bahasa C++
#include <iostream.h>
void main()
{
cout<<“Selamat Belajar Algortima dan Pemrograman \n”;
}

5      Mengenal Fungsi printf() dan scanf() dalam Bahasa C
Dalam pembuatan sebuah program computer, kita tidak akan lepas dari proses masukan (input) dan keluaran (output). Dalam bahasa C perintah tersebut dikenal dengan penulisan scanf() sebagai inputan dan printf() sebagai keluaran. Untuk file header yang diperlukan adalah stdio.h.

Contoh 1 : Memasukkan sebuah nilai bertipe integer
#include <stdio.h>
int main()
{
               int x;
printf(“Masukkan sebuah nilai bilangan bulat = ”);
scanf(“%d”, &x);
printf(“Nilai yang anda masukkan adalah = %d”, x );
return 0;
}
Adak kode program yang di dalamnya terdapat tanda %d, maksudnya adalah masukan tersebut membaca nilai bertipe int (format bilangan bulat) dari keyboard dan menyimpan nilai tersebut ke dalam alamat di dalam memori yang ditempati oleh variable x.
Ada beberapa format yang lain untuk menentukan format yang dapat dipakai pada scanf().
Karakter
Tipe Argumen
Keterangan
%d,  %i
int
Untuk membaca tipe bilangan bulat dalam bentuk decimal (basis  10)
%o
int
Untuk membaca tipe bilangan bulat dalam bentuk octal (basis 8) tanpa diawali angka 0
%u
int
Untuk membaca bilangan bulat tanda tanda (unsigned)
%c
char
Untuk membaca karakter
%s
char*
Untuk membaca string (kumpulan karakter)
%f
float
Untuk membaca bilangan real dengan tipe float
%lf
float
Untuk membaca bilangan real dengan tipe double
%ld
float
Untuk membaca bilangan real dengan tipe long int.
%e
double
Untuk membaca bilangan real dengan bentuk eksponen
Ada beberapa format yang lain untuk menentukan format yang dapat dipakai pada printf().
Karakter
Tipe Argumen
Keterangan
%d,  %i
int
Untuk menampilkan tipe bilangan bulat dalam bentuk decimal (basis  10)
%o
int
Untuk menampilkan tipe bilangan bulat dalam bentuk octal (basis 8) tanpa diawali angka 0
%x, %X
int
Untuk menampilkan tipe bilangan bulat dalam bentuk heksadesimal (basis 16) tanpa diawali dengan tanda 0x atau 0X. Format x digunakan untuk menampilkan hasil dalam huruf kecil dan huruf X untuk menampilkan dalam huruf besar.
%u
int
Untuk menampilkan bilangan bulat tanda tanda (unsigned)
%c
char
Menampilkan karakter
%s
char*
Menampilkan string (kumpulan karakter)
%f
float
Menampilkan bilangan real dengan tipe float
%lf
float
Menampilkan bilangan real dengan tipe double
%ld
float
Menampilkan bilangan real dengan tipe long int.
%e ,  %E
double
Menampilkan bilangan real dengan bentuk eksponen
%g , %G
double
Menampilkan bilangan real dalam bentuk seperti %f, atau %E tergantung dari ekspresinya
%%

Menyatakan symbol %

Ada beberapa tambahan dalam penggunaan bilangan real misalnya :
%.3f       mencetak bilangan real dengan 3 angka di belakang koma
%2.3      mencetak bilangan real dengan 2 angka sebelum koma dan 3 angka sesudah koma.
Selain itu perlu juga diperhatikan sebuah karakter escape yaitu karakter yang ditulis dengan awalan tanda  \  diikuti dengan karakter tertentu yang memiliki sebuah tingkah laku.
Karakter-karakter tersebut seperti pada table di bawah ini :
Karakter
Keterangan
\a
Untuk membangkitkan suara atau speaker (bell)
\b
Karakter backspace, kursor akan kembali ke depan sebanyak satu karakter
\f
Formfeed : untuk meletakkan formfeed
\n
Newline : untuk meletakkan baris baru(ganti baris )
\r
Carriage return : untuk meletakkan kursor di awal baris bersangkutan
\t
Horizontal tab : untuk meletakkan tab horizontal
\v
Vertical tab : untuk meletakkan tab vertical
\\
Memunculkan karakter \
\”
Memunculkan karakter “
\’
Memunculkan karakter ‘
\?
Memunculkan karakter ?

6      Mengenal  cin>> dan cout<<  dalam Bahasa C++
Sama halnya fungsi scanf() dan printf(). Fungsi cin>> dan cout<< juga berfungsi sebagai inputan dan keluaran. Yang berbeda adalah file headernya memakai <iostream.h>.

Contoh 1 : Memasukkan sebuah nilai bertipe integer
#include <iostream.h>
int main()
{
               int x;
cout<< “Masukkan sebuah nilai bilangan bulat = ”;
cin>>x;
cout<<“Nilai yang anda masukkan adalah =”<< x;
return 0;
}

7      Mengenal  fungsi aritmatike dengan header math.h
Di dalam bahasa C juga disediakan fungsi untuk penangan aritmatika. File ini terdapat di dalam header math.h.
Perhatikan table di bawah ini :
Fungsi
Argumen
Keterangan
sqrt()
double
Memberikan nilai balik berupa akar x. Nilai balik bertipe double.
pow(x,y)
double
Memberikan nilai balik berupa xy. Nilai balik bertipe double.
tan(x)
double
Memberikan nilai balik berupa tangent x. Argumen x berupa nilai dalam satuan radian. Nilai balik bertipe double.
sin(x)
double
Memberikan nilai balik berupa sinus x. Argumen x berupa nilai dalam satuan radian. Nilai balik bertipe double.
cos(x)
double
Memberikan nilai balik berupa cosines x. Argumen x berupa nilai dalam satuan radian. Nilai balik bertipe double.
log(x)
double
Memberikan nilai balik berupa loge x. Nilai balik bertipe double.
log10(x)
double
Memberikan nilai balik berupa log10 x. Nilai balik bertipe double.
cabs(x)
int
Memberikan nilai balik berupa nilai absolute x. Nilai balik bertipe int.
fabs(x)
double
Memberikan nilai balik berupa nilai absolute x. Nilai balik bertipe double.

8      Mengenal  Komentar
Komentar adalah sebuah teks yang dimasukkan di dalam kode program, tetapi teks tersebut tidak akan dieksekusi sebagai kode program. Biasanya komentar digunakan untuk memberikan penjelasan terhadap kode-kode program yang kita tuliskan, dapat juga berupa kegunaan program, waktu dibuat dan penulis yang membuat.
Ada beberapa bentuk format dalam komentar.
  • //isi komentar
Komentar ini digunakan pada C++
  • /* isi komentar */
Komentar ini bias digunakan di C / C++

9      Fungsi Manipulasi String
Dalam sebuah kasus tertentu kita membutuhkan aktifitas untuk memanipulasi sebuah string, misalnya ketika kita mau menjumlah string, memotong string, dan sebagainya.
Untuk menggunakan fungsi ini kita membutuhkan file header yang bernama string.h.
Ada beberapa fungsi manipulasi string diantaranya :
  • Menentukan panjang string = strlen(string)
Fungsi ini digunakan untuk menghitung panjang dari sebuah string.
Contoh 1 :
#include <iostream.h>
#include <string.h>
void main()
{
        char *nama = “Belajar Algoritma dan Pemrograman”;
        cout<<strlen(nama);
}

  • Mencari sebuah string = strchr(string, index)
Fungsi ini digunakan untuk memotong sebuah string dimulai dari index.
Contoh 1 :
#include <iostream.h>
#include <string.h>
void main()
{
        char *nama = “Belajar Algoritma dan Pemrograman”;
        cout<<strchr(nama,’A’);
}

  • Mencari sebuah string = strstr(string, index)
Fungsi ini digunakan untuk memotong sebuah string dimulai dari index. Dengan ketentuan bahwa index yang dicari harus tepat, jika tidak maka hasilnya kosong / null.
Contoh 1 :
#include <iostream.h>
#include <string.h>
void main()
{
        char *nama = “Belajar Algoritma dan Pemrograman”;
        cout<<strstr(nama,”ajar”);
}

  • Membuat String menjadi huruf KAPITAL = strupr (string)
Fungsi ini digunakan membuat string menjadi huruf KAPITAL.
Contoh 1 :
#include <iostream.h>
#include <string.h>
void main()
{
        char *nama = “Belajar Algoritma dan Pemrograman”;
        cout<<strupr(nama);
}

  • Membuat String menjadi huruf kecil = strlwr (string)
Fungsi ini digunakan membuat string menjadi huruf kecil.
Contoh 1 :
#include <iostream.h>
#include <string.h>
void main()
{
        char *nama = “Belajar Algoritma dan Pemrograman”;
        cout<<strlwr(nama);
}

Posted on 11.31 by Unknown

No comments

Sumber : Cnet

Monitor pada computer anda atau layar adalah salah satu komponen yang paling vital dalam computer. Karena jika tanpa adanya layar atau monitor maka kita tidak akan bisa beraktivitas menggunakan computer karena tidak ada display yang ditampilkan.

Tentunya monitor anda harus secara rutin dibersihkan karena hal ini jika layar anda kotor maka membuat anda tidak nyaman untuk bekerja. Terlebih lagi jik anda memiliki hewan yang suka mengendus layar monitor anda pasti hal ini akan semakin membuat layar monitor anda menjadi kotor.

Tidakhanya monitor pada computer saja yang perlu dibersihkan tetapi juga layar televisi LCD atau HDTV anda perlu juga untuk dibersihkan karena debu atau kotoran bisa mengurangi kualitas dari televisi anda.

Tetapi ada yang perlu diperhatikan ketika anda membersihkan layar monitor atau layar LCD anda. Karena jika anda tidak membersihkan dengan benar maka kemungkinan anda malah akan merusak monitor anda.

Maka dari itu kami berikan Tips Cara Membersihkan Monitor dengan benar dan berikut ini beberapahal yang tidak boleh dilakukan dan juga yang boleh dilakukan.

Hal yang tidak boleh dilakukan dalam membersihkan layar monitor :
Jangan menggunakan semprotan aerosol, pelarut dan juga pengikis seperti yang digunakan untuk membersih kandapur karena zat yang digunakan terlalu keras untuk layar monitor atau televisi anda.
Jangan menggunakan kain yang kasar karena hal itu akan berpotensi menggores layar anda.
Jangan gunakan kuku atau benda tajam lainnya untuk menghilangkan noda membandel.

Hal yang dianjurkan dalam membersihkan layar monitor adalah :
Gunakankain yang kering dan bersih serta lembut atau anda bisa menggunakan kain micro-fiber yang biasanya disertakan dalam pembelian monitor atau tv untuk membersihkannya karena kain microfiber memiliki tekstur yang lembut.
Gunakan mild soap dan air hangat jika diperlukan. Mild soap tersebut dilarutkan ke air hangat dan dengan menggunakan kain bersihkan pada monitor anda.

Demikianlah cara membersihkan monitor dengan baik dan benar, dan selamat mencobanya.

Posted on 06.15 by Unknown

No comments




Handphone / Hp Android semakin populer di dunia dan menjadi saingan serius bagi para vendor handphone yang sudah ada sebelumnya seperti Nokia, Blackberry dan iPhone.

Tapi bila anda menanyakan ke orang Indonesia kebanyakan “Apa itu Android ?” Kebanyakan orang tidak akan tahu apa itu Android, dan meskipun ada yang tahu pasti hanya untuk orang tertentu yang geek / update dalam teknologi.

Ini disebabkan karena masyarakat Indonesia hanya mengenal 3 merek handphone yaitu BlackBerry, Nokia, dan merek lainnya :)
Ada beberapa hal yang membuat Android sulit (belum) diterima oleh pasar Indonesia, antara lain:
Kebanyakan handphone Android menggunakan input touchscreen yang kurang populer di Indonesia,
Android membutuhkan koneksi internet yang sangat cepat untuk memaksimalkan kegunaannya padahal Internet dari Operator selular Indonesia kurang dapat diandalkan,
Dan yang terakhir anggapan bahwa Android sulit untuk dioperasikan / dipakai bila dibandingkan dengan handphone lain macam Nokia atau Blackberry.
Apa itu Android

Android adalah sistem operasi yang digunakan di smartphone dan juga tablet PC. Fungsinya sama seperti sistem operasi Symbian di Nokia, iOS di Apple dan BlackBerry OS.

Android tidak terikat ke satu merek Handphone saja, beberapa vendor terkenal yang sudah memakai Android antara lain Samsung , Sony Ericsson, HTC, Nexus, Motorolla, dan lain-lain.

Android pertama kali dikembangkan oleh perusahaan bernama Android Inc., dan pada tahun 2005 di akuisisi oleh raksasa Internet Google. Android dibuat dengan basis kernel Linux yang telah dimodifikasi, dan untuk setiap release-nya diberi kode nama berdasarkan nama hidangan makanan.

Keunggulan utama Android adalah gratis dan open source, yang membuat smartphone Android dijual lebih murah dibandingkan dengan Blackberry atau iPhone meski fitur (hardware) yang ditawarkan Android lebih baik.

Beberapa fitur utama dari Android antara lain WiFi hotspot, Multi-touch, Multitasking, GPS, accelerometers, support java, mendukung banyak jaringan (GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE & WiMAX) serta juga kemampuan dasar handphone pada umumnya.
Versi Android yang beredar saat ini
Eclair (2.0 / 2.1)

Versi Android awal yang mulai dipakai oleh banyak smartphone, fitur utama Eclair yaitu perubahan total struktur dan tampilan user interface dan merupakan versi Android yang pertama kali mendukung format HTML5.


Froyo / Frozen Yogurt (2.2)

Android 2.2 dirilis dengan 20 fitur baru, antara lain peningkatan kecepatan, fitur Wi-Fi hotspot tethering dan dukungan terhadap Adobe Flash.
Gingerbread (2.3)

Perubahan utama di versi 2.3 ini termasuk update UI, peningkatan fitur soft keyboard & copy/paste, power management, dan support Near Field Communication.
Honeycomb (3.0, 3.1 dan 3.2)

Merupakan versi Android yang ditujukan untuk gadget / device dengan layar besar seperti Tablet PC; Fitur baru Honeycomb yaitu dukungan terhadap prosessor multicore dan grafis dengan hardware acceleration (Tablet pertama yang memakai Honeycomb adalah Motorola Xoom yang dirilis bulan Februari 2011).



Google memutuskan untuk menutup sementara akses ke source code Honeycomb, hal ini dilakukan untuk mencegah vendor pembuat handphone menginstall Honeycomb pada smartphone. Karena di versi sebelumnya banyak perusahaan menginstall Android ke dalam tablet PC, yang menyebabkan user tidak puas dan akhirnya membuat citra Android tidak bagus.
Ice Cream Sandwich (4.0)

Android Ice Cream Sandwich diumumkan pada 10 Mei 2011 di ajang Google I/O Developer Conference (San Francisco) dan resmi dirilis pada tanggal 19 Oktober 2011 di Hongkong. “Android Ice Cream Sandwich” dapat digunakan baik di smartphone ataupun tablet. Fitur utama Android ICS 4.0 ialah Face Unlock, Android Beam (NFC), perubahan major User Interface, dan ukuran layar standar (native screen) beresolusi 720p (high definition).
Android Jelly Bean (4.1, 4.2 dan 4.3)

Android Jelly Bean lebih menfokuskan fiturnya ke peningkatan User Interface yang lebih lancar dan responsif. Di versi ini juga menandai hadirnya fitur Google Now yang memberikan saran dan rekomendasi berdasarkan data-data yang tersimpan (kontak, kalender, lokasi, dll) di handphone.
Android KitKat (4.4)

Android KitKat menfokuskan pada manajemen memory sehingga device low-end yang memiliki memoery rendah tetap dapat berjalan lancar dan minim lagg. Selain itu hadir beberapa fitur lain seperti kemampuan untuk menggunakan semua tampilan layar (immersive mode), dukungan Mobile Printing, penambahan dukungan sensor baru, dll.
Market Share Android

Pada tahun 2012 sekitar 630 juta smartphone akan terjual diseluruh dunia, dimana diperkirakan sebanyak 49,2% diantaranya akan menggunakan OS Android.

Data yang dimiliki Google saat ini mencatat bahwa 500.000 Handphone Android diaktifkan setiap harinya di seluruh dunia dan nilainya akan terus meningkat 4,4% /minggu.

Platform Codename API Level Distribution
Android 1.5 Cupcake 3 0.3%
Android 1.6 Donut 4 0.7%
Android 2.1 Eclair 7 6.0%
Android 2.2 Froyo 8 23.1%
Android 2.3 - 2.3.2 Gingerbread 9 0.5%
Android 2.3.3 - 2.3.7 10 63.2%
Android 3.0 Honeycomb 11 0.1%
Android 3.1 12 1.0%
Android 3.2 13 2.2%
Android 4.0 - 4.0.2 Ice Cream Sandwich 14 0.5%
Android 4.0.3 15 2.4%


Data distribusi versi OS Android yang beredar di dunia sampai April 2012
Applikasi Android

Android memiliki komunitas developer yang besar untuk pengembangan applikasi, ini membuat fungsi Android menjadi lebih luas dan beragam. Android Market (sekarang Google Play) merupakan tempat download applikasi Android baik gratis ataupun berbayar yang dikelola oleh Google.



Meskipun tidak direkomendasikan, kinerja dan fitur Android dapat lebih ditingkatkan dengan melakukan Root Android. Fitur seperti Wireless Tethering, Wired Tethering, uninstall crapware, overclock prosessor, dan install custom flash ROM dapat digunakan pada Android yang sudah diroot.

Posted on 06.04 by Unknown

No comments