Assalaamu 'Alaikum warohmatullooh wabarokaatuh

Niat dan Perbuatan

Niat adalah ukuran dalam menilai benarnya suatu perbuatan, oleh karenanya, ketika niatnya benar, maka perbuatan itu benar, dan jika niatnya buruk, maka perbuatan itu buruk.
~ Imam An Nawaw
Tampilkan postingan dengan label Pembelajaran. Tampilkan semua postingan
Tampilkan postingan dengan label Pembelajaran. Tampilkan semua postingan

Materi MobProg

PRAKTIKUM #1, #2

MERANCANG ANTARMUKA PENGGUNA (USER INTERFACE)



Teori Dasar Singkat :


User interface dapat dirancang menggunakan salah satu dari 2 cara, yaitu melalui perancangan procedural (procedural design) dan deklaratif (declarative design) . Disain prosedural mengandung arti dengan kode. Sebagai contoh, pada saat Anda membuat aplikasi Swing, Anda harus menulis kode untuk membuat dan memanipulasi semua objek user interface seperti JFrame dan JButton.
Dengan demikian Swing adalah prosedural. Sebaliknya, disain deklaratif tidak melibatkan kode. Misal, ketika Anda mendesain halaman Web, Anda menggunakan HTML, yakni markup language berbasis XML yang mendeskripsikan apa yang ingin Anda lihat pada halaman Web Anda. Bukan pada bagaimana yang ingin Anda lakukan untuk hal itu. Jadi HTML adalah deklaratif.
Android diciptakan untuk menghilangkan gap antara disain prosedural dan deklaratif dengan cara membolehkan Anda untuk membuat user interface melalui salah satu saja diantaranya. Artinya, Anda dapat menggunakan hampir seluruh disain dalam kode Java saja atau dalam XML descriptor. Jika Anda amati dokumentasi dari beberapa komponen user interface android, Anda akan temukan baik yang menggunakan API Java maupun deklarasi atribut XML, akan menghasilkan effek atau output yang sama.
Google menyarankan Anda untuk menggunakan deklarasi XML, karena kode XML lebih pendek dan lebih mudah dipahami daripada kode Java, serta memiliki kemungkinan yang kecil untuk berubah dalam versi-versi baru berikutnya.
Pada waktu Anda membuat sebuah projek android baru, Android eclipse plug-in secara default meng-create beberapa file yang dibutuhkan (Lihat Gambar 1). File-file tersebut selain file Java juga terdapat file lain seperti file grafik dan XML yang merupakan resource untuk aplikasi android Anda. Misalnya untuk mendefinisikan layout aplikasi, maka disediakan main.xml dan resource lain yang dapat Anda tambahkan tergantung keperluan atau jumlah activity yang akan membentuk aplikasi.
Semua file XML selalu diawali dengan baris <?xml version="1.0" encoding="utf-8"?>, baris ini memberitahukan kompiler bahwa file dalam format XML, ditulis dalam kode UTF-8. Selanjutnya, Anda akan temukan referensi ke <LinerLayout> :
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<-- ... -->
</LinearLayout>
Layout adalah container untuk satu atau lebih objek anak (child object) dan perilaku (behavior) untuk menempatkan atau mengatur posisi objek-ojek tersebut pada screen dalam area empat persegi panjang objek induk (parent object). Beberapa layout penting yang sering digunakan yang disediakan Android antara lain adalah :
o FrameLayout. Mengaturobjek anak sehingga seluruh objek diawali dari sudut kiri atas layar (screen). Layout ini biasanya digunakan untuk View Tab atau Image switcher
o LinearLayout. Menyusun objek anak dalam bentuk baris atau kolom tunggal. RelativeLayout. Mengatur objek anak dalam kaitannya dengan objek lain atau objek induk. Biasanya digunakan dalam Form.
o TableLayout. Mengatur objek anak dalam baris dan kolom, sama persis dengan tabel HTML.

Beberapa parameter atau atribut penting yang sering digunakan dalam layout adalah:
o xmlns:android = http://schemas.android.com/apk/res/android Mendefinisikan namespace XML untuk Android.
o android:layout_width, android:layout_height Menentukan lebar dan tinggi objek induk (dalam hal ini, window dari screen). Nilai yang mungkin adalah "fill_parent" atau "wrap_content"

o android:orientation Mendefinisikan orintasi layout, apakah layout akan berbasis kolom atau baris. Nilai "vertical" untuk kolom dan "horizontal" untuk baris.
o android:layout_gravity Konstanta gravity standar yang dapat diberikan objek anak ke objek induk.
o android:padding Setting empat sisi padding dalam pixel.

Latihan percobaan #1 :

1. Buatlah sebuah projek dengan nilai-nilai berikut :
Project name : MyGameUserInterface
Build Target : Android 2.2
Aplication name : MyGame #1
Package name : coba.praktikum.mygame
Create Activity : MyGameActivity
Min SDK Version : 8
Beberapa folder dan file yang di-generate secara otomatis :



Gambar 1. Initial resource untuk projek MyGameUserInterface


Default Source File : MyGameActivity.java
package coba.praktikum.mygame;
import android.app.Activity;
import android.os.Bundle;

public class MyGameActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}

Default Auto Generate File : R.java, mencatat semua resource ID yang digunakan aplikasi.
package coba.praktikum.mygame;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}
}

2. Ubah layout default main.xml :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout mlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"/>
</LinearLayout>

Tambahkan beberapa tombol (button) dan teks, sehingga main.xml untuk aplikasi user interface Anda terlihat menjadi seperti berikut :

<?xml version="1.0"encoding="utf-8"?>
<LinearLayout mlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/main_title"/>

<Button android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/continue_label">
</Button>

<Button android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/new_game_label">
</Button>

<Button android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/about_label">
</Button>

<Button android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/exit_label">
</Button>
</LinearLayout>

3. Ubahlah nilai default pada strings.xml :

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, MyGameActivity!</string>
<string name="app_name">MyGame #1</string>
</resources>

Hapus string bernama hello, gantilah dengan string-string berikut :

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">MyGame #1</string>
<string name="main_title">ANDROID GAME</string>
<string name="continue_label">Continue Game</string>
<string name="new_game_label">New Game</string>
<string name="about_label">About Game</string>
<string name="exit_label">Exit Game</string>
</resources>

Simpan string.xml sehingga eclipse akan me-rebuild projek Anda. Pastikan bahwa ID string baru ditambahkan Android eclipse plug-in secara otomatis pada R.java. Dalam file akan terlihat seperti berikut :
public static final int about_label=0x7f040004;
public static final int app_name=0x7f040000;
public static final int continue_label=0x7f040002;
public static final int exit_label=0x7f040005;
public static final int main_title=0x7f040001;
public static final int new_game_label=0x7f040003;

4. Jalankan program



Gambar. 2 Versi pertama opening screen aplikasi MyGame #1



Latihan percobaan #2 :

Pada latihan percobaan lalu Anda telah membuat user interface untuk game Anda, cukup menarik, tetapi Anda dapat membuatnya lebih menarik lagi dengan menggunakan beberapa perubahan kosmetik seperti yang akan Anda lakukan latihan ini.
Agar tampilan user interface menjadi lebih menarik, Anda harus mengubah teks judul menjadi berwarna, lebih besar dan center, membuat tombol (button) lebih kecil, serta warna background yang lain. Oleh karena itu, berikut ini adalah pendefinisian warna dan dimensi huruf yang harus Anda letakkan di dalam /res/values/color.xml dan /res/values/dimen.xml.

color.xml :
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="background">#1a1a48</color>
<color name="title_color">#ffff0f</color>
</resources>

dimen.xml :
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<dimen name="title_size">10pt</dimen>
</resources>
1. Buatlah file color.xml dalam subdirektori /res/values. Buka file dan salin kode di atas ke dalam file, dan Save file.
2. Buatlah file dimen.xml dalam subdirektori /res/value. Buka file dan salin kode di atas ke dalam file, dan Save file.

3. Modifikasi main.xml sehingga isinya terlihat seperti berikut :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/background"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="30dip" >
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/main_title"
android:textColor="@color/title_color"
android:textSize="@dimen/title_size"
android:layout_marginBottom="25dip" />
<Button
android:id="@+id/continue_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/continue_label" >
</Button>
<Button
android:id="@+id/new_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/new_game_label" >
</Button>
<Button
android:id="@+id/about_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/about_label" >
</Button>
<Button
android:id="@+id/exit_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/exit_label" >
</Button>
</LinearLayout>
</LinearLayout>

Pada latihan ini Anda diperkenalkan dengan sebuah sintaks baru @+id/resid, digunakan untuk membuat resource ID sebuah objek yang dapat diacu objek lain. Misal @+id/about_button, artinya Anda mendefinisikan resource ID untuk tombol About, yang nantinya akan Anda gunakan untuk membuat sesuatu akan terjadi jika user memilih atau menekan tombol tersebut.

4. Jalankan program. Hasilnya akan tampak seperti Gambar. 3 di bawah :



Gambar. 3 Opening screen dengan layout baru



Screen baru ini dalam modus portrait, tampak lebih bagus, namun terlihat antara lebar dan tinggi screen tidak seimbang. Bagaimana jika orientasi screen tersebut Anda ubah ke dalam modus landscape (wide screen)?. Coba tekan Ctrl + F11. Apa yang yang Anda lihat? Bujubuneng!. Untuk memperbaiki keadaan ini, maka disain layout aplikasi Anda harus disesuaikan, sehingga cocok untuk berbagai orientasi baik dalam modus portrait maupun wide screen. Silahkan lakukan latihan percobaan berikutnya.

Latihan percobaan #3 :

Pada latihan sebelumnya, Anda telah membuat antarmuka untuk opening screen aplikasi dalam satu kolom button secara vertikal. Pada latihan percobaan ini Anda akan menggunakan control , TableLayout untuk membuat button antarmuka opening screen aplikasi game Anda menjadi dua kolom.

Modifikasi main.xml sehingga terlihat seperti berikut :

<?xml version= "1.0" encoding= "utf-8" ?>
<LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android"
android:background = "@color/background"
android:orientation = "horizontal"
android:layout_width = "fill_parent"
android:layout_height = "fill_parent"
android:padding = "15dip" >
<LinearLayout
android:orientation = "vertical"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:paddingLeft = "20dip"
android:paddingRight = "20dip" >
<TextView
android:layout_width= "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:text = "@string/main_title"
android:textColor = "@color/title_color"
android:textSize = "@dimen/title_size"
android:layout_marginBottom = "20dip" />

<TableLayout
android:layout_width= "wrap_content"
android:layout_height= "wrap_content"
android:layout_gravity= "center"
android:stretchColumns= "*" >
<TableRow>
<Button
android:id = "@+id/continue_button"
android:text = "@string/continue_label" >
</Button>
<Button
android:id = "@+id/new_button"
android:text = "@string/new_game_label" >
</Button>
</TableRow>
<TableRow>
<Button
android:id = "@+id/about_button"
android:text = "@string/about_label" >
</Button>
<Button
android:id = "@+id/exit_button"
android:text = "@string/exit_label" >
</Button>
</TableRow>
</TableLayout>
</LinearLayout>
</LinearLayout>

Jalankan program dan pastikan opening screen Anda seperti Gambar 4 berikut:



Gambar. 4 Opening screen dengan layout baru dalam modus portrait



Tugas Praktikum :

Tampilkan teks pada opening screen yang menunjukkan version dari aplikasi game Anda seperti yang
terlihat pada Gambar berikut :



Gunakan kontrol TextView dengan atribut-atribut sebagai berikut :

Attribute Value
android:layout_width ”fill_parent”
android:layout_height ”fill_parent”
android:layout_gravity ”center”
android:gravity ”center”
android:text ”@string/version_label”
android:textColor ”@color/version_color”
android:textSize ”@dimen/version_size”
android:lineSpacingExtra ”@dimen/version_spacing”
android:layout_marginTop ”20dip”

Menjalankan tombol About Game

Ketika user memilih tombol about, anda akan menampilkan pop-up windows yg disertai keterangan mengenai game anda. Untuk keperluan ini anda harus mendefinisikan sebuah activity baru ( About Activity ).
Langkahnya sbb:
1. Membuat AboutActivity.java
a. pada eclipse package explorer, sorot/src/coba.praktikum.mygame, klik kanan, pilih new -> class. Kemudian pd kotak dialog New Java Class isi name dgn AboutActivity. Kemudian finish.
b. Buka AboutActivity.java, selanjutnya override onCreate() dan panggil setContentView() sehingga seperti berikut ini :

Package coba.praktikum.mygame;
Import android.app.activity;
Import android.os.Bundle;
Public class AboutActivity extends Activity {
@Override
Protected void onCreate(Bundle savedInstanceState) {
Super.onCreateView(R.layout.about);
}
}

2. Buat file layout baru dlm dir. res/layout dgn nama about.xml, modifikasi file ini hingga terlihat seperti berikut :

<?xml version= "1.0" encoding= "utf-8" ?>
<ScrollView
xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:padding=”10dip” >
<TextView
android:id=”@+id/about_dialog_box”
android:layout_width= "wrap_content"
android:layout_height = "wrap_content"
android:text = "@string/about_text" >
</TextView>
</ScrollView>

3. Buka file res/values/string.xml, tambahkan string untuk judul dan isi kotak dialog About atau pop-up windows anda :

<string name=”about_title”>Tentang Android Game</string>
<string name=”about_text”> Android Game merupakan sebuah permainan yang dibuat oleh komunitas mahasiswa STMIK KHARISMA KARAWANG pecinta Android…</string>

Selanjutnya hubungkan dengan activity utama MyGameActivity dgn cara menambahkan import kedlm MyGame Activity.java, dan dlm method onCreate() tambahkan kode untuk memanggil findViewById() untuk menetukan view android yg akan diberikan resource-ID masing-masing tombol, dan setOnClickListener() untuk memberitahukan android mengenai objek-objek manasaja yg tergelitik ketika user menyentuh dan menekan tombol.

4. Buka MyGameActivity.java, edit file sehingga hasilnya seperti ini :

import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.view.view;
import android.view.view.onClickListener;

public class MyGameActivity extends Activity implements onClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//**menyiapkan click listener untuk semua tombol dgn view
View contenueButton = findViewById(R.id.contenue_button);
continueButton.setOnClickListener(this);
View newButton = findViewById(R.id.new_button);
newButton.setOnClickListener(this);
View aboutButton = findViewById(R.id.about_button);
aboutButton.setOnClickListener(this);
View exitButton = findViewById(R.id.exit_button);
exitButton.setOnClickListener(this);
}
//**User memilih tombol menu
Public void onClick(view v) {
Switch (v.getId()) {
//tombol about
Case R.id.about_button :
Intent I = new Intent (this, About.class);
startActivity(i);
break;
//untuk tombol menu lain disini (jika masih ada)…
}
}
}
Setiap activity harus dideklarasikan dalam file manifest. Ikuti langkah berikutnya..!

5. Buka file AndroidManifest.xml, tambahkan tag <activity> baru setelah penutup tag <activity> sebelumnya. Deklarasikan AboutActivity dgn kode xml seperti berikut :
<activity android:name”.AboutActivity”
android:label=”@string/about_title” >
android:theme=”@android:style/Theme.Dialog”
</activity>
Save file dan jalankan program…!

Memulai Game baru

1. Buka string xml, tambahkan string ini untuk membuat judul dan isi dialog box :
<string name=”judul_game_baru”>Tingkat Kesukaran</string>
<string name=”label_mudah”>Mudah</string>
<string name=”label_sedang”>Sedang</string>
<string name=”label_sukar”>Sukar</string>
2. String dari detail tingkat kesukaran (isi dialog) akan di definisikan sbgai resource array. Buat resource array baru pada directori /res/values dg nama arrays.xml, tulis kode :
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name=”tingkat_kesukaran”>
<item>@string/label_mudah</item>
<item>@string/label_sedang</item>
<item>@string/label_sukar</item>
</string-array>
</resource>
3. Buka main launch activity MyGameActivity.java, tambahkan beberapa import berikut :
import android.app.AlertDialog;
import android.content.DialogInterface;
4. Tambahkan kode dlm statemen switch dr method onClick() untuk menerima penekanan tombol New Game :
Case R.id.new_button :
openGameDialogBaru();
break;
5. Method openGameDialogBaru() digunakan untuk menangani pembuatan antarmuka untuk detail tingkat kesukaran (mudah,sedang,sukar) :
private void openGameDialogBaru() {
new AlertDialog.Builder(this).setTitle(R.string.judul_game_baru)
.setItems(R.array.tingkat_kesukaran,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialoginterface, int i) {
mulaiGame(i);
}
//memulai game baru sesuai tingkat kesukararan yg dipilih
private void mulaiGame(int i) {
//Game akan dimulai disini…
}
}).show();
}



Method setTitle() untuk mmberi judul kotak dialog menggunakan resource ID yaitu R.string.judul_game.baru..
Method setItem() untuk setting daftar item (mudah,sedang,sukar) yg akan ditampilkan sbg kotak dialog. Item harus didefinisikan sbg array string(lihat langkah2). Method ini menggunakan dua buah parameter yaitu resource ID dr daftar item dan listener yg akan dipanggil ketika salah satu item dipilih.

6. Keluar dari game
Tambahkan kode pd statemen switch dr method onClick() :

case R.id.new_button:
finish();
break;
Pada saat user memilih tombol Exit, maka method finish() akan dipanggil sehingga activity utama MyGameActivity menjadi shut down dan control akan kembali ke activity lain didlm stack aplikasi android (biasanya Home Screen).


SOAL TUGAS PRAKTIKUM :


Buatlah sebuah projek baru untuk membuat aplikasi yg menampilkan out put tampilan pada screen seperti berikut :


Petunjuk :
- Mulailah dengan menambahkan 4 resource grafik baru kedalam direktori /res/drawable (buat direktrori baru) : gambar1.png, gambar2.png, gambar3.png dan gambar4.png. resource grafik ini ditampilkan dalam control TabelLayout ditengah (center) pada output tampilan screen.
- Kemudian tambahkan 3 string baru kedalam /res/value/string.xml : untuk judul atas (Mengapa Begini), untuk judul bawah (Mengapa Begitu) dan untuk informasi seperti pada desain layout diatas.
- Buatlah file resource baru /res/value/colors.xml untuk mewarnai ketiga resource yg anda butuhkan, text judul (golden yellow #FFFF0F), text informasi versi (putih grayish #F0F0F0) dan warna background untuk text informasi versi (dark blue #1A1A48).
- Buatlah beberapa resource dimensi dlm file baru /res/values/dimens.xml tambahkan 3 nilai dimensi baru font judul (16pt), font informasi versi (5pt), spasi antar baris dr text informasi versi (3pt).
- Gunakan file2 yg telah dibuat dalam /res/layout/splash.xml (hapus main.xml buat file baru splash.xml)

Meng-Update screen layout :
1. Tambahkan control LinearLayout baru dan string :
Atribut LinearLayout Nilai Atribut
Background @android:color/black (warna dasar seluruh tampilan hitam)
Orientation vertical
Layout_width fill_parent
Layout_height fill_parent
2. Tambahkan control TextView dan beri nama id-nya dg textViewTopTitle dan seting layout_width ke fill_parent dan layout height ke wrap_content. Set control atribut text ke resource string dgn atribut textControl berwarna kuning emas (golden yellow) dan size ke resource dimensi yg telah anda buat
3. Tambahkan control Tablelayout dan beri nama id-nya dg TableLayout01, seting layout_width ke fill_parent dan layout height ke wrap_content. Set atribut stretchColumn ke “*”, untuk melebarkan kolom sesuai dg kebutuhan (modus fit screen).
4. Didalam TableLayout tambahkan control TableRow dg nama id TableRow01 (seting atribut lainnya hingga sesuai rancangan). Kemudian didalam control TableRow tambahkan 2 kontrol ImageView dgn masing2 nama id ImageView01 dn ImageView02. Untuk ImageView01 set atribut src @drwable/gambar1.png,
Untuk ImageView02 set atribut src @drwable/gambar2.png
5. Ulangi langkah 4 buat control TableRow kedua, tambahkan control ImageView untuk gambar3.png dan gambar4.png
6. Tambahkan control TextView dan beri nama id-nya dg textViewBottomTitle dan seting layout_width ke fill_parent dan layout height ke wrap_content. Set control atribut text ke resource string dgn atribut textControl berwarna kuning emas (golden yellow) dan size ke resource dimensi yg telah anda buat
7. Untuk informasi versi, buatlah control TextView dan beri nama id-nya dg textViewbottomVersion dan seting layout_width ke fill_parent dan layout height ke wrap_content. Set control atribut text ke string yang sesuai, atribut textcolor ke warna putih Grayish, dan atribut textsize ke resource dimensi yg telah dibuat juga set atribut background ke dark blue dan LineSpacingExtra kenilai resource dimensi.
8. Aturlah string layout_gravity dan gravity dr kontrol2 diatas ke posisi yg sesuai.

form mhs

<html>
<head>
<title>Untitled Document</title>
</head>

<body>
<script language="javascript">
function validasi()
{if (document.f_mhs.npm.value=="")
{ alert("Isi dulu npm anda!");
document.f_mhs.npm.focus();
return false;
}
if (document.f_mhs.nama.value=="")
{ alert("Isi dulu nama anda!");
document.f_mhs.nama.focus();
return false;
}
if (document.f_mhs.tempat_lahir.value=="")
{ alert("Isi dulu tempat lahir anda!");
document.f_mhs.tempat_lahir.focus();
return false;
}
if (document.f_mhs.tgl_lahir.value=="")
{ alert("Isi dulu tanggal lahir anda!");
document.f_mhs.tgl_lahir.focus();
return false;
}
if (document.f_mhs.alamat.value=="")
{ alert("Isi dulu alamat!");
document.f_mhs.alamat.focus();
return false;
}
return true;
}
</script>
<form action="simpan.php" name="f_mhs" method="post" onSubmit="return validasi()">
<h2 align="left">Entri Data Mahasiswa</h2>
<table border="0">
<tr><td align="right" >Npm</td><td>:</td><td><input type="text" name="npm" size="20"></input></td></tr>
<tr><td align="right" >Nama</td><td>:</td><td><input type="text" name="nama" size="20"></input></td></tr>
<tr><td align="right" >Tempat lahir</td><td>:</td><td><input type="text" name="tempat_lahir" size="20"></input></td></tr>
<tr><td align="right">Tgl Lahir</td><td>:</td><td><input type="text" name="tgl_lahir" size="20"></input></td></tr>
<tr><td align="right">Alamat</td><td>:</td><td rowspan="5"><textarea name="alamat" rows="5" cols="16"></textarea></td></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr><td><input type="submit" name="simpan" value="Simpan"></td>
<td></td><td><input type="reset" name="hapus" value="Hapus"></td></tr>
</table>
</form>
</body>
</html>

tampil.php

<html>
<head>
<title>Tampil Data Member</title>
<style type = "text/CSS">
table { border: 1px solid #C0C0C0;}
td { border: 1px solid #C0C0C0;}
</style>
</head>
<body>
<table width="600">
<tr bgcolor="#AA0CCC">
<td colspan="8"><b><p align="center">DAFTAR MEMBER</p></b></td>
</tr>
<tr bgcolor="#33F99F">
<td align="center" width="200"><b>NPM</b></td>
<td align="center" width="200"><b>Nama</b></td>
<td align="center" width="200"><b>Tempat Lahir</b></td>
<td align="center" width="150"><b>tgl lahir</b></td>
<td align="center" width="200"><b>Alamat</b></td>
</tr>
<?php
$koneksi=mysql_connect("localhost", "root", "")
or die ("Gagal konek server".mysql_error());
mysql_select_db("dbsiswa",$koneksi)
or die ("Database gagal dibuka".mysql_error());

$sql = "SELECT * FROM mahasiswa ";
$qry = mysql_query($sql, $koneksi)
or die ("Query Gagal ".mysql_error());
while($data=mysql_fetch_array($qry)){
?>
<tr>
<td><?php echo $data['npm']; ?></td>
<td><?php echo $data['nama']; ?></td>
<td align="center"><?php echo $data['tempat_lahir']; ?></td>
<td align="center"><?php echo $data['tgl_lahir']; ?></td>
<td><?php echo $data['alamat']; ?></td>
</tr>
<?php } ?>
</table>
<a href="index.php">Masukkan Data Baru</a>
</body>
</html>

simpan.php

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("dbsiswa", $con);

$sql="INSERT INTO mahasiswa (npm, nama, tempat_lahir, tgl_lahir, alamat)
VALUES
('$_POST[npm]','$_POST[nama]','$_POST[tempat_lahir]','$_POST[tgl_lahir]','$_POST[alamat]')";

if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record berhasil di masukkan...";
echo "<br><a href='index.php'>Kembali</a>";
echo "<br><a href='tampil.php'>Tampil</a>";
mysql_close($con)
?>

Manajemen Proyek

pengertian manajemen proyek
definisi manajemen proyek
manajemen proyek adalah perencanaan, pengorganisasian, memimpin dan mengendalikan sumber daya perusahaan untuk jangka waktu yang relatif singkat tujuan yang telah ditetapkan, untuk menyelesaikan tujuan dan sasaran yang spesifik, manajemen proyek selanjutnya menggunakan pendekatan sistem manajemen dengan memiliki personil fungsional (vertikal hierarki) ditugaskan untuk proyek tertentu (hierarki horizontal).
manajemen proyek dirancang untuk membuat lebih baik menggunakan sumber daya yang ada dengan membuat karya untuk mengalir horisontal maupun vertikal dalam perusahaan. pendekatan ini tidak benar-benar merusak arus birokrasi vertikal bekerja tetapi hanya mensyaratkan bahwa organisasi garis berbicara satu sama lain sehingga pekerjaan horisontal akan mencapai lebih lancar di seluruh organisasi. aliran vertikal kerja masih tanggung jawab manajer lini, aliran horizontal kerja tanggung jawab manajer proyek. dan usaha utama mereka adalah untuk berkomunikasi dan mengkoordinasikan kegiatan antara garis horizontal organisasi.

Form Barang

<html>
<head><title>Form Barang</title></head>
<body>
<script language="javascript">
function validasi()
{
if (document.f_brg.kd_brg.value=="")
{
alert ("Isi dulu kode barang!!!");
document.f_brg.kd_brg.focus();
return false;
}
if (document.f_brg.nm_brg.value=="")
{
alert ("Isi dulu nama barang!!!");
document.f_brg.nm_brg.focus();
return false;
}
if (document.f_brg.harga.value=="")
{
alert ("Isi dulu Harga!!!");
document.f_brg.harga.focus();
return false;
}
return true;
}
</script>
<form name="f_brg" action="simpanbrg.php" method="post" onClick="return validasi()">
<table border="0">
<tr><td colspan="2" align="center"><h3>FORM BARANG</h3></td></tr>
<tr><td>Kode Barang</td><td><input type="text" name="kd_brg"></td></tr>
<tr><td>Nama Barang</td><td><input type="text" name="nm_brg"></td></tr>
<tr><td>Harga Rp</td><td><input type="text" name="harga"></td></tr>
<tr><td>Satuan</td><td>
<select name="satuan">
<option value="pcs">pcs</option>
<option value="pcs">dus</option>
<option value="pcs">pack</option>
<option value="pcs">botol</option>
<option value="pcs">kg</option>
</select></td></tr>
<tr><td>Keterangan</td><td><textarea rows="4" cols="20"></textarea></td></tr>
<tr><td><input type="submit" name="simpan" value="simpan">
<input type="reset" name="batal" value="batal"></td></tr>
</table>
</form>
</body>
</html>

combo

<html>
<head>
<title>Memanggil Dokumen dalam Halaman yang Sama</title>
</head>
<body bgcolor=blue>
<select name=combo>
<?php
$koneksi=mysql_connect("localhost","root","");
mysql_select_db("db_klinikduta");
$query=mysql_query("SELECT * FROM pasien");
$j=mysql_num_rows($query);
for ($i; $i<$j; $i++)
{
$data=mysql_fetch_array($query);
echo '<option value="$data[kd_pasien]">'.$data[kd_pasien].'</option>';
}
?>
</select>
</body>
</html>

Dec'09

Fitur Login/Logout Halaman Web Dengan PHP

Banyak sekali aplikasi di internet yang menggunakan fitur login dan logout. Fungsinya tentu saja membatasi akses terhadap layanan tertentu yang disediakan pada situs tersebut. Hanya anggota yang telah terdaftar saja yang diijinkan mengakses layanan-layanan khusus tersebut. Kali ini PCplus akan membahas bagaimana membuat aplikasi yang memiliki fitur login/logout. Yang dibahas di sini adalah halaman login dan logoutnya saja, sedangkan isi aplikasi yang terletak di dalamnya bisa Anda kembangkan sendiri.
Dalam pembuatan aplikasi ini kita membutuhkan database yang akan menyimpan data-data dari para anggota yang telah terdaftar. Buatlah database dengan MySQL sebagai berikut:

mysql> create database daftar;

mysql> create table anggota(
-> uname varchar(20),
-> pswd varchar(32));

Database tersebut terdiri dari satu tabel bernama “anggota” dan tabel tersebut memiliki 2 buah field yaitu uname untuk menyimpan user name dan pswd untuk menyimpan password. Mengapa field pswd ditentukan untuk memiliki 32 karakter? Kita akan bahas nanti.
Sekarang mula-mula kita akan buat dahulu halaman pendaftaran anggota. Skripnya diberikan pada listing 1.

Listing 1. Halaman pendaftaran

<HTML>
<HEAD>
<TITLE> Sign Up </TITLE>
</HEAD>

<BODY>
Isilah username dan password yang Anda inginkan <BR>

<PRE>
<FORM NAME="frmSignUp" METHOD="post" ACTION="process.php">
Username : <INPUT TYPE="text" NAME="uname">
Password : <INPUT TYPE="password" NAME="pswd">

<INPUT TYPE="submit" VALUE="Submit">
</FORM>

</BODY>
</HTML>

Simpanlah skrip ini dengan nama signup.php. Diberi nama signup.htm pun boleh karena pada kenyataannya tidak ada skrip php pada file ini. Jika dijalankan pada browser hasilnya akan nampak seperti gambar 1.
Berikutnya kita akan membuat file process.php yang akan memproses pendaftaran kita tadi. Skripnya diberikan pada listing 2.

Listing 2. Halaman proses

<HTML>
<HEAD>
<TITLE> Processing your Account </TITLE>
</HEAD>

<BODY>
<?
$uname = $_POST['uname'];
$pswd = md5($_POST['pswd']);
$host = "localhost";
$user = "root";
$pwd = "rahasia";
$db = "daftar";
$stop = 0;
$sql = "select uname from anggota";
$conn = @mysql_connect($host,$user,$pwd) or
die("Koneksi gagal : " . mysql_error());
mysql_select_db($db);
$qry = mysql_query($sql) or
die("Query salah : " . mysql_error());
while ($row = mysql_fetch_array($qry)) {
if ($uname == $row['uname']) {
echo "Username $uname was already chosen by someone else <BR>";
echo "Go back and choose another username";
$stop = 1;
break;
}
}

if ($stop==0) {
$sql = "insert into anggota values ('$uname','$pswd')";
$qry = mysql_query($sql) or
die("Query salah : " . mysql_error());
echo "Your account is successfully created <BR>";
echo "<A HREF='login.php'> Click here </A> to login";
}
?>
</BODY>
</HTML>

Perhatikan bahwa pada baris kedua skrip php (setelah bagian <BODY>) terdapat fungsi md5. Fungsi md5 merupakan fungsi yang menghitung md5 hash dari suatu string. (Mengenai hal ini Anda dapat mendapatkan informasi lebih detil di http://www.faqs.org/rfcs/rfc1321.html). Md5 hash menghasilkan 32 karakter dalam format heksadesimal. Itulah sebabnya mengapa field pswd dibuat bertipe data karakter dengan panjang 32 karakter. Dengan md5 hash ini password Anda akan disimpan dalam bentuk yang sangat sulit ditebak.
Pada skrip ini mula-mula diperiksa apakah username yang dipilih telah ada di dalam database. Jika telah ada, maka php akan memberikan peringatan bahwa username tersebut telah ada dan Anda dipersilakan membuat username baru. Jika belum ada, maka informasi username dan password Anda akan didaftarkan ke dalam database dan Anda akan diberitahu bahwa account Anda telah dibuat. Bandingkan dengan gambar 2 dan gambar 3.
Setelah proses sign up berhasil, kini kita akan membuat halaman untuk login. Skripnya diberikan pada listing 3.

Listing 3. Halaman login

<HTML>
<HEAD>
<TITLE> Login </TITLE>
</HEAD>

<BODY>
Registered user log in: <BR>

<PRE>
<FORM NAME="frmLogIn" METHOD="post" ACTION="main.php">
Username : <INPUT TYPE="text" NAME="uname">
Password : <INPUT TYPE="password" NAME="pswd">

<INPUT TYPE="submit" VALUE="Submit">
</FORM>
</PRE>
New user please register
<A HREF="signup.php"> here </A>
</BODY>
</HTML>

Simpanlah file ini dengan nama login.php atau login.htm. Jika dijalankan pada browser hasilnya akan nampak seperti gambar 4. Skrip ini akan diolah pada file main.php. Nah, skrip dari file main.php itu sendiri diberikan pada listing 4.

Listing 4. Pengolah login

<HTML>
<HEAD>
<TITLE> Main Page </TITLE>
</HEAD>

<BODY>
<?
$uname = $_POST['uname'];
$pswd = md5($_POST['pswd']);
$host = "localhost";
$user = "root";
$pwd = "rahasia";
$db = "daftar";
$stop = 0;
$sql = "select * from anggota where uname='$uname'";
$conn = @mysql_connect($host,$user,$pwd) or
die("Koneksi gagal : " . mysql_error());
mysql_select_db($db);
$qry = mysql_query($sql) or
die("Query salah : " . mysql_error());
$num = mysql_num_rows($qry);
$row = mysql_fetch_array($qry);

if ($num==0) {
echo "Username not found <BR>";
echo "Go back and try another username";
} else {
if ($pswd!=$row['pswd']) {
echo "Your password is incorrect <BR>";
echo "Go back and type the correct password";
} else {
echo "You are successfully logged in";
}
}
?>
</BODY>
</HTML>

Pada prinsipnya skrip main.php ini mengolah data-data dari halaman login. Langkah pertama yang dilakukan tentu saja adalah koneksi ke database. Setelah itu mencocokkan username yang ada di database, jika tidak cocok Anda diminta memasukkan username kembali. Jika username cocok dengan record yang ada pada database, diperiksa passwornya. Jika passwordnya cocok, maka Anda akan dapat login, jika tidak Anda diminta untuk mengisi password yang tepat. Mudah bukan?
Namun sebenarnya skrip tersebut di atas belumlah selesai. Mengapa? Sebab skrip seperti di atas (sekalipun telah diberi “pagar” di sana-sini) tetap mudah ditembus oleh siapapun, bahkan Anda tidak perlu belajar menjadi hacker untuk dapat menembusnya.
Contoh mudah, isilah form login dengan data yang ada pada database Anda. Dengan sendirinya Anda akan login dan masuk ke halaman main.php yang bertuliskan “You are successfully logged in”. Sekarang tekan tombol “back” browser Anda, lalu setelah Anda tiba kembali ke halaman login, tekan tombol “forward”. Apa yang terjadi? Ya, Anda akan kembali masuk ke halaman main.php dan login dengan sukses. Itu artinya jika Anda lalai dan meninggalkan komputer Anda, orang lain dengan mudah akan masuk menggunakan account Anda.
Lalu bagaimana solusinya? Salah satu caranya adalah dengan menambahkan session ke dalam aplikasi tersebut. Dengan memeriksa apakah suatu variabel session pernah didaftarkan atau belum, maka aplikasi tersebut menjadi lebih aman. Dengan menggunakan solusi ini, fitur login/logout pada aplikasi kita akan terpecah menjadi lima file yang diberikan pada listing 5 hingga listing 9.

Listing 5. File login.php
<HTML>
<HEAD>
<TITLE> Login </TITLE>
</HEAD>

<BODY>
Registered user log in: <BR>
<PRE>
<FORM NAME="frmLogIn" METHOD="post" ACTION="cekpswd.php">
Username : <INPUT TYPE="text" NAME="uname">
Password : <INPUT TYPE="password" NAME="pswd">
<INPUT TYPE="submit" VALUE="Submit">
</FORM>
</PRE>

New user please register
<A HREF="signup.php"> here </A>

</BODY>
</HTML>

File login.php tersebut hanyalah form login biasa seperti gambar 4. Parameter ACTION dari tag <FORM> diisi dengan cekpswd.php, karena isian dari form ini akan diperiksa oleh file cekpswd.php.


Listing 6. File cekpswd.php

<?
session_start();
$uname = $_POST['uname'];
$pswd = md5($_POST['pswd']);
$host = "localhost";
$user = "root";
$pwd = "rahasia";
$db = "daftar";
$sql = "select * from anggota where uname='$uname'";
$conn = @mysql_connect($host,$user,$pwd) or
die("Koneksi gagal : " . mysql_error());
mysql_select_db($db);
$qry = mysql_query($sql) or
die("Query salah : " . mysql_error());
$num = mysql_num_rows($qry);
$row = mysql_fetch_array($qry);
if ($num==0 OR $pswd!=$row['pswd']) {
header("Location: sorry.php");
} else {
$_SESSION['login']=1;
header("Location: main.php");
}
?>

File cekpasswd.php digunakan untuk memeriksa username dan password yang dimasukkan pada file login.php. Pada file ini mulai diinisiasi sebuah session. Langkah selanjutnya adalah mencocokkan username dan password dengan record yang terdapat pada database. Jika username dan password itu tidak cocok – bisa usernamenya tidak terdaftar atau passwordnya yang salah – maka skrip tersebut akan mengarahkan langkahnya menuju ke file sorry.php, tapi jika benar maka arahnya akan menuju ke file main.php dan sebuah variabel session diinisiasi. (Pada skrip kita variabel tersebut diberi nama $_SESSION[‘login’]). Yang berfungsi sebagai “pengatur arah” adalah fungsi header(). Fungsi header() akan memberikan output berupa HTTP header yang harus diberikan sebelum ada tag HTML apapun. Itu sebabnya file cekpswd.php hanya terdiri dari skrip php saja dan tidak memiliki tag HTML. (Kalaupun toh ada, itu harus dibawah skrip php yang mengeluarkan HTTP header). Untuk informasi lebih lanjut mengenai HTTP header Anda dapat mengunjungi http://www.w3.org/Protocols/rfc2616/rfc2616. Yang jelas fungsi header() pada skrip kita di atas digunakan untuk redirection, yaitu mengarahkan browser untuk memanggil URL lain. Oleh karena output file cekpswd.php hanya HTTP header saja, maka file ini tidak memiliki “penampakan fisik” pada browser.

Listing 7. File main.php
<?
session_start();
if(!isset($_SESSION['login'])) {
include("login.php");
} else {
?>
<HTML>
<HEAD>
<TITLE> Main Page </TITLE>
</HEAD>

<BODY>
You are successfully logged in <BR>
You can access this application <BR> <BR>
<A HREF="logout.php"> Log Out </A>
</BODY>
</HTML>
<?
}
?>

File main.php adalah file yang akan dipanggil apabila username dan password yang dimasukkan pada halaman login.php berhasil melewati “satpam” cekpswd.php. Lihat gambar 5. File inilah yang nantinya bisa dikembangkan untuk menyusun aplikasi-aplikasi web yang diperuntukkan bagi mereka yang login. Sebelumnya pada bagian awal dari file ini diperiksa terlebih dahulu apakah variabel $_SESSION[‘login’] sudah pernah diinisiasi dengan fungsi isset(). Seandainya belum, itu artinya user yang mengakses halaman main.php belum login. Jika demikian, maka orang tersebut akan “diangkut” menuju ke halaman login.php untuk login terlebih dahulu. Apakah mungkin user yang belum login dapat langsung menuju ke halaman main.php? Mungkin saja apabila ia langsung mengetikkan “http://bla..bla..bla/main.php” di bagian address browser. Oleh karena itu harus diberi “satpam” agar user tersebut tidak main selonong saja.
Jika seandainya aplikasi Anda terdiri dari beberapa halaman, maka pada prinsipnya setiap halaman harus diberi skrip sebagai berikut:

<?
session_start();
if(!isset($_SESSION['login'])) {
include("login.php");
} else {
?>

Di bawah skrip ini baru diberikan tag-tag HTML atau skrip PHP lain yang menyusun aplikasi. Dengan demikian setiap halaman selalu memeriksa apakah variabel session $_SESSION['login'] telah diinisiasi. Jika belum, maka redirection akan beraksi dan “menendang” user untuk kembali ke halaman login.php.

Listing 8. File sorry.php

<HTML>
<HEAD>
<TITLE> Sorry </TITLE>
</HEAD>

<BODY>
Your user name or password is incorrect <BR>
Sorry, you are not allowed to access this page
</BODY>
</HTML>

File ini akan muncul apabila user salah memasukkan username atau password pada halaman login. Lihat gambar 6. User tersebut dapat mengklik tombol back di browser untuk kembali ke halaman login dan memasukkan username dan password yang benar.

Listing 9. File logout.php

<?
session_start();
unset($_SESSION['login']);
session_destroy();
header("Location: login.php");
?>


File ini digunakan untuk melakukan proses logout. Pada file ini variabel $_SESSION['login'] dihilangkan sekaligus bersama dengan sessionnya. Langkah selanjutnya adalah mengarahkan aplikasi ke halaman login.php. Setelah session dihilangkan, maka user harus login lagi untuk dapat mengakses aplikasi tersebut.
Pada dasarnya fungsi header() tidak harus mengarahkan aplikasi ke file login.php. Bisa saja Anda membuat sebuah file lain yang bernama goodbye.php misalnya yang isinya adalah ucapan perpisahan.
Nah, selamat belajar mengembangkan aplikasi dengan menggunakan fitur login/logout.

sepeda

class Sepeda{
int Kecepatan;
int gir;
}

public class SepedaBeraksi{
public static void main(String args[]){
//membuat class Sepeda
Sepeda sepedaku = new Sepeda();

//memanggil atribut dan memberi nilai
sepedaku.Kecepatan = 20;
sepedaku.gir = 4;

System.out.println("Kecepatan = " + sepedaku.Kecepatan);
System.out.println("Gir = " + sepedaku.gir);
}
}

class SepedaGunung extends Sepeda{

int SetSadel;

public void SetSadel(int nilaisadel){
SetSadel=nilaisadel;
System.out.println("Tinggi Sadel = "+SetSadel);
}
}

class SepedaGunungBeraksi{
public static void main(String args[]){
//membuat objek
SepedaGunung sepedaku = new SepedaGunung();

//memanggil method di objek

sepedaku.Kecepatan = 20;
sepedaku.gir = 4;
sepedaku.SetSadel(20);


System.out.println("Kecepatan = " + sepedaku.Kecepatan);
System.out.println("Gir = " + sepedaku.gir);
System.out.println("Set Sadel = " + sepedaku.SetSadel);
}
}

mobil

class Mobil{
String warna;
String merk;
int tahunProduksi;
}

public class MobilBeraksi{
public static void main(String args[]){
//membuat class Mobil
Mobil mobilku = new Mobil();

//memanggil atribut dan memberi nilai
mobilku.warna = "Merah";
mobilku.tahunProduksi = 2006;
mobilku.merk = "Suzuki";

System.out.println("Warna Mobilku = " + mobilku.warna);
System.out.println("Diproduksi Tahun = " + mobilku.tahunProduksi);
System.out.println("Merk Mobilku = " + mobilku.merk);
}
}

loop

public class loop{
public static void main(String[]args){
int x,y,z,a,b;

x=10;
y=10;

System.out.println("Nilai x :"+x);
System.out.println("Nilai x :"+ ++x);
System.out.println("Nilai y :"+ y);
System.out.println("Nilai y :"+ y++);
z=y;
System.out.println("Nilai z :"+ z);

a=10;
b=10;
System.out.println("Nilai a :"+ a);
System.out.println("Nilai a :"+ --a);
System.out.println("Nilai b :"+ b);
System.out.println("Nilai b :"+ b--);
}
}

public class loopdowhile{

public static void main(String[]args){
int a=0;
do{
System.out.println("Belum selesai?"+a);

a++;

}while (a<=5);
{
System.out.println("Selesai");
}
}
}


public class loopfor{

public static void main(String[]args){
int a,b,c;
for(a=1, b=1; b<=10;a++,b++){
c=a*b;
System.out.println(a + " X " + b +"=" + c);
}
}
}

lingk

class Lingkaran
{
double Luas;
double PI=3.14;

void LuasLingkaran(double r)
{
Luas=(PI*r*r);
}
}

public class LingkaranBeraksi
{

public static void main(String args[])
{
Lingkaran lingku = new Lingkaran();
lingku.LuasLingkaran(11.70);

System.out.println("Luas Lingkaran : " + lingku.Luas);
System.out.println("Luas Lingkaran : " + (int) lingku.Luas);
}
}

lingk

class Lingkaran
{
double Luas;
double PI=3.14;

void LuasLingkaran(double r)
{
Luas=(PI*r*r);
}
}

public class LingkaranBeraksi
{

public static void main(String args[])
{
Lingkaran lingku = new Lingkaran();
lingku.LuasLingkaran(11.70);

System.out.println("Luas Lingkaran : " + lingku.Luas);
System.out.println("Luas Lingkaran : " + (int) lingku.Luas);
}
}

input

import java.io.*;
public class inputkeyboard
{
public static String inputString()
{

int karakter;
String str="";
boolean selesai=false;

while (! selesai)
{
try
{
karakter=System.in.read();
if(karakter<0||(char)karakter=='\n')selesai=true;
else if((char)karakter !='\r')str=str +(char)karakter;
}
catch(java.io.IOException e)
{
System.err.println("Ada Kesalahan");
selesai=true;
}
}
return str;
}
}

import javax.swing.JOptionPane;
public class inputmessage{
public static void main(String args[]){

String name = JOptionPane.showInputDialog(" Masukan Nama : " );
String msg = "Hello " +name;
JOptionPane.showMessageDialog (null, msg);
}
}

O O P

class kelas2{
String warna;
int thnproduksi;

void printkelas(){
System.out.println("warna :"+warna);
System.out.println("Tahun :"+thnproduksi);
}
}

class kelas{
String warna;
int thnproduksi;
}

public class kelasberaksi{
public static void main(String[]args){
kelas kelasku = new kelas();

kelasku.warna = "Biru";
kelasku.thnproduksi = 2009;

System.out.println("warna : "+kelasku.warna);
System.out.println("Tahun : "+kelasku.thnproduksi);
}
}

public class kelas2beraksi{
public static void main(String[]args){
kelas2 kelasku = new kelas2();

kelasku.warna = "Biru";
kelasku.thnproduksi = 2009;

kelasku.printkelas();
}
}

index.php

<?php

include ('mode.css');

echo '<head>';
echo '<<meta http-equiv="Refresh" conten="stmik kharisma">';
echo '<frameset rows="20%,*" border="0">';
echo '<frame name="frame_judul" src="judul.php" scrolling="no">';

echo '<frameset cols="25%,60%,15%" border="0" scrolling="0">';
echo '<frame name="frame_menu" src="menu.php" scrolling="no">';
echo '<frame name="frame_isi" src="profil.php" scrolling="no">';
echo '<frame name="frame_plk" src="plk.php" scrolling="no">';
echo '</frameset>';
echo '</frameset>';
echo '</head>'
?>

judul.php

<html>
<head>
<style type="text/css">
body {
color: #000;
font-family : verdana, arial;
font-size :8px;
background: blue; repeat top;
margin:0 auto;
}
</style>
</head>
<body bgcolor = white>
<center>
<font color = lime>
<img src="image/banner.png" width="100%" height="100%" border="0">
</center>

</body>
</html>

entripasien.php

<html>
<head>
<title>Entri Data Pasien</title>
<meta http-equiv="Conten-Type" conten="text/html; charset=iso-8859-1">
<script language="JavaScript">

<!--

function trim(str)
{
return str.replace(/^\s+|\s+$/g,'');
}

function validasilogin()
{
var cpasien,calamat,cnama,cgol_darah,ckelamin,ctempat,ctanggal,
ctelp,;with(window.document.formpasien)
{
cpasien = textpasien;
cnama = textnama;
calamat = textalamat;
cgol_darah = combodarah;
cjkel = combojk;
ctempat = texttempat;
ctanggal = texttgl_lahir;
ctelp = texttelp;
}

if (trim(cpasien.value) == '')
{
alert('Silahkan Isi dulu Nama dengan lengkap ');
cpasien.focus();
return false;
}

else
if (trim(cnama.value) == '')
{
alert('Silahkan Isi dulu Nama dengan lengkap ');
cnama.focus();
return false;
}

else
if (trim(calamat.value) == '')
{
alert('Alamat Jangan Kosong !');
calamat.focus();
return false;
}

else
if (trim(cgol_darah.value) == '')
{
alert('Isi dulu Golongan Darah Pasien !');
cgol_darah.focus();
return false;
}

else
if (trim(cjkel.value) == '')
{
alert('Isi dulu Jenis Kleamin !');
cjkel.focus();
return false;
}

else
else
if (trim(ctempat.value) == '')
{
alert('Isi dulu Tempat lahir Pasien !');
ctempat.focus();
return false;
}

else
else
if (trim(ctelp.value) == '')
{
alert('Isi dulu nomor Telephon !');
ctelp.focus();
return false;
}

else
{
cpasien.value = trim(cpasien.value);
cnama.value = trim(cnama.value);
calamat.value = trim(calamat.value);
cgol_darah.value = trim(cgol_darah.value);
cjkel.value = trim(cjkel.value);
ctempat.value = trim(ctempat.value);
ctanggal.value = trim(ctanggal.value);
ctelp.value = trim(ctelp.value);
return true;
}
}
//-->
</script>
</head>


<body>
<form action = "simpanpasien.php" onsubmit="return validasipasien();"
METHOD = "POST" name ="formpasien" ENCTYPE="MULTIPART/FORM-DATA">

<font color = "blue"> <h3>ENTRI DATA PASIEN</H3>
<hr>
<table>
<tr><td align="right">Kode Pasien : </td>
<td><input id = "textpasien" name = "textpasien" type = "text"
maxlenght="8" size= "8"></td></tr>
<tr><td align="right">Nama Pasien : </td>
<td><input id = "textnama" name = "textnama" type = "text"
maxlenght="25" size= "15"></td></tr>
<tr><td align="right">Alamat : </td>
<td><input id = "textalamat" name = "textalamat" type = "text"
maxlenght="40" size= "20"></td></tr>

<tr><td align="right">Golongan Darah : </td>
<td><select id = "combodarah" name = "combodarah">
<option value = "A" selected> A </option>
<option value = "B" selected> B </option>
<option value = "AB" selected> AB </option>
<option value = "O" selected> O </option>
</td></tr>

<tr><td align="right">Jenis Kelamin : </td>
<td><select id = "combojk" name = "combojk">
<option value = "L" selected> L </option>
<option value = "P" selected> P </option>
</td></tr>

<tr><td align = "right">
<font size="2" color ="blue">Tempat Lahir :</font>
</td>
<td><input id = "texttempat" name = "texttempat" type = "text"
maxlenght="15" size= "15">
</td></tr>

<tr><td align="right">
<font size="2" color ="blue">Tanggal Lahir :</font>
</td>
<td><input id = "texttgl_lahir" name = "texttgl_lahir" type = "text"
maxlenght="15" size= "15">
</td></tr>

<tr><td align="right">
<font size="2" color ="blue">Nomor Telepon :</font>
</td>
<td><input id = "texttelp" name = "texttelp" type = "text"
maxlenght="15" size= "15">
</td></tr>

</table>
<hr>

<input name = "tombolsimpan" type = "Submit" value = "Simpan">
<hr>
</form>
</body>
</html>

Frame

Frame

<html>
<head>
<title>Latihan WEB Ke-1</title>
<frameset rows="20%,*">
<frame src=judul.htm scroling=no border=0 name=frameJudul>
<frameset cols="20%,60%,20%">
<frame src=menu.htm scroling=no border=0 name=frameMenu>
<frame src=isi.htm scroling=no border=0 name=frameIsi>
<frame src=link.htm scroling=no border=0 name=frameLink>
</frameset>
</frameset>
</head>
<body bgcolor="#4488AA">
</body>
</html>

Menu

<html>
<head>
<title>Halaman Utama</title>
</head>
<body>
<H2>Menu</H2><br>
Profile<Br>
Data
</body>
</html>

Index

<html>
<head>
<title>Latihan WEB Ke-1</title>
<frameset rows="20%,*">
<frame src=judul.htm scroling=no border=0 name=frameJudul>
<frameset cols="20%,60%,20%">
<frame src=menu.htm scroling=no border=0 name=frameMenu>
<frame src=isi.htm scroling=no border=0 name=frameIsi>
<frame src=link.htm scroling=no border=0 name=frameLink>
</frameset>
</frameset>
</head>
<body bgcolor="#4488AA">
</body>
</html>


Isi

<html>
<head>
<title>Memanggil Dokumen dalam Halaman yang Sama</title>
</head>
<body bgcolor=blue>
<a name="BagianAtas">
<a href=#BagianBawah>Bagian Bawah</a><br>
<a href=#BagianTengah>Bagian Tengah</a><br>
</a>
<p>
<font color="yellow" size="3" style="bold">
<h3>Bagian Atas</h3>
<Pre>
Tulisan ini adalah acak hanya untuk membedakan pemanggilan bagian dalam dokumen
Tulisan ini adalah acak hanya untuk membedakan pemanggilan bagian dalam dokumen
Tulisan ini adalah acak hanya untuk membedakan pemanggilan bagian dalam dokumen
</pre>
<a name="BagianTengah">
<a href=#BagianAtas>Bagian Atas</a><br>
<a href=#BagianBawah>Bagian Bawah</a><br>
</a>
<font color="red" size="3" style="bold">
<h3>Bagian Tengah</h3>
<Pre>
Tulisan ini adalah acak hanya untuk membedakan pemanggilan bagian dalam dokumen
Tulisan ini adalah acak hanya untuk membedakan pemanggilan bagian dalam dokumen
Tulisan ini adalah acak hanya untuk membedakan pemanggilan bagian dalam dokumen
pemanggilan bagian dalam dokumen
Tulisan ini adalah acak hanya untuk membedakan pemanggilan

Tulisan ini adalah acak hanya untuk membedakan
</pre>
<a name="BagianBawah">
<a href=#BagianAtas>Bagian Atas</a><br>
<a href=#BagianTengah>Bagian Tengah</a><br>
</a>
<font color="Magenta" size="3" >
<h3>Bagian Bawah</h3>
<Pre>
Tulisan ini adalah acak hanya untuk membedakan pemanggilan bagian
Tulisan ini adalah acak hanya untuk membedakan
pemanggilan bagian dalam dokumen
Tulisan ini adalah acak hanya untuk membedakan
pemanggilan bagian dalam dokumen
Tulisan ini adalah acak hanya untuk membedakan pemanggilan
pemanggilan bagian dalam dokumen
</pre>
</body>
</html>

Judul

<html>
<head>
<title>Halaman Pertama</title>
</head>
<body>
<center><H1><font face="comic sans ms" color="#ff0044">STMIK KHARISMA</font><H1></center>
</body>
</html>


Link

<html>
<head>
<title>Halaman Utama</title>
</head>
<body>
<H1>Halaman Utama</H1>
<H2>Silahkan Klik Pada Link-link berikut ini<BR>
<a href="http://www.yahoo.com">Yahoo</a><Br>
<a href="http://www.google.com">Google</a>
</body>
</html>

Link

Link Relatif

<html>
<head>
<title>Halaman Utama</title>
</head>
<body>
<H1>Halaman Utama</H1>
<H2>Silahkan Klik Pada Link-link berikut ini<BR>
<a href="HalPertama.html">Halaman Pertama</a><Br>
<a href="HalKedua.html">Halaman Kedua</a>
</body>
</html>

Link Absolute

<html>
<head>
<title>Halaman Pertama</title>
</head>
<body>
<H1>Halaman Pertama</H1>
<H2>Silahkan Klik Pada Link-link berikut ini</H2><BR>
<a href="Menu.html">Halaman Utama</a><Br><br>
Contoh Link Absolute <Br>
<a href="http://www.yahoo.com">Masuk ke Situs Yahoo</a>
</body>
</html>

<html>
<head>
<title>Halaman Kedua</title>
</head>
<body bgcolor=#0000ff>
<H1>Halaman Kedua</H1>
<H2>Silahkan Klik Pada Link-link berikut ini</H2><BR>
<a href="Menu.html">Halaman Utama</a><Br>
<br>
Contoh Link Gambar
<font color="red" size="18">
<a href="http://www.yahoo.com"><img src="gambar.jpg" align="center" width=100 height=50></a>
</body>
</html>

Link Internal
<html>
<head>
<title>Memanggil Dokumen dalam Halaman yang Sama</title>
</head>
<body bgcolor=blue>
<a name="BagianAtas">
<a href=#BagianBawah>Bagian Bawah</a><br>
<a href=#BagianTengah>Bagian Tengah</a><br>
</a>
<p>
<font color="yellow" size="3" style="bold">
<h3>Bagian Atas</h3>
<Pre>
Tulisan ini adalah acak hanya untuk membedakan pemanggilan bagian dalam dokumen
Tulisan ini adalah acak hanya untuk membedakan pemanggilan bagian dalam dokumen
Tulisan ini adalah acak hanya untuk membedakan pemanggilan bagian dalam dokumen
</pre>
<a name="BagianTengah">
<a href=#BagianAtas>Bagian Atas</a><br>
<a href=#BagianBawah>Bagian Bawah</a><br>
</a>
<font color="red" size="3" style="bold">
<h3>Bagian Tengah</h3>
<Pre>
Tulisan ini adalah acak hanya untuk membedakan pemanggilan bagian dalam dokumen
Tulisan ini adalah acak hanya untuk membedakan pemanggilan bagian dalam dokumen
Tulisan ini adalah acak hanya untuk membedakan pemanggilan bagian dalam dokumen
pemanggilan bagian dalam dokumen
Tulisan ini adalah acak hanya untuk membedakan pemanggilan

Tulisan ini adalah acak hanya untuk membedakan
</pre>
<a name="BagianBawah">
<a href=#BagianAtas>Bagian Atas</a><br>
<a href=#BagianTengah>Bagian Tengah</a><br>
</a>
<font color="Magenta" size="3" >
<h3>Bagian Bawah</h3>
<Pre>
Tulisan ini adalah acak hanya untuk membedakan pemanggilan bagian
Tulisan ini adalah acak hanya untuk membedakan
pemanggilan bagian dalam dokumen
Tulisan ini adalah acak hanya untuk membedakan
pemanggilan bagian dalam dokumen
Tulisan ini adalah acak hanya untuk membedakan pemanggilan
pemanggilan bagian dalam dokumen
</pre>
</body>
</html>

Murotal

Sebuah Syair Renungan Bagi Suami


Pernikahan atau perkawinan, menyingkap tabir rahasia.
Istri yang kamu nikahi tidaklah semulia Khadijah,
Tidaklah setaqwa Aisyah,
Pun tidak setabah Fatimah.
Justru Istri hanyalah wanita akhir zaman,
Yang punya cita-cita,
Menjadi sholehah...

Pernikahan atau perkawinan,
Mengajar kita kewajiban bersama
Istri menjadi tanah, kamu langit penaungnya
Istri ladang tanaman, kamu pemagarnya
Istri kiasan ternakan, kamu gembalanya
Istri adalah murid, kamu mursyidnya
Istri bagaikan anak kecil, kamu tempat bermanjanya

Saat Istri menjadi madu, kamu teguklah sepuasnya
Seketika Istri menjadi racun, kamulah penawar bisanya
Seandainya Istri tulang yang bengkok, berhatilah meluruskannya

Pernikahan atau perkawinan,
Menyadarkan kita perlunya iman dan taqwa
Untuk belajar meniti sabar dan ridha Allah SWT
Karena memiliki Istri yang tak sehebat mana,
Justru kamu akan tersentak dari alpa,
Kamu bukanlah Rasulullah,
Pun bukanlah Sayyidina Ali Karamallahhuwajhah
Cuma suami akhir zaman,
Yang berusaha menjadi sholeh...