Tuesday 3 March 2015

Membuat Table dan Edit Box Di C# (1)

 
Hai permirsa jufrikablog , kali ni saya akan mengshare sedikit ilmu pengetahuan saya yang saya peroleh dari bangku kuliah , sekalian buat postingan baru di blog yang sudah cukup lama mati suri ini hehehe , langsung saja cekidot :D


Pada Artikel sebelumnya saya sudah menjelaskan pengenalan bahasa C#, membuat program sederhana , dan cara membuat program konversi suhu dalam bentuk consule, nah kali ini kita akan coba pindah dari tampilan consule ke bentuk form . Untuk mengenal lebih dekat disini kita akan mengenal yang pertama itu :
1. Membuat Form
2. Membuat Label

Ok kita masuk yang pertama , karna kita masih dalam masa transisi dari tampilan yang hitam putih (alias cmd) ke GUI(Graphical User Interface) , maka kita  masih menggunakan sedikit codingan seperti yang kemarin
1. Membuat Form
berikut buat dahulu source code seperti ini



nah penjelasannya sebagi berikut :
using System = artinya user di berikan kebebasan menggunakan berbagai class class yang ada di dalam namespace sytem seperti console.xxxx , convert.xxxxx dan lainya .
using System.Windows.Forms;  artinya user di berikan kebebasan menggunakan berbagai class class yang ada di dalam namespace sytem window form seperti application.run , controls.xxxxx dan lainya .
public = Menyatakan bahwa anggota class tersebut (attribut/ method/ property) boleh diakses oleh siapa saja (class yang lain).
class exercise =artinya nama class ini adalah exercise(nama exercise disini adalah optional) .
: Form = maksudnya class ini adalah dalam bentuk form .
nah mengenalkan class yang kita gunakan maka kitam asuk dalam bagian class itu yang di tandai dengan pembukaan kurung kurawal { .
void= menunjukkan bahwa method tidak mengembalikan nilai atau objek
Main= merupakan nama method utama program C#
nah apa yang akan di tampilan  dari si method tadi ? yaitu :
Application.Run (new exercise()); artinya (baca dari belakang ya = exercise di kenalkan sebagai "baru"  dan di runkan dalam bentuk aplikasi hehehe gampangkan bacanya ?

nah lalu kita compile dan jalankan programnya  dan hasilnya seperti ini :

karna postingan ini terlalu panjang maka saya akan membaginya dalam beberapa bagain di sini :
1.membuat tambahan 1 button.
2.menggunakan GUI sederhana.

Sunday 1 March 2015

INFO :: Channel Youtube Khusus Para Programmer

The New Boston
Channel ini bisa dibilang wajib buat di Subscribe. Video-video tutorial yang diberikan sangat berkualitas dan disampaikan dengan sangat baik oleh penyampainya. Video tutorialnya juga sangat banyak, dari Java, C++, PHP, HTML5, JavaScript, Python, MySQL, jQuery, Unity, Excel, Photoshop, dan puluhan video lainnnya yang bisa pembaca temui sendiri melalui channelnya.
Koleksi video The New Boston dapat dilihat melalui tab Playlists atau melalui situs resmi mereka di thenewboston.com.

LearnCode.academy

LearnCode.academy
Salah satu channel pemrogrman yang sangat aktif di Youtube. Channel ini berisi video tutorial mengenai desain web, pemrograman web dan lain sebagainya dipandu oleh Will Stern. Video-video yang pernah dibahas meliputi JavaScript, jQuery, MongoDB, Express, ATOM, Backbone, Angular, Node, Sublime Text, HTML, CSS, dll.

phpacademy

Phpacademy
Pembaca ingin belajar PHP? Channel phpacademy lah surganya video belajar PHP. Channel phpacademy memiliki puluhan playlist yang terdiri atas panduan-panduan berbagai komponen php. PHP murni, PHP framework ( Laravel dkk. ), github, regular expression, tombol like dengan php, penggunaan API Dropbox dengan PHP, user location information dengan PHP, semua tersedia panduannya secara gratis untuk ditonton lewat Youtube.
Phpacademy juga dapat kita akses melalui situsnya di phpacademy.org. Tak seperti channelnya di youtube, situs ini memiliki beberapa video dengan fitur premium. Untuk menonton video-video yang pasti gratis, kunjungi saja channel Youtubenya.

DevelopPHP

Adamm Khoury
Channel ini seperti channel sebelumnya, memiliki fokus lebih ke PHP. Namun selain PHP channel ini juga menyediakan video-video mengenai HTML, CSS, JavaScript, dan SQL. Video tutorial disampaikan oleh Adam Khoury dengan suara yang jelas dan lugas. Untuk koleksi video yang lebih terstruktur rapih, situs developphp.com akan membantu kita.
Developphp

MyCodeSchool

My CodeSchool
Channel ini akan sangat bermanfaat apabila saat ini pembaca sedang mempelajari algoritma dan struktur data. Karena, channel ini mengkhususkan diri untuk membahas algoritma dan struktur data dasar seperti linked list, sorting, binary search, stack, queue, binary tree, dsb. Channel ini telah berjasa membantu saya memahami struktur-struktur data tersebut saat masih mengontrak mata kuliah Struktur Data di kampus. MyCodeSchool juga dapat diakses melalui situsnya mycodeschool.com.
MyCodeSchool

Michael Herman

Michael Herman
Micahel Herman merupakan salah satu penulis buku Real Python. Di channel Youtubenya, Micahel Herman banyak membahas tentang Python dan Flask. Ada juga beberapa video lain yang membahas tentang Eclipse, Excel, Django, Statistic, dst. Namun koleksi video paling banyak dan paling menarik ada tentang Python dan Flask.

JSConf

JSConf
Kalau pembaca penggemar JavaScript, ini dia channel yang wajib di ikuti. JSConf secara berkala mengunggah video-video konferensi, seminar, serta workshop-workshop bertemakan JavaScript maupun teknologi web lainnya. Jika pembaca ingin mengikuti perkembangan teknologi web terutama JavaScript atau mendengarkan pembicara terkenal mengenai teknolgo web yang sedang hangat dibicarakan, subscribe!.
Koleksi konferensi yang dimiliki oleh channel ini diantaranya :
  • CSSConf.Asia 2014
  • CSSConf EU 2014
  • JSConf.Asia 2014
  • JSConf EU 2014
  • JSConf AU 2014

Confreaks

Confreaks
Jika channel JSConf mengkhusus dibidang JavaScript atau Web, maka Confreaks tidak memihak kepada salah satu bahasa. Disini semua ada. Mau EmberConf 2014, RubyConf 2014, DjangoCon 2014, atau RailsConf 2014, semua bisa kita tonton secara gratis.

LevelUpTuts

leveluptutsLevel Up Tuts dibuat karena kebutuhan akan dokumentasi instruksional berupa video yang semakin dibutuhkan. Level Up Tuts diawali oleh duo Scott Tolinski dan Ben Schaaf dengan memberikan tutorial gratis mengenai web development. Level Up Tuts merupakan proyek sampingan karena keduanya merupakan developer web full time (dan freelancer).
Menurut pendapat saya pribadi, video-video yang ada di Level Up Tuts sangat bagus. Mulai dari kualitas gambar sampai dengan kualitas suara dan penjelasan oleh instrukturnya. Panduan yang ada juga cukup lengkap, mulai dari HTML5, CSS, Sass, Stylus, Sublime, Gulp, Drupal, WordPress, eCommerce, JavaScript, CoffeScript, hingga Android. Untuk mengunjungi situs resminya ada di leveluptuts.com dan Youtube.com.
Sumber: codepolitan.com, By Bagus Aji Santoso

BAIK :: Download Baik versi 9.0

Download Baik versi 9.0

Perlu diketaui bahawa baik adalah bahasa pemrograman yang menggunakan bahasa indonesia, baik adalah karaya besar programmer indonesia, bahasa ini mudah dipahami namun karana menggunakan bahasa indonesia membuat bahasa pemrogramman ini terasa aneh untuk digunakan, terimkasih untuk
Haris Hasanudin yang telah membuatnya, semoga menjadi awal baik untuk berkembangnya programmer" di indonesia,

BAIK :: BaikberryOS = BAIK + Raspberry Pi


BaikberryOS = BAIK + Raspberry Pi
BaikberryOS adalah perpaduan Debian Arm OS (Raspbian) dengan bahasa BAIK.
Fitur BaikberryOS (feb2015)
=================
1. Full OS untuk Raspberry Pi - super mini arm komputer
2. Bahasa BAIK versi 9.0 telah terintegrasi dalam OS
BAIK telah terpasang di : /usr/bin/baik
3. BAIK telah dikompilasi dengan mendukung :
- GUI berbasis GTK 3.0
- GD graphic library
- Sqlite3 file database
- Mysql/MariaDB database
- Alsa sound
4. Mini webserver dengan default : lighttpd
Bisa dites dengan membuka web browser
http://localhost/baiktes.ina
5. Tersedia juga Nginx webserver untuk diobservasi
6. Sangat cocok untuk belajar linux system dan robotika
Terima kasih.

Perlu diketahui ::
Baik Adalah Bahasa pemrograman Karya anak bangsa (indonesia) 
#bahasa Pemrogramanan Bahasa Indonesia

BAIK :: Cara menggunakan bahasa BAIK untuk menyalakan LED di Raspberry Pi

Cara menggunakan bahasa BAIK untuk menyalakan LED di Raspberry Pi telah dirilis.
http://sourceforge.net/projects/baik/files/baikberryOS/
File : Cara-Nyalakan-LED-BaikberryOS.pdf
Merupakan dasar-dasar menggunakan bahasa BAIK untuk mengkontrol GPIO.

PROGRAMMER :: BAIK, Bahasa Pemrograman Dari Indonesia, Pemrograman Dengan Bahasa Indonesia.

haris_hasanudin_baik

===========================================================
Haris Hasanudin adalah pakar IT Indonesia yang tinggal dan bekerja di Jepang

lebih dari 15 tahun. Haris telah menekuni pemrograman untuk open source sejak
dia sekolah S1 dan S2 di Gunma University, Jepang. Selain bahasa BAIK, Haris
juga telah merilis open source software "Jawa Open Eyes" dalam bahasa Java.
==========================================================

BAIK versi 5.1 Press Release

Tokyo, 22 Mei 2010

Pada Hari ini, Haris Hasanudin meluncurkan bahasa pemrograman komputer dalam bahasa
Indonesia yang diberi nama BAIK (Bahasa Anak Indonesia untuk Komputer) versi 5.1.
BAIK versi 5.1 dirilis dalam bentuk open source yang boleh dipakai untuk tujuan
pendidikan, hobi maupun komersil.

Versi 5.1 menambah fungsi-fungsi untuk mengakses PostgreSQL dan
membuat beberapa pembetulan minor.

BAIK (Bahasa Anak Indonesia untuk Komputer) adalah bahasa pemrograman komputer ala
bahasa skrip yang didesain untuk bisa dijalankan di semua sistem operasi (OS),
seperti Windows(98/2000/XP/Vista/7/2003/2008) maupun Linux , Unix termasuk Mac OS terbaru.

BAIK versi 5 telah diperbaharui dengan penambahan fitur-fitur pemrograman desktop / GUI:
- Komponen dasar desktop : tombol, label, layar, menu, tombol_cek, tombol_coblos, tombol_putar
- Komponen dialog : dialog huruf, dialog warna, dialog arsip
- Komponen bisnis : Tabel, Layar_Gulung, Tips, Papanklip, Tanggalan
- Aksi untuk GUI : aksi fungsi, aksi tutup program, aksi papanketik, aksi penunjuk

Dalam BAIK versi 5, terdapat definisi baru mengenai istilah-istilah untuk Desktop.
istilah 'Window'         disebut LAYAR
istilah 'Popup Window'   disebut RAMBU
istilah 'About Window'   disebut JATIDIRI
istilah 'Clipboard'      disebut PAPANKLIP
istilah 'Keyboard'       disebut PAPANKETIK
istilah 'Mouse'          disebut PENUNJUK
istilah 'Tooltip'        disebut TIPS
istilah 'Label'          disebut LABEL
istilah 'Dialog'         disebut DIALOG
istilah 'Text Input'     disebut MASUKAN
istilah 'Multiline Text' disebut KERTAS

istilah 'Copy to Clipboard'     disebut Salin_Teks_Papanklip
istilah 'Cut to Clipboard'      disebut Potong_Teks_Papanklip
istilah 'Paste from Clipboard'  disebut Unduh_Teks_Papanklip

Dengan fasilitas kemudahan versi 5, program BAIK telah siap mendukung aplaikasi desktop,
selain enterprise system untuk interaktif web system dengan kualitas komersil.

Selain itu BAIK memiliki fitur-fitur kemudahan sebagai berikut:
- Kode ditulis dalam bentuk plain text dalam ejaan bahasa Indonesia.
- Text editor (misal: Notepad di windows, Emacs di Linux) bisa dipakai untuk menulis kode.
- Kode program tidak perlu dicompile. Kode source sebaiknya berakhiran .ina (indonesia).
- Variable dalam BAIK tidak memerlukan pendefinisian terlebih dahulu.
- Pendefinisian Fungsi/Sub Prosedur.
- Semua variable dalam cakupan global, yang berarti berlaku di seluruh kode program.
- Array/Larik (dalam BAIK disebut Untaian) hanya ada dalam satu dimensi.
- BAIK bisa digunakan untuk Web System melalui CGI (Common Gateway Interface).
- BAIK bisa juga digunakan untuk membuat network program(TCP/IP sederhana).
- BAIK memiliki ukuran yang sangat kecil, sehingga bisa juga diterapkan
  untuk embeded system berbasis Linux/Unix, misalnya robot.
- Mengakses MySQL Database versi 4.0 ke atas.
- Membuat file gambar dengan grafik pustaka : GD versi 2.0 ke atas.
- fungsi pengolahan data statistik
- fungsi pengecek koneksi jaringan dengan Ping
- membuat file gambar dengan format PNG and JPG
- pemakaian file gambar untuk logo pada Layar
- Penampilan Teks dan Logo Gambar pada Tabel

Kedepannya, bahasa BAIK akan dikembangkan untuk bisa mensupport SSL(Secure Socket Layer).

BAIK versi 5 bisa didownload dari web site Source Forge:

   http://sourceforge.net/projects/baik


Untuk bergabung dalam forum komunitas Facebook, silahkan cari nama grup di:
   http://www.facebook.com/
   Nama Grup: BAIK Bahasa Komputer Indonesia


Selamat mencoba BAIK versi 5.1 GUI !


Pencipta bahasa BAIK,
Haris Hasanudin,MSc.

Sumber: codepolitan,thinkouthebox,baik.bahasa.komputer



INFO :: PENGERTIAN AUTOMATA


AUTOMATA
Automata berasal dari bahasa Yunani automatos, yang berarti sesuatu yang bekerja secara otomatis (mesin). Istilah automata merupakan bentuk tunggal, sedangkan bentuk jamaknya adalah automaton. Teori automata adalah teori tentang mesin abstrak yang bekerja secara sekuensial yang menerima dan mengeluarkan output dalam bentuk diskrit.
Pengertian mesin bukan hanya mesin elektronis/mekanis saja melainkan segala sesuatu (termasuk perangkat lunak) yang memenuhi ketiga ciri di atas. Penggunaan automata pada perangkat lunak terutama pada pembuatan kompiler bahasa pemrograman. Secara garis besar ada dua fungsi automata dalam hubungannya dengan bahasa, yaitu :
· fungsi automata sebagai pengenal (RECOGNIZER) string-string dari suatu bahasa, dalam hal ini bahasa sebagai masukan dari automata
· fungsi automata sebagai pembangkit (GENERATOR) string-string dari suatu bahasa, dalam hal ini bahasa sebagai keluaran dari automata
Untuk mengenali string-string dari suatu bahasa, akan dimodelkan sebuah automaton
yang memiliki komponen sebagai berikut :
– pita masukan, yang menyimpan string masukan yang akan dikenali;
– kepala pita (tape head), untuk membaca/menulis ke pita masukan;
– Finite State Controller (FSC), yang berisi status-status dan aturan-aturan yang
mengatur langkah yang dilakukan oleh automaton berdasarkan status setiap saat
dan simbol masukan yang sedang dibaca oleh kepala pita;
– pengingat (memory), untuk tempat penyimpanan dan pemrosesan sementara
Automaton pengenal, setelah membaca string masukan dan melakukan langkahlangkah
pemrosesan yang diperlukan, akan mengeluarkan keputusan apakah
string tersebut dikenali atau tidak.
– Konfigurasi adalah suatu mekanisme untuk menggambarkan keadaan suatu mesin
pengenal , yang terdiri atas :
_ status FSC
_ isi pita masukan dan posisi kepala pita
_ isi pengingat
Mesin pengenal bersifat deterministik bila dalam setiap konfigurasi, hanya ada satu kemungkinan yang dapat dilakukan mesin, jika tidak mesin pengenal bersifat nondeterministik.
Sejarah Otomata dan Teori Bahasa
Otomata bermula sebelum komputer ada pada teori di bidang sistem logika matematika atau formal, ilmuwan David Hilbert telah mencoba menciptakan algoritma umum untuk pembuktian (seluruh) persoalan matematika secara otomatis yaitu mampu menentukan salah benarnya sembarang prosisi matematika.
Tahun 1931, Kurt GÖdel mempublikasikan teori ketidaklengkapan dimana membuktikan prosedur/algoritma yang dikehendaki David Hilbert tersebut tidak akan pernah ada.
GÖdel membangun rumus di kalkulus predikat yang diterapkan pada bilangan bulat yang memiliki pernyataan-pernyataan definisi yang tidak dapat dibuktikan maupun dibantah di dalam sistem logika yang mungkin dibangun manusia.
Formalisasi argumen teorema ketidaklengkapan GÖdel ini berikut penjelasan dan formalisasi selanjutnya dari prosedur efektif secara intuisi merupakan salah satu pencapaian intelektual terbesar abad 20, yaitu abad dimana formalisasi berkembang semarak.
Pengembangan teori otomata, komputasi dan teori bahasa berikutnya difasilitasi perkembangan bidang psyco-linguistic. Bidang psyco-linguistic berupaya menjawab pertanyan-pertanyan berikut:
– Apakah bahasa secara umum?
– Bagaimana manusia mengembangkan bahasa?
– Bagaimana manusia memahami bahasa?
– Bagaimana manusia mengajarkan bahasa ke anak-anaknya?
– Apa gagasan-gagasan yang dapat dinyatakan dan bagaimana caranya?
– Bagaimana manusia membangun kalimat-kalimat dari gagasan-gagasan yang berada di pikirannya?
Sekitar tahun 1950-an, Noam Chomsky menciptakan model matematika sebagai sarana untuk mendeskripsikan bahasa serta menjawab pertanyaan-pertanyaan di atas. Saat ini dimulai pendalaman bidang bahasa komputer.
Perbedaan antara bahasa komputer dan bahasa manusia adalah sampai sekarang belum diketahuinya bagaimana cara manusia mengartikan bahasa, sementara dengan pasti dapat mengartikan bahasa pada komputer.
Noam Chomsky mengemukakan perangkat format disebut grammar untuk memodelkan properti-properti bahasa.
Tata bahasa (grammer) bisa didefinisikan secara, formal sebagai kumpulan dari himpunan?himpunan variabel, simbol?simbol, terminal, simbol awal, yang dibatasi oleh aturan?aturan produksi. Tingkat bahasa dapat digolongkan menjadi empat yaitu :
1.Bahasa : Regular type 3
Mesin otomata : Finite State Otomata (FSA) meliputi deterministic finite automata dan non deterministic finite automata
Batasan aturan produksi : adalah sebuah simbol variabel maksimal memiliki sebuah simbol variabel yang bila terletak di posisi paling kanan.
2.Bahasa : Bebas konteks/context free /type 2
Mesin otomata : Push down automata (PDA)
Batasan aturan produksi : Berupa sebuah simbol variabel.
3.Bahasa : Context sensitive/type 1
Mesin otomata : Linier bounded automata
Batasan aturan produksi :
4.Bahasa : Unrestricted /phase /natural language/type 0
Mesin otomata : Mesin turing
Batasan aturan produksi : Tidak ada batasan
Semua aturan produksi dinyatakan dalam bentuk “” dimana
– : simbol?simbol pada ruas kiri aturan produksi
– : simbol?simbol pada ruas kanan
Simbol?simbol tersebut bisa berupa simbol terminal atau non terminal/ variabel.
Keterangan :
Simbol terminal biasanya dinyatakan dengan huruf kecil, misal ‘a ‘, ‘b’, ‘c’.(tidak bisa diturunkan lagi).
Simbol non terminal dinyatakan dengan huruf besar, misal ‘A’, ‘B’, ‘C’.(masih bisa diturunkan).
Dengan menerapkan aturan produksi, suatu tata bahasa bisa menghasilkan string. Himpunan semua string tersebut adalah bahasa yang didefinisikan oleh tata bahasa tersebut.
Reguler
Pada bahasa reguler, batasannya bertambah dengan ruas kanan maksimal memiliki sebuah simbol variabel yang terletak di paling kanan. Artinya bisa memiliki simbol terminal saja dalam jumlah tidak dibatasi, tetapi bla terdapat simbol variabel tersebut hanya bejumlah satu (1) dan terletak di posisi paling kanan. Misal :
Bentuk normal chomsky / chomsky normal form (CNF ) merupakan salah satu bentuk normal yang sangat berguna untuk tata bahasa bebas konteks ( CFG ). Bentuk normal chomsky dapat di buat dari tata bahasa bebas konteks yang telah mengalami penyederhanaan yaitu penghilangan produksi useless, unit, dan ? . dengan kata lain, suatu tata bahasa bebas konteks dapat dibuat menjadi bentuk normal chomsky dengan syarat :
Tidak memiliki produksi useless
Tidak memiliki produksi unit
Tidak memiliki ?
Langkah?langkah pembentukan bentuk normal chomsky secara umum:
Biarkan aturan produksi yang sudah dalam bentuk normal Chomsky.
Lakukan penggantian aturan produksi yang ruas kanannya mermiat simbol terminal dan panjang ruas kanan > 1
Lakukan penggantian aturan produksi yang ruas kanannya mernuat >2 simbol variabel
Penggantian?penggantian tersebut bisa dilakukan berkali?kali sampai akhirnya semua aturan produksi dalam bentuk normal chomsky
Selama dilakukan penggantian, kemungkinan kita akan memperoleh aturan?aturan produksi baru, dan juga memunculkan simbol?simbol variabel baru.
Free Context
Bahasa bebas konteks menjadi dasar dalam pembentukan suatu proses analisis sintaksis. Pada bahasa bebas konteks, batasannya bertambah lagi dengan ruas kiri haruslah tepat satu symbol variable.
Contoh: B ? CdeFg ; D ? BcDe
Sensiteve Context
Pada bahasa context sensitive, panjang string pada ruas kiri panjang ruas kanan ( )
Contoh : Abc ? Def ; CD ? eF
Batasan context sensitive biasanya turut digunakan dalam proses analitis semantik pada tahapan kompilasi.
Unrestricted /phase /natural language
Bahasa manusia / bahasa alami termasuk ke dalam grammer (tata bahasa) type 0 /unrestricked, di mana tidak ada batasan pada aturan produksinya.
Contoh : Abc ? De
BEBERAPA PENGERTIAN DASAR
· Simbol adalah sebuah entitas abstrak (seperti halnya pengertian titik dalam geometri). Sebuah huruf atau sebuah angka adalah contoh simbol.
· String adalah deretan terbatas (finite) simbol-simbol. Sebagai contoh, jika a, b, dan c adalah tiga buah simbol maka abcb adalah sebuah string yang dibangun dari ketiga simbol tersebut.
· Jika w adalah sebuah string maka panjang string dinyatakan sebagai |w| dan didefinisikan sebagai cacahan (banyaknya) simbol yang menyusun string tersebut. Sebagai contoh, jika w = abcb maka |w|= 4.
· String hampa adalah sebuah string dengan nol buah simbol. String hampa dinyatakan dengan simbol ε (atau ^) sehingga |ε|= 0. String hampa dapat dipandang sebagai simbol hampa karena keduanya tersusun dari nol buah simbol.
· Alfabet adalah hinpunan hingga (finite set) simbol-simbol
OPERASI DASAR STRING
Diberikan dua string : x = abc, dan y = 123
· Prefik string w adalah string yang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol-simbol paling belakang dari string w tersebut.
Contoh : abc, ab, a, dan ε adalah semua Prefix(x)
· ProperPrefix string w adalah string yang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol-simbol paling belakang dari string w tersebut.
Contoh : ab, a, dan ε adalah semua ProperPrefix(x)
· Postfix (atau Sufix) string w adalah string yang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol-simbol paling depan dari string w tersebut.
Contoh : abc, bc, c, dan ε adalah semua Postfix(x)
· ProperPostfix (atau PoperSufix) string w adalah string yang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol-simbol paling depan dari string w tersebut.
Contoh : bc, c, dan ε adalah semua ProperPostfix(x)
· Head string w adalah simbol paling depan dari string w.
Contoh : a adalah Head(x)
· Tail string w adalah string yang dihasilkan dari string w dengan menghilangkan simbol paling depan dari string w tersebut.
Contoh : bc adalah Tail(x)
· Substring string w adalah string yang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol-simbol paling depan dan/atau simbol-simbol paling belakang dari string w tersebut.
Contoh : abc, ab, bc, a, b, c, dan ε adalah semua Substring(x)
· ProperSubstring string w adalah string yang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol-simbol paling depan dan/atau simbolsimbol paling belakang dari string w tersebut.
Contoh : ab, bc, a, b, c, dan ε adalah semua Substring(x)
· Subsequence string w adalah string yang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol-simbol dari string w tersebut.
Contoh : abc, ab, bc, ac, a, b, c, dan ε adalah semua Subsequence(x)
· ProperSubsequence string w adalah string yang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol-simbol dari string w tersebut.
Contoh : ab, bc, ac, a, b, c, dan ε adalah semua Subsequence(x)
· Concatenation adalah penyambungan dua buah string. Operator concatenation adalah concate atau tanpa lambang apapun.
Contoh : concate(xy) = xy = abc123
· Alternation adalah pilihan satu di antara dua buah string. Operator alternation adalah alternate atau | |.
Contoh : alternate(xy) = x|y = abc atau 123
· Kleene Closure : x* = ε|x|xx|xxx|… = ε|x|x 2 |x 3 |…
Positive Closure : x + = x|xx|xxx|… = x|x 2 |x 3 |…
SIFAT OPERASI DASAR STRING
· Tidak selalu berlaku : x = Prefix(x)Postfix(x)
· Selalu berlaku : x = Head(x)Tail(x)
· Tidak selalu berlaku : Prefix(x) = Postfix(x) atau Prefix(x) ≠ Postfix(x)
· Selalu berlaku : ProperPrefix(x) ≠ ProperPostfix(x)
· Selalu berlaku : Head(x) ≠ Tail(x)
· Setiap Prefix(x), ProperPrefix(x), Postfix(x), ProperPostfix(x), Head(x), dan
Tail(x) adalah Substring(x), tetapi tidak sebaliknya
· Setiap Substring(x) adalah Subsequence(x), tetapi tidak sebaliknya
· Dua sifat aljabar concatenation :
♦ Operasi concatenation bersifat asosiatif : x(yz) = (xy)z
♦ Elemen identitas operasi concatenation adalah ε : εx = xε = x
· Tiga sifat aljabar alternation :
♦ Operasi alternation bersifat komutatif : x|y = y|x
♦ Operasi alternation bersifat asosiatif : x|(y|z) = (x|y)|z
♦ Elemen identitas operasi alternation adalah dirinya sendiri : x|x = x
· Sifat distributif concatenation terhadap alternation : x (y|z) = xy|xz
· Beberapa kesamaan :
♦ Kesamaan ke-1 : (x*)* = (x*)
♦ Kesamaan ke-2 : ε|x + = x + |ε = x*
♦ Kesamaan ke-3 : (x|y)* = ε|x|y|xx|yy|xy|yx|… = semua string yang
merupakan concatenation dari nol atau lebih x, y, atau keduanya
TEORI BAHASA
Teori bahasa membicarakan bahasa formal (formal language), terutama untuk kepentingan perancangan kompilator (compiler) dan pemroses naskah (text processor). Bahasa formal adalah kumpulan kalimat. Semua kalimat dalam sebuah bahasa dibangkitkan oleh sebuah tata bahasa (grammar) yang sama. Sebuah bahasa formal bisa dibangkitkan oleh dua atau lebih tata bahasa berbeda. Dikatakan bahasa formal karena grammar diciptakan mendahului pembangkitan setiap kalimatnya. Tata bahasa (grammar) adalah kaidah/aturan pembentukan kata/kalimat. Pada pembahasannya, bahasa formal hanya disebut bahasa saja.
Bahasa dalam bentuk tulisan terdiri atas symbol-simbol satuan yang jika dikombinasikan akan mempunyai arti yang berbeda. Simbol-simbol yang biasa dipergunakan dalam sebuah bahasa terbatas jumlahnya, yang membentuk sebuah himpunan dan disebut sebagai abjad/alphabet. Namun kadangkala digunakan istilah karakter yang artinya sama dengan symbol. Deretan dari karakter atau symbol ini membentuk string. Dan himpunan dari semua string yang dibentuk dari suatu abjad ini didefinisikan sebagai bahasa.
Karena bahasa adalah sebuah himpunan dari string, maka untuk mendefinisikan suatu bahasa bisa dilakukan dengan menuliskan semua string yang menjadi anggotanya. Tata Bahasa G = (T,N,S,P), di mana
• T adalah himpunan berhingga simbol-simbol terminal
• N adalah himpunan berhingga simbol-simbol non terminal
• S adalah simbol awal, S ( N
• P adalah himpunan berhingga aturan produksi yang setiap elemennya berbentuk * + ,,
*, , ( (T U N)+, * harus berisi minimal 1 simbol non terminal
Sentential form adalah semua string yang dapat diturunkan dari simbol awal S dengan
menggunakan aturan produksi P. Kalimat (sentence) adalah sentential form yang tidak
mengandung simbol non terminal. Bahasa yang dihasilkan dari G dinotasikan dengan
L(G), yaitu himpunan kalimat yang dapat diturunkan dari S dengan menggunakan P.