Senin, 22 Juni 2015

Contoh Soal dan Penyelesaian Dengan Divide and Conquer

Merge Sort

Merge sort, seperti namanya, merupakan algoritma yang dirancang untuk melakukan pengurutan terhadap sekumpulan bilangan. Ide utama dari merge sort sama dengan algoritma perhitungan total yang telah kita lakukan sebelumnya, yaitu membagi-bagikan keseluruhan list menjadi komponen kecil, dan kemudian mengurutkan komponen tersebut dan menggabungkannya kembali menjadi sebuah list besar.
Berikut adalah merge sort yang diimplementasikan dalam bahasa python:
def merge_sort(lst):
    if len(lst) <= 1:
        return lst

    mid = len(lst) // 2
    left = merge_sort(lst[:mid])
    right = merge_sort(lst[mid:])

    return merge(left, right)

def merge(left, right):
    result = []

    while len(left) > 0 or len(right) > 0:
        if len(left) > 0 and len(right) > 0:
            if left[0] <= right[0]:
                result.append(left.pop(0))
            else:
                result.append(right.pop(0))
        elif len(left) > 0:
            result.append(left.pop(0))
        elif len(right) > 0:
            result.append(right.pop(0))

    return result
Dari kode di atas terlihat bahwa merge sort memiliki dua bagian, yang dituliskan dalam dua buah fungsi: merge dan merge_sort. Fungsi merge_sort memiliki logika dan cara kerja yang sama dengan fungsi penjumlahan total yang kita bangun sebelumnya, dengan perbedaan pada bagian yang melakukan penggabungan list (return merge(left, right)).
Penggabungan list sendiri dilakukan dengan cukup sederhana dan gamblang, yaitu hanya membandingkan elemen-elemen dari dua buah list yang dikirimkan satu per satu, untuk kemudian disimpan ke dalam variabel result secara terurut. Untuk lebih jelasnya, mari kita coba bedah algoritma pada fungsi merge, langkah demi langkah.
Misalkan kita memanggil fungsi merge seperti berikut:
left  = [3, 5]
right = [1, 4]
merge(left, right)
Note
Ingat bahwa list pada variabel left maupun right harus sudah terurut jika ukuran list lebih dari 1. Fungsi merge dengan argumen list berukuran > 1 hanya dipanggil dari hasil merge dua buah list berukuran satu dalam kasus merge_sort.
Jika kita mengikuti langkah demi langkah pada kode, maka pada setiap iterasi while kita akan mendapatkan nilai masing-masing variabel sebagai berikut:
# Awal fungsi
left   = [3, 5]
right  = [1, 4]
result = []

# Iterasi 1
left   = [3, 5]
right  = [4]
result = [1]

# Iterasi 2
left   = [5]
right  = [4]
result = [1, 3]

# Iterasi 3
left   = [5]
right  = []
result = [1, 3, 4]

# Iterasi 4
left   = []
right  = []
result = [1, 3, 4, 5]
Penggabungan seperti di atas dilakukan pada setiap submasalah yang telah dipecah oleh merge_sort, sampai kita mendapatkan sebuah list dengan ukuran yang sama pada list awal. Untuk mempermudah pengertian, gambar di bawah menunjukkan proses pemecahan dan penggabungan kembali dari merge sort:
Langkah Kerja Merge Sort
Langkah Kerja Merge Sort
Proses divide terjadi ketika kotak dan panah berwarna merah, sementara conquer dan combine terjadi ketika kotak dan panah diberi warna biru. Proses conquer merupakan proses di mana kita mengurutkan elemen dalam list, dan combine adalah ketika kita menggabungkan hasil urutan dari list tersebut.

Contoh Soal dan Penyelesaian Dengan Metode Greedy


1. Kita diberikan sebuah knapsack (ransel) yang dapat menampung berat maksimum 15 Kg dan sehimpunan benda A = {a0, a1, a2, a3} yang berbobot (dalam Kg) W = {5,9,2,4}. Setiap benda tersebut diberikan nilai profit P = {100, 135, 26, 20}. Jika kita diperbolehkan memasukkan zi bagian dari benda ai yang ada ke dalam knapsack dimana 0 ≤ zi ≤ 1 , maka tentukanlah Z = {z0,z1,z2,z3} agar diperoleh total profit yang maksimal !
Penelesaian :
Dik : n = 4; M = 15;
        W = { 5,9,2,4 };
        P = { 100,135,26,20 },
Dit : total profit yang maksimal ?
Barang ke -
Berat(Wi)
Keuntungan(Pi)
Pi/Wi
Z0
5
100
20
Z1
9
135
15
Z2
2
26
13
Z3
4
20
5

Z ← 0
cu ← 15
i = 0
karena W(0) cu yaitu : 5 15 berarti : Z(0) ← 1
cu ← 15 - 5 = 10
i = 1
karena W(1) cu yaitu : 9 10 berarti : Z(1) ← 1
cu ← 10 - 9 = 1
i = 2
karena W(2) cu yaitu : 2 1 berarti : keluar dari loop (exit)
Karena 2 ≤ 3 maka Z(2) ← cu/W(2) = 1/2 = 0,5
Jadi optimisasi masalah knapsack diperoleh bila Z = { 1; 1; 0,5; 0 }
Sehingga Q = 1 x 100 + 1 x 135 + 0,5 x 26 + 0 x 20
= 100 + 135 + 13 + 0
= 248


2. Misal terdapat 3 buah prg.(n=3) yg masing-masing mempunyai panjang persegi.
(I1, I2 ,I3) = (5, 10, 3). Tentukan urutan penyimpanannya secara berurutan ( sequential )
agar optimal....!

Penyelesaiannya :

Dari 3 program tersebut akan didapat 6 buah kemungkinan order, yg didapat dari 
nilai faktorial 3 --> 3! (ingat faktorial n!).

ORDERING
D ( I )
1,2,3
1,3,2
2,1,3
2,3,1
3,1,2
3,2,1
5 + (5+10) + (5+10+3) = 38
5 + (5+3) + (5+3+10) = 31
10 + (10+5) + (10+5+3) = 43
10 + (10+3) + (10+3+5) = 41
3 + (3+5) + (3+5+10) = 29
3 + (3+10) + (3+10+5) = 34

Dari tabel tersebut, didapat Susunan / order yg optimal adalah :

susunan pertama untuk program ke tiga = 3

susunan kedua untuk program kesatu = 5

susunan ketiga untuk program kedua = 10

Jumat, 12 Juni 2015

Menghilangkan Perasaan Resah dan Gelisah

Memiliki kehidupan yang tenang dan tentram selalu menjadi idaman dan atau salah satu tujuan yang ingin dicapai setiap orang. hidup yang tenang dan tentram adalah dambaan dan muara dari perjuangan hidup umat manusia di dunia ini.
Kita pasti pernah merasakan bingung resah dan gelisah. Bingung memilih jalan hidup, bingung memilih pasangan hidup, bingung usaha, bingung cari kerja, bingung cari pinjaman utang, bahkan tidak sedikit dari kita pernah merasakan lagi bingung mau ngapain.

Dalam kondisi dimana seseorang sedang bingung resah dan atau gelisah, sedih, berduka, iri, dengki,  sakit hati, patah hati, senang, gembira, dan berbagai perasaan hati yang lain, baik yang positif maupun negatif pada dasarnya di sebabkan lebih karena kondisi atau perasaan hati serta jiwa seseorang. dan akibatnya akan kita jumpai banyak orang yang stress, gila, strok, serangan jantung disebabkan oleh hal hal yang demikian baik secara langsung maupun tidak langsung. 

Para Ahli Kejiwaan (psikolog dan atau psikiater) seringkali menyimpulkan bahwa beban hidup yang berat dan kondisi lingkungan yang tidak mendukung seringkali menjadi alasan dibalik semua itu.  Serupa tapi tak sama Al-quran menjelaskan tentang bagaimana mengatasi hal tersebut melalui pendekatan yang lebih mendalam dan lebih berorientasi pada pencegahan dan sekaligus pengobatan.


 
Mungkin ada diantara saudaraku umat islam yang pernah menjalankan Dzikr untuk mencari ketentraman lahir dan batin, Entah itu dilalui dengan sukses, gagal atau bahkan tak berbekas sama sekali. Bagi mereka yang merasakan manfaat dzikr, insya allah mereka akan tetap istiqomah menjalankan amal ibadah tersebut. namun bagi mereka yang gagal dan tetap pada posisi selalu merasa bingung resah dan gelisah, bukan tidak mungkin mereka akan terjerumus kedalam jurang yang lebih dalam.
Dalam kondisi / keadaan yang seperti ini, bukanlah dzikr atau amalan ibadah mereka tidak diterima dan atau tidak berhasil akan tetapi penerapan dan tata cara serta pengamalan dzikr yang kurang lengkap bisa jadi membuat mereka tetap dalam keadaan bingung resah dan gelisah.

Bentuk perwujudan dari Amal Ibadah dalam rangka Dzikr (mengingat Allah) adalah Shalat , baik itu shalat 5 waktu maupun shalat sunnah. sesibuk apapun pekerjaan yang kita dapatkan dan atau sebesar apapun masalah yang dihadapi seseorang selagi masih senantiasa melaksanakan shalat insya allah tidak akan mengalami kebingungan, resah maupun gelisah. 

Kamis, 07 Mei 2015

Peran Kita Terhadap Negara dan keuntungan bagi kita

PERAN KITA TERHADAP NEGARA DAN KEUNTUNGAN BAGI KITA

Hubungan antara negara dan warga negara identik dengan adanya hak dan kewajiban, antara warga negara dengan negaranya ataupun sebaliknya. Negara memiliki kewajiban untuk memberikan keamanan, kesejahteraan, perlindungan terhadap warga negaranya serta memiliki hak untuk dipatuhi dan dihormati. Sebaliknya warga negara wajib membela negara dan berhak mendapatkan perlindungan dari negara.
Di Indonesia seringkali terjadi adanya kesenjangan antara peranan negara dengan kehidupan warga negara. Masalah-masalah politik, sosial, ekonomi, dan budaya misalnya, seringkali terjadi karena adanya kesenjangan antara peranan negara serta kehidupan warga negaranya.
Dalam deretan pasal-pasal beserta ayat-ayatnya, UUD 1945 secara jelas mencantumkan hak serta kewajiban negara atas rakyatnya yang secara jelas juga harus dipenuhi melalaui tangan-tangan trias politica ala Monteqeiu. Melalui tangan Legislatif suara rakyat tersampaikan, melalui tangan eksekutif kewajiban negara, hak rakyat dipenuhi, dan di tangan yudikatif aturan-aturan pelaksanaan hak dan kewajiban di jelaskan. Idealnya begitu, tapi apa daya sampai sekarang boleh di hitung dengan sebelah tangan seberapa jauh negara menjalankan kewajibannya. Boleh dihitung juga berapa banyak negara menuntut haknya.
Bukan hal yang aneh ketika sebagian rakyat menuntut kembali haknya yang selama ini telah di berikan kepada negara sebagai jaminan negara akan menjaga serta menjalankan kewajibannya. Negara sebagai sebuah entitas dimana meliputi sebuah kawasan yang diakui (kedaulatan), mempunyai pemerintahan, serta mempunyai rakyat. Rakyat kemudian memberikan sebagian hak-nya kepada negara sebagi ganti negara akan melindunginya dari setiap mara bahaya, serta berkewajiban untuk mengatur rakyatnya. Hak-hak rakyat tadi adalah kewajiban bagi sebuah negara. Hak untuk hidup, hak untuk mendapatkan kerja serta hak-hak untuk mendapatkan pelayanan umum seperti kesehatan, rumah, dan tentunya hak untuk mendapatkan pendidikan. Semuanya itu harus mampu dipenuhi oleh negara, karena itulah tanggung jawab negara. Kalau hal itu tak bisa dipenuhi oleh sebuah negara maka tidak bisa disebut sebuah negara.

Berikut ini adalah beberapa peran warga negara dalam bidang kehidupan bernegara:

     Akhir-akhir ini nama mahasiswa sering muncul di pemberitaan media. Akan tetapi kebanyakan pemberitaan tersebut mengarah pada kejelekan mahasiswa, contohnya saja seperti tawuran, demo yang berakhir ricuh, anarkisme para mahasiswa, dan lain sebagainya. Hal itu sangat mencoreng citra para mahasiswa di mata masyarakat. Sebenarnya mahasiswa itu mempunyai suatu peranan penting dalam suatu kehidupan bermasyarakat dan bernegara. Apalagi dalam menanggulangi kondisi Negara rebublik Indonesia atau RI seperti saat ini. Tapi apa sih peranan mahasiswa itu??.

     Sebelum kita membahas tentang peran mahasiswa tehadap kondisi negara RI, sebaiknya kita lebih dahulu melihat kondisi negara kita saat ini. Kondisi negara RI saat ini sudah sangat memprihatinkan, contohnya di pemerintahan saat ini banyak pejabat kita yang melakukan korupsi, terjadi suap menyuap antar antar institusi pemerintahan, dan lain sebagainya. Di bidang keamanan, saat ini banyak terjadi perampokan, ancaman terorisme, konflik di perbatasan Indonesia, perang antar suku. Dan hal-hal lainnya, misalnya bencana kian silih terjadi di seluruh pelosok negeri. Dan masih banyak hal lainnya yang mungkin belum saya ketahui. Nah, dalam kondisi negara yang sedang kacau ini peran mahasiswa sangat diperlukan.

     Mahasiswa dapat diartikan terdiri dari dua kata yaitu Maha dan Siswa, maha artinya tinggi sedangkan siswa dapat disebut juga pelajar. Dengan kata lain mahasiswa yaitu sebutan bagi pelajar dalam tingkatan paling tinggi yang menuntut ilmu di dalam lingkungan sekolah yang disebut universitas. Namun tidak banyak orang yang bisa merasakan menjadi seorang mahasiswa, karena tingginya biaya kuliah. Yang menyebabkan sulitnya mereka yang mempunyai ekonomi rendah untuk bisa mengenyam bangku perkuliahan.

     Dalam menanggapi peranan mahasiswa dalam menganggulangi kondisi RI, sebenarnya banyak sekali peran yang dapat dilakukan. Mahasiswa selalu menjadi bagian dari perjalanan sebuah bangsa, baik sebagai pelopor, penggerak bahkan sebagai pengambil keputusan. Mahasiswa itu mempunyai pemikiran yang kritis terhadap masalah yang ada disekitar, mengangkat realita sosial yang terjadi di masyarakat, dan bisa juga memperjuangkan aspirasi masyarakat. Secara umum peran mahasiswa antara lain, sebagai penyampai kebenaran, sebagai agen perubahan, dan yang paling utama sebagai generasi penerus bangsa.

     Mahasiswa dituntut supaya bisa mengikuti perkembangan zaman, mempunyai sikap kritis terhadap lingkungan, mempunyai rasa nasionalisme yang tinggi, dan masih banyak lainnya. Kita sebagai mahasiswa jangan hanya sekedar menjadi pelajar, tetapi kita harus bisa mengembangkan potensi diri kita, mengembangkan jiwa sosial, dan juga kemampuan softskill dan hardskill. Dan yang paling utama yaitu mahasiswa harus bisa membawa negara ini kedalam perubahan yang lebih baik.

 keutuntang yang kita dapat banyak sekali dari bidang hukum sosial dan juga politik dan masih banyak lainya kita sebagai mahasiswa dapat menyampaikan berbagai aspirasi yang kita inginkan.