Dokumen tersebut membahas teori-teori yang relevan dengan pembuatan program persediaan barang, termasuk metode EOQ dan POQ untuk menghitung kuantitas dan interval pemesanan optimal, serta penjelasan singkat tentang bahasa pemrograman C# yang akan digunakan untuk pembuatan programnya."
1. 4
BAB II
LANDASAN TEORI
Landasan teori ini berisi tentang teori permasalahan serta terori
pemrograman yang menjadi referensi untuk materi pada proposal kali ini. Teori
permasalahan berisi meteri yang mewakili teori pemrograman, yang akan dibuat
program nya dengan menggunakan teori pemrograman.
2.1 Teori Permasalahan
Pada kasus ini metode yang digunakan untuk memecahkan masalah yang
ada adalah metode EOQ dan POQ. Dengan kedua metode tersebut akan
dibandingkan metode mana yang menghasilkan efesiensi dan efektifitas tertinggi
dalam hal produksi dengan biaya seminimal mungkin (Optimum Pendapatan).
Pada teori permasalahan dipakai metode EOQ dan POQ untuk mengetahui
besar kuantitas persediaan yang meminimumkan biaya penyimpanan persediaan
pemesanan serta menentukan interval pemesanan per periode agar dicapai biaya
simpan yang minimum agar tidak terjadi ketimpangan persediaan jumlah barang
atau produk yang dipesan.
2.1.1 Lot Size Economic Order Quantity
EOQ merupakan metode yang digunakan untuk menentukan jumlah
pembelian bahan mentah pada setiap kali pesan dengan biaya yang paling rendah.
Tujuan dari digunakan metode EOQ adalah untuk menentukan jumlah pembelian
bahan mentah pada setiap kali pesan dengan biaya yang paling rendah.
Metode EOQ digunakan agar bisa menentukan berapa jumlah kuantitas
pesanan persediaan dengan biaya seminimum mungkin, EOQ adalah metode yang
termasuk kedalam MRP bersama-sama POQ, EOQ, dan AWW.
Pada metode EOQ berfungsi menentukan kuantitas pesanan persediaan
yang meminimumkan biaya langsung penyimpanan persediaan dan biaya
pemesanan. Rumus EOQ yang yang bisa digunakan adalah :
2. 6
𝐸𝑂𝑄 = √
2.DS
H
…(1)
dimana :
Q = Jumlah satuan per pesanan (Q = EOQ)
D = Kebutuhan bahan baku (Annual Demand)
S = Biaya pesan per pesanan
H = Biaya simpan/unit/hari
2.1.2 Metode Lot Size Period Order Quantity (POQ)
Teknik POQ atau Economic Time Cycle digunakan untuk menentukan
interval waktu order/pemesanan. Jadi pada metode POQ dicari bagaimana periode
pemesanan yang paling baik untuk dapat memenuhi kebutuhan akan suatu produk.
Metode POQ digunakan karena merupakan salah satu metode dalam pengendalia n
persediaan bahan baku yang bertujuan menghemat total biaya persediaan (Total
Inventory Cost) dengan menekankan pada efektifitas frekuensi pemesanan bahan
baku agar lenih terpola. Metode POQ merupakan salah satu pengembangan dari
metode EOQ, yaitu dengan mentransformasi kuantitas pemesanan menjadi
frekuensi pemesanan yang optimal (Divianto, 2011).
Perhitungan metode POQ menggunakan rumus sebagai berikut :
POQ = Q = √
2DS
H[1-
d
p
]
2
... (2)
PCHSCTC
PDH
W
Q
S
Q
D
dimana :
Q = POQ = Interval waktu order
D = Kebutuhan bahan baku
S = Biaya per pesanan
d = daily production rate (tingkat poduksi per hari)
p = daily demand rate ( tingkat permintaan per hari)
3. 7
EOI=
√2xC/Rxh
1
…(3)
dimana :
C = biaya pesan
R = rata-rata
H = biaya simpan
2.2 Teori Pemrograman
Teori pemrograman yang digunakan dalam meyelesaikan kasus ini
adalah pemrograman yang menggunakan aplikasi software Visual Studio dengan
bahasa pemrograman C#.
2.2.2 Bahasa Pemrograman C#
C# adalah sebuah Bahasa pemrograman yang berorientasi
pada objek yang dikembangkan oleh Microsoft dan menjadi Bahasa pemrograman
yang mendukung .NET programming melalui Visual Studio. Bahasa pemrograman
C# dapat digunakan untuk membangun berbagai macam jenis aplikasi, seperti
aplikasi berbasis windows (desktop) dan aplikasi berbasis web serta berbasis web
services.
2.2.3 Kelebihan C#
Beberapa alasan kuat yag mendasari pemilihan Bahasa C# untuk
mengembangkan aplikasi-aplikasi, yaitu :
a. C# benar-benar berorientasi objek
C# adalah Bahasa yangl menggunakan objek oriented. Ini dapat dilihat
dari kemampuan C# dalam pembentukan objek, class, melakukan
encapsulation, inheritance, dan polymorphism dengan mudah.
b. C# sangat sederhana
Bahasa C# bersifat sederhana karena didasarkan pada Bahasa C dan
4. 8
C ++ bahkan Bahasa Java. Tetapi C# lebih sederhana dari Bahasa-
bahasa pemrograman tersebut karena C# dibuat dengan menghilangkan
kelemahan-kelemahan dari Bahasa-bahasa yang mendasarinya.
c. C# merupakan Bahasa pemrograman modern
Bahasa C# memiliki fasilitas exception handling, garbage collection,
extensible data types, secure code. Fasilitas ini yang ada pada Bahasa
pemrograman modern dan C# telah memilikinya.
d. Mampu membuat berbagai aplikasi
Dengan C# kita dapat membuat berbagai macam aplikasi, mulai dari
aplikasi console, form web, pengolahan kata, dan lain-lain.
2.2.4 Struktur Pemrograman C#
Struktur dalam penggunaan bahasa C# dapat dilihat sebagai berikut
(Wahana, 2008):
1. Namespace
Namespace adalah kumpulan dari class-class yang saling berhubungan,
programmer dapat menyatukan class-class yang masih memiliki
hubungan (misalnya: class-class untuk mengakses database) dengan
sebuah nama yang disebut dengan namespace.
2. Class
Class adalah kombinasi dari data (field) dan fungsi (method)
yang bertugas mengolah data sehingga mencapai hasil yang diinginkan.
3. Komentar
Sebagai catatan agar tidak lupa dengan apa perintah yang
akan dilaksanakan oleh program.
4. Metode
Metode adalah cara sebuah class memperlakukan data yang ada
didalamnya.
5. 9
2.2.5 Algoritma dan Flowchart
Algoritma adalah urutan langkah-langkah logis pada penyelesaian masalah
yang disusun secara sistematis. Tiga struktur dasar algoritma, yaitu :
1. Struktur Runtunan
Struktur dasar algoritma dimana instruksi akan dieksekusi secara
berurutan.
2. Struktur Percabangan
Struktur dasar algoritma dimana pernyataan akan dieksekusi apabila
memenuhi atau tidak memnuhi suatu kondisi.
3. Struktur Perulangan
Struktur dasar algoritma dimana instruksi dieksekusi secara berulang
ulang apabila memenuhi atau tidak memenuhi suatu kondisi.
Flowchart adalah bagan yang menggambarkan suatu algoritma untuk
penyelesaian masalah. Flowchart terbagi dua, yaitu flowchart system dan flowchart
program.
Flowchart System
Bagan yang menggambarkan suatu prosedur dan proses suatu file
dalam suatu media menjadi file dalam media lain dalam suatu sistem data.
Flowchart Program
Bagan yang menggambarkan urutan logika dari suatu prosedur
pemecahan masalah.
Simbol umum dalam flowchart program :
1. Simbol Proses
Fungsi : digunakan untuk mewakili suatu proses didalam program.
Gambar 2.1 Simbol Proses
2. Simbol Keputusan
6. 10
Fungsi : digunakan untuk penyeleksian kondisi di dalam program.
Gambar 2.2 Simbol Keputusan
3. Simbol Input / Output
Fungsi : digunakan untuk mewakili input / output data.
Gambar 2.3 Input/Output
4. Simbol Titik Terminasi
Fungsi : digunakan untuk mewakili awal dan akhir suatu program.
Gambar 2.4 Simbol Titik Terminasi
5. Simbol Preparation
Fungsi : digunakan untuk menyiapkan harga awal dari beberapa variable
yang akan digunakan.
Gambar 2.5 Simbol Preparation
6. Simbol Garis Alir
Fungsi : digunakanuntuk menunjukkan arus dari suatu proses.
Gambar 2.6 Simbol Garis Alir
7. 11
7. Simbol On Page Connector
Fungsi : digunakan untuk menghubungkan flowchart yang berbeda dalam
halaman yang sama.
Gambar 2.7 Simbol On Page Connector
8. Simbol off Page Connector
Fungsi : digunakanuntuk menghubungkan flowchart yang berbeda dalam
halaman yang berbeda.
Gambar 2.8 Simbol Off Page Connector
9. Simbol Elemen Update
Fungsi : digunakan untuk menyatakan elemen Update pada perulangan.
Gambar 2.9 Simbol Elemen Update
8. 12
2.2.6 Elemen-elemen C#
Berikut merupakan elemen-elemen dari C#.
1. Tipe Data
Tabel 2.1 Tipe Data Sederhana
Nama Ukuran
Byte 8
Short 16
Int 32
Long 64
Sbyte 8
Unshort 16
Uint 32
Ulong 64
Meskipun banyak tipe data pada C#, tipe-tipe data yang paling sering
digunakan adalah int, double, string, bool dan object. Masing-masing
memiliki kegunaannya sendiri:
int, digunakan untuk menyatakan suatu bilangan bulat, positif maupun
negatif, sebagai contoh jumlah murid dalam satu kelas.
double, digunakan ketika kita perlu menyatakan suatu bilangan pecahan,
misalkan nilai, harga atau berat. Akan tetapi, double adalah data dengan
ketelitian 15-16 digit. Sehingga terkadang tipe data float dengan ketelitian
7 digit lebih disukai untuk contoh contoh tadi, dengan alasan menghemat
memori.
string, digunakan ketika menyatakan sekumpulan karakter, baik itu nama,
kalimat, password ataupun kode. String sesungguhnya merupakan suatu
array dari char.
9. 13
bool, bernilai true atau false. Paling sering digunakan untuk menyatakan
suatu kondisi, misalnya Is Enabled, Is Visible, Sedang Hujan, Sedang Lapar,
dan lain lain.
object, adalah class dasar dari semua tipe data dalam C#. Digunakan untuk
menyatakan tipe data yang tidak pasti.
Tipe-tipe data lainnya adalah:
Mirip dengan int:sbyte, short, long, untuk tipe bertanda, byte, ushort, uint,
u symbol
long untuk tipe yang tak bertanda
Mirip dengan double: float dan decimal
char, untuk menyimpan satu karakter.
2. Identifier
Identifier merupakan suatu karakter huruf yang digunakan
untuk mengidentifikasi suatu penampung nilai yang akan digunakan dalam
program. (Illustrated C#, 2008)
a. Identifier tidak boleh berupa angka atau diawali karakter angka.
Contoh :
Long 2X;
b. Identifier tidak boleh mengandung spasi
c. Identifier tidak boleh menggunakan karakter simbol.
Contoh :
Long $atu;, long du@
d. Identifier tidak boleh menggunakan kata kunci yang terdapat pada C#
Contoh : int break; int return
3. Komentar
Komentar adalah bagian dari syntax yang tidak ikut dieksekusi saat
proses kompilasi.
10. 14
Tiga tipe komentar :
a. Single – line //
b. Delimited /* */
c. Documentation ///
2.2.7 Teori pemrograman pada C#
Teori atau konsep yang akan dijelaskan yang terdapat di dalam Bahasa
pemrograman C# antara lain :
1. Teori Keputusan
2. Teori Perulangan
3. Teori Array
4. Teori OOP (Object Oriented Programming)
2.2.7.1 Teori Konsep Keputusan
Konsep keputusan adalah konsep yang memiliki fungsi untuk menentukan
pemilihan kondisi yang sederhana diantara opsi-opsi pemrosesan. Konsep
Keputusan terdapat dua jenis konsep, yaitu :
a. Statement IF
Kondisi If berguna untuk mengeksekusi pernyataan pada program. Kondisi If
berupa ekpresi Boolean. Jika pernyataan benar, maka pernyataan akan di
eksekusi. Jika pernyataan salah, maka pernyataan akan dilanjutkan/dilewati.
Sebagai contoh :
if(10 < 11) Console.WriteLine("10 is less than 11");
Pada kasus diatas, 10 bukanlah lebih kecil dari 9, adapun pemanggilan ke
WriteLine() tidak akan dimasukkan.
11. 15
Operator yang dapat digunakan pada suatu pernyataan :
Tabel 2.2 Operator Aritmatika
Konsep if terdapat bermacam-macam jenisnya, yaitu :
1. If tunggal, adalah konsep keputusan if yang hanya mengeksekusi satu kondisi
bernilai benar.
Bentuk umum :
If (kondisi (Boolean))
{
Penyataan dieksekusi;
}
2. If majemuk, adalah susunan perintah if yang disusun agar proses pemilihan kondisi
bisa dilakukan dengan beberapa kondisi lainnya. Jika kondisi benar akan
dieksekusi, jika tidak akan dilanjutkan ke perintah if berikutnya.
Bentuk umum :
If (kondisi(Boolean))
{ pernyataan eksekusi benar;
Else if
Pernyataan kondisi kedua benar;
Else
Pernyataan pilihan terakhir
}
3. If bertingkat, adalah bentuk if dimana dalam blok statement if terdapat statement if
yang lain.
Bentuk umum :
If(kondisi utama)
{
If(kondisi khusus)
Pernyataan yang akan dieksekusi kondisi khusus dan bernilai
benar; }
Operator Arti
< Kurang dengan
<= Sama kurang dengan
> Besar dengan
>= Sama besar dengan
= = Sama dengan
!= Tidak sama dengan
12. 16
b. Statement Switch
Statement switch adalah pernyataan yang digunakan untuk menjalankan salah satu
pernyataan dari beberapa kemungkinan pernyataan, berdasarkan nilai ungkapan dan
penyeleksi. Jika suatu pernyataan tidak terdapat dalam pilihan maka akan
dilanjutkan ke default;
Bentuk umum :
Switch (ekspresi)
{
Case nilai 1 :
Statement;
Break;
Case nilai 2 :
Statement;
Break;
Default :
Statement;
Break;
}
2.2.7.2 Teori Perulangan
Perulangan adalah proses yang digunakan dalam pemrograman untuk
mengulang sekumpulan pernyataan yang sama dan dilakukan berulang-ulang
hingga kondisi tertentu tercapai.
Statement looping terdiri atas dua bagian :
1. Kondisi perulangan yaitu ekspresi Boolean yang harus
dipenuhi untuk melaksanakan perulangan.
2. Bagian kedua blok statement yang akan diulang.
Terdapat tiga pernyataan untuk looping yaitu :
a. While statement
Perulangan yang berguna memproses pernyataan berkali-kali, dimana
pengecekan dilakukan terlebih dahulu sebelum dilakukan perulangan.
Bentuk umum :
While (ekspresi)
{
Statement 1;
Statement 2;
Iterasi;
}
13. 17
b. Do – While Statement
Do – while adalah perulangan yang mirip dengan while, yang berbeda
hanya pada pengecekannya dimana do-while akan melakukan sekali
perulangan baru dilakukan pengecekan.
Bentuk umum ;
inisialisasi;
do
{
statement;
iterasi;
}
while(kondisi);
c. For Statement
For statement adalah konsep perulangan dimana telah diketahui terlebih
dahulu jumlah perulangannya.
Bentuk umum :
for(inisialisasi;kondisi;iterasi)
{
statement;
}
2.2.7.3 Array
Array adalah sejumlah nilai yang memiliki tipe yang sama Tiap-tiap array
terletak pada posisi tertentu yang ditunjuj oleh indeks. Array memiliki 2 jenis, yaitu
:
1. Fixed-Value Array
Array yang memiliki nilai yang telah ditetapkan terlebih dahulu,
bentuk umumnya :
Tipe_data[] nama_array={elemen1,elemen2,elemen3,…};
2. Variable-Length Array
Pada array ini nilai array tidak ditentukan terlebih dahulu, tetapi
telah diinputkan datanya oleh programmer.
Tahap pembuatan array yang belum ditetapkan nilainya harus
melalui tahap pendeklarasian, inisialisasi, dan assigning.
14. 18
a. Pendeklarasian Array
Tahap pendeklarasian array dikenal juga sebagai tahap
pengenalan
array kepada computer, seperti variable, tipe, nama dan ukuran.
Contoh : stringnama [] ;
Nama [] = new string [3] ‘
b. Inisialisasi Array
Tahap untuk memasukkan nilai ke masing-masing elemen array.
Contoh : nama_array[indeks] = nilai ;
Jenis Array berdasarkan dimensi :
a. Array berdimensi satu, adalah array yang didalamnya hanya ada
sebuah indeks.
b. Array berdimensi banyak atau multidimensional array adalah array
yang memiliki lebih dari satu indeks.
Jagged Array
Adalah pengecualian array. Jika pada array dimensinya sejenis, maka pada jagged
array memiliki dimensi yang berbeda-beda.
Bentuk umum :
int[][] swap = new int[2][];
swap[0] = new int[] {3,2,1};
swap[1] = new int[] {5,4,3};
2.2.7.4 Object Oriented Programming (OOP)
Paradigma pemrograman yang berorientasi kepada objek. Keseluruhan data
dan fungsi di dalam paradigm dibungkus dalam kelas-kelas. Prinsip-prinsip yang
terdapat pada OOP diantaranya :
- Abstraksi , adalah proses penyeleksian hal-hal yang perlu dan tidak perlu
dari suatu objek. Dengan tujuan memberikan kepada programmer sebuah
bentuk objek yang benar-benar tepat dan efisien dalam menggambarkan apa
yang terjadi di dunia nyata.
- Enkapsulasi, berfungsi memastikan pengguna sebuah objek tidak dapat
mengganti keadaan dalam dari objek dengan cara yang tidak semestinya,
15. 19
karena hanya metode dalam objek tersebut yang dapat mengakses
keadaanya.
- Polimorfisme, adalah kemampuan untuk memperlakukan objek yang
beragam dengan cara yang sama. Artinya, hanya objek yang mendapat izin
terlebih dahulu yang dapat mengakses nya.
- Inheritance adalah teknik yang menyatakan hubungan hierarki berdasarkan
kelas masing-masing yang merupakan konsep dari pewarisan dimana suatu
class diturunkan dari kelas lainnya.