Wednesday, January 12, 2022

SESSION IN PHP

Pengertian Session dan cara Menggukannya pada PHP


Session digunakan untuk menyimpan data sementara kedalam variabel session itu sendiri, sehingga data yang tersimpan pada session dapat digunakan untuk keperluan tertentu, misalnya untuk keperluan login. Selain itu nilai dari variabel session ini dapat digunakan pada halaman mana saja (across multiple pages).

dan contoh sederhana pembuatan variabel session adalah seperti ini :

<?php $_SESSION['username'] = 'kamandanu'; ?>

Nilai dalam session disimpan di dalam server, berbeda dengan cookies yang nilainya disimpan di dalam browser. sehingga session lebih aman untuk  menyimpan data yang sifatnya rahasia seperti username dan juga password.

Misalkan sebuah login, yakni saat dimana user mengakses suatu halaman, maka user tersebut telah memulai session/sesi.

Session ini adalah sebuah sesi yang sama seperti saat kita login facebook, lalu saat kita berhasil login, maka secara otomatis sistem akan membuat variabel session yang isinya meruoakan data pribadi kita seperti id, nama, username, dan password. dengan semua data informasi tersebut kita mendapatkan izin untuk mengakses seluruh halaman yang ada.

Namun saat kita melakukan lagout, maka variabel session itu akan hilang, dan kita tidak lagi dapat mengakses halaman-halaman tersebut.

Untuk memulai session sendiri kita harus menggunakan keyword session_start() berarti sebuah sesi telah dimulai.

session_start();

kemudian barulah kita buat variable session-nya :


session_start();
$_SESSION['username'] = 'kamandanu';

Maka session yang telah dibuat, sehingga kita dapat menampilkan outputnya.


<?php
session_start();
$_SESSION['username'] = 'kamandanu';
?>
<h1>Hallo <?= $_SESSION['username'] ?></h1>





Setelah berhasil membuat session dan kita ingin mengakhiri sesi kita, maka ada baiknya session kita dihapus dari server agar tidak disalah gunakan oleh orang yang tidak bertanggung jawab. Untuk menghapus session kita sendiri dapat menggunakan perintah session_unset() untuk menghapus semua variable $_session kemudian kita tambahkan perintah session_destroy() untuk menghancurkan semua data session yang telah tersimpan didalam penyimpanan file sistem. Jadi kita gunakan 2 perintah diatas untuk memastikan jika session benar-benar sudah tidak ada lagi.

<?php
session_start();
$_SESSION['username'] = 'kamandanu';
?>
<h1>Hallo <?= $_SESSION['username'] ?></h1>
<?php session_unset(); ?>
<?php session_destroy(); ?>
<hr>
<h1>Hallo <?= $_SESSION['username'] ?></h1>

Pada contoh diatas, setelah tag <hr> saya sengaja mencetak kembali session yang telah dibuat untuk memastikan apakah session benar-benar sudah terhapus atau belum, dan bila session sudah tidak ada lagi, maka pesan error akan muncul. Seperti output gambar dibawah ini :


Sekarang mari kita ke contoh kasus yang lain, yakni contoh kasus login. Silahkan buat 3 buah file dalam satu folder bernama :

1. Php

2. Php

3. Php

kemudian pada file tes_session1.php isikan kode dibawah ini :


<?php 
session_start();
if (isset($_GET['submit'])) {
	$_SESSION['username'] = $_GET['username'];
	header('location: tes_session2.php');
}
?>

<form method="GET">
	<p>Login</p>
	<input type="text" name="username">
	<input type="submit" name="submit">
</form>







Monday, January 10, 2022

Definisi dan Perbedaan antara Threads dan Processes

 Perbedaan antara Threads dan Processes

Thread

Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter, register set, dan stack. Sebuah thread berbagi code section, dan sumber daya sistem operasi dengan thread lain yang dimiliki oleh proses yang sama. Thread juga sering disebut lightweight process.


Sebuah proses tradisional atau heavyweight process mempunyai tthread tunggal yang berfungsi sebagai pengendali. Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multithreads, agar dapat secara terus menerus mengetik dan menjalankan pemeriksaan ejaan didalam proses yang sama, maka sistem operasi tersebut memungkinkan untuk menjalankan lebih dari satu tugas pada satu waktu. Threads saling berbagi program, bagian program, bagian data dan sumber daya sistem operasi dengan thread lain yang mengacu pada proses yang sama. Thread terdiri atas ID thread, program counter, himpunan register, dan stack sehingga dengan banyaknya kontrol thread, proses dapat melakukan lebih dari satu pekerjaan pada waktu yang sama.


Proses

Secara informal, proses adalah program dalam eksekusi. Suatu proses adalah lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/processor's register. Suatu proses umumnya juga termasuk proses stack, yang berisikan data temporer (seperti parametr metoda, address yang kembali, dan variabel lokal) dan sebuah data section, yang berisikan variabel global.

Program itu sendiri bukanlah sebuah proses, suatu program adalah satu entitas pasif seperti isi dari senuah berkas yang disimpam didalam disket, sebagaimana sebuah proses dalam suatu entitas aktif dengan sebuah program counter yang mengkhususkan pada instruksi selanjutnya untuk dijalankan dan seperangkatkan sumber daya/resourcce yang berkenan denganya.

Walau dua proses dapat dihubungkan dengan program yang sama, program tersebut dianggap dua urutan eksekusi yang berbeda, Sebagai contoh, beberapa pengguna dapat menjalakan copy yang berbeda pada mail program, atau pengguna yang sama dapat meminta banyak copy dari program editor.

Sebagaimana proses bekerja, maka proses tersebut merubah state (keadaan statis/asal). Status dari sebuah proses didefinisikan dalam bagian oleh aktivitas yang ada dari proses tersebut. Tiap proses mungkin adalah satu dari keadaan berikut ini:

1. New proses sedang dikerjakan/dibuat.

2. Running : Intruksi sedang dikerjakan

3. Waiting : Proses sedang menungu sejumlah kejadian untuk terjadi (seperti sebuah penyelsaian I/O atau penerimaan sebuah tanda/signal).

4. Ready Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.

5. Terminated : proses telah selesai melaksanakan tugasnya/ mengeksekusi.


Sumber referensi : https://blog.agungpambudi.com/2021/01/definisi-dan-perbedaan-antara-threads-dan-proses.html

Friday, January 7, 2022

Single Instriction, Multiple Data (SIMD)

 SIMD (Single Instruction, Multiple Data)

Merupakan sebuah istilah dalam komputasi yang merujuk kepada sekumpulan operasi yang digunakan untuk menangani jumlah data yang sangat banyak dalam pararel secara efisien, seperti terjadi dalam prosesor vektor atau larik. SIMD pertama kali dipopulerkan pada superkomputer skala besar, meski sekarang telah ditemukan pada komputer pribadi.

Contoh aplikasi yang dapat mengambil keuntungan dari SIMD adalah aplikasi yang memiliki nilai yang sama yang ditambahkan kebanyak titik data (data point),



Salah satu contoh operasinya adalah mengubah brightness dari sebuah gambar. Setiap pixel dari sebuah gambar 24-bit berisi tiga buah nilai berukuran 8-bit brightness dari porsi warna merah (red), hijau (green), dan biru (blue). Untuk melakukan perubahan brightness, nilai RG, dan B akan dibaca dari memori, dan sebuah nilai baru ditambahkan (atau dikurangkan) terhadap nilai-nilai R, G, B tersebut dan nilai akhirnya akan dikembalikan (ditulis kembali) ke memori.

Prosesor yang memiliki SIMD menawarkan dua keunggulan, yakni:

  • Data langsung dapat dipahami dalam bentuk blok data, dibandingkan dengan beberapa data yang terpisah secara sendiri-sendiri. Dengan menggunakan blok data, prosesor dapat memuat data secara keseluruhan pada waktu yang sama. Daripada melakukan beberapa instruksi "ambil pixel ini, lalu ambil pixel itu, dst", sebuah prosesor SIMD akan melakukannya dalam sebuah instruksi saja, yaitu "ambil semua pixel itu!" (istilah "semua" adalah nilai yang berbeda dari satu desain ke desain lainnya). Jelas, hal ini dapat mengurangi banyak waktu pemrosesan (akibat instruksi yang dikeluarkan hanya satu untuk sekumpulan data), jika dibandingkan dengan desain prosesor tradisional yang tidak memiliki SIMD (yang memberikan satu instruksi untuk satu data saja).
  • Sistem SIMD umumnya hanya mencakup instruksi-instruksi yang dapat diaplikasikan terhadap semua data dalam satu operasi. Dengan kata lain, sistem SIMD dapat bekerja dengan memuat beberapa titik data secara sekaligus, dan melakukan operasi terhadap titik data secara sekaligus.

Pada pendesainan awal SIMD, terdapat beberapa prosesor yang khusus disiapkan untuk melakukan tugas ini, yang seringnya disebut sebagai Digital Signal Processor (DSP). Perbedaan utama antara SIMD dan DSP adalah DSP merupakan prosesor yang komplet dengan set instruksinya sendiri (yang meskipun lebih sulit digunakan), sementara SIMD hanya bergantung pada register general-purpose untuk menangani detail program, dan instruksi SIMD hanya menangani manipulasi data.

Penggunaan instruksi SIMD pertama kali dilakukan dalam superkomputer vektor dan dipopulerkan oleh Cray pada tahun 1970-an. Akhir-akhir ini, SIMD skala kecil (64-bit atau 128-bit) telah menjadi populer dalam CPU yang bersifat general purpose, yang dimulai pada tahun 1994 dengan set instruks MAX yang diaplikasikan pada Hewlett-Packard PA-RISC. Instruksi SIMD, saat ini dapat ditemukan dalam kebanyakan prosesor, seperti halnya AltiVec dalam prosesor PowerPC; Intel MMX, SSE, SSE2, SSE3, SSE4, AMD 3DNow! dalam prosesor Intel x86; VIS dalam prosesor prosesor SPARCMAX dalam Hewlett-Packard PA-RISC; MDMX serta MIPS-3D dalam MIPS serta MVI dalam prosesor DEC Alpha. Meskipun demikian, perangkat lunak pada umumnya tidak mengeksploitasi instruksi, dan bahkan instruksi ini hanya digunakan dalam aplikasi yang khusus, seperti pengolahan grafik.









SESSION IN PHP

Pengertian Session dan cara Menggukannya pada PHP Session digunakan untuk menyimpan data sementara kedalam variabel session itu sendiri, seh...