• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 LANDASAN TEORI"

Copied!
15
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

Landasan teori dan dasar pengetahuan penelitian ini adalah metoda-metoda terkait dengan: bahasa pemrograman, sejarah PHP, algoritma sorting, kompleks algoritma, algoritma merge sort, serta algoritma selection sort.

Pelaksana dari penelitian ini menggunakan referensi yang berhubungan dengan objek penelitian. Refrensi tersebut diambil dari beberapa penelitian sebelumnya yang berhubungan dengan penelitian ini, antara lain:

1. Analisis perbandingan algortima bubble sort, merge sort, dan quick sort dalam proses pengurutan kombinasi angka dan huruf, Penulis Anisya sonita 2. Analisis algoritma insertion sort, merge sort, dan implementasinya dalam

Bahasa pemograman C++, Penulis Arief Hendra saptadi

Kedua referensi tersebut memiliki kelebihan dan kekuranan yang tersaji pada Tabel 1 berikut:

Tabel 1 Perbandingan kelebihan dan kekurangan penelitian

Judul penelitan Hasil penelitian Kelebihan Kekurangan 1. A

Analisis perbandingan algortima

bubble sort, merge sort, dan quick sort dalam proses

pengurutan kombinasi angka dan huruf

Dari hasil analisa perbandingan Algoritma Bubble

Sort, Quick Sort,

dan Merge Sort, dapat disimpulkan bahwa Algoritma

Quick Sort

memiliki waktu yang lebih cepat dan Bubble Sort membutuhkan waktu komputasi yang paling lama

Abstrak jelas sehingga dengan membaca abstraknya saja pembaca dapat mengetahui hasil dari penelitian Perhitungan selisih waktu dalam ujian tidak di jelaskan secara detil

(2)

Tabel 2 Lanjutan perbandingan kelebihan dan kekurangan penelitian

Judul penelitan Hasil penelitian Kelebihan Kekurangan 1. A

Analisis algoritma insertion sort,

merge sort, dan implementasinya

dalam Bahasa pemograman C++

Dari hasil pengujian

diketahui bahwa algoritma merge

sort lebih cepat

dibandingankan insert sort untuk data >1000 Memaparkan secara jelas dan lengkap latar belakang dari permasalahan yang ada dan solusi yang di tawarkan dalam penelitian

Abstrak terlalu singkat dan tidak detil

2.1 Bahasa Pemrograman

Bahasa pemrograman adalah notasi yang digunakan untuk menulis program (komputer). Bahasa ini dibagi menjadi tiga tingkatan yaitu bahasa mesin, bahasa tingkat rendah dan bahasa tingkat tinggi. PHP adalah sebuah kepanjangan dari Hypertext Preprocessor, PHP atau Hypertext Preprocessor ialah sebuah bahasa pemrograman yang berupa kode atau script yang bisa ditambahkan ke dalam Bahasa Pemrograman HTML. PHP itu sendiri sering kali digunakan untuk hal merancang, membuat dan juga memprogram sebuah website. PHP juga sangat sering digunakan untuk membuat sebuah ataupun beberapa CMS. CMS ialah sebuah software atau perangkat lunak yang mempunyai kegunaan untuk memanipulasi semua atau beberapa isi dari sebuah halaman website (NuSphere 2017).

2.2 Sejarah PHP

Pembuat dan pengembang bahasa pemrograman PHP adalah seorang programmer laki-laki yang menempat dan lahir di Denmark. Programmer ini bernama Rasmus Lerdorf yang lahir pada tahun 1968 tepatnya pada 22 November 1968. Bahasa pemrograman PHP dibuat dan dikembangkan oleh Rasmus Lerdof pada awal tahun 1995 (NuSphere 2017).

(3)

PHP digunakan dan dijalankan di sebuah halaman website untuk mengolah isi data dari website tersebut yang akan dilihat oleh para pengunjung dari website tersebut. PHP dengan HTML diibaratkan sebagai dua komponen yang saling bekerja sama dan menyatu yang tidak dapat dipisahkan. Hal tersebut karena kedua bahasa pemrograman ini yaitu PHP dan HTML saling melengkapi semua data dan isi dari suatu website. Script yang terdiri dari komponen PHP menyatu dengan script HTML. PHP mempunyai kegunaan juga untuk membuat sebuah halaman utama atau homepage dari sebuah website menjadi lebih bagus dan bersifat dinamis serta elegan. Bahasa pemrograman PHP dapat memudahkan Web Developer yang menggunakan MySQL untuk melihat informasi detail mengenai websitenya dan data-data pengunjung serta data-data lainnya secara otomatis akan disimpan di dalam database. PHP sendiri bisa juga digunakan untuk membuat game di website (NuSphere 2017).

2.3 Algoritma

Menurut corrmen et al. 2001 menjelaskan bahwa algoritma adalah deretan instruksi yang jelas untuk memecakan masalah, yaitu untuk memperoleh keluaran yang diinginkan dari suatu masukan. Ada 3 definisi tentang algoritma yang dijelaskan saputra et al. 2010 diantaranya :

a) Teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat dengan jumlah kata terbatas tetapi tersusun secara logis dan sistematis

b) Suatu prosedur yang jelas untuk menyelesaikan suatu persoalan dengan menggunakan langkah-langkah tertentu dan terbatas jumlahnya

c) Susunan langkah yang pasti, yang bila diikuti maka akan mentransformasi data input menjadi output yang berupa informasi

Algoritma merupakan suatu prosedur untuk menyelesaikan suatu masalah yang tersusun secara logis dan sistematis serta akan memperoleh data masukan menjadi keluaran yang diinginkan berupa informasi.

(4)

2.4 Algoritma Sorting

Algoritma sorting adalah kumpulan langkah-langkah penyelesaian dalam suatu masalah dengan metode tertentu, sedangkan sorting didefinisikan sebagai pengurutan sejumlah data berdasarkan nilai kunci tertentu untuk mengurutkan nilai dari yang terkecil (ascending) atau sebaliknya (descending) (Khalid et al., 2013).

2.5 Algoritma Merge Sort

Menurut Arief (2013), merge sort adalah metode pengurutan yang menggunakan pola divide and conquer. Strateginya adalah dengan membagi sekelompok data yang akan diurutkan menjadi beberapa kelompok kecil terdiri dari maksimal dua nilai untuk dibandingkan dan digabungkan lagi secara keseluruhan.

Langkah-langkah kerja dalam merge sort:

2. Divide, yaitu memilah elemen – elemen dari rangkaian data menjadi dua bagian dan mengulangi pemilahan hingga satu elemen terdiri maksimal dua nilai

3. Conquer, dengan mengurutkan masing-masing elemen

4. Kombinasi, yaitu mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data berurutan.

Proses rekursi berhenti jika mencapai elemen dasar. Hal ini terjadi bilamana bagian yang akan diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakan bahwa bagian tersebut telah terurut sesuai rangkaian (Arief, 2013).

2.6 Algoritma Selection Sort

Selection sort adalah jenis perbandingan di tempat. Ini memiliki kompleksitas O (n2), membuatnya tidak efisien dalam daftar besar, dan umumnya berperforma lebih buruk daripada jenis penyisipan serupa. Jenis seleksi dicatat karena kesederhanaannya, dan juga memiliki keunggulan kinerja dibandingkan algoritma yang lebih rumit dalam situasi tertentu. Algoritma menemukan nilai minimum, menukarnya dengan nilai pada posisi pertama,

(5)

dan mengulang langkah-langkah ini untuk sisa daftar. Itu tidak lebih dari n swap, dan dengan demikian berguna di mana swapping sangat mahal (Khan Academy 2017).

Menurut Sultannullah (2011), metode selection sort merupakan perbaikan dari metode bubble sort dengan mengurangi jumlah perbandingan. Selection sort merupakan metode pengurutan dengan mencari nilai data terkecil dimulai dari data diposisi 0 hingga diposisi N-1. Jika terdapat N data dan data terkoleksi dari urutan 0 sampai dengan N-1 maka algoritma pengurutan dengan metode selection sort adalah sebagai berikut:

1. Cari data terkecil dalam interval j = 0 sampai dengan j = N-1

2. Jika pada posisi pos ditemukan data yang terkecil, tukarkan data diposisi pos dengan data di posisi i jika k.

3. Ulangi langkah 1 dan 2 dengan j = j+i sampai dengan j = N-1, dan seterusnya sampai j = N - 1.

2.7 Kompleksitas (T(n)) Algoritma

Kompleksitas suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk mendapatkan hasil yang diinginkan (Wisudawan dan Fahmy, 2007). Hal-hal yang mempengaruhi kompleksitas waktu:

1. Waktu yang dibutuhkan unutk menjalankan algoritma tersebut

2. Ruang memori yang dibutuhkan untuk menjalankan algoritma yang berkaitan dengan struktur data dari program

Kompleksitas mempengaruhi performa atau kinerja dari suatu algoritma. Kompleksitas dibagi menjadi 3 jenis yaitu, worst case, best case, dan average case. Masing-masing jenis kompleksitas ini menunjukkan kecepatan atau waktu yang dibutuhkan algoritma untuk mengeksekusi sejumlah kode (Gibson, 2012).

Menurut Tjaru (2010) kompleksitas algoritma dinyatakan secara asimptotik dengan notasi big-O. Jika kompleksitas waktu untuk menjalankan suatu algoritma dinyatakan dengan T(n), dan memenuhi:

(6)

T(n) ≤ C(f(n))

untuk n ≥ n0, maka kompleksitas dapat dinyatakan dengan T(n) = O(f(n)

Menurut Tjaru (2010) menyatakan bahwa terdapat dua jenis penggunaan notasi Big O, yaitu infinite asymptotics dan infinitesimal asymptotics. Perbedaan kedua jenis penggunaan notasi ini hanya pada aplikasi. Sebagai contoh, pada infinite asymptotics dengan persamaan:

T(n) = 2n2 -2n +2

Untuk n yang besar, pertumbuhan T(n) akan sebanding dengan n2 dan dengan mengabaikan suku yang tidak mendominasi, maka ditulis:

T(n) = O(n2)

Pada infinitesimal asymptotics, Big O digunakan untuk menjelaskan kesalahan dalam aproksimasi untuk sebuah fungsi matematika, sebagai contoh:

(𝑒)𝑋 = 1 +𝑥 1+

𝑥2

2 + 0 | (𝑥

3), 𝑥 → 0

Kesalahannya memiliki selisih:

(𝑒)𝑋− (1 +𝑥

1+ 𝑥2

2)

2.8 Notepad ++

(7)

Notepad++ adalah program aplikasi pengembang yang berguna untuk mengedit teks dan skrip kode pemrograman. Versi terbaru program ini adalah Notepad++ v5.9, yang dirilis pada tanggal 06 April 2012. Software Notepad++ dibuat dan dikembangkan oleh tim Notepad++ (Supono dan Putratama, 2016). Perangkat lunak komputer ini memiliki kelebihan pada peningkatan kemampuan sebuah program text editor, lebih dari sekedar program Notepad bawaan Windows. Notepad++ bisa mengenal tag dan kode dalam berbagai bahasa pemrograman. Fitur pencarian tingkat lanjut dan pengeditan teks yang tersedia juga cukup ampuh, sangat membantu tugas seorang programmer atau developer dalam menyelesaikan tulisan kode programnya.

Program Notepad++ banyak diaplikasikan dan digunakan oleh kalangan pengguna komputer di bidang pemrograman aplikasi desktop dan web. Notepad++ merupakan software gratis (open source). Notepad++ dapat dijalankan di sistem operasi Win2K, Windows XP, Vista, dan Windows 7 (Supono dan Putratama, 2016).

Info Software Pengembang Notepad++, sebagai berikut

 Jenis: Aplikasi Pengembang

 Fungsi dan kegunaan: Software pengedit teks dan kode program

 Target kalangan penggguna: Pemrogram aplikasi dan pengembang web  Pengembang: Notepad++ Team

 Versi terbaru: Notepad++ v5.9  Tanggal rilis: 06 April 2012

 Halaman info produk: http://www.notepad-plus-plus.org/  Download: Unduh Notepad++ v5.9 di sini

 Ukuran file sumber: 5,6 MB  Harga: Gratis

2.9 XAMPP

Pengertian XAMPP adalah perangkat lunak (free software) bebas, yang mendukung untuk banyak sistem operasi, yang merupakan kompilasi dari

(8)

beberapa program. Nama XAMPP merupakan singkatan dari X (empat sistem operasi apapun), Apache, MySQL, PHP dan Perl. Fungsi XAMPP sebagai server yang berdiri sendiri (localhost), yang terdiri beberapa program antara lain Apache HTTP Server, MySQL database, dan penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan Perl (Pattianakotta, 2015). Program ini tersedia dalam General Public License (GNU) dan bebas, yang merupakan web server yang mudah digunakan sehingga dapat menampilkan halaman web yang dinamis. XAMPP dapat diperoleh dengan mengunduh langsung dari website resmi (Pattianakotta, 2015).

Program yang terdapat dalam XAMPP, berupa server HTTP Apache atau server Web/WWW Apache. Server web yang dapat dijalankan di banyak sistem operasi seperti (Unix, BSD, Linux, Microsoft Windows dan Novell Netware serta platform lainnya) yang berguna untuk melayani dan memfungsikan situs web. Server HTTP merupakan protokol yang digunakan untuk melayani fasilitas web/www ini menggunakan HTTP (Pattianakotta, 2015).

phpMyAdmin adalah perangkat lunak bebas yang ditulis dalam bahasa pemrograman PHP yang digunakan untuk menangani administrasi MySQL melalui World Wide Web (jejaring jagat jembar). phpMyAdmin mendukung berbagai operasi MySQL, diantaranya (mengelola basis data, tabel-tabel, bidang (fields), relasi (relations), indeks, pengguna (users), perijinan (permissions), dan lain-lain. Pada dasarnya, mengelola basis data dengan MySQL harus dilakukan dengan cara mengetikkan baris-baris perintah yang sesuai (command line) untuk setiap maksud tertentu. Jika seseorang ingin membuat basis data (database), ketikkan baris perintah yang sesuai untuk membuat basis data (Suharyo, 2013).

phpMyAdmin merupakan bagian untuk mengelola basis data MySQL yang ada di komputer. phpMyAdmin, dapat membuat database, membuat tabel, mengisi data, dan lain-lain dengan mudah, tanpa harus menghafal baris perintahnya. Ketikkan alamat http://localhost/phpmyadmin pada browser, maka akan

(9)

muncul halaman phpMyAdmin, selanjutnya dapat membuat (create) basis data baru, dan mengelolanya (Suharyo, 2013).

2.10 MySQL

MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar enam juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL (Pattianakotta, 2015).

MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, di mana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius (Pattianakotta, 2015).

2.11 Diagram Alir (flowchart)

Diagram Alir (flowchart) adalah penggambaran secara grafik dari langkah-langkah dan urutan-urutan prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian. Diagram alir ini merupakan suatu urutan-urutan logika atau langkah-langkah dalam pembuatan program yang berguna untuk mempermudah dalam menganalisa kode program (Rosita, 2016).

(10)

Gambar 3 Simbol Flowchart (Sumber: www.mbaskool.com)

2.12 Unified Modelling Language (UML)

Menurut Rosita (2016), Unified Modelling Language (UML) adalah suatu alat untuk memvisualisasikan dan mendokumentasikan hasil analisa dan desain yang berisi sintak dalam memodelkan sistem secara visual. UML juga merupakan satu kumpulan konvensi pemodelan yang digunakan untuk menentukan atau menggambarkan sebuah sistem software yang terkait dengan objek.

Dengan menggunakan model, diharapkan dapat mempermudah penulis dalam membangun, menganalisis serta mengembangkan aplikasi yang sedang dibuat. Ada beberapa macam jenis UML, dalam penulisan laporan dan pembangunan aplikasi ini, penulis hanya menggunakan 3 jenis UML yaitu use case diagram, activity diagram dan sequence diagram (Rosita, 2016). Untuk lebih lengkapnya tentang berbagai tipe dari diagram UML bisa dilihat pada Tabel 2 di bawah ini.

(11)

Tabel 3 Tipe diagram UML

Diagram Tujuan

Activity Perilaku procedural dan parallel Class Class, fitur dan relasinya

Communication Interaksi diantara objek. Lebih menekankan ke link Component Struktur dan koneksi dari komponen

Composite

Structure Dekomposisi sebuah class saat runtime Deployment Penyebaran/ instalasi ke klien

Interaction

Overview Gabungan antara activity dan sequence diagram Object Contoh konfigurasi instance

Package Struktur hierarki saat kompilasi

Sequence Interaksi antar objek. Lebih menekankan pada urutan State Machine Bagaimana event mengubah sebuah objek

Timing Interaksi antar objek. Lebih menekankan pada waktu Use Case Bagaimana user berinteraksi dengan sebuah sistem.

2.13 Use Case diagram

Menurut Dharwiyanti (2003), use case diagram merupakan pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat. Use case mendekripsikan sebuah interaksi antara suatu atau lebih aktor dengan sistem informasi yang akan dibuat. Secara kasar use case digunakan untuk mengetahui fungsi apa saja yang ada di didalam sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi itu Untuk contoh penggunaan use case diagram dapat dilihat pada Gambar 4. Use case diagram terdiri dari:

(12)

Gambar 4 Contoh use case diagram 1. Use Case

Use case dibuat berdasarkan keperluan actor mengenai hal yang dilakukan actor. Use case diberi nama yang menyatakan apa hal yang dicapai dari hasil interaksinya dengan actor. Use case dinotasikan dengan gambar (horizontal elipse), penamaan use case biasanya menggunakan kata kerja.

2. Actor

Actor menggambarkan orang, sistem, atau entitas eksternal yang menyediakan atau menerima informasi dari sistem serta menggambarkan sebuah tugas atau peran dan bukannya posisi sebuah jabatan. Actor memberi input atau menerima informasi dari sistem. 3. Relationship

Menggambarkan bagaimana actor terlibat dalam use case. Ada 4 jenis relasi yang bisa timbul pada use case diagram, yaitu:

a. Association antara actor dan use case b. Axssociations antara use case

c. Generalization atau Inheritence antara use case d. Generalization atau Inheritence antara actors e. System Boundary Boxes

(13)

Digambarkan dengan kotak disekitar use case, untuk menggambarkan jangkauan sistem anda. Biasanya digunakan apabila memberikan beberapa alternatif sistem yang dapat dijadikan pilihan. Alasan menggunakan use case diagram pada perancangan aplikasi pada penelitian kali ini adalah membantu memahami persyaratan fungsional sebuah sistem serta mewakili gambaran eksternal sebuah sistem (Dharwiyanti, 2003).

2.14 Activity Diagram

Dharwiyanti (2003), activity diagram atau diagram aktivitas yaitu salah satu jenis diagram pada UML yang dapat memodelkan proses-proses apa saja yang terjadi pada sistem. Activity diagram dipakai pada model bisnis untuk memperlihatkan urutan aktifitas proses bisnis. Diagram aktivitas menggambarkan aktivitas sistem bukan apa yang dilakukan actor. Activity diagram sangat bermanfaat apabila kita membuat diagram ini terlebih dahulu dalam memodelkan sebuah proses untuk membantu memahami proses secara keseluruhan. Berikut terlihat pada Gambar 5 adalah gambar perancangan sistem menggunakan activity diagram.

(14)

2.15 Sequence diagram

Dharwiyanti (2003), sequence diagram yaitu salah satu jenis diagram pada UML yang menjelaskan interaksi objek yang berdasarkan urutan waktu, sequence diagram juga dapat menggambarkan urutan atau tahapan yang harus dilakukan untuk dapat menghasilkan sesuatu seperti pada use case diagram.

Gambar 6 Contoh squence diagram

Sequence diagram menjelaskan interaksi objek yang disusun berdasarkan urutan waktu. Secara mudahnya sequence diagram adalah gambaran tahap demi tahap, termasuk kronologi (urutan) perubahan secara logis yang seharusnya dilakukan untuk menghasilkan sesuatu (Dharwiyanti, 2003). Banyaknya diagram sekuen yang harus digambar adalah minimal sebanyak pendefinisian use case yang memiliki proses sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada diagram sekuen sehingga semakin banyak use case yang didefinisikan maka diagram sekuen yang harus dibuat juga semakin banyak (Dharwiyanti, 2003).

(15)

2.16 Metode Pengujian Black Box

Menurut Pressman (2005), pengujian Black Box merupakan proses menjalankan program dengan maksud menemukan kesalahan dan berfokus pada persyaratan fungsional perangkat lunak. Pengujian ini memungkinkan perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. Pengujian dimaksudkan untuk mengetahui apakan fungsi-fungsi, masukan dan keluaran dari perangkat lunak sesuai dengan spesifikasi yang dibutuhkan. Pengujian black box berusaha untuk menemukan kesalahan dalam kategori sebagai berikut:

1. Fungsi-fungsi yang tidak benar atau hilang 2. Kesalahan interface

3. Kesalahan dalam struktur data atau akses database eksternal 4. Inisialisasi dan kesalahan terminasi

5. Validitas fungsional

6. Kesensitifan sistem terhadap nilai input tertentu 7. Batasan dari suatu data

Gambar 7 Sistem kerja dai teknik pengujian black box (Sumber: https://widuri.raharja.info)

Gambar

Tabel 1 Perbandingan kelebihan dan kekurangan penelitian
Gambar 2 Notepad++ v5.9 (Sumber: http://www.notepad-plus-plus.org/)
Gambar 3 Simbol Flowchart (Sumber: www.mbaskool.com)
Tabel 3 Tipe diagram UML
+5

Referensi

Dokumen terkait

The test results kalimuru wood machining properties including good quality (class II) and the average size of the wood adhesive kalimuru penetration at 23, 67 µm. It can be

teknologi oleh siswa SD Negeri Salatiga 08 dalam bingkai TIM yang diambil atau.. berfokus pada jarang dan selalu bila dilihat dari indikator – indikator dalam

1) Gambaran human relations pada karyawan bagian logistik di PT BADJATEX Bandung, yang tediri dari empat indikator, yaitu: (1) kebutuhan untuk bekerja sama;

KELEBIHAN DAN KELEMAHAN SAUDARA.. MINAT

[r]

(2) Apabila penerima pensiun Pegawai Negeri Sipil sebagaimana dimaksud dalam ayat (1) meninggal dunia maka j anda/ dudanya melaporkan kepada Kepala Badan Administ rasi Kepegawaian

a) Keputusan Penetapan tim teknis pelaksanaan pengembangan kebun sumber bahan tanam tanaman tahunan perkebunan oleh Kepala Dinas yang membidangi perkebunan di

[r]