1 2 3 4 5 6 7 8

Sabtu, 30 April 2011

awas bahaya kanker

awas bahaya kanker

* Awas! Sakit Kepala 'Menetap' Picu Kanker OtakPerbesar Foto

Awas! Sakit Kepala 'Menetap' Picu Kanker Otak

INILAH.COM,Jakarta - Sakit kepala yang menetap, berkepanjangan dan menahun bisa saja menjadi gejala awal dari kanker otak. Jika Anda merasakannya, waspadai gejala tersebut dan segera periksa ke dokter ahlinya.

Kanker otak memang tak 'sebeken' penyakit kanker lain, seperti kanker serviks atau kanker payudara. Namun, seperti kebanyakan penyakit kanker pada umumnya, kanker otak merupakan penyakit bersifat diam (silent killer) yang berbahaya.

Karena sifatnya itu, seringkali penyakit kanker otak baru terdeteksi setelah memasuki stadium lanjut. Jika rasa sakit di bagian kepala telah memuncak, ada kemungkinan, kanker itu telah menyebar ke bagian tubuh lain (metastasis). Kalau sudah begitu, penanganan kanker menjadi lebih rumit dan berisiko.

"Oleh karena itu, masyarakat perlu melakukan deteksi sejak dini penyakit kanker otak," saran Fielda Djuita, spesialis radiologi Rumah Sakit Mochtar Riady Comprehensive Cancer Centre Siloam Hospitals Semanggi, Jakarta.

Seperti kebanyakan penyakit kanker, diagnosis dini dan pengobatan adalah kunci untuk pemulihan. Pengobatan yang terlambat akan mengkibatkan sel kanker tersebut menyebar dan masuk ke semua jaringan otak dan pada akhirnya bisa menyebabkan kematian.

Gejala dan faktor risiko

Kanker otak tidak memiliki beberapa gejala. Tanda-tanda kanker otak tergantung pada lokasi bagian yang terkena serangan kanker. Kejang, kehilangan keseimbangan, penglihatan kabur, kesulitan bicara, pusing, kehilangan penglihatan dan pendengaran bisa menjadi tanda-tanda dari gejala kanker otak.

Walaupun tidak semua tanda-tanda itu merupakan ciri khas dan gejala kanker otak, tetapi Anda harus waspada jika sering mengalami salah satu atau beberapa gangguan seperti yang disebutkan di atas.

Sementara itu, Ada beberapa faktor penyebab risiko terkena kanker otak. Bila dalam riwayat keluarga ada yang pernah terkena penyakit ini, maka Anda memiliki risiko tersebut.

Selain itu, paparan terus-menerus dari bahan kimia tertentu dapat meningkatkan risiko kanker. Seorang perokok juga berisiko lebih tinggi terkena penyakit ini daripada orang yang tidak merokok. Faktor risiko lainnya adalah ras. Kanker otak lebih sering terjadi pada ras kulit putih.

Pengobatan kanker otak

Dengan melakukan deteksi sejak dini, perkembangan tumor ke arah sel kanker ganas dapat dicegah. Meskipun, pasien kanker stadium lanjut pun masih berpeluang sembuh.

Kini, dengan peralatan medis mutakhir yang dimiliki sejumlah rumahsakit di Tanah Air, Anda tak perlu lagi berobat ke luar negeri, seperti Singapura atau China, dua negara yang selama ini menjadi destinasi favorit para pasien penyakit kanker asal Indonesia.

Fielda Djuita menjelaskan Beberapa rumahsakit di Indonesia sudah punya fasilitas dan infrastruktur canggih untuk penyakit kanker.

Beberapa peralatan, seperti Positron Emission Tomography Computed Tomography (PET-CT) serta peralatan terapi radiasi Linear Accelerator, kini telah dapat dinikmati pasien di rumahsakit nasional. Dua alat ini sangat menunjang penanganan penyakit kanker.

Mesin PET-CT berguna meningkatkan akurasi penilaian dokter dalam menilai kondisi suatu tumor jinak atau ganas. Pada praktiknya, pasien akan diinjeksi dengan cairan gula (glukosa) yang mengandung radiasi dalam tingkatan normal.

Selanjutnya, tubuh pasien dipindai dengan PET-CT tersebut. Hasilnya, situs atau lokasi tumor ganas akan berpijar terang. Sebab, sel tumor ganas memerlukan sumber energi seperti glukosa untuk bermutasi.

Setelah diketahui lokasi dan sifat dari tumor pada tubuh pasien, para ahli medis yang menangani penyakit kanker tersebut akan melakukan diskusi. Tujuannya tak lain untuk mencari strategi yang tepat bagi pasien apakah masih diperlukan tes kembali atau diperlukan tindakan ekstra karena kanker telah menyebar ke bagian tubuh yang lain.

Bahkan, lanjut Hendra, setelah melewati proses pengangkatan kanker pun, pasien masih harus melakukan pengecekan lewat mesin PET-CT. Tujuannya untuk mengetahui apakah sel kanker atau keloid telah hilang dari tubuh pasien setelah operasi.

Setelah alat PET-CT, dokter dapat mengambil tindakan menggunakan Linear Accelator. Alat ini berfungsi untuk menyinari bagian tubuh yang menjadi situs kanker. Penyinaran dilakukan selama tiga menit. Selama penyinaran itu, pasien tidak dibius.

Biasanya, kata Fielda, pasien anak-anak penderita kanker bakal mendapatkan sekitar 25 kali penyinaran. Sedangkan penyinaran pasien kanker otak dewasa dilakukan sebanyak lebih dari 30 kali. "Dokter dapat mengombinasi antara operasi dengan penyinaran bila situs kanker adalah organ lunak dan penting seperti otak," ujar dia.

Alat Linear Accelator ini cukup penting bagi pengobatan kanker. Sebab, akurasi penyinaran alat ini cukup tinggi, sehingga bisa meminimalisir kematian sel otak yang masih sehat.

"Ada sistem yang disebut On Board Imaging (OBI). Sistem ini dapat meningkatkan akurasi karena dapat menyinari situs dalam posisi 360 derajat," ujar Fielda.

Ukuran tumor atau kanker yang dapat disinari dengan alat ini, biasanya, di atas 3 centimeter (cm). Bila di bawah 3 cm, proses pengangkatan dapat dilakukan dengan alat yang disebut Gamma Knife. Tujuannya adalah mengangkat kanker sebanyak-banyaknya dan meminimkan risiko kehilangan fungsi otak.(sumber yahoo.indonesia)

Minggu, 10 April 2011

tugas

Ini tugas yang harus dikerjakan pilih salah satu atau no 1
BUATLAH CONTEXT DIAGRAM DAN DATA FLOW DIAGRAM RINCI HASIL EXPLODE UNTUK KASUS SBB :

1. Sebuah perusahaan (yang mempunyai banyak departement) memfasilitasi kredit pinjaman bagi karyawan . hanya karyawan tetap yang boleh mengajukan pinjaman, karyawan kontrak tidak boleh, pengajuaan pinjaman diterima oleh bagiaan SDM bagi karyawan yang masa kerjanya > 2th, karyawan yang masa kerjanya < 2thn maka pengajuaan akan di tolak, Plafond pinjaman paling tinggi adalah 30juta dan pinjaman > 5juta harus menyertakan agunan yang diatur berdasarkan ketentuaan sbb :

Plafond Lama max Anggsuran Agunan
< 5 jt 2thn -
3 jt – 9,9 jt 3thn Ijazah S1
10 jt – 14,99 jt 4thn Bpkb motor > 2005
15 jt – 19,99 jt 5thn Bpkb mobil > 2005
20 jt – 30 jt 6thn Sertifikat Rumah Sendiri
Bunga pinjaman adalah 15% per-thn. Berkas pinjaman diolah oleh SDM dan SDM akan menolak jika ketentuan dan kelengkapan berkas tidak terpenuhi, jika berkas lengkap, SDM mengirim berkas ke bagian keuangan untuk dianalisis, jika besar anggsuran per-bulan < 70% (gaji kotor – potongan) maka pinjaman disetujui keuangan. Analisa kredit meliputi : status karyawan, masa kerja, plafond, agunan, angsuran, jika semua ok berarti kredit disetujui. Profile karyawan terdiri dari NIP, Nama, Tgl/bln/th masuk, gaji kantor, potongan, status karyawan(tetap/kontrak),departemen.

a. Susunlah Requirement Functional dan Non Funtional
b. Buatlah context diagram sesuai scenario di atas dan DFD rincinya
c. Buatlah ER diagram dengan menggunakan tools
d. Apakah table yang terbentuk mendekati dengan DATA STORE dalam DFD rinci??
Ket : Anda boleh menambahkan asumsi yang lain jika diperlukan

2. Suatu rental mobil memperbolehkan penyewa untuk menyewa mobil lebih dari satu mobil pada satu hari H baik dengan sopir ataupun tidak. Rental mobil tersebut mempunyai beberapa jenis mobil. Semua mobil di sewa tanpa disertai BBM. Semua informasi penyewa, sopir dan mobil tercatat dalam atribut dan diasumsikan kepada anda. Penyewa mobil mengisi formulir penyewaan mobil dilengkapi dengan identitas KTP yang masih valid. Formulir divalidasi oleh petugas marketing. Pimpinan kemudian memeriksa formulir yang telah divalidasi marketing dan kemudian Pimpinan memberikan persetujuan atau penolakan penyewaan mobil berdasarkan validasi dan identifikasi identitas penyewa yang dilakukna oleh marketing..
Anda diminta untuk
a. Susunlah Requirement Functional dan Non Funtional
b. Buatlah context diagram sesuai scenario di atas dan DFD rincinya
c. Buatlah ER diagram dengan menggunakan tools
d. Apakah table yang terbentuk mendekati dengan DATA STORE dalam DFD rinci??

Ket : Anda boleh menambahkan asumsi yang lain jika diperlukan


Stok Latihan :

3. Sistem pengajuan kredit rumah dari proses pengajuran kredit, verifikasi berkas agunan, penilaian agunan, penerimaan/penolakan kredit sampai akta kredit dan pencairan kredit. (Boleh buat asumsi dan alur sendiri)
4. Perhatikan kasus/cerita berikut yang disajikan dalam bentuk konteks diagram di bawah ini. Susun requirements functional dan non functional pada Aplikasi Pemesanan Online (Online Purchasing System)





















5. Lakukan dekomposisi dari kasus soal nomor 2 pada level yang menurut anda mencukupi dengan mempertahankan external entity Customer dan Warehouse.
6. Buatlah form aplikasi sederhana untuk Aplikasi Pemesanan Online (Online Purchasing System) sesuai skenario dekomposisi sesuai dengan jawaban nomor 3 yang telah anda lakukan

Kamis, 24 Maret 2011

Membuat Menu melayang

Membuat Menu melayang
LANGKAH PERTAMA
1. Masuk ke Blogger dengan ID anda.
2. Pilih Rancangan kemudian klik Edit HTML.
3. Back up template dulu, kalau takut gagal.
4. Cari kode ini : head pada template anda.
5. Copy Seluruh kode dibawah ini, kemudian paste tepat diatas kode tadi :


6. ganti alamat blog anda
7. buat LABEL untuk setiap Entri
8. Klik tombol Simpan Template

Sabtu, 19 Maret 2011

RESEP KUE PUDING COKLAT

Bahan :

* 100 gr Coklat bubuk
* 1 1/2 ltr Susu segar
* 200 gr Gula pasir
* 2 bungkus Agar - agar bubuk putih
* 4 btr Kuning telur (kocok)

Cara Membuat :

* Larutkan coklat bubuk dengan sedikit susu.
* Masak sisa susu bersama dengan gula pasir dan agar - agar bubuk.
* Tambahkan larutan coklat kedalamnya, masak hingga mendidih.
* Ambil sedikit adonan susu tersebut dan tuang kedalam kocokan telur, aduk rata.
* Tuangkan kembali kedalam adonan susu, rebus hingga mendidih.
* Angkat dan aduk - aduk hingga uapnya hilang.
* Tuangkan kedalam cetakan yang sudah dibasahi air.
* Biarkan hingga mengeras, simpan dalam lemari pendingin.
* Sajikan puding dalam keadaan dingin.



Resep masakan ayam masak pedas

Bahan Membuat Ayam Masak Pedas:

* 500 g ayam, potong-potong
* 100 g tepung terigu
* Minyak untuk menggoreng

Bumbu Membuat Ayam Masak Pedas:

* 7 butir bawang merah, haluskan
* 5 siung bawang putih, haluskan
* 9 buah cabe merah, haluskan
* 1 sdm air jeruk nipis
* 2 sdt gula pasir
* 3 cm lengkuas, memarkan
* 2 batang serai, memarkan
* 1 sdt garam halus

Cara Membuat ayam masak pedas:

1. Bumbui potongan ayam dengan garam, aduk rata. Gulingkan ke atas tepung terigu hingga permukaan ayam terselimuti tepung.
2. Panaskan minyak, goreng potongan ayam hingga matang dan berwarna kuning kecoklatan. Angkat, tiriskan.
3. Panaskan 5 sendok makan minyak dalam wajan. Tumis bawang merah, bawang putih, cabe merah, serai, lengkuas, air jeruk nipis, gula pasir dan garam hingga harum.
4. Masukkan potongan ayam, masak sambil diaduk-aduk hingga bumbu meresap dan matang. Angkat. Tuang ke dalam piring saji. Hidangkan.

Untuk 5 Porsi

Tip: Daging ayam bisa diganti dengan ikan, udang atau daging sapi. Lauk pedas yang satu ini memang menggugah selera. Cara Membuatnya sederhana dan bahan-bahan mudah didapat. Cocok sebagai lauk berbuka puasa atau bersantap sahur.

Minggu, 27 Februari 2011

Mengenal dan memahami , Apa sih Program Java itu ?

Java bermula dari sebuah proyek penelitian perusahaan bernama Sun Microsystem dengan nama sandi Green pd tahun 1991. pada penelitianya terdapat pridiksi bahwa Microprosesor akan digunakan luas pada peralatan2 elektronik. Sebab adanya bermacam -macam tipe mikroprosesor, maka dibutuhkan sebuah bahasa pemrograman yg mampu berjalan di semua mikroprosesor atau sistem operasi.

Maka terciptalah bahasa pemrograman baru yang diberi nama Oak. Oleh James Gosling.
kemudian pada tahun 1995 nama Oak di ganti dengan Nama Java

Java dibagi menjadi empat jenis edisi;
1.Java card; adalah java yg digunakan pada peralatan elektronik yang memiliki memori sangat terbatas, contohnya smard card.
2.J2ME(java 2Micro Edition) digunakan untuk pembuatan wireless device ,handphone, PDA.dsb
3.J2SE(java 2 standart edition) digunakan dalam pembuatan pemrograman aplikasi Desktop
4.J2EE(java 2 Enterprise Edition) digunakan dalam pembuatan program aplikasi server atau web server

Demikian sepintas sejarah Pemrograman Java.

DASAR PEMROGRAMAN JAVA

Kode yang ditulis dalam Java harus sesuai dengan kaidah2 yang sudah di tentukan .Nah bagaimana aturan yang di gunakan java , termasuk sintak dan semantiknya, berikut adalah elemen2 bahasa java yang harus di kuasai sebelum menulis koding program.

1.IDENTIFIER

IDENTIFIER adalah nama yg digunakan untuk mengidentifikasi elemen program, contoh : program_hitung bilangan. dan dalam penulisan program ada aturan2nya. oke man...

2.KEYWORD
adalah kata kunci yg mempunyai arti khusus atau bahasa2 baku program contoh, class, boolean, break, public, dst. sehingga tidak dapat di gunakan sebagai nama program.

3. Tipe data primitif
Tipe data primitif adalah tipe data yg punya nilai tertentu
macam2 tipe data:
* tipe data integer atau bilangan bulat: byte,short,int,long.
* tipe data float / bil nyata : float, double.
* tipe data char / karakter: char
* tipe data Boolean : boolean.

4. Variabel

Variabel digunakan untuk menyimpan data sehingga dapat diolah oleh program , contoh sintak deklarasi variabel;

float gaji;
short x,y,z;

5. kostanta
6. Statement
7. Operator
8. dsb.....

itulah sekilas dasar pemrograman java lain kali aku sambung dengan yang lebih dahsat lagi oke man.......!


TEKNIK PEMROGRAMAN.
Sekilas tentang Pemrograman.
Kata program dapat diartikan:
a. Untuk mendiskripsikan instruksi-instruksi tersendiri; yang biasanya disebut dengan source
code; yang dibuat oleh programmer.
b. Untuk mendiskripsikan suatu keseluruhan bagian dari software yang executable.
Dapat juga dikatakan bahwa sebuah program merupakan himpunan atau kumpulan
instruksi-instruksi tertulis yang dibuat oleh programmer atau suatu bagian executable dari suatu
software.
Kata pemrograman dapat diartikan sebagai cara membuat program; dalam konteks ini
berarti membuat program komputer. Dapat juga dikatakan bahwa pemrograman merupakan
suatu kumpulan urutan perintah ke komputer untuk mengerjakan sesuatu. Perintah-perintah ini
membutuhkan suatu bahasa tersendiri yang dapat dimengerti oleh komputer.
Bahasa merupakan suatu kumpulan simbol-simbol atomic yang terbatas. Kumpulan
simbol ini disebut dengan alphabet. Untaian simbol ditulis secara berurutan dari satu ke yang
lainnya setelahnya. Satu untaian yang tidak terlihat, disebut dengan untaian kosong (empty
string), biasanya dilambangkan dengan "". Beberapa untaian menjadi bagian dari suatu bahasa,
beberapa yang lainnya tidak. Untaian yang menjadi bagian dari suatu bahasa disebut dengan kata
atau kalimat.
Bahasa yang dapat dimengerti oleh komputer disebut dengan Bahasa Pemrograman.
Bahasa Pemrograman mempengaruhi cara dan teknik pemrograman. Di bawah ini beberapa cara
dan teknik pemrograman:

Pemrograman Procedural.
Pada pemrograman procedural, banyak yang berpikir bahwa program merupakan suatu
rangkaian procedure yang memanipulasi data. Suatu procedure merupakan suatu instruksi
khusus yang dieksekusi secara berurutan. Trik dalam pemrograman ini adalah mengingat
procedure mana yang sudah dipanggil dan data apa yang sudah diubah. Untuk
menanggulangi kebingungan dan ketidak jelasan situasi pada saat pengingatan pemanggilan
procedure, maka pemrograman terstruktur diciptakan.

Pemrograman Fungsional.
Pemrograman ini berdasarkan teori fungsi matematika, artinya pemrograman ini terdiri
atas fungsi-fungsi seperti fungsi-fungsi yang ada di matematika. Fungsi merupakan
pembangun utama program sehingga fungsi-fungsi ini dapat melewatkan parameter dan
mengembalikan nilai yang sudah di proses.
Pemrograman Terstruktur.
Secara mendasar, pemrograman terstruktur merupakan suatu teknik yang memecah
masalah besar menjadi lebih kecil dan lebih mudah dipahami, sehingga masalah yang besar
dapat diselesaikan dengan baik. Biasanya masalah-masalah yang menjadi lebih kecil tersebut
diimplementasikan ke dalam suatu procedure atau fungsi. Banyak bahasa pemrograman yang
mendukung pemrograman terstruktur, diantaranya bahasa C.
Pemrograman Berbasis Modul.
Pemrograman ini membentuk banyak modul, masing-masing modul merupakan suatu
group dari entitas variabel, procedure, atau fungsi. Dapat dikatakan bahwa modul merupakan
sebuah program kecil yang mandiri. Sebuah program merupakan kumpulan dari modulmodul
ini. MODULA-2 dan ADA mendukung pemrograman ini.
Pemrograman Berorientasi Object.
Pada saat ini, pemrograman komputer menjadi lebih interaktif, yaitu ketika muncul suatu
kejadian, maka program harus dapat dengan cepat menanggapi kejadian tersebut. Contohnya


Ditulis oleh: Iwan Binanto
© 2005
2
adalah pemakai meng-klik suatu tombol menu di layar monitor atau memilih menu dengan
keyboard.
Pemrograman berorientasi object pada dasarnya merupakan perlakuan untuk data dan
procedure yang memanipulasinya; sebagai object tunggal. C++, JAVA, dan bahasa
pemrograman Visual mendukung pemrograman ini.
Pemrograman Generic.
Pada dasarnya terfokus pada modul-modul generic yang di-instantiate pada waktu
kompilasi ataupun pada waktu run-time, untuk membuat suatu entitas (struktur data, fungsi,
dan procedure) yang diperlukan oleh program. Pendekatan ini untuk mendorong
pemrograman menuju ke pengembangan tingkat tinggi dan abstraksi generic sebagai suatu
unit modularity.
Pemrograman generic ini tidak berdiri sendiri melainkan bergabung dengan
pemrograman berorientasi objek, seperti Eiffel, atau dengan pemrograman fungsional, seperti
ML. Dapat juga bergabung dengan bahasa-bahasa pemrograman yang mempunyai teknik
pemrograman lebih dari satu, seperti Ada, dan C++.

Pemrograman Declarative.
Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan (declarative)
daripada memecahkan masalah dengan implementasi algoritma. Bahasa pemrograman yang
dibutuhkan untuk pemrograman declarative ini adalah bahasa pemrograman Logika, seperti
PROLOG dan bahasa pemrograman berbasis aturan, seperti OPS5 dan CLIPS.
Cara dan teknik pemrograman tersebut berjalan dan berkembang seiring dengan
perkembangan hardware komputer dan kebutuhan manusia. Pada awalnya kebutuhan untuk
perhitungan numerik digunakan bahasa FORTRAN, untuk kebutuhan penggunaan di bidang
bisnis digunakan bahasa COBOL, untuk kebutuhan pengembangan kecerdasan buatan digunakan
bahasa LISP dan PROLOG, untuk kebutuhan pengembangan sistem; terutama Sistem Operasi
komputer digunakan bahasa C (bahkan sampai sekarang bahasa C masih digunakan untuk
pengembangan Sistem Operasi, seperti UNIX).

Pemrograman Berbasis Modul.
Modula-2 adalah komputer bahasa pemrograman yang dirancang dan dikembangkan antara tahun 1977 dan tahun 1980 oleh Niklaus Wirth di ETH Zurich sebagai revisi dari Pascal untuk melayani sebagai bahasa pemrograman tunggal untuk sistem operasi dan perangkat lunak aplikasi untuk workstation pribadi Lilith . [1] Para konsep utama adalah:
• Modul sebagai unit kompilasi untuk kompilasi terpisah
• Para coroutine sebagai blok bangunan dasar untuk proses konkuren
• Jenis dan prosedur yang memungkinkan akses ke mesin-data spesifik.
Modula-2 telah dipahami oleh Niklaus Wirth sebagai penerus bahasa pemrograman sebelumnya nya Pascal . [2] Desain bahasa juga dipengaruhi oleh bahasa pemrograman Mesa dan kemungkinan pemrograman baru dari komputer pribadi awal Xerox Alto , baik dari Xerox, yang Wirth pada tahun 1976 itu melihat tahun cuti di Xerox PARC . [3]
Isi
[hide]
• 1 Deskripsi
• 2 Dialek
• 3 Supersets
• 4 Derivatif
• 5 Bahasa elemen
o 5.1 Dilindungi kata
o 5.2 Pervasif Identifier
• 6 Gunakan di embedded system
o Cambridge 6.1 Modula-2
o 6.2 Mod51
o 6.3 Modula-GM
• 7 saat ini compiler
• 8 Buku
• 9 Referensi
• 10 Pranala luar

[ sunting ] Deskripsi
Modula-2 adalah tujuan umum bahasa prosedural , cukup fleksibel untuk melakukan pemrograman sistem, tapi dengan aplikasi yang lebih luas. Secara khusus, ia dirancang untuk mendukung kompilasi terpisah dan abstraksi data dalam cara langsung. Sebagian besar sintaks didasarkan pada bahasa Wirth yang lebih awal dan lebih terkenal, Pascal . Modula-2 ini dirancang untuk secara luas mirip dengan Pascal, dengan beberapa elemen dan ambiguitas sintaksis dihapus dan penambahan penting dari konsep modul, dan dukungan bahasa langsung untuk multiprogramming .
Modul Modula-2 dapat digunakan untuk merangkum serangkaian subprogram terkait dan struktur data, dan membatasi visibilitas mereka dari bagian lain dari program. Desain modul menerapkan fitur data abstraksi dari Modula-2 dalam cara yang sangat bersih. Modula-2 program terdiri dari modul, masing-masing terdiri dari dua bagian: modul definisi, bagian antarmuka, yang berisi hanya bagian-bagian dari subsistem yang diekspor (terlihat modul lain), dan modul pelaksanaan, yang berisi kode kerja yang internal untuk modul.
Bahasa memiliki kontrol lingkup yang ketat. Secara khusus lingkup modul dapat dianggap sebagai suatu dinding tak tertembus: Kecuali tidak ada standar pengidentifikasi objek dari dunia luar terlihat dalam modul diimpor kecuali secara eksplisit, tidak ada objek modul internal terlihat dari luar kecuali secara eksplisit diekspor.
Misalkan modul M1 ekspor objek a, b, c, dan P dengan menghitung pengidentifikasi dalam suatu daftar ekspor eksplisit
DEFINISI MODUL M1;
EKSPOR RESMI a, b, c, P;
...
Kemudian objek a, b, c, dan P dari modul M1 menjadi yang sekarang dikenal luar module M1 sebagai M1.a, M1.b, M1.c, dan M1.P. Mereka diekspor dengan cara memenuhi syarat untuk alam semesta (diasumsikan modul M1 adalah global). Nama modul mengekspor, yakni M1, digunakan sebagai kualifikasi diikuti oleh nama objek.
Misalkan modul M2 berisi deklarasi berikut IMPOR
MODUL M2;
IMPOR M1;
...
Maka ini berarti bahwa objek yang diekspor oleh M1 modul dengan semesta program melampirkan sekarang dapat digunakan di dalam modul M2. Mereka direferensikan dengan cara yang berkualitas seperti ini: M1.a, M1.b, M1.c, dan M1.P. Contoh:
...
M1.a: = 0; M1.c: = M1.P (M1.a + M1.b);
...
Berkualitas ekspor menghindari bentrokan nama: Sebagai contoh, jika modul lain juga akan ekspor M3 sebuah benda yang bernama P, maka kita masih dapat membedakan dua benda, karena M1.P berbeda dari M3.P. Berkat ekspor berkualitas tidak peduli bahwa kedua benda yang disebut P dalam mengekspor mereka modul M1 dan M3.
Ada teknik alternatif yang tersedia, yang digunakan secara luas oleh Modula-2 programmer. Misalkan modul M4 dirumuskan seperti ini
MODUL M4;
DARI IMPOR M1 a, b, c, P;
Maka ini berarti bahwa objek yang diekspor oleh M1 modul untuk alam semesta lagi dapat digunakan di dalam modul M4, tapi sekarang dengan hanya referensi ke pengidentifikasi diekspor dengan cara "wajar tanpa pengecualian" seperti ini: a, b, c, dan P. Contoh:
...
a: = 0; c: = P (a + b);
...
Teknik ini memungkinkan impor unqualifying penggunaan variabel dan benda-benda lain di luar modul mengekspor mereka di persis sederhana yang sama, yaitu wajar tanpa pengecualian, rupa di dalam modul ekspor. Dinding sekitarnya semua modul kini telah menjadi tidak relevan untuk semua benda-benda yang selama ini telah secara eksplisit diperbolehkan. Tentu saja unqualifying impor hanya dapat digunakan jika tidak ada bentrokan nama.
Aturan-aturan ekspor dan impor mungkin tampak tidak perlu ketat dan verbose. Tapi mereka tidak hanya menjaga benda terhadap akses yang tidak diinginkan, tetapi juga memiliki efek samping yang menyenangkan untuk menyediakan referensi silang-otomatis dari definisi dari setiap identifier dalam program: jika identifier yang memenuhi syarat dengan nama modul, maka definisi berasal dari modul yang. Sebaliknya jika terjadi tidak memenuhi syarat, hanya mencari mundur, dan Anda juga akan menemukan sebuah deklarasi identifier, atau kejadian dalam sebuah pernyataan IMPOR yang nama modul itu berasal dari. Properti ini menjadi sangat berguna ketika mencoba untuk memahami program-program besar yang berisi banyak modul.
Bahasa menyediakan (terbatas) prosesor tunggal konkurensi ( monitor , coroutines dan transfer eksplisit kontrol) dan untuk akses perangkat keras (alamat absolut, sedikit manipulasi, dan interupsi ). Menggunakan nama kesetaraan .
[ sunting ] Dialek
Ada dua dialek utama dari Modula-2. Yang pertama adalah PIM, dinamai "Pemrograman di Modula-2" buku oleh Niklaus Wirth . Ada tiga edisi utama dari PIM, kedua, edisi ketiga (dikoreksi) dan keempat, masing-masing varian sedikit menggambarkan bahasa. Dialek utama kedua adalah ISO, dari upaya standarisasi oleh Organisasi Internasional untuk Standardisasi .
• PIM2 (1983)
o Diperlukan EKSPOR klausul eksplisit dalam modul definisi.
• PIM3 (1985)
o Dihapus klausul EKSPOR dari modul definisi berikut pengamatan bahwa segalanya dalam modul definisi mendefinisikan antarmuka untuk modul itu, maka klausul EKSPOR itu berlebihan.
• PIM4 (1989)
o Ditentukan perilaku operator MOD ketika operan adalah negatif.
• ISO (1996)
o ISO Modula-2 diselesaikan sebagian besar ambiguitas dalam PIM Modula-2. Ini menambahkan KOMPLEKS data jenis dan LONGCOMPLEX, pengecualian, penghentian modul (AKHIRNYA klausa) dan standar lengkap I / O perpustakaan. Ada perbedaan kecil banyak dan klarifikasi. [4]
[ sunting ] Supersets
Ada beberapa supersets Modula-2 dengan ekstensi bahasa untuk domain aplikasi tertentu:
• PIM supersets
o Canterbury Modula-2 , diperpanjang dengan Oberon-seperti catatan extensible
o Modula-2 + , diperpanjang dengan benang preemptive dan pengecualian
o Modula-2 * ekstensi, paralel [5]
o Modula-P , perpanjangan paralel [6]
o Modula-Prolog, menambahkan lapisan Prolog [7]
o Modula / R, dengan ekstensi database relasional
o Modula-GM, ekstensi untuk embedded system
• ISO supersets
o Mod51 , diperpanjang dengan IEC1131 konstruksi untuk pembangunan tertanam
[ sunting ] Derivatif
Ada beberapa bahasa derivatif yang menyerupai Modula-2 sangat erat tetapi bahasa baru di kanan mereka sendiri. Kebanyakan bahasa yang berbeda dengan tujuan yang berbeda dan dengan kekuatan dan kelemahan mereka sendiri:
• Modula-3 , yang dikembangkan oleh sebuah tim mantan Xerox karyawan yang telah pindah ke DEC dan Olivetti [8]
• Tujuan Modula-2 , diperpanjang dengan Smalltalk-seperti konstruksi berorientasi objek [9] (masih sedang dirancang, tidak ada compiler yang tersedia)
• Oberon , dikembangkan di ETH Zürich untuk Sistem Oberon [10] tersedia secara online .
• Oberon-2 , Oberon dengan ekstensi OO [11]
• Oberon aktif , Perpanjangan lagi berorientasi obyek Oberon , dikembangkan juga di ETH dengan tujuan utama untuk mendukung pemrograman paralel pada multiprosesor dan sistem multicore.
• Parallaxis, bahasa untuk mesin-independen data-paralel pemrograman [12]
• Umbriel, dikembangkan oleh Pat Terry sebagai pengajaran bahasa [13]
• YAFL, bahasa penelitian oleh Darius Blasband [14]
Banyak bahasa pemrograman saat ini telah mengadopsi fitur Modula-2.
[ sunting ] Bahasa elemen
[ sunting ] kata-kata Reserved
PIM [2,3,4] mendefinisikan 40 kata-kata berikut reserved:
DAN ELSIF LOOP REPEAT
ARRAY END MOD RETURN
BEGIN EXIT SET MODUL
EKSPOR DENGAN TIDAK MAKA
KASUS UNTUK DARI KE
Const DARI JENIS ATAU
DEFINISI JIKA SAMPAI POINTER
PROSEDUR PELAKSANAAN DIV VAR
DO WHILE IMPOR RESMI
ELSE DALAM REKOR DENGAN
[ sunting ] Identifier Pervasif
PIM [3,4] mendefinisikan 29 pengidentifikasi berikut meresap (built-in):
ABS excl longint NYATA
BitSet UKURAN LONGREAL SALAH
Float boolean MAX BENAR
CAP HALT MIN TRUNC
Kardinal TINGGI NIL VAL
CHAR INC ODD
CHR INCL ORD
Desember INTEGER PROC
[ sunting ] Penggunaan di embedded system
[ sunting ] Cambridge Modula-2
Cambridge Modula-2 oleh Sistem Mikroprosesor Cambridge didasarkan pada subset dari PIM4 dengan ekstensi bahasa untuk pengembangan embedded. Compiler berjalan pada MS-DOS dan menghasilkan kode untuk mikrokontroler berbasis embedded m68k menjalankan sistem operasi Minos.
[ sunting ] Mod51
Mod51 oleh Mandeno Granville Electronics adalah berdasarkan ISO Modula-2 dengan ekstensi bahasa untuk pengembangan embedded berikut IEC1131, sebuah standar industri untuk programmable logic controller (PLC) terkait erat dengan Modula-2. Mod51 compiler menghasilkan kode mandiri untuk mikrokontroler berbasis 80C51.
[ sunting ] Modula-GM
Delco Electronics , maka anak perusahaan GM Hughes Electronics, mengembangkan sebuah versi dari Modula-2 untuk sistem kontrol embedded dimulai pada tahun 1985. Delco menamakannya Modula-GM. Itu adalah bahasa tingkat tinggi pertama digunakan untuk mengganti kode bahasa mesin untuk sistem tertanam dalam unit kontrol Delco engine (ECU). Hal ini penting karena Delco itu memproduksi lebih dari 28.000 ECU per hari pada tahun 1988 untuk GM, ini kemudian produsen terbesar di dunia ECU. [15] Penggunaan eksperimental pertama dari Modula-GM di controller tertanam dalam Pengereman 1985 Antilock Sistem Kontroler yang didasarkan pada mikroprosesor 68xxx Motorola, dan pada tahun 1993 Gen-4 ECU yang digunakan oleh Kereta (Tim Auto Racing Championship) dan IRL (Indy Racing League) tim. [16] Penggunaan produksi pertama dari Modula-GM penggunaannya dalam GM truk dimulai dengan model tahun 1990 VCM (Kendaraan Control Module) yang digunakan untuk mengelola GM Powertrain yang Vortec mesin. Modula-GM juga digunakan pada semua ECU untuk GM Buick V6 90 ° keluarga 3800 Seri II digunakan pada tahun 1997-2005 Model Buick Park Avenue . The Modula-GM compiler dan perangkat lunak manajemen terkait yang bersumber oleh Delco dari Intermetrics .
Modula-2 dipilih sebagai dasar untuk bahasa tingkat tinggi Delco karena kekuatan yang banyak atas pilihan alternatif bahasa lainnya pada tahun 1986. Setelah Delco Electronics berputar off dari GM (dengan divisi komponen lain) untuk membentuk Delphi pada tahun 1997, sumber global diperlukan bahwa non-proprietary bahasa tingkat tinggi perangkat lunak digunakan. ECU tertanam perangkat lunak sekarang dikembangkan di Delphi dikompilasi dengan kompiler C komersial.
[ sunting ] compiler Lancar
• ACK Modula-2 untuk Minix ( freeware )
• Aglet Modula-2 untuk Amiga OS 4.0/PPC ( freeware )
• Cambridge Modula-2 untuk berbagai mikro-kontroler dan sistem operasi tertanam Minos (komersial + perangkat lunak berpemilik )
• Canterbury Modula-2 menghasilkan kode sumber Java
• FST Perangkat Lunak Alat Dilengkapi Modula-2 untuk MS-DOS ( freeware )
• Titik Gardens Modula-2 untuk BSD, Linux, OS / 2, Solaris dan NET. - ISO compliant ( freeware )
• GNU Modula-2 untuk platform GCC, versi 1.0 dirilis 11 Desember 2010;, PIM2 PIM3, PIM4, dan ISO compliant ( perangkat lunak bebas , GPL )
• M2Amiga untuk Amiga ( perangkat lunak bebas )
• M2M oleh N. Wirth dan kolaborator dari ETH Zurich, platform independen, menghasilkan M-kode untuk mesin virtual ( freeware )
• MacMETH oleh N. Wirth dan kolaborator dari ETH Zurich untuk Macintosh, tetapi hanya Klasik ( freeware )
• Mod51 untuk keluarga Intel 80x51 mikro-kontroler, ISO compliant, IEC1132 ekstensi (komersial + berpemilik )
• Modula-2 R10 Referensi compiler untuk Modula-2 R10 (open-source/peer-review)
• ModulaWare untuk OpenVMS, baik VAX dan Alpha, ISO compliant (komersial + berpemilik )
• MTC Modula-2 untuk penerjemah C, tersedia dalam Modula-2 dan sumber C ( perangkat lunak bebas )
• XDS-x86 asli untuk Windows dan Linux (x86), ISO compliant, Topspeed perpustakaan yang kompatibel ( freeware )
• Tujuan Modula-2 , target C dan LLVM, lintas-platform, dengan ekstensi untuk Kakao dan sintaks (lisensi gaya BSD)
• p1 Modula-2 untuk Macintosh, baik Classic dan Mac OS X (PPC dan Karbon hanya API), ISO compliant (komersial + berpemilik )
• The Modula-2 Karlsruhe Kompilator MOCKA untuk berbagai platform, PIM compliant (komersial, freeware Linux / BSD versi)
• TERRA M2VMS untuk OpenVMS, baik VAX dan Alpha, PIM compliant (komersial + berpemilik )
• The Modula-2 Ulm Sistem untuk Solaris, baik SPARC dan MC68K (perangkat lunak bebas, GPL )
• XDS-C untuk Windows dan Linux, 16 - dan 32-bit platform, penargetan C (K & R & ANSI), ISO compliant, Topspeed perpustakaan yang kompatibel ( freeware )
Sumber untuk semua entri: Modula2.net [17]
[ sunting ] Buku
• Niklaus Wirth, Pemrograman dalam Modula-2, Edisi Keempat, 1989, ISBN 0-387-50150-9


Eiffel adalah ISO -standar, berorientasi obyek bahasa pemrograman yang dirancang oleh Bertrand Meyer (seorang pendukung objek-orientasi dan penulis Berorientasi Objek Software Konstruksi ) dan Eiffel Software . Desain bahasa berhubungan erat dengan metode pemrograman Eiffel. Keduanya didasarkan pada seperangkat prinsip, termasuk desain dengan kontrak , pemisahan perintah-query , yang prinsip seragam-akses , yang prinsip tunggal-pilihan , yang prinsip terbuka-tertutup , dan pilihan-operan pemisahan .
Banyak konsep awalnya diperkenalkan oleh Eiffel kemudian menemukan cara mereka ke dalam Java , C # , dan bahasa lainnya. Ide-ide desain baru bahasa, khususnya melalui ECMA / ISO proses standarisasi, terus dimasukkan ke dalam bahasa Eiffel.
Isi
[hide]
• 1 Karakteristik
• 2 Desain tujuan
o 2.1 Latar Belakang
o 2.2 Implementasi dan lingkungan
o 2.3 Spesifikasi dan standar
• 3 Sintaks dan semantik
o 3.1 Secara keseluruhan struktur
 3.1.1 Penjajakan
 3.1.2 "Hello, world!"
o 3.2 Desain oleh Kontrak
o 3.3 Fitur, perintah, permintaan
o 3.4 Overloading
o 3,5 Genericity
o 3,6 Warisan dasar
o 3,7 tangguhan kelas dan fitur
o 3.8 Mengganti nama
o 3,9 Tuple
o 3.10 Agen
o 3.11 Setelah rutinitas
o 3.12 Konversi
o 3.13 Exception handling
o 3.14 Concurrency
o 3.15 Operator dan sintaks braket, assigner perintah
o 3.16 leksikal dan sintaks properti
o 3.17 Gaya konvensi
o 3.18 Antarmuka untuk alat-alat lain dan bahasa
• 4 Referensi
• 5 Eksternal Link

[ sunting ] Karakteristik
Karakteristik kunci dari bahasa Eiffel meliputi:
• Sebuah berorientasi objek struktur program di mana kelas berfungsi sebagai unit dasar dari dekomposisi.
• Desain oleh kontrak terintegrasi dengan konstruksi bahasa lainnya.
• Manajemen memori otomatis, biasanya dilaksanakan oleh pengumpulan sampah .
• Warisan , termasuk multiple inheritance , mengubah nama , redefinisi , "pilih", non-conforming warisan , dan mekanisme lain yang dimaksudkan untuk membuat warisan aman.
• Terbatas dan tidak dibatasi pemrograman generik
• Sebuah sistem yang seragam jenis penanganan baik nilai dan semantik referensi di mana semua jenis, termasuk jenis dasar seperti INTEGER, yang berbasis kelas.
• Statis mengetik
• Void keselamatan, atau perlindungan terhadap panggilan statis pada referensi nol, melalui mekanisme yang melekat-jenis.
• Agen, atau benda yang membungkus perhitungan, berhubungan erat dengan penutupan dan kalkulus lambda .
• Setelah rutinitas, atau rutinitas dievaluasi hanya sekali, untuk berbagi objek dan inisialisasi desentralisasi.
• Kata Kunci berbasis sintaks di ALGOL / Pascal tradisi tapi pemisah bebas, sejauh titik koma adalah opsional, dengan sintaks operator yang tersedia untuk rutinitas.
• Kasus ketidakpekaan
[ sunting ] Desain tujuan
Eiffel menekankan pernyataan deklaratif atas kode prosedural dan upaya untuk menghilangkan kebutuhan untuk petunjuk pembukuan.
Eiffel shuns trik coding atau teknik pengkodean dimaksudkan sebagai optimasi petunjuk untuk compiler. Tujuannya tidak hanya untuk membuat kode lebih mudah dibaca, tetapi juga untuk memungkinkan pemrogram untuk berkonsentrasi pada aspek-aspek penting dari program tanpa macet dalam rincian pelaksanaan. Kesederhanaan Eiffel dimaksudkan untuk mempromosikan jawaban sederhana, extensible, dapat digunakan kembali, dan dapat diandalkan untuk masalah komputasi. Compiler untuk program komputer yang ditulis di Eiffel menyediakan teknik optimasi yang luas, seperti otomatis di-lapisan, yang menghilangkan programmer bagian dari beban optimasi sambil menghasilkan kode yang efisiensi adalah sebanding dengan kode yang ditulis dalam C + + [ rujukan? ].
[ sunting ] Latar Belakang
Eiffel awalnya dikembangkan oleh Eiffel Software , sebuah perusahaan awalnya disebut Interaktif Software Engineering Inc (ISE) didirikan oleh Bertrand Meyer . Object-Oriented Software Konstruksi berisi pengobatan rinci konsep dan teori dari teknologi objek yang menyebabkan desain Eiffel. [ 2]
Tujuan desain di balik bahasa Eiffel, perpustakaan, dan metode pemrograman adalah untuk memungkinkan programmer untuk menciptakan handal, modul perangkat lunak dapat digunakan kembali. Eiffel mendukung multiple inheritance , genericity , polimorfisme , enkapsulasi , jenis-aman konversi, dan kovarians parameter . Kontribusi Eiffel yang paling penting untuk rekayasa perangkat lunak adalah desain oleh kontrak (dBc), di mana pernyataan , prekondisi , postconditions dan invariants kelas yang digunakan untuk membantu memastikan ketepatan program tanpa mengorbankan efisiensi.
Desain Eiffel didasarkan pada teori berorientasi objek pemrograman, dengan pengaruh hanya kecil dari paradigma lain atau kepedulian untuk mendukung kode warisan. Eiffel secara resmi mendukung tipe data abstrak . Dalam desain Eiffel, sebuah teks perangkat lunak harus dapat mereproduksi dokumentasi desain dari teks itu sendiri, menggunakan implementasi formal dari "Tipe Data Abstrak".
[ sunting ] Implementasi dan lingkungan
EiffelStudio adalah sebuah lingkungan pengembangan terintegrasi tersedia di bawah baik sebagai open source atau lisensi komersial. Ini menawarkan lingkungan berorientasi objek untuk rekayasa perangkat lunak . EiffelEnvision adalah plug-in untuk Microsoft Visual Studio yang memungkinkan pengguna untuk mengedit, mengkompilasi, dan debug proyek Eiffel dari dalam Microsoft Visual Studio IDE. EiffelStudio dan EiffelEnvision bebas untuk non-komersial. Empat lainnya open source implementasi yang tersedia: "The Eiffel Compiler" tecomp , Gobo Eiffel, SmartEiffel -implementasi GNU, berdasarkan versi yang lebih tua dari bahasa-dan Visual Eiffel .
Beberapa bahasa pemrograman lain memasukkan unsur-unsur pertama kali diperkenalkan di Eiffel. Sather , misalnya, pada awalnya didasarkan pada Eiffel tetapi sejak menyimpang, dan sekarang termasuk beberapa pemrograman fungsional fitur. Pengajaran interaktif-bahasa Biru , pendahulu BlueJ , juga Eiffel berbasis. Para Alat Apple Media mencakup Eiffel Apple yang berbasis di Bahasa Media.
[ sunting ] Spesifikasi dan standar
Eiffel bahasa definisi adalah standar internasional ISO . Standar ini dikembangkan oleh ECMA International , yang pertama kali disetujui standar pada tanggal 21 Juni 2005 sebagai Standar ECMA-367, Eiffel: Bahasa Analisis, Desain dan Pemrograman. Pada bulan Juni 2006, ECMA dan ISO mengadopsi versi kedua. Pada bulan November 2006, ISO pertama kali diterbitkan bahwa versi. Standar dapat ditemukan dan digunakan secara gratis di situs ECMA. [3] Versi ISO [4] adalah identik dalam segala hal, kecuali format.
Eiffel Software, "The Eiffel Compiler" tecomp dan Eiffel-perpustakaan-pengembang Gobo telah berkomitmen untuk menerapkan standar; Eiffel Software EiffelStudio 6.1 dan "The Eiffel Compiler" tecomp mengimplementasikan beberapa dari baru utama mekanisme-khususnya, agen inline, assigner perintah , braket notasi, non-conforming warisan, dan jenis terlampir. Para SmartEiffel Tim telah berbalik dari standar ini untuk membuat versi sendiri dari bahasa, yang mereka percaya untuk lebih dekat dengan gaya asli dari Eiffel. Obyek Peralatan belum diungkapkan apakah versi masa depan dari kompiler Eiffel yang akan mematuhi standar.
Standar mengutip pendahulunya, berikut Eiffel-bahasa spesifikasi:
• Bertrand Meyer: Eiffel: Bahasa, Prentice Hall, cetakan kedua, 1992 (cetakan pertama: 1991)
• Bertrand Meyer: Standar Eiffel (revisi dari entri sebelumnya), yang sedang berlangsung, 1997-sekarang, di halaman ETL3 Bertrand Meyer , dan
• Bertrand Meyer: Object-Oriented Software Konstruksi, Prentice Hall: edisi pertama, 1988; edisi kedua, 1997.
Versi saat ini dari standar dari bulan Juni 2006 berisi beberapa inkonsistensi (redefinitions kovarian misalnya) [ rujukan? ]. Komite ECMA belum mengumumkan apapun timeline dan arahan mengenai bagaimana menyelesaikan inkonsistensi.
[ sunting ] Sintaks dan semantik
[ sunting ] Struktur Keseluruhan
Sebuah Eiffel "sistem" atau "program" adalah koleksi kelas. Di atas tingkat kelas, Eiffel mendefinisikan cluster, yang pada dasarnya kelompok kelas, dan mungkin dari subclusters (cluster bersarang). Cluster bukan sintaksis bahasa membangun , melainkan sebuah konvensi organisasi standar. Biasanya aplikasi Eiffel akan diselenggarakan dengan masing-masing kelas dalam file terpisah, dan masing-masing cluster dalam sebuah direktori yang berisi file kelas. Dalam organisasi ini, subclusters adalah subdirektori. Sebagai contoh, di bawah konvensi organisasi dan casing standar, xe mungkin nama file yang mendefinisikan sebuah kelas yang disebut X.
Kelas A berisi fitur, yang mirip dengan "anggota", "atribut" atau "metode" di lain bahasa berorientasi objek pemrograman. Kelas A juga mendefinisikan invariants, dan mengandung sifat-sifat lainnya, seperti bagian "catatan" untuk dokumentasi dan metadata. Tipe data standar Eiffel, seperti INTEGER , STRING dan ARRAY , semua kelas sendiri.
Setiap sistem harus memiliki kelas yang ditunjuk sebagai "root", dengan salah satu prosedur penciptaan yang ditunjuk sebagai "prosedur root". Pelaksana sistem terdiri dari menciptakan sebuah instance dari kelas akar dan melaksanakan prosedur akarnya. Umumnya, melakukan hal menciptakan objek baru, panggilan fitur baru, dan seterusnya.
Eiffel memiliki lima instruksi dieksekusi dasar: tugas, penciptaan objek, panggilan rutin, kondisi, dan iterasi. Struktur kontrol Eiffel adalah ketat dalam menegakkan pemrograman terstruktur: setiap blok memiliki tepat satu entri dan tepat satu pintu keluar.
[ sunting ] Penjajakan
Tidak seperti banyak bahasa berorientasi objek, tapi seperti Smalltalk , Eiffel tidak mengizinkan tugas apapun ke dalam bidang obyek, kecuali dalam fitur dari obyek. Eiffel menekankan menyembunyikan informasi dan abstraksi data, dengan mengharuskan antarmuka formal untuk mutasi data. Untuk memasukkannya ke dalam bahasa lain bahasa berorientasi objek pemrograman, semua bidang Eiffel adalah "pribadi", dan "setter" yang diperlukan untuk memodifikasi nilai-nilai. Sebuah Hasilnya dari hal ini adalah bahwa "setter" bisa, dan biasanya melakukan, melaksanakan invariants yang menyediakan sintaks Eiffel.
[ sunting ] "Halo, dunia!"
Sebuah bahasa pemrograman terlihat dan merasa sering disampaikan dengan menggunakan "Halo, dunia!" program. Seperti program yang ditulis di Eiffel mungkin:
kelas
Hello_world
menciptakan
membuat
Fitur
membuat
lakukan
cetak ("Halo, dunia% N!")
akhir
akhir
Program ini berisi kelas HELLO_WORLD . Konstruktor (membuat rutin) untuk kelas, bernama make , memanggil print sistem rutin perpustakaan untuk menulis "Hello, world!" pesan untuk output.
[ sunting ] Desain oleh Kontrak
Konsep desain oleh kontrak merupakan pusat Eiffel. Mekanisme terintegrasi dengan bahasa. Kontrak panduan redefinisi fitur dalam warisan.
• Prasyarat Rutin: prasyarat hanya dapat menjadi lemah oleh warisan; setiap panggilan yang memenuhi persyaratan leluhur memenuhi orang-orang dari keturunan.
• Postcondition Rutin: postcondition hanya bisa diperkuat oleh warisan; hasil yang dijamin oleh nenek moyang masih disediakan oleh keturunan.
• Kelas invarian
Selain itu, bahasa ini mendukung "instruksi cek" (semacam "menegaskan") dan invariants loop.
[ sunting ] Fitur, perintah, permintaan
Karakteristik utama dari sebuah kelas adalah bahwa hal itu berisi satu set fitur. Sebagai kelas merupakan satu set benda run-time, atau "contoh", sebuah fitur operasi pada benda tersebut. Ada dua jenis fitur: pertanyaan dan perintah. Permintaan A memberikan informasi tentang sebuah contoh. Sebuah perintah memodifikasi sebuah contoh.
Perbedaan perintah query penting untuk metode Eiffel. Secara khusus:
• Seragam-Prinsip Akses: dari sudut pandang perangkat lunak klien membuat panggilan dengan fitur kelas, apakah query adalah atribut (field dalam objek masing-masing) atau fungsi (algoritma) tidak harus membuat perbedaan apapun. Sebagai contoh a_vehicle.speed bisa menjadi atribut, diakses dari representasi objek, atau bisa juga dihitung dengan fungsi yang membagi jarak dengan waktu. Notasi adalah sama dalam kedua kasus, sehingga mudah untuk mengubah representasi tanpa mempengaruhi sisa dari perangkat lunak.
• Command-Query Separation Prinsip : Pertanyaan tidak harus memodifikasi contoh. Ini bukan aturan bahasa tetapi prinsip metodologis. Jadi dalam gaya Eiffel yang baik, kita tidak menemukan "mendapatkan" fungsi yang mengubah sesuatu dan kembali hasilnya, melainkan ada perintah (prosedur) untuk mengubah objek, dan pertanyaan untuk memperoleh informasi tentang objek, yang dihasilkan dari perubahan sebelumnya.
[ sunting ] Overloading
Eiffel tidak memungkinkan argumen overloading . Setiap nama fitur dalam kelas selalu peta untuk fitur tertentu dalam kelas. Satu nama, dalam satu kelas, berarti satu hal. Ini pilihan desain membantu pembacaan kelas, dengan menghindari penyebab ambiguitas tentang yang rutin akan dipanggil oleh panggilan. Hal ini juga menyederhanakan mekanisme bahasa, khususnya, ini adalah apa yang membuat mekanisme multiple inheritance Eiffel mungkin. [5]
Nama dapat, tentu saja, digunakan kembali di kelas yang berbeda. Misalnya fitur ditambah (bersama dengan infiks nya alias "+") didefinisikan dalam beberapa kelas: INTEGER, REAL, STRING, dll
[ sunting ] Genericity
Kelas dapat generik, untuk mengekspresikan bahwa mereka parameter berdasarkan jenis. Parameter generik muncul dalam tanda kurung siku:
DAFTAR kelas [G] ...
G dikenal sebagai "parameter generik formal". (. Eiffel cadangan "argumen" untuk rutinitas, dan menggunakan "parameter" hanya untuk kelas generik) Dengan pernyataan tersebut G mewakili dalam kelas tipe sewenang-wenang; sehingga fungsi dapat mengembalikan nilai tipe G, dan rutin dapat mengambil argumen jenis yang:
item: G lakukan ... akhir
meletakkan (x: G) lakukan ... akhir
Para LIST [INTEGER] dan LIST [WORD] adalah "turunan generik" dari kelas ini. Kombinasi diizinkan (dengan n: INTEGER , w: WORD , il: LIST [INTEGER] , wl: LIST [WORD] ) adalah
n:. = il Item
wl. meletakkan (w)
INTEGER dan WORD adalah "parameter generik yang sebenarnya" dalam turunan generik.
Hal ini juga mungkin untuk memiliki 'dibatasi' parameter formal, yang parameter aktual harus mewarisi dari kelas tertentu, "kendala". Misalnya di
kelas HASH_TABLE [G, KUNCI -> HASHABLE]
turunan HASH_TABLE [INTEGER, STRING] ini hanya berlaku jika STRING mewarisi dari HASHABLE (seperti itu memang tidak di perpustakaan Eiffel khas). Dalam kelas, memiliki KEY dibatasi oleh HASHABLE berarti bahwa untuk x: KEY adalah mungkin untuk berlaku untuk x semua fitur HASHABLE , seperti dalam x.hash_code .
[ sunting ] Dasar-dasar Pewarisan
Untuk mewarisi dari satu atau lebih orang lain, kelas akan mencakup inherit klausa di awal:
kelas C mewarisi
Sebuah
B

- ... Istirahat deklarasi kelas ...
Kelas bisa mendefinisikan kembali (menimpa) beberapa atau semua fitur yang diwariskan. Ini harus secara eksplisit diumumkan pada awal kelas melalui redefine subklausa dari klausa warisan, seperti dalam
kelas C mewarisi
Sebuah
mendefinisikan f, g, h akhir
B
mendefinisikan u, v akhirnya
[ sunting ] kelas tangguhan dan fitur
Kelas dapat didefinisikan dengan deferred class daripada dengan class untuk menunjukkan bahwa kelas tidak dapat langsung instantiated. Non-instantiatable kelas disebut kelas abstrak dalam beberapa bahasa berorientasi objek pemrograman lainnya. Dalam bahasa Eiffel, hanya "efektif" kelas dapat dipakai (mungkin keturunan dari kelas ditangguhkan). Sebuah fitur juga dapat ditangguhkan dengan menggunakan deferred kata kunci di tempat yang do klausa. Jika kelas memiliki semua fitur ditangguhkan itu harus dinyatakan sebagai ditangguhkan, namun kelas tanpa fitur ditangguhkan tetap mungkin itu sendiri ditangguhkan.
Kelas tangguhan memainkan beberapa peran yang sama sebagai antarmuka dalam bahasa seperti Java, walaupun banyak teori berorientasi objek pemrograman percaya interface itu sendiri sebagian besar jawaban untuk Jawa kurangnya multiple inheritance (yang Eiffel) [. siapa? ]
[ sunting ] Mengganti nama
Sebuah kelas yang mewarisi dari satu atau lebih orang lain mendapat semua fitur-fiturnya, secara default dengan nama asli mereka. Mungkin, bagaimanapun, mengubah nama mereka melalui rename klausa. Ini diperlukan dalam kasus multiple inheritance jika ada nama bentrokan antara fitur mewarisi, tanpa mengubah nama, kelas yang dihasilkan akan melanggar prinsip-overloading tidak disebutkan di atas dan karenanya akan valid.
[ sunting ] Tuple
Jenis tupel dapat dipandang sebagai bentuk sederhana dari kelas, memberikan atribut saja dan yang sesuai "setter" prosedur. Sebuah tipe tuple yang khas berbunyi
Tuple [nama: STRING; berat: NYATA, tanggal: TANGGAL]
dan dapat digunakan untuk menggambarkan pengertian sederhana dari catatan kelahiran jika kelas tidak diperlukan. Sebuah contoh seperti tupel hanyalah sebuah urutan nilai dengan tipe tertentu, yang diberikan dalam kurung, seperti
["Brigitte", 3,5, Last_night]
Komponen seperti tupel dapat diakses seolah-olah itu tupel tag atribut dari kelas, misalnya jika t telah ditetapkan tupel atas maka t.weight memiliki nilai 3,5.
Berkat gagasan assigner perintah (lihat di bawah), notasi dot juga dapat digunakan untuk menetapkan komponen seperti tupel, seperti dalam
t. berat: = t. berat + 0,5
Tag tupel adalah opsional, sehingga dimungkinkan juga untuk menulis tipe tuple sebagai TUPLE [STRING, REAL, DATE] . (Dalam beberapa kompiler ini adalah satu-satunya bentuk tupel, sebagai tag diperkenalkan dengan standar ECMA.)
Spesifikasi yang tepat dari misalnya TUPLE [A, B, C] adalah bahwa hal itu menggambarkan urutan dari setidaknya tiga unsur, yang tiga pertama dari jenis A , B , C masing-masing. Sebagai hasil TUPLE [A, B, C] sesuai dengan (mungkin ditugaskan untuk) TUPLE [A, B] , untuk TUPLE [A] dan untuk TUPLE (tanpa parameter), jenis tupel yang paling atas semua jenis tupel sesuai.
[ sunting ] Agen
"Agen" Eiffel mekanisme membungkus operasi menjadi obyek. Mekanisme ini dapat digunakan untuk pemrograman iterasi,-event, dan konteks lain di mana hal ini berguna untuk melewati operasi di sekitar struktur program. Bahasa pemrograman lain, terutama yang menekankan pemrograman fungsional , memungkinkan pola yang sama menggunakan continuations , penutupan , atau generator ; agen Eiffel menekankan bahasa yang berorientasi objek paradigma, dan menggunakan sintaks dan semantik yang sama dengan blok kode dalam Smalltalk dan Ruby .
Misalnya, untuk mengeksekusi my_action blok untuk setiap elemen my_list , satu akan menulis:
my_list do_all (my_action agen).
Untuk mengeksekusi my_action hanya pada unsur memuaskan my_condition , pembatasan / filter dapat ditambahkan:
my_list do_if (agen my_action, my_condition agen).
Dalam contoh ini, my_action dan my_condition adalah rutinitas. Awalan mereka dengan agent menghasilkan objek yang mewakili rutin yang sesuai dengan semua sifat-sifatnya, khususnya kemampuan untuk disebut dengan argumen yang tepat. Jadi, jika a mewakili bahwa obyek (misalnya karena a adalah argumen untuk do_all ), instruksi
a. panggilan ([x])
akan memanggil rutin asli dengan argumen x , seolah-olah kita telah secara langsung disebut rutinitas asli: my_action (x) . Argumen untuk call dikirimkan sebagai tupel, di sini [x] .
Hal ini dimungkinkan untuk menyimpan beberapa argumen untuk agen terbuka dan membuat orang lain tertutup. Argumen terbuka dilewatkan sebagai argumen untuk call : mereka disediakan pada saat menggunakan agen. Argumen ditutup disediakan pada saat definisi agen. Sebagai contoh, jika action2 memiliki dua argumen, iterasi
my_list do_all (agen action2 (, y?)).
iterates action2 (x, y) untuk nilai-nilai berturut- x , dimana argumen kedua tetap diatur ke y . Tanda tanya ? menunjukkan sebuah argumen terbuka; y adalah argumen yang tertutup agen. Perhatikan bahwa sintaks dasar agent f adalah tangan pendek untuk agent f (?, ?, ...) dengan semua argumen terbuka. Hal ini juga memungkinkan untuk membuat target agen terbuka melalui notasi {T}? mana T adalah jenis target.
Perbedaan antara operan terbuka dan tertutup (operan = argumen + sasaran) sesuai dengan perbedaan antara variabel terikat dan bebas dalam kalkulus lambda . Ekspresi agen seperti action2 (?, y) dengan beberapa operan tertutup dan terbuka untuk beberapa sesuai versi dari operasi asli kari pada operan tertutup.
Mekanisme agen juga memungkinkan mendefinisikan agen tanpa referensi ke sebuah rutinitas yang ada (seperti my_action , my_condition , action2 ), melalui agen inline seperti dalam
my_list do_all (agen (s:. STRING)
membutuhkan
not_void: s / = Void
lakukan
s. append_character (',')
memastikan
ditambahkan: s. count = count + lama s. 1
akhir)
Agen inline berlalu sini dapat memiliki semua perangkap rutinitas normal, termasuk prasyarat, postcondition, klausul penyelamatan (tidak digunakan di sini), dan tanda tangan lengkap. Hal ini untuk menghindari mendefinisikan rutinitas ketika semua yang dibutuhkan merupakan perhitungan untuk dibungkus di agen. Hal ini berguna khususnya untuk kontrak, sebagai invarian dalam klausul yang mengungkapkan bahwa semua elemen dari daftar yang positif:
. my_list for_all (agen (x: INTEGER): boolean lakukan Result: = (x> 0) akhir)
Mekanisme Agen daun saat ini kemungkinan run-time error tipe (jika rutin dengan argumen n adalah dilewatkan ke agen mengharapkan argumen m dengan m <10 maka
upaya: = usaha + 1
mencoba kembali
akhir
akhir
Contoh ini bisa dibilang cacat untuk apa pun tetapi program sederhana, namun, karena kegagalan koneksi yang akan diharapkan. Untuk program yang paling rutin seperti nama attempt_connecting_to_server akan lebih baik, dan postcondition tidak akan menjanjikan sambungan, meninggalkan itu sampai ke pemanggil untuk mengambil langkah yang tepat jika sambungan tidak dibuka.
[ sunting ] Concurrency
Sejumlah jaringan dan perpustakaan threading yang tersedia, seperti EiffelNet dan EiffelThreads. Sebuah model konkurensi untuk Eiffel, berdasarkan konsep desain dengan kontrak, adalah sendok , atau Sederhana serentak Pemrograman Berorientasi Objek, belum bagian dari definisi bahasa resmi namun tersedia di EiffelStudio . Cameo [7] adalah variasi (diimplementasikan) sendok untuk Eiffel. Concurrency juga berinteraksi dengan pengecualian. Pengecualian asynchronous dapat mengganggu (di mana rutinitas menaikkan pengecualian setelah pemanggil nya sendiri telah selesai). [8]
[ sunting ] Operator dan sintaks braket, assigner perintah
Melihat Eiffel perhitungan benar-benar berorientasi obyek dalam arti bahwa setiap operasi relatif ke sebuah obyek, yaitu "target". Jadi misalnya penambahan seperti
a + b
secara konseptual dipahami sebagai olah itu adalah pemanggilan metode
a. ditambah (b)
dengan target a fitur, plus dan argumen b .
Tentu saja, yang pertama adalah sintaks konvensional dan biasanya lebih disukai. Sintaks operator memungkinkan untuk menggunakan formulir baik dengan menyatakan fitur (misalnya di INTEGER , tapi ini berlaku untuk kelas dasar lainnya dan dapat digunakan di lain yang seperti operator yang sesuai):
ditambah alias "+" (lainnya: INTEGER): INTEGER
- ... Deklarasi fungsi normal ...
akhir
Kisaran operator yang dapat digunakan sebagai "alias" cukup luas, mereka termasuk operator standar seperti "+" tetapi juga "operator bebas" yang terbuat dari non-alfanumerik simbol. Hal ini memungkinkan untuk desain dan notasi infiks khusus awalan, misalnya dalam matematika dan aplikasi fisika.
Setiap kelas mungkin di samping memiliki satu fungsi alias untuk "[]", yang "braket" operator, yang memungkinkan notasi a [i, ...] sebagai sinonim untuk af (i, ...) di mana f adalah fungsi yang dipilih . Hal ini sangat berguna untuk struktur wadah seperti array, tabel hash, dll daftar Untuk akses contoh untuk sebuah elemen dari sebuah hash tabel dengan kunci string dapat ditulis
nomor: = phone_book ["JILL SMITH"]
"Perintah Assigner" adalah mekanisme pendamping dirancang dalam semangat yang sama yang memungkinkan mapan, notasi nyaman ditafsirkan kembali dalam kerangka pemrograman berorientasi obyek. Perintah Assigner memungkinkan tugas-seperti sintaks untuk memanggil "setter" prosedur. Tugas yang tepat tidak pernah dapat dari bentuk ax := v karena ini melanggar menyembunyikan informasi, Anda harus pergi untuk perintah setter (prosedur). Misalnya kelas tabel hash dapat memiliki fungsi dan prosedur
Item alias "[]" (kunci: STRING): ELEMEN [3]
- Elemen kunci `kunci '.
- ("Getter" query)
lakukan
...
akhir

meletakkan (e: ELEMEN; kunci: STRING)
- Masukkan elemen `e ', mengaitkannya dengan key' kunci '.
- ("Setter" perintah)
lakukan
...
akhir
Kemudian untuk menyisipkan elemen Anda harus menggunakan panggilan eksplisit untuk perintah setter:
[4] phone_book. Meletakkan (New_person, "JILL SMITH")
Hal ini dimungkinkan untuk menulis ini sama sebagai
[5] phone_book ["JILL SMITH"]: = New_person
(Dalam cara yang sama bahwa phone_book ["JILL SMITH"] adalah sinonim untuk number := phone_book.item ("JILL SMITH") ), asalkan deklarasi item sekarang mulai (pengganti [3]) dengan
Item alias "[]" (kunci: STRING): ELEMEN menetapkan menempatkan
Hal ini menyatakan put sebagai perintah assigner terkait dengan item dan, dikombinasikan dengan alias braket, membuat [5] hukum dan setara dengan [4]. (Hal ini juga dapat ditulis, tanpa mengambil keuntungan dari braket, sebagai phone_book.item ("JILL SMITH") := New_person .
catatan: daftar argumen dari yang assigner dibatasi menjadi: (a kembali jenis, semua daftar argumen ...)
[ sunting ] sifat leksikal dan sintaks
Eiffel tidak case-sensitive. Token make , maKe dan MAKE semua menunjukkan identifier yang sama. Lihat, bagaimanapun, "aturan style" di bawah.
Komentar yang diperkenalkan oleh -- (dua strip berturut-turut) dan memperpanjang ke akhir baris.
Titik koma, sebagai pemisah instruksi, adalah opsional. Sebagian besar waktu titik koma hanya dihilangkan, kecuali untuk memisahkan beberapa instruksi pada satu garis. Hal ini menyebabkan kekacauan kurang pada halaman program.
Tidak ada bersarang fitur dan deklarasi kelas. Akibatnya struktur kelas Eiffel sederhana: beberapa kelas tingkat klausa (warisan, invarian) dan suksesi deklarasi fitur, semua pada tingkat yang sama.
Ini adalah kebiasaan untuk fitur kelompok menjadi terpisah "klausul fitur" untuk dibaca lebih, dengan satu set standar tag fitur dasar muncul dalam urutan yang standar, misalnya:
kelas HASH_TABLE [ELEMEN, KUNCI -> HASHABLE] mewarisi TABLE [ELEMEN]

fitur - Inisialisasi
- ... Deklarasi perintah inisialisasi (penciptaan prosedur / konstruktor) ...

Fitur - Akses
- ... Deklarasi non-boolean query pada item objek negara, misalnya ...

fitur - Status Laporan
- ... Deklarasi pertanyaan boolean pada negara objek, misalnya is_empty ...

fitur - mengubah Elemen
- ... Deklarasi perintah yang mengubah struktur, misalnya menempatkan ...

- Dll
akhir
Berbeda dengan kebanyakan bahasa pemrograman braket keriting , Eiffel membuat perbedaan yang jelas antara ekspresi dan instruksi. Hal ini sejalan dengan Command-Query Separation prinsip metode Eiffel.
[ sunting ] Gaya konvensi
Sebagian besar dokumentasi Eiffel menggunakan konvensi gaya yang khas, yang dirancang untuk menegakkan melihat-dan-merasa konsisten. Beberapa konvensi berlaku untuk format kode itu sendiri, dan orang lain untuk rendering standar tipografi Eiffel kode dalam format dan publikasi di mana konvensi yang mungkin.
Sedangkan bahasa adalah case-insensitive, standar gaya meresepkan penggunaan semua-modal untuk nama kelas ( LIST ), semua-rendah-kasus untuk nama fitur ( make ), dan ibukota awal untuk konstanta ( Avogadro ). Gaya direkomendasikan juga menyarankan menggarisbawahi untuk memisahkan komponen pengenal kata-multi, seperti di average_temperature .
Spesifikasi Eiffel mencakup pedoman untuk menampilkan teks dalam format mengeset perangkat lunak: kata kunci dalam huruf tebal, user-defined pengidentifikasi dan konstanta ditampilkan dalam italics , komentar, operator, dan tanda baca di Roman , dengan teks program dalam blue seperti pada pasal ini untuk membedakannya dari teks penjelasan. Misalnya, "Halo, dunia!" Program yang diberikan di atas akan menjadi sebagai di bawah ini di Eiffel dokumentasi:
kelas
Hello_world
menciptakan
membuat
Fitur
membuat
lakukan
cetak ("Halo, dunia!")
akhir
akhir

Rabu, 23 Februari 2011

OBAT SAKIT MAAG TRADISIONAL

Penyakit maag adalah penyakit yang menyerang organ pencernaan khususnya lambung. Gejalanya yang dirasakan antara lain; mual, mulas , perih ,dan kembung, terkadang disertai dengan panas dingin.Ada dua faktor penyebab sakit maag antara lain:

1. faktor makanan / pola makan yang salah
2. faktor pikiran / stress

Pola makan yang salah seperti makan tidak teratur(sering telat makan),makan makanan yang pedas, asem ,atau minuman yang mengandung soda dan es serta kopi dst .

Faktor fikiran dan stress terkadang menyebabkan seseorang terserang penyakit maag.
Penyakit maag dapat diobati dengan menggunakan obat tradisional yaitu Kunyit / kunir.

Caranya kunyit dikupas dan diparut lalu diberi air hangat secukupnya kemudian di peras dan disaring , air peresanya di beri gula jawa / gula putih lalu diminum, lakukan setiap hari sesudah makan Insya Allah penyakit maag akan sembuh.

Selasa, 22 Februari 2011

SEJARAH KOTA LAMONGAN

Dulu Lamongan merupakan Pintu Gerbang ke Kerajaan Kahuripan, Kerajaan Panjalu, Kerajaan Jenggala, Kerajaan Singosari atau Kerajaan Mojopahit, berada di Ujung Galuh, Canggu dan kambang Putih ( Tuban). Setelah itu tumbuh pelabuhan Sedayu Lawas dan Gujaratan (Gresik), merupakan daerah amat ramai , sebagai penyambung hubungan dengan Kerajaan luar Jawa bahkan luar Negeri.

Zaman Kerajaan Medang Kamulan di Jawa Timur, Di Lamongan berkembang Kerajaan kecil Malawapati ( kini dusun Melawan desa Kedung Wangi kecamatan Sambeng ) dipimpin Raja Agung Angling darma dibantu Patih Sakti Batik Maadrim termasuk kawasan Bojonegoro kuno. Saat ini masih tersimpan dengan baik, Sumping dan Baju Anglingdarma didusun tersebut. Di sebelah barat berdiri Kerajaan Rajekwesi di dekat kota Bojonegoro sekarang.

Pada waktu Kerajaan Majapahit dipimpin Raja Hayam Wuruk (1350 -1389) kawasan kanan kiri Bengawan Solo menjadi daerah Pardikan. Merupakan daerah penyangga ekonomi Mojopahit dan jalan menuju pelabuhan Kambang Putih. Wilayah ini disebut Daerah Swatantra Pamotan dibawah kendali Bhre Pamotan atau Sri Baduga Bhrameswara paman Raja Hayam Wuruk ( Petilasan desa Pamotan kecamatan Sambeng ), sebelumnya. Di bawah kendali Bhre Wengker ( Ponorogo ). Daerah swatantra Pamotan meliputi 3 kawasan pemerintahan Akuwu , meliputi Daerah Biluluk (Bluluk) Daerah Tenggulunan (Tenggulun Solokuro) , dan daerah Pepadhangan (Padangan Bojonegoro).

Menurut buku Negara Kertagama telah berdiri pusat pengkaderan para cantrik yang mondok di Wonosrama Budha Syiwa bertempat di Balwa (desa Blawi Karangbinangun) , di Pacira ( Sendang Duwur Paciran), di Klupang (Lopang Kembangbahu) dan di Luwansa ( desa Lawak Ngimbang). Desa Babat kecamatan Babat ditengarahi terjadi perang Bubat, sebab saat itu babat salah satu tempat penyeberangan diantar 42 temapt sepanjang aliran bengawan Solo. Berita ini terdapat dalam Prasasti Biluluk yang tersimpan di Musium Gajah Jakarta, berupa lempengan tembaga serta 39 gurit di Lamongan yang tersebar di Pegunungan Kendeng bagian Timur dan beberapa temapt lainnya.

Menjelang keruntuhan Mojopahit tahun 1478M, Lamongan saat itu dibawah kekuasaaan Keerajaan Sengguruh (Singosari) bergantian dengan Kerajaan Kertosono (Nganjuk) dikenal dengan kawasan Gunung Kendeng Wetan diperintah oleh Demung, bertempat disekitar Candi Budha Syiwa di Mantup. Setelah itu diperintah Rakrian Rangga samapi 1542M ( petilasan di Mushalla KH.M.Mastoer Asnawi kranggan kota Lamongan ). Kekuasaan Mojopahit di bawah kendali Ario Jimbun (Ariajaya) anak Prabu Brawijaya V di Galgahwangi yang berganti Demak Bintoro bergelar Sultan Alam Akbar Al Fatah ( Raden Patah ) 1500 sampai 1518, lalu diganti anaknya, Adipati Unus 1518 sampai 1521 M , Sultan Trenggono 1521 sampai 1546 M.

Dalam mengembangkan ambisinya, sultan Trenggono mengutus Sunan Gunung Jati ( Fatahilah ) ke wilayah barat untuk menaklukkan Banten, Jayakarta, danCirebon. Ke timur langsung dpimpin Sultan sendiri menyerbu Lasem, Tuban dan Surabaya sebelum menyerang Kerajaan Blambangan ( Panarukan). Pada saat menaklukkan Surabaya dan sekitarnya, pemerintahan Rakryan Rangga Kali Segunting ( Lamong ), ditaklukkan sendiri oleh Sultan Trenggono 1541 . Namun tahun 1542 terjadi pertempuran hebat antara pasukan Rakkryan Kali Segunting dibantu Kerajaan sengguruh (Singosari) dan Kerajaan Kertosono Nganjuk dibawah pimpinan Ki Ageng Angsa dan Ki Ageng Panuluh, mampu ditaklukkan pasukan Kesultanan Demak dipimpin Raden Abu Amin, Panji Laras, Panji Liris. Pertempuran sengit terjadi didaerah Bandung, Kalibumbung, Tambakboyo dan sekitarnya.

Tahun 1543M, dimulailah Pemerintahan Islam yang direstui Sunan Giri III, oleh Sultan Trenggono ditunjuklah R.Abu Amin untuk memimpin Karanggan Kali Segunting, yang wilayahnya diapit kali Lamong dan kali Solo. Wilayah utara kali Solo menjadi wilayah Tuban, perdikan Drajat, Sidayu, sedang wilayah selatan kali Lamong masih menjadi wilayah Japanan dan Jombang. Tahun 1556 M R.Abu Amin wafat digantikan oleh R.Hadi yang masih paman Sunan Giri III sebagai Rangga Hadi 1556 -1569M Tepat hari Kamis pahing 10 Dzulhijjah 976H atau bertepatan 26 mei 1569M, Rangga Hadi dilantik menjadi Tumenggung Lamong bergelar Tumenggung Surajaya ( Soerodjojo) hingga tahun 1607 dan dimakamkan di Kelurahan Tumenggungan kecamatan Lamongan dikenal dengan Makam Mbah Lamong. Tanggal tersebut dipakai sebagai Hari Jadi Lamongan.

Setelah Indonesia Merdeka 17 Agustus 1945, daerah Lamongan menjadi daerah garis depan melawan tentara pendudukan Belanda, perencanaan serangan 10 Nopember Surabaya juga dilakukan Bung Tomo dengan mengunjungi dulu Kyai Lamongan dengan pekikan khas pembakar semangat Allahu Akbar. Lamongan yang dulunya daerah miskin dan langganan banjir, berangsur-angsur bangkit menjadi daerah makmur dan menjadi rujukan daerah lain dalam pengentasan banjir. Dulu ada pameo "Wong Lamongan nek rendeng gak iso ndodok, nek ketigo gak iso cewok" tapi kini diatasi dengan semboyan dari Sunan Drajat, Derajate para Sunan dan Kyai "Memayu Raharjaning Praja" yang benar benar dilakukan dengan perubahan mendasar, dalam memsejahterahkan rakyatnya masih memegang budaya kebersamaan saling membantu sesuai pesan kanjeng Sunan Drajat "Menehono mangan marang wong kangluwe, menehono paying marang wong kang kudanan , menehono teken marang wong kang wutho, menehono busaono marang wong kang wudho"

Kabupaten Lamongan yang kini dikomandani H.Masfuk sebagai Bupati periode ke 2 dan H.Tsalis Fahmi sebagai wakil Bupati melejit bagaikan Sulapan dengan terobosannya yang menjadi perbincangan Nasional. Yang menonjol selama ini menjadi Ikon Wisata Bahari Lamongan (Lamongan Ocean Tourism Ressort), Lamongan Integrated Sharebased, Proyek Pelabuhan Rakyat, dan Proyek Lapangan Terbang dan Eksplorasi minyak Balong Wangi Sarirejo,memungkinkan datangnya investasi baik dari dalam negeri maupun investor luar negeri. Dengan tangan dinginnya PKL ditata rapi, Kelancara jalan desa dan pengairan ditata sedemikian rupa, termasuk memberikan Bea siswa bagi siswa dan mahasiswa berprestasi yang ekonominya kurang beruntung, dan nantinya jika telah menyelesaikan studynya bisa kembali dan menyumbangkan pikiran dan kemampuannya demi kemajuan Lamongan. Kegiatan HJL kali ini juga dumeriahkan oleh Dewan Kesenian Lamongan (DKL) parade Teater dan Pameran Senirupa kerja sama dengan STKW Surabaya di gedung Handayani tanggal 26 mei dilanjutkan Sarasehan seni rupa oleh Agus Koecing Surabaya, mengusung Peran dan perkembangan seni rupa jawa timur dan Management berkesenian(27 mei 2007).