Implementasi Algoritma Round-robin Schedule Sederhana
Round-robin Schedule Algorithm merupakan algoritma yang digunakan untuk membuat sebuah jadwal pertandingan yang digunakan oleh Round-robin tournament seperti salah satunya adalah FIFA World Cup. Dengan algoritma ini, partisipan pertandingan akan dibagi lawan mainnya seadil mungkin (termasuk posisi home dan away). So, ingin tahu kan bagaimana cara mereka membagi jadwal pertandingannya?
Pada tulisan kali ini, saya akan menjelaskan algoritma Round-robin versi sederhana yang mana masih perlu dikembangkan lebih jauh. Sebelum masuk tahap implementasi, ada beberapa kelemahan yang harus saya terangkan terlebih dahulu. Asumsikan ada 5 partisipan yang direpresentasikan sebagai [1, 2, 3, 4, 5].
Kelemahannya:
Partisipan 1 selalu di bagian "home".
Partisipan 1 bermain 5 kali yang mana seharusnya 4 kali agar adil.
Well, algoritma ini belum bisa mengatasi partisipan yang jumlahnya ganjil. Dan, apabila genap pun, partisipan 1 selalu mendapat home. Artinya, algoritma sederhana ini masih belum bisa dikatakan adil. Di tulisan berikutnya, akan kembali saya jelaskan mengenai algoritma ini yang telah dikembangkan menggunakan Berger tables.
Algoritma
Langkah-langkah untuk implementasi algoritma ini adalah:
1. Ambil daftar partisipan
=> [1, 2, 3, 4, 5, 6]
2. Buat daftar tadi menjadi dua (dibagi 2)
=> [1, 2, 3] [4, 5, 6]
3. Asumsikan daftar yang dibagi dua adalah A dan B
=> A = [1, 2, 3]
=> B = [4, 5, 6]
4. Posisi B dibalik (reverse)
=> A = [1, 2, 3]
=> B = [6, 5, 4]
5. Ambil data sebagai Round 1
=> Round 1:
=> 1 vs 6
=> 2 vs 5
=> 3 vs 4
6. Ubah daftar A menjadi [1, (data pertama B), ..., (hapus data terakhir)]
=> A = [1, 6, 2]
7. Ubah daftar B menjadi [(hapus data pertama), ..., (data terakhir A)]
=> B = [5, 4, 3]
8. Daftar yang sudah diubah menjadi Round berikutnya
=> A = [1, 6, 2]
=> B = [5, 4, 3]
=>
=> Round 2
=> 1 vs 5
=> 6 vs 4
=> 2 vs 3
9. Ulangi langkah 6, 7, dan 8 hingga Round habis (sebanyak N).
Dimana N adalah
- (banyaknya partisipan - 1) jika jumlah partisipannya genap
- (banyaknya partisipan) jika jumlah partisipannya ganjil
Dalam kasus di atas (partisipan 6, genap) maka N = (6 - 1) = 5.
Berarti, jumlah Round-nya sebanyak 5.
Tabel perpindahan data kira-kira seperti di bawah. Bagian yang diberi kutip adalah data yang dipindahkan.
1, 2, 3, 4
8, 7, 6, 5
1, "8", 2, 3
7, 6, 5, "4"
1, "7", 8, 2
6, 5, 4, "3"
...
Dan seterusnya.
Apabila kamu tertarik melihat implementasinya dengan bahasa Haskell, kamu bisa melihatnya di repository saya yaitu wisn/halgorithms. Adapun cuplikan kodenya sebagai berikut.
-- Create the schedule. Here is the main Round-robin Schedule Algorithm
schedulizer :: [a] -> [[(a, a)]]
schedulizer list = makesSchedule list (length list) (-1)
where
makesSchedule :: [a] -> Int -> Int -> [[(a, a)]]
makesSchedule _ _ 0 = []
makesSchedule list n games =
let games' = if games == (-1)
then do
if even n then (n - 1) else n
else games
middle = n `div` 2
divide = splitAt middle list
left = fst divide
right = if even n
then (reverse . snd) divide
else (reverse . init . snd) divide
zipped = zip left right
in [zipped] ++ makesSchedule (rotater list)
Inspirasi men :)
Kamis, 06 Desember 2018
Sabtu, 29 September 2018
Fungsi
Yang Harus Ada di Embedded System
1 1. Embeded
System Harus Mengikuti Aturan Tertentu
Contoh : Pengeraman pada
motor /rem ABS(Anti Lock Braking System)
Penjelasan
Cara kerja
rem ABS pada motor ini sendiri adalah sensor sistem ABS ini akan mendeteksi terjadinya
sebuah penguncian terhadap roda, dan secara otomatis sensor akan mengirimkan
sebuah sinyal ke modulator yg kemudian berfungsi utk memerintahkan piston rem
pada roda tersebut agar mengendur. Dan pada saat penguncian pada roda sudah
mulai berkurang, maka tekanan terhadap piston rem tersebut akan kembali
ditingkatkan. Secara teknikal, cara kerja rem ABS ini sendiri seperti kita
sedang melakukan settingan terhadap rem dengan cara mengocok pedal rem.
Sehingga kendaraan dengan sistem rem ABS ini tidak akan langsung berhenti pada
saat pedal rem ditekan secara penuh.
2. Embeded System Harus Punya Logika
Berurutan
Contoh : Pengambilan Tiket
Kereta Api(Boarding Pass)
Penjelasan
Yang harus dilakukan
sebelum mengeprint tiket kereta api adalah kita harus memasukan kode tiket yang
telah dipesan kemudian ketikkan pada mesin chek-in mandiri lalu akan muncul nama dan ID penumpang, kode booking, dan nama KA beserta tujuan dan
jadwal keberangkatan kemudian klik print/cetak maka dengan sendirinya tiket
akan keluar.
3. Embedded system yang menggunakan sensor harus memiliki pemprosesan
sinyal
Contoh : Sistem Sonar pada Kapal
Penjelasan
Cara kerja
Sonar adalah pertama, echo sounder mengemisikan gelombang suara
berfrekuensi tinggi. Gelombang suara ini akan merambat dalam air. Jika mengenai
obyek seperti ikan, metal, dasar laut atau benda-benda yang lain, maka
gelombang suara tadi akan terpantul. Sinyal pantulan akan diterima oleh hidrofon
dan ditampilkan oleh display yang menggambarkan karakteristik obyek di bawah
air.
Untuk
mengetahui lokasi (jarak) dari obyek di bawah air, maka waktu yang dibutuhkan
gelombang suara tersebut dapat digunakan untuk mencari jarak panjang gelombang
yang ditempuh gelombang suara tersebut. Sedangkan jarak (posisi) aktual d dari
obyek tersebut diperoleh dengan membagi dua panjang gelombang λ yang
ditempuh.
4. Perantara/interface komunikasi untuk beberapa embedded system
Contoh : Alarm Kebakaran
Addressable
Penjelasan
Sistem addressable
merupakan sistem yang memasang ID (address) pada detektor
kebakarannya. Pada sistem ini, detektor yang dipasang terhubung langsung dengan
kontrol utama. Dengan teknologi pemberian alamat pada setiap detektor, maka,
saat terjadi kebakaran, ia akan langsung mengirimkan alarm dan signal lampu
detektor mana yang mengirimkan. Kelebihan dari sistem ini adalah kemudahan yang
didapatkan dalam menentukan letak akurat kebakaran. Saat kebakaran, hal ini
sangat penting, karena dapat segera mengetahui jalur evakuasi yang tepat serta
memperpanjang waktu evakuasi.
5. Embedded system harus mampu respon terhadap kesalahan kalau ada
kegagalan atau kerusakan
Contoh : Eject
Flashdisk
Penjelasan
Jika
flashdisk masih dalam proses mengirim data pada komputer, tetapi data belum
selesai dikirim maka komputer akan menampilkan peringatan untuk melanjutkan
mengirim data atau tidak melanjutkan mengirim data, agar dapat mencegah
kesalahan pada pengiriman data.
Jumat, 09 Maret 2018
Mikroprosesor adalah sebuah IC (Integrated Circuit) yang digunakan sebagai otak/pengolah utama dalam sebuah sistem komputer. Mikroprosesor merupakan hasil dari pertumbuhan semikonduktor. Prosesor adalah chip yang sering disebut “Microprosessor” yang sekarang ukurannya sudah mencapai gigahertz. Ukuran tersebut adalah hitungan kecepatan prosesor dalam mengolah data atau informasi. Merk prosesor yang banyak beredar dipasatan adalah AMD, Apple, Cyrix VIA, IBM, IDT, dan Intel.
Sejarah Perkembangan Microprocessor
1904 : Dioda tabung pertama kali diciptakan oleh seorang ilmuwan dari Inggris yang bernama Sir John Ambrose Fleming (1849-1945)
1906 : ditemukan trioda hasil pengembangan dioda tabung oleh seorang ilmuwan Amerika yang bernama Dr. Lee De Forest. Yang kemudian terciptalah tetroda dan pentode.
Akan tetapi penggunaan dari tabung hampa tersebut tergeser pada tahun 1960 setelah ditemukannya komponen semikonduktor.
1947 : Transistor diciptakan di labolatorium Bell.
1965 : Gordon Moore dari Fairchild semiconductor dalam sebuah artikel untuk majalan elektronik mengatakan bahwa chip semikonduktor berkembang dua kali lipat setiap dua tahun selama lebih dari tiga dekade.
1968 : Moore, Robert Noyce dan Andy Grove menemukan Intel Corp. untuk menjalankan bisnis “INTegrated Electronics.”
1969 : Intel mengumumkan produk pertamanya, RAM statis 1101, metal oxide semiconductor (MOS) pertama di dunia. Ia memberikan sinyal pada berakhirnya era memori magnetis.
1971 : Intel meluncurkan mikroprosesor pertama di dunia, 4-bit 4004, yang didesain oleh Federico Faggin.
1972 : Intel mengumumkan prosesor 8-bit 8008. Bill Gates muda dan Paul Allen coba mengembangkan bahasa pemograman untuk chip tersebut, namun saat itu masih kurang kuat.
1974 : Intel memperkenalkan prosesor 8-bit 8080, dengan 4.500 transistor yang memiliki kinerja 10 kali pendahulunya.
1975 : Chip 8080 menemukan aplikasi PC pertamanya pada Altair 8800, sekaligus merevolusi PC. Gates dan Allen sukses mengembangkan bahasa dasar Altair, yang kemudian menjadi Microsoft Basic, untuk 8080.
1976 : Arsitektur x86 mengalami kemunduran saat Steve Jobs dan Steve Wozniak memperkenalkan Apple II computer dengan menggunakan prosesor 8-bit Motorola 6502.
1978 : Intel memperkenalkan mikroprosesor 16-bit 8086 yang kelak menjadi standar industri pada tanggal 8 Juni.
1979 : Intel memperkenalkan versi dengan harga yang lebih murah dari 8086, yaitu 8088 dengan 8-bit bus.
1980 : Intel memperkenalkan 8087 math co-processor.
1981 : IBM memilih 8088 untuk menjalankan PC-nya. Seorang eksekutif Intel kemudian mengatakannya sebagai “Kemenangan besar pertama Intel.”
1982 : IBM menandatangani Advanced Micro Devices sebagai sumber kedua Intel untuk mikroprosesor 8086 dan 8088.
1982 : Intel memperkenalkan prosesor 16-bit 80286 dengan 134.000 transistor.
1984 : IBM mengembangkan PC generasi kedua, 80286-based PC-AT. PC-AT yang menjalankan MS-DOS,
kelak menjadi standar PC selama hampir 10 tahun.
1985 : Intel keluar dari bisnis RAM dinamis untuk fokus pada mikroprosesor, dan akhirnya ia mengeluarkan prosesor 80386, sebuah chip 32-bit dengan 275.000 transistor dan kemampuan menjalankan berbagai macam program sekaligus.
1986 : Compaq Computer melambungkan IBM dengan PC yang didasarkan pada 80386.
1987 : VIA Technologies didirikan di Fremont, Calif., mereka akan mejual chip set core logic x86.
1989 : 80486 diluncurkan, dengan 1.2 juta buah transistor dan built-in math co-processor.
Intel telah memprediksi pengembangan prosesor multicore suatu saat pada tahun 2000-an.
1990 : Compaq memperkenalkan server PC pertama, yang dijalankan dengan menggunakan 80486.
1993 : Transistor 3.1 juta, prosesor 66-MHz Pentium dengan teknologi superscalar diperkenalkan.
1994 : AMD dan Compaq membentuk aliansi untuk mendukung Compaq computer dengan mikroprosesor Am486.
1997 : Intel meluncurkan teknologi prosesor 64-bit Epic. Ia juga memperkenalkan MMX Pentium untuk aplikasi prosesor sinyal digital, yang juga mencakup grafik, audio, dan pemrosesan suara.
1998 : Intel memperkenalkan prosesor Celeron di bulan April.
1999 : VIA mengakuisisi Cyrix Corp. dan Centaur Technology, pembuat prosesor x86 dan x87 co-processor.
2000 : Debut Pentium 4 dengan 42 juta transistor.
2003 : AMD memperkenalkan x86-64, versi 64-bit dari x86 instruction set.
2004 : AMD mendemonstrasikan x86 dual-core processor chip.
2005 : Intel menjual prosesor Dual-Core pertamanya.
2006 : Dell Inc. mengumumkan akan menawarkan system prosesor berbasis A
Selasa, 17 Januari 2017
Three Little Bird
Lagu Three Little Bird yang di ciptakan dan di populerkan oleh Bob Marley,
seseorang yang indentik dengan Reggae. Pria kelahiran 6 Februari 1945
ini adalah orang yang memperkenalkan reggae pada dunia. Gue adalah salah
satu penggemar reggae dan bukan penggemar reggae namanya kalau nggak
suka Bob Marley.
Di Indonesia, Reggae belum terlalu terlihat, seenggaknya di televisi
yang dibanjiri lagu-lagu pop. Namun tak dapat dipungkiri penggemar
Reggae sudah banyak, terbukti banyak acara-acara kampus yang
menghadirkan band-band beraliran Reggae.
Salah satu lagu Bob Marley yang bagus dan sekaligus soundtrack film adalah Three Little Bird Seperti
halnya kebanyakan lagu Bob Marley yang bercerita tentang jangan terlalu
memikirkan masalah dan nikmati saja hidup apa adanya, Three Little Bird
juga menampilkan lirik yang mengajak pendengarnya untuk santai sejenak
dan cobalah berpikir positif, nggak ada masalah yang diberi Allah SWT
melebihi kemampuan suatu individu, kan? Seperti kata Steven Coconut
Treez, "kalau kau frustasi karena kurang santai, kaupun sakit hati
karena kurang santai." Jadi cobalah santai kawan....(sambil joget
patah-patah ala reggae (ala reggae loh, ya, bukan ala Anissa Bahar)).
Lagu Three Little Bird ini muncul di film I am legend, sebagai lagu favorit sang peran utama yang dimainkan oleh Will Smith
yaitu Robert Neville, yang seorang ahli virus militer Amerika. Film ini
menurut gue bagus banget selain karena gue suka film dengan genre
semacam ini, science fiction. Bagi yang belum nonton coba deh tonton,
seru.
Kembali ke lagunya, lagu yang berada di album Exodus ini memiliki dua versi tentang asal usul judul lagunya. Satu pihak mengatakan bahwa Bob Marley terinsipirasi dari banyak hal, ia mengamati kehidupan lalu Bob Marley teringat akan tiga burung kenari yang datang ke jendela rumahnya. Namun ada pula yang mengatakan bahwa Three Little Bird merupakan tiga penyanyi wanita dari grup Reggae. Tak masalah siapa yang benar, namun memang lagu ini benar-benar bagus. Berikut makna liriknya menurut saya.
Singing sweet songs
Menyanyikan lagu-lagu manis
Of melodies pure and true,
Melodi murni dan benar
Saying, ('This is my message to you-ou-ou')
Bernyanyi, "lagu ini adalah pesan untukmu-ou-ou"
(Di lirik ini Bob Marley mengajak untuk menyambut hari dengan senyuman. Dan disini pendapat pertama tentang asal usul judul lagu kayanya terbukti soalnya ada lirik yang mengungkapkan tentang tiga ekor burung di rumah Bob Marley)
Kembali ke lagunya, lagu yang berada di album Exodus ini memiliki dua versi tentang asal usul judul lagunya. Satu pihak mengatakan bahwa Bob Marley terinsipirasi dari banyak hal, ia mengamati kehidupan lalu Bob Marley teringat akan tiga burung kenari yang datang ke jendela rumahnya. Namun ada pula yang mengatakan bahwa Three Little Bird merupakan tiga penyanyi wanita dari grup Reggae. Tak masalah siapa yang benar, namun memang lagu ini benar-benar bagus. Berikut makna liriknya menurut saya.
Three Little Birds
Bob Marley
'Don't worry about a thing,
Jangan khawatir tentang hal itu
'Cause every little thing is gonna be all right.
'Cause every little thing is gonna be all right.
Karena setiap hal kecil akan baik-baik saja
Singing: 'Don't worry about a thing,
Singing: 'Don't worry about a thing,
Bernyanyi: "jangan khawatir tentang hal itu,"
'Cause every little thing gonna be all right!'
'Cause every little thing gonna be all right!'
Karena setiap hal kecil akan baik-baik saja
(Lirik ini mengajak kita agar tak terlalu khawatir akan suatu hal,
karena semua hal akan baik-baik saja. Karena memang masalah kan bukan
buat dikhawatirin tapi untuk diselesaikan, namun jika dalam perjalanan
untuk menyelesaikannya sangat sulit maka coba tanamkan dalam pikiran,
"semuanya akan baik-baik saja" Liriknya bener-bener masuk apalagi dipadu
sama musik Reggae yang menurut gue ngajak santai)
Rise up this morning,
Bangkitlah pagi ini
Smiled with the rising sun,
Smiled with the rising sun,
Tersenyumlah dengan matahari terbit
Three little birds
Three little birds
Tiga burung kecil
Pitch by my doorstep
Berada di depan pintu rumahku
Pitch by my doorstep
Berada di depan pintu rumahku
Singing sweet songs
Menyanyikan lagu-lagu manis
Of melodies pure and true,
Melodi murni dan benar
Saying, ('This is my message to you-ou-ou')
Bernyanyi, "lagu ini adalah pesan untukmu-ou-ou"
(Di lirik ini Bob Marley mengajak untuk menyambut hari dengan senyuman. Dan disini pendapat pertama tentang asal usul judul lagu kayanya terbukti soalnya ada lirik yang mengungkapkan tentang tiga ekor burung di rumah Bob Marley)
Singing 'Don't worry about a thing,
Bernyanyi Jangan khawatir tentang hal itu
'Cause every little thing is gonna be all right.
'Cause every little thing is gonna be all right.
Karena setiap hal kecil akan baik-baik saja
Singing: 'Don't worry about a thing,
Singing: 'Don't worry about a thing,
Bernyanyi: "jangan khawatir tentang hal itu,"
'Cause every little thing gonna be all right!'
'Cause every little thing gonna be all right!'
Karena setiap hal kecil akan baik-baik saja
(Lirik
ini mengajak kita agar tak terlalu khawatir akan suatu hal, karena
semua hal akan baik-baik saja. Karena memang masalah kan bukan buat
dikhawatirin tapi untuk diselesaikan, namun jika dalam perjalanan untuk
menyelesaikannya sangat sulit maka coba tanamkan dalam pikiran,
"semuanya akan baik-baik saja" Liriknya bener-bener masuk apalagi dipadu
sama musik Reggae yang menurut gue ngajak santai)
Singing sweet songs
Menyanyikan lagu-lagu manis
Of melodies pure and true,
Melodi murni dan benar
Saying, ('This is my message to you-ou-ou')
Bernyanyi, "lagu ini adalah pesan untukmu-ou-ou"
(Di lirik ini Bob Marley mengajak untuk menyambut hari dengan senyuman. Dan disini pendapat pertama tentang asal usul judul lagu kayanya terbukti soalnya ada lirik yang mengungkapkan tentang tiga ekor burung di rumah Bob Marley)
Singing 'Don't worry about a thing, worry about a thing, oh!
Bernyanyi 'jangan khawatir tentang hal itu, khawatir tentang hal itu, oh!
Every little thing is gonna be all right. Don't worry!'
Setiap hal kecil akan baik-baik saja. Jangan khawatir!
Singing 'Don't worry about a thing' - I won't worry!
Bernyanyi 'jangan khawatir tentang hal itu - aku tidak akan khawatir!
''Cause every little thing is gonna be all right.'
Karena setiap hal kecil akan baik-baik saja
Singing 'Don't worry about a thing' - I won't worry!
Bernyanyi 'jangan khawatir tentang hal itu - aku tidak akan khawatir!
''Cause every little thing is gonna be all right.'
Karena setiap hal kecil akan baik-baik saja
Singing 'Don't worry about a thing'
Bernyanyi 'jangan khawatir tentang hal itu
''Cause every little thing is gonna be all right.'
Karena setiap hal kecil akan baik-baik saja
Singing 'Don't worry about a thing' - Oh no!
Bernyanyi 'jangan khawatir tentang hal itu - oh tidak!
''Cause every little thing is gonna be all right.'
Karena setiap hal kecil akan baik-baik saja
Rise up this morning,
Bangkitlah pagi ini
Smiled with the rising sun,
Smiled with the rising sun,
Tersenyumlah dengan matahari terbit
Three little birds
Three little birds
Tiga burung kecil
Pitch by my doorstep
Berada di depan pintu rumahku
Pitch by my doorstep
Berada di depan pintu rumahku
Singing sweet songs
Menyanyikan lagu-lagu manis
Of melodies pure and true,
Melodi murni dan benar
Saying, ('This is my message to you-ou-ou')
Bernyanyi, "lagu ini adalah pesan untukmu-ou-ou"
(Di lirik ini Bob Marley mengajak untuk menyambut hari dengan senyuman. Dan disini pendapat pertama tentang asal usul judul lagu kayanya terbukti soalnya ada lirik yang mengungkapkan tentang tiga ekor burung di rumah Bob Marley)
Singing 'Don't worry about a thing, worry about a thing, oh!
Bernyanyi 'jangan khawatir tentang hal itu, khawatir tentang hal itu, oh!
Every little thing is gonna be all right. Don't worry!'
Setiap hal kecil akan baik-baik saja. Jangan khawatir!
Singing 'Don't worry about a thing' - I won't worry!
Bernyanyi 'jangan khawatir tentang hal itu - aku tidak akan khawatir!
''Cause every little thing is gonna be all right.'
Karena setiap hal kecil akan baik-baik saja
Singing 'Don't worry about a thing' - I won't worry!
Bernyanyi 'jangan khawatir tentang hal itu - aku tidak akan khawatir!
''Cause every little thing is gonna be all right.'
Karena setiap hal kecil akan baik-baik saja
Singing 'Don't worry about a thing'
Bernyanyi 'jangan khawatir tentang hal itu
''Cause every little thing is gonna be all right.'
Karena setiap hal kecil akan baik-baik saja
Singing 'Don't worry about a thing' - Oh no!
Bernyanyi 'jangan khawatir tentang hal itu - oh tidak!
''Cause every little thing is gonna be all right.'
Karena setiap hal kecil akan baik-baik saja
Bio Damian Marley
Damian Marley adalah putra bungsu dari legenda reggae Bob Marley.
Damian's nickname adalah Junior Gong yang berasal dari nama panggilan
ayahnya dari Tuff Gong.
Seorang seniman berbakat di kanan sendiri, Damian telah melakukan sejak usia 13. Khusus musiknya adalah "bersulang", gaya Jamaika "rap" yang beberapa orang menganggap modern pendahulu hip-hop. Damian memiliki banyak catatan, termasuk reggae ditempatkan tertinggi album di Amerika Serikat tangga album billboard dengan Welcome To Jamrock,
Seorang seniman berbakat di kanan sendiri, Damian telah melakukan sejak usia 13. Khusus musiknya adalah "bersulang", gaya Jamaika "rap" yang beberapa orang menganggap modern pendahulu hip-hop. Damian memiliki banyak catatan, termasuk reggae ditempatkan tertinggi album di Amerika Serikat tangga album billboard dengan Welcome To Jamrock,
dan tempat tertinggi lagu reggae di UK Top 40 dengan PlayWelcome untuk Jamrock.
Seperti
ayahnya sebelum dia dan seluruh keluarga Marley, dia adalah seorang
Rastafarian dan musiknya mencerminkan kedua keyakinan dan
prinsip-prinsip Rastafari satu cinta, satu planet dan kebebasan untuk
semua.
Langganan:
Postingan (Atom)