Sebuah buku foto yang berjudul Lensa Kampung Ondel-Ondelferrydmn1999
Indonesia, negara kepulauan yang kaya akan keragaman budaya, suku, dan tradisi, memiliki Jakarta sebagai pusat kebudayaan yang dinamis dan unik. Salah satu kesenian tradisional yang ikonik dan identik dengan Jakarta adalah ondel-ondel, boneka raksasa yang biasanya tampil berpasangan, terdiri dari laki-laki dan perempuan. Ondel-ondel awalnya dianggap sebagai simbol budaya sakral dan memainkan peran penting dalam ritual budaya masyarakat Betawi untuk menolak bala atau nasib buruk. Namun, seiring dengan bergulirnya waktu dan perubahan zaman, makna sakral ondel-ondel perlahan memudar dan berubah menjadi sesuatu yang kurang bernilai. Kini, ondel-ondel lebih sering digunakan sebagai hiasan atau sebagai sarana untuk mencari penghasilan. Buku foto Lensa Kampung Ondel-Ondel berfokus pada Keluarga Mulyadi, yang menghadapi tantangan untuk menjaga tradisi pembuatan ondel-ondel warisan leluhur di tengah keterbatasan ekonomi yang ada. Melalui foto cerita, foto feature dan foto jurnalistik buku ini menggambarkan usaha Keluarga Mulyadi untuk menjaga tradisi pembuatan ondel-ondel sambil menghadapi dilema dalam mempertahankan makna budaya di tengah perubahan makna dan keterbatasan ekonomi keluarganya. Buku foto ini dapat menggambarkan tentang bagaimana keluarga tersebut berjuang untuk menjaga warisan budaya mereka di tengah arus modernisasi.
Teori Fungsionalisme Kulturalisasi Talcott Parsons (Dosen Pengampu : Khoirin ...nasrudienaulia
Dalam teori fungsionalisme kulturalisasi Talcott Parsons, konsep struktur sosial sangat erat hubungannya dengan kulturalisasi. Struktur sosial merujuk pada pola-pola hubungan sosial yang terorganisir dalam masyarakat, termasuk hierarki, peran, dan institusi yang mengatur interaksi antara individu. Hubungan antara konsep struktur sosial dan kulturalisasi dapat dijelaskan sebagai berikut:
1. Pola Interaksi Sosial: Struktur sosial menentukan pola interaksi sosial antara individu dalam masyarakat. Pola-pola ini dipengaruhi oleh norma-norma budaya yang diinternalisasi oleh anggota masyarakat melalui proses sosialisasi. Dengan demikian, struktur sosial dan kulturalisasi saling memengaruhi dalam membentuk cara individu berinteraksi dan berperilaku.
2. Distribusi Kekuasaan dan Otoritas: Struktur sosial menentukan distribusi kekuasaan dan otoritas dalam masyarakat. Nilai-nilai budaya yang dianut oleh masyarakat juga memengaruhi bagaimana kekuasaan dan otoritas didistribusikan dalam struktur sosial. Kulturalisasi memainkan peran dalam melegitimasi sistem kekuasaan yang ada melalui nilai-nilai yang dianut oleh masyarakat.
3. Fungsi Sosial: Struktur sosial dan kulturalisasi saling terkait dalam menjalankan fungsi-fungsi sosial dalam masyarakat. Nilai-nilai budaya dan norma-norma yang terinternalisasi membentuk dasar bagi pelaksanaan fungsi-fungsi sosial yang diperlukan untuk menjaga keseimbangan dan stabilitas dalam masyarakat.
Dengan demikian, konsep struktur sosial dalam teori fungsionalisme kulturalisasi Parsons tidak dapat dipisahkan dari kulturalisasi karena keduanya saling berinteraksi dan saling memengaruhi dalam membentuk pola-pola hubungan sosial, distribusi kekuasaan, dan pelaksanaan fungsi-fungsi sosial dalam masyarakat.
2024 State of Marketing Report – by HubspotMarius Sescu
https://www.hubspot.com/state-of-marketing
· Scaling relationships and proving ROI
· Social media is the place for search, sales, and service
· Authentic influencer partnerships fuel brand growth
· The strongest connections happen via call, click, chat, and camera.
· Time saved with AI leads to more creative work
· Seeking: A single source of truth
· TLDR; Get on social, try AI, and align your systems.
· More human marketing, powered by robots
ChatGPT is a revolutionary addition to the world since its introduction in 2022. A big shift in the sector of information gathering and processing happened because of this chatbot. What is the story of ChatGPT? How is the bot responding to prompts and generating contents? Swipe through these slides prepared by Expeed Software, a web development company regarding the development and technical intricacies of ChatGPT!
Sebuah buku foto yang berjudul Lensa Kampung Ondel-Ondelferrydmn1999
Indonesia, negara kepulauan yang kaya akan keragaman budaya, suku, dan tradisi, memiliki Jakarta sebagai pusat kebudayaan yang dinamis dan unik. Salah satu kesenian tradisional yang ikonik dan identik dengan Jakarta adalah ondel-ondel, boneka raksasa yang biasanya tampil berpasangan, terdiri dari laki-laki dan perempuan. Ondel-ondel awalnya dianggap sebagai simbol budaya sakral dan memainkan peran penting dalam ritual budaya masyarakat Betawi untuk menolak bala atau nasib buruk. Namun, seiring dengan bergulirnya waktu dan perubahan zaman, makna sakral ondel-ondel perlahan memudar dan berubah menjadi sesuatu yang kurang bernilai. Kini, ondel-ondel lebih sering digunakan sebagai hiasan atau sebagai sarana untuk mencari penghasilan. Buku foto Lensa Kampung Ondel-Ondel berfokus pada Keluarga Mulyadi, yang menghadapi tantangan untuk menjaga tradisi pembuatan ondel-ondel warisan leluhur di tengah keterbatasan ekonomi yang ada. Melalui foto cerita, foto feature dan foto jurnalistik buku ini menggambarkan usaha Keluarga Mulyadi untuk menjaga tradisi pembuatan ondel-ondel sambil menghadapi dilema dalam mempertahankan makna budaya di tengah perubahan makna dan keterbatasan ekonomi keluarganya. Buku foto ini dapat menggambarkan tentang bagaimana keluarga tersebut berjuang untuk menjaga warisan budaya mereka di tengah arus modernisasi.
Teori Fungsionalisme Kulturalisasi Talcott Parsons (Dosen Pengampu : Khoirin ...nasrudienaulia
Dalam teori fungsionalisme kulturalisasi Talcott Parsons, konsep struktur sosial sangat erat hubungannya dengan kulturalisasi. Struktur sosial merujuk pada pola-pola hubungan sosial yang terorganisir dalam masyarakat, termasuk hierarki, peran, dan institusi yang mengatur interaksi antara individu. Hubungan antara konsep struktur sosial dan kulturalisasi dapat dijelaskan sebagai berikut:
1. Pola Interaksi Sosial: Struktur sosial menentukan pola interaksi sosial antara individu dalam masyarakat. Pola-pola ini dipengaruhi oleh norma-norma budaya yang diinternalisasi oleh anggota masyarakat melalui proses sosialisasi. Dengan demikian, struktur sosial dan kulturalisasi saling memengaruhi dalam membentuk cara individu berinteraksi dan berperilaku.
2. Distribusi Kekuasaan dan Otoritas: Struktur sosial menentukan distribusi kekuasaan dan otoritas dalam masyarakat. Nilai-nilai budaya yang dianut oleh masyarakat juga memengaruhi bagaimana kekuasaan dan otoritas didistribusikan dalam struktur sosial. Kulturalisasi memainkan peran dalam melegitimasi sistem kekuasaan yang ada melalui nilai-nilai yang dianut oleh masyarakat.
3. Fungsi Sosial: Struktur sosial dan kulturalisasi saling terkait dalam menjalankan fungsi-fungsi sosial dalam masyarakat. Nilai-nilai budaya dan norma-norma yang terinternalisasi membentuk dasar bagi pelaksanaan fungsi-fungsi sosial yang diperlukan untuk menjaga keseimbangan dan stabilitas dalam masyarakat.
Dengan demikian, konsep struktur sosial dalam teori fungsionalisme kulturalisasi Parsons tidak dapat dipisahkan dari kulturalisasi karena keduanya saling berinteraksi dan saling memengaruhi dalam membentuk pola-pola hubungan sosial, distribusi kekuasaan, dan pelaksanaan fungsi-fungsi sosial dalam masyarakat.
2024 State of Marketing Report – by HubspotMarius Sescu
https://www.hubspot.com/state-of-marketing
· Scaling relationships and proving ROI
· Social media is the place for search, sales, and service
· Authentic influencer partnerships fuel brand growth
· The strongest connections happen via call, click, chat, and camera.
· Time saved with AI leads to more creative work
· Seeking: A single source of truth
· TLDR; Get on social, try AI, and align your systems.
· More human marketing, powered by robots
ChatGPT is a revolutionary addition to the world since its introduction in 2022. A big shift in the sector of information gathering and processing happened because of this chatbot. What is the story of ChatGPT? How is the bot responding to prompts and generating contents? Swipe through these slides prepared by Expeed Software, a web development company regarding the development and technical intricacies of ChatGPT!
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
The realm of product design is a constantly changing environment where technology and style intersect. Every year introduces fresh challenges and exciting trends that mold the future of this captivating art form. In this piece, we delve into the significant trends set to influence the look and functionality of product design in the year 2024.
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
Mental health has been in the news quite a bit lately. Dozens of U.S. states are currently suing Meta for contributing to the youth mental health crisis by inserting addictive features into their products, while the U.S. Surgeon General is touring the nation to bring awareness to the growing epidemic of loneliness and isolation. The country has endured periods of low national morale, such as in the 1970s when high inflation and the energy crisis worsened public sentiment following the Vietnam War. The current mood, however, feels different. Gallup recently reported that national mental health is at an all-time low, with few bright spots to lift spirits.
To better understand how Americans are feeling and their attitudes towards mental health in general, ThinkNow conducted a nationally representative quantitative survey of 1,500 respondents and found some interesting differences among ethnic, age and gender groups.
Technology
For example, 52% agree that technology and social media have a negative impact on mental health, but when broken out by race, 61% of Whites felt technology had a negative effect, and only 48% of Hispanics thought it did.
While technology has helped us keep in touch with friends and family in faraway places, it appears to have degraded our ability to connect in person. Staying connected online is a double-edged sword since the same news feed that brings us pictures of the grandkids and fluffy kittens also feeds us news about the wars in Israel and Ukraine, the dysfunction in Washington, the latest mass shooting and the climate crisis.
Hispanics may have a built-in defense against the isolation technology breeds, owing to their large, multigenerational households, strong social support systems, and tendency to use social media to stay connected with relatives abroad.
Age and Gender
When asked how individuals rate their mental health, men rate it higher than women by 11 percentage points, and Baby Boomers rank it highest at 83%, saying it’s good or excellent vs. 57% of Gen Z saying the same.
Gen Z spends the most amount of time on social media, so the notion that social media negatively affects mental health appears to be correlated. Unfortunately, Gen Z is also the generation that’s least comfortable discussing mental health concerns with healthcare professionals. Only 40% of them state they’re comfortable discussing their issues with a professional compared to 60% of Millennials and 65% of Boomers.
Race Affects Attitudes
As seen in previous research conducted by ThinkNow, Asian Americans lag other groups when it comes to awareness of mental health issues. Twenty-four percent of Asian Americans believe that having a mental health issue is a sign of weakness compared to the 16% average for all groups. Asians are also considerably less likely to be aware of mental health services in their communities (42% vs. 55%) and most likely to seek out information on social media (51% vs. 35%).
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
This article is all about what AI trends will emerge in the field of creative operations in 2024. All the marketers and brand builders should be aware of these trends for their further use and save themselves some time!
A report by thenetworkone and Kurio.
The contributing experts and agencies are (in an alphabetical order): Sylwia Rytel, Social Media Supervisor, 180heartbeats + JUNG v MATT (PL), Sharlene Jenner, Vice President - Director of Engagement Strategy, Abelson Taylor (USA), Alex Casanovas, Digital Director, Atrevia (ES), Dora Beilin, Senior Social Strategist, Barrett Hoffher (USA), Min Seo, Campaign Director, Brand New Agency (KR), Deshé M. Gully, Associate Strategist, Day One Agency (USA), Francesca Trevisan, Strategist, Different (IT), Trevor Crossman, CX and Digital Transformation Director; Olivia Hussey, Strategic Planner; Simi Srinarula, Social Media Manager, The Hallway (AUS), James Hebbert, Managing Director, Hylink (CN / UK), Mundy Álvarez, Planning Director; Pedro Rojas, Social Media Manager; Pancho González, CCO, Inbrax (CH), Oana Oprea, Head of Digital Planning, Jam Session Agency (RO), Amy Bottrill, Social Account Director, Launch (UK), Gaby Arriaga, Founder, Leonardo1452 (MX), Shantesh S Row, Creative Director, Liwa (UAE), Rajesh Mehta, Chief Strategy Officer; Dhruv Gaur, Digital Planning Lead; Leonie Mergulhao, Account Supervisor - Social Media & PR, Medulla (IN), Aurelija Plioplytė, Head of Digital & Social, Not Perfect (LI), Daiana Khaidargaliyeva, Account Manager, Osaka Labs (UK / USA), Stefanie Söhnchen, Vice President Digital, PIABO Communications (DE), Elisabeth Winiartati, Managing Consultant, Head of Global Integrated Communications; Lydia Aprina, Account Manager, Integrated Marketing and Communications; Nita Prabowo, Account Manager, Integrated Marketing and Communications; Okhi, Web Developer, PNTR Group (ID), Kei Obusan, Insights Director; Daffi Ranandi, Insights Manager, Radarr (SG), Gautam Reghunath, Co-founder & CEO, Talented (IN), Donagh Humphreys, Head of Social and Digital Innovation, THINKHOUSE (IRE), Sarah Yim, Strategy Director, Zulu Alpha Kilo (CA).
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
The search marketing landscape is evolving rapidly with new technologies, and professionals, like you, rely on innovative paid search strategies to meet changing demands.
It’s important that you’re ready to implement new strategies in 2024.
Check this out and learn the top trends in paid search advertising that are expected to gain traction, so you can drive higher ROI more efficiently in 2024.
You’ll learn:
- The latest trends in AI and automation, and what this means for an evolving paid search ecosystem.
- New developments in privacy and data regulation.
- Emerging ad formats that are expected to make an impact next year.
Watch Sreekant Lanka from iQuanti and Irina Klein from OneMain Financial as they dive into the future of paid search and explore the trends, strategies, and technologies that will shape the search marketing landscape.
If you’re looking to assess your paid search strategy and design an industry-aligned plan for 2024, then this webinar is for you.
5 Public speaking tips from TED - Visualized summarySpeakerHub
From their humble beginnings in 1984, TED has grown into the world’s most powerful amplifier for speakers and thought-leaders to share their ideas. They have over 2,400 filmed talks (not including the 30,000+ TEDx videos) freely available online, and have hosted over 17,500 events around the world.
With over one billion views in a year, it’s no wonder that so many speakers are looking to TED for ideas on how to share their message more effectively.
The article “5 Public-Speaking Tips TED Gives Its Speakers”, by Carmine Gallo for Forbes, gives speakers five practical ways to connect with their audience, and effectively share their ideas on stage.
Whether you are gearing up to get on a TED stage yourself, or just want to master the skills that so many of their speakers possess, these tips and quotes from Chris Anderson, the TED Talks Curator, will encourage you to make the most impactful impression on your audience.
See the full article and more summaries like this on SpeakerHub here: https://speakerhub.com/blog/5-presentation-tips-ted-gives-its-speakers
See the original article on Forbes here:
http://www.forbes.com/forbes/welcome/?toURL=http://www.forbes.com/sites/carminegallo/2016/05/06/5-public-speaking-tips-ted-gives-its-speakers/&refURL=&referrer=#5c07a8221d9b
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
Everyone is in agreement that ChatGPT (and other generative AI tools) will shape the future of work. Yet there is little consensus on exactly how, when, and to what extent this technology will change our world.
Businesses that extract maximum value from ChatGPT will use it as a collaborative tool for everything from brainstorming to technical maintenance.
For individuals, now is the time to pinpoint the skills the future professional will need to thrive in the AI age.
Check out this presentation to understand what ChatGPT is, how it will shape the future of work, and how you can prepare to take advantage.
A brief introduction to DataScience with explaining of the concepts, algorithms, machine learning, supervised and unsupervised learning, clustering, statistics, data preprocessing, real-world applications etc.
It's part of a Data Science Corner Campaign where I will be discussing the fundamentals of DataScience, AIML, Statistics etc.
Time Management & Productivity - Best PracticesVit Horky
Here's my presentation on by proven best practices how to manage your work time effectively and how to improve your productivity. It includes practical tips and how to use tools such as Slack, Google Apps, Hubspot, Google Calendar, Gmail and others.
The six step guide to practical project managementMindGenius
The six step guide to practical project management
If you think managing projects is too difficult, think again.
We’ve stripped back project management processes to the
basics – to make it quicker and easier, without sacrificing
the vital ingredients for success.
“If you’re looking for some real-world guidance, then The Six Step Guide to Practical Project Management will help.”
Dr Andrew Makar, Tactical Project Management
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Materi my sql part 4
1. MATERI PART 4 – Prak. BASISDATA
VIEW dan TRIGGER
LABORATORIUM 4 – BASISDATA
MENU PART INI :
1. View
a. Algorithm Attributes
b. Updatable View
c. Klausa WITH CHECK OPTION
d. Merubah View
e. Melihat definisi pembuatan view
2. Trigger
a. Membuat trigger
b. BEFORE TRIGGER
c. AFTER TRIGGER
d. Melihat trigger yang sudah dibuat
2. VIEW
View adalah query tersimpan yang menghasilkan result set ketika dipanggil. View
bertindak sebagai tabel virtual. Beberapa hal yang tidak boleh digunakan pada query
yang mendefinisikan view adalah sebagai berikut:
• definisi view tidak boleh memiliki sub query di klausa FROM dari statement SQL
• variabel user, sistem, atau lokal tidak boleh digunakan dalam sebuah SQL SELECT
• view tidak dapat merujuk ke tabel temporer
• trigger tidak dapat diasosiasikan terhadap sebuah view
• view yang dibuat di dalam stored procedure tidak dapat merujuk kepada parameter
dalam stored procedure
Pembuatan view memerlukan pendefinisian nama view dan sebuah statement SQL.
Setelah view dibuat, view dapat diquery seperti tabel biasa. Bentuk dasar pembuatan
view adalah sebagai berikut:
CREATE VIEW view_name AS SELECT column_name(s) FROM table_name [WHERE condition]
Pembuatan view dapat menggunakan OR REPLACE untuk mengganti view yang telah ada
sebelumnya.
Berikut adalah contoh pembuatan view sederhana.
mysql> CREATE VIEW view_1 AS SELECT * FROM pegawai;
Query OK, 0 rows affected (0.06 sec)
Setelah view dibuat maka untuk melihat hasilnya kita harus memanggilnya dengan perintah
select, contohnya :
mysql> select*from view_1;
+----------+-----------------------+-------------+----------------+---------+
| nip | nama_peg | alamat_peg | jabatan | gaji |
+----------+-----------------------+-------------+----------------+---------+
| PEG-1001 | Soeharto Mangundirejo | Yogyakarta | C.E.O | 9000000 |
| PEG-1002 | Felix Nababan | Medan | Manager | 8000000 |
| PEG-1003 | Olga Syahputra | Jakarta | Kepala Unit | 6000000 |
| PEG-1004 | Chelsea Olivia | Bandung | Kepala Unit | 6000000 |
| PEG-1005 | Tuti Wardani | Jawa Tengah | Supervisor | 4500000 |
| PEG-1006 | Budi Drajat | Malang | Supervisor | 4500000 |
| PEG-1007 | Bambang Pamungkas | Kudus | Staff Senior | 3000000 |
| PEG-1008 | Ely Oktafiani | Yogyakarta | Staff Senior | 3000000 |
| PEG-1009 | Rani Wijaya | Magelang | Staff Senior | 3000000 |
| PEG-1010 | Rano Karno | Solo | Staff Junior | 2000000 |
| PEG-1011 | Rahmadi Sholeh | Yogyakarta | Staff Junior | 2000000 |
| PEG-1012 | Ilham Ungara | Jakarta | Staff Junior | 2000000 |
| PEG-1013 | Endang Melati | Madiun | Staff Junior | 2000000 |
| PEG-1014 | Donny Damara | Makasar | Tenaga Kontrak | 1000000 |
| PEG-1015 | Paijem | Yogyakarta | Tenaga Kontrak | 500000 |
+----------+-----------------------+-------------+----------------+---------+
15 rows in set (0.00 sec)
3. Dalam peamanggilannya pun kita juga bisa menentukan kondisi yang kita inginkan,
contohnya :
mysql> select*from view_1 limit 3;
+----------+-----------------------+------------+-------------+---------+
| nip | nama_peg | alamat_peg | jabatan | gaji |
+----------+-----------------------+------------+-------------+---------+
| PEG-1001 | Soeharto Mangundirejo | Yogyakarta | C.E.O | 9000000 |
| PEG-1002 | Felix Nababan | Medan | Manager | 8000000 |
| PEG-1003 | Olga Syahputra | Jakarta | Kepala Unit | 6000000 |
+----------+-----------------------+------------+-------------+---------+
3 rows in set (0.00 sec)
mysql> select*from view_1 where nama_peg = 'Olga Syahputra';
+----------+----------------+------------+-------------+---------+
| nip | nama_peg | alamat_peg | jabatan | gaji |
+----------+----------------+------------+-------------+---------+
| PEG-1003 | Olga Syahputra | Jakarta | Kepala Unit | 6000000 |
+----------+----------------+------------+-------------+---------+
1 row in set (0.00 sec)
Penggunaan WHERE dalam syntax VIEW
mysql>
CREATE VIEW view_2
AS SELECT nip, nama_peg, gaji
FROM pegawai
WHERE alamat_peg='Yogyakarta';
Query OK, 0 rows affected (0.02 sec)
mysql> select * from view_2;
+----------+-----------------------+---------+
| nip | nama_peg | gaji |
+----------+-----------------------+---------+
| PEG-1001 | Soeharto Mangundirejo | 9000000 |
| PEG-1008 | Ely Oktafiani | 3000000 |
| PEG-1011 | Rahmadi Sholeh | 2000000 |
| PEG-1015 | Paijem | 500000 |
+----------+-----------------------+---------+
4 rows in set (0.00 sec)
1. Algorithm Attributes
Algorithm attributes memberikan kendali bagaimana MySQL memproses view. Atribut
ini bersifat opsional. Atribut algoritma menerima tiga buah nilai, yaitu MERGE,
TEMPTABLE, dan UNDEFINED.
Default algoritma yang dipilih adalah UNDEFINED.
Untuk algoritma MERGE, teks dari statement query yang merujuk ke sebua h view dan
definisi view digabung sedemikian sehingga bagian dari definisi view menggantikan
bagian yang bersesuaian dengan statement.
4. Untuk algoritma TEMPTABLE, hasil dari view diambil ke dalam temporary table, yang
kemudian digunakan untuk menjalankan statement. TEMPTABLE dipilih karena lock
pada table yang digunakan dapat langsung dilepas setelah temporary table telah
dibuat. Akibatnya, penggunaan TEMPTABLE dapat mempercepat pelepasan lock pada
table utama, sehingga klien lain yang akan menggunakan view tidak menunggu
terlalu lama.
Untuk algoritma UNDEFINED, MySQL memilih sendiri algoritma mana yang akan
digunakan. MySQL lebih memilih MERGE karena biasanya lebih efisien. Selain itu,
view yang menggunakan TEMPTABLE tidak dapat diupdate karena menggunakan temporary
table.
Berikut adalah contoh pembuatan view menggunakan atribut algoritma MERGE.
mysql> CREATE ALGORITHM = MERGE VIEW v_merge (nomor_induk_pegawai, nama_pegawai,
gaji) AS SELECT nip, nama_peg, gaji FROM pegawai WHERE gaji > 2000000;
Query OK, 0 rows affected (0.03 sec)
mysql> select*from v_merge;
+---------------------+-----------------------+---------+
| nomor_induk_pegawai | nama_pegawai | gaji |
+---------------------+-----------------------+---------+
| PEG-1001 | Soeharto Mangundirejo | 9000000 |
| PEG-1002 | Felix Nababan | 8000000 |
| PEG-1003 | Olga Syahputra | 6000000 |
| PEG-1004 | Chelsea Olivia | 6000000 |
| PEG-1005 | Tuti Wardani | 4500000 |
| PEG-1006 | Budi Drajat | 4500000 |
| PEG-1007 | Bambang Pamungkas | 3000000 |
| PEG-1008 | Ely Oktafiani | 3000000 |
| PEG-1009 | Rani Wijaya | 3000000 |
+---------------------+-----------------------+---------+
9 rows in set (0.00 sec)
Adanya tambahan syntax ALGORITHM=MERGE tersebut bertujuan untuk mendeklarasikan
Algoritma mana yang kita pilih, jika kita tidak mendeklarasikannya punjuga bisa
karena MySQL bisa memilih sendiri contoh :
mysql> CREATE VIEW v_merge2(nomor_induk_pegawai, nama_pegawai, gaji) AS SELECT n
ip, nama_peg, gaji FROM pegawai WHERE gaji > 2000000;
Query OK, 0 rows affected (0.03 sec)
mysql> select*from v_merge2;
+---------------------+-----------------------+---------+
| nomor_induk_pegawai | nama_pegawai | gaji |
+---------------------+-----------------------+---------+
| PEG-1001 | Soeharto Mangundirejo | 9000000 |
| PEG-1002 | Felix Nababan | 8000000 |
| PEG-1003 | Olga Syahputra | 6000000 |
| PEG-1004 | Chelsea Olivia | 6000000 |
| PEG-1005 | Tuti Wardani | 4500000 |
| PEG-1006 | Budi Drajat | 4500000 |
| PEG-1007 | Bambang Pamungkas | 3000000 |
5. | PEG-1008 | Ely Oktafiani | 3000000 |
| PEG-1009 | Rani Wijaya | 3000000 |
+---------------------+-----------------------+---------+
9 rows in set (0.00 sec)
Algoritma MERGE tidak dapat digunakan ketika view memerlukan penggunaan
konstruksi sebagai berikut:
• Fungsi aggregate, seperti SUM(), MIN(), MAX(), COUNT() dan lain-lain
• DISTINCT
• GROUP BY
• HAVING
• LIMIT
• UNION atau UNION ALL
• Subquery pada SELECT
• Referensi ke nilai literal (tidak ada tabel yang direferensi)
Ketika algoritma MERGE tidak dapat digunakan, kita bisa menggunakan algoritma
TEMPTABLE.
mysql> CREATE ALGORITHM = MERGE VIEW view_4(nomor_induk_pegawai, nama_pegawai, g
aji) AS SELECT nip, nama_peg, gaji FROM pegawai WHERE gaji > 2000000 LIMIT 5;
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> show warnings;
+---------+------+-------------------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+-------------------------------------------------------------------------------+
| Warning | 1354 | View merge algorithm can't be used here for now (assumed undefined algorithm) |
+---------+------+-------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> CREATE ALGORITHM = TEMPTABLE VIEW v_temptable(nomor_induk_pegawai, nama_p
egawai, gaji) AS SELECT nip, nama_peg, gaji FROM pegawai WHERE gaji > 2000000 LI
MIT 5;
Query OK, 0 rows affected (0.03 sec)
mysql> select * from v_temptable;
+---------------------+-----------------------+---------+
| nomor_induk_pegawai | nama_pegawai | gaji |
+---------------------+-----------------------+---------+
| PEG-1001 | Soeharto Mangundirejo | 9000000 |
| PEG-1002 | Felix Nababan | 8000000 |
| PEG-1003 | Olga Syahputra | 6000000 |
| PEG-1004 | Chelsea Olivia | 6000000 |
| PEG-1005 | Tuti Wardani | 4500000 |
+---------------------+-----------------------+---------+
5 rows in set (0.00 sec)
Ketika kita mendefinisikan VIEW menggunakan algoritma TEMPTABLE tidak muncul
pesan warning.
2. Updateable VIEW
6. Ada beberapa view yang dapat diupdate menggunakan statement UPDATE, DELETE, atau
INSERT.
Update juga dilakukan pada tabel yang dirujuk view tersebut. Supaya sebuah view
dapat diupdate, harus ada hubungan satu-satu antara baris dalam view dengan baris
pada tabelnya. Selain view yang dapat diupdate ada juga view yang tidak dapat
diupdate, yaitu view yang memiliki:
• fungsi aggregat, seperti SUM(), MIN(), MAX(), COUNT().
• DISTINCT
• GROUP BY
• HAVING
• sub query di SELECT
• Join-join tertentu
• Nonupdatable view di klausa FROM
• Sebuah subquery di klausa WHERE yang merujuk ke sebuah tabel dalam klausa
FROM.
• Hanya merujuk ke nilai literal (tidak merujuk ke sebuah tabel)
• Menggunakan ALGORITHM = TEMPTABLE (penggunaan temporary table membuat
view tidak dapat diupdate)
• Referensi berulangkali ke kolom manapun dari sebuah tabel.
mysql> UPDATE v_merge2 SET nama_pegawai = 'Olga Syahrini' WHERE nama_pegawai = '
Olga Syahputra';
Query OK, 1 row affected (0.05 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Lalu kita lihat perubahannya pada hasil eksekusi v_merge2;
mysql> select * from v_merge2;
+---------------------+-----------------------+---------+
| nomor_induk_pegawai | nama_pegawai | gaji |
+---------------------+-----------------------+---------+
| PEG-1001 | Soeharto Mangundirejo | 9000000 |
| PEG-1002 | Felix Nababan | 8000000 |
| PEG-1003 | Olga Syahrini | 6000000 |
| PEG-1004 | Chelsea Olivia | 6000000 |
| PEG-1005 | Tuti Wardani | 4500000 |
| PEG-1006 | Budi Drajat | 4500000 |
| PEG-1007 | Bambang Pamungkas | 3000000 |
| PEG-1008 | Ely Oktafiani | 3000000 |
| PEG-1009 | Rani Wijaya | 3000000 |
+---------------------+-----------------------+---------+
9 rows in set (0.00 sec)
Update pada view v_merge2 juga berefek pada tabel sebenarnya, sehingga update
pada view bukan hanya merubah data dlm view tetapi merubah data secara
keseluruhan.
Kita bisa lihat sbb :
mysql> select * from pegawai;
7. +----------+-----------------------+-------------+----------------+---------+
| nip | nama_peg | alamat_peg | jabatan | gaji |
+----------+-----------------------+-------------+----------------+---------+
| PEG-1001 | Soeharto Mangundirejo | Yogyakarta | C.E.O | 9000000 |
| PEG-1002 | Felix Nababan | Medan | Manager | 8000000 |
| PEG-1003 | Olga Syahrini | Jakarta | Kepala Unit | 6000000 |
| PEG-1004 | Chelsea Olivia | Bandung | Kepala Unit | 6000000 |
| PEG-1005 | Tuti Wardani | Jawa Tengah | Supervisor | 4500000 |
| PEG-1006 | Budi Drajat | Malang | Supervisor | 4500000 |
| PEG-1007 | Bambang Pamungkas | Kudus | Staff Senior | 3000000 |
| PEG-1008 | Ely Oktafiani | Yogyakarta | Staff Senior | 3000000 |
| PEG-1009 | Rani Wijaya | Magelang | Staff Senior | 3000000 |
| PEG-1010 | Rano Karno | Solo | Staff Junior | 2000000 |
| PEG-1011 | Rahmadi Sholeh | Yogyakarta | Staff Junior | 2000000 |
| PEG-1012 | Ilham Ungara | Jakarta | Staff Junior | 2000000 |
| PEG-1013 | Endang Melati | Madiun | Staff Junior | 2000000 |
| PEG-1014 | Donny Damara | Makasar | Tenaga Kontrak | 1000000 |
| PEG-1015 | Paijem | Yogyakarta | Tenaga Kontrak | 500000 |
+----------+-----------------------+-------------+----------------+---------+
15 rows in set (0.00 sec)
Sekarang kita coba mengupdate view yang memuat “larangan” tadi, contoh kita akan
mengupdate v_temptable yang merupakan temptable view, maka syntaxnya :
mysql> UPDATE v_temptable SET nama_pegawai = 'Chelsea Burik' WHERE nama_pegawai
= 'Chelsea Olivia';
ERROR 1288 (HY000): The target table v_temptable of the UPDATE is not updatable
3. Klausa WITH CHECK OPTION
Klausa WITH CHECK OPTION dalam pembuatan view diberikan kepada updatable view
untuk mencegah INSERT atau UPDATE pada baris data kecuali klausa WHERE pada
statement SELECT bernilai benar (true). Parameter yang dapat digunakan untuk
CHECK OPTION adalah LOCAL dan CASCADED. Parameter LOCAL berarti pengecekan hanya
dilakukan pada view yang didefinisikan. Parameter CASCADED berarti pengecekan
dilakukan pada view beserta tabel yang direferensi oleh view tersebut. Secara
default, pendefinisian CHECK OPTION bernilai CASCADED.
Berikut adalah contoh definisi view menggunakan CHECK OPTION:
mysql> CREATE VIEW v_1 AS SELECT nip, nama_peg, gaji FROM pegawai WHERE gaji < 2
000000 WITH CHECK OPTION;
Query OK, 0 rows affected (0.03 sec)
mysql> select * from v_1;
+----------+---------------+---------+
| nip | nama_peg | gaji |
+----------+---------------+---------+
| PEG-1014 | Donny Damara | 1000000 |
| PEG-1015 | Paijem | 500000 |
| PEG-1016 | Djono | 1000000 |
+----------+---------------+---------+
3 rows in set (0.00 sec)
8. mysql> CREATE VIEW v_2 AS SELECT * FROM v_1 WHERE gaji > 500000 WITH LOCAL CHECK
OPTION;
Query OK, 0 rows affected (0.03 sec)
mysql> select * from v_2;
+----------+---------------+---------+
| nip | nama_peg | gaji |
+----------+---------------+---------+
| PEG-1014 | Donny Damara | 1000000 |
| PEG-1016 | Djono | 1000000 |
+----------+---------------+---------+
2 rows in set (0.00 sec)
mysql> CREATE VIEW v_3 AS SELECT * FROM v_1 WHERE gaji > 500000 WITH CASCADED CH
ECK OPTION;
Query OK, 0 rows affected (0.03 sec)
mysql> select * from v_3;
+----------+---------------+---------+
| nip | nama_peg | gaji |
+----------+---------------+---------+
| PEG-1014 | Donny Damara | 1000000 |
| PEG-1016 | Djono | 1000000 |
+----------+---------------+---------+
2 rows in set (0.00 sec)
Pada View v_1 kita membuat sebuah view untuk menampilkan data pegawai yang
memiliki gaji kurang dari 2jt, lalu kita membuat view v_2 yang berfungsi untuk
mengambil data dari hasil eksekusi view v_1 tetapi dibatasi data pegawai yang
memiliki gaji lebih dari 500rb dan juga memuat klausa WITH LOCAL CHECK OPTION,
sedangkan view_v3 fungsinya sama dengan view v_2 tetapi bedanya view v_3
menggunakan klausa WITH CASCADED CHECK OPTION. Untuk melihat perbedaannya kita
bisa melakukan masukkan data sbb :
mysql> insert into v_2 values('PEG-1018','Robert Gugu',3000000);
Query OK, 1 row affected (0.05 sec)
mysql> insert into v_3 values('PEG-1018','Robert Gugu',3000000);
ERROR 1369 (HY000): CHECK OPTION failed 'lab4.v_3'
Insert data pada view v_2 dinyatakan tak ada masalah karena v_2 hanya melihat
atau mengechek secara LOCAL atau hanya yang data lebih dari 500rb, sedangkan
untuk v_3 dinyatakan error karena dia mengecheck secara CASCADED atau
keseluruhan, mulai dari pengecheckan v_1 yang direferensikan oleh v_3, dan karena
v_1 memiliki batasan 2jt maka masukkan 3jt ke v_3 dianggap salah.
4. Merubah VIEW
View yang telah kita buat bisa kita modifikasi dengan ALTER VIEW, contohnya sbb :
mysql> ALTER VIEW view_2(NIP, NAMA_PEGAWAI, GAJI) AS SELECT nip, nama_peg, gaji
FROM pegawai WHERE alamat_peg='Yogyakarta';
9. Query OK, 0 rows affected (0.02 sec)
mysql> select * from view_2;
+----------+-----------------------+---------+
| NIP | NAMA_PEGAWAI | GAJI |
+----------+-----------------------+---------+
| PEG-1001 | Soeharto Mangundirejo | 9000000 |
| PEG-1008 | Ely Oktafiani | 3000000 |
| PEG-1011 | Rahmadi Sholeh | 2000000 |
| PEG-1015 | Paijem | 500000 |
| PEG-1016 | Djono | 1000000 |
+----------+-----------------------+---------+
5 rows in set (0.02 sec)
5. Melihat Definisi Pembuatan VIEW
Kita bisa melihat kembali syntax kita dalam membuat view, kita bisa menggunakan
syntax :
SHOW CREATE VIEW<nama_view>
mysql> show create view view_2G;
atau jika kita ingin melihat struktur viewnya kita juga bisa gunakan
perintah :
DESC <nama_view>
mysql> desc view_2;
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| NIP | varchar(8) | NO | | NULL | |
| NAMA_PEGAWAI | varchar(50) | YES | | NULL | |
| GAJI | int(7) | YES | | NULL | |
+--------------+-------------+------+-----+---------+-------+
3 rows in set (0.02 sec)
10. TRIGGER
Trigger adalah sebuah objek database yang diasosiasikan dengan sebuah tabel. Trigger
diaktifkan ketika sebuah event terjadi pada tabel yang diasosiasikan. Tabel yang
diasosiasikan dengan trigger haruslah sebuah tabel yang permanen dan bukan temporary
tabel.
1. Membuat Trigger
Trigger bisa dibuat dengan syntax sbb :
CREATE TRIGGER <trigger_name> <trigger_time> <trigger_event>
ON <table>
FOR EACH ROW <trigger_body statements>
Pada sintaks di atas, trigger_name adalah nama dari trigger yang akan kita buat.
Trigger_time adalah saat aktivasi trigger. Parameter trigger_time dapat berisi
BEFORE atau AFTER, yang menandakan apakah aktivasi trigger dilakukan sebelum atau
sesudah terjadi perubahan pada tabel.
Trigger_event menunjukkan jenis statement yang mengaktifkan trigger.
Trigger_event dapat didefinisikan sebagai salah satu dari:
INSERT: trigger diaktifkan ketika sebuah baris baru ditambahkan ke tabel,
sebagai contoh melalui statement INSERT, LOAD DATA, atau REPLACE.
UPDATE: trigger diaktifkan ketika sebuah baris dimodifikasi, sebagai contoh
melalui statement UPDATE.
DELETE: trigger diaktifkan ketika sebuah baris dihapus, melalui statement
DELETE dan REPLACE. Namun demikian, DROP TABLE dan TRUNCATE TABLE tidak
mengaktifkan trigger DELETE
Tidak boleh ada dua buah trigger yang sama pada sebuah tabel yang memiliki
trigger_time dan trigger_event yang sama. Sebagai contoh, kita tidak dapat
membuat dua buah BEFORE UPDATE trigger pada satu buah tabel yang sama, namun kita
dapat membuat trigger BEFORE UPDATE dan AFTER UPDATE untuk satu tabel yang sama.
trigger_body merupakan definisi statement yang dijalankan ketika sebuah trigger
diaktifkan. Jika ada beberapa statement yang ingin dijalankan, statement-
statement tersebut dapat didefinisikan di antara BEGIN … AND.
Keyword OLD dan NEW dapat digunakan untuk mereferensi nilai sebelum dan sesudah
trigger dilakukan. Sebagai contoh OLD.nama_kolom menunjukkan nilai kolom sebelum
data tersebut dihapus atau diupdate, sedangkan NEW.nama_kolom menunjukkan nilai
kolom sebuah data yang akan dimasukkan atau nilai kolom data setelah diupdate.
2. BEFORE TRIGGER
11. Berikut adalah contoh trigger yang dijalankan sebelum data dimasukkan ke dalam
sebuah tabel.
mysql> DELIMITER #
mysql> CREATE TRIGGER sebelum_insert BEFORE INSERT ON pegawai FOR EACH ROW
BEGIN
IF NEW.gaji IS NULL OR NEW.gaji = 0
THEN
SET NEW.gaji = 500000;
ELSE
SET NEW.gaji = NEW.gaji + 100000;
END IF;
END #
Query OK, 0 rows affected (0.23 sec)
Mysql> DELIMITER ;
Dalam TRIGGER diatas adalah salah satu contoh trigger yang akan dijalankan
sebelum sebuah even dipanggil (BEFORE INSERT). Dalam trigger ini akan mengganti
nilaigaji jika gaji yang di-INSERT-kan bernilai NULL atau 0 dan akan menambahkan
nilai 100rb jika kita masukkan selain NULL dan 0.
Berikut contoh masukkan data setelah didefinisikan trigger :
INPUT NILAI NULL atau 0
mysql> insert into pegawai values('PEG-1017','Astuti','Kudus','Staff Junior',0);
Query OK, 1 row affected (0.05 sec)
mysql> select * from pegawai;
+----------+-----------------------+-------------+-----------------+---------+
| nip | nama_peg | alamat_peg | jabatan | gaji |
+----------+-----------------------+-------------+-----------------+---------+
| PEG-1001 | Soeharto Mangundirejo | Yogyakarta | C.E.O | 9000000 |
| PEG-1002 | Felix Nababan | Medan | Manager | 8000000 |
| PEG-1003 | Olga Syahrini | Jakarta | Kepala Unit | 6000000 |
| PEG-1004 | Chelsea Olivia | Bandung | Kepala Unit | 6000000 |
| PEG-1005 | Tuti Wardani | Jawa Tengah | Supervisor | 4500000 |
| PEG-1006 | Budi Drajat | Malang | Supervisor | 4500000 |
| PEG-1007 | Bambang Pamungkas | Kudus | Staff Senior | 3000000 |
| PEG-1008 | Ely Oktafiani | Yogyakarta | Staff Senior | 3000000 |
| PEG-1009 | Rani Wijaya | Magelang | Staff Senior | 3000000 |
| PEG-1010 | Rano Karno | Solo | Staff Junior | 2000000 |
| PEG-1011 | Rahmadi Sholeh | Yogyakarta | Staff Junior | 2000000 |
| PEG-1012 | Ilham Ungara | Jakarta | Staff Junior | 2000000 |
| PEG-1013 | Endang Melati | Madiun | Staff Junior | 2000000 |
| PEG-1014 | Donny Damara | Makasar | Tenaga Kontrak | 1000000 |
| PEG-1015 | Paijem | Yogyakarta | Tenaga Kontrak | 500000 |
| PEG-1016 | Djono | Yogyakarta | Tenanga Kontrak | 1000000 |
| PEG-1017 | Astuti | Kudus | Staff Junior | 500000 |
+----------+-----------------------+-------------+-----------------+---------+
17 rows in set (0.00 sec)
INPUT DENGAN NILAI
mysql> insert into pegawai values('PEG-1018','Puspito','Magelang','Staff Junior',
Query OK, 1 row affected (0.03 sec)
12. mysql> select * from pegawai;
+----------+-----------------------+-------------+-----------------+---------+
| nip | nama_peg | alamat_peg | jabatan | gaji |
+----------+-----------------------+-------------+-----------------+---------+
| PEG-1001 | Soeharto Mangundirejo | Yogyakarta | C.E.O | 9000000 |
| PEG-1002 | Felix Nababan | Medan | Manager | 8000000 |
| PEG-1003 | Olga Syahrini | Jakarta | Kepala Unit | 6000000 |
| PEG-1004 | Chelsea Olivia | Bandung | Kepala Unit | 6000000 |
| PEG-1005 | Tuti Wardani | Jawa Tengah | Supervisor | 4500000 |
| PEG-1006 | Budi Drajat | Malang | Supervisor | 4500000 |
| PEG-1007 | Bambang Pamungkas | Kudus | Staff Senior | 3000000 |
| PEG-1008 | Ely Oktafiani | Yogyakarta | Staff Senior | 3000000 |
| PEG-1009 | Rani Wijaya | Magelang | Staff Senior | 3000000 |
| PEG-1010 | Rano Karno | Solo | Staff Junior | 2000000 |
| PEG-1011 | Rahmadi Sholeh | Yogyakarta | Staff Junior | 2000000 |
| PEG-1012 | Ilham Ungara | Jakarta | Staff Junior | 2000000 |
| PEG-1013 | Endang Melati | Madiun | Staff Junior | 2000000 |
| PEG-1014 | Donny Damara | Makasar | Tenaga Kontrak | 1000000 |
| PEG-1015 | Paijem | Yogyakarta | Tenaga Kontrak | 500000 |
| PEG-1016 | Djono | Yogyakarta | Tenanga Kontrak | 1000000 |
| PEG-1017 | Astuti | Kudus | Staff Junior | 500000 |
| PEG-1018 | Puspito | Magelang | Staff Junior | 110 0000 |
+----------+-----------------------+-------------+-----------------+---------+
18 rows in set (0.00 sec)
Namun demikian, kita tidak dapat mengupdate tabel yang sama dengan tabel yang
diasosiasikan dengan trigger menggunakan trigger.
Mysql> DELIMITER #
mysql> CREATE TRIGGER before_update BEFORE UPDATE ON pegawai FOR EACH ROW
BEGIN
UPDATE pegawai SET gaji=gaji+(NEW.gaji - OLD.gaji) WHERE
nip=NEW.nip;
END #
Query OK, 0 rows affected (0.03 sec)
mysql> DELIMITER ;
mysql> UPDATE pegawai SET gaji = 2000000 WHERE nip="PEG-1017";
ERROR 1442 (HY000): Can't update table 'pegawai' in stored function/trigger
because it is already used by statement which invoked this stored function
/trigger.
3. AFTER TRIGGER
Berikut adalah contoh trigger yang dijalankan setelah update dilakukan
terhadap tabel
Untuk mencobanya kita buat dulu table pencatat, nanti di table pencatat ini akan
kita buat syntax untuk mencatat perubahan yang terjadi.
mysql> create table pencatat(catatan varchar(50));
Query OK, 0 rows affected (0.48 sec)
mysql> delimiter #
13. kita buat TRIGGERnya untuk mencatat perubahan yang terjadi
mysql> CREATE TRIGGER trigger_cat AFTER UPDATE ON pegawai FOR EACH ROW
BEGIN
INSERT INTO pencatat
VALUES(concat('akun ',NEW.nip,' dari ',OLD.gaji, ' to
',NEW.gaji));
END
#
Query OK, 0 rows affected (0.17 sec)
mysql> delimiter ;
Kita rubah nilai dari gaji yang ada
mysql> UPDATE pegawai SET gaji=gaji+200000;
Query OK, 18 rows affected (0.09 sec)
Rows matched: 18 Changed: 18 Warnings: 0
mysql> select * from pencatat;
+---------------------------------------+
| catatan |
+---------------------------------------+
| akun PEG-1001 dari 9000000 to 9200000 |
| akun PEG-1002 dari 8000000 to 8200000 |
| akun PEG-1003 dari 6000000 to 6200000 |
| akun PEG-1004 dari 6000000 to 6200000 |
| akun PEG-1005 dari 4500000 to 4700000 |
| akun PEG-1006 dari 4500000 to 4700000 |
| akun PEG-1007 dari 3000000 to 3200000 |
| akun PEG-1008 dari 3000000 to 3200000 |
| akun PEG-1009 dari 3000000 to 3200000 |
| akun PEG-1010 dari 2000000 to 2200000 |
| akun PEG-1011 dari 2000000 to 2200000 |
| akun PEG-1012 dari 2000000 to 2200000 |
| akun PEG-1013 dari 2000000 to 2200000 |
| akun PEG-1014 dari 1000000 to 1200000 |
| akun PEG-1015 dari 500000 to 700000 |
| akun PEG-1016 dari 1000000 to 1200000 |
| akun PEG-1017 dari 500000 to 700000 |
| akun PEG-1018 dari 1100000 to 1300000 |
+---------------------------------------+
18 rows in set (0.00 sec)
TRIGGER diatas akan dieksekusi setelah perintah UPADATE dijalankan.
4. Melihat dan Menghapus Trigger yang Sudah Dibuat
Untuk melihat TRIGGER kita bisa menggunakan syntax