BAB 2 LANDASAN TEORI
2.1
Algoritma Dalam Kamus Besar Bahasa Indonesia, terbitan Balai Pustaka 1988, algoritma diartikan
sebagai urutan logis pengambilan putusan untuk pemecahan masalah. Menurut Abu Jafar Mohammad Ibn Musa Al Khowarizmi, algoritma adalah suatu metode khusus untuk menyelesaikan suatu persoalan. Dalam ilmu komputer, algoritma merupakan suatu prosedur yang terdiri dari sekumpulan operasi yang bisa dilaksanakan oleh komputer untuk menyelesaikan suatu masalah, di mana prosedur ini memerlukan sejumlah masukan/input dan menghasilkan keluaran/output. Ciri-ciri algoritma adalah sebagai berikut: [KNU-69, HOR-90] 1. Input : Terdapat nol/lebih masukan yang diberikan secara eksternal. 2. Output: Terdapat satu/lebih keluaran yang dihasilkan. 3. Definite: Menyatakan apa yang dilakukan secara jelas/sempurna. 4. Effective: Setiap instruksi harus dapat dilakukan secara manual (menggunakan pensil dan kertas dalam waktu yang berhingga. 5. Terminate: Harus selesai/berhenti setelah sejumlah hingga operasi.
7
2.2
Riset Operasional Riset Operasional (RO) digunakan untuk menyelesaikan masalah operasional dalam
organisasi. Kata riset pada RO ini menunjukkan bahwa RO menggunakan pendekatan riset dalam proses pemecahan masalah operasional, yang ditunjang oleh bidang keilmuan. Peran RO adalah sebagai alat bantu dalam mempelajari sebuah sistem, sehingga sering digunakan untuk membantu para manajer dalam mengambil keputusan. Pada umumnya, manajer mengambil keputusan hanya berdasarkan perasaan dan pengalaman mereka saja. Tetapi keputusan yang baik haruslah dibuat berdasarkan sebuah pendekatan formal, di mana dalam melakukan pendekatan formal ini, para manajer harus melakukan studi secara sistematik terhadap sistem yang ada. Studi ini antara lain terdiri dari pengumpulan data, penyusunan model matematika, percobaan model, prediksi operasi selanjutnya dan pencarian dukungan dari pihak manajemen untuk mengimplementasikan model tersebut. Studi inilah yang disebut Riset Operasional. [Levin et al. (1992, p23)]. Karena RO menggunakan model dalam masalah, maka langkah-langkah dalam proses RO ditujukan untuk mengembangkan dan menjalankan model tersebut, seperti yang dijelaskan pada tabel di bawah ini. [Budnick F. S., Mojena R. & Vollman T.E. (1977)]
8
Tabel 2.1
Langkah-langkah dalam Proses Riset Operasional
Langkah-Langkah Proses
Aktivitas Proses
Output Proses
Langkah 1: Observasi lingkungan persoalan
Kunjungan lapangan, observasi, riset
Informasi dan data penunjang yang dibutuhkan
Langkah 2: Analisis dan pengenalan masalah
Menemukan penggunaan, menentukan tujuan dan batasan-batasan
Pedoman yang jelas untuk mencari pemecahan yang dibutuhkan
Langkah 3: Pengembangan Model
Peralatan RO, antar hubungan model matematika, riset pemecahan yang diketahui
Model yang berfungsi di bawah batasan lingkungan yang telah ditetapkan
Langkah 4: Memilih data masukan yang sesuai
Data internal dan eksternal, penjajakan kenyataan dan pendapat, data bank komputer
Input yang memadai untuk mengerjakan dan menguji model
Langkah 5: Perumusan solusi dan pengetesan model yang dapat dipertanggungjawabkan
Pengujian batasan, pembuktian
Solusi yang dapat membantu penetapan tujuan organisasi
Langkah 6: Penerapan solusi
Pembahasan perilaku, mengemukakan ide, pelibatan manajemen dan penjelasan
Pemahaman oleh manajemen uintuk menunjang model operasi dalam jangka panjang
2.3
Model Secara umum, model adalah representasi atau abstraksi dari seubah objek/situasi aktual.
Karena model adalah abstraksi dari suatu realita, maka model tersebut akan lebih sederhana dari objek nyata yang dimodelkan olehnya. Pada umumnya model digunakan sebagai pengganti dari suatu objek, karena seringkali suatu percobaan akan lebih mudah dilakukan terhadap model dibandingkan jika dilakukan terhadap objek yang sesungguhnya. Ada 3 jenis model yang dikenal, yaitu: 1. Model Ikonik/physical: Penampilan fisik dari suatu objek dalam skala yang lebih kecil, misal pada globe dan foto. 9
2. Model Analog/diagrammatic: Menggunakan objek lain (umumnya diagram) untuk menggambarkan
karakteristik
objek,
contohnya
flowchart dan DFD (Data Flow Diagram). 3. Model Matematika/symbolic: Menggunakan simbol-simbol/rumus-rumus matematika dalam menggambarkan sifat objek, misalnya model pemrograman linear dan model antrian. Model matematika pada umumnya digunakan untuk kebutuhan-kebutuhan optimisasi dan analisis sistem (Law dan Kelton, 2000, p4 ; Budnick, Mojena dan Vollman, 1977, p11), di mana dalam hal ini model matematika tersebut berbentuk struktur dari persamaan-persamaan dan pertidaksamaan-pertidaksamaan matematika yang menunjukkan hubungan antara input yang diberikan kepada sistem dengan output yang dihasilkan oleh sistem.
2.4
Paper Tube Pembahasan Paper Tube ini meliputi pengertian dan kegunaan Paper Tube, spesifikasi
Paper Tube, proses produksi dan mesin-mesin yang digunakan dalam produksi Paper Tube serta faktor-faktor yang mempengaruhi kualitas Paper Tube..
2.4.1
Pengertian dan Kegunaan Paper Tube Tabung kertas atau biasa juga dikenal dengan istilah Paper Tube biasanya digunakan
sebagai inti gulungan benang, kawat logam, plastic film, kertas dan lain-lain, disamping itu Paper Tube dapat juga digunakan misalnya untuk melindungi Cathode Ray Tube (CRT) atau tabung monitor atau televisi pada saat transportasi tabung-tabung tersebut, agar leher tabung
10
tidak menjadi rusak di perjalanan. Singkatnya saat ini penggunaan Paper Tube selalu bertambah seiring dengan kemajuan zaman dan teknologi. Dibandingkan dengan tabung-tabung jenis lain, seperti tabung besi, tabung kayu dan tabung plastik, pada saat ini tabung kertas (Paper Tube) makin banyak digunakan, karena selain harganya yang cukup dapat bersaing, juga terutama karena Paper Tube termasuk barang yang ramah lingkungan, karena ia dapat terurai dengan sendirinya menjadi bubur kertas bila terendam dalam air, sehingga ia tidak akan mencemarkan lingkungan.
2.4.2
Spesifikasi Paper Tube Pada umumnya spesifikasi dari Paper Tube ditentukan dari dimensi, yaitu diameter
dalam (inside diameter), diameter luar (outside diameter) dan panjang tabung, dan juga kuat tekan tabung kertas itu sendiri. Terutama untuk dipakai sebagai inti gulungan, kuat tekan Paper Tube sangat penting, karena pada saat proses penggulungan, media yang digulung (benang, kawat dan sebagainya) memiliki tegangan tertentu (tension), yang mana kekuatan tegangan tersebut akan diteruskan ke inti gulungan, dalam hal ini Paper Tube. Bertambah banyaknya jumlah gulungan / lilitan media yang digulung akan menambah besar tekanan yang diderita oleh Paper Tube, sehingga apabila kuat tekan Paper Tube kurang tinggi, hasil gulungan tidak dapat dikeluarkan dari mesin gulung, karena Paper Tube-nya menjepit as dari mesin penggulung tersebut. Oleh karena itu kuat tekan adalah faktor yang sangat penting untuk Paper Tube selain dimensinya. Gambar di bawah ini menunjukkan beberapa contoh dari Paper Tube.
11
Gambar 2.1
2.4.3
Paper Tube
Proses Produksi Paper Tube Pada umumnya Paper Tube dibuat secara kontinu (continuous process), dalam proses ini
Paper Tube dibuat dari beberapa strip kertas dengan lebar yang disesuaikan dengan diameter Paper Tube tersebut. Strip kertas tersebut digulung dan direkatkan satu dengan yang lainnya dengan sudut gulungan (winding angle) yang sesuai dengan diameter Paper Tube tersebut. Gambar di bawah ini menjelaskan proses pembuatan Paper Tube.
12
Pipa besi
Paper Tube
Sudut Gulungan (Winding Angle) Gambar 2.2
Proses Pembuatan Paper Tube
Untuk melaksanakan proses produksi Paper Tube ini, diperlukan beberapa buah mesin, yaitu Slitting Machine (untuk memotong kertas menjadi strip-strip), Tube Winder (untuk menggulung strip-strip kertas menjadi Paper Tube) dan Tube Cutting Machine (untuk memotong gulungan kertas menjadi Paper Tube dengan panjang yang diinginkan). Mesin-mesin tersebut dapat dilihat pada Gambar 2.3 di bawah ini.
13
Gambar 2.3
2.4.4
Mesin-mesin yang digunakan dalam proses produksi Paper Tube
Faktor-faktor yang mempengaruhi kualitas Paper Tube Kualitas (kuat tekan) dari Paper Tube yang dihasilkan sangat bergantung pada beberapa
faktor, di antaranya spesifikasi kertas, lebar strip dan sudut gulungan yang digunakan dalam proses produksi. Beberapa spesifikasi kertas yang penting dalam produksi Paper Tube antara lain ketebalan kertas (thickness), jenis dan gramatur kertas. Pada industri Paper Tube ada dua jenis kertas yang umum digunakan pada proses produksi, yaitu kertas jenis Core Board dan kertas jenis Grey Board. Kertas jenis Core Board memiliki Bursting Strength (kekuatan) yang lebih besar dibandingkan dengan kertas jenis Grey Board dengan ketebalan dan gramatur yang sama, sehingga kertas jenis Core Board ini lebih cocok digunakan pada proses produksi Paper Tube yang memerlukan kualitas yang baik. Di lain sisi, kertas jenis Grey Board memiliki harga yang lebih ekonomis dibandingkan dengan kertas jenis Core Board sehingga banyak digunakan pada 14
produksi Paper Tube yang tidak begitu memerlukan kualitas tinggi, untuk menekan biaya bahan baku.. Gramatur kertas yang digunakan pada proses produksi Paper Tube bervariasi, antara 240 gsm sampai dengan 500 gsm (1 gsm = 1 gram per square meter (g/m2)). Setiap jenis dan gramatur kertas memiliki Bursting Strength yang berbeda, di mana Bursting Strength bertambah seiring dengan meningkatnya gramatur (dan ketebalan) dari kertas yang digunakan. Lebar strip kertas juga sangat berpengaruh terhadap kualitas Paper Tube yang dihasilkan, karena dengan memperkecil lebar strip kertas akan didapatkan tumpuan (overlapping) yang lebih banyak, sehingga kekuatan Paper Tube yang dihasilkan juga lebih besar. Akan tetapi lebar strip kertas tidak dapat dibuat sekecil mungkin (terutama untuk diameter tabung yang besar), karena akan mengakibatkan lamanya waktu produksi (karena banyaknya proses penggulungan yang harus dikerjakan oleh mesin), sehingga diperlukan suatu lebar strip yang optimal untuk menghasilkan Paper Tube dengan kualitas yang baik dalam waktu produksi yang relatif singkat. Lebar strip ini juga harus dibedakan (dibuat variasi) dengan selisih ± 1 mm antar layer kertas, agar kertas tidak menumpuk menjadi satu dan membentuk sebuah spiral (keadaan ini akan mengakibatkan tiadanya kuat tekan Paper Tube, karena tidak terjadi tumpuan/overlapping antar layer) Lebar strip di atas menentukan sudut gulungan (winding angle) yang harus diambil dalam proses produksi. Jika sudut gulungan terlalu rendah, maka layer-layer pada Paper Tube akan menyisakan ruang-ruang kosong, menyebabkan kuat tekan Paper Tube tidak optimal. Sedangkan jika sudut gulungan terlalu tinggi, maka layer tersebut akan meng-overlapping dirinya sendiri dan menumpuk, sehingga mesin tidak dapat menggulung Paper Tube. Menurut pengalaman, sudut yang optimal berkisar sekitar 45° (bergantung pada lebar strip kertas yang digunakan).
15
Selain faktor-faktor yang disebutkan di atas, ada beberapa faktor lagi yang menentukan kuat tekan, di antaranya diameter dan ketebalan tabung (untuk ketebalan yang sama, tabung dengan diameter lebih kecil akan lebih kuat daripada tabung dengan diameter lebih besar), serta kualitas perekat antar layer (diperlukan perekat dengan kualitas yang baik untuk mencapai kuat tekan yang optimal) dan kadar air pada kertas pembentuk tabung (semakin kecil kadar air semakin baik, kadar air dapat dikurangi dengan melakukan proses oven pada tabung sebelum atau sesudah proses penggulungan dan perekatan).
2.4.5
Definisi-definisi Operasional dalam Proses Produksi Paper Tube Bursting Strength (BS) : Kekuatan kertas terhadap daya tembus. Diameter dalam / inside diameter : Diameter Paper Tube pada layer kertas terdalam. Diameter luar / outside diameter : Diameter Paper Tube pada layer kertas terluar. Kuat tekan : Kemampuan suatu benda (dalam hal ini Paper Tube) untuk menahan tekanan. Paper Tube : Tabung yang terbuat dari strip-strip kertas yang digulung dan direkatkan satu sama lain. Proses secara kontinu / continuous process : Proses pembuatan Paper Tube di mana Paper Tube dibuat dengan cara menggulung strip-strip kertas dengan sudut gulungan (winding angle) tertentu dan merekatkannya satu sama lain. Sudut gulungan / winding angle : Sudut antara strip kertas dan pipa besi dalam proses pembuatan Paper Tube.
16
2.5
Bursting Strength (BS) Bursting Strength (BS) adalah kekuatan kertas terhadap daya tembus, di mana Bursting
Strength ini sangat menentukan kuat tekan dari Paper Tube yang akan diproduksi (semakin besar Bursting Strength bahan baku kertas akan semakin besar kuat tekan Paper Tube). Seperti telah dijelaskan sebelumnya, Bursting Strength ini berbeda-beda untuk setiap jenis dan gramatur kertas, dan dapat diukur dengan cara sebagai berikut:
5 kg Kertas Membran
Cairan Gliserin
Hydraulic Gambar 2.4
Cara yang digunakan untuk mengukur Bursting Strength kertas
Kertas diletakkan di permukaan datar dan diberi tekanan sebesar 5 kgf dari atas, sementara di bawah kertas diletakkan membran yang dibawahnya diletakkan sistem hydraulic dengan cairan gliserin. Kemudian kertas diberi tekanan dari bawah dengan sistem hydraulic tersebut, ditambah sedikit demi sedikit sampai akhirnya pecah. Angka tekanan hydraulic terakhir (maksimum) yang didapatkan pada saat kertas pecah adalah Bursting Strength dari kertas yang dites tersebut.
17
2.6
Kuat tekan Setiap benda memiliki kemampuan untuk menahan gaya tekan (kuat tekan) yang
bergantung pada beberapa faktor, salah satunya kekuatan bahan pembentuk benda (yang bervariasi tergantung ketebalan dan jenis bahan, dalam kasus Paper Tube jenis dan gramatur dari kertas yang digunakan). Mengingat struktur Paper Tube yang terdiri dari layer-layer, kuat tekan pada Paper Tube juga ditentukan oleh beberapa faktor lain selain yang disebutkan di atas, di antaranya jumlah layer (menentukan jumlah/ketebalan bahan yang akan menahan beban), besarnya overlapping antar layer (menentukan tegangan/tension antar ply), serta sudut gulungan dan lebar strip yang digunakan dalam proses produksi (menentukan ketahanan Paper Tube terhadap gaya tekan dan besar tegangan/tension yang akan diterima oleh layer-layer Paper Tube pada saat Paper Tube menerima tekanan dari luar).
2.7
Trigonometri Trigonometri adalah cabang dari matematika yang mempelajari tentang sudut, segitiga
dan fungsi-fungsi trigonometri (seperti sinus, kosinus dan tangen). Dalam sejarahnya, trigonometri telah ditemukan dan digunakan oleh peradaban Mesir Kuno lebih dari 3000 tahun yang lalu untuk perhitungan-perhitungan astronomi. Sejak saat itu hingga sekarang, trigonometri berkembang dengan sangat pesat dan digunakan di hampir semua bidang ilmu. Salah satu ide dasar dari trigonometri ini adalah bahwa dua segitiga sebangun jika dan hanya jika sudut-sudutnya sama, hal ini terjadi misalnya bila terdapat dua segitiga yang memakai suatu sudut yang sama dan sisi-sisi yang berseberangan dari kedua segitiga tersebut sejajar, seperti yang ditunjukkan pada Gambar 2.5 di bawah ini.
18
B’ B
A‘ A O Gambar 2.5 Dua buah segitiga yang sebangun Pada gambar seperti Gambar 2.5 di atas dapat dilihat bahwa panjang sisi-sisi dari dua segitiga sebangun adalah proporsional, dengan kata lain rasio dari panjang dua sisi pada segitiga AOB (misal
AO ) akan sama dengan rasio dari panjang dua sisi yang sebangun pada segitiga A’OB’ BO
(misal
A' O ). Dengan memanfaatkan fakta-fakta di atas, maka didefinisikanlah fungsi-fungsi B' O
trigonometri, yang didasarkan pada segitiga siku-siku seperti yang terlihat di bawah ini.
C
r
y
α
A
x
B
Gambar 2.6 Segitiga siku-siku Dari Gambar 2.6 di atas didapatkan rasio-rasio trigonometri sebagai berikut :
sin α =
y r
cos α =
x r
tan α =
y x
cot α =
x y
sec α =
r x
csc α =
r y
19
Rasio-rasio trigonometri tersebut bernilai positif untuk 0° < α < 90° dan memiliki sifat-sifat sebagai berikut : sin α 1 1 1 , cot α = , sec α = , csc α = , cos α tan α cos α sin α sin 2 α + cos 2 α = 1, tan 2 α + 1 = sec 2 α , cot 2 α + 1 = csc 2 α , tan α =
sin 2α = 2 sin α cos α , cos 2α = cos 2 α − sin 2 α Definisi dan sifat-sifat dari rasio trigonometri yang disebutkan di atas akan digunakan dalam proses perhitungan untuk mencari lebar strip dan sudut gulungan Paper Tube yang optimal.
2.8
Kalkulus
Kalkulus adalah suatu cabang utama dalam matematika yang dikembangkan dari aljabar dan geometri. Ada dua ide utama yang dipelajari dalam kalkulus, yaitu laju perubahan fungsi (kalkulus diferensial) dan akumulasi nilai fungsi (kalkulus integral).
2.8.1
Kalkulus Diferensial
Derivatif/turunan adalah suatu ukuran sensitivitas dari suatu variabel terhadap perubahan kecil pada variabel lain. Sebagai contoh, untuk mobil yang sedang berjalan berlaku rumus Kecepatan = Jarak / Waktu, di mana dalam hal ini kecepatan sesaat (yang diukur dengan
speedometer) adalah turunan dari jarak yang ditempuh (yang diukur dengan odometer) terhadap waktu. Rumus di atas dapat digunakan untuk mencari kecepatan rata-rata dari mobil tersebut (dengan membagi jarak yang ditempuh dengan waktu tempuh), akan tetapi tidak dapat digunakan untuk mencari kecepatan sesaat (karena akan memberi hasil 0/0, yang tidak
20
terdefinisikan), sehingga turunan fungsi jarak tersebut tidak dapat dicari secara langsung dari rumus di atas. Maka dengan pendekatan kalkulus, pembagian 0/0 ini dihindari dengan menggunakan limit. Sehingga dapat disimpulkan, bahwa kalkulus diferensial adalah bidang dari kalkulus yang membahas mengenai laju perubahan sesaat dari suatu fungsi, terhadap perubahan variabel. Dalam hal ini turunan didefinisikan sebagai limit dari kuosien diferensial, seperti dinyatakan pada rumus di bawah ini:
y = f (x ) → y' = f ' (x ) =
dy f (x + h ) − f (x ) f (x + h ) − f (x ) = lim = lim (x + h ) − x dx h h→0 h →0
(1)
Satu sifat yang penting dari turunan ini adalah bahwa turunan dari suatu fungsi adalah sama dengan gradien dari grafik fungsi tersebut, sehingga turunan tersebut dapat memberikan banyak informasi mengenai fungsi (dan grafiknya), terutama mengenai nilai maksimum dan minimum fungsi (nilai dari suatu fungsi f(x) mencapai nilai maksimum atau minimum pada saat turunan pertamanya f’(x) sama dengan nol, jenis maksimum/minimumnya dapat dicari dari nilai turunan keduanya f ”(x): maksimum jika f ”(x) < 0 dan minimum jika f ”(x) > 0). Sebagai
contoh,
fungsi
f ( x) = x 3 − 9 x 2 + 24 x − 9
memiliki
turunan
pertama
f ' ( x) = 3x 2 − 18 x + 24 dan turunan kedua f " ( x) = 6 x − 18 . Fungsi turunan ini memiliki akar18 ± 18 2 − 4 ⋅ 3 ⋅ 24 18 ± 324 − 288 18 ± 36 18 ± 6 = = = = 3 ± 1 Æ x = 2 atau x = akar di x = 2⋅3 6 6 6
4. Untuk x = 2, f (2) = 2³ – 9·2² + 24·2 – 9 = 8 – 36 + 48 – 9 = 11 merupakan titik maksimum (karena turunan kedua f “(2) = 6·2 – 18 = 12 – 18 = –6 < 0). Dan untuk x = 4, f (4) = 4³ – 9·4² + 24·4 – 9 = 64 – 144 + 96 – 9 = 7 merupakan titik minimum (karena turunan kedua f “(4) = 6·4 –
21
18 = 24 – 18 = 6 > 0). Sehingga didapatkan koordinat titik maksimum dari f(x) adalah (2, 11) dan koordinat titik minimumnya adalah (4, 7). Kalkulus diferensial banyak digunakan dalam berbagai bidang yang memerlukan optimisasi nilai fungsi, seperti dalam matematika (mencari nilai akar fungsi), fisika (Hukum Newton dsb.), biologi, ekonomi, dan masih banyak bidang yang lainnya, termasuk juga perhitungan sudut gulungan optimal Paper Tube yang dibahas pada skripsi ini.
2.8.2
Kalkulus Integral
Satu ide lagi yang penting dalam kalkulus adalah ide akumulasi nilai fungsi pada interval tertentu, yang dibahas pada kalkulus integral. Ada dua tipe integral dalam kalkulus, yaitu integral tak tentu dan integral tertentu. Integral tak tentu adalah kebalikan dari diferensial (antiturunan) dari fungsi, dengan kata lain, integral tak tentu adalah suatu konsep yang berhubungan dengan proses penemuan fungsi asal F(x) jika fungsi turunannya F’(x) = f(x) diketahui. Integral tak tentu ini memiliki bentuk umum ∫ f(x) dx = F(x) + c, dengan c suatu konstanta tak tentu. Konstanta c ini diperlukan karena derivatif dari setiap konstanta adalah nol, sehingga antiturunan F(x) dapat memiliki sembarang konstanta c, yang nilainya akan ditentukan kemudian berdasarkan nilai fungsi asal. Misalkan ∫ 2x
dx = x² + c, karena turunan dari fungsi-fungsi x², x² + 5, x² – 3 dan sembarang x² + c lain semuanya adalah 2x. Sedangkan integral tertentu merupakan suatu konsep efek akumulasi nilai fungsi pada interval tertentu sebagai hasil banyak perubahan kecil pada nilai fungsi di interval tersebut. Salah satu contoh yang sederhana adalah rumus Jarak = Kecepatan × Waktu untuk menghitung jarak yang ditempuh oleh sebuah mobil (yang berjalan pada kecepatan konstan). Dengan kalkulus
22
integral, jarak yang ditempuh oleh mobil yang berjalan tidak pada kecepatan konstan dapat pula dihitung, dengan menganggap kecepatan sebagai turunan dari jarak (seperti pada bagian 2.8.1 di atas), sehingga jarak bisa didefinisikan sebagai integral (tertentu) dari fungsi kecepatan pada interval waktu tempuh. Nilai dari integral tertentu dapat dicari dengan cara menghitung limit dari pendekatan luas daerah di bawah kurva fungsi, yang dinamakan dengan jumlah Riemann. Jumlah Riemann ini didapatkan dengan membagi interval [a, b] menjadi beberapa subinterval [x0 = a, x1], [x1, x2], …, [xn–2, xn–1], [xn–1, xn = b] dan menghitung jumlah dari pendekatan luas daerah di bawah setiap sub-interval tersebut (pendekatan luas daerah di bawah subinterval [xk, xk+1] = (xk+1 – xk) × f(xk)). Maka dengan membuat panjang subinterval-subinterval tersebut sekecil mungkin (mendekati nol), jumlah Riemann tersebut akan mendekati luas daerah di bawah fungsi. Maka integral tertentu dapat pula didefinisikan sebagai luas daerah yang berada di bawah fungsi pada suatu interval tertentu, sehingga dapat digunakan untuk menghitung luas di bawah kurva fungsi. Akan tetapi perhitungan integral tertentu dengan cara ini cukup rumit karena harus membuat sejumlah besar jumlah Riemann dan menghitung limitnya, sehingga dalam prakteknya digunakan suatu sifat lain yang penting dari integral tertentu, yang akan dijelaskan di bawah ini. Menurut Teorema Fundamental Kalkulus, nilai dari integral tertentu ini adalah sama dengan selisih nilai fungsi antiturunan pada batas atas dan batas bawah interval, dengan kata lain, b
∫ f (x )dx = F (b ) − F (a ) . Dengan menggunakan sifat ini maka perhitungan integral tertentu dapat a
dilakukan dengan mudah, jika antiturunan dari fungsi yang diintegralkan diketahui. Sebagai contoh,
fungsi
f (x ) = x 2
memiliki
23
antiturunan
F (x ) = 13 x 3 + c .
Maka
2
2
2 3 ∫ x dx = ∫ f (x )dx = F (2) − F (0) = 13 x + c = 0
0
2
0
(
1 3
) (
⋅ 23 + c −
1 3
)
⋅ 0 3 + c = (83 + c ) − (0 + c ) = 83 . Dalam
hal ini konstanta integral tak tentu c tidak perlu dimasukkan, karena akan hilang dengan sendirinya dalam proses perhitungan. Kalkulus integral memiliki penerapan yang luas di berbagai bidang ilmu yang melakukan perhitungan dengan ide akumulasi nilai fungsi dan/atau antiturunan, seperti geometri (perhitungan luas di bawah kurva, panjang kurva, luas permukaan, volum benda), statistika probabilitas (fungsi distribusi peluang kumulatif), fisika, ekonomi dan lain-lain. Dalam skripsi ini kalkulus integral akan digunakan untuk menghitung jumlah tekanan yang diderita oleh tiap layer Paper Tube pada saat menerima tekanan (setelah mendapatkan fungsi besar tekanan pada tiap titik di Paper Tube).
2.9
Persamaan Diferensial
2.9.1
Definisi Persamaan Diferensial
Persamaan diferensial adalah sebuah persamaan di mana satu atau lebih variabel dari persamaan tersebut berbentuk diferensial/turunan dari suatu fungsi. Persamaan diferensial memiliki banyak aplikasi penting dalam berbagai bidang khususnya pada bidang teknik, karena banyak persoalan teknik yang dapat dirumuskan secara matematis dalam bentuk persamaan diferensial. Ada 2 jenis persamaan diferensial, yaitu persamaan diferensial biasa (PDB) dan persamaan diferensial parsial (PDP). Perbedaan antara PDB dan PDP adalah bahwa PDB hanya mengandung fungsi (dan turunannya) dengan satu variabel bebas, sedangkan PDP dapat mengandung fungsi-fungsi dengan banyak variabel bebas.
24
Jenis persamaan diferensial yang akan digunakan dalam model optimasi Paper Tube ini adalah persamaan diferensial biasa orde satu dengan variabel yang dapat dipisahkan dan memiliki nilai awal, yang akan dijelaskan lebih lanjut di bawah ini.
2.9.2
Persamaan Diferensial Biasa (PDB) Orde Satu
Persamaan diferensial biasa (PDB) adalah sebuah persamaan yang mengandung satu/lebih turunan dari sebuah fungsi yang tidak diketahui dengan satu variabel bebas, katakanlah y(x), yang dapat dicari dari persamaan tersebut. Persamaan ini juga dapat mengandung fungsi y itu sendiri, selain fungsi-fungsi lain yang telah didefinisikan. Berikut ini
(
)
adalah beberapa contoh dari PDB: 1) y ′ = cos x , 2) y ′′ + 4 y = 0 , 3) x 2 y ′′′y ′ + 2e x y ′′ = x 2 + 2 y 2 . Orde dari suatu persamaan diferensial dapat dilihat dari tingkat turunan tertinggi yang ada pada persamaan tersebut. Dengan demikian persamaan 1) di atas adalah berorde satu, persamaan 2) berorde dua, dan persamaan 3) berorde tiga. Untuk menyelesaikan persamaan diferensial orde satu dengan variabel yang dapat dipisahkan (bentuk umumnya: F ( x, y, y ′) = 0 atau y ′ = f ( x, y ) ), pertama-tama persamaan tersebut diubah ke dalam bentuk g ( y )dy = f ( x )dx , mengingat y ′ =
g ( y ) y ′ = f (x )
(atau dapat juga ditulis sebagai
dy ) dengan menggunakan manipulasi aljabar. Setelah itu, dx
dengan mengintegralkan kedua sisi terhadap variabel x didapatkan
dy
∫ g ( y ) dx dx = ∫ f (x )dx + c .
Setelah bentuk di atas didapatkan, maka variabel y pada ruas kiri dapat digunakan untuk integrasi. Dari kalkulus,
⎛ dy ⎞ ⎜ ⎟dx = dy , sehingga diperoleh solusi umum persamaan ⎝ dx ⎠
25
∫ g ( y )dy = ∫ f (x )dx + c , dengan c adalah suatu konstanta yang nilainya ditentukan oleh nilai awal fungsi
f (a ) = c1
atau
g (b ) = c 2 yang telah diberikan sebelumnya, yang dapat
disubstitusikan ke dalam persamaan untuk memperoleh solusi khusus. Berikut ini adalah contoh dari persamaan diferensial orde satu dengan variabel yang dapat dipisahkan: Contoh: Cari solusi khusus dari persamaan y ′ = −
y , dengan nilai awal y (1) = 1 . x
Jawab. Dengan memisahkan variabel-variabel dan mengintegralkan kedua sisi, didapatkan 1 dy y dy dx =− → = − , ln y = − ln x + c1 = ln + c 2 . Lalu dengan mengeksponensialkan dx x y x x
kedua sisi diperoleh solusi umum y =
c . Solusi khusus persamaan dapat dicari dengan x
memasukkan nilai awal persamaan y (1) = 1 ke dalam solusi umum di atas, sehingga diperoleh 1 =
2.10
1 c → c = 1 dan solusi khusus persamaan y = . x 1
Metode Newton-Raphson
Dalam banyak jenis perhitungan matematika (khususnya dalam kalkulus dan persamaan diferensial), seringkali diperlukan pemecahan persamaan dengan bentuk
f(x) = 0. Untuk
beberapa kasus yang sederhana (seperti persamaan polinom berderajat ≤ 4 atau persamaan trigonometri dan eksponensial sederhana) jawaban dapat dicari secara analitik, tetapi untuk sebagian besar kasus hal ini tidak dapat dilakukan, karena tidak ada rumus yang dapat menghasilkan solusi eksak dari persamaan f(x) = 0 untuk sembarang f(x).
26
Oleh karena itu pada umumnya akar dari persamaan f(x) = 0 dihitung secara numerik dengan pendekatan iteratif, yaitu pendekatan di mana pencarian akar dimulai dari perkiraan awal
x0, dan dilanjutkan dengan menghitung perkiraan yang semakin baik x1, x2, ... secara bertahap sampai nilai f(xn) konvergen ke 0. Dalam hal ini ada beberapa jenis metode yang digunakan, di antaranya metode potongdua (bisection), metode iterasi fixed-point, metode Newton-Raphson, dan metode secant. Metode yang akan digunakan dalam menyelesaikan persamaan jenis tersebut dalam skripsi ini adalah metode Newton-Raphson, karena metode ini konvergen dengan cepat ke akar yang dicari dan cukup sederhana untuk dapat diimplementasikan dengan mudah. Dalam metode Newton-Raphson ini, fungsi f(x) yang hendak dicari akarnya harus memiliki turunan f ‘ yang kontinu. Ide dasar dari metode Newton-Raphson adalah melakukan pendekatan terhadap akar dari f dengan menarik garis singgung yang sesuai. Dengan menggunakan perkiraan awal x0 dari grafik fungsi f, misalkan bahwa x1 adalah perpotongan antara f ′( x0 ) =
sumbu
x
dan
garis
singgung
kurva
f
pada
titik
x0 .
Maka
didapatkan
f (x0 ) f (x0 ) . Setelah itu dari nilai x1 tersebut dilakukan perhitungan → x1 = x0 − f ′(x 0 ) x 0 − x1
terhadap x2 dengan rumus x 2 = x1 −
f (x1 ) , lalu terhadap x3 dengan rumus yang sama, dan f ′(x1 )
seterusnya. Untuk perkiraan akar yang cukup dekat (dan nilai f ‘ yang tidak terlalu kecil), metode ini konvergen dengan cepat ke nilai x yang dituju. Metode Newton-Raphson ini dapat diimplementasikan sebagai berikut:
27
Algoritma Newton-Raphson (f, f ‘, x0, ε, N)
Algoritma ini menghitung akar dari persamaan f(x) = 0 berdasarkan perkiraan awal x0 . Dalam hal ini fungsi f(x) diasumsikan kontinu dan mempunyai turunan f ’(x) yang juga kontinu. Input: f, f ‘, perkiraan awal x0, toleransi ε > 0, jumlah iterasi maksimum N. Output: Solusi pendekatan xn (n ≤ N) atau keterangan bahwa pencarian akar gagal. Langkah-langkah: 1. Set n = 0. 2. Hitung f ‘(xn). 3. Jika f ‘(xn) = 0 maka output “Pencarian akar gagal” dan stop. 4. Hitung x n +1 = x n −
f (xn ) . f ′( x n )
5. Jika x n +1 − x n ≤ ε x n maka output xn+1 dan stop. 6. Set n = n + 1. 7. Jika n ≥ N maka output “Pencarian akar gagal” dan stop. 8. Ulangi langkah 2 – 7. Contoh penggunaan metode Newton-Raphson : Misalkan akan dicari akar dari persamaan 2 sin x = x . Persamaan tersebut dapat dinyatakan dalam
bentuk
x − 2 sin x = 0 → f ( x ) = x − 2 sin x, f ′( x ) = 1 − 2 cos x .
Dengan
mengambil
perkiraan awal x0 = 2 (dengan melihat grafik fungsi bahwa akar persamaan berada di dekat
x = 2), maka hasil iterasi pendekatan akar x dapat dihitung sebagai berikut:
28
n
xn
f(xn)
f '(xn)
xn+1
0
2.00000
0.18141
1.83229
1.90100
1
1.90100
0.00904
1.64846
1.89552
2
1.89552
2.84668E-5
1.63808
1.89549
3
1.89549
2.862E-10
1.63805
1.89549
Dapat dilihat bahwa metode ini konvergen dengan sangat cepat, dengan hasil iterasi ke-3
x3 = 1.89549 teliti hingga 9 desimal (x3 = 1.8954942672, akar sebenarnya x = 1.8954942670)
2.11
Pemrograman Dinamis (Dynamic Programming)
Pemrograman dinamis (dynamic programming) adalah suatu teknik pemecahan masalah (problem solving) yang mencari solusi untuk suatu masalah dengan cara menggabungkan solusisolusi dari subproblem-subproblem yang menyusun masalah tersebut. Metode ini biasa digunakan pada masalah optimisasi yang memiliki optimal substructure (substruktur optimal, solusi optimal dari keseluruhan problem akan mengandung solusi-solusi optimal untuk subproblem-subproblemnya) dan overlapping subproblems (beberapa dari subproblemsubproblem yang timbul pada permasalahan yang ada akan digunakan lebih dari satu kali). Metode ini ditemukan oleh Richard Bellman pada tahun 1953, sebagai suatu metodologi proses pada analisis dan perancangan sistem di mana seseorang perlu mencari keputusan yang terbaik secara beruntun. Pada umumnya, metode dynamic programming dapat memecahkan persoalan dengan
optimal substructure dalam 3 langkah, seperti disebutkan di bawah ini: 1. Membagi problem yang akan diselesaikan menjadi subproblem-subproblem. 2. Mencari solusi optimal dari subproblem-subproblem tersebut secara rekursif (dengan menggunakan langkah 1-3 yang disebutkan disini). 29
3. Menyusun solusi optimal untuk problem dengan menggunakan solusi-solusi optimal untuk subproblem-subproblem yang telah didapatkan. Subproblem-subproblem yang didapatkan disini akan dipecahkan dengan cara membaginya menjadi beberapa subsubproblem, dan seterusnya sampai didapatkan subproblemsubproblem yang cukup sederhana untuk dapat diselesaikan secara trivial. Dalam pelaksanaannya, metode dynamic programming ini akan menjumpai subproblem-subproblem yang sama lebih dari satu kali (overlapping subproblems) dalam proses pencarian solusi secara rekursif, sehingga pendekatan naive untuk menyelesaikan masalah akan kurang efisien (karena harus menghitung ulang solusi optimal dari subproblem-subproblem yang telah diselesaikan). Karena itu metode dynamic programming ini pada umumnya menggunakan pendekatan
memoization, yaitu menyimpan solusi-solusi optimal yang sudah diperoleh ke dalam suatu tabel dan mengambilnya kembali dari tabel pada saat solusi tersebut dibutuhkan lagi kemudian, sehingga menghemat waktu yang dibutuhkan untuk menghitung solusi dari subproblem tersebut. Sehingga dapat disimpulkan bahwa metode dynamic programming ini memanfaatkan
optimal substructure (substruktur optimal), overlapping subproblems (subproblem-subproblem yang berulang), dan memoization (menyimpan solusi dari subproblem dalam suatu tabel). Dalam prakteknya, terdapat dua macam pendekatan pada implementasi metode ini, yaitu pendekatan top-down dan pendekatan bottom-up. Pada pendekatan top-down, problem yang ada dibagi menjadi subproblem-subproblem, yang kemudian diselesaikan dan hasilnya disimpan pada tabel (memoization), sehingga dapat digunakan kembali jika dibutuhkan. Sedangkan pada pendekatan bottom-up, semua subproblem yang mungkin diperlukan akan diselesaikan terlebih dahulu, dan kemudian digunakan untuk menyusun jawaban dari suatu problem yang lebih besar.
30
Sebagai contoh, barisan Fibonacci didefinisikan sebagai berikut: fib(0) = fib(1) = 1, fib(n) = fib(n-1) + fib(n-2). Maka pseudocode dari suatu fungsi yang digunakan untuk menghitung barisan Fibonacci akan berbentuk sebagai berikut: Function fib(n) If n = 0 or n = 1 Then return 1 Else return fib(n-1) + fib(n-2) Perhatikan bahwa jika kita memanggil fib(5), proses rekursif yang berjalan akan memanggil fungsi fib() dengan angka yang sama berulang kali: fib(5) = fib(4) + fib(3) = (fib(3) + fib(2)) + (fib(2) + fib(1)) = ((fib(2) + fib(1)) + (fib(1) + fib(0))) + ((fib(1) + fib(0)) + fib(1)) = (((fib(1) + fib(0)) + fib(1)) + (fib(1) + fib(0))) + ((fib(1) + fib(0)) + fib(1)) Pada khususnya, fib(2) akan dihitung dari awal sebanyak tiga kali, dan fib(3) sebanyak dua kali. Untuk nilai n yang lebih besar, maka akan terdapat jauh lebih banyak nilai fib() pada subproblem-subproblem yang akan dihitung ulang, sehingga waktu eksekusi algoritma ini akan meningkat secara eksponensial terhadap n. Misalkan terdapat sebuah array x, yang menyimpan setiap nilai fib() yang telah dihitung kedalamnya. Maka dengan mengimplementasikan penggunaan array tersebut ke dalam fungsi di atas seperti pada pseudocode di bawah ini akan didapatkan algoritma dengan waktu eksekusi yang linear terhadap n.
31
x[0] = x[1] = 1 Function fib(n) If x[n] belum diinisialisasikan Then x[n] = fib(n-1) + fib(n-2) Return x[n] Teknik menyimpan nilai-nilai fib() yang sudah dihitung ini disebut juga dengan
memoization, ini adalah pendekatan top-down karena problem yang ada dipecah-pecah menjadi beberapa subproblem, yang kemudian dihitung dan hasilnya disimpan ke dalam array. Sedangkan dalam pendekatan bottom-up, nilai dari fungsi fib() yang lebih kecil akan dihitung terlebih dahulu, kemudian nilai fib(n) untuk n yang lebih besar akan dihitung berdasarkan nilai-nilai tersebut, seperti pada pseudocode di bawah ini: (implementasi jenis ini lebih menghemat tempat, karena tidak memerlukan array khusus untuk menyimpan hasil fib(n)) Function fib(n) Var fib0 = 1, fib1 = 1, fib2 For i = 1 to n – 1 do fib2 = fib0 + fib1 fib0 = fib1 fib1 = fib2 End For Return fib1 Dalam kedua contoh implementasi dynamic programming di atas, fib(2) dan fib(3) masing-masing hanya dihitung sekali, dan kemudian digunakan untuk menghitung fib(4) tanpa harus menghitungnya kembali.
32
Dalam skripsi ini, metode dynamic programming ini (dengan pendekatan top-down) akan digunakan untuk menghitung jumlah ply yang dibutuhkan untuk setiap jenis kertas yang akan digunakan untuk membuat Paper Tube dengan ketebalan tertentu, dengan meminimalkan jumlah
ply yang digunakan (sambil mempertahankan keseimbangan jumlah penggunaan masing-masing jenis kertas).
2.12
Dasar Perancangan Perangkat Lunak (Software)
Menurut Pressman (2002, p10), perangkat lunak (software) adalah: (1) perintah (program komputer) yang bila dieksekusi akan memberikan fungsi dan performa seperti yang diinginkan, (2) struktur data yang memungkinkan manipulasi informasi secara proporsional oleh program, dan (3) dukumen yang menggambarkan operasi dan kegunaan program (dokumentasi program). Salah satu cara perancangan perangkat lunak adalah dengan menggunakan model air terjun (waterfall model). Tahap-tahap utama dalam model air terjun ini dapat digambarkan dalam aktivitas dasar pengembangan, adalah sebagai berikut : (Sommerville, 1995)
•
Analisis dan penentuan kebutuhan Tugas, kendala dan tujuan sistem ditentukan melalui konsultasi dengan client calon pengguna sistem. Kemudian ditentukan rincian kebutuhan-kebutuhan sistem yang dapat dipahami baik oleh calon pengguna maupun oleh staf developer sistem.
•
Desain sistem dan perangkat lunak Proses desain sistem terbagi dalam desain perangkat keras dan perangkat lunak, di mana dalam hal ini desain perangkat keras juga menentukan arsitektur perangkat lunak secara keseluruhan. Desain perangkat lunak mewakili fungsi sistem perangkat lunak dalam suatu
33
bentuk (diagram/pseudocode) yang dapat ditransformasikan ke dalam satu/lebih program yang dapat dieksekusi.
•
Implementasi dan pengujian unit Dalam tahap ini, desain perangkat lunak direalisasikan dalam suatu himpunan/unit-unit program. Pengujian unit mencakup kegiatan verifikasi pada setiap unit, agar unit-unit tersebut memenuhi syarat spesifikasinya.
•
Integrasi dan pengujian sistem Unit-unit individual pada program diintegrasikan dan diuji sebagai satu sistem yang lengkap untuk memastikan bahwa kebutuhan perangkat lunak telah terpenuhi. Setelah pengujian, sistem perangkat lunak disampaikan kepada pengguna.
•
Pengoperasian dan pemeliharaan Secara normal, walaupun tidak selalu diperlukan, tahap ini merupakan fase siklus hidup yang terpanjang. Dalam tahap ini, sistem telah terpasang dan sedang digunakan. Pemeliharaan yang dilakukan pada tahap ini meliputi antara lain perbaikan kesalahan (bug) yang tidak ditemukan dalam tahap-tahap sebelumnya, peningkatan implementasi unit-unit sistem dan pelayanan sistem untuk memenuhi kebutuhan baru yang diperlukan.
2.13
Alat Bantu Perancangan
2.13.1 State Transition Diagram (STD)
State transition diagram (STD) menggambarkan jalannya suatu program dalam kondisi tertentu dengan menggunakan diagram. Notasi-notasi yang digunakan antara lain sebagai berikut:
34
Tabel 2.2
Notasi-notasi yang digunakan pada Data Flow Diagram (DFD)
Notasi
Nama
Keterangan Menunjukkan satu atau lebih kegiatan/keadaan/atribut yang
State
Kondisi Aksi
Anak panah berarah
menjelaskan bagian tertentu dari program. Menunjukkan perubahan state yang disebabkan oleh aksi (action) terhadap kondisi (condition) tertentu.
Dalam STD ini kondisi merupakan suatu event pada lingkungan eksternal yang dapat dideteksi oleh sistem, misalnya sinyal, interupsi, atau data. Hal ini akan menyebabkan perubahan dari satu state/aktivitas ke state/aktivitas lainnya. Sedangkan aksi merupakan hal yang dilakukan oleh sistem jika terjadi perubahan state/aktivitas (reaksi terhadap kondisi). Aksi dapat menghasilkan output (misal tampilan pesan pada layar), atau melakukan proses (misal kalkulasi).
2.13.2 Pseudocode
Menurut Pege-Jones (1980, p11), pseudocode adalah suatu bahasa pemrograman yang informal dan sangat fleksibel, yang tidak ditujukan untuk implementasi pada mesin, tetapi hanya digunakan untuk mengatur pemikiran programmer sebelum melakukan coding
Pseudocode dapat merupakan alat bantu alternatif dalam proses perancangan perangkat lunak, disamping alat-alat bantu konvensional seperti diagram. Dalam penulisan pseudocode ini tidak ada standarisasi, seorang programmer dapat menulis pseudocode dalam bentuk/bahasa apa saja yang disukainya dengan dipadukan dengan bahasa pemrograman tertentu. Dalam hal ini
programmer tersebut juga bebas menggunakan teknik dan aturannya sendiri.
35
Namun demikian, untuk mempermudah penerjemahan pseudocode ke bahasa pemrograman yang sebenarnya, Robertson (1993, p6-7) memberikan petunjuk dalam cara penulisan pseudocode sebagai berikut: 1. Pernyataan ditulis dalam bahasa Inggris sederhana (atau bahasa lain yang dimengerti oleh
programmer, misal bahasa Indonesia) 2. Setiap perintah ditulis dalam baris tersendiri. 3. Kata kunci atau indentasi (penulisan yang menjorok ke dalam) digunakan untuk menandai struktur kontrol khusus. 4. Setiap himpunan perintah ditulis dari atas ke bawah, dengan hanya satu awal dan satu akhir program. 5. Sekumpulan pernyataan-pernyataan dapat disatukan, dalam modul-modul yang diberi nama tertentu sesuai dengan tujuannya.
36