Rabu, 22 November 2017
Analisa Algoritma dari Bahasa Pemrograman
Jaka Prima Maulana
kita dapat melakukan analisa algoritma dengan 2 stages yang berbeda.
1. dengan selesaikan sebelum implementasi dan
2. setelah implementasi
Selengkapnya..
Artikel Berepisode
Selamat datang pengunjung www.primasaja.com,
- Pengenalan Struktur Data dan Algoritma
kita telah menyelesaikan algoritma pada section Contoh Pembuatan Pseudocode. tetapi ada satu hal yang belum kita selesaikan, yaitu analisa dari algoritma kita. pertanyaan valid pada skenario, mengapa kita membutuhkan analisa pada algoritma? kita telah menulis implementasi, kita tidak yakit tentang bagaimana banyak resources kode yang kita tulis akan membantu. ketika kita berkata resource, kita mengartikan keduanya time dan storage resource utilized dengan running aplikasi. kita menulis algoritma untuk bekerja dengan length berapapun dari input. dalam tugas untuk mengerti bagaimana tingkah laku algoritma ketika input bertumbuh besar dan berapa banyak resource yang harus dilayani, kita biasanya mengukur effisiensi dari algoritma dengan merelasikan input length ke number of steps (time complexity) atau storage (space complexity). ini sangat penting untuk dianalisa dari algoritma dalam tugas menemukan algoritma yang paling efektif untuk memperbaikinya.
kita dapat melakukan analisa algoritma dengan 2 stages yang berbeda.
1. dengan selesaikan sebelum implementasi dan
2. setelah implementasi
analisa yang kita lakukan sebelum implementasi kita diketahui sebagai teori analisa/theoretical analysis dan kita asumsikan faktor yang lain seperti kekuatan processing dan space akan menjadi constant.
analisa setelah implementasi disebut sebagai empirical analysis, kita bisa mendapatkan solid statistic dari sistem regarding waktu dan layanan space.
untuk algoritma kita untuk menempatkan buku dan menemukan buku kita dari pembelian item, kita dapat perform analisa yang sama. sekarang, kita akan konsentrasi tentang time complexity dari pada space complexity. kita akan bahas space complexity pada pembahasan selanjutnya saja.
Selasa, 21 November 2017
Contoh Pembuatan Pseudocode
Jaka Prima Maulana
program komputer ditulis untuk dibaca mesin. kita harus menulis mereka pada format tertentu dimana akan di compiled untuk mesin agar mengerti. tetapi sering penulisan kode tidak mudah untuk diikuti manusia kecuali programmers. dalam tugas untuk menunjukkan kode dalam cara informal jadi manusia dapat juga mengerti, kita siapkan pseudocode. meskipun ini bukan code bahasa pemrograman yang sesungguhnya, preudocode memiliki kesamaan struktur percakapan dengan bahasa pemrograman. sejak pseudocode tidak berjalan seperti program nyata, tidak ada cara standard untuk menulis pseudocode. kita dapat mengikuti cara kita menulis pseudocode sendiri.
ini adalah pseudocode dari algoritma kita untuk mencari buku:
Algorithm TemukanBuku(L, nama_buku)
Input: list dari buku L & nama dari buku nama_buku yang dicari
output: false jika tidak ditemukan atau posisidari buku yang dicari
if L.size = 0 return null
found := false
for each item in L, do
if item = book_name, then
found := posisi item
return found
sekarang, mari kita terjemahkan pseudocode yang kita tulis. kita punya list dari buku dan nama yang kita cari. kita kana menjalankan foreach loop untuk perulangan setiap buku dan cocok dengan buku nama yang kita cari. jika tertemu, akan mengembalikan posisi buku yang yang kita temukan, false. jadi kita kaan menulis pseudocode untuk menemukan nama buku dari list buku. tetapi bagaimana dengan buku yang lainnya? bagaimana kita melanjutkan pencarian sampai semua buku ditemukan dan ditempatkan dalam rak yang benar?
Algorithm menempatkanbuku
input: list dari ordered buku OL, list dari received buku L
ouput: tidak ada.
for each nama_buku in OL, do
if temukanbuku(L, nama_buku), then
remove the book from the list L
place it to rakbuku
sekarang kita selesai membuat pseudocode untuk algoritma kita untuk menyelesaikan masalah pengorganisasian buku. disini kita akan melewati tugas list buku dan menemukan buku dalam section yang di jalankan. jika buku ditemukan, kita akan membuang itu dari list dan menaruhnya pada rak yang tepat.
pendekatan simple ditulis dengan pseudocode dapat membantu kita memperbaiki masalah yang lebih kompleks dalam struktur manner. sejak pseudocode bahasa pemrogragman independent dan platform, algoritma mengekspresikan pseudocode dari waktu ke waktu.
Selengkapnya..
Artikel Berepisode
Selamat datang pengunjung www.primasaja.com,
- Pengenalan Struktur Data dan Algoritma
- Pentingnya Struktur Data dan Algoritma
- Penjelasan Tipe Data Abstrak atau Abstract Data Type
- Definisi dan Perbedaan Struktur Data Array Linked List Doubly Linked List..
- Memperbaiki Masalah dengan Pendekatan Algoritma
- Contoh Pembuatan Pseudocode
- Mengubah Pseudocode ke Bahasa Pemrograman Sebenarnya
program komputer ditulis untuk dibaca mesin. kita harus menulis mereka pada format tertentu dimana akan di compiled untuk mesin agar mengerti. tetapi sering penulisan kode tidak mudah untuk diikuti manusia kecuali programmers. dalam tugas untuk menunjukkan kode dalam cara informal jadi manusia dapat juga mengerti, kita siapkan pseudocode. meskipun ini bukan code bahasa pemrograman yang sesungguhnya, preudocode memiliki kesamaan struktur percakapan dengan bahasa pemrograman. sejak pseudocode tidak berjalan seperti program nyata, tidak ada cara standard untuk menulis pseudocode. kita dapat mengikuti cara kita menulis pseudocode sendiri.
ini adalah pseudocode dari algoritma kita untuk mencari buku:
Algorithm TemukanBuku(L, nama_buku)
Input: list dari buku L & nama dari buku nama_buku yang dicari
output: false jika tidak ditemukan atau posisidari buku yang dicari
if L.size = 0 return null
found := false
for each item in L, do
if item = book_name, then
found := posisi item
return found
sekarang, mari kita terjemahkan pseudocode yang kita tulis. kita punya list dari buku dan nama yang kita cari. kita kana menjalankan foreach loop untuk perulangan setiap buku dan cocok dengan buku nama yang kita cari. jika tertemu, akan mengembalikan posisi buku yang yang kita temukan, false. jadi kita kaan menulis pseudocode untuk menemukan nama buku dari list buku. tetapi bagaimana dengan buku yang lainnya? bagaimana kita melanjutkan pencarian sampai semua buku ditemukan dan ditempatkan dalam rak yang benar?
Algorithm menempatkanbuku
input: list dari ordered buku OL, list dari received buku L
ouput: tidak ada.
for each nama_buku in OL, do
if temukanbuku(L, nama_buku), then
remove the book from the list L
place it to rakbuku
sekarang kita selesai membuat pseudocode untuk algoritma kita untuk menyelesaikan masalah pengorganisasian buku. disini kita akan melewati tugas list buku dan menemukan buku dalam section yang di jalankan. jika buku ditemukan, kita akan membuang itu dari list dan menaruhnya pada rak yang tepat.
pendekatan simple ditulis dengan pseudocode dapat membantu kita memperbaiki masalah yang lebih kompleks dalam struktur manner. sejak pseudocode bahasa pemrogragman independent dan platform, algoritma mengekspresikan pseudocode dari waktu ke waktu.
Mengubah Pseudocode ke Bahasa Pemrograman Sebenarnya
Jaka Prima Maulana
kita akan mengkonversikan pseudocode kita ke kode nyata PHP 7 yang di tunjukan seperti berikut:
function temukanbuku(Array $bookLIst, String $nama_buku){
$found = False;
foreach($bookList as $index => $book){
if($book === $nama_buku){
$found = $index;
break;
}
return $found;
}
function tempatkanBuku(Array $orderedBooks, Array &$bookList){
foreach($orderedBooks, as $book){
$bookFound = findABook($bookList, $book);
if($bookFound !== False){
array_splice($bookList, $bookFound, 1);
}
}
}
$bookList = ['PHP', 'MYSQL', 'PGSQL', 'Oracle', 'Java'];
$orderedBook = ['MySQL', 'PGSQL', 'Java'];
tempatkanBuku($orderedBook, $bookList);
echo implode(",", $bookList);
mari kita memahami apa yang terjadi pada preciding code. pertama kita mendefinisikan fungsi baru, temukanBuku di awal code. function mendefinisikan 2 parameter. pertama Array $bookList dan yang lainnya adala String $bookName. pada awal function kita meng inialisasikan $found ke FALSE, dimana berarti tidak ada yang di temukan. foreach digunakan untuk perulangan untuk melewati semua list book array $bookList dan untuk setiap book, yang cocok dengan layanan nama buku $nama_buku. jika nama buku yang kita cari cocok dengan list $bookList, kita akan memberikan tugas index (dimana kita menemukan kecocokan) ke $found variable. sejak kita menemukannya, tidak ada point unuk melanjutkan loop. jadi kita menggunakan break untuk keluar dari loop. saat setelah keluar dari loop kita mengembalikan $found variable. jika buku ditemukan $found akan mengembalikan integer value lebih dari 0, else itu akan return false.
pada function tempatkanBuku dilakukan perulangan pada $orderedBooks. kita lakukan perulangan pada ordered booklist dan searching setiap buku dalam list menggunakan temukanBuku function. jika buku ditemukan dalam ordered list ($bookFOund !== FALSE), kita akan mengambilnya dari bookList menggunakan array_splice() function jika di PHP:
Selengkapnya..
Artikel Berepisode
Selamat datang pengunjung www.primasaja.com,
- Pengenalan Struktur Data dan Algoritma
kita akan mengkonversikan pseudocode kita ke kode nyata PHP 7 yang di tunjukan seperti berikut:
function temukanbuku(Array $bookLIst, String $nama_buku){
$found = False;
foreach($bookList as $index => $book){
if($book === $nama_buku){
$found = $index;
break;
}
return $found;
}
function tempatkanBuku(Array $orderedBooks, Array &$bookList){
foreach($orderedBooks, as $book){
$bookFound = findABook($bookList, $book);
if($bookFound !== False){
array_splice($bookList, $bookFound, 1);
}
}
}
$bookList = ['PHP', 'MYSQL', 'PGSQL', 'Oracle', 'Java'];
$orderedBook = ['MySQL', 'PGSQL', 'Java'];
tempatkanBuku($orderedBook, $bookList);
echo implode(",", $bookList);
mari kita memahami apa yang terjadi pada preciding code. pertama kita mendefinisikan fungsi baru, temukanBuku di awal code. function mendefinisikan 2 parameter. pertama Array $bookList dan yang lainnya adala String $bookName. pada awal function kita meng inialisasikan $found ke FALSE, dimana berarti tidak ada yang di temukan. foreach digunakan untuk perulangan untuk melewati semua list book array $bookList dan untuk setiap book, yang cocok dengan layanan nama buku $nama_buku. jika nama buku yang kita cari cocok dengan list $bookList, kita akan memberikan tugas index (dimana kita menemukan kecocokan) ke $found variable. sejak kita menemukannya, tidak ada point unuk melanjutkan loop. jadi kita menggunakan break untuk keluar dari loop. saat setelah keluar dari loop kita mengembalikan $found variable. jika buku ditemukan $found akan mengembalikan integer value lebih dari 0, else itu akan return false.
pada function tempatkanBuku dilakukan perulangan pada $orderedBooks. kita lakukan perulangan pada ordered booklist dan searching setiap buku dalam list menggunakan temukanBuku function. jika buku ditemukan dalam ordered list ($bookFOund !== FALSE), kita akan mengambilnya dari bookList menggunakan array_splice() function jika di PHP:
Memperbaiki Masalah dengan Pendekatan Algoritma
Jaka Prima Maulana
sejauh ini kita telah diskusikan perbedaan tipe dari struktur data dan penggunaan mereka masing-masing. tetapi, satu hal yang kita harus ingat adalah hanya menaruh data dalam struktur tujuan mungkin tidak akan memperbaiki masalah kita. kita membutuhkan solusi dari masalah kita dengan bantuan struktur data atau dengan kata lain kita akan memperbaiki masalah dengan struktur data. kita membutuhkan algoritma untuk memperbaiki masalah.
algoritma adalah step step proses dimana mendefinisikan set dari instruksi yang akan di eksekusi dalam order tertentu untuk mendapatkan output yang diinginkan. umumnya, algoritma tidak terbatas untuk bahasa pemrograman atau platform. mereka bahasa pemrograman yang independent.algoritma harus memiliki karakter seperti berikut:
Input: algoritma harus didefinikan input. ini bisa 0 atau lebih input
output: algoritma harus memiliki definisi output. ini harus cocok dengan keinginan output.
precision/ketelitian: semua step harus didefinisikan dengan cermat/teliti.
finiteness: algoritma harus stop setelah beberapa nomor step tertentu. ini harus berjalan tidak indefinitely.
unambiguous: algoritma harus jelas dan harus tidak ada ambigu didalam step stepnya.
independent: algoritma harus independent dari bahasa pemrograman/platform apapun.
mari kita membuat algoritma. tetapi untuk tugas melakukannya, kita membutuhkan contoh pokok permasalahan. mari kita membuta asumsi kita memiliki box berisi buku dari perpustakaan. disana terdapat 1000 buku dan mereka tidak terkategori/sorted dalam tugas tertentu. kita membutuhkan buku per list dan menyimpannya dalam rak buku. bagaimana kita menemukan mereka dalam tumpukan/pile dari buku?
sekaran kita dapat memecahkan masalah dengan berbagai cara. setiap cara memiliki pendekatan yang berbeda untuk menemukan solusi dari masalah. kita dalam menyebut ini sebagai pendekatan algoritma. untuk membuat diskusi ini singkat dan precise/tepat, kita kana hanya memikirkan 2 pendekatan untuk memperbaiki masalah. kita ketahui beberapa cara lain mungkin tapi untuk kesimpelan mari kita tetapkan diskusi ini hanya pada satu algoritma.
kita akan menyimpan buku ini dengan baris simple sehingga kita dapat melihat nama buku. sekarang kita ambil nama buku dari list dan cari dari satu sampai akhir dari baris sampai kita menemukan bukunya. dasarnya, kita kana mengikuti urutan/sequential search untuk setiap buku. kita akan mengulan step ini sampai kita menaruh semua buku dalam rak buku.
Selengkapnya..
Artikel Berepisode
Selamat datang pengunjung www.primasaja.com,- Pengenalan Struktur Data dan Algoritma
sejauh ini kita telah diskusikan perbedaan tipe dari struktur data dan penggunaan mereka masing-masing. tetapi, satu hal yang kita harus ingat adalah hanya menaruh data dalam struktur tujuan mungkin tidak akan memperbaiki masalah kita. kita membutuhkan solusi dari masalah kita dengan bantuan struktur data atau dengan kata lain kita akan memperbaiki masalah dengan struktur data. kita membutuhkan algoritma untuk memperbaiki masalah.
algoritma adalah step step proses dimana mendefinisikan set dari instruksi yang akan di eksekusi dalam order tertentu untuk mendapatkan output yang diinginkan. umumnya, algoritma tidak terbatas untuk bahasa pemrograman atau platform. mereka bahasa pemrograman yang independent.algoritma harus memiliki karakter seperti berikut:
Input: algoritma harus didefinikan input. ini bisa 0 atau lebih input
output: algoritma harus memiliki definisi output. ini harus cocok dengan keinginan output.
precision/ketelitian: semua step harus didefinisikan dengan cermat/teliti.
finiteness: algoritma harus stop setelah beberapa nomor step tertentu. ini harus berjalan tidak indefinitely.
unambiguous: algoritma harus jelas dan harus tidak ada ambigu didalam step stepnya.
independent: algoritma harus independent dari bahasa pemrograman/platform apapun.
mari kita membuat algoritma. tetapi untuk tugas melakukannya, kita membutuhkan contoh pokok permasalahan. mari kita membuta asumsi kita memiliki box berisi buku dari perpustakaan. disana terdapat 1000 buku dan mereka tidak terkategori/sorted dalam tugas tertentu. kita membutuhkan buku per list dan menyimpannya dalam rak buku. bagaimana kita menemukan mereka dalam tumpukan/pile dari buku?
sekaran kita dapat memecahkan masalah dengan berbagai cara. setiap cara memiliki pendekatan yang berbeda untuk menemukan solusi dari masalah. kita dalam menyebut ini sebagai pendekatan algoritma. untuk membuat diskusi ini singkat dan precise/tepat, kita kana hanya memikirkan 2 pendekatan untuk memperbaiki masalah. kita ketahui beberapa cara lain mungkin tapi untuk kesimpelan mari kita tetapkan diskusi ini hanya pada satu algoritma.
kita akan menyimpan buku ini dengan baris simple sehingga kita dapat melihat nama buku. sekarang kita ambil nama buku dari list dan cari dari satu sampai akhir dari baris sampai kita menemukan bukunya. dasarnya, kita kana mengikuti urutan/sequential search untuk setiap buku. kita akan mengulan step ini sampai kita menaruh semua buku dalam rak buku.
Rabu, 15 November 2017
Pengenalan Software Requirements
Jaka Prima Maulana
Selengkapnya..
Artikel Berepisode
- Pengenalan
www.primasaja.com - pada artikel kali ini akan dibahas mengenai pengenalan software requirement area pengetahuan software requirement berkonsentrasi pada elisitasi, analisis, spesifikasi dan validasi software requirement sebagaimana sebaik-baiknya seperti kebutuhan manajemen selama/during semua lifecycle produk software.
pengetahuan yang luas dari praktisi penelitian dan industri proyek software yang mudah dikritis ketika requirement berelasi dengan aktifitasnya berperform buruk. software requirement mengekspresikan kebutuhan dan mendesak/constraint tempat pada produk software yang berkonstribusi ke solusi beberapa masalah didunia
istilah requirement engineering adalah secara luas digunakan dalam lingkungan untuk meledakkan sistematik menghandle kebutuhan. untuk alasan konsistensi istilah engineering tidak akan digunakan dalam knowledge area ini tidak hanya untuk software engineering untuk alasan yang sama requirement engineer istilah yang muncul dalam beberapa literature tidak akan digunakan juga. kecuali istilah software engineer atau dalam spesifik kemungkinan requirement spesialist akan digunakan akhir/latter dimana perputaran dalam pertanyaan biasanya dilakukan dengan individual lain daripada software engineer.
ini tidak mudah bagaimanapun software engineer tidak bisa menampilkan fungsi. resiko yang melekat pada pengusulan kerusakan proses waterfall-like mungkin disimpulkan. untuk bertahan dalam topik 2, requirement proses, didesain untuk melayani level atas overview dari requirement process dengan setting out resources dan paksaan dari operasi proses yang mana bertindak untuk mengkonfigurasinya. alternatif penguraian/decomposition dapat menggunakan product based structure (system requirement, software requirement, prototype, use case, dst) process-bases merincikan gambaran dari fakta requirement process, jika ini berhasil, harus memikirkan proses perkembangan yang kompleks tightly coupled (baik sequential maupun concurent) daripada sebagai mempunyai ciri ciri sendiri/discrete, satu dari aktifitas yang berjalan pada permulaan/outset dari software development project.
area pengetahuan software requirement berelasi dekat dengan software design, software testing, software maintenace, software configuration management, software engineering management, software engineering process, software engineering models dan method, dan software quality knowledge area yang akan dibahas pada artikel artikel selanjutnya
Minggu, 12 November 2017
Tutorial Nginx Setting FastCGI Proxy
Jaka Prima Maulana
dalam nginx dapat digunakan untuk merutekan request ke FastCGI server dimana menjalankan aplikasi dibangun dengan variasi framework dan bahasa pemrograman seperti PHP.
basic paling dasar konfigurasi nginx untuk bekerja dnegan FastCGI server termasuk menggunakan fastcgi_pass directive sebagai ganti/instead dari proxy_pass directive, dan fastcgi_param directive untuk set parameter yang di pass ke FastCGI server. seharunya FastCGI server terakses pada localhost:9000. mengambil konfigurasi proxy dari dari sesi sebelumnya di artikel tutorial setting simple proxy, tempatkan proxy pass directive dengan fastcgi_pass directive dan ubah parameter ke localhost:9000. dalam PHP, script_filename paramter digunakan untuk menentukan script name, dan query_string paramter digunakan untuk pass request parameter. hasil dari konfigurasi akan menjadi seperti ini:
ini akan set server yang akan merutekan semua request kecuali request untuk static gambar ke operasi proxied server pada localhost:9000 melewati FastCGI protocol.
Selengkapnya..
Artikel Berepisode
Selamat datang pengunjung www.primasaja.com,
dalam nginx dapat digunakan untuk merutekan request ke FastCGI server dimana menjalankan aplikasi dibangun dengan variasi framework dan bahasa pemrograman seperti PHP.
basic paling dasar konfigurasi nginx untuk bekerja dnegan FastCGI server termasuk menggunakan fastcgi_pass directive sebagai ganti/instead dari proxy_pass directive, dan fastcgi_param directive untuk set parameter yang di pass ke FastCGI server. seharunya FastCGI server terakses pada localhost:9000. mengambil konfigurasi proxy dari dari sesi sebelumnya di artikel tutorial setting simple proxy, tempatkan proxy pass directive dengan fastcgi_pass directive dan ubah parameter ke localhost:9000. dalam PHP, script_filename paramter digunakan untuk menentukan script name, dan query_string paramter digunakan untuk pass request parameter. hasil dari konfigurasi akan menjadi seperti ini:
server { location /{ fastcgi_pass localhost:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; } location ~ \.(gif|png|jpg){ root /usr/serverData/www/website1/gambar; } } server { listen 9000; root /usr/serverData/www/website1; }
ini akan set server yang akan merutekan semua request kecuali request untuk static gambar ke operasi proxied server pada localhost:9000 melewati FastCGI protocol.
NGINX Tutorial Setting Simple Proxy Server
Jaka Prima Maulana
satu yang paling digunakan dalam nginx adalah setting proxy server, dimana berarti server menerima request, passes mereka ke proxied servers, memberikan response dari mereka dan mengirimkan mereka ke clients.
kita akan menkonfigurasi basic proxy server, dimana melayani request gambar dengan file dari local directory dan mengirimkan semua request lain ke proxied server. dalam contoh ini, kedua servers akan terdefinisi dalam contoh single nginx.
pertama definisikan proxied server dengan menambahkan 1 server block ke konfigurasi nginx file dengan kode sebagai berikut:
server {
listen 9999;
root /usr/serverData/www/website1;
}
ini akan menjadi simple server yang listen pada port 9999 (sebelumnya, listen directive belum dispesifikasikan sejak standard portnya adalah 80 digunakan) dan map semua request ke /usr/serverData/www/website1 pada local file system. buat direktori dan taro index.html file didalamnya.
catatan root directive ditaruh didalam server context. seperti root directive itu digunakan ketika location block dipilih untuk melayani request tidak include root directive diri sendiri.
selanjutnya, gunakan server configuration dari tutorial sebelumnya di nginx tutorial melayani konten static dan memodifikasinya untuk membuat proxy server configuration.
langkah pertama yaitu pada location block, taru proxy_pass directive dengan protocol, name, dan port dari proxied server yang dispesifikasi pada parameter ( pada kasus ini adalah http://localhost:9999 ):
server {
location /{
proxy_pass http://localhost:9999;
}
location /gambar/{
root /usr/serverData/www;
}
}
kita akan modifikasi location blok ke dua tersebut, dimana map request saat ini dengan awalan /gambar/ ke file dibawah folder /usr/serverData/www/website1/gambar, untuk membuat request ini cocok digambarkan dengan typical file ekstensi. modifikasi location block seperti ini
server {
location /{
proxy_pass http://localhost:9999;
}
location ~ \.(gif|jpg|png){
root /usr/serverData/www/website1/gambar;
}
}
parameternya yaitu sebuah regular expression yang mencocokkan semua URI diakhiri dengan .gif, .jpg, atau .png. regular expression harus didahului dengan lambang ~. sesuai dengan request yang akan di mapped ke /usr/serverData/www/website1/gambar direktori.
ketikan nginx memilih lokasi block untuk melayani request. pertama kali, ia akan cek lokasi directives yang spesifikasi prefixes/awalan, ingat bahwa location dengan prefix paling panjang, dan cek regular expression. jika ada kecocokan dengan regular expression, nginx akan mengambil location atau jika tidak/otherwise akan mengambil satu yang diingat sebelumnya.
hasil dari konfigurasi proxy server akan terlihat seperti ini:
http {
server {
location /{
proxy_pass http://localhost:9999;
}
location ~ \.(gif|png|jpg){
root /usr/serverData/www/website1/gambar;
}
}
server {
listen 9999;
root /usr/serverData/www/website1;
}
}
Selengkapnya..
Artikel Berepisode
Selamat datang pengunjung www.primasaja.com,
satu yang paling digunakan dalam nginx adalah setting proxy server, dimana berarti server menerima request, passes mereka ke proxied servers, memberikan response dari mereka dan mengirimkan mereka ke clients.
kita akan menkonfigurasi basic proxy server, dimana melayani request gambar dengan file dari local directory dan mengirimkan semua request lain ke proxied server. dalam contoh ini, kedua servers akan terdefinisi dalam contoh single nginx.
pertama definisikan proxied server dengan menambahkan 1 server block ke konfigurasi nginx file dengan kode sebagai berikut:
server {
listen 9999;
root /usr/serverData/www/website1;
}
ini akan menjadi simple server yang listen pada port 9999 (sebelumnya, listen directive belum dispesifikasikan sejak standard portnya adalah 80 digunakan) dan map semua request ke /usr/serverData/www/website1 pada local file system. buat direktori dan taro index.html file didalamnya.
catatan root directive ditaruh didalam server context. seperti root directive itu digunakan ketika location block dipilih untuk melayani request tidak include root directive diri sendiri.
selanjutnya, gunakan server configuration dari tutorial sebelumnya di nginx tutorial melayani konten static dan memodifikasinya untuk membuat proxy server configuration.
langkah pertama yaitu pada location block, taru proxy_pass directive dengan protocol, name, dan port dari proxied server yang dispesifikasi pada parameter ( pada kasus ini adalah http://localhost:9999 ):
server {
location /{
proxy_pass http://localhost:9999;
}
location /gambar/{
root /usr/serverData/www;
}
}
kita akan modifikasi location blok ke dua tersebut, dimana map request saat ini dengan awalan /gambar/ ke file dibawah folder /usr/serverData/www/website1/gambar, untuk membuat request ini cocok digambarkan dengan typical file ekstensi. modifikasi location block seperti ini
server {
location /{
proxy_pass http://localhost:9999;
}
location ~ \.(gif|jpg|png){
root /usr/serverData/www/website1/gambar;
}
}
parameternya yaitu sebuah regular expression yang mencocokkan semua URI diakhiri dengan .gif, .jpg, atau .png. regular expression harus didahului dengan lambang ~. sesuai dengan request yang akan di mapped ke /usr/serverData/www/website1/gambar direktori.
ketikan nginx memilih lokasi block untuk melayani request. pertama kali, ia akan cek lokasi directives yang spesifikasi prefixes/awalan, ingat bahwa location dengan prefix paling panjang, dan cek regular expression. jika ada kecocokan dengan regular expression, nginx akan mengambil location atau jika tidak/otherwise akan mengambil satu yang diingat sebelumnya.
hasil dari konfigurasi proxy server akan terlihat seperti ini:
http {
server {
location /{
proxy_pass http://localhost:9999;
}
location ~ \.(gif|png|jpg){
root /usr/serverData/www/website1/gambar;
}
}
server {
listen 9999;
root /usr/serverData/www/website1;
}
}
server ini akan filter request yang diakhiri dengan .gif, .jpg, atau .png dan map mereka ke /usr/serverData/www/website1/gambar; directory (dengan menambahkan URI ke root directive parameter) dan pass semua request lain ke proxied server konfigurasi diatasnya.
untuk menerapkan konfigurasi baru, kirim reload signal ke nginx
sudo nginx -s reload
Sabtu, 11 November 2017
Tutorial Install Nginx di Linux Ubuntu
Jaka Prima Maulana
1. buka terminal touch nginx_signing.key
2. copy https://nginx.org/keys/nginx_signing.key
3. buka sudo gedit nginx_signing.key
4. pastekan
5. jalankan terminal sudo apt-key add nginx_signing.key
6. sudo gedit /etc/apt/sources.list
7. tambahkan
#nginx
deb http://nginx.org/packages/ubuntu/ zesty nginx
deb-src http://nginx.org/packages/ubuntu/ zesty nginx
8. jalankan sudo apt-get update && sudo apt-get install nginx
Selengkapnya..
Artikel Berepisode
Selamat datang pengunjung www.primasaja.com, kali ini kita akan melakukan " Install Nginx di Linux Ubuntu "ikuti setiap langkah - langkah dibawah ini:1. buka terminal touch nginx_signing.key
2. copy https://nginx.org/keys/nginx_signing.key
3. buka sudo gedit nginx_signing.key
4. pastekan
5. jalankan terminal sudo apt-key add nginx_signing.key
6. sudo gedit /etc/apt/sources.list
7. tambahkan
#nginx
deb http://nginx.org/packages/ubuntu/ zesty nginx
deb-src http://nginx.org/packages/ubuntu/ zesty nginx
8. jalankan sudo apt-get update && sudo apt-get install nginx
Selasa, 07 November 2017
NGINX Tutorial Melayani Konten Static
Jaka Prima Maulana
yang penting dalam tugas webserver adalah melayani pengeluaran files seperti gambar atau static HTML. kami akan implementasi contoh dimana, bergantung pada request, files dan akan dilayani dari local directori yang berbeda
1. buat direktori serverData & didalamnya buat direktori www saya akan buat di folder /usr
2. buka terminal
3. buat index.html di /usr/serverData/www/index.html
4. masukkan gambar di /usr/serverData/www/gambar/nginx.png
5. didalam index.html buat seperti ini
<center>
<h1>
TUTORIAL PRIMASAJA.COM
</h1>
<h3>selamat datang di Server NGINX</h3>
</br>
<img src="/gambar/nginx.png">
</center>
selanjutnya buka konfigurasi file. default konfigurasi file sudah memasukkan beberapa contoh dari server block, banyak juga yang telah di commented. untuk sekarang koment semua seperti blocks dan buat server block baru
3. buka /etc/nginx/nginx.conf
4.
http{
server{
}
}
umumnya, konfigurasi file mungkin berisi beberapa block server dibedakan/dibedakan dengan port dimana mereka listen ke dan dengan server names. sejak nginx memutuskan dimana server process sebuah reques, dia akan melakukan test spesifikasi URI didalam request header untuk parameter dari location directives yang didefinisikan didalam server block
5.
location /{
root /usr/serverData/www;
}
kita buat location block dengan spesifikasi awalan/prefix "/" untuk membedakan dengan URI dari request. diguanakn untuk mencocokan/matching request, URI akan tertambahkan di path spesifikasi dalam root directive, yaitu /usr/serverData/www, untuk menaplikasikan path ke requested file dalam local file system. jika disana ada beberapa pencocokan location block nginx select satu dengan awalan terpanjang. location block diatas melayani prefix pendek, dengan panjang 1, dan juga hanya jika semua location block lain gagal untuk dilayani pencucukannya, block ini akan digunakan.
selanjutnya tambah location block kedua
6.
location /gambar{
root /usr/serverData/www;
}
itu akan dicocokan untuk request dimulai dengan /gambar dan location / juga cocok seperti request , tetapi memiliki awalan yang lebih pendek.
hasilnya konfigurasi server block terlihat seperti dibawah ini
http{
server{
location /{
root /usr/serverData/www;
}
location /gambar{
root /usr/serverData/www;
}
}
}
ini adalah konfigurasi yang benar dan akan berjalan di server yang di listen pada stardard port 80 dan ini terakses pada local machine pada http://localhost/. pada response request dengan URIs dimulai dari /gambar/, server akan mengirim files dari /serverData/www/gambar directory. sebagai contoh, dalam response ke http://locahost/gambar/gambar1.png request nginx akan mengirim /data/gambar/gambar1.png file. jika file tidak ada, nginx akan mengembalikan response indikasi status server 404 error. request dengan URIs tidak dimulai dengan /gambar/ akan di mapped ke /data/www directory, sebagai contoh, dalam response http://localhost/sesuatu/index.html request nginx akan mengirim /serverData/www/sesuatu/index.html file.
untuk menjalankan konfigurasi baru, start nginx jika tidak berjalan atau mengirimkan reload signal ke nginx master process dengan cara ketikkan pada terminal
7. nginx -s reload
8. diatas nginx harus tetap ada events worker_connections
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http{
server{
location /{
root /usr/serverData/www;
}
location /gambar{
root /usr/serverData/www;
}
}
}
Selengkapnya..
Artikel Berepisode
Selamat datang pengunjung www.primasaja.com,hasil get data static konten nginx |
yang penting dalam tugas webserver adalah melayani pengeluaran files seperti gambar atau static HTML. kami akan implementasi contoh dimana, bergantung pada request, files dan akan dilayani dari local directori yang berbeda
1. buat direktori serverData & didalamnya buat direktori www saya akan buat di folder /usr
2. buka terminal
- masuk ke folder /usr dengan ketikkan cd /usr
- buat direktori baru ketikkan sudo mkdir serverData
- buat direktori didalam serverData dengan nama www
3. buat index.html di /usr/serverData/www/index.html
4. masukkan gambar di /usr/serverData/www/gambar/nginx.png
5. didalam index.html buat seperti ini
<center>
<h1>
TUTORIAL PRIMASAJA.COM
</h1>
<h3>selamat datang di Server NGINX</h3>
</br>
<img src="/gambar/nginx.png">
</center>
selanjutnya buka konfigurasi file. default konfigurasi file sudah memasukkan beberapa contoh dari server block, banyak juga yang telah di commented. untuk sekarang koment semua seperti blocks dan buat server block baru
3. buka /etc/nginx/nginx.conf
4.
http{
server{
}
}
umumnya, konfigurasi file mungkin berisi beberapa block server dibedakan/dibedakan dengan port dimana mereka listen ke dan dengan server names. sejak nginx memutuskan dimana server process sebuah reques, dia akan melakukan test spesifikasi URI didalam request header untuk parameter dari location directives yang didefinisikan didalam server block
5.
location /{
root /usr/serverData/www;
}
kita buat location block dengan spesifikasi awalan/prefix "/" untuk membedakan dengan URI dari request. diguanakn untuk mencocokan/matching request, URI akan tertambahkan di path spesifikasi dalam root directive, yaitu /usr/serverData/www, untuk menaplikasikan path ke requested file dalam local file system. jika disana ada beberapa pencocokan location block nginx select satu dengan awalan terpanjang. location block diatas melayani prefix pendek, dengan panjang 1, dan juga hanya jika semua location block lain gagal untuk dilayani pencucukannya, block ini akan digunakan.
selanjutnya tambah location block kedua
6.
location /gambar{
root /usr/serverData/www;
}
itu akan dicocokan untuk request dimulai dengan /gambar dan location / juga cocok seperti request , tetapi memiliki awalan yang lebih pendek.
hasilnya konfigurasi server block terlihat seperti dibawah ini
http{
server{
location /{
root /usr/serverData/www;
}
location /gambar{
root /usr/serverData/www;
}
}
}
ini adalah konfigurasi yang benar dan akan berjalan di server yang di listen pada stardard port 80 dan ini terakses pada local machine pada http://localhost/. pada response request dengan URIs dimulai dari /gambar/, server akan mengirim files dari /serverData/www/gambar directory. sebagai contoh, dalam response ke http://locahost/gambar/gambar1.png request nginx akan mengirim /data/gambar/gambar1.png file. jika file tidak ada, nginx akan mengembalikan response indikasi status server 404 error. request dengan URIs tidak dimulai dengan /gambar/ akan di mapped ke /data/www directory, sebagai contoh, dalam response http://localhost/sesuatu/index.html request nginx akan mengirim /serverData/www/sesuatu/index.html file.
untuk menjalankan konfigurasi baru, start nginx jika tidak berjalan atau mengirimkan reload signal ke nginx master process dengan cara ketikkan pada terminal
7. nginx -s reload
8. diatas nginx harus tetap ada events worker_connections
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http{
server{
location /{
root /usr/serverData/www;
}
location /gambar{
root /usr/serverData/www;
}
}
}
Jumat, 03 November 2017
Definisi dan Perbedaan Struktur Data Array Linked List Doubly Linked List..
Artikel Berepisode
Selamat datang pengunjung www.primasaja.com,- Pengenalan Struktur Data dan Algoritma
perbedaan antar struktur data dkategorkan menjadi 2 group yaitu - linier struktur data - nonlinier struktur data
dalam linier struktur data , item atau benda itu terstruktur dalam gaya linier atau berurutan. LASQ termasuk contoh dari struktur linier. dalam non linier struktur, data tidak terstruktur dalam cara yang berurutan. GT adalah contoh yang paling umum dalam non linier struktur data. mari kita pelajari lebih dalam dari dunia struktur data, dengan perbedaan tipe dari struktur data dan tujuannya dalam jalan yang ringkas. nanti kita akan telusuri setiap dari struktur data secara detail. disana banyak perbedaan tipe dari struktur data yang ada dalam dunia programming. be diluar dari itu, berikut yang paling banyak digunakan:
Array
Linked list
Doubly linked list
Stack
Queue
Priority queue
Set
Map
Tree
Graph
Heap
singkat: (QPSSLDAMTGH)
Struct
variable bisa ditaruh didalam satu tipe data dan satu scalar(kuantitas) tipe data hanya dapat menyimpan satu value.disana banyak situasi diaman kita mungkin membutuhkan untuk menggrupkan beberapa tipe data bersama sama sebagai satu kekompleksan tipe data.
contoh : kita ingin menyimpan informasi siswa bersama dengan tipe data siswa.
kita membutuhkan nama, alamat, nomor telpon, email, hari lahir, kelas sekarang, dan yang lainnya. untuk tugas menyimpan setiap siswa didalam setiap baris/record kedalam tipe data siswa yang unik, kita membutuhkan spesial struktur dimana mengijinkan kita untuk melakukannya. ini bisa dengan mudah didapatkan dengan struct.
dengan kata lain struct adalah pengangkut(container) value dimana tipikalnya mengakses dengan nama. kita dapat menggunakan konsep yang sama pada bahasa pemrograman juga. kita akan bahasnya pada artikel selanjutnya
Array
berfikir array mengacu menjadi tipe data PHP, array sebenarnya adalah struktur data dimana yang paling banyak digunakan dalam semua platform bahasa pemrograman. dalam PHP, array sebenarnya ordered map. kita dapat menyimpan banyak value dalam satu array sebagai satu variable.Matrix tipe data mudah untuk disimpan didalam array dan dikurung ini digunakan disebagian besar dalam platform semua pemrograman. biasanya array adalah koleksi size yang fixed dimana diakses dengan urutan sequential nomor index.
dalam PHP array diimplementasikan berbeda dan kamu dapat mendefinisikan array dynamic tanpa mendefinisikan fixed size array lain.
kita akan bahas array lebih dalam nanti. array dapat memiliki dimensi yang berbeda. jika array memiliki satu index untuk diakses element, kita menyebutnya single dimension array. tetapi jika ada dua atau lebih indexed untuk akses element, kita sebutnya 2 dimensi atau multidimensional berikut 2 diagram array struktur data:
struktur data array single dan multi dimensional source from: Ebook PHP 7 data structures and algorithm |
Linked List
linked list adalah stuktur data linier dimana adalah koleksi data element juga dikenal sebagai nodes dan dapat memiliki variasi ukuran/sizes. biasanya, item/barang yang terdaftar terkoneksi melalui pointer dimana diketahui sebagai link dan dikurung ini disebut sebagai linked list. dalam linked list, satu list element link ke element selanjutnya melewati pointer. dari mengikuti diagram, kita dapat melihat bahwa linked list sebenarnya maintain ordered collection. Linked lists adalah form yang paling umum dan paling simple dari struktur data yang digunakan dalam bahasa pemrograman. dalam single linked list, kita hanya dapat melangkah maju, kita akan bahas lebih dalam mengenai linked list konsep dan implementasi seperti gambar di bawah inistruktur data linked list source from: Ebook PHP 7 data structures and algorithm |
Doubly Linked List
doubly linked list adalah tipe spesial dari linked list dimana kita tidak hanya menyimpan node selanjutnya, tetapi kita juga menyimpan node sebelumnya didalam struktur node. dan hasilnya itu dapat di pindahkan maju dan mundur didalam list. ini memberikan lebih fleksibelitas dari pada single linked list atau linked list dengan memiliki keduanya dari sebelumnya dan pointer selanjutnya. kita akan eksplore ini dalam artikel selanjutnya,struktur data doubly linked list source from: Ebook PHP 7 data structures and algorithm |
Stack
stack adalah struktur data linier dengan prinsip LIFO. hasilnya stack hanya memiliki satu akhiran untuk menambah data baru atau menghapus data. ini adalah yang paling tua dan paling banyak digunakan dalam struktur data dalam teknologi komputer. kita selalu menambah dan menghapus data dari stack menggunakan single point. istilah push digunakan untuk mengindikasikan data ditambah di atas dari stack/tumpukan dan pop untuk mengambil/menghapus data dari atas, berikut diagram yang menjelaskan mengenai poshStruktur data stack source: Ebook PHP 7 data structure and algorithm |
Queue
queue adalah contoh lain dari struktur data linier dimana diikuti dengan prinsip FIFO. queue mengijinkan 2 operasi dasar dari collection. yang pertama adalah enqueue dimana mengijinkan kita untuk menambah data dari belakang queue/antrian. yang kedua adalah dequeue diamana mengijinkan kita untuk membuang/mengapus data dari depan queue. queue adalah struktur data yang paling banyak digunakan dalam teknologi komputer. berikut diagram stack and queuestruktur data queue source: ebook PHP 7 data structure and algorithm |
Set
set adalah tipe data abstract dimana digunakan untuk menyimpan value tertentu. value ini tidak tersimpan dalam order tetapi tidak seharusnya menjadi pengulangan value didalam set. set tidak digunakan seperti collection dimana kita mendapatkan specific value darinya, set digunakan untuk check keberadaan value didalamnya. terkadang struktur data set dapat di sortir dan kita dapat memanggilnya sebagai ordered setMap
map adalah collection dari key dan value pairs dimana semua keynya itu unique. kita dapat memikirkan map sebagai asosiasi array dimana semua kunci adalah unique. kita dapat menambahkan dan menghapus menggunakan key dan value pairs sepanjang update dan melihat dari map menggunakan key. faktanya, PHP array mengimplementasikan ordered map. kita akan membahas ini pada episode selanjutnya
Tree
tree adalah yang paling luas digunakan dalam struktur data non linier dalam dunia komputer. sangat tinggi digunakan untuk tingkatan struktur data. tree terdiri/consist dari nodes dan disana terdapat spesial node dimana diketahui sebagai akar/root dari tree dimana dimulainya struktur tree. nodes lain turun/descend dari root node. struktur data tree memanggil dirinya sendiri/recursive dimana berarti tree dapat mengandung banyak subtrees. nodes terkoneksi dengan setiap yang lainnya melalui ujung-ujungnya/edges. kita akan diskusi perbedaan tipe dari tree, operasinya, dan tujuannya dalam pembahasan selanjutnya. berikut diagram dari tree stukrturstruktur data tree source from: Ebook PHP 7 data structure and algorithm |
Graph
struktur data graph adalah tipe spesial dari struktur data nonlinier dimana terdiri atas nomor yang terbatas dari simpul atau nodes, dan ujung-ujungnya/edges atau pemancarnya/arcs. graph bisa keduanya mengarah/directed dan tidak mengarah/undirected. graph yang directed jelas mengindikasikan arah dari ujung-ujung/edges, ketika undirected graph menyebut edges bukan arah. hasilnya, dalam undirected graph kedua arah dari edge/ujung mengacu pada single edge. dengan kata lain, kita dapat berkata graph adalah pasangan/pair dari sets (V, E) dimana V adalah set dari simpul/vertices dan E adalah set dari edges. V = {A, B, C, D, E, F}
E = {AB, BC, CE, ED, EF, DB}
dalam directed graph, edge dari AB berbeda dengan edge BA ketika dalam undirected graph, keduanya AB dan BA adalah sama. graph berguna untuk memperbaiki complex problem dalam dunia programming. kita akan diskusikan lebih lanjut mengenai graph struktur data dalam selanjutnya, menggambarkan contoh diatas berikut hasil diagramnya:
Heap
heap adalah struktur data spesial tree-based dimana memuaskan dengan sifat heap. kunci terbesar adalah root dan kunci terkecil adalah leaves, dimana diketahui sebagai max heap. atau, kunci terkecil adalah root dan terbesar adala leaves/daun, dimana diketahui sebagai min heap. memikirkan root dari heap struktur adalah baik terbesar atau key terkecil dari tree, itu tidak penting dari sorted struktur. heap digunakan untuk memperbaiki masalah algoritma graph dengan efisiensi dan juga sorting. kita akan explore heap struktur data selanjutnya berikut diagram heapstruktur data heap (max heap) source : ebook php 7 data structure and algorithm |
Langganan:
Postingan
(
Atom
)