BAB 2 LANDASAN TEORI 2.1
Ketenagakerjaan Untuk dapat mengerti mengenai apa itu ketenaga kerjaan serta hal apa saja
yang terkait didalam nya ada baiknya jika mengetahui definisi atau arti dari istilahistilah yang sering dipergunakan dalam ketenagakerjaan. Ketenagakerjaan adalah segala hal yang berhubungan dengan tenaga kerja pada waktu sebelum, selama, dan sesudah masa kerja. Tenaga kerja adalah setiap orang yang mampu melakukan pekerjaan guna menghasilkan barang dan/atau jasa baik untuk memenuhi kebutuhan sendiri maupun untuk masyarakat. 2.1.1
Teori Ketenagakerjaan Ada beberapa teori ketenagakerjaan yang dikemukakan oleh beberapa ahli.
2.1.1.1 Teori Klasik Adam Smith Menurut Mulyadi (2003), teori klasik menganggap bahwa manusialah sebagai faktor produksi utama yang menentukan kemakmuran bangsa-bangsa. Alasannya, alam (tanah) tidak ada artinya kalau tidak ada sumber daya manusia yang pandai mengolahnya sehingga bermanfaat bagi kehidupan. Dalam hal ini teori klasik Adam Smith (1729-1790) juga melihat bahwa alokasi sumber daya manusia yang efektif adalah pemula pertumbuhan ekonomi. Setelah ekonomi tumbuh, akumulasi modal (fisik) baru mulai dibutuhkan untuk menjaga agar ekonomi tumbuh. Dengan kata lain, alokasi sumber daya manusia yang efektif merupakan syarat perlu (necessary condition) bagi pertumbuhan ekonomi.
5
http://digilib.mercubuana.ac.id/
2.1.1.2 Teori Malthus Sesudah Adam Smith, Thomas Robert Malthus (1766-1834) dianggap sebagai pemikir klasik yang sangat berjasa dalam pengembangan pemikiran-pemikiran ekonomi. Buku Malthus yang dikenal paling luas adalah Principles of Population. Menurut Mulyadi (2003), dari buku tersebut akan dilihat bahwa meskipun Malthus termasuk salah seorang pengikut Adam Smith, tidak semua pemikirannya sejalan dengan pemikiran Smith. Disatu pihak Smith optimis bahwa kesejahteraan umat manusia akan selalu meningkat sebagai dampak positif dari pembagian kerja dan spesialisasi. Sebaliknya, Malthus justru pesimis tentang masa depan umat manusia. Kenyataan bahwa tanah sebagai salah satu faktor produksi utama tetap jumlahnya. Dalam banyak hal justru luas tanah untuk pertanian berkurang karena sebagian digunakan untuk membangun perumahan, pabrik-pabrik dan bangunan lain serta pembuatan jalan. Menurut Malthus manusia berkembang jauh labih cepat dibandingkan dengan produksi hasil-hasil pertanian untuk memenuhi kebutuhan umat manusia. Malthus tidak percaya bahwa teknologi mampu berkembang lebih cepat dari jumlah penduduk sehingga perlu dilakukan pembatasan dalam jumlah penduduk. Pembatasan ini disebut Malthus sebagai pembatasan moral. 2.1.1.3 Teori Keynes Kaum klasik percaya bahwa perekonomian yang dilandaskan pada kekuatan mekanisme pasar akan selalu menuju keseimbangan (equilibrium). Dalam posisi keseimbangan semua sumber daya, termasuk tenaga kerja, akan digunakan secara penuh (full-employed). Dengan demikian di bawah sistem yang didasarkan pada mekanisme pasar tidak ada pengangguran. Kalau tidak ada yang bekerja, daripada tidak memperoleh pendapatan sama sekali, maka mereka bersedia bekerja dengan tingkat upah yang lebih rendah. Kesediaan untuk bekerja dengan tingkat upah lebih rendah ini akan menarik perusahaan untuk memperkerjakan mereka lebih banyak. Kritikan Jhon Maynard Keynes (1883-1946) terhadap sistem klasik salah satunya adalah tentang pendapatnya yang mengatakan bahwa tidak ada mekanisme 6
http://digilib.mercubuana.ac.id/
penyesuaian (adjustment) otomatis yang menjamin bahwa perekonomian akan mencapai keseimbangan pada tingkat penggunaan kerja penuh. Dalam kenyataan pasar tenaga kerja tidak bekerja sesuai dengan pandangan klasik di atas. Di manapun para pekerja mempunyai semacam serikat kerja (labor union) yang akan berusaha memperjuangkan kepentingan pekerja dari penurunan tingkat upah. Kalaupun tingkat upah diturunkan maka boleh jadi tingkat pendapatan masyarakat akan turun. Turunnya pendapatan sebagian anggota masyarakat akan menyebabkan turunnya daya beli masyarakat, yang pada gilirannya akan menyebabkan konsumsi secara keseluruhan akan berkurang. Berkurangnya daya beli masyarakat akan mendorong turunnya harga-harga. Kalau harga-harga turun, maka kurva nilai produktivitas marjinal tenaga kerja (marginal value of productivity of labor), yang dijadikan sebagai patokan oleh pengusaha dalam memperkerjakan tenaga kerja akan turun. Jika penurunan dalam harga-harga tidak begitu besar, maka kurva nilai produktivitasnya hanya turun sedikit. Meskipun demikian jumlah tenaga kerja yang bertambah tetap saja lebih kecil dari jumlah tenaga kerja yang ditawarkan. Lebih parah lagi kalau harga-harga turun drastis maka kurva nilai produktivitas marginal dari tenaga kerja juga turun drastis dimana jumlah tenaga kerja yang tertampung menjadi semakin kecil dan pengangguran menjadi semakin bertambah luas (Mulyadi, 2003)
2.1.1.4 Teori Harrod-Domar Teori Harrod-Domar dikenal sebagai teori pertumbuhan. Menurut teori ini dalam Mulyadi (2003), investasi tidak hanya menciptakan permintaan, tetapi juga memperbesar kapasitas produksi. Peran modal fisik di dalam model pertumbuhan sangat penting, akan tetapi kapasitas produksi hanya dapat meningkat bila sumber daya lain (modal fisik) membesar. Di samping itu dalam model pertumbuhan, jumlah penduduk yang besar tidak mengurangi pendapatan per kapita asalkan modal fisiknya meningkat. Model yang sama juga dikemukakan oleh model Solow di mana dalam model ini dipakai suatu fungsi produksi Cobb-Douglas. Angkatan kerja diasumsikan 7
http://digilib.mercubuana.ac.id/
tumbuh secara geometris dan full employment selalu tercapai. Tetapi, dalam model ini pekerja sudah diperluaskan secara jelas sebagai salah satu faktor produksi, dan bukan sekedar pembagi (untuk memperoleh output pekerja). Dalam model ini juga dilihat substitusi antara modal fisik dan pekerja. 2.1.1.5 Teori Ester Boserup Boserup berpendapat bahwa pertumbuhan penduduk justru menyebabkan dipakainya sistem pertanian yang lebih intensif disuatu masyarakat dan meningkatnya output di sektor pertanian. Boserup juga berpendapat bahwa pertambahan penduduk berakibat dipilihnya sistem teknologi pertanian pada tingkatan yang lebih tinggi. Dengan kata lain, inovasi (teknologi) ada lebih dahulu. Inovasi itu hanya menguntungkan bila jumlah penduduk lebih banyak. Inovasi menurut Boserup dapat meningkatkan output pekerja, tetapi hanya dilakukan bila jumlah pekerjanya banyak. Pertumbuhan penduduk justru mendorong diterapkannya suatu inovasi (teknologi) baru (Mulyadi, 2003). Dari keseluruhan teori tenaga kerja dan pertumbuhan yang mendominasi sebagian besar teori-teori pembangunan pada tahun 1950-an dan 1960-an dan pada awal tahun 1980-an dikenal bentuk aliran ekonomi sisi penawaran atau supply-side economics, yang memfokuskan pada kebijakan-kebijakan untuk meningkatkan output nasional melalui akumulasi modal. Karena model ini menghubungkan tingkat penyediaan kesempatan kerja dengan tingkat pertumbuhan GNP, artinya dengan memaksimumkan penyerapan tenaga kerja, untuk memaksimumkan pertumbuhan GNP dan kesempatan kerja dengan cara memaksimumkan tingkat tabungan dan investasi. 2.1.1.6 Teori Pasar Tenaga Kerja Solmon (1980) dalam Sinaga (2005) menjelaskan, bahwa pasar tenaga kerja adalah tempat aktivitas dari bertemunya pelaku-pelaku, pencari kerja dan pemberi lowongan kerja. Proses bertemunya pencari kerja dan pemberi lowongan kerja dapat 8
http://digilib.mercubuana.ac.id/
terjadi sebentar saja namun dapat pula memakan waktu yang lama, masalah yang dihadapi oleh kedua belah pihak di pasar yaitu: setiap perusahaan yang menawarkan lowongan kerja maka menginginkan kualitas serta keahlian pekerja berbeda-beda sehingga menyebabkan terjadinya perbedaan tingkat upah. Sedangkan pencari kerja memiliki keahlian juga berbeda-beda sehingga pekerja menginginkan tingkat upah yang juga berbeda-beda pula. Di mana letak masalah dari kedua belah pihak adalah keterbatasan informasi. 2.1.1.7 Teori Penawaran dan Permintaan Tenaga Kerja Suparmoko dan Maria (2000) dalam Sinaga (2005) menjelaskan bahwa pada prinsipnya teori penawaran tenaga kerja dan teori permintaan tenaga kerja merupakan fungsi dari tingkat upah, di mana pendapat dari kaum klasik menyatakan, jika semakin tinggi tingkat upah yang diminta oleh kaum pekerja maka akan semakin sedikit jumlah penawaran tenaga kerja (lowongan kerja) yang dapat diberikan dan akan berlaku sebaliknya. Dalam memahami mekanisme pasar tenaga kerja harus dilihat bagaimana individu pekerja terdapat perbedaan, maka untuk menentukan kuva penawaran tenaga kerja pada suatu daerah adalah dengan menjumlahkan kurva-kurva penawaran dari setiap individu, oleh sebab itu kurva dari penawaran tenaga kerja berbentuk melengkung kebelakang (backward bending curve) 2.2
ANDROID Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang
mencakup sistem operasi, middleware dan aplikasi. Android merupakan platform mobile yang lengkap, terbuka dan bebas.
2.2.1
Arsitektur Android Secara garis besar arsitektur android dibagi menjadi beberapa bagian antara
lain : a. Applications dan Widgets 9
http://digilib.mercubuana.ac.id/
Applications dan widgets adalah layer dimana user berhubungan dengan aplikasi saja, di mana biasanya user mendownload aplikasi kemudian melakukan instalasi dan menjalankan aplikasi tersebut. Semua aplikasi ditulis dengan menggunakan bahasa pemrograman java. b. Applications Frameworks Applications frameworks adalah layer di mana para pembuat aplikasi melakukan pengembangan atau pembuatan aplikasi yang akan dijalankan di sistem operasi android karena pembuat aplikasi memilki akses penuh menuju API framework seperti yan gdilakukan olek aplikasi yang kategori inti. Arsitwktur aplikasi dirancang supaya pembuat aplikasi dengan mudah dapat menggunakan kembali komponen yang sudah digunakan (reuse). Komponen-komponen yang termasuk di dalam applications frameworks adalah sebagai berikut:
Views
Content Provider
Resource Manager
Notifications Manager
Actifity Manager
c. Libraries Libraries adalah layer di mana fitur-fitur android berbeda, biasanya para pembuat aplikasi mengakses libraries untuk menjalankan aplikasinya. Layer ini meliputi library C/C++ inti seperti Libc, SSL, Library media, libraries media, libraries untuk menajemen tampilan, libraries graphics, libraries SQLite, libraries liveWebcore, libraries 3D dan libraries SSL dan Webkit. 10
http://digilib.mercubuana.ac.id/
d. Android Run Time Android run time dibagi menjadi dua bagian yaitu :
Core Libraries : aplikasi android dibangun dalam bahasa java, sehingga dibutuhkan libraries untuk menterjemahkan bahasa java dan core libraries ini lah yan gbertugas untuk menterjemahkannya.
Dalvik Virtual Machine : virtual machine berbasis register yang diooptinalkan untuk menjalankan fungsi-fungsi secara efesien, dimana merupakan pengembangan yang mampu mebuat linex kernel untuk melakukan threading dan manajemen tingkat rendah.
e. Linux Kernel Linux kernel adalah layer di mana inti dari sistem operasi android yang berisi file-file sitem yang mengatur processing, memory, resource, drivers dan sistem operasi android lainnya. 2.2.2
Versi Android Safaat (2012 : 10) memaparkan penjelasan berbagai macam versi Android
seperti di bawah ini : 1. Android versi 1.1 Pada 9 Maret 2009, Google merilis Android versi 1.1. Android versi ini dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm, voice search (pencarian suara) pengiriman pesan dengan Gmail, dan pemberitahuan email. 2. Android versi 1.5 (Cupcake) Pada pertengahan Mei 2009, Google kembali merilis telepon seluler dengan menggunakan Android dan SDK (Software Development Kit) dengan versi 1.5 (Cupcake). Terdapat beberapa pembaharuan untuk penambahan beberapa fitur dalam seluler versi ini yakni kemampuan merekam dan menonton video dengan modus 11
http://digilib.mercubuana.ac.id/
kamera, mengunggah video ke Youtube dan gambar ke Picasa langsung dari telepon, dukungan Bluetooth A2DP, kemampuan terhubung secara otomatis ke headset Bluetooth, animasi layar, dan keyboard pada layar yang dapat disesuaikan dengan sistem. 3. Android versi 1.6 (Donut) Donut (versi 1.6) dirilis pada September dengan menampilkan proses pencarian yang lebih baik dibanding sebelumnya, penggunaan indikator baterai dan kontrol applet VPN. Fitur lainnya adalah galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus; kamera, camcorder dan galeri yang dintegrasikan; CDMA / EVDO, 802.1x, VPN, Gestures, dan Text-to-speech engine; kemampuan dial kontak; teknologi text to change speech (tidak tersedia pada semua ponsel); pengadaan resolusi VWGA. 4. Android versi 2.0/2.1 (Eclair) Pada 3 Desember 2009 kembali diluncurkan ponsel Android dengan versi 2.0/2.1 (Eclair), perubahan yang dilakukan adalah pengoptimalan hardware, peningkatan Google Maps 3.1.2, perubahan UI dengan browser baru dan dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2 MP, digital Zoom, dan Bluetooth 2.1. Agar dapat bergerak cepat dalam persaingan perangkat generasi yang berikutnya, Google melakukan investasi dengan mengadakan kompetisi aplikasi mobile terbaik (killer apps – aplikasi unggulan). Kompetisi ini berhadiah $25,000 bagi setiap pengembang aplikasi terpilih. Kompetisi diadakan selama dua tahap yang tiap tahapnya dipilih 50 aplikasi terbaik. Dengan semakin berkembangnya dan bertambahnya jumlah handset Android, semakin banyak pihak ketiga yang berminat untuk menyalurkan aplikasi mereka dalam sistem operasi Android. Aplikasi terkenal yang diubah ke dalam sistem operasi Android adalah Shazam, Backgrounds, dan WeatherBug. Sistem operasi Android dalam situs Internet juga dianggap penting untuk menciptakan aplikasi Android asli, contohnya oleh MySpace dan Facebook. 12
http://digilib.mercubuana.ac.id/
5. Android versi 2.2 (Froyo: Frozen Yoghurt) Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan. Perubahanperubahan umum terhadap versi – versi sebelumnya antara lain dukungan Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai Google Chrome yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel, dan kemampuan auto update dalam aplikasi Android Market. 6. Android versi 2.3 (Gingerbread) Pada 6 Desember 2010, Android versi 2.3 (Gingerbread) diluncurkan. Perubahanperubahan umum yang didapat dari Android versi ini antara lain peningkatan kemampuan permainan (gaming), peningkatan fungsi copy paste, layar antar muka (User Interface) yang sudah didesain ulang, dukungan format video VP8 dan WebM, efek audio baru (reverb, equalization, headphone virtualization, dan bass boost), dukungan kemampuan Near Field Communication (NFC), dan dukungan jumlah kamera yang lebih dari satu. 7. Android versi 3.0/3.1 (Honeycomb) Android Honeycomb dirancang khusus untuk tablet. Android versi ini mendukung ukuran layar yang lebih besar. User Interface pada Honeycomb juga berbeda karena sudah didesain untuk tablet. Honeycomb juga mendukung multi processor dan juga akselerasi perangkat keras (hardware) untuk grafis. 8. Android versi 4.0 (ICS: Ice Cream Sandwich) Pada tanggal 19 Oktober 2011, diperkenalkannya Android versi 4.0 yang membawa fitur Honeycomb untuk smartphone, menambahkan fitur baru termasuk membuka kunci dengan pengenalan wajah, jaringan data pemantauan penggunaan dan kontrol, kontak jaringan sosial terpadu, perangkat tambahan fotografi, pencarian email secara offline, dan berbagi informasi dengan menggunakan NFC. 9. Android versi 4.1 (Jelly Bean) Android Jelly Bean yaang diluncurkan pada acara Google I/O membawa sejumlah keunggulan dan fitur baru. Adapun penambahan fitur baru diantaranya yaitu 13
http://digilib.mercubuana.ac.id/
meningkatkan input keyboard, desain baru fitur pencarian, UI yang baru dan pencarian melalui Voice Search yang lebih cepat. Google Now yang juga menjadi bagian yang diperbarui pun tak ketinggalan. Google Now memberikan informasi yang tepat pada waktu yang tepat pula. Salah satu kemampuannya adalah dapat mengetahui informasi cuaca, lalu-lintas, ataupun hasil pertandingan olahraga. 10. Android versi 4.4 (Kitkat) Dirilis pertama pada tanggal 31 bulan Oktober tahun 2013 di namakan dengan Android kitkat . Android Kitkat memiliki tampilan 100% lebih dinamis dan berbeda total dengan android jelly bean, Android Kitkat di optimasi pada sisi konsumsi baterai dan kinerja os lebih cepat ketika di jalankan pada perangkat memiliki spesifikasi lebih rendah, seperti kita tahu jika android jelly bean memiliki kelebihan pada sisi konsumsi baterai yang lebih tinggi dan ketika di jalankan di perangkat yang memiliki versi rendah os ini tidak maksimal. 10. Android versi 5.0 (Lollipop) Dirilis pertama pada tahun 2014 dikenal dengan nama “Android Lollipop”. Android lollipop memiliki peningkatan sistem keamanan dan tampilan lebih dinamis, OS versi terbaru dari android ini sepertinya bisa di gunakan berbagai perangkat elektronik seperti televisi dan lain-lain. Android Lollipop memiliki perubahan besar pada sisi tampilan desain menu,tampilan desain menu dan warna pada os android versi v5.0 ini jauh lebih hidup dan tajam di banding android kitkat, karena os ini sudah di lakukan perubahan pada material desain responsive UI desain sehingga semua menu terkesan sangat sensitif dan alami.
2.3
JAVA Definisi Java (Sun Microsystem) adalah nama sekumpulan teknologi yang
membuat perangkat lunak dan menjalankan perangkat lunak pada komputer standalone ataupun pada lingkungan jaringan. 14
http://digilib.mercubuana.ac.id/
Java adalah bahasa pemrograman berorientasi objek yang dikembangkan dengan model yang mirip bahasa C++ namun dirancang agar lebih mudah digunakan. Java merupakan bahasa pemrograman yang bersifat umum/non spesifik (general purpose) dan secara khusus didesain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda sesuai dengan slogannya “Tulis sekali, jalankan di mana pun”. Java memiliki kelengkapan library/perpustakaan (kumpulan program-program yang disertakan dalam pemorgraman java) yang sangat memudahkan dalam penggunaannya oleh para programer untuk membangun aplikasi. Eclipse Eclipse merupakan sebuah IDE(Integrated Development Environtment) untuk megembangkan perangkat lunak dan dapat dijalankan di semua platform (platform independent). Eclipse dikembangkan dengan bahasa pemograman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemograman lainnya seperti C/C++, cobol, python, perl, php dan sebagainya. Selain sebagai IDE untuk pengembangan aplikasi, Eclpise juga diginakan utntuk aktivitas dalam pengembangan perangkat lunak seperti dokumentasi, test perangkat lunak, pengembangan web dan lain sebagainya. Eclipse pada saat ini merupakan salah satu IDE faforit dikerenakan gratis dan open source yang berarti setiap orang dapat melihat kode pemograman perangkat lunak ini. Selain itu kelebihan dari Eclipse yang membuatnya popular adalah kemampuan kemampuannya untuk dapat dikembangkan pleh pengguna denga komponen yang dinamakan plug-in.
ADT (Android Development TOOLS) ADT adalah plug-in yang didesain untuk IDE Eclipse yang digunakan sebagai oenghubung antara Eclipse dengan Android SDK, sehingga pengembang dapat dengan mudah dalam membuat aplikasi project android, membuat GUI (Graphical 15
http://digilib.mercubuana.ac.id/
User Interface) aplikasi dan Menambahkan komponen-komponen yang lainnya, serta da[at melakukan running aplikasi menggunakan Android SDK melalui Eclipse. Dengan ADT juga dapat melakukan pembuatan pakage android (.apk) yang digunakan untuk distribusi aplikasi android yang dibuat. Android SDK (Software Development KIT) Android SDK merupakan tools API (Application Programming Interface) yang diperlukan untuk memangung dan mengembangkan aplikasi berbasis android yang didalamnya termasuk debugger, libraries, emulator, dokumentasi, contoh kode dan tutorial.
2.4
Algoritma Kata algoritma berasal dari kata “algoritmi”, pertama kali dicetuskan oleh Al-
Khawarizmi, yang merupakan ilmuwan asal Persia. Pada awalnya algortima sendiri pertama kali digunakan untuk menyelesaikan soal aritmatika, tetapi dari zaman ke zaman algoritma digunakan untuk memecahkan masalah. Algoritma tentunya memiliki hubungan dengan ilmu matematika, tentunya banyak pendapat dari para ahli mengenai algoritma. 1. Goodman Hedet Niemi mengatakan bahwa “algoritma adalah urut-urutan dari operasi-operasi yang terdefinisi dengan baik, yang masing-masing membutuhkan memori dan waktu yang terbatas untuk menyelesaikan suatu masalah” 2. Abu Ja’far Muhammad Ibnu Musa Al-Khawarizmi mengungkapkan “algoritma adalah suatu metode khusus untuk menyelesaikan suatu persoalan” 3. Menurut Seymur Lipschutz, P.hd “algoritma merupakan suatu langkah demi langkah yang terhingga dari instruksi-intruksi yang terdefinisikan dengan jelas yang dipakai untuk permasalahan tertentu.”
16
http://digilib.mercubuana.ac.id/
4. Menurut Minsky, algoritma adalah seperangkat aturan yang memberitahukan kepada kita dari waktu ke waktu, tepatnya bagaimana untuk bertindak. 5. Stone dan Knuth mengatakan bahwa algoritma adalah suatu perangkat yang tepat mendefinisikan urutan operasi hingga sedemikian rupa sehingga setiap aturan yang efektif, jelas hingga sedemikian rupa sehingga urutan berakhir dalam waktu yang terbatas. Dari masing-masing pendapat yang dikemukan oleh para ahli, dapat kita simpulkan secara umum bahwa algoritma adalah suatu metode sistematis yang bersifat memiliki urutan-urutan yang digunakan untuk memecahkan masalah-masalah dan pengambilan keputusan.
2.5
Algoritma Pencarian Pencarian(searhing) merupakan proses yang fundamental dalam pengolahan
data. Proses pensarian adalah menemukan nilai(data) tertentu didalam sekumpulan data yang bertipe sama (baik bertipe dasar maupun bertipe bentukan). Sebuah algoritma pencarian dijelaskan secara luas adalah sebuah algoritma yang menerima masukan berupa sebuah masalah dan menghasilkan sebuah solusi untuk masalah tersebut, yang biasanya didapat dari evaluasi beberapa kemungkinan solusi. Algoritma pencarian (searching algorithm) adalah algoritma yang menerima sebuah argumen kunci dan dengan langkah-langkah tertentu akan mencari rekaman dengan kunci tersebut. Setelah proses pencarian dilaksanakan, akan diperoleh salah satu dari dua kemungkinan, yaitu data yang dicari ditemukan (successful) atau tidak ditemukan (unsuccessful). 2.5.1
Macam-macam Algoritma Pencarian (Searching)
2.5.1.1 Pencarian Beruntun (Sequential Search)
17
http://digilib.mercubuana.ac.id/
Pencarian Sekuensial (sequential searching) atau pencarian berurutan sering disebut pencarian linear merupakan metode pencarian yang paling sederhana. Pencarian beruntun adalah proses membandingkan setiap elemen larik satu per satu secara beruntun, mulai dari elemen pertama sampai elemen yang dicari ditemukan atau seluruh elemen sudah diperiksa. Adapun konsep dari algoritma pencarian ini adalah: 1. Membandingkan setiap elemen larik satu per satu secara urut (beruntun), mulai dari elemen pertama sampai dengan elemen yang terakhir sampai data ditemukan atau tidak ditemukan. 2. Proses pencarian akan dihentikan jika data yang dicari sudah ditemukan. 3. Merupakan metode yang paling sederhana 4. Kelemahan pada kasus ini adalah, untuk N elemen data harus dilakukan pencarian sebanyak N kali pula. 2.5.1.2 Pencarian Beruntun dengan Sentinel (Sentinel Sequential Search) Jika pencarian bertujuan untuk menambahkan elemen baru setelah elemen terakhir larik, maka terdapat sebuah varian dari metode pencarian beruntun yang mangkus. Nilai x yang akan dicari sengaja ditambahkan terlebih dahulu. Data yang ditambahkan setelah elemen terakhir larik ini disebut sentinel. 2.5.1.3 Pencarian Biner (Binary Search) Metode Pencarian Biner ( Binary Search) hanya bisa diterapkan jika data array sudah terurut. Pengurutan Array bisa menggunakan jenis sorting descending atau asscending. Kelebihan dari Searching dengan metode Binary Sort adalah Untuk pencarian data yang jumlahnya banyak, waktu pencarian relatif cepat. Selain itu beban komputasi juga lebih kecil karena pencarian dilakukan dari depan, belakang,
18
http://digilib.mercubuana.ac.id/
dan tengah. Namun ada pula kekurangannya, yaitu data harus disorting dahulu dan Algoritma lebih rumit, tidak baik untuk data berangkai. Adapun konsep dari algoritma pencarian ini adalah: 1. Membaca Array data 2. Apabila Array belum terurut maka array diurutkan terlebih dahulu. 3. Menentukan data yang akan dicari 4. Menentukan elemen tengah dari array 5. Jika nilai elemen tengah sama dengan data yang dicari, maka pencarian berhenti. 6. Jika elemen tengah tidak sama dengan data yang dicari maka : a. Jika nilai elemen tengah > data yang dicari maka pencarian dilakukan pada setengah array pertama. b. Jika nilai elemen tengah lebih kecil dari pada data yang dicari maka pencarian dilakukan pada setengah array berikutnya.
2.6
Tahapan Pengembangan RPL Menurut Sommerville (2011, 29) Waterfall model mengambil kegiatan proses
dasar spesifikasi, pengembangan, validasi, dan evolusi serta mewakili kegiatan tersebut sebagai fase proses terpisah seperti spesifikasi persyaratan, perancangan perangkat lunak, implementasi, pengujian dan sebagainya. Berikut merupakan tahapan dalam waterfall model:
19
http://digilib.mercubuana.ac.id/
a.
Requirements analysis and definition Sistem layanan,kendala,dan tujuan ditetapkan melalui konsultasi dengan
pengguna sistem, kebutuhan tersebut kemudian ditetapkan secara rinci dan berfungsi sebagai spesifikasi sistem. b.
System and software design Prosesdesain sistem mengalokasikan persyaratan baik untuk sistem perangkat
keras atau perangkat lunak dengan mendirikan sebuah arsitektur sistem secara keseluruhan.
Desain
perangkat
lunak
melibatkan
mengidentifikasidan
menggambarkan abstraksi sistem perangkat lunak yang mendasar. c.
Implementation and unit testing Selama tahap ini, desainperangkat lunak disadari sebagai serangkaian program
atau unit program. Unit testing memverifikasi bahwa setiap unit sesuai spesifikasi. d.
Integration and system testing Unit program individu atau program diintegrasikan dan diuji sebagai sistem
yang lengkap untuk memastikan bahwa persyaratan perangkat lunak dapat dipenuhi. e.
Operation and maintenance Fase ini merupakan fase terpanjang. Sistem ini dipasang dan dimasukan ke
dalam penggunaan praktis. Pemeliharaan melibatkan mengoreksi kesalahan yang tidak ditemukan dalam tahap awal siklus, meningkatkan implementasi unit sistem dan peningkatan pelayanan sistem.
20
http://digilib.mercubuana.ac.id/
Gambar 2.1 Model Waterfall
2.6.1
Fakta Metodologi Waterfall Setelah memahami langkah-langkah serta proses yang terdapat pada
metodologi waterfall, maka didapat beberapa fakta sebegai berikut : 1. Memahami kebutuhan system secara mendalam. 2. Meminimalisasi terjadinya perubahan kebutuhan selama proyek berjalan. 3. Memerlukan waktu yang relatif lama untuk menyelesaikan proyek. 4. Tidak adaptif terhadap perubahan (kembali ke awal)
21
http://digilib.mercubuana.ac.id/