Al Ikhlas

1. Katakanlah : Dia-lah Allah, Yang Maha Esa 2. Allah adalah Tuhan yang bergantung kepada-Nya segala sesuatu 3. Dia tiada beranak dan tidak pula diperanakkan 4. Dan tidak ada seorangpun yang setara dengan Dia (Al-Qur'an Surat Al-Ikhlas 112)

Selasa, 28 Januari 2014

Membuat efek grid pada foto dengan photoshop

Membuat efek grid pada foto

memberi efek grid pada foto sangat sederhana, tapi hasil dari foto yang diberi efek grid ini sangat elegan sekali menurut saya, dan ini preview hasil nya :

oke langsung aja berikut ini cara membuatnya :
pertama kita harus membuat patern terlebih dahulu,
Pattern adalah suatu objek yang dibuat hanya dengan membuat gambar dasar nya saja, dan sifatnya Kontinyu.. fungsinya untuk mem FILL dokumen dengan bentuk yang kita inginkan yang nantinya akan kita letakan di atas foto yang akan kita beri efek grid, jadi patern inilah yg akan memberikan efek grid nantinya....,

  1. klik file >> new. ikuti aturan seperti gambar di bawah ini

  2. klik ok, karna ukurannya yg sangat kecil maka kita zoom tekan "ctrl & +"
  3. klik pencil tool (no.1) dan ubah ukuran nya (no.2)
  4. Buat garis tepi di kiri dan atas dengan menggunakan PENCIL TOOL..warna Hitam (no.3)
  5. lalu klik edit >> defind pattern , dan patern name patern 1 (no.4)

  6. buka gambar yg akan kita beri efek grid di sini saya memakai photo saya sendiri :

  7. klik kanan dan pilis save file as jika anda ingin mendownloadnya.
  8. Buat layer baru..dengan klik layer > new > layer .. atau klik tombol add new layer seperti yang ada di gambar (no.1)
  9. klik edit >> fill, lalu pilih patern yg tadi kita buat "patern 1" (no.2) klik ok

  10. lalu ubah layer stylenya menjadi overlay, maka hasilnya seperti ini :

Sekarang coba ganti bentuk pattern nya sepert ini :

Makahsilnya :

dan ini patern yang bentuk 3D :

Hasilnya seperti yg di preview di atas.


Semoga bermanfaat....,

tutorial photoshop Mewarnai foto dengan gradient map

Mewarnai foto dengan gradient map,

sering kali foto hasil dari camera tidak seperti yang kita inginkan,
dengan photoshop ada banyak teknik yang bisa kita gunakan untuk mengedit warna sebuah foto,
salah satunya dengan tutorial ini yaitu mewarnai foto dengan gradient map.

dan ini dia preview hasilnya :

langsung aja buka file photo yang mau di edit, di sini saya menggunakan foto saya dan teman2 saya,

klik kanan >> save as. untuk mendownload fotonya.
Dan berikut tutorialnya :
  1. Buka gambar yang akan kita gunakan " ctrl+o "
  2. Klik create new fill or adjustment layer >> pilih black and white untuk merubah photo menjadi hitam putih, atur propertiesnya seperti gambar berikut

  3. Klik lagi create new fill or adjustment layer >> pilih Gradient Map

  4. klik warna gradient hitam-putih (no.1) untuk mengubah warna gradient
  5. maka akan muncul gradient editor, lalu pilih warna yg ter sedia, di sini saya menggunakan warna violet,green,orange(no.2)
  6. kita juga memilih beberapa warna yg kita inginkan yaitu dengan klil >> stops >> color (no.3)
  7. klik >> ok, maka hasilnya akan terlihat seperti (no.4)

  8. ubah mode blending layernya >> soft ligth

  9. dan hasilnya seperti di bawah ini :

  10. klik icon mata di layer black & white

  11. maka hasilnya :

    kita tinggal pilih mau menggunakan layer black & white atau tidak yg jelas hasilnya sangat berbeda dengan foto aslinya....,
    selamat mencoba


    Semoga bermanfaat....,

Sabtu, 25 Januari 2014

tutorial photoshop membuat sketsa pensil dengan photoshop

pada postingan ini ialah membuat tutorial photoshop sketsa pensil dengan photoshop, dan ini preview hasilnya :


bagi yang tertarik langsung aja praktek dengan mengikuti langkah-langakah di bawah ini :
  1. buka file gambarnya. "theo.jpg" silahkan unduh atau anda bisa juga mengunakan gambar lain yang ada di komputer anda.


  2. copy layer backgraund, klik layer >> new >> layer viacopy (ctrl+j), maka akan muncul layer1.
  3. pilih layer1. lalu klik image >> adjustment >> desature.

  4. copy layer 1, klik layer >> new >> layer viacopy (ctrl+j), maka akan muncul layer baru bernama layer1 copy.
  5. pilih layer 1 copy, lalu klik image >> invert (ctrl+i) maka hasilnya akan seperti gambar di bawah ini.

  6. ubah blending modenya dari normal menjadi color doge, lihat gambar di bawah :

  7. klik filter >> blur >> gausian blur, isi nilai radiusnya 1,9 pixels, "anda bisa atur sendiri nilainya sesuai selera" lalu klik ok.

  8. Maka hasilnya seperti di bawah ini :

  9. selamat mencoba...,

Semoga bermanfaat....,

Kamis, 23 Januari 2014

Model Referensi OSI 7 Layer


Model Referensi OSI 7 Layer


Pengantar Model Jaringan
Supaya komputer dapat mengirimkan informasi ke komputer lain, dan dapat menerima dan mengerti informasi, harus ada aturan atau standard untuk proses komunikasi tersebut. Standar ini meyakinkan kita bahwa beberapa jenis produk dan perangkat dapat berkomunikasi dengan perangkat lain yang berbeda melewati beberapa jaringan.
Pembakuan standard ini disebut "MODEL".. International Standards Organization (ISO) telah menciptakan model secara luas untuk industri, atau "framework", untuk mendefinisikan aturan-aturan jaringan yang harus dilakukan untuk komunikasi yang handal. Model jaringan ini dibagi menjadi "Layer", yang masing-masing layer mempunyai fungsi yang berbeda dalam proses komunikasi.
Berikut analogi untuk membantu memahami model layer :
Analogi Model Jaringan
Dalam analogi model jaringan berikut, jasa antar digunakan untuk representasi model jaringan. Tiap tahap dalam proses pengiriman paket dari Atlanta ke Toronto membutuhkan pekerjaan spesifik yang harus dilakukan pada level yang spesifik.





Mengapa Model Jaringan dibuat Layer?

Pada contoh jasa antar di atas, tiap tahap dalam proses pengiriman paket dari Atlanta ke Toronto membutuhkan pekerjaan spesifik pada level tertentu. Paket harus melalui beberapa tahap proses, transfer data dari satu mesin ke mesin lainnya dalam jaringan membutuhkan tahapan dan proses.
Untuk menstandardkan proses, harus digunakan sebuah model yang menunjukkan bagaimana data dikirimkan, diseleksi, dibongkar muat, dan diantarkan ke tujuan.
Proses seperti ini disebut model jaringan. Keberadaan model jaringan untuk menyediakan sebuah "framework", atau "blueprint", untuk standard implementasi dan protokol yang digunakan oleh mesin dan perangkat untuk berkomunikasi. Proses dan pekerjaan dipisah ke dalam kelompok logika yang disebut Layer.


Manfaat Model Jaringan



Model Jaringan bermanfaat untuk desain, arsitektur dan implementasi jaringan, diantaranya:
  • Mengurangi kompleksitas, dengan proses pembagian dalam kelompok, atau layer, implementasi arsitektur jaringan menjadi lebih sederhana.
  • Menyediakan kesesuaian, keseuaian standard interface untuk "plug-and-play" dan integrasi antar multi-vendor.
  • Fasilitas modular - memungkinkan bongkar-pasang "swap" teknologi baru pada tiap layer dan arsitektur jaringan tetap terjaga.
  • Mempercepat evolusi Teknologi, Pengembang fokus pada satu layer sambil menjaga pengaruhnya pada layer yang lain.
  • Mudah dipelajari - pembagian proses ke dalam kelompok akan mengurangi kompleksitas dan memudahkan pemahaman.
  • Terdapat beberapa model jaringan yang diterapkan saat ini. Di sini hanya akan dibahas model OSI, yang juga sebagai referensi model TCP/IP.

Model Layer OSI




"Open" dalam OSI




“Open” dalam OSI adalah untuk menyatakan model jaringan yang melakukan interkoneksi tanpa memandang perangkat keras/"hardware" yang digunakan, sepanjang software komunikasi sesuai dengan standard. Hal ini secara tidak langsung menimbulkan "modularity" (dapat dibongkar pasang).

Modularity


"Modularity" mengacu pada pertukaran protokol di level tertentu tanpa mempengaruhi atau merusak hubungan atau fungsi dari level lainnya.
Dalam sebuah layer, protokol saling dipertukarkan, dan memungkinkan komunikasi terus berlangsung. Pertukaran ini berlangsung didasarkan pada perangkat keras "hardware" dari vendor yang berbeda dan bermacam-macam alasan atau keinginan yang berbeda.



7 Layer OSI
Model OSI terdiri dari 7 layer :
  1. Application
  2. Presentation
  3. Session
  4. Transport
  5. Network
  6. Data Link
  7. Physical
Apa yang dilakukan oleh 7 layer OSI ?



Model OSI


Tujuan utama penggunaan model OSI adalah untuk membantu desainer jaringan memahami fungsi dari tiap-tiap layer yang berhubungan dengan aliran komunikasi data. Termasuk jenis-jenis protoklol jaringan dan metode transmisi.
Model dibagi menjadi 7 layer, dengan karakteristik dan fungsinya masing-masing.
Tiap layer harus dapat berkomunikasi dengan layer di atasnya maupun dibawahnya secara langsung melalui serentetan protokol dan standard.

    fungsi setiap lapisan layer osi
  • Application Layer:
  • Menyediakan jasa untuk aplikasi pengguna. Layer ini bertanggungjawab atas pertukaran informasi antara program komputer, seperti program e-mail, dan service lain yang jalan di jaringan, seperti server printer atau aplikasi komputer lainnya.
  • Presentation Layer:
  • Bertanggung jawab bagaimana data dikonversi dan diformat untuk transfer data.
    Contoh konversi format text ASCII untuk dokumen, .gif dan JPG untuk gambar. Layer ini membentuk kode konversi, translasi data, enkripsi dan konversi.
  • Session Layer:
  • Menentukan bagaimana dua terminal menjaga, memelihara dan mengatur koneksi,-bagaimana mereka saling berhubungan satu samalain. Koneksi di layer ini disebut "session".
  • Transport Layer:
  • Bertanggung jawab membagi data menjadi segmen, menjaga koneksi logika "end-to-end“ antar terminal, dan menyediakan penanganan error (error handling).
    Network Layer: Bertanggung jawab menentukan alamat jaringan, menentukan rute yang harus diambil selama perjalanan, dan menjaga antrian trafik di jaringan. Data pada layer ini berbentuk paket.
  • Network Layer:
  • Bertanggung jawab menentukan alamat jaringan, menentukan rute yang harus diambil selama perjalanan, dan menjaga antrian trafik di jaringan. Data pada layer ini berbentuk paket.
  • Data Link Layer:
  • Menyediakan link untuk data, memaketkannya menjadi frame yang berhubungan dengan "hardware" kemudian diangkut melalui media. komunikasinya dengan kartu jaringan, mengatur komunikasi layer physical antara sistem koneksi dan penanganan error.
  • Physical Layer:
  • Bertanggung jawab atas proses data menjadi bit dan mentransfernya melalui media, seperti kabel, dan menjaga koneksi fisik antar sistem.


Pengantar Encapsulasi Data
Topik berikut menjelaskan tahap-tahap dari encapsulasi dan decapsulasi data dalam proses komunikasi data.


Jika kita kembali ke contoh Jasa Antar, tiap layer membutuhkan proses tersendiri untuk meyakinkan pengiriman dan pengangkutan paket dari Atlanta ke Toronto. Agar hal ini dapat berjalan lancar, paket harus :
  1. Harus mempunyai alamat tujuan dan nomor pengiriman yang jelas.
  2. Disortir/diseleksi dengan paket lain yang dikirim ke Toronto.
  3. Ditempatkan di truk untuk dibawa ke pesawat khusus yang membawa paket ke Toronto.
  4. Sampai di tujuan, Toronto, paket diambil dan disortir dari paket lain dan dimasukkan ke dalam truk.
  5. Truk mengantarkan paket ke alamat tujuan di Toronto.

Sepanjang perjalanan, alamat tujuanlah yang dijadikan referensi, walaupun informasi lain ikut ditambahkan, seperti nomor pengiriman dan nomor keberangkatan untuk menggunakan truk dan pesawat yang tersedia. Penambahan informasi ini tidak merubah isi paket atau alamat tujuan, hanya sebagai penunjuk jalan (routing information) yang dibutuhkan. Oleh karena itu, analogi ini menunjukkan model OSI adalah "modular", mengijinkan modifikasi atau penggantian tiap layer tanpa mempengaruhi keseluruhan data.

Contoh Encapsulasi Data
Terdapat 5 langkah dasar encapsulasi data :






Semoga bermanfaat....

Sabtu, 18 Januari 2014

MATEMATIKA DISKRIT - LINTASAN TERPENDEK (SHORTEST PATH)

KATA PENGANTAR


Puji syukur kehadirat allah swt dengan segala kerahmatan nya saya masih diberikan kesehatan serta kesempatan dalam menyusun tugas makalah matematika diskrit. Dalam hal ini saya sangat puas dengan hasil dan bahan yang sudah saya siapkan sebelumnya.
Makalah ini membahas tentang materi matematika diskrit yaitu graf. Graf sangat erat kaitannya dengan kehidupan sehari-hari kita. Misalnya pada sebuah jalan, ataupun pada rambu-rambu lalu lintas. Graf sendiri mempunyai persoalan yang unik, salah satunya pada lintasan terpendek (shortest path). Graf yang digunakan dalam pencarian lintasan terpendek adalah graf berbobot (weight graph). Disini juga saya menyajikan algoritma dalam graf dan pembahasannya. Semoga tugas ini dapat menambah wawasan saya serta pembacanya juga sekaligus menambah nilai pada perkuliaan saya.
Matematika diskrit merupakan mata kuliah yang fundamental dalam pendidikan ilmu komputer atau teknik informatika. Saat ini matematika diskrit merupakan mata kuliah wajib pada program pendidikan yang termasuk ke dalam kelompok teknologi informasi.



BAB I LATAR BELAKANG


Matematika merupakan suatu bidang ilmu yang banyak digunakan untuk menyelesaikan berbagai permasalahan yang muncul dalam kehidupansehari-hari. Berbagai permasalahan tersebut ada yang dapat di modelkan kedalam suatu model matematika namun ada pula beberapa permasalahan yang tidak dapat dimodelkan ke dalam model matematika.
Masalah di luar bidang matematika biasanya akan dibawa ke dalam penyelesaian matematika, yaitu dengan mencari model matematikanya. Suatu permasalahan akan semakin mudah dipelajari, dipahami dan diselesaikan jika dapat dimodelkan ke dalam suatu model matematika .
Setelah diperoleh model matematika dari suatu masalah, maka masalah tersebut akan dibawa ke dalam cabang-cabang ilmu matematika untuk menentukan penyelesaiannya. Salah satu cabang ilmu matematika yang dapat digunakan untuk menyelesaikan permasalahan tersebut adalah teori graph.Graph G terdiri dari himpunan tak kosong dari elemen-elemen yang disebut titik (vertex) dan daftar pasangan berurutan dari elemen-elemen yang disebut sisi (edge).
Himpunan titik dari graph G disebut himpunan titik dari G dinyatakan dengan V(G) dan daftar sisi dari G dinyatakan dengan E(G). SuatuGraph G = (V,E) menyatakan graph G dengan himpunan titik-titik V(G) dan himpunan sisi E(G).Terdapat banyak konsep dalam graph, salah satunya adalah lintasan terpendek (Shortest Path) yang merupakan salah satu topik yang mampu mendukung penerapan graph dalam berbagai bidang ilmu.


BAB II KAJIAN TEORI 2.1


Konsep Dasar Graph
Teori Graph merupakan salah satu cabang ilmu matematika yang sering diterpakan dan dimanfaatkan dalam kehidupan sehari-hari, ada beberapa contoh permasalahan yang bisa diselesaikan dengan menggunakan teori Graph. Contohnya pembahasan ini menyangkut pada LINTASAN TERPENDEK (SHORTEST PATH). Permasalahan di atas dapat dibentuk sebagai graph yang digambarkan dengan titik dan garis. Garis yang menghubungkan titik pada graph tersebut disebut titik.

Lintasan terpendek merupakan salah satu masalah yang dapat diselesaikan dengan menggunakan graph. Jika diberikan sebuah graph berbobot, masalah lintasan terpendek adalah bagaimana kita mencarisebuah jalur pada graph yang meminimumkan jumlah bobot sisi pembentuk jalur tersebut. Terdapat bermacam persoalan lintasan terpendek antara lain:
  1. Lintasan terpendek antara dua buah simpul tertentu (a pair shortestpath).
  2. Lintasan terpendek antara semua pasanggan simpul (all pairs shortestpath)
  3. Lintasan terpendek dari simpul tertentu ke semua simpul yang lain(single-source shortest path).
  4. Lintasan terpendek antara dua buah simpul yang melalui beberapasimpul tertentu (intermediate shortest path).

BAB III PEMBAHASAN 3.1

Algoritma-Algoritma Lintasan terpendek(shortest path)
1.Algoritma Greedy
Algoritma Greedy adalah algoritma yang memecahkan masalah langkah demi langkah, pada setiap langkah dilakukan dengan cara:
oMengambil pilihan yang terbaik yang dapat diperoleh saat itu
oBerharap bahwa dengan memilih optimum local pada setiaplangkah akan mencapai optimum global.
Langkah-langkah algoritma greedy:
  1. Menentukan titik awal dan titik tujuan, misalnya titik awal a.
  2. Periksa semua sisi yang langsung bersisian dengan titik a. Pilih sisi yang bobotnya terkecil. Sisi ini menjadi lintasan terpendek pertama, sebut saja L(1).
  3. Tentukan lintasan terpendek kedua dengan cara berikut:
  4. Hitung: d(i) = panjang L(1) + bobot sisi dari simpul akhir L(1) kesimpul i yang lain.
  5. Pilih d(i) yang terkecil.
  6. Bandingkan d(i) dengan bobot sisi (a, i). Jika bobot sisi (a, i) lebihkecil daripada d(i), maka L(2) = L(1) U (sisi dari simpul akhir L(i)ke simpul i)
  7. Dengan cara yang sama, ulangi langkah 2 untuk menentukanlintasan terpendek berikutnya.

Kelebihan algoritma Greedy:
Prinsip pencarian lintasan terpendek memakai fungsi ” Seleksi” dan itu berguna untuk menentukan jalan tersingkat untuk menuju suatu tempat. Sehingga, kita dapat sampai tepat waktu menuju tempat tujuan. Hasil analisis berdasarkan bobot-bobot yang berbeda, menunjukkan bahwa semakin banyak bobot yang diberikan, maka semakin akurat pula data yang dihasilkan. Sehingga menghasilkan waktu yang efisien.

Kekurangan algoritma Greedy:
Algoritma greedy tidak beroperasi secara menyeluruh terhadap semua alternatif solusi yang ada (sebagaimana pada metode exhaustive search).
oPemilihan fungsi Seleksi: Mungkin saja terdapat beberapa fungsi Seleksi yang berbeda, sehingga kita harus memilih fungsi yang tepat jika kita ingin algoritma bekerja dengan benar dan menghasilkan solusiyang benar-benar optimum. Karena itu, pada sebagian masalah algoritma greedy tidak selalu berhasil memberikan solusi yang benar-benar optimum.

Contoh :Permasalahan :
“Carilah jalur terpendek dari titik kuning ke titik biru”
Pilihan awal yang dipilih algoritma adalah a karena a lebih pendek daripada d. Pilihan selanjutnya hanya satu sehingga tidak ada pilihan lain selain b. Lalu ke c dan ke tujuan akhir. Maka jaraknya adalah 10,5. Padahal jika menggunakan jalur satu lagi sebesar 7. Begitu seterusnya Jika jarak a ke b adalah 1000. Algoritma ini tidak bisa mundur, sehingga memilih b.
Padahal nilainya sangat besar. Disanalah kelemahan algoritma ini. Tetapi dengan tidak pernah mundur ke tempat awal untuk mencari jalan alternatif. Algoritma ini cepat dalam menyelesain pencarian lintasan tercepat.



2. Algoritma Djikstra
Strategi ini merupakan strategi yang paling terkenal untuk mencari lintasan terpendek. Algoritma Dijkstra diterapkan pada graf berarah, tetapi selalu benar untuk graf tak-berarah. Strategi ini menggunakan strategi Greedy sebagai berikut: “Pada setiap langkah, ambil sisi yang berbobot minimumyang menghubungkan sebuah simpul yang sudah terpilih dengan sebuah simpul lain yang belum terpilih. Lintasan dari simpul asal ke simpul yang baru haruslah merupakan lintasan yang terpendek diantara semua lintasannya ke simpul simpul yang belum terpilih.

Langkah-langkah dalam menentukan lintasan terpendek pada algoritma Dijkstra yaitu:
  1. Pada awalnya pilih titik dengan bobot yang terendah dari titik yang belum terpilih, diinisialisasikan dengan „0‟ dan yang sudah terpilih diinisialisasikan dengan „1‟.
  2. Bentuk tabel yang terdiri dari titik, status, bobot dan redecessor. Lengkapi kolom bobot yang diperoleh dari jarak titik sumber kesemua titik yang langsung terhubung dengan titik sumber tersebut.
  3. Jika titik sumber ditemukan maka tetapkan sebagai titik terpilih.
  4. Tetapkan titik terpilih dengan label permanen dan perbarui titik yang langsung terhubung.
  5. Tentukan titik sementara yang terubung pada titik yang sudahterpilih sebelumnya dan merupakan bobot terkecil dilihat dari tabeldan tentukan sebagai titik terpilih berikutnya.
  6. Apakah titik yang tepilih merupakan titik tujuan? Jika ya, makakumpulan titik terpilih atau predecessor merupakan rangkaian yangmenunjukkan lintasan terpendek.
  7. Begitu seterusnya sampai semua titik terpilih.
Contoh :


Dari graph diatas tenetukan lintasan terpendek dari titik A ke titik F.
Dengan menggunakan program, diperoleh lintasan terpendek dari titk A ketitik F sebagai berikut .Diperoleh lintasan terpendek yaitu A-E-D-F dengan bobot total sebesar 22.
(Mencari lintasan terpendek dari simpul a ke semua simpul lain }
Langkah 0 (inisialisasi):
- inisialisasi si = 0 dan di = mai untuk i = 1, 2, ..., n

Langkah 1:
- isi sa dengan 1 (karena simpul a adalah simpul asal lintasan terpendek, jadi sudah pasti terpilih)
- isi da dengan ¥ (tidak ada lintasan terpendek dari simpul a ke a)

Langkah 2, 3, ..., n-1:
- cari j sedemikian sehingga sj = 0 dan dj = min{d1, d2, ..., dn}
- isi sj dengan 1
- perbarui di, untuk i = 1, 2, 3, …, n dengan:
di (baru) = min{di (lama), dj + mji }.



Tentukan lintasan terpendek dari simpul 1 ke semua simpul lain.



Jadi, lintasan terpendek dari:
  • 1 ke 3 adalah 1, 3 dengan panjang = 10
  • 1 ke 4 adalah 1, 3, 4 dengan jarak = 25
  • 1 ke 2 adalah 1, 3, 4, 2 dengan jarak = 45
  • 1 ke 5 adalah 1, 5 dengan jarak = 45
  • 1 ke 6 tidak ada

Contoh 6.34. Tinjau graf berarah pada Gambar 6.50 yang menyatakan jarak beberapa kota di Amerika Serikat.



Tentukan lintasan terpendek dari simpul 5 ke semua simpul lain.



Jadi, lintasan terpendek dari:
  • 5 ke 6 adalah 5, 6 dengan panjang = 250
  • 5 ke 7 adalah 5, 6, 7 dengan jarak = 1150
  • 5 ke 4 adalah 5, 6, 4 dengan jarak = 1250
  • 5 ke 8 adalah 5, 6, 8 dengan jarak = 1650
  • 5 ke 3 adalah 5, 6, 4, 3 dengan jarak = 2450
  • 5 ke 2 adalah 5, 6, 4, 3, 2 dengan jarak = 3250
  • 5 ke 1 adalah 5, 6, 8, 1 dengan jarak = 3350

3. Algoritma Bellman-Ford
Algoritma Bellman-Ford merupakan algoritma untuk mencari shortest path, dengan menghitung jarak terpendek pada sebuah graf berbobot, atau menghitung semua jarak terpendek yang berawal dari satu titik node. Langkah-langkah:
  1. Tentukan vertex source dan daftar seluruh vertices maupun edges.
  2. Assign nilai untuk distance dari vertex source = 0, dan yang lain infinite
  3. Mulailah iterasi terhadap semua vertices yang dimulai dari Vertexsource
  4. Untuk menentukan distance dari semua vertices yang berhubungandengan vertex source dengan formula seperti berikut ini :- U = vertex asal- V = vertex tujuan- UV = Edges yang menghubungkan U dan V- Jika distance V, lebih kecil dari distance U + weight UV maka distance V, diisi dengan distance U + weight UV- Lakukan hingga semua vertex terjelajahi
  5. Untuk mengecek apakah ada negative cycle dalam graf tersebut lakukan iterasi untuk semua edges yang ada, kemudia lakukan penge-cek-an seperti dibawah ini :
  6. Untuk semua edges UV, jika ada distance vertex U + weight edges UVkurang dari distance vertex V maka sudah jelas bahwa graf tersebutmemiliki negative cycle.



Contoh:Dari graph di atas tentukan lintasan terpendek dari titik 1 ke titik 4. Langkah-langkah:

  1. Tahap pertama adalah tahap inisialisasi yaitu dengan melabeli titik awal atau titik asal yaitu titik 1 dengan 0 dan titik-titik lainnya dengan ∞.d(1,1)< 0 untuk masing-masing v anggota V – {s} maka d(s,v)< ∞
  2. Tahap kedua yaitu tahap proses iterasiUntuk masing-masing sisi (1,2) anggota E makaJika d(1,2) > d(1,2)+w(2,3) makad(1,2) diganti dengan d(1,2)+w(2,3)Akhirnya diperoleh d(1,4)=5+4+4=13.
KESIMPULAN
4.1
  1. Algoritma Greedy
  2. Dengan menggunakan algoritma greedy didapatkan bobot total sebesar13,38 km, tetapi hasil ini tidak optimal karena dengan menggunakan algoritma yang lain didapatkan hasil dengan jarak yang lebih pendek.Algoritma ini memiliki kelebihan yaitu cepat dalam proses pencarianlintasan terpendeknya. Sedangkan kekurangannya yaitu tidak optimal danada kemungkinan gagal dalam pencarian dan mungkin lintasan yang diperoleh bukanlah yang terpendek.
  3. Algoritma Dijkstra
  4. Dalam algoritma dijkstra juga menggunakan prinsip greedy yang menyatakan bahwa pada setiap langkah kita memilih sisi yang berbobot minimum dan memasukannya kedalam himpunan solusi. Selain itu algoritma dijkstra paling terkenal dari algoritma lainnya karena dijkstra diterapkan mencari lintasan terpendek pada graf berarah. Namun, juga benar untuk graf tidak berarah.


DAFTAR PUSTAKA


  • Ilmu diskrit revisi 5, rinaldi munir. 2010
  • Teori graph, santoso. 1993
  • Michael, J. D., Rosen, K.H. 1991.
  • Application of Discrete Mathematics.
Semoga bermanfaat....,

Jumat, 17 Januari 2014

Program aplikasi penyewaan mobil

posting kali ini adalah membuat program sederhana menggunakan jcreator.
JCreator itu sendiri adalah untuk mempermudah programer dalam pembuatan program baik itu dalam pembuatan listing program, proses meng-compile dan proses me-running.
JCreator alat pengembangan untuk setiap programmer yang suka melakukan apa yang dia lakukan yang terbaik dalam pemrograman.
Hal ini karena lebih cepat, lebih efisien dan lebih dapat diandalkan daripada IDE Java lain,download jcreator dari website aslinya disini
Dengan adanya usaha peyewaan mobil, pastinya membutuhkan sebuah program aplikasi untuk mempermudah dalam proses transaksi baik itu penginputan data, proses data, output data, penyimpanan data dan data transaksi.
Program aplikasi penyewaan mobil terdiri dari beberapa pilihan, yaitu:
  1. Daftar Mobil yang Disewakan dan Biaya.
  2. Harga sewa perhari
  3. Harga kelipataan sewa mingguan dalam perhari.
Dan berikut adalah syntax program nya :


import java.io.*;
import javax.swing.*;
class daftar_mobil
{
public static void main(String args[ ])
{
do
{
int pil = Integer.parseInt(JOptionPane.showInputDialog ("======Daftar Mobil yang Disewakan Dan biaya======\n1.TOYOTA KIJANG INNOVA\n2.HONDA FREED AUTOMATIC\n3.SUZUKI APV\n4.NISSAN GRAND LIVINA\n5.KIA CARNIVAL\n6.KELUAR"));
switch(pil)
{
case 1:
String a=JOptionPane.showInputDialog("Harga per hari : 500000\n\nHarga kelipatan per 7 hari:3000000\n\nMasukan Jumlah Hari Peminjaman: ");
int jumlahHari1=Integer.parseInt(a);
final int rentalPerHari1 = 500000;
final int rentalPerMinggu1 = 3000000;
int totalBiayaPeminjaman1 = (jumlahHari1/7) * rentalPerMinggu1 + (jumlahHari1%7) * rentalPerHari1;
JOptionPane.showMessageDialog(null,"Total Biaya Peminjaman Adalah : " +totalBiayaPeminjaman1);
break;

case 2:
String b=JOptionPane.showInputDialog("Harga per hari : 350000\n\nHarga kelipatan per 7 hari:2100000\n\nMasukan Jumlah Hari Peminjaman: ");
int jumlahHari2=Integer.parseInt(b);
final int rentalPerHari2 = 350000;
final int rentalPerMinggu2 = 2100000;
int totalBiayaPeminjaman2 = (jumlahHari2/7) * rentalPerMinggu2 + (jumlahHari2%7) * rentalPerHari2;
JOptionPane.showMessageDialog(null,"Total Biaya Peminjaman Adalah : " + totalBiayaPeminjaman2);
break;

case 3:
String c=JOptionPane.showInputDialog("Harga per hari : 400000\n\nHarga kelipatan per 7 hari:2300000\n\nMasukan Jumlah Hari Peminjaman: ");
int jumlahHari3=Integer.parseInt(c);
final int rentalPerHari3 = 400000;
final int rentalPerMinggu3 = 2300000;
int totalBiayaPeminjaman3 = (jumlahHari3/7) * rentalPerMinggu3+(jumlahHari3%7) *rentalPerHari3;
JOptionPane.showMessageDialog(null,"Total Biaya Peminjaman Adalah : " + totalBiayaPeminjaman3);
break;

case 4:
String d=JOptionPane.showInputDialog("Harga per hari : 420000\n\nHarga kelipatan per 7 hari:2040000\n\nMasukan Jumlah Hari Peminjaman: ");
int jumlahHari4=Integer.parseInt(d);
final int rentalPerHari4 = 420000;
final int rentalPerMinggu4 = 2040000;
int totalBiayaPeminjaman4 = (jumlahHari4/7) * rentalPerMinggu4 + (jumlahHari4%7) * rentalPerHari4;
JOptionPane.showMessageDialog(null,"Total Biaya Peminjaman Adalah : " + totalBiayaPeminjaman4);
break;

case 5:
String e=JOptionPane.showInputDialog("Harga per hari : 370000\n\nHarga kelipatan per 7 hari:2090000\n\nMasukan Jumlah Hari Peminjaman: ");
int jumlahHari5=Integer.parseInt(e);
final int rentalPerHari5 = 370000;
final int rentalPerMinggu5 = 2090000;
int totalBiayaPeminjaman5 = (jumlahHari5/7) * rentalPerMinggu5 + (jumlahHari5%7) * rentalPerHari5;
JOptionPane.showMessageDialog(null,"Total Biaya Peminjaman Adalah : " + totalBiayaPeminjaman5);
break;

case 6:
JOptionPane.showMessageDialog(null,"Terima Kasih");
System.exit(0);
break;
default:
JOptionPane.showMessageDialog(null,"MAAF PILIHAN SALAH");
}
}
while(true);
}
}


Logika dan Listing Program

Logika program adalah menjelaskan setiap listing program khususya dalam setiap statetment. Logika program bisa saja dijelaskan di dalam listing program atau yang disebut juga dengan komentar program.

import java.io.*;
menampilkan entry readline pada suatu Input Stream.

import javax.swing.*;
menjelaskan bahwa kita mengimpor class JoptionPane membuat sebuah input dialog yang akan menampilkan dialog dengan sebuah pesan.

class daftar_mobil
Dalam Java, semua kode seharusnya ditempatkan di dalam deklarasi class. Sebagai tambahan, class menggunakan access specifier public, yang mengindikasikan bahwa class kita mempunyai akses bebas ke class yang lain dari package yang lain pula package sifat suatu objek dengan nama file daftar_mobil.

{
awal dari sebuah blok inti program.

public static void main(String args[ ])
mengindikasikan nama suatu method dalam class data2 yang bertindak sebagai method utama. Method utama adalah titik awal dari suatu program Java. Method diaskses semua objek tanpa harus menciptakan objek terlebih dahulu dengan method main.

{
awal dari sebuah blok inti program dengan Do While.

Do
pemeriksaaan kondisi yang dilakukan adalah pernyataan. Pernyataan Boolean atau Loop Condition diakhiri perulangan, bukan di awali seperti pada perulangan while tertentu.

{
awal dari sebuah blok inti program pada daftar_mobil.

int pil = Integer.parseInt(JOptionPane.showInputDialog
("======Daftar Mobil yang Disewakan Dan biaya======\n1.TOYOTA KIJANG INNOVA\n2.HONDA FREED AUTOMATIC\n3.SUZUKI APV\n4.NISSAN GRAND LIVINA\n5.KIA CARNIVAL\n6.KELUAR"));

membuat sebuah input dialog JOptionPane, yang akan menampilkan dialog dengan sebuah pesan, sebuah textfield dan tombol OK dan Cancel seperti pada gambar. Hasil dari dialog tersebut adalah Integer parseInt dan disimpan ke dalam integer pil.


switch(pil)
bagian dari sebuah kondisi switch case yang pil.
{
awal dari sebuah blok inti program menu case.

case 1:
bagian case1.

String a=JOptionPane.showInputDialog("Harga per hari : 500000\n\nHarga kelipatan per 7 hari:3000000\n\nMasukan Jumlah Hari Peminjaman: ");
membuat sebuah input dialog JOptionPane, yang akan menampilkan dialog dengan sebuah pesan, sebuah textfield dan tombol OK dan CANCEL seperti pada gambar. Hasil dari dialog tersebut adalah String dan disimpan ke dalam variabel a.

int jumlahHari1=Integer.parseInt(a);
mentransformasikan String menjadi integer.

final int rentalPerHari1 = 500000;
menetapkan variabel integer rental per hari 1.

final int rentalPerMinggu1 = 3000000;
menetapkan variabel integer rental per minggu 1.

Int totalBiayaPeminjaman1 = (jumlahHari1/7) * rentalPerMinggu1 + (jumlahHari1%7) * rental Per Hari 1;
proses perhitungan (jumlah Hari ke 1 dibagi 7) * rental Per Minggu 1 + (jumlah Hari ke 1%7) * rental Per Hari 1.

JOptionPane.showMessageDialog(null,"Total Biaya Peminjaman Adalah : " +
Total Biaya Peminjaman1);

message dialog, yang menampilkan sebuah pesan, sebuah textfield dan tombol OK seperti pada gambar.

break;
Selesai pemrosesan dari case1.

case 2:
penjelasan bagian case2 sampai dengan case5 sama dengan penjelasan yang ada pada case1.

case 6:
bagian case6.

JOptionPane.showMessageDialog(null,"Terima Kasih");
message dialog, yang menampilkan sebuah pesan, sebuah textfield dan tombol OK seperti pada gambar.

System.exit(0);
Keluar dari inti program.

break;
Selesai pemrosesan dari case6.

default:b>
JOptionPane.showMessageDialog(null,"MAAF PILIHAN SALAH");

message dialog, yang menampilkan sebuah pesan, sebuah textfield dan tombol OK seperti pada gambar.
}
akhir dari sebuah blok inti pada sebuah case.

}
akhir dari sebuah blok inti program pada daftar_mobil.

while(true);
pemeriksaaan kondisi yang dilakukan adalah pernyataan. Pernyataan Boolean atau Loop Condition diakhiri perulangan, bukan di awali seperti pada perulangan while tertentu.

}
akhir dari sebuah blok inti program pada Do While.

OUTPUT :
Klik Build File lalu Run Project
Maka Akan Muncul tampilan output : Daftar Mobil yang Disewakan dan Biaya.


Seandainya anda memilih 4 pada Daftar Mobil yaitu Nissan Grand Livina maka tampilan akan seperti dibawah ini.


Harga per hari adalah Rp 420.000 dan harga kelipatan per 7 hari yang sudah mendapatkan potongan diskon 1 hari adalah Rp 420.000 maka total 7 hari Rp 2.040.000. Masukan jumlah hari
peminjam misalkan 2 hari dengan inputan 2, maka akan tampilan message dibawah ini yang telah ditotal dengan menggunakan listing program.


Dan Seandainya anda memilih 6 pada Daftar Mobil yaitu keluar dari menu maka tampilan akan seperti dibawah ini.


Maka akan muncul sebuah pesan informasi terima kasih, kemudian tekan enter.


Salah Input
Seandainya anda memilih 7 pada Daftar Mobil yaitu anda salah input dari menu maka tampilan akan seperti dibawah ini.

Maka akan muncul sebuah pesan informasi maaf pilihan salah, kemudian tekan enter maka akan kembali ke menu untuk menanyakan pilihan kembali.


Semoga bermanfaat....,

Senin, 06 Januari 2014

Bahasa pemrograman


Bahasa pemrograman atau sering diistilahkan juga dengan bahasa komputer atau bahasa pemrograman komputer adalah instruksi standar untuk memerintah komputer.
Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer.
Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer dan bagaimana data ini akan disimpan/diteruskan.
dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.

Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari:

  • Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110
  • Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer dengan memakai kode-kode singkat (kode mnemonic), contohnya MOV, SUB, CMP, JMP, JGE, JL, LOOP, dsb.
  • Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai campuran instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||, dsb.
  • Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or, dsb.

Sebagian besar bahasa pemrograman digolongkan sebagai Bahasa Tingkat Tinggi, hanya bahasa C yang digolongkan sebagai Bahasa Tingkat Menengah dan Assembly yang merupakan Bahasa Tingkat Rendah.

Tingkatan Bahasa Pemrograman

  1. Bahasa Tingkat Tinggi
  2. Bahasa pemrograman masuk tingkat ini karena bahasa tersebut mendekati bahasa manusia. Contohnya bahasa Basic, Visual Basic, Pascal, Java dan lainnya.
  3. Bahasa Tingkat Menengah
  4. Disebut tingkat menengah karena bisa masuk ke dalam bahasa tingkat tinggi maupun rendah. Contohnya bahasa C.
  5. Bahasa Tingkat Rendah
  6. Bahasa pemrograman masuk tingkat ini karena bahasanya masih jauh dari bahasa manusia. Contohnya bahasa Assembly.

Proses Pembuatan Program
Proses pembuatan program yaitu kita menulis kode sumber pada teks editor misalnya notepad kemudian mengubahnya menjadi bahasa mesin yang bisa dieksekusi oleh CPU.
Proses pengubahan kode sumber (source code) menjadi bahasa mesin (machine language) ini terdiri dari dua macam yaitu kompilasi dan interpretasi.

Kompilasi (Compilation)
Dalam proses kompilasi semua kode sumber dibaca terlebih dahulu dan jika tidak ada kesalahan dalam menulis program maka akan dibentuk kode mesinnya sehingga program bisa dijalankan.
Program yang melakukan tugas ini disebut Compiler. Program hasil kompilasi akan berbentuk executable.
Program bisa langsung dijalankan tanpa harus memiliki Compiler di komputer yang menjalankan program tersebut.
Bahasa yang menggunakan teknik kompilasi misalnya bahasa C, C++, Pascal, Assembly dan masih banyak lagi.

Interpretasi (Interpretation)
Bahasa yang menggunakan teknik interpretasi akan membaca kode sumber perbaris dan dieksekusi perbaris.
Jika ditemukan kesalahan dalam penulisan program maka di baris kesalahan itulah program akan dihentikan.
Program yang melakukan tugas ini disebut Interpreter. Pada teknik interpretasi tidak ada akan dihasilkan program standalone,
artinya untuk menjalankan program kita harus mempunyai kode sumbernya sekaligus interpreter program tersebut.
Bahasa yang menggunakan teknik interpretasi misalnya bahasa Perl, Python, Ruby dan masih banyak lagi.

Kompilasi Sekaligus Interpretasi

Ada juga bahasa pemrograman yang menghasilkan programnya dengan teknik kompilasi sekaligus interpretasi.
Misalnya bahasa java. Dalam pembuatan program java kode sumber diubah menjadi bytecode.
Meskipun nampak seperti bahasa mesin namun ini bukanlah bahasa mesin dan tidak executable.
Untuk menjalankan bytecode tersebut kita membutuhkan Java Runtime Environment (JRE) yang bertugas sebagai interpreter sehingga menghasilkan program dari bytecode tersebut.
Meskipun setiap bahasa pemrograman dibuat untuk membuat program namun setiap bahasa dibuat dengan tujuan dan fungsi yang berbeda-beda.
Misalnya untuk membuat driver hardware kita tidak bisa menggunakan bahasa Visual Basic. Untuk membuat program berbasis sistem seperti driver kita bisa gunakan bahasa C atau Assembly.
Contohnya sistem operasi linux yang open source. Jika anda melihat kode sumbernya anda akan menemukan bahwa linux dibuat menggunakan bahasa C.
Sedangkan untuk pemrograman desktop kita bisa menggunakan Visual Basic.
Bahasa tersebut dirancang oleh Microsoft untuk pemrograman desktop dengan tampilan GUI yang memukau.

Daftar Bahasa Pemrograman
Berikut ini adalah daftar bahasa pemrograman komputer:
  • Aro
  • Ada
  • ALGOL
  • Applescript
  • Assembly
  • BASIC:
  • ASP
  • BASIC
  • COMAL
  • Visual Basic
  • Visual Basic for Applications
  • VBScript
  • Batch (MS-DOS)
  • COBOL
  • UNIX shell script:
  • Bourne shell (sh) script
  • Bourne-Again shell (bash) script
  • Korn shell (ksh) script
  • C shell (csh) script ™
  • C:™
  • C++™
  • C#™
  • Visual C++
  • ColdFusion
  • dBase dkk.:
  • Clipper
  • Foxbase
  • Visual FoxPro
  • Eiffel
  • Fortran
  • Go
  • Haskell
  • Java
  • JavaScript
  • JSP
  • Lisp
  • Logo
  • Pascal
  • Delphi
  • Perl
  • Prolog
  • Python
  • PHP
  • Pike
  • R
  • REXX
  • REBOL
  • RPG
  • Ruby
  • Simula
  • Smalltalk
  • Scheme
  • SQL
sumber : wikipedia
Semoga bermanfaat....,