Senin, 22 Agustus 2011

Kegiatan Hosting Moodle

Dapat Tugas LMS Point B kelompok 21 neeh harus ngehosting moodle di internet
maka kita mempersiapkan

1. Review Tempat Hosting kemudian Daftar Domain (supaya bisa punya alamat yang dikenal di internet)
2. Persiapkan Bahan (download moodle dari http://www.moodle.org maksudnya) kenapa download karena moodle yang digunakan tidak disediakan oleh hostingnya.. :)
3. Nungguin deh tuh aktivasi
4. Proses Ngupload dong.

Posesnya seperti ini lho..
1. kita buka http://www.000webhost.com (hosting gratisan) -> pada bagian pertama pilih Free Hosting -> pilih Order Now
2. Pada Bagian Order Free Web Hosting ->
or, I will choose your free subdomain (recommended) nah isi deh kotaknya punya kelompok kita isinya www.kelompok21.hostzi.com nah www dan hostzi.comnya dah disediakan oleh sistem dipilih secara acak.
 -> pada Your Name isi kelompok21 -> pada Your email (account details will be sent there) isinya seumul.batch4@gmail.com -> Password (at least 6 symbols, both letters and numbers) isinya yah password kita buat login nanti ->  Type password again  ketikulang password tadi



setelah selesai makadata konfirmasi akan dikirim lewat email dan ikuti langkah konfirmasi lewat email dan seterusnya sampai kun bisa digunakan
3. setelah halaman aktif maka download lah moodlenya
4. download pula ftpclient yang yang digunakan kali ini adalah FileZilla
selanjutnya adalah upload moolde yang telah kita download





5. setelah di upload berikutnya adalah mempersiapkan databasenya
6. kemudian instalasi moodlenya dan konfigurasi pengaturannya.. selesai..




Sabtu, 20 Agustus 2011

Character Building, Capek Tapi Bermanfaat...

D4 ITB-SEAMOLEC Batch 4 telah mengadakan mata kuliah yang bernama "Character Building". Disini kelompok kita alias si kelompok 21 digabunging sama kelompok 22 neh critanya. Jadi anggotanya kelompok 21: jojo,opay,tila dan kelompok 22: wendy,tiara, fierlan

Pertama kali sih kita di suru bangun pagi dan kumpul di depan gedung megah SEAMOLEC yang berada di kampus UT(Universitas Terbuka) di Tangerang selatan. Nah, di hari pertama character building ini kita dan kelompok-kelompok lain di suruh bawa peralatan berupa sapu lidi dan cikrak. Perkelompoknya membawa 1 cikrak dan 2 sapu lidi.

Bos kami sih dari kelompok 22. Namanya Tiara Sukma Aulia. Kami ikutin perintah dari bos ajah deh...hehehe... Sementara ini sih masih belum ada yang terlambat datang. Soalnya klo telat nilainya minus tuh... Makanya kelompok kami saling mengingatkan bila ada yang datang terlambat. Kolmpok kami sama kelompok 22 dapet bagian pembersihan di dekat danau seberang sungai. Setiap hari kita bersikan sampai-sampai kecipratan air di taman..hehhee...

ini foto keberishan gabungan kelompok 21,kelompok 22, kelompok 24..





yah inilah kegiata kita di pagi hari selama di SEAMOLEC dengan kuliah bau keringat...hahahahahahaha





Engine Three.js WEB3D


Untuk pembuataan Cube :
putaran cube ke atas bawah
function render() {

plane.rotation.z = cube.rotation.x += ( targetRotation - cube.rotation.x ) * 0.05;
renderer.render( scene, camera );

}

Pembentukan sisi cube
cube = new THREE.Mesh( new THREE.CubeGeometry( 300, 300, 300, 1, 0, 0, materials ), new THREE.MeshFaceMaterial() );
Pembentukan warna cube jadi random                                                
var materials = [];
for ( var i = 0; i < 6; i ++ ) {materials.push( [ new THREE.MeshBasicMaterial( { color:Math.random() *0xffff00 } ) ] );
 
Line
Membuat titik dan warnanya
var PI2 = Math.PI * 2;
var material = new THREE.ParticleCanvasMaterial( {
color: 0xff00ff,
program: function ( context ) {
context.beginPath();
context.arc( 1, 0, 1, 0, PI2, true );
context.closePath();
context.fill();

                                                                                }

                                                                } );
Pembuatan garis dan wana
var line = new THREE.Line( geometry, new THREE.LineBasicMaterial( { color: 0xffff00, opacity: 0.5 } ) );
 scene.addObject( line );


Line sambung
Pembuatan titik dan warna
var PI2 = Math.PI * 2;
var material = new THREE.ParticleCanvasMaterial( {
color: 0xff00ff,
                                                                               program: function ( context ) {

                                                                                                context.beginPath();
                                                                                                context.arc( 0, 0, 1, 0, PI2, true );
                                                                                                context.closePath();
                                                                                                context.fill();

Penyambungan line

var geometry = new THREE.Geometry();
 for ( var i = 0; i < 1; i ++ ) {

                                                                       
                                                                                particle = new THREE.Particle( material );
                                                                                particle.position.x = 0 * 2;
                                                                                particle.position.y = 10 * 2;
                                                                                particle.position.z = 0 * 2;
                                                                                particle.position.normalize();
                                                                                particle.position.multiplyScalar( Math.random() * 10 +80 );
                                                                                particle.scale.x = particle.scale.y = 1;
                                                                                scene.addObject( particle );

                                                                                geometry.vertices.push( new THREE.Vertex( particle.position ) );
                                                                               
                                                                                particle = new THREE.Particle( material );
                                                                                particle.position.x = 100 * 2;
                                                                                particle.position.y = 10 * 2;
                                                                                particle.position.z = -5 * 2;
                                                                                particle.position.normalize();
                                                                                particle.position.multiplyScalar( Math.random() * 10 + 80 );
                                                                                particle.scale.x = particle.scale.y = 1;
                                                                                scene.addObject( particle );

                                                                                geometry.vertices.push( new THREE.Vertex( particle.position ) );
                                                                               
                                                                                particle = new THREE.Particle( material );
                                                                                particle.position.x = -2 * 2;
                                                                                particle.position.y = 100 * 2;
                                                                                particle.position.z = -5 * 2;
                                                                                particle.position.normalize();
                                                                                particle.position.multiplyScalar( Math.random() * 10 + 80 );
                                                                                particle.scale.x = particle.scale.y = 1;
                                                                                scene.addObject( particle );

                                                                                geometry.vertices.push( new THREE.Vertex( particle.position ) );
                                                                               

                                                                               
                                                                                particle = new THREE.Particle( material );
                                                                                particle.position.x = 5 * 2;
                                                                                particle.position.y = 25 * 2 ;
                                                                                particle.position.z = -5 * 2 ;
                                                                                particle.position.normalize();
                                                                                particle.position.multiplyScalar( Math.random() * 10 + 80 );
                                                                                particle.scale.x = particle.scale.y = 1;
                                                                                scene.addObject( particle );

                                                                                geometry.vertices.push( new THREE.Vertex( particle.position ) );
                                                                               
                                                                                particle = new THREE.Particle( material );
                                                                                particle.position.x = -5 * 2;
                                                                                particle.position.y = 25 * 2 ;
                                                                                particle.position.z = -5 * 2 ;
                                                                                particle.position.normalize();
                                                                                particle.position.multiplyScalar( Math.random() * 10 + 80 );
                                                                                particle.scale.x = particle.scale.y = 1;
                                                                                scene.addObject( particle );

                                                                                geometry.vertices.push( new THREE.Vertex( particle.position ) );

particle = new THREE.Particle( material );
                                                                                particle.position.x = -10 * 2;
                                                                                particle.position.y = 12 * 2 ;
                                                                                particle.position.z = 0 * 2 ;
                                                                                particle.position.normalize();
                                                                                particle.position.multiplyScalar( Math.random() * 10 + 80 );
                                                                                particle.scale.x = particle.scale.y = 1;
                                                                                scene.addObject( particle );

                                                                                geometry.vertices.push( new THREE.Vertex( particle.position ) );

particle = new THREE.Particle( material );
                                                                                particle.position.x = 0 * 2;
                                                                                particle.position.y = 0 * 2 ;
                                                                                particle.position.z = 0 * 2 ;
                                                                                particle.position.normalize();
                                                                                particle.position.multiplyScalar( Math.random() * 10 + 80 );
                                                                                particle.scale.x = particle.scale.y = 1;
                                                                                scene.addObject( particle );

                                                                                geometry.vertices.push( new THREE.Vertex( particle.position ) );
pembuatan line
var line = new THREE.Line( geometry, new THREE.LineBasicMaterial( { color: 0xffffff, opacity: 0.5 } ) );
scene.addObject( line );

                                                                document.addEventListener( 'mousemove', onDocumentMouseMove, false );
                                                                document.addEventListener( 'touchstart', onDocumentTouchStart, false );
                                                                document.addEventListener( 'touchmove', onDocumentTouchMove, false );
                                                                                }

                                                                } );

CODE IGNITER SESSION DAN SECURITY


Session Codeigniter

Secara umum session digunakan untuk menyimpan suatu informasi antar proses permintaan.
Session bekerja dengan variabel sesi PHP yang digunakan untuk menyimpan informasi sesi, atau mengubah pengaturan untuk sesi pengguna. Variabel sesi menyimpan informasi tentang salah satu penguna, dan tersedia untuk semua halaman dalam satu aplikasi.
Melalui session yang tersimpan pemilik web atau administrator memungkinkan proses pelacakan aktivitas pengguna yang sedang beroperasi pada web maupun yang telah mengunjungi melalui sebuah sessi yang dibagi dan disimpan dalam cookie, selain itu session juga bisa disimpan dalam sebuah database.
Salah satu contoh penggunaan session yang umum adalah pada proses login suatu halaman web, yaitu pengguna memasukan data username dan password melalui form login, setelah login berhasil maka pengguna dihadapkan pada halaman navigasi yang menuju pada data isi halaman yang dimaksud atau link halaman lainya, pencatatan kegiatan username dan passwordnya untuk tetap bisa berada dalam halaman yang dimaksud dikerjakan oleh session.
Dalam Framework CodeIgniter yang mengaplikasikan model MVC (Model, View, Controller) Model bertugas memanggil dan memanipulasi data pada database, view bertugas menampilkan data pada user, Controller bertugas sebagai eksekutor yang memproses seluruh programming web. untuk membentuk suatu session dibutuhkan adalah terlebih dahulu membentuk controller dengan mengaplikasikan standar kode CI sebagai berikut

$this->load->library('session');

Ketika halaman dibuka, session class akan memeriksa untuk melihat apakah data session yang valid ada dalam session cookie pengguna. Jika session data tidak ada (atau jika itu telah berakhir) sesi baru akan dibuat dan disimpan dalam cookie. Jika tidak ada session, informasi yang akan diperbarui dan cookie akan diperbarui. Dengan setiap update, session_id akan dibuat ulang.

Session bisa terbentuk dari sebuah array yang berisi informasi berikut :

[array]
 (
      'session_id'    => karaker acak,
      'ip_address'    => 'string – pengguna alamat IP',
      'user_agent'    => 'string – data perambah',
      'last_activity' => durasi / waktu / aktifitas terakhir
 )

1. Session id adalah karakter unik yang terbentuk dari string acak sehingga membentuk ID unik dengan menggunakan algoritma Md5 dengan enkripsi yang kuat dan digeneralisasi setiap lima menit.
2. alamat IP pengguna
3. 50 karakter penggunaan perambah
4. durasi waktu terakhir

Session terenkripsi jika diaktifkan, serial array akan dilakukan enkripsi terlebih dahulu sebelum  disimpan dalam cookie, hal ini membuat data yang sangat aman dan tahan terhadap pembacaan atau atau pengubahan oleh seseorang. Session ini di baca ulang setiap lima menit jika terjadi halaman yang di baca berulang – ulang hanya session aktifitas terkahir yang ditulis, akan tetapi dapat dilakukan pengubahan dengan mangganti baris kode pada system/config/config.php

$config['sess_time_to_update'

Pengambilan data session dari array menggunakan fungsi berikut :

$this->session->userdata('item');

Sebagai contoh pengambilan session id

$session_id = $this->session->userdata('session_id');

Fungsi mengembalikan FALSE (boolean) jika item yang Anda coba akses tidak ada.
Penambahan Custom Session Data merupakan sebuah aspek yang berguna dari array session, dengan fasilitas ini dapat menambahkan data sesuai dengan pengaturan tersendiri yang dapat disimpan dalam cookie pengguna. Sebagai contoh seorang pengguna login ke halaman web setelah dikonfirmasi maka dapat ditambahkan username dan alamat email untuk session cookie, dapat  membuat data global yang tersedia tanpa harus menjalankan query database ketika membutuhkannya.
Untuk mendapatkan data ke session array maka data array harus ditampilkan dengan fungsi berikut :

$this->session->set_userdata($array);

Dimana $ array adalah array asosiatif yang berisi data baru. Berikut contohnya:

$newdata = array(
                    'username'  => 'admin',
                    'email'     => 'admin@itbbatch4.com',
                    'logged_in' => TRUE
                );

 $this->session->set_userdata($newdata);

Jika Anda ingin menambahkan userdata satu nilai pada suatu waktu, set_userdata () juga mendukung sintaks ini.

$this->session->set_userdata('some_name', 'some_value');

Cookie hanya bisa menampung 4KB data, maka berhati-hatilah untuk tidak melebihi kapasitas. Proses enkripsi khususnya menghasilkan string data baru dari aslinya sehingga harus memperhatikan jumlah data yang tersimpan.

Hal penting lainya dalam session ini adalah menghapus session data, sama seperti set_userdata () dapat digunakan untuk menambahkan informasi ke dalam sesi, unset_userdata () dapat digunakan untuk menghapusnya, dengan melewatkan kunci sesi. Misalnya, jika Anda ingin menghapus 'some_name' dari informasi sesi Anda: 

$this->session->unset_userdata('some_name');

Fungsi ini juga dapat digunakan untuk menghapus data pada array asosiatif.

$array_items = array('username' => '', 'email' => '');

 $this->session->unset_userdata($array_items);

CodeIgniter mendukung "flashdata", atau session data yang hanya akan tersedia untuk permintaan server berikutnya, dan kemudian secara otomatis dihapus. Kegunaan flash data biasanya untuk pesan informasi atau status (misalnya: "catatan 2 dihapus").Variabel Flash diawali dengan "flash_" sehingga menghindari penamaan yang sama dengan nama session yang dimiliki.

$this->session->set_flashdata('item', 'value');

setting bisa dilakukan dengan sebuah array set_flashdata(), dengan cara yang sama  seperti set_userdata().

Untuk mebaca variable flash data:

$this->session->flashdata('item');

Jika memerlukan untuk mempertahankan variabel flashdata melalui permintaan tambahan, dapat dilakukan dengan menggunakan fungsi keep_flashdata ().

$this->session->keep_flashdata('item');

ketika session data array disimpan, cookie pengguna akan terisi sebuah session ID,  kecuali jika menyimpan session data  dalam database maka tidak ada cara untuk memvalidasi itu. Untuk beberapa aplikasi memerlukan sedikit bahkan tanpa keamanan, validasi sangat diharuskan.  Jika tidak maka session yang lebih lama bisa dikembalikan dengan merestorasi menggunakan memodifikasi cookies pengguna.

Ketika session data tersedia dalam database, setiap kali sesi yang valid ditemukan dalam cookie pengguna, query database dilakukan untuk mencocokannya. Jika session ID tidak cocok, session ini hancur. Session ID tidak dapat diperbarui, hanya dapat dihasilkan ketika session baru dibuat.

Untuk menyimpan session , maka yang pertama dilakukan adalah membuat tabel data base tujuan, salah satu contoh dari gambaran penggunaan script menggunakan MySQL.

CREATE TABLE IF NOT EXISTS  `ci_sessions` (

session_id varchar(40) DEFAULT '0' NOT NULL,

ip_address varchar(16) DEFAULT '0' NOT NULL,

user_agent varchar(50) NOT NULL,

last_activity int(10) unsigned DEFAULT 0 NOT NULL,

user_data text DEFAULT '' NOT NULL,

PRIMARY KEY (session_id)

);

Secara default tabel disebut ci_sessions, tapi dapat diganti dengan nama apa pun yang diinginkan dengan memperbaharui pada berkas aplication/config/config.php sehingga berisi nama yang telah dipilih. Setelah dibuat tabel database, dapat diaktifkan pilihan database di file config.php sebagai berikut:

$config['sess_use_database'] = TRUE;

Setelah daiktifkan , session class akan disimpan dalam session data pada DB, pastikan spesifikasi nama tabel pada konfigurasi sesuai.

$config['sess_table_name'] = 'ci_sessions';

session class memiliki koleksi sampah yang mana akan dibersihkan ketika keluar dengan session yang kadaluarsa sehingga tidak perlu rutinitas untuk membersihkannya. Untuk membersihkan session

$this->session->sess_destroy();

Fungsi ini merupakan fungsi terakhir jika terdapat pengecualian hanya beberapa pilihan yang hancur makan harus digunakan unset_userdata ()

 application/config/config.php
Preferensi
Default
Pilihan
Deskripsi
sess_cookie_name
ci_session
None
Nama session
sess_expiration
7200
None
Setting sesi maksimum adalah 2 jam (7200) detik jika session diinginkan tidak berakhir maka nilai diset menjadi 0
sess_expire_on_close
FALSE
TRUE/FALSE (boolean)
Pilihan berakhirnya session ketika browser di tutup
sess_encrypt_cookie
FALSE
TRUE/FALSE (boolean)
Pilihan berahirnya session utuk mengenkripsi
sess_use_database
FALSE
TRUE/FALSE (boolean)
untuk menyimpan data sesi ke database. Anda harus membuat tabel sebelum nya mengaktifkan opsi ini.

sess_table_name
ci_sessions
Semua nama yang bisa divalidasi
Nama tabel untuk database session
sess_time_to_update
300
Satuan waktu
Satuan waktu untuk menggerasi sendiri session
sess_match_ip
FALSE
TRUE/FALSE (boolean)
Pencocokan alamat IP ketika membaca session data. Beberapa penggunaa ip yang dinamis mengharuskan setting  diarahkan ke FALSE 
sess_match_useragent
TRUE
TRUE/FALSE (boolean)
Mecocokan penggunaan browser


Berikut adalah contoh kasus dalam penggunaan session, untuk mengakses halaman sebuah web maka diperlukan inisialisasi dengan melakukan login terlebih dahulu dengan sebuah username dan password yang disediakan.


Langkah kerja yang dibuat seagai berikut :

1. Buat database dengan phpmyadmin (http://localhost/phpmyadmin) atau dengan CLI
    isi  sebagai berikut :
-- Table structure for table `pengguna`
--
CREATE TABLE IF NOT EXISTS `pengguna` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(100) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(100) NOT NULL,
`type` varchar(45) NOT NULL,
`status` tinyint(4) NOT NULL,
`registered` datetime DEFAULT NULL,
`last_login` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
--Dumping data for table `users`
--
INSERT INTO`users` (`id`, `username`, `password`, `email`, `type`, `status`,`registered`, `last_login`) VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'admin@itbbatch4.com', 'admin', 1, '0000-00-00 00:00:00', NULL);

2. Buka application > config > database.php dan cari serta ubah kode PHP menjadi seperti ini:

$db['default']['hostname']='localhost';  
$db['default']['username']='root';
$db['default']['password']='';
$db['default']['database']='d4itbb4';    
$db['default']['dbdriver']='mysql';

hostname adalah localhost karena server ditempatkan di server lokal
username adalah root kerena itu adalah user utama pada system
password adalah kosong
database adalah webpraktek karena namanya dibuat seperti itu
dbdriver adalah enggine databasenya yaitu mysql
3. Buka application > config > autoload.php dan cari serta ubah kode PHP menjadi seperti ini:

$autoload['libraries'] = array('database', 'session', 'form_validation');  
$autoload['helper']= array('url','form');

4. Buka application > config > config.php dan cari serta ubah kode PHP menjadi seperti ini:
$config['base_url']    = 'http://localhost/d4itbb4/';  
$config['encryption_key']='batch@s34m0l3c';

5. Simpan Model pada application > models > admin_model.php.
<?php  
class Admin_model extends CI_Model
{
var $tabel_name = 'users';
function __construct()
{
parent::__construct();
}
function cek_user_login($username, $password)
{
$this--->db->select('*');
$this->db->where('username',$username);
$this->db->where('password',md5($password));
$query = $this->db->get($this->tabel_name, 1);
if ($query->num_rows() == 1)
{
return $query->row_array();
            }
      }
}
?>

6. Simpan Controller pada application > controllers > admin.php
<?php  
class Admin extends CI_Controller
{
function__construct()
{
parent::__construct();
$this--->load->model('Admin_model');
}
function index()
{
redirect('admin/dashboard');
}
function login()
{
$this->form_validation->set_rules('username', 'username', 'required|xss_clean');
$this->form_validation->set_rules('password', 'password', 'required|xss_clean');
$this->form_validation->set_error_delimiters('', '<br>');
if ($this->form_validation->run() == TRUE)
{
$username = $this->input->post('username');
$password = $this->input->post('password');
$login_data = $this->Admin_model->cek_user_login($username, $password);
if ($login_data == TRUE)
{
$session_data = array
(
'user_id' => $login_data['id'],
'username' => $login_data['username'],
'type' => $login_data['type'],
'is_login' => TRUE
);
$this->session->set_userdata($session_data);
redirect('admin/dashboard');
}
else
{
redirect('admin/login');
}
}
$this->load->view('login');
}
function dashboard() {
$this->check_logged_in();
$this->load->view('dashboard');
}
function logout()
{
$data = array
(
'user_id' => 0,
'username' => 0,
'type' => 0,
'is_login' => FALSE
);
$this->session->sess_destroy();
$this->session->unset_userdata($data);
redirect('admin/login');
}
public function check_logged_in()
{
if ($this->session->userdata('is_login') != TRUE)
{
redirect('admin/login', 'refresh');
exit();
}
}
public function is_logged_in()
{
if ($this->session->userdata('logged_in') == TRUE)
{
return TRUE;
}
else
{
return FALSE;
}
}
}
?>

7. application > views > login.php

<h2>Login Administrator</h2>
<hr>
<?php echo validation_errors();?>
<?php echo form_open('admin/login')?>
<br>
Username :<?php echo form_input('username')?><br>
Password :<?php echo form_password('password');?><br>
<?php echo form_submit('submit', 'Login') ?>
<?php echo form_close(); ?>

8. application > views > dashboard.php
<h2>Dashboard User</h2>
<br>
LOGIN SUKSES!
<br>
<h3><strong><?php echo anchor('admin/logout', 'Logout') ?></strong></h3>




Referensi :