Perbandingan HyperTalk dengan Pascal

29 October 2010 at 7:10 AM (SoftSkill, Tulisan)


HyperTalk

HyperTalk adalah tingkat-tinggi, bahasa pemrograman prosedural yang diciptakan pada tahun 1987 oleh Dan Winkler dan digunakan bersama dengan program hypermedia HyperCard Apple Computer oleh Bill Atkinson. Target audiens utama HyperTalk mulai programmer, maka programmer HyperTalk biasanya disebut penulis, dan proses menulis program disebut “scripting”. script HyperTalk cukup mirip dengan bahasa Inggris tertulis, dan menggunakan struktur logika yang mirip dengan bahasa pemrograman Pascal.

Bahasa case-insensitive diinterpretasikan pada awalnya, tetapi menjadi ‘hampir dikompilasi’ sejak HyperCard 2.x. Mendukung struktur kontrol dasar bahasa prosedural: repeat for/while/until, if/then/else, serta fungsi dan panggilan pesan “handler” (handler adalah sebuah sub rutin, penangan pesan prosedur). Tipe data yang transparan kepada pengguna, konversi terjadi transparan di latar belakang antara string dan angka. Tidak ada kelas atau struktur data dalam pengertian tradisional, tempat mereka diambil oleh literal string khusus, atau lebih tepatnya “lists” of “items” dipisahkan dengan tanda koma (dalam versi kemudian “itemDelimiter” properti diperbolehkan memilih karakter yang sewenang-wenang).

 

Object-Oriented HyperTalk

HyperTalk bukan bahasa ketat prosedural. Script dikaitkan dengan benda-benda dalam file HyperCard (apa yang disebut ” stacks “), dan HyperTalk diperbolehkan memanipulasi objek objek dalam berbagai cara, mengubah sifat mereka menggunakan “set” perintah, misalnya. Objek itu ditujukan menggunakan sintaks dekat dengan bahasa alami, dimana objek yang ditentukan relatif ke card ini, atau operator digunakan untuk menentukan posisi absolut dari objek: send "mouseUp" to card button "OK" of card "Veracity". Sejak tombol dan bidang juga bisa ada pada lapisan latar belakang, namun isinya akan berbeda antara card, card fields, background fields dll dapat diatasi dengan nama mereka, z-memesan nomor, atau dengan nomor ID unik yang biasanya tidak berubah sepanjang masa obyek. Untuk beralih di atas benda (joinedly disebut sebagai bagian dalam HyperCard 2.2 dan kemudian), satu jumlah mereka hanya digunakan setelah query misalnya jumlah bagian card.

HyperTalk juga menyediakan script kontrol penuh tumbang built-in alat gambar, hanya dengan script perubahan yang dibutuhkan dalam alat cat dan gerakan mouse simulasi menggunakan drag dari awal sampai akhir dan klik pada posisi perintah.

HyperTalk pesan juga digunakan (yaitu peristiwa) dikirim ke objek untuk menangani interaksi pengguna. Misalnya mouseDown pesan dikirim ke sebuah tombol ketika user mengklik, dan mouseUp dikirim ketika pengguna dirilis mouse di dalamnya untuk memicu aksinya. Demikian pula, itu pesan idle periodik, mouseEnter, mouseLeave, … dan pesan lain yang berhubungan dengan navigasi antara kartu berbeda dalam HyperCard stack, serta masukan dari pengguna (keydown, functionKey, …), dan sistem acara. Sejauh scripters khawatir, tidak ada loop acara utama seperti di lain bahasa pemrograman prosedural.

 

Perluasan HyperTalk

Meskipun bahasa HyperTalk merana seperti HyperCard sendiri, ia menerima sewa kedua hidup melalui plugin protokol, disebut Perintah Eksternal (XCMDs) dan Eksternal Fungsi (XFCNs), yang wadah kode asli yang melekat pada tumpukan (sebagai Macintosh-spesifik sumber daya) dengan entry point tunggal dan nilai kembali. XCMDs dan XFCNs bisa disebut seperti pesan reguler dan menangani fungsi dari script HyperTalk, dan juga dapat mengirim pesan kembali ke aplikasi HyperCard. Beberapa XCMD giat penulis menambahkan fitur-fitur canggih seperti dukungan penuh warna (ColorizeHC, HyperTint, AddColor), jendela khusus beberapa tujuan (Prompt, Tabloid, Textoid, Listoid, ShowDialog, MegaWindows), dukungan drag and drop dan antarmuka perangkat keras berbagai bahasa.

 

Turunan HyperTalk

bahasa scripting Berbagai telah mengambil isyarat dari HyperTalk. Mereka umumnya dikelompokkan dalam sebuah keluarga yang didefinisikan secara longgar bernama xTalk.

CompileIt-Talk -! A HyperCard stack dan XCMD oleh Tom Pittman yang memungkinkan kompilasi asli 68000 kode mesin (misalnya untuk XCMDs dan XFCNs) dari kode HyperTalk, dan memanggil Macintosh rutinitas asli toolbox. CompileIt telah dinyalakan, yaitu versi yang lebih baru telah dikompilasi menggunakan versi sebelumnya dari dirinya sendiri.

* Double-XX-Talk (?) – Double-XX adalah klon HyperCard ringan yang dikirimkan sebagai penambahan CompileIt! dan memungkinkan berjalan XCMDs dan XFCNs tanpa HyperCard, dan bahkan termasuk penerjemah HyperTalk kecil.

* MediaTalk – Bahasa Oracle Obyek Media, keturunan Plus, dan klon yang cross-platform pertama HyperCard. Selain satu-satunya yang benar-benar modular.

* PlusTalk (?) – Spinnaker Plus (awalnya oleh Verlag Format Jerman), yang digunakan sebagai dasar untuk OPT.

* SenseTalk – Bahasa dari HyperSense NeXT-berasal dan pengujian VNC berbasis alat Terong.

* SuperTalk – Bahasa SuperCard, klon HyperCard pertama, oleh Bill Appleton. Appleton juga menulis Dunia populer Builder kit petualangan konstruksi.

* RevTalk – Bahasa diimplementasikan dalam lingkungan pengembangan Revolusi itu sendiri berasal dari klon-Unix berasal HyperCard MetaCard, yang sekarang berjalan pada Classic Mac OS, Mac OS X, Windows, Linux dan Solaris.

Selain tingkat kedua klon seperti

* AppleScript – bahasa scripting utama Apple Mac OS.

* Lingo – bahasa pemrograman Macromedia Director dimulai dengan sebuah sintaks xTalk seperti, meskipun versi saat ini pergi ke arah yang lebih seperti JavaScript.

* Bahasa (tanpa nama) scripting plug data-publishing Em Software Xdata dan InData,-in untuk QuarkXPress dan Adobe InDesign.

Banyak nama metode pertama kali dipopulerkan oleh HyperTalk berhasil masuk ke bahasa kemudian, seperti onmouseup event handler dalam JavaScript. Meskipun Asymetrix ToolBook sering juga dianggap sebagai klon HyperCard, bahasa scripting yang tampaknya sedikit beruang kemiripan kepada HyperTalk.

Ini klon dan dialek (biasa disebut di bawah moniker dari xTalk-bahasa) ditambahkan berbagai fitur dengan bahasa yang diharapkan dari sebuah bahasa pemrograman modern, seperti exception handling, properti obyek ditetapkan pengguna, timer, multi-threading dan bahkan pengguna didefinisikan objek.

Beberapa Sample Script

on mouseUp

put “100,100” into pos

repeat with x = 1 to the number of card buttons

set the location of card button x to pos

add 15 to item 1 of pos

end repeat

end mouseUp

 

on mouseDown

put “Disk:Folder:MyFile” into filePath — no need to declare variables

if there is a file filePath then

open file filePath

read from file filePath until return

put it into cd fld “some field”

close file filePath

set the textStyle of character 1 to 10 of card field “some field” to bold

end if

end mouseDown

 

function replaceStr pattern,newStr,inStr

repeat while pattern is in inStr

put offset(pattern,inStr) into pos

put newStr into character pos to (pos +the length of pattern)-1 of inStr

end repeat

return inStr

end replaceStr

 

 

 

 

Pascal dan HyperTalk: Perbandingan

 

Struktur program

Tidak seperti Pascal, HyperTalk tidak dapat digunakan untuk membuat program yang berdiri sendiri. Hal ini hanya dapat digunakan dalam HyperCard untuk mengontrol aktivitas objek HyperCard (stacks, backgrounds, cards, fields and buttons). HyperTalk tidak digunakan untuk menciptakan sebuah “program” yang dieksekusi dari awal sampai akhir. Sebaliknya setiap obyek HyperCard mungkin terkait dengan itu HyperTalk perintah disebut “script”. Setiap script mungkin berisi beberapa Pascal seperti prosedur disebut Perintah dalam penangan pesan ini dijalankan ketika objek menerima pesan yang cocok pawang ” message handlers.” HyperCard mengirim pesan ke objek yang tepat apabila terdapat kejadian tertentu terjadi. Sebagai contoh, sebuah script tombol mungkin memiliki penangan pesan yang akan menginstruksikan HyperCard untuk pergi ke kartu berikutnya, dengan menggunakan efek visual larut, ketika mouse diklik pada tombol dan “mouseUp” pesan diterima. Script yang terkait dengan kartu berikutnya mungkin mengandung penangan pesan yang akan dijalankan saat kartu dibuka dan sesuai “openCard” pesan diterima oleh kartu. Contoh dari program Pascal sederhana dan penjamah HyperTalk dua pesan yang ditunjukkan di bawah ini. Program Pascal disebut sebagai prosedur “getName” yang meminta nama pengguna dan kemudian menampilkan “Thank You” di layar. Pengendali HyperTalk pesan pertama pada dasarnya melakukan fungsi yang sama. Hal ini dijalankan saat kartu tertentu dibuka. Penangan Pesan kedua dijalankan saat mouse diklik pada tombol. HyperTalk penangan pesan dimulai dengan kata “on” diikuti dengan nama dari pesan tertentu. Mereka selalu mengakhiri dengan “end” kata diikuti dengan nama pesan yang sama. Dalam contoh ini dan selanjutnya, Anda akan menemukan bahwa perintah HyperTalk sebagian besar dekat dengan perintah bahasa Inggris standar daripada Pascal.

Contoh Program :
 procedure getname;
 var
 name: string;
 begin
 writeln(‘What is your name?’);
 readln(name);
 writeln(‘Thank you’)
 end;
 begin
 getname
 end.

pada openCard
 ask “What is your name?”
 put “Thank you” into field 1
end openCard
on mouseUp
 visual effect dissolve
 go to next card
end mouseUp

variabel & Statement

Dalam Pascal, programmer harus menyatakan apa jenis nilai-nilai akan disimpan dalam variabel sebelum dapat digunakan. variabel lokal tidak perlu dideklarasikan dalam HyperTalk. Global variabel dinyatakan dalam setiap penangan yang menggunakan mereka. Semua variabel HyperTalk adalah dari jenis teks. karakter numerik secara otomatis dikonversi ke angka sebelum dilakukan operasi matematika. Di samping variabel, informasi dapat disimpan dan diambil dari yang lain “Contain” seperti field, the Message Box, dan teks apapun yang dipilih oleh user. Berikut menunjukkan contoh-contoh deklarasi Pascal dari beberapa jenis variabel diikuti oleh tiga laporan penugasan di mana ekspresi matematika dievaluasi dan variabel diberi nilai. Perintah HyperTalk  “put” juga mengevaluasi ekspresi dan menyimpan nilai-nilai ke dalam variabel atau contain lainnya. Perhatikan perintah HyperTalk aritmatika tambahan.

var
 x, y, sum,counter: integer;
 name: string;
 r: real;

name:=”Paul”; 
sum:= (x+y)*r/2;
counter:=counter +1;

put “Paul” into name
put (x+y)*r/2 into sum 
add 1 to counter
subtract  field 1 from sum
multiply salary by selection
divide field “total” by  num

 

Input / output

Pascal Macintosh menyediakan teks dan jendela gambar untuk tampilan teks atau grafis. Beberapa jendela dapat ditampilkan pada layar dengan menggunakan tool box routines di LightSpeed Pascal. Versi sekarang HyperCard hanya memungkinkan satu jendela atau kartu yang akan ditampilkan di layar pada waktu [Pada versi HC 1.2. Dan kemudian Anda selektif dapat menyembunyikan dan menunjukkan Kartu dan Latar Belakang Picts memberikan Anda kontrol lebih grafis. HyperEd] Namun, HyperCard membedakan antara bidang teks dan lapisan grafis. Dalam contoh berikut Pascal “write” Perintah ini digunakan untuk menampilkan sebuah string sederhana di jendela teks, sedangkan perintah HyperTalk “put” digunakan untuk menampilkan informasi dalam kolom teks.

write (‘Display on the text screen’);
put “Display in field” into field 2

Contoh-contoh ini menunjukkan bagaimana nilai-nilai dari variabel dan string literal digabungkan untuk ditampilkan di layar teks atau di field. Dalam HyperTalk, yang ampersand ganda (& &) menambahkan spasi.

write (str1 ,’ literal string ‘, str2,’ ‘, str3);
put str1 & “ text “ & str2 && str3 into field  “Hello”

Hasil evaluasi ekspresi matematika juga dapat dicampur dengan string literal “7:2” setelah ekspresi digunakan untuk memformat bilangan real yang dihasilkan dalam bidang kolom tujuh dengan dua angka setelah desimal. HyperTalk memerlukan perintah tambahan, “set numberFormat,” untuk format bilangan real.

write (‘Your salary is ‘, rate*hours:7:2);

set numberFormat to “0.00”   
put “Your salary is “ & rate*hours into field “salary”

Pascal “writeln” perintah adalah persis sama dengan perintah “write”, yang ditunjukkan di atas, kecuali hal itu membutuhkan “carriage return” karakter pada akhir baris. Untuk melakukan hal yang sama di HyperTalk, karakter “return” harus diberikan secara eksplisit seperti yang ditunjukkan dalam contoh berikut. Namun, dalam HyperTalk umumnya tidak perlu menetapkan karakter “return” karena teks secara otomatis akan ” word wrapped” dalam dimensi lapangan. Kemampuan ini memungkinkan untuk menggunakan satu HyperTalk “put” dimana beberapa perintah Pascal “writeln” perintah akan diperlukan.

writeln (‘Text followed by return’);

put “Text” & return after field “display”

Pascal Macintosh menyediakan tiga perintah, “drawChar,” “drawString,” dan “writeDraw” untuk menampilkan teks pada layar gambar. Masing-masing harus didahului dengan perintah “moveto” yang menentukan koordinat dimana teks yang akan ditampilkan. Dalam HyperCard, Perintah “type” ini digunakan untuk menempatkan teks dalam lapisan grafis dari kartu. Perintah ini harus didahului dengan perintah lain yang memilih alat teks dan tentukan lokasi di mana teks harus ditempatkan. Untuk banyak aplikasi, teks dapat ditempatkan dalam bidang dan pada lapisan grafis dari kartu menggunakan MacPaint seperti alat dibangun ke HyperCard daripada menggunakan perintah HyperTalk. Teks yang ditempatkan pada bidang dapat disunting oleh pengguna, sedangkan teks dicat lapisan grafis tidak dapat diedit. Namun, teks dicat dapat terhapus dengan menggunakan alat penghapusan atau dipindahkan menggunakan lasso tool.

moveto (40,100);
writeDraw (‘Display in drawing window’); 
choose text tool
click at 40,100 
type “This is painted text”

Dalam Pascal, pengguna input dari keyboard dapat diperoleh dengan menggunakan perintah

“Read” atau “Readln”. Biasanya ini didahului oleh prompt dan ditampilkan oleh perintah “write” atau “writeln”. HyperTalk menyediakan beberapa teknis untuk memperoleh input keyboard dari user. Perintah “ask”menampilkan kotak dialog dengan argumen string pertama sebagai prompt dan string kedua sebagai respon default yang dipilih. Tanggapan pengguna disimpan dalam variabel sistem HyperTalk disebut “it.” Perintah “answer” menampilkan kotak dialog dengan argumen string pertama sebagai promptdan dua atau tiga pushbuttons masing-masing diberi label oleh senar berikutnya.

Ketika pengguna mengklik tombol, tombol label ditempatkan di variable “It.” Sayangnya, lokasi kotak dialog ini tidak dapat dikendalikan oleh HyperTalk. Perintah “put” dapat digunakan untuk menempatkan salinan dari apa punjenis pengguna ke sebuah bidang yang dapat diedit ke dalam variabel ditetapkan, sedangkan perintah “get” menempatkan isi field dalam variabel sistem”It.”

write (‘Please enter your name ‘);
readln(name);
ask “Please enter your name” with “Paul”    
answer “Are you happy” with “yes” or “no” or
 “maybe” 
put field 1 into address
get field name

 

Operator dan fungsi

Matematika dan operator boolean adalah sama dalam kedua bahasa. Namun, HyperTalk menambahkan operator tambahan: “is” dan “ is not”

+ – * / div mod = <> < <= >= and or not

Fungsi “random” pada pascal, mengembalikan nomor acak antara -32767 dan 32767, sementara fungsi “random” dalam HyperTalk, mengembalikan nomor acak antara 1 dan nilai tertentu.

x:=random;
put the random of upper into x

Fungsi matematika berikut sama dalam kedua bahasa. HyperTalk juga menyediakan beberapa fungsi tambahan seperti “annuity” and “average”.

round, trunc, abs ln, sqrt, cos, sin, exp

 

Struktur Kontrol Sequence

Baik Pascal dan HyperTalk memberikan struktur yang kuat kontrol if-then-else dengan sintaks yang sangat mirip. Contoh berikut menampilkan pesan yang berbeda pada layar teks (Pascal) atau di field (HyperTalk) dan variabel kenaikan berbeda (count or ave) tergantung pada nilai-nilai dari “case” variabel dan “gpa.” Tidak sama HyperTalk dari Pascal “case” pernyataan lain selain perintah “if-then-else”

if (status = ‘undergrad’) and (gpa > 3.7) then
 writeln(‘Deans list’)
 else if gpa < 2.0 then
 begin
 writeln(‘Probation’);
 count := count + 1
 end
 else
 begin
 writeln(‘Average’);
 ave := ave + 1
 end;

if stat = “undergrad” and gpa > 3.7 then   
 put “Deans List” into field 1
 else if gpa < 2.0 then
 put “Probation” into field 1
 add 1 to count 
 else  
 put “Average” into field 1
 put ave + 1 into ave
 end if

Baik Pascal dan HyperTalk menyediakan beberapa struktur kontrol yang sangat kuat dengan sintaks yang sama berulang-ulang. Namun, HyperTalk menyediakan struktur tambahan yang tidak ditemukan dalam Pascal dan juga menambahkan beberapa fitur yang abnormal keluar tidak ditampilkan pada contoh: “next repeat,” “exit repeat,” “exit if,” dan “exit <handler name>. Loop akan terus meminta nomor dari pengguna dan menampilkan nilai angka dikalikan dengan 10 sampai pengguna memasukkan angka “0.”

repeat    
 Writeln(‘Enter a number’);
 readln (it);
 writeln(it*10);
until it = 0;
repeat until it = 0
 ask “Enter a number”
 put it *10 & return after field 1
end repeat

Perulangan “while” akan terus meminta pengguna untuk memasukkan nomor dan menampilkan dividen yang dihasilkan dengan membagi nomor ke 50 sampai pengguna memasukkan angka “0.”

writeln (‘Enter a number’);
readln (it);
while it<>0 do
 begin
 writeln (50/it);
 writeln(‘Enter a number’);
 readln(it);
 end;

ask “Enter a number”
repeat while it is not 0 
 put 50/it  & return after field “answer”   
 ask “Enter a number”
end repeat

Perulangan “for do” akan menampilkan produk dari bilangan bulat 5 sampai 20 masing-masing dikalikan dengan 5. Pascal “for do” juga dapat menggunakan “20 downto 5″ sedangkan HyperTalk ” repeat with” dapat menggunakan “20 ke 5.”

for i:= 5 to 20 do
 writeln(i*5);

repeat with i = 5 to 20
 put i*5 & return after field “product”
end repeat

Perulangan HyperTalk ini akan mengulang 20 kali. Setiap kali itu akan menempatkan string “I love you” ke dalam bidang 3 dan suara bunyi bip.

 repeat 20 times 
 put “I love you “ after field  3 
 beep 1
end repeat

 

QuickDraw Graphics

Pascal dan HyperTalk baik memberikan perintah untuk mengakses Macintosh QuickDraw Graphics routines. Dalam tumpukan HyperCard kebanyakan, penggunaan perintah HyperTalk grafis dalam script tidak akan diperlukan karena gambar grafis dapat dilakukan dengan MacPaint seperti alat-alat termasuk dalam HyperCard. Bahkan, Perintah HyperTalk grafis, yang digunakan dalam script, benar-benar memberikan akses ke alat-alat yang sama ditemukan pada menu tools HyperCard. Oleh karena itu, setara dengan yang paling grafis perintah Pascal diimplementasikan dalam HyperTalk dengan memilih alat grafis tertentu menggunakan perintah “choose” dan kemudian mensimulasikan menyeret mouse di layar dengan menggunakan perintah “drag”. Perhatikan bahwa argumen untuk perintah “drag” berada dalam urutan yang berbeda dibandingkan dengan perintah Pascal “frameRect”. Oval dan persegi panjang bulat juga dapat ditarik dengan HyperTalk dengan terlebih dahulu memilih alat yang sesuai. Tiga atau empat perintah HyperTalk yang diperlukan untuk melaksanakan setara dengan beberapa grafis Pascal perintah seperti “paintCircle” dan “invertRect.”

drawLine (x1,y1,x2,y2);
choose line tool
drag from x1,y1 to x2,y2 
frameRect (top,left,bottom,right);
choose rectangle tool
drag from left,top,right,bottom 
paintRect (r);
set filled to true
choose rectangle tool
drag from x1,y1 to x2,y2 
 paintCircle (x1,y1,r);
set filled to true
set centered to true
choose oval tool
drag from x1,y1 to x1,y2 
invertRect(r);
choose select tool
drag from x1,y1 to x2,y2 
doMenu “invert” 
eraseRect (r);
choose select tool
drag from x1,y1 to x2,y2 
doMenu “clear picture” 
penSize (4,4);
set lineSize to 4
penPat (gray);
set pattern to 10
penMode (patXor);

Pascal menyediakan beberapa perintah untuk mengendalikan sifat-sifat teks yang ditampilkan pada layar menggambar dengan perintah writeDraw berikutnya. Dalam HyperTalk, banyak properti teks dicat, tombol, dan bidang dapat diubah dengan menggunakan “set” perintah.

textFont (3);
set textFont to Chicago 
textFace ([bold,underline]); 
set textStyle of button ok to bold, underline   
textSize(18); 
set textSize of field 2 to 18   
textMode (srcXor);

Mouse Control

Macintosh tool-box ROM berisi beberapa rutinitas, yang dapat diakses oleh perintah Pascal, untuk melacak peristiwa mouse seperti mengklik tombol mouse dan menggerakkan mouse. Fungsi “button” mengembalikan nilai “true” jika tombol mouse ditekan pada saat fungsi ini dipanggil, selain itu mengembalikan nilai prosedur “getMouse” ke koordinat posisi pointer mouse pada “false.” waktu prosedur ini dipanggil. Meskipun ada perintah langsung HyperTalk, seperti ditunjukkan di bawah, terutama mouse events dilacak oleh perangkap message handler untuk pesan mouse terkait: “mouseDown,” “mouseUp,” “mouseEnter,” “mouseLeave,” “mouseWithin,” dan ” mouseStillDown “. Sebuah Message handler “mouseUp” umumnya digunakan untuk menanggapi klik mouse normal dalam tombol, bidang dan kartu. Dalam contoh di bawah, ” the mouseLoc ” fungsi mengembalikan posisi saat ini pointer mouse, sementara fungsi “the clickLoc ” kembali ke posisi mouse di klik terakhir.

tf:=button;
put theMouseClick into tf
getmouse(x,y);
put the mouseLoc into xy   
put the clickloc into xy

String prosedur dan fungsi

Macintosh Pascal menyediakan beberapa perintah yang kuat untuk memanipulasi string. HyperTalk memberikan kekuatan lebih besar dengan memungkinkan untuk memanipulasi karakter, kata, garis dan item dalam wadah apapun.

it:=length (str);
get the length of word 3 of field “input”   
it:=concat(str1,’ literal ‘, str2,’ ‘, str3);
put str1 & “ literal string “ & str2 && str3 into it          
 {&& adds a space}
it:=copy(source, firstchar, numofchar);
get char 3 to 8 of line 3 of field “source” 
delete (source, firstchar, numofchar);
delete item 3 to 8 of field 3 insert(source, dest, 5);
put selection before  fifth word of field 2

Perintah Pascal “pos” digunakan untuk mencari lokasi dari sebuah pola dalam string sumber. Ia mengembalikan angka yang menunjukkan lokasi kejadian pertama pola. Zero dikembalikan jika pola tidak ditemukan. Perintah Hypertalk “offset” melakukan fungsi yang sama persis. Dua perintah HyperTalk lain, “contains” dan “is in”mengembalikan nilai “true” jika pola ditemukan di source.

if pos (pattern, source) <> 0 then
 writeln (‘Correct’);

if offset (pattern, source) <> 0 then 
 put “correct” into field “feedback”         

if source contains pattern then 
 put “correct” into field “feedback” 

if  pattern is in source then
 put “correct” into field “feedback”

Perintah suara

Sebuah catatan suara tunggal dapat diputar dengan menggunakan perintah “note” dalam Pascal. Perintah ini memerlukan argumen integer tiga yang menentukan pitch, loudness dan durasi satu nada. Perintah “play” lebih fleksibel dengan argumen untuk menunjukkan instrumen atau gelombang, tempo secara keseluruhan, dan serangkaian catatan yang ditentukan oleh simbol-simbol musik normal. Sebagai contoh, notasi “c # 4e.” Akan menunjukkan catatan c-tajam bertitik-kedelapan dalam 4 oktaf (oktaf tengah). Perintah “play” juga dapat digunakan untuk memproduksi berbagai efek suara mandiri digital. suara tersebut dapat dicatat dengan menggunakan digitizer dan dikonversi ke file sumber daya Mac.

note (440, 75, 48) 
play “harpsichord” tempo 380 “b3 c#4 d e f# g a#3”
play “breaking glass”

 

Ditentukan pengguna jenis: array dan record

Pada pandangan pertama, HyperTalk tampaknya tidak mendukung jenis ditentukan pengguna seperti array dan record. Namun, kartu analog dengan rekor yang dapat berisi banyak bidang nama yang berbeda. Setiap bidang dapat berisi hingga 32K field. data dapat diakses oleh baris, item, kata atau karakter. Lines dipisahkan oleh enter, item dengan koma, dan kata-kata dengan spasi. bidang data mungkin tersembunyi dari pandangan jika diinginkan. Script HyperTalk berikut ini akan menghitung rata-rata dari suatu himpunan bilangan yang ditemukan di lapangan berlabel “scores” untuk setiap kartu di tumpukan. Setiap angka dipisahkan oleh spasi dan dianggap sebuah kata.

Type  scorearray = array [1..25] of integer;
 student = record of
 name: string[35];
 data: scorearray;
 end;
 class = array [1..100] of student;

repeat with n = 1 to number of cards
 go to card n 
 put 0 into sum 
 put the number of words in field “scores” into
 num   
 repeat with i = 1 to num
 add word i of field “scores” to sum
 end repeat
 put sum/num into field average 
end repeat

 

Disk file input / output

Pascal memiliki tiga perintah yang berbeda untuk membuka file. “Rewrite” digunakan untuk membuka file sekuensial baru, “reset” digunakan untuk membuka file berurutan yang telah dibuat sebelumnya, dan “open” digunakan untuk membuka file akses baru atau sebelumnya dibuat acak. Perintah-perintah ini dapat digunakan untuk membuka file teks sederhana atau file terstruktur atau diketik. Sebaliknya, HyperTalk hanya menangani file teks sederhana dan hanya memiliki satu perintah terbuka:

rewrite (f,’filename’);  
open file “filename”
reset (f,’filename’); 
open (f,’filename’);

Dalam HyperTalk, jika beberapa bidang ditulis ke file mereka harus dipisahkan dengan menulis sebuah “tab” karakter ke disk (tab menulis ke file “filename”). Catatan atau kartu harus dipisahkan dengan menulis karakter Kembali ke file (menulis kembali ke file “filename”).

write (f, class[i].data);
write field “data” of card i to file “filename”

Perintah Hypertalk “write” hanya membaca karakter dari file tersebut sampai menemukan pembatas seperti “tab” atau “return.” Teks yang ditempatkan dalam variabel “it”. Karakter pemisah harus dihapus sebelum menempatkan teks di lapangan.

read (f, class[i].data);
read from file “filename” until tab
close (f);
close file “filename”

 

Ditentukan pengguna fungsi dan subrutin atau prosedur

Spesifikasi dan panggilan didefinisikan pengguna fungsi dalam Pascal dan HyperTalk hampir identik. Fungsi Contoh berikut memerlukan dua parameter integer dan mengembalikan nilai dari parameter pertama pangkat ditentukan oleh parameter kedua.

function power (num, exp: integer): integer;
 var i, answ: integer;
 begin
 answ:=1;
 for i:=1 to exp do
 answ:=answ*num;
 power:=answ;
 end;

function power num,exp 
 put 1 into answ
 repeat with i = 1 to exp
 multiply answ by num
 end repeat
 return answ
end power

Perintah berikut menunjukkan bagaimana fungsi-fungsi yang didefinisikan di atas dapat disebut.

writeln(power(5,3));
put power (5,3) into field 1

Serupa dengan Pascal, HyperTalk memberikan subrutin didefinisikan pengguna, prosedur atau penangan dengan parameter nilai. HyperTalk juga menyediakan untuk kedua variabel lokal dan global. variabel lokal tidak harus dideklarasikan dalam HyperTalk. variabel global harus dideklarasikan dalam semua subrutin atau penangan yang mengaksesnya. Berbeda dengan Pascal, penangan HyperTalk harus mengembalikan nilai melalui variabel global karena tidak ada ketentuan untuk parameter variabel. Prosedur Contoh berikut dan pawang menghitung kekuatan nomor mirip dengan fungsi yang ditampilkan di atas.

procedure power (num, exp: integer; var answ:
   integer);
 var i:integer;
 begin
 answ:=1;
 for i:=1 to exp do
 answ:=answ*num;
 end;

on power num,exp
 global answ
 put 1 into answ
 repeat with i = 1 to exp
 multiply answ by num
 end repeat
end power

Prosedur atau handler yang didefinisikan di atas akan disebut dengan menggunakan perintah berikut. Pada contoh HyperTalk, variable global “answ” harus dinyatakan dalam setiap pawang yang memanggil subrutin “power.”

power (5,3,result);
writeln (result);

global answ
power 5,3
put answ into field “output”

 

Ringkasan dan Kesimpulan

Berdasarkan perbandingan yang disajikan di atas antara Pascal dan HyperTalk, Jelas bahwa HyperTalk memang bahasa yang kuat dengan banyak kesamaan Pascal. Ini menyediakan struktur kontrol urutan canggih, subrutin ditentukan pengguna dan fungsi dengan melewati parameter, berbagai struktur data, operasi matematika yang kuat dan fungsi, fungsi string manipulasi, menampilkan teks, grafis dan perintah suara, dan disk file input / output rutinitas. Tidak ditampilkan dalam perbandingan HyperTalk adalah kemampuan untuk memanggil subrutin dan fungsi secara rekursif. Kesamaan ini harus memungkinkan bagi Pascal programmer untuk menjadi mahir dalam HyperTalk tanpa membatalkan usaha.

 

Selain kesamaan dengan Pascal, HyperTalk juga memiliki beberapa fitur pemrograman berorientasi objek yang mirip dengan bahasa seperti Smalltalk dan proses daftar fitur serupa dengan bahasa seperti Logo dan Lisp. HyperTalk berisi beberapa perintah lain yang tidak setara Pascal, dan oleh karena itu tidak termasuk dalam perbandingan ini. Dua di antaranya yang layak disebutkan secara khusus adalah perintah “edit script” dan “do”. “Edit script” dapat digunakan untuk membuat dan memodifikasi script dari dalam naskah HyperTalk, sedangkan perintah “do” dapat digunakan untuk menjalankan perintah yang disimpan dalam sebuah wadah seperti variabel atau field.

 

Lingkungan HyperCard juga menyediakan text editor dan MacPaint type graphics tools. Alat-alat ini berkemampuan untuk mengimpor teks dan gambar, memungkinkan untuk dengan mudah membuat layar tanpa harus bergantung pada perintah pemrograman yang rumit.

 

HyperCard dengan HyperTalk memang menyediakan lingkungan pemrograman yang kuat dan menarik. Ada keterbatasan seperti ukuran layar, kurang warna, tidak ada perintah untuk menciptakan menu dan kotak dialog, dan keterbatasan kecepatan dari bahasa ditafsirkan. Namun, banyak keterbatasan ini dapat diperbaiki dalam versi mendatang HyperCard, atau melalui penggunaan perintah eksternal ditulis dalam bahasa lain.

 

referensi : wikipedia.com dan mactech.com

Permalink Leave a Comment

PI-ku

16 October 2010 at 10:26 AM (SoftSkill, Tugas)


MEMBUAT SISTEM INFORMASI PENJUALAN (E-Commerce) BERBASIS WEB DENGAN PHP DAN MYSQL

 

Akhir akhir ini metode transaksi yang dilakukan secara online mulai berkembang dengan pesat, bahkan sampai beberapa aspek dan kegiatan yang dilakukan secara manual sekarang dilakukan dengan menggunakan sistem online.

Beberapa sistem implementasinya telah berkembang dengan menggunakan media internet adalah E-Goverment (Pelayanan pemerintah melalui internet), E-Learning(Pembelajaran melalui internet), E-Banking(Transaksi perbankan secara online) dan E-Commerce(Belanja online atau metode penjualan produk melalui internet).

Dunia perdagangan juga telah memanfaatkan website untuk tempat berdagang di atas internet dengan metode e-commerce. Metode ini dapat merubah yang dulunya berdagang begitu merepotkan menjadi betapa efisiennya berdagang, yang dulunya berdagang harus mempunyai toko sebagai tempat berdagang, tetapi sekarang dengan metode ini kita tidak perlu harus mempunyai toko untuk tempat berdagang. Selain itu dengan metode ini  emasarannya akan semakin luas. Website e-commerce telah banyak digunakan di took-toko kecil sampai perusahaan yang besar. Akhir-akhir ini banyak sekali toko-toko dan perusahaan yang menggunakan website ecommerce untuk memperluas pemasaran dan meningkatkan omset mereka. Karena dengan metode ini disegala penjuru dunia dapat melakukan pembelian tanpa harus pergi ketoko atau perusaan yang bersangkutan.
Pembuatan website penjualan dengan konsep e-commerce memang tidak begitu mudah, tetapi hasil yang di dapatkan sepadan dengan hasil yang diperoleh bahkan lebih. Apabila pembuatan website tersebut mengunakan software yang memang di peruntukan untuk membuat website, seperti Dreamweaver, Microsoft front pack, dan lain-lain. Maka akan sangat membantu mempermudah dalam pembuatan website tersebut. Karena dengan software-software tersebut akan menghasilkan kode-kode html tersendiri.

Aplikasi ini memudahkan orang untuk berbelanja, cukup di depan komputer dan jaringan internet semua orang dapat berbelanja dengan mudah. Prosesnya pun cukup mudah dan tidak merepotkan. Untuk pembayaran barang yang dibeli, pembeli dapat membayar dengan cara mentransfer pada bank yang telah ditentukan. Maka barang yang dibeli akan dikirim. Telah dilakukan pembuatan aplikasi website yang berbasis e-commerce (electronic commercial) dengan menggunakan bahasa pemrograman PHP dan MySQL sebagai basis datanya. Untuk membangun website diperlukan beberapa tahap yaitu perancangan tampilan website, program website, basis data, dan pengujian website itu sendiri. Aplikasi ini berbasis pelanggan, pembeli di wajibkan untuk login terlebih dahulu. Setelah itu, pembeli dapat memilih koleksi buku yang kami miliki, apabila pengunjung ingin membeli buku tersebut maka tinggal di tekan tombol “Beli”.

Ada beberapa metode yang dilakukan dalam membangun website e-commerce berbasis PHP dan MySQL adalah sebagai berikut :

  1. Analisa Sistem : Menganalisa dan mengumpulkan data untuk dijadikan referensi baik dari buku maupun artikel-artikel serta diktat mengenai perangkat lunak yang diperlukan dalam perancangan website dan untuk direalisasikan.
  2. Design Software : Membuat design sistem yang akan dibuat, dari design awal hinga akhir agar memudahkan dalam merealisaiakan website yang akan dibuat.
  3. Implementasi : Melaksanakan pengkodean atau Coding (membuat kalimat kalimat perintah menggunakan bahasa komputer) mencoba kebenaran perangkat lunak permodul yang telah di install pada unit komputer tersebut.
  4. Pengujian : Pada tahap ini melakukan pengujian sistem website yang telah dibuat, mencari bug-bug atau kesalahan sistem yang terjadi, sehingga dapat mengurangi kesalahan yang terjadi pada sistem.

Sumber refensi : google.com

Permalink Leave a Comment

AUTOBIOGRAFI SAYA

16 October 2010 at 1:25 AM (SoftSkill, Tugas)


Hai…! Saya Aries afriliansyah, sering dipanggil aris. Lahir di Palembang, 9 april 1990. Saya merupakan anak pertama dari 2 bersaudara. Meski saya lahir di Palembang tetapi saya tidak bisa berbicara bahasa Palembang. Sejak saya berumur 1 tahun saya pindah ke Lampung, untuk tinggal sementara di rumah nenek. Setelah saya berumur 3 tahun, orang tua saya memutuskan untuk tinggal di wilayah Tangerang. Saya lahir di Palembang tetapi dibesarkan di Tangerang. Dan hingga saat ini saya masih tinggal di wilayah Tangerang.

Orang tua saya “Papa dan Mama”, begitulah saya memanggil mereka. Menyekolahkan saya di SDN VIII Teluknaga, Sekolah Dasar yang dekat dengan rumah sekitar 3 menit perjalanan. Dari kelas 1 sampai kelas 4 saya mendapatkan juara 3 secara berurutan. Dan pada kelas 5, saya dipindahkan ke SDN 1 Teluknaga yang merupakan sekolah favorit di daerah tersebut, hingga saya lulus. Setelah lulus saya melanjutkan pendidikan di SMPN 1 Teluknaga yang lagi lagi merupakan sekolah favorit dan saya ditempatkan di kelas unggulan 1 (kelas 1i waktu itu). Mulai dari SMP saya mulai tertarik dengan komputer. Pada kelas 1, saya mulai mengikuti beberapa kursus komputer (walaupun kebanyakan main game daripada belajarnya). Saya selalu mendapatkan nilai 8 atau 9 untuk mata pelajaran komputer.
lulus SMP, saya ingin melanjutkan pendidikan saya terutama dalam bidang komputer. Di SMKN 1 Tangerang membuka 2 jurusan baru, yaitu MultiMedia dan Teknik Komputer Jaringan. Saya pun segera mendaftarkan diri untuk masuk ke sekolah tersebut. ada beberapa persyaratan yang harus dipenuhi siswa, diantaranya tes warna, keahlian menggunakan komputer dan beberapa syarat pendukung lainnya. Alhamdulillah saya lulus dengan hasil memuaskan (saya rasa) dengan nilai 8,2. Di SMKN 1 Teluknaga, saya belajar membuat animasi gambar, desain grafis, dan cara membuat web. Awalnya saya tertarik dengan animasi, tetapi yang saya pelajari adalah cara membuat web.

Saya pernah mengikuti PKL (Praktik Kerja Lapangan) di GMF AeroAsia, Bandara Soekarno Hatta sebagai Programmer.

Pada kelas 3, ada tes (saya kira tidak jauh dengan PI) diberi waktu selama 1 bulan untuk menyelesaikannya. Siswa harus lulus tes tersebut jika ingin lulus. Ada beberapa pilihan dari tes tersebut :

  1. Membuat CD Interaktif (yang ditujukan untuk anak TK (taman kanak kanak).
  2. Membuat web.
  3. Membuat video yang bertemakan iklan Non Commercial.
  4. Membuat game.

Awalnya saya ingin membuat web tapi saya pikir akan membutuhkan waktu lama dan akhirnya saya memutuskan untuk membuat CD Interaktif.

Awalnya saya gugup mempresentasikan hasil kerja saya, namun lama kelamaan rasa gugup itupun menjadi semangat untuk lebih berani mempertanggung jawabkannya.

Saya mendapatkan nilai terbaik ke-2, dengan animasi terbaik.

Sekarang saya sedang menyelesaikan program S1 pada jurusan SI (Sistem Informasi)  di Universitas Gunadarma. Ambisi saya menjadi animator atau programmer atau bahkan ingin menggabungkan seni animasi kedalam pemrograman.

Permalink 1 Comment

JIKA INDONESIA TANPA KORUPSI

16 October 2010 at 12:23 AM (SoftSkill, Tulisan)


Asal kata Korupsi
Korupsi berawal dari bahasa latin corruptio atau corruptus. Corruptio berasal dari kata corrumpere, suatu kata latin yang lebih tua. Dari bahasa latin itulah turun ke banyak bahasa Eropa seperti Inggris yaitu corruption, corrupt; Prancis yaitu corruption; dan Belanda yaitu corruptie, korruptie. Dari Bahasa Belanda inilah kata itu turun ke Bahasa Indonesia yaitu korupsi.

Korupsi sudah menjadi wabah dan berada dimana mana sehingga sudah menjadi epidemic bahkan budaya korupsi dianggap tidak bersalah karena dipersepsikan sebagai bagian bertahan hidup. Oleh karenanya penuntasannya sudah pasti tidak dengan cara yang biasa saja tetapi harus lebih luar biasa.
Korupsi harus ditangani dengan ketegangan yang tinggi dan pilihannya menjadi baik atau tertangkap dan fatal bagi keluarganya. Selama persepsi bahwa kalau ketangkap sial saja dan semuanya bisa diantur kembali dengan membagi hasil korupsi maka sulit berhasil. Apalagi penahananya pun dibeda bedakan serta menjadi bahan pembicaraan tersendiri yang membuat keraguan masyarakat, tentang kesungguhan pemberantasan korupsi itu sendiri.

Negara kita mulai mencoba untuk memperbaiki nya, didirikanlan KPK. Tetapi baru sejenak instansi tesebut berdiri, langsung mendapatkan hantaman keras dari penguasa negeri kita, yang tak mau bekerja sama, mereka hanya mementingkan kepentingan pribadi maupun golongan sendiri.
Meski rakyat sudah berkoar-koar dihadapan publik tapi apa daya, hukum rimba masih tertanam dinegeri ini, siapa yang berkuasa dia yang menang, siapa yang berduit dia yang menang, mereka selalu mencari kambing hitam.

Dan andaikan Indonesia bersih dari korupsi, mungkin kita bisa melihatnya dipinggir jalan, tunawisma akan berkurang drastis, warga tak mampu bisa berobat gratis, kesehatan terjamin, pendidikan juga gratis, tidak hanya sampai sekolah dasar tapi bisa sampai perguruan tinggi (amin). Pengangguran berkurang, tindak kejahatan juga ikut berkurang, kesejahteraan rakyat terjamin, tidak ada pekerja dibawah umur, yang terpaksa meninggalkan masa bermainnya demi mencari sesuap nasi, semua warga selalu tersenyum, saling menghomati, tidak ada perselisihan antar umat beragama lagi. Dan masih banyak hal lainnya yang sangat indah untuk dibayangkan tetapi sulit untuk diwujudkan.

Permalink Leave a Comment

PERAN SISTEM INFORMASI DALAM BIDANG PENDIDIKAN

13 October 2010 at 1:04 AM (SoftSkill, Tulisan)


Peran sistem informasi dalam pendidikan pada dasarnya adalah proses komunikasi yang mengandung transformasi pengetahuan,nilai-nilai dan keterampilan-keterampilan di dalam maupun di luar lingkungan.

Sistem adalah seperangkat komponen yang saling berhubungan dan bekarja sama dalam mencapai suatu tujuan. Sebuah sistem terdiri dari bagian-bagian yang saling berkaitan dalam beroperasi bersama untuk mencapai beberapa sasaran.

Informasi adalah data yang telah di olah menjadi sebuah bentuk yang berarti bagi penerimanya dan bermanfaat dalam mengambil keputusan.

Pada dunia pendidikan Indonesia,system informasi dimanfaatkan sejak pendidikan dasar.Siswa-siswi diperkenalkan teknologi computer sejak bangku sekolah dasar.Kebutuhan akan kecanggihan teknologi memaksa pendidik /guru untuk menguasai teknologi tersebut.Dahulu tugas-tugas diberikan melalui buku yang siswa miliki.Kini,siswa hanya diperintahkan untuk mendownload tugas dan materi pelajaran yang diberikan.
Tidak hanya menggunakan media internet,bagi siswa yang tidak memasang internet dirumah.Mereka dapat mendapatkan semua materi pelajaran dengan menggunakan softcopynya.
Dalam tingkat pendidikan yang lebih tinggi,system informasi dirasakan sangat dibutuhkan.Kebutuhan mahasiswa akan informasi khususnya mahasiswa yang terkait dengan bidang computer memaksa mereka untuk haus akan informasi.Pertmenuan di kelas dengan dosenpun kini dapat dilakukan dengan e-learning,semua materi kuliah juga dapat dilihat dari e-book.
Dengan adanya perkembangan teknologi informasi dalam bidang pendidikan, maka pada saat ini sudah dimungkinkan untuk diadakan belajar jarak jauh dengan menggunakan media internet untuk menghubungkan antara mahasiswa dengan dosennya, melihat nilai mahasiswa secara online, mengecek keuangan, melihat jadwal kuliah, mengirimkan berkas tugas yang diberikan dosen dan sebagainya, semuanya itu sudah dapat dilakukan.

Permalink 1 Comment

Contoh nyata Interaksi manusia dengan Komputer

9 October 2010 at 1:04 PM (Tugas)


Manusia menggunakan komputer untuk menjalankan simulasi

 

Manusia menggunakan simulasi alat kebugaran

 

Simulasi pesawat terbang

Country : google.com

Permalink Leave a Comment