Selamat Datang Di Nuryanti Hikaru-Akira Kokoroga Ki-zutsuku ✿ ◠‿ ◠ (▼).

Saturday, July 5, 2014

Algoritma greedy dan Algoritma Brute force

Algoritma greedy merupakan jenis algoritma yang menggunakan pendekatan penyelesaian masalah dengan mencari nilai maksimum sementara pada setiap langkahnya. Nilai maksimum sementara ini dikenal dengan istilah local maximum. Pada kebanyakan kasus, algoritma greedy tidak akan menghasilkan solusi paling optimal, begitupun algoritma greedy biasanya memberikan solusi yang mendekati nilai optimum dalam waktu yang cukup cepat.
Description: Jalur dari Titik A ke BSebagai contoh dari penyelesaian masalah dengan algoritma greedy, mari kita lihat sebuah masalah klasik yang sering dijumpai dalam kehidupan sehari-hari: mencari jarak terpendek dari peta. Misalkan kita ingin bergerak dari titik A ke titik B, dan kita telah menemukan beberapa jalur dari peta:







Jalur dari Titik A ke B
Dari peta yang ditampilkan di atas, dapat dilihat bahwa terdapat beberapa jalur dari titik A ke titik B. Sistem peta pada gambar secara otomatis telah memilih jalur terpendek (berwarna biru). Kita akan mencoba mencari jalur terpendek juga, dengan menggunakan algoritma greedy.
Langkah pertama yang harus kita lakukan tentunya adalah memilih struktur data yang tepat untuk digunakan dalam merepresentasikan peta. Jika dilihat kembali, sebuah peta seperti pada gambar di atas pada dasarnya hanya menunjukkan titik-titik yang saling berhubungan, dengan jarak tertentu pada masing-masing titik tersebut. Misalnya, peta di atas dapat direpresentasikan dengan titik-titik penghubung seperti berikut:
Description: Graph Sederhana dari Titik A ke B






Graph Sederhana dari Titik A ke B
Dari gambar di atas, kita dapat melihat bagaimana sebuah peta jalur perjalanan dapat direpresentasikan dengan menggunakan graph, spesifiknya Directed Graph (graph berarah). Maka dari itu, untuk menyelesaikan permasalahan jarak terpendek ini kita akan menggunakan struktur data graph untuk merepresentasikan peta. Berikut adalah graph yang akan digunakan:
Description: Graph Berarah dari Titik A ke B






Graph Berarah dari Titik A ke B
Untuk mencari jarak terpendek dari A ke B, sebuah algoritma greedy akan menjalankan langkah-langkah seperti berikut:
  1. Kunjungi satu titik pada graph, dan ambil seluruh titik yang dapat dikunjungi dari titik sekarang.
  2. Cari local maximum ke titik selanjutnya.
  3. Tandai graph sekarang sebagai graph yang telah dikunjungi, dan pindah ke local maximum yang telah ditentukan.
  4. Kembali ke langkah 1 sampai titik tujuan didapatkan.
Jika mengapliikasikan langkah-langkah di atas pada graph A ke B sebelumnya maka kita akan mendapatkan pergerakan seperti berikut:
  1. Description: Langkah Pertama GreedyMulai dari titik awal (A). Ambil seluruh titik yang dapat dikunjungi.




Langkah Pertama Greedy
  1. Local maximum adalah ke C, karena jarak ke C adalah yang paling dekat.
  2. Tandai A sebagai titik yang telah dikunjungi, dan pindah ke C.
  3. Ambil seluruh titik yang dapat dikunjungi dari C.
Description: Langkah Kedua Greedy



Langkah Kedua Greedy
  1. Local maximum adaah ke D, dengan jarak 6.
  2. Tandai C sebagai titik yang telah dikunjungi, dan pindah ke D.
Description: Langkah Ketiga Greedy




Langkah Ketiga Greedy
  1. (Langkah selanjutnya diserahkan kepada pembaca sebagai latihan).


Dengan menggunakan algoritma greedy pada graph di atas, hasil akhir yang akan didapatkan sebagai jarak terpendek adalah A-C-D-E-F-B. Hasi jarak terpendek yang didapatkan ini tidak tepat dengan jarak terpendek yang sebenarnya (A-G-E-F-B). Algoritma greedy memang tidak selamanya memberikan solusi yang optimal, dikarenakan pencarian local maximumpada setiap langkahnya, tanpa memperhatikan solusi secara keseluruhan. Gambar berikut memperlihatkan bagaimana algoritma greedy dapat memberikan solusi yang kurang optimal:
Description: Solusi Kurang Optimal dari Greedy





Solusi Kurang Optimal dari Greedy
Tetapi ingat bahwa untuk kasus umum, kerap kali algoritma greedy memberikan hasil yang cukup baik dengan kompleksitas waktu yang cepat. Hal ini mengakibatkan algoritma greedy sering digunakan untuk menyelesaikan permasalahan kompleks yang memerlukan kecepatan jawaban, bukan solusi optimal, misalnya pada game.
Implementasi Algoritma Greedy
Untuk memperdalam pengertian algoritma greedy, kita akan mengimplementasikan algoritma yang telah dijelaskan pada bagian sebelumnya ke dalam kode program. Seperti biasa, contoh kode program akan diberikan dalam bahasa pemrograman python. Sebagai langkah awal, tentunya kita terlebih dahulu harus merepresentasikan graph. Pada implementasi yang kita lakukan, graph direpresentasikan dengan menggunakan dictionary di dalam dictionary, seperti berikut:
DAG = {'A': {'C': 4, 'G': 9}, 'G': {'E': 6}, 'C': {'D': 6, 'H': 12}, 'D': {'E': 7}, 'H': {'F': 15}, 'E': {'F': 8}, 'F': {'B': 5}}

# Hasil Representasi:
{'A': {'C': 4, 'G': 9},
 'C': {'D': 6, 'H': 12},
 'D': {'E': 7},
 'E': {'F': 8},
 'F': {'B': 5},
 'G': {'E': 6},
 'H': {'F': 15}}
Selanjutnya kita akan membuat fungsi yang mencari jarak terpendek dari graph yang dibangun, dengan menggunakan algoritma greedy. Definisi dari fungsi tersebut sangat sederhana, hanya sebuah fungsi yang mengambil graph, titik awal, dan titik akhir sebagai argumennya:
def shortest_path(graph, source, dest):
Jarak terpendek yang didapatkan akan dibangun langkah demi langkah, seperti pada algoritma greedy yang mengambil nilai local maximum pada setiap langkahnya. Untuk hal ini, tentunya kita akan perlu menyimpan jarak terpendek ke dalam sebuah variabel, dengan source sebagai isi awal variabel tersebut. Jarak terpendek kita simpan ke dalam sebuah list, untuk menyederhanakan proses penambahan nilai.
result = []
result.append(source)
Penelusuran graph sendiri akan kita lakukan melalui result, karena variabel ini merepresentasikan seluruh node yang telah kita kunjungi dari keseluruhan graph. Variabel result pada dasarnya merupakan hasil implementasi dari langkah 3 algoritma (“Tandai graph sekarang sebagai graph yang telah dikunjungi”). Titik awal dari rute tentunya secara otomatis ditandai sebagai node yang telah dikunjungi.
Selanjutnya, kita akan menelusuri graph sampai titik tujuan ditemukan, dengan menggunakan iterasi:
while dest not in result:
    current_node = result[-1]
dengan mengambil node yang sekarang sedang dicari local maximum-nya dari isi terakhir result. Pencarian local maximum sendiri lebih memerlukan pengetahuan python daripada algoritma:
# Cari local maximum
local_max = min(graph[current_node].values())

# Ambil node dari local maximum,
# dan tambahkan ke result
# agar iterasi selanjutnya dimulai
# dari node sekarang.
for node, weight in graph[current_node].items():
    if weight == local_max:
        result.append(node)
Setelah seluruh graph ditelurusi sampai mendapatkan hasil, kita dapat mengembalikan result ke pemanggil fungsi:
return result
Keseluruhan fungsi yang dibangun adalah sebagai berikut:
def shortest_path(graph, source, dest):
    result = []
    result.append(source)

    while dest not in result:
        current_node = result[-1]

        local_max = min(graph[current_node].values())
        for node, weight in graph[current_node].items():
            if weight == local_max:
                result.append(node)

    return result
Perlu diingat bahwa fungsi ini masih banyak memiliki kekurangan, misalnya tidak adanya penanganan kasus jika titik tujuan tidak ditemukan, atau jika terdapat node yang memiliki nilai negatif (bergerak balik). Penanganan hal-hal tersebut tidak dibuat karena fungsi hanya bertujuan untuk mengilustrasikan cara kerja algoritma greedy, bukan untuk digunakan pada aplikasi nyata.
Kesimpulan
Algoritma greedy merupakan algoritma yang besifat heuristik, mencari nilai maksimal sementara dengan harapan akan mendapatkan solusi yang cukup baik. Meskipun tidak selalu mendapatkan solusi terbaik (optimum), algoritma greedy umumnya memiliki kompleksitas waktu yang cukup baik, sehingga algoritma ini sering digunakan untuk kasus yang memerlukan solusi cepat meskipun tidak optimal seperti sistem real-time atau game.
Dari impementasi yang kita lakukan, dapat dilihat bagaimana algoritma greedy memiliki beberapa fungsionalitas dasar, yaitu:
  1. Fungsi untuk melakukan penelusuran masalah.
  2. Fungsi untuk memilih local maximum dari pilihan-pilihan yang ada tiap langkahnya.
  3. Fungsi untuk mengisikan nilai local maximum ke solusi keseluruhan.
  4. Fungsi yang menentukan apakah solusi telah didapatkan.




















Pengertian :
*      Brute force adalah sebuah pendekatan yang sangat jelas(straightforward) untuk memecahkan suatu persoalan, biasanya didasarkan pada problem statement dan definisi konsep yang dilibatkan.
*      Algoritma brute force memecahkan masalah dengan sangat sederhana, langsung dan dengan cara yang jelas .
Cara kerja Algoritma Brute Force
1.       Enumerasi (list) setiap solusi yang mungkin dengan cara yang sistematis.
2.       Evaluasi setiap kemungkinan solusi “satu per satu” dan simpan solusi terbaik yang ditemukan sampai sejauh ini (the best solusi found so far).
3.       Bila pencarian solusi berakhir, umumkan solusi terbaik (the winner)
Karakteristik Algoritma Brute Force
·         Algoritma brute force sebenarnya bukanlah algoritma yang “cerdas” dan mangkus(efisien), karena ia membutuhkan jumlah langkah yang besar/banyak dalam penyelesaiannya dan tentu saja membutuhkan waktu yang berbanding lurus dengan jumlah langkah penyelesaiannya. Kadang-kadang algoritma brute force disebut juga algoritma naif (naïve algorithm).
·         Algoritma brute force seringkali merupakan pilihan yang kurang disukai karena ketidakmangkusannya itu, tapi kalau mencari pola2 dasar, keteraturan, atau trik-trik khusus, biasanya dapat membantu membantu untuk menemukan algoritma yang lebih cerdas dan lebih mangkus lagi.
·         Untuk persoalan2 yang kecil, kesederhanaan brute force lebih diperhitungkan daripada ketidakmangkusannya. Algoritma brute force sering digunakan sebagai basis bila membandingkan beberapa alternatif algoritma yang mangkus.
·         Meskipun brute force bukan merupakan teknik pemecahan masalah yang mangkus, namun teknik brute force dapat diterapkan pada sebagian besar persoalan. Bayangkan..,sangat sulit menemukan masalah yang tidak dapat dipecahkan dengan teknik brute force, tapi ada masalah yang hanya dapat dipecahkan secara brute force.









Algoritma bubble sort mengimplementasikan teknik brute force dengan jelas sekali. Berikut contoh persoalan sorting yang dipecahkan dengan algoritma bubble sort:
procedure BubbleSort (input/output L : arrayOfInt, input n : integer)
{ Mengurutkan array L[1..N] sehingga terurut menaik dengan metode pengurutan bubble sort.
Masukan : Array L yang sudah terdefenisi nilai-nilainya.
Keluaran: Array L yang terurut menaik sedemikian sehingga
L[1] 
£ L[2] £ … £ L[N].
}
Deklarasi
i : integer { variabel untuk jumlah langkah }
k : integer { variabel,untuk pengapungan pada setiap langkah }
temp : integer { variabel untuk pertukaran }
Algoritma:
for i <- 1 to n – 1 do
   for j <- n downto i + 1 do {looping menurun}
      if (L[j] < L[j-1]) then
         {tukar L[j] dengan L[j-1]}
         temp <- L[j]
         L[j] <- L[j-1]
         L[j-1] <- temp
      endif
   endfor
endfor



Makalah ERP ( Software SAP pada PT.PERTAMINA )

BAB I
PENDAHULUAN

1.1 Latar Belakang

Perkembangan teknologi pada era globalisasi seperti sekarang ini khususnya dibidang teknologi informasi terus berkembang dan tidak akan pernah berhenti, sehingga membuat setiap insan yang menggunakannya menjadi ketergantungan akan keuntungan dan kemudahan dari produk yang digunakan. Seperti hal nya sistem informasi, merupakan sebuah produk yang dibangun dan dikembangkan untuk kebutuhan proses bisnis tertentu dengan tampilan yang bersahabat, penyajian data yang cepat dan mudah digunakan sehingga dijadikan sebagai alat untuk mengumpulkan data secara terpusat sampai akhirnya menghasilkan laporan yang dapat digunakan untuk kepentingan manajemen dalam sebuah keputusan.
Dalam pengolahan data dan transaksi bisnis modern dikenal adanya sistem ERP (Enterprise Resource Planning) yang akan mencatat secara terintegrasi segala proses transaksi perusahaan, dari bagaimana proses produksi, penjualan, dan seberapa banyak transaksi yang terjadi, hingga data berapa suplai yang diperlukan oleh perusahaan.
PT.PERTAMINA(PERSERO) sebagai salah satu perusahaan BUMN (Badan Usaha Milik Negara) Indonesia mempunyai tugas untuk memenuhi kebutuhan bahan bakar minyak dan bahan bakar khusus yang akan dikonsumsi oleh masyarakat setiap harinya. Dalam menjalankan bisnisnya PT.PERTAMINA (PERSERO) telah mempunyai dan menggunakan sistem SAP (System Application and Product in data processing) sebagai alat teknologi informasi pendukung bisnisnya.


1.2 Rumusan Masalah

1.      Apa pengertian SAP?
2.      Modul-modul yang ada pada SAP?
3.      Dampak integrasi dari mengimplementasikan SAP?
4.      Apa parameter dari integrasi?
5.      Apa contoh integrasi dengan SAP?
6.      Apa proses bisnis dan fungsi dari SAP?








1.3 Tujuan

1.      Untuk mengetahui pengertian SAP.
2.      Untuk mengetahui modul-modul yang ada pada SAP.
3.      Untuk mengetahui dampak integrasi dari mengimplementasikan SAP.
4.      Untuk mengetahui parameter dari integrasi.
5.      Untuk mengetahui contoh integrasi dengan SAP.
6.      Untuk mengetahui proses bisnis dan fungsi dari SAP.





































BAB II
ISI

2.1 Pengertian SAP

SAP (System Application and Product in data processing ) adalah suatu software yang dikembangkan untuk mendukung suatu organisasi dalam menjalankan kegiatan operasionalnya secara lebih efisien dan efektif. SAP merupakan software Enterprise Resources Planning (ERP), yaitu suatu tools IT dan manajemen untuk membantu perusahaan merencanakan dan melakukan berbagai aktivitas sehari-hari.
SAP terdiri dari sejumlah modul aplikasi yang mempunyai kemampuan mendukung semua transaksi yang perlu dilakukan suatu perusahaan dan tiap aplikasi bekerja secara berkaitan satu dengan yang lainnya. Semua modul aplikasi di SAP dapat bekerja secara terintegrasi/terhubung yang satu dengan lainnya.
SAP merupakan software yang banyak dipakai di perusahaan besar untuk mendukung integrasi proses bisnis. Lima tahun terakhir, di perusahaan negara-negara Asia, termasuk Indonesia, sedang gencar-gencarnya mengimplementasikannya. Software buatan Jerman ini telah lama dipakai di perusahaan besar Eropa dan Amerika.
SAP juga menyiapkan paket khusus untuk perusahaan level menengah ke bawah. Dengan penambahan area supporting SAP, akan menambah pangsa pasar SAP dan juga membuka peluang tenaga kerja bagi dunia IT.
Di Indonesia, banyak perusahaan besar yang telah mengimplementasikan SAP, misalnya : Pertamina, Astra International, Toyota Astra Motor, Toyota Motor Manufacturing Indonesia, Bentoel Prima, United Tractor, Daihatsu Motor, Aqua, Telkomsel, Auto 2000, Blue Bird dan masih banyak lagi perusahaan lainnya.


2.2  Modul – Modul di SAP
SAP terdiri dari modul-modul aplikasi sebagai berikut :
*      SD-Sales & Distribution
Membantu meningkatkan efisiensi kegiatan operasional berkaitan dengan proses pengelolaan customer order (proses sales, shipping dan billing).

*      MM-Materials Management
Membantu menjalankan proses pembelian (procurement) dan pengelolaan inventory.

*      PP-Production Planning
Membantu proses perencanaan dan kontrol dari pada kegiatan produksi (manufacturing) suatu perusahaan.

*      QM-Quality Management
Membantu mengecek kualitas proses-proses di keseluruhan rantai logistik

*      PM-Plant Maintenance
Suatu solusi untuk proses administrasi dan perbaikan sistem secara teknis.


*      HR-Human Resources Management
Mengintegrasikan proses-proses HR mulai dari aplikasi pendaftaran, administrasi pegawai, management waktu, pembiayaan untuk perjalanan, sampai ke proses pembayaran gaji pegawai.

*      FI-Financial Accounting
Mencakup standard accounting cash management (treasury), general ledger dan konsolidasi untuk tujuan financial reporting.

*      CO-Controlling
Mencakup cost accounting, mulai dari cost center accounting, cost element accounting, dan analisa profitabilitas.

*      AM-Asset Management
Membantu pengelolaan atas keseluruhan fixed assets, meliputi proses asset accounting tradisional dan technical assets management, sampai ke investment controlling

*      PS-Project System
Mengintegrasikan keseluruhan proses perencanaan project, pengerjaan dan kontrol


2.3  Dampak dari Mengimplementasikan SAP
Dengan mengimplementasikan SAP di suatu organisasi akan mengintegrasikan sistem yang berakibat :
*    Perubahan yang dilakukan pada satu modul secara otomatis akan mengupdate modul yang lainnya bila informasi yang dirubah berkaitan dengan modul tersebut. Data akan terupdate secara langsung begitu user menginput data ke dalam sistem. Hal ini yang dikenal dengan istilah “real-time processing”.
*    Integrasi secara sistem bisa terjadi dengan syarat bahwa seluruh perusahaan harus menggunakan satu sumber data yang sama, baik untuk data customer, data product maupun data vendor.
*    Transparansi data artinya semua user yang mempunyai akses ke sistem akan dapat melihat semua informasi yang paling up-to-date setiap saat diperlukan walaupun informasi tersebut di-input oleh user lain.  


2.4  Parameter dari Integrasi

*    Suatu karakteristik utama yang menandakan suksesnya integrasi informasi dalam suatu perusahaan adalah bahwa segala informasi hanya perlu di input satu kali saja pada sistem.

*    Sistem SAP memungkinkan hal ini terjadi dengan mentransfer/mengcopy informasi yang sudah di-input pada satu dokumen ke dokumen lainnya sehingga mengurangi pekerjaan input data dan sekaligus mengupdate  semua dokumen yang berkaitan dengan rangkaian proses tertentu.  

2.5  Contoh Integrasi dengan SAP

Tipe data yang terdapat dalam sistem SAP:
1.      Data Transaksi
*      Data yang digunakan untuk melakukan transaksi di SAP, contoh: membuat purchase order
*      Setiap transaksi akan tersimpan di dalam satu dokumen tertentu

2.      Master Data
*      Data utama yang harus dibuat dengan benar supaya transaksi bisa dilakukan, contoh: material master, vendor master, customer master
*      Master data tersimpan secara terpusat dan digunakan oleh seluruh modul aplikasi dalam sistem SAP  


2.6  Proses Bisnis dan Fungsi dari SAP

Dalam suatu organisasi, misalnya perusahaan manufacturing, ini berarti integrasi keseluruhan proses supply chain – mulai dari supplier sampai dengan customer – dalam suatu rangkaian proses yang saling berbagi informasi.
Proses-proses bisnis yang berlaku pada suatu organisasi manufacturing meliputi  :
*      Rangkaian Proses end-to-end.
*      Proses Procurement to Payment
*      Proses Order to Cash
*      Proses Inventory/Warehouse Management
*      Proses Plan & Manage Enterprise (FI/CO)  







BAB III
PENUTUP

3.1 Kesimpulan

PT.PERTAMINA(PERSERO) sebagai salah satu perusahaan BUMN (Badan Usaha Milik Negara) Indonesia mempunyai tugas untuk memenuhi kebutuhan bahan bakar minyak dan bahan bakar khusus yang akan dikonsumsi oleh masyarakat setiap harinya. Dalam menjalankan bisnisnya PT.PERTAMINA (PERSERO) telah mempunyai dan menggunakan sistem SAP (System Application and Product in data processing) sebagai alat teknologi informasi pendukung bisnisnya.
SAP (System Application and Product in data processing ) adalah suatu software yang dikembangkan untuk mendukung suatu organisasi dalam menjalankan kegiatan operasionalnya secara lebih efisien dan efektif. SAP merupakan software Enterprise Resources Planning (ERP), yaitu suatu tools IT dan manajemen untuk membantu perusahaan merencanakan dan melakukan berbagai aktivitas sehari-hari.






















DAFTAR PUSTAKA




By :
Free Blog Templates